From a481cb252ab32e372a3db5fd194a00cc4795fbac Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Thu, 18 Jan 2024 13:14:24 +0100 Subject: [PATCH 1/7] . --- .gitmodules | 3 + CMakeLists.txt | 10 +- deps/File-Receiver | 1 + deps/sofa/20231011/c/00READ.ME | 49 - deps/sofa/20231011/c/doc/board.lis | 40 - deps/sofa/20231011/c/doc/board.pdf | Bin 8614 -> 0 bytes deps/sofa/20231011/c/doc/changes.lis | 131 - deps/sofa/20231011/c/doc/changes.pdf | Bin 11642 -> 0 bytes deps/sofa/20231011/c/doc/consts.lis | 54 - deps/sofa/20231011/c/doc/consts.pdf | Bin 8483 -> 0 bytes deps/sofa/20231011/c/doc/contents.lis | 25 - deps/sofa/20231011/c/doc/contents.pdf | Bin 7025 -> 0 bytes deps/sofa/20231011/c/doc/copyr.lis | 111 - deps/sofa/20231011/c/doc/copyr.pdf | Bin 11677 -> 0 bytes deps/sofa/20231011/c/doc/intro.lis | 216 - deps/sofa/20231011/c/doc/intro.pdf | Bin 15039 -> 0 bytes deps/sofa/20231011/c/doc/manual.lis | 19236 ---------------- deps/sofa/20231011/c/doc/manual.pdf | Bin 485794 -> 0 bytes deps/sofa/20231011/c/doc/sofa_ast_c.pdf | Bin 612133 -> 0 bytes deps/sofa/20231011/c/doc/sofa_ast_summary.pdf | Bin 63625 -> 0 bytes deps/sofa/20231011/c/doc/sofa_lib.lis | 761 - deps/sofa/20231011/c/doc/sofa_lib.pdf | Bin 23708 -> 0 bytes deps/sofa/20231011/c/doc/sofa_misc_c.pdf | Bin 235545 -> 0 bytes deps/sofa/20231011/c/doc/sofa_pn_c.pdf | Bin 1054150 -> 0 bytes deps/sofa/20231011/c/doc/sofa_ts_c.pdf | Bin 391202 -> 0 bytes deps/sofa/20231011/c/doc/sofa_vm_c.pdf | Bin 368981 -> 0 bytes deps/sofa/20231011/c/doc/sofa_vml.lis | 315 - deps/sofa/20231011/c/doc/sofa_vml.pdf | Bin 15284 -> 0 bytes deps/sofa/20231011/c/doc/title.lis | 58 - deps/sofa/20231011/c/doc/title.pdf | Bin 6271 -> 0 bytes deps/sofa/20231011/c/src/a2af.c | 171 - deps/sofa/20231011/c/src/a2tf.c | 167 - deps/sofa/20231011/c/src/ab.c | 179 - deps/sofa/20231011/c/src/ae2hd.c | 185 - deps/sofa/20231011/c/src/af2a.c | 160 - deps/sofa/20231011/c/src/anp.c | 135 - deps/sofa/20231011/c/src/anpm.c | 135 - deps/sofa/20231011/c/src/apcg.c | 222 - deps/sofa/20231011/c/src/apcg13.c | 225 - deps/sofa/20231011/c/src/apci.c | 231 - deps/sofa/20231011/c/src/apci13.c | 243 - deps/sofa/20231011/c/src/apco.c | 325 - deps/sofa/20231011/c/src/apco13.c | 329 - deps/sofa/20231011/c/src/apcs.c | 275 - deps/sofa/20231011/c/src/apcs13.c | 232 - deps/sofa/20231011/c/src/aper.c | 203 - deps/sofa/20231011/c/src/aper13.c | 222 - deps/sofa/20231011/c/src/apio.c | 271 - deps/sofa/20231011/c/src/apio13.c | 301 - deps/sofa/20231011/c/src/atcc13.c | 185 - deps/sofa/20231011/c/src/atccq.c | 184 - deps/sofa/20231011/c/src/atci13.c | 200 - deps/sofa/20231011/c/src/atciq.c | 193 - deps/sofa/20231011/c/src/atciqn.c | 232 - deps/sofa/20231011/c/src/atciqz.c | 194 - deps/sofa/20231011/c/src/atco13.c | 285 - deps/sofa/20231011/c/src/atic13.c | 193 - deps/sofa/20231011/c/src/aticq.c | 240 - deps/sofa/20231011/c/src/aticqn.c | 278 - deps/sofa/20231011/c/src/atio13.c | 264 - deps/sofa/20231011/c/src/atioq.c | 289 - deps/sofa/20231011/c/src/atoc13.c | 276 - deps/sofa/20231011/c/src/atoi13.c | 271 - deps/sofa/20231011/c/src/atoiq.c | 300 - deps/sofa/20231011/c/src/bi00.c | 168 - deps/sofa/20231011/c/src/bp00.c | 223 - deps/sofa/20231011/c/src/bp06.c | 194 - deps/sofa/20231011/c/src/bpn2xy.c | 150 - deps/sofa/20231011/c/src/c2i00a.c | 189 - deps/sofa/20231011/c/src/c2i00b.c | 189 - deps/sofa/20231011/c/src/c2i06a.c | 186 - deps/sofa/20231011/c/src/c2ibpn.c | 192 - deps/sofa/20231011/c/src/c2ixy.c | 181 - deps/sofa/20231011/c/src/c2ixys.c | 173 - deps/sofa/20231011/c/src/c2s.c | 146 - deps/sofa/20231011/c/src/c2t00a.c | 204 - deps/sofa/20231011/c/src/c2t00b.c | 200 - deps/sofa/20231011/c/src/c2t06a.c | 202 - deps/sofa/20231011/c/src/c2tcio.c | 172 - deps/sofa/20231011/c/src/c2teqx.c | 172 - deps/sofa/20231011/c/src/c2tpe.c | 217 - deps/sofa/20231011/c/src/c2txy.c | 209 - deps/sofa/20231011/c/src/cal2jd.c | 192 - deps/sofa/20231011/c/src/cp.c | 130 - deps/sofa/20231011/c/src/cpv.c | 132 - deps/sofa/20231011/c/src/cr.c | 133 - deps/sofa/20231011/c/src/d2dtf.c | 289 - deps/sofa/20231011/c/src/d2tf.c | 211 - deps/sofa/20231011/c/src/dat.c | 353 - deps/sofa/20231011/c/src/dtdb.c | 1266 - deps/sofa/20231011/c/src/dtf2d.c | 256 - deps/sofa/20231011/c/src/eceq06.c | 184 - deps/sofa/20231011/c/src/ecm06.c | 187 - deps/sofa/20231011/c/src/ee00.c | 180 - deps/sofa/20231011/c/src/ee00a.c | 187 - deps/sofa/20231011/c/src/ee00b.c | 193 - deps/sofa/20231011/c/src/ee06a.c | 174 - deps/sofa/20231011/c/src/eect00.c | 335 - deps/sofa/20231011/c/src/eform.c | 199 - deps/sofa/20231011/c/src/eo06a.c | 183 - deps/sofa/20231011/c/src/eors.c | 160 - deps/sofa/20231011/c/src/epb.c | 158 - deps/sofa/20231011/c/src/epb2jd.c | 142 - deps/sofa/20231011/c/src/epj.c | 160 - deps/sofa/20231011/c/src/epj2jd.c | 142 - deps/sofa/20231011/c/src/epv00.c | 2642 --- deps/sofa/20231011/c/src/eqec06.c | 185 - deps/sofa/20231011/c/src/eqeq94.c | 185 - deps/sofa/20231011/c/src/era00.c | 189 - deps/sofa/20231011/c/src/fad03.c | 156 - deps/sofa/20231011/c/src/fae03.c | 155 - deps/sofa/20231011/c/src/faf03.c | 158 - deps/sofa/20231011/c/src/faju03.c | 155 - deps/sofa/20231011/c/src/fal03.c | 156 - deps/sofa/20231011/c/src/falp03.c | 156 - deps/sofa/20231011/c/src/fama03.c | 155 - deps/sofa/20231011/c/src/fame03.c | 155 - deps/sofa/20231011/c/src/fane03.c | 152 - deps/sofa/20231011/c/src/faom03.c | 157 - deps/sofa/20231011/c/src/fapa03.c | 155 - deps/sofa/20231011/c/src/fasa03.c | 155 - deps/sofa/20231011/c/src/faur03.c | 152 - deps/sofa/20231011/c/src/fave03.c | 155 - deps/sofa/20231011/c/src/fk425.c | 322 - deps/sofa/20231011/c/src/fk45z.c | 252 - deps/sofa/20231011/c/src/fk524.c | 334 - deps/sofa/20231011/c/src/fk52h.c | 193 - deps/sofa/20231011/c/src/fk54z.c | 193 - deps/sofa/20231011/c/src/fk5hip.c | 177 - deps/sofa/20231011/c/src/fk5hz.c | 211 - deps/sofa/20231011/c/src/fw2m.c | 189 - deps/sofa/20231011/c/src/fw2xy.c | 171 - deps/sofa/20231011/c/src/g2icrs.c | 212 - deps/sofa/20231011/c/src/gc2gd.c | 187 - deps/sofa/20231011/c/src/gc2gde.c | 252 - deps/sofa/20231011/c/src/gd2gc.c | 186 - deps/sofa/20231011/c/src/gd2gce.c | 190 - deps/sofa/20231011/c/src/gmst00.c | 198 - deps/sofa/20231011/c/src/gmst06.c | 189 - deps/sofa/20231011/c/src/gmst82.c | 203 - deps/sofa/20231011/c/src/gst00a.c | 190 - deps/sofa/20231011/c/src/gst00b.c | 198 - deps/sofa/20231011/c/src/gst06.c | 192 - deps/sofa/20231011/c/src/gst06a.c | 183 - deps/sofa/20231011/c/src/gst94.c | 183 - deps/sofa/20231011/c/src/h2fk5.c | 198 - deps/sofa/20231011/c/src/hd2ae.c | 191 - deps/sofa/20231011/c/src/hd2pa.c | 164 - deps/sofa/20231011/c/src/hfk5z.c | 226 - deps/sofa/20231011/c/src/icrs2g.c | 211 - deps/sofa/20231011/c/src/ir.c | 133 - deps/sofa/20231011/c/src/jd2cal.c | 251 - deps/sofa/20231011/c/src/jdcalf.c | 226 - deps/sofa/20231011/c/src/ld.c | 203 - deps/sofa/20231011/c/src/ldn.c | 225 - deps/sofa/20231011/c/src/ldsun.c | 156 - deps/sofa/20231011/c/src/libsofa_c.a | Bin 819278 -> 0 bytes deps/sofa/20231011/c/src/lteceq.c | 181 - deps/sofa/20231011/c/src/ltecm.c | 201 - deps/sofa/20231011/c/src/lteqec.c | 181 - deps/sofa/20231011/c/src/ltp.c | 183 - deps/sofa/20231011/c/src/ltpb.c | 177 - deps/sofa/20231011/c/src/ltpecl.c | 221 - deps/sofa/20231011/c/src/ltpequ.c | 221 - deps/sofa/20231011/c/src/makefile | 895 - deps/sofa/20231011/c/src/moon98.c | 654 - deps/sofa/20231011/c/src/num00a.c | 171 - deps/sofa/20231011/c/src/num00b.c | 171 - deps/sofa/20231011/c/src/num06a.c | 175 - deps/sofa/20231011/c/src/numat.c | 159 - deps/sofa/20231011/c/src/nut00a.c | 2098 -- deps/sofa/20231011/c/src/nut00b.c | 423 - deps/sofa/20231011/c/src/nut06a.c | 201 - deps/sofa/20231011/c/src/nut80.c | 376 - deps/sofa/20231011/c/src/nutm80.c | 167 - deps/sofa/20231011/c/src/obl06.c | 171 - deps/sofa/20231011/c/src/obl80.c | 171 - deps/sofa/20231011/c/src/p06e.c | 379 - deps/sofa/20231011/c/src/p2pv.c | 133 - deps/sofa/20231011/c/src/p2s.c | 141 - deps/sofa/20231011/c/src/pap.c | 191 - deps/sofa/20231011/c/src/pas.c | 148 - deps/sofa/20231011/c/src/pb06.c | 202 - deps/sofa/20231011/c/src/pdp.c | 136 - deps/sofa/20231011/c/src/pfw06.c | 216 - deps/sofa/20231011/c/src/plan94.c | 569 - deps/sofa/20231011/c/src/pm.c | 128 - deps/sofa/20231011/c/src/pmat00.c | 168 - deps/sofa/20231011/c/src/pmat06.c | 176 - deps/sofa/20231011/c/src/pmat76.c | 192 - deps/sofa/20231011/c/src/pmp.c | 135 - deps/sofa/20231011/c/src/pmpx.c | 195 - deps/sofa/20231011/c/src/pmsafe.c | 247 - deps/sofa/20231011/c/src/pn.c | 159 - deps/sofa/20231011/c/src/pn00.c | 227 - deps/sofa/20231011/c/src/pn00a.c | 213 - deps/sofa/20231011/c/src/pn00b.c | 213 - deps/sofa/20231011/c/src/pn06.c | 238 - deps/sofa/20231011/c/src/pn06a.c | 203 - deps/sofa/20231011/c/src/pnm00a.c | 171 - deps/sofa/20231011/c/src/pnm00b.c | 171 - deps/sofa/20231011/c/src/pnm06a.c | 175 - deps/sofa/20231011/c/src/pnm80.c | 176 - deps/sofa/20231011/c/src/pom00.c | 165 - deps/sofa/20231011/c/src/ppp.c | 135 - deps/sofa/20231011/c/src/ppsp.c | 144 - deps/sofa/20231011/c/src/pr00.c | 193 - deps/sofa/20231011/c/src/prec76.c | 199 - deps/sofa/20231011/c/src/pv2p.c | 131 - deps/sofa/20231011/c/src/pv2s.c | 194 - deps/sofa/20231011/c/src/pvdpv.c | 152 - deps/sofa/20231011/c/src/pvm.c | 136 - deps/sofa/20231011/c/src/pvmpv.c | 137 - deps/sofa/20231011/c/src/pvppv.c | 137 - deps/sofa/20231011/c/src/pvstar.c | 258 - deps/sofa/20231011/c/src/pvtob.c | 204 - deps/sofa/20231011/c/src/pvu.c | 143 - deps/sofa/20231011/c/src/pvup.c | 138 - deps/sofa/20231011/c/src/pvxpv.c | 157 - deps/sofa/20231011/c/src/pxp.c | 144 - deps/sofa/20231011/c/src/refco.c | 308 - deps/sofa/20231011/c/src/rm2v.c | 161 - deps/sofa/20231011/c/src/rv2m.c | 168 - deps/sofa/20231011/c/src/rx.c | 160 - deps/sofa/20231011/c/src/rxp.c | 149 - deps/sofa/20231011/c/src/rxpv.c | 142 - deps/sofa/20231011/c/src/rxr.c | 149 - deps/sofa/20231011/c/src/ry.c | 160 - deps/sofa/20231011/c/src/rz.c | 160 - deps/sofa/20231011/c/src/s00.c | 424 - deps/sofa/20231011/c/src/s00a.c | 195 - deps/sofa/20231011/c/src/s00b.c | 195 - deps/sofa/20231011/c/src/s06.c | 421 - deps/sofa/20231011/c/src/s06a.c | 197 - deps/sofa/20231011/c/src/s2c.c | 135 - deps/sofa/20231011/c/src/s2p.c | 138 - deps/sofa/20231011/c/src/s2pv.c | 153 - deps/sofa/20231011/c/src/s2xpv.c | 137 - deps/sofa/20231011/c/src/sepp.c | 157 - deps/sofa/20231011/c/src/seps.c | 145 - deps/sofa/20231011/c/src/sofa.h | 627 - deps/sofa/20231011/c/src/sofam.h | 222 - deps/sofa/20231011/c/src/sp00.c | 171 - deps/sofa/20231011/c/src/starpm.c | 258 - deps/sofa/20231011/c/src/starpv.c | 317 - deps/sofa/20231011/c/src/sxp.c | 134 - deps/sofa/20231011/c/src/sxpv.c | 135 - deps/sofa/20231011/c/src/t_sofa_c.c | 10367 --------- deps/sofa/20231011/c/src/taitt.c | 163 - deps/sofa/20231011/c/src/taiut1.c | 165 - deps/sofa/20231011/c/src/taiutc.c | 211 - deps/sofa/20231011/c/src/tcbtdb.c | 185 - deps/sofa/20231011/c/src/tcgtt.c | 162 - deps/sofa/20231011/c/src/tdbtcb.c | 190 - deps/sofa/20231011/c/src/tdbtt.c | 175 - deps/sofa/20231011/c/src/tf2a.c | 160 - deps/sofa/20231011/c/src/tf2d.c | 160 - deps/sofa/20231011/c/src/tpors.c | 222 - deps/sofa/20231011/c/src/tporv.c | 219 - deps/sofa/20231011/c/src/tpsts.c | 170 - deps/sofa/20231011/c/src/tpstv.c | 194 - deps/sofa/20231011/c/src/tpxes.c | 203 - deps/sofa/20231011/c/src/tpxev.c | 223 - deps/sofa/20231011/c/src/tr.c | 143 - deps/sofa/20231011/c/src/trxp.c | 143 - deps/sofa/20231011/c/src/trxpv.c | 149 - deps/sofa/20231011/c/src/tttai.c | 163 - deps/sofa/20231011/c/src/tttcg.c | 165 - deps/sofa/20231011/c/src/tttdb.c | 174 - deps/sofa/20231011/c/src/ttut1.c | 163 - deps/sofa/20231011/c/src/ut1tai.c | 164 - deps/sofa/20231011/c/src/ut1tt.c | 163 - deps/sofa/20231011/c/src/ut1utc.c | 246 - deps/sofa/20231011/c/src/utctai.c | 231 - deps/sofa/20231011/c/src/utcut1.c | 199 - deps/sofa/20231011/c/src/xy06.c | 2809 --- deps/sofa/20231011/c/src/xys00a.c | 183 - deps/sofa/20231011/c/src/xys00b.c | 183 - deps/sofa/20231011/c/src/xys06a.c | 183 - deps/sofa/20231011/c/src/zp.c | 127 - deps/sofa/20231011/c/src/zpv.c | 129 - deps/sofa/20231011/c/src/zr.c | 133 - include/AstriFitsProcessor.h | 43 + include/FitsHelper.h | 151 + src/AstriFitsProcessor.cpp | 122 + src/main.cpp | 1300 +- src/main_old.cpp | 566 + 287 files changed, 920 insertions(+), 91145 deletions(-) create mode 160000 deps/File-Receiver delete mode 100644 deps/sofa/20231011/c/00READ.ME delete mode 100644 deps/sofa/20231011/c/doc/board.lis delete mode 100644 deps/sofa/20231011/c/doc/board.pdf delete mode 100644 deps/sofa/20231011/c/doc/changes.lis delete mode 100644 deps/sofa/20231011/c/doc/changes.pdf delete mode 100644 deps/sofa/20231011/c/doc/consts.lis delete mode 100644 deps/sofa/20231011/c/doc/consts.pdf delete mode 100644 deps/sofa/20231011/c/doc/contents.lis delete mode 100644 deps/sofa/20231011/c/doc/contents.pdf delete mode 100644 deps/sofa/20231011/c/doc/copyr.lis delete mode 100644 deps/sofa/20231011/c/doc/copyr.pdf delete mode 100644 deps/sofa/20231011/c/doc/intro.lis delete mode 100644 deps/sofa/20231011/c/doc/intro.pdf delete mode 100644 deps/sofa/20231011/c/doc/manual.lis delete mode 100644 deps/sofa/20231011/c/doc/manual.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_ast_c.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_ast_summary.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_lib.lis delete mode 100644 deps/sofa/20231011/c/doc/sofa_lib.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_misc_c.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_pn_c.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_ts_c.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_vm_c.pdf delete mode 100644 deps/sofa/20231011/c/doc/sofa_vml.lis delete mode 100644 deps/sofa/20231011/c/doc/sofa_vml.pdf delete mode 100644 deps/sofa/20231011/c/doc/title.lis delete mode 100644 deps/sofa/20231011/c/doc/title.pdf delete mode 100644 deps/sofa/20231011/c/src/a2af.c delete mode 100644 deps/sofa/20231011/c/src/a2tf.c delete mode 100644 deps/sofa/20231011/c/src/ab.c delete mode 100644 deps/sofa/20231011/c/src/ae2hd.c delete mode 100644 deps/sofa/20231011/c/src/af2a.c delete mode 100644 deps/sofa/20231011/c/src/anp.c delete mode 100644 deps/sofa/20231011/c/src/anpm.c delete mode 100644 deps/sofa/20231011/c/src/apcg.c delete mode 100644 deps/sofa/20231011/c/src/apcg13.c delete mode 100644 deps/sofa/20231011/c/src/apci.c delete mode 100644 deps/sofa/20231011/c/src/apci13.c delete mode 100644 deps/sofa/20231011/c/src/apco.c delete mode 100644 deps/sofa/20231011/c/src/apco13.c delete mode 100644 deps/sofa/20231011/c/src/apcs.c delete mode 100644 deps/sofa/20231011/c/src/apcs13.c delete mode 100644 deps/sofa/20231011/c/src/aper.c delete mode 100644 deps/sofa/20231011/c/src/aper13.c delete mode 100644 deps/sofa/20231011/c/src/apio.c delete mode 100644 deps/sofa/20231011/c/src/apio13.c delete mode 100644 deps/sofa/20231011/c/src/atcc13.c delete mode 100644 deps/sofa/20231011/c/src/atccq.c delete mode 100644 deps/sofa/20231011/c/src/atci13.c delete mode 100644 deps/sofa/20231011/c/src/atciq.c delete mode 100644 deps/sofa/20231011/c/src/atciqn.c delete mode 100644 deps/sofa/20231011/c/src/atciqz.c delete mode 100644 deps/sofa/20231011/c/src/atco13.c delete mode 100644 deps/sofa/20231011/c/src/atic13.c delete mode 100644 deps/sofa/20231011/c/src/aticq.c delete mode 100644 deps/sofa/20231011/c/src/aticqn.c delete mode 100644 deps/sofa/20231011/c/src/atio13.c delete mode 100644 deps/sofa/20231011/c/src/atioq.c delete mode 100644 deps/sofa/20231011/c/src/atoc13.c delete mode 100644 deps/sofa/20231011/c/src/atoi13.c delete mode 100644 deps/sofa/20231011/c/src/atoiq.c delete mode 100644 deps/sofa/20231011/c/src/bi00.c delete mode 100644 deps/sofa/20231011/c/src/bp00.c delete mode 100644 deps/sofa/20231011/c/src/bp06.c delete mode 100644 deps/sofa/20231011/c/src/bpn2xy.c delete mode 100644 deps/sofa/20231011/c/src/c2i00a.c delete mode 100644 deps/sofa/20231011/c/src/c2i00b.c delete mode 100644 deps/sofa/20231011/c/src/c2i06a.c delete mode 100644 deps/sofa/20231011/c/src/c2ibpn.c delete mode 100644 deps/sofa/20231011/c/src/c2ixy.c delete mode 100644 deps/sofa/20231011/c/src/c2ixys.c delete mode 100644 deps/sofa/20231011/c/src/c2s.c delete mode 100644 deps/sofa/20231011/c/src/c2t00a.c delete mode 100644 deps/sofa/20231011/c/src/c2t00b.c delete mode 100644 deps/sofa/20231011/c/src/c2t06a.c delete mode 100644 deps/sofa/20231011/c/src/c2tcio.c delete mode 100644 deps/sofa/20231011/c/src/c2teqx.c delete mode 100644 deps/sofa/20231011/c/src/c2tpe.c delete mode 100644 deps/sofa/20231011/c/src/c2txy.c delete mode 100644 deps/sofa/20231011/c/src/cal2jd.c delete mode 100644 deps/sofa/20231011/c/src/cp.c delete mode 100644 deps/sofa/20231011/c/src/cpv.c delete mode 100644 deps/sofa/20231011/c/src/cr.c delete mode 100644 deps/sofa/20231011/c/src/d2dtf.c delete mode 100644 deps/sofa/20231011/c/src/d2tf.c delete mode 100644 deps/sofa/20231011/c/src/dat.c delete mode 100644 deps/sofa/20231011/c/src/dtdb.c delete mode 100644 deps/sofa/20231011/c/src/dtf2d.c delete mode 100644 deps/sofa/20231011/c/src/eceq06.c delete mode 100644 deps/sofa/20231011/c/src/ecm06.c delete mode 100644 deps/sofa/20231011/c/src/ee00.c delete mode 100644 deps/sofa/20231011/c/src/ee00a.c delete mode 100644 deps/sofa/20231011/c/src/ee00b.c delete mode 100644 deps/sofa/20231011/c/src/ee06a.c delete mode 100644 deps/sofa/20231011/c/src/eect00.c delete mode 100644 deps/sofa/20231011/c/src/eform.c delete mode 100644 deps/sofa/20231011/c/src/eo06a.c delete mode 100644 deps/sofa/20231011/c/src/eors.c delete mode 100644 deps/sofa/20231011/c/src/epb.c delete mode 100644 deps/sofa/20231011/c/src/epb2jd.c delete mode 100644 deps/sofa/20231011/c/src/epj.c delete mode 100644 deps/sofa/20231011/c/src/epj2jd.c delete mode 100644 deps/sofa/20231011/c/src/epv00.c delete mode 100644 deps/sofa/20231011/c/src/eqec06.c delete mode 100644 deps/sofa/20231011/c/src/eqeq94.c delete mode 100644 deps/sofa/20231011/c/src/era00.c delete mode 100644 deps/sofa/20231011/c/src/fad03.c delete mode 100644 deps/sofa/20231011/c/src/fae03.c delete mode 100644 deps/sofa/20231011/c/src/faf03.c delete mode 100644 deps/sofa/20231011/c/src/faju03.c delete mode 100644 deps/sofa/20231011/c/src/fal03.c delete mode 100644 deps/sofa/20231011/c/src/falp03.c delete mode 100644 deps/sofa/20231011/c/src/fama03.c delete mode 100644 deps/sofa/20231011/c/src/fame03.c delete mode 100644 deps/sofa/20231011/c/src/fane03.c delete mode 100644 deps/sofa/20231011/c/src/faom03.c delete mode 100644 deps/sofa/20231011/c/src/fapa03.c delete mode 100644 deps/sofa/20231011/c/src/fasa03.c delete mode 100644 deps/sofa/20231011/c/src/faur03.c delete mode 100644 deps/sofa/20231011/c/src/fave03.c delete mode 100644 deps/sofa/20231011/c/src/fk425.c delete mode 100644 deps/sofa/20231011/c/src/fk45z.c delete mode 100644 deps/sofa/20231011/c/src/fk524.c delete mode 100644 deps/sofa/20231011/c/src/fk52h.c delete mode 100644 deps/sofa/20231011/c/src/fk54z.c delete mode 100644 deps/sofa/20231011/c/src/fk5hip.c delete mode 100644 deps/sofa/20231011/c/src/fk5hz.c delete mode 100644 deps/sofa/20231011/c/src/fw2m.c delete mode 100644 deps/sofa/20231011/c/src/fw2xy.c delete mode 100644 deps/sofa/20231011/c/src/g2icrs.c delete mode 100644 deps/sofa/20231011/c/src/gc2gd.c delete mode 100644 deps/sofa/20231011/c/src/gc2gde.c delete mode 100644 deps/sofa/20231011/c/src/gd2gc.c delete mode 100644 deps/sofa/20231011/c/src/gd2gce.c delete mode 100644 deps/sofa/20231011/c/src/gmst00.c delete mode 100644 deps/sofa/20231011/c/src/gmst06.c delete mode 100644 deps/sofa/20231011/c/src/gmst82.c delete mode 100644 deps/sofa/20231011/c/src/gst00a.c delete mode 100644 deps/sofa/20231011/c/src/gst00b.c delete mode 100644 deps/sofa/20231011/c/src/gst06.c delete mode 100644 deps/sofa/20231011/c/src/gst06a.c delete mode 100644 deps/sofa/20231011/c/src/gst94.c delete mode 100644 deps/sofa/20231011/c/src/h2fk5.c delete mode 100644 deps/sofa/20231011/c/src/hd2ae.c delete mode 100644 deps/sofa/20231011/c/src/hd2pa.c delete mode 100644 deps/sofa/20231011/c/src/hfk5z.c delete mode 100644 deps/sofa/20231011/c/src/icrs2g.c delete mode 100644 deps/sofa/20231011/c/src/ir.c delete mode 100644 deps/sofa/20231011/c/src/jd2cal.c delete mode 100644 deps/sofa/20231011/c/src/jdcalf.c delete mode 100644 deps/sofa/20231011/c/src/ld.c delete mode 100644 deps/sofa/20231011/c/src/ldn.c delete mode 100644 deps/sofa/20231011/c/src/ldsun.c delete mode 100644 deps/sofa/20231011/c/src/libsofa_c.a delete mode 100644 deps/sofa/20231011/c/src/lteceq.c delete mode 100644 deps/sofa/20231011/c/src/ltecm.c delete mode 100644 deps/sofa/20231011/c/src/lteqec.c delete mode 100644 deps/sofa/20231011/c/src/ltp.c delete mode 100644 deps/sofa/20231011/c/src/ltpb.c delete mode 100644 deps/sofa/20231011/c/src/ltpecl.c delete mode 100644 deps/sofa/20231011/c/src/ltpequ.c delete mode 100644 deps/sofa/20231011/c/src/makefile delete mode 100644 deps/sofa/20231011/c/src/moon98.c delete mode 100644 deps/sofa/20231011/c/src/num00a.c delete mode 100644 deps/sofa/20231011/c/src/num00b.c delete mode 100644 deps/sofa/20231011/c/src/num06a.c delete mode 100644 deps/sofa/20231011/c/src/numat.c delete mode 100644 deps/sofa/20231011/c/src/nut00a.c delete mode 100644 deps/sofa/20231011/c/src/nut00b.c delete mode 100644 deps/sofa/20231011/c/src/nut06a.c delete mode 100644 deps/sofa/20231011/c/src/nut80.c delete mode 100644 deps/sofa/20231011/c/src/nutm80.c delete mode 100644 deps/sofa/20231011/c/src/obl06.c delete mode 100644 deps/sofa/20231011/c/src/obl80.c delete mode 100644 deps/sofa/20231011/c/src/p06e.c delete mode 100644 deps/sofa/20231011/c/src/p2pv.c delete mode 100644 deps/sofa/20231011/c/src/p2s.c delete mode 100644 deps/sofa/20231011/c/src/pap.c delete mode 100644 deps/sofa/20231011/c/src/pas.c delete mode 100644 deps/sofa/20231011/c/src/pb06.c delete mode 100644 deps/sofa/20231011/c/src/pdp.c delete mode 100644 deps/sofa/20231011/c/src/pfw06.c delete mode 100644 deps/sofa/20231011/c/src/plan94.c delete mode 100644 deps/sofa/20231011/c/src/pm.c delete mode 100644 deps/sofa/20231011/c/src/pmat00.c delete mode 100644 deps/sofa/20231011/c/src/pmat06.c delete mode 100644 deps/sofa/20231011/c/src/pmat76.c delete mode 100644 deps/sofa/20231011/c/src/pmp.c delete mode 100644 deps/sofa/20231011/c/src/pmpx.c delete mode 100644 deps/sofa/20231011/c/src/pmsafe.c delete mode 100644 deps/sofa/20231011/c/src/pn.c delete mode 100644 deps/sofa/20231011/c/src/pn00.c delete mode 100644 deps/sofa/20231011/c/src/pn00a.c delete mode 100644 deps/sofa/20231011/c/src/pn00b.c delete mode 100644 deps/sofa/20231011/c/src/pn06.c delete mode 100644 deps/sofa/20231011/c/src/pn06a.c delete mode 100644 deps/sofa/20231011/c/src/pnm00a.c delete mode 100644 deps/sofa/20231011/c/src/pnm00b.c delete mode 100644 deps/sofa/20231011/c/src/pnm06a.c delete mode 100644 deps/sofa/20231011/c/src/pnm80.c delete mode 100644 deps/sofa/20231011/c/src/pom00.c delete mode 100644 deps/sofa/20231011/c/src/ppp.c delete mode 100644 deps/sofa/20231011/c/src/ppsp.c delete mode 100644 deps/sofa/20231011/c/src/pr00.c delete mode 100644 deps/sofa/20231011/c/src/prec76.c delete mode 100644 deps/sofa/20231011/c/src/pv2p.c delete mode 100644 deps/sofa/20231011/c/src/pv2s.c delete mode 100644 deps/sofa/20231011/c/src/pvdpv.c delete mode 100644 deps/sofa/20231011/c/src/pvm.c delete mode 100644 deps/sofa/20231011/c/src/pvmpv.c delete mode 100644 deps/sofa/20231011/c/src/pvppv.c delete mode 100644 deps/sofa/20231011/c/src/pvstar.c delete mode 100644 deps/sofa/20231011/c/src/pvtob.c delete mode 100644 deps/sofa/20231011/c/src/pvu.c delete mode 100644 deps/sofa/20231011/c/src/pvup.c delete mode 100644 deps/sofa/20231011/c/src/pvxpv.c delete mode 100644 deps/sofa/20231011/c/src/pxp.c delete mode 100644 deps/sofa/20231011/c/src/refco.c delete mode 100644 deps/sofa/20231011/c/src/rm2v.c delete mode 100644 deps/sofa/20231011/c/src/rv2m.c delete mode 100644 deps/sofa/20231011/c/src/rx.c delete mode 100644 deps/sofa/20231011/c/src/rxp.c delete mode 100644 deps/sofa/20231011/c/src/rxpv.c delete mode 100644 deps/sofa/20231011/c/src/rxr.c delete mode 100644 deps/sofa/20231011/c/src/ry.c delete mode 100644 deps/sofa/20231011/c/src/rz.c delete mode 100644 deps/sofa/20231011/c/src/s00.c delete mode 100644 deps/sofa/20231011/c/src/s00a.c delete mode 100644 deps/sofa/20231011/c/src/s00b.c delete mode 100644 deps/sofa/20231011/c/src/s06.c delete mode 100644 deps/sofa/20231011/c/src/s06a.c delete mode 100644 deps/sofa/20231011/c/src/s2c.c delete mode 100644 deps/sofa/20231011/c/src/s2p.c delete mode 100644 deps/sofa/20231011/c/src/s2pv.c delete mode 100644 deps/sofa/20231011/c/src/s2xpv.c delete mode 100644 deps/sofa/20231011/c/src/sepp.c delete mode 100644 deps/sofa/20231011/c/src/seps.c delete mode 100644 deps/sofa/20231011/c/src/sofa.h delete mode 100644 deps/sofa/20231011/c/src/sofam.h delete mode 100644 deps/sofa/20231011/c/src/sp00.c delete mode 100644 deps/sofa/20231011/c/src/starpm.c delete mode 100644 deps/sofa/20231011/c/src/starpv.c delete mode 100644 deps/sofa/20231011/c/src/sxp.c delete mode 100644 deps/sofa/20231011/c/src/sxpv.c delete mode 100644 deps/sofa/20231011/c/src/t_sofa_c.c delete mode 100644 deps/sofa/20231011/c/src/taitt.c delete mode 100644 deps/sofa/20231011/c/src/taiut1.c delete mode 100644 deps/sofa/20231011/c/src/taiutc.c delete mode 100644 deps/sofa/20231011/c/src/tcbtdb.c delete mode 100644 deps/sofa/20231011/c/src/tcgtt.c delete mode 100644 deps/sofa/20231011/c/src/tdbtcb.c delete mode 100644 deps/sofa/20231011/c/src/tdbtt.c delete mode 100644 deps/sofa/20231011/c/src/tf2a.c delete mode 100644 deps/sofa/20231011/c/src/tf2d.c delete mode 100644 deps/sofa/20231011/c/src/tpors.c delete mode 100644 deps/sofa/20231011/c/src/tporv.c delete mode 100644 deps/sofa/20231011/c/src/tpsts.c delete mode 100644 deps/sofa/20231011/c/src/tpstv.c delete mode 100644 deps/sofa/20231011/c/src/tpxes.c delete mode 100644 deps/sofa/20231011/c/src/tpxev.c delete mode 100644 deps/sofa/20231011/c/src/tr.c delete mode 100644 deps/sofa/20231011/c/src/trxp.c delete mode 100644 deps/sofa/20231011/c/src/trxpv.c delete mode 100644 deps/sofa/20231011/c/src/tttai.c delete mode 100644 deps/sofa/20231011/c/src/tttcg.c delete mode 100644 deps/sofa/20231011/c/src/tttdb.c delete mode 100644 deps/sofa/20231011/c/src/ttut1.c delete mode 100644 deps/sofa/20231011/c/src/ut1tai.c delete mode 100644 deps/sofa/20231011/c/src/ut1tt.c delete mode 100644 deps/sofa/20231011/c/src/ut1utc.c delete mode 100644 deps/sofa/20231011/c/src/utctai.c delete mode 100644 deps/sofa/20231011/c/src/utcut1.c delete mode 100644 deps/sofa/20231011/c/src/xy06.c delete mode 100644 deps/sofa/20231011/c/src/xys00a.c delete mode 100644 deps/sofa/20231011/c/src/xys00b.c delete mode 100644 deps/sofa/20231011/c/src/xys06a.c delete mode 100644 deps/sofa/20231011/c/src/zp.c delete mode 100644 deps/sofa/20231011/c/src/zpv.c delete mode 100644 deps/sofa/20231011/c/src/zr.c create mode 100644 include/AstriFitsProcessor.h create mode 100644 include/FitsHelper.h create mode 100644 src/AstriFitsProcessor.cpp create mode 100644 src/main_old.cpp diff --git a/.gitmodules b/.gitmodules index 8017222..e499ca6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "deps/Astri-Packets"] path = deps/Astri-Packets url = https://www.ict.inaf.it/gitlab/bias/packets/astri-packet.git +[submodule "deps/File-Receiver"] + path = deps/File-Receiver + url = https://www.ict.inaf.it/gitlab/bias/connection-protocols/file-receiver.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 66428a2..1b2b719 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,15 +8,17 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") if(NOT TARGET AstriPacket) add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/deps/Astri-Packets") -set_target_properties(AstriPacket PROPERTIES CMAKE_CXX_STANDARD 20) endif() add_compile_definitions(ASTRI_PACKETS_PATH="${ASTRI_PACKETS_PATH}") +if(NOT TARGET FileReceiver) +add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/deps/File-Receiver") +endif() set(SOURCES - src/header_fits.cpp src/main.cpp + src/AstriFitsProcessor.cpp ) add_executable(FitsPreprocessor.lnx ${SOURCES}) @@ -24,7 +26,6 @@ add_executable(FitsPreprocessor.lnx ${SOURCES}) # include files set(INC_DIR "${PROJECT_SOURCE_DIR}/include" - "${PROJECT_SOURCE_DIR}/deps/sofa/20231011/c/src" ) target_include_directories (FitsPreprocessor.lnx PUBLIC ${INC_DIR}) @@ -32,7 +33,8 @@ set(LIBS) find_library(libcfitsio cfitsio REQUIRED) list(APPEND LIBS cfitsio) list(APPEND LIBS AstriPacket) -list(APPEND LIBS "${PROJECT_SOURCE_DIR}/deps/sofa/20231011/c/src/libsofa_c.a") +list(APPEND LIBS FileReceiver) + target_link_libraries( FitsPreprocessor.lnx LINK_PUBLIC ${LIBS}) diff --git a/deps/File-Receiver b/deps/File-Receiver new file mode 160000 index 0000000..200da98 --- /dev/null +++ b/deps/File-Receiver @@ -0,0 +1 @@ +Subproject commit 200da98af19a720921cb12d4746813f0c0fdb8b2 diff --git a/deps/sofa/20231011/c/00READ.ME b/deps/sofa/20231011/c/00READ.ME deleted file mode 100644 index c99cdca..0000000 --- a/deps/sofa/20231011/c/00READ.ME +++ /dev/null @@ -1,49 +0,0 @@ - -SOFA-Issue: 2023-10-11 - -This is the IAU Standards of Fundamental Astronomy (SOFA) Libraries product, -issued on 2023-10-11. The tag `SOFA-Issue' above defines this release and -differentiates it from previous or subsequent releases of the SOFA product. -The 00READ.ME file must remain with this distribution set. - -Changes made since the previous release are noted in the file changes.lis. - -Notes: - -1/ Unix users: The distribution set contains a simple makefile which - can be used to create a single object library for the SOFA Libraries. - To build the object library: - - a/ Examine the makefile to be sure definition of the C compiler - is correct for your system. You need an ANSI standard compliant - C compiler. Edit the CCOMPC macro in the makefile as necessary. - - b/ To create libsofa.a, execute make: - - % make - - (where % is the shell prompt). - - c/ To remove the object files: - - % make clean - - To link with the SOFA library, include the library in the compile/link - command in the normal Unix fashion, eg: - - % gcc myprog.c -o myprog libsofa.a - - You should specify the appropriate C compiler name for `gcc' - in the above command sequence. - - -2/ Windows/DOS/Mac users: There is no `build' procedure to create a linkable - object library or DLL for the SOFA Libraries. This is due to the many - different C compilers and development environments available on - Windows/DOS and Mac machines. - - To use the SOFA routines with your program(s), you must use your preferred - development environment to create the appropriate library or DLL. - -IAU SOFA Center -2023/10/11 diff --git a/deps/sofa/20231011/c/doc/board.lis b/deps/sofa/20231011/c/doc/board.lis deleted file mode 100644 index 863454c..0000000 --- a/deps/sofa/20231011/c/doc/board.lis +++ /dev/null @@ -1,40 +0,0 @@ -board.lis 2023 May 31 - - - -IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD - - -Current Membership - - John Bangert - United States Naval Observatory, retired - Steven Bell - His Majesty's Nautical Almanac Office (HMNAO) - Nicole Capitaine - Paris Observatory - Maria Davis - United States Naval Observatory (IERS) - Mickael Gastineau - Paris Observatory, IMCCE - Catherine Hohenkerk - HMNAO (Chair, retired) - Li Jinling - Shanghai Astronomical Observatory - Zinovy Malkin - Pulkovo Observatory, St Petersburg - Jeffrey Percival - University of Wisconsin - Wendy Puatua - United States Naval Observatory - Scott Ransom - National Radio Astronomy Observatory - Nick Stamatakos - United States Naval Observatory - Patrick Wallace - RAL Space, retired - Toni Wilmot - His Majesty's Nautical Almanac Office - - -Past Members - - Wim Brouw University of Groningen - Mark Calabretta Australia Telescope National Facility - William Folkner Jet Propulsion Laboratory - Anne-Marie Gontier Paris Observatory - George Hobbs Australia Telescope National Facility - George Kaplan United States Naval Observatory - Brian Luzum United States Naval Observatory - Dennis McCarthy United States Naval Observatory - Skip Newhall Jet Propulsion Laboratory - Jin Wen-Jing Shanghai Astronomical Observatory - - -The email address for the Board chair is catherine.hohenkerk@gmail.com diff --git a/deps/sofa/20231011/c/doc/board.pdf b/deps/sofa/20231011/c/doc/board.pdf deleted file mode 100644 index 9e9afbbae295100a27c03e034b38f91b7e075ca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8614 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 diff --git a/deps/sofa/20231011/c/doc/changes.lis b/deps/sofa/20231011/c/doc/changes.lis deleted file mode 100644 index 54c0d3d..0000000 --- a/deps/sofa/20231011/c/doc/changes.lis +++ /dev/null @@ -1,131 +0,0 @@ - -This is the list of updates and changes that are actual errors. -Additions, such as including the units "radians", and/or typographical -alterations are not listed. They include changing capitalisation, e.g. -AU -> au and Of -> of, and consistent spelling i.e. catalogue -> catalog. - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Corrections to Code -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -Fortran - -STARPV, PVSTAR Code changes to make better use of machine precision - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -ANSI C - -Starpv, Pvstar - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Updated parameters -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -Fortran - -DAT - PARAMETER ( IYV = 2023 ) - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -ANSI C - -Dat - enum { IYV = 2023}; - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Changes to comments -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -Fortran - -A2TF, D2TF Notes: 3, last line - -* by testing for IHMSF(1)=24 and setting IHMSF(2-4) to zero. - - -ATOIQ Notes: 1, first line - -* 1) "Observed" Az,ZD means ... - - -C2T06A Notes: 1, 2nd line, i.e. the end of the first sentence is - -* apportioned in any convenient way between the two arguments. - - -FK45Z Notes: 4, last sentence - - * stars, whether polar or not. At epoch J2000.0, ... - -FK54Z Notes 3, first line is - - 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. - - -HFK5Z Notes: 6, first line - - 6) See also iau_FK52H, iau_H2FK5, iau_FK5HZ. - - -LTPB Notes: 1, line 3 - -* where P_ICRS is a vector in the International Celestial Reference - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -ANSI C - - -A2tf Note 3, last line - -** by testing for ihmsf[0]=24 and setting ihmsf[1-3] to zero. - - -Atoiq Notes: 1, first line - -** 1) "Observed" Az,ZD means ... - - -C2t06a Notes: 1, 2nd line, i.e. the end of the first sentence is - -< ** apportioned in any convenient way between the two arguments. - - -Fk45z Notes: 4, last sentence - -** motions for all stars, whether polar or not. At epoch J2000.0, - - -Fk54z Notes 3, first line is - -** 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. - - -Hfk5z Notes: 6, first line - - ** 6) See also iauFk52h, iauH2fk5, iauFk5hz. - - -t_sofa_c.c The test program. In the routine t_atccq the list of - called routines is - ** Called: iauApci13, iauAtccq, vvd - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Additions to Cookbooks -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -Forty SOFA routines are not mentioned in the existing cookbooks; in -some cases simply because the routine was developed after the relevant -cookbook had been written. To address this deficiency, enhancements -have been drafted to two of the existing cookbooks (those on astrometry -and Earth attitude) and a new one (on miscellaneous topics) has been -written. This new cookbook is available for each distribution i.e. -sofa_misc_f.pdf for Fortran and sofa_misc_c.pdf for ANSI C. Topics -include ecliptic and galactic coordinates, Hipparcos/FK5 and FK4/FK5 -transformations, geodesy and solar-system ephemerides. - -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2023 May 31 -* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deps/sofa/20231011/c/doc/changes.pdf b/deps/sofa/20231011/c/doc/changes.pdf deleted file mode 100644 index 127d7da6d9e83f8381bc21768d9d5c58f3d409ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11642 zcmcI~cU)81w(v=>q>|8+6F@{n6RLoK2^~ZQY=|uf2t|5R1k{9%f)o)OVuFa+0UOpy z=sJwT4CA$+CV+qpMl6Hazu-9c&VBRld*AoRm)|ev?7jACd+oK>+2`yvE5O5Rp4EJ7 z{H(5t(ptP7$O98XH{qR~x&ET~$kZs%UIPi@dPT>kijqODS1gn&@(_h3go|8V@hPdv zA}9`@UVUTb`h-XJ+S~qd&Y}CqiKQ!NJxDr8GLkyrs?WTSszpZ$g+kMZBNpWrzK)3n zpWm$y@*B#?^f%LE`WB5=XL7erGmeqSIg+k33h&6nPKp#xv66a`*9R<`)=&wh~BloIcPxzk za_*;3h6`lzkx3^njCkr?UAg~c#Wk>|^fW<{a@ZoyZV&0J+1<0};@#IhzFKvBTL=tq z_pvqU?!3LIGphJA{ilO*xBAM~K|U|v+%^o?SrEBDBd+Rs#FB^i@g7wAo58nUuJgcmy;3cmAK#AB-fRAcur)LW4*axq5MF zG+X<@hvwf`7B?Q9eEaUzm&aQqL#_`>@!N}8MmOG|oHnyoRV(fESC%geppFel-NEz9 zl3M!n%eK3R%t?Ktc@0xtTa5Oc8edhhtr}5mesQ@@;bu}n-m2eC@KMckp9UtkJWcBg zXnxpYbFpvJJipthGr5o9JyB1Vr|*foclf@U$M&}8$}`2;!WV2?o5OiG9T%UVyY9ZD z-n_?t>XTRkxxv{0nGy}RP@C5&fD=h8=Y7t=QF>EkPdJeJUGfxx}nw{3y> z2L8Hq=~;(M=2;Urw~-TGA$_aeTJL^YYoCK$m2+G$?hSpNWsts*ef=i8ZAta_Z8QQw`ds7am1XA}+>9{oI*|d>(d(Rj~S+NxQ1%JtF_B*$;iyk1|F)*XN|Q-Y;Bc zc+95vd5Es`%BpL+!a-o+yt(N|X8F=)_vtM@-*rkg9}qrUHob_W-0wOYR=@64Q!dQ! z=plFE{?Dl$);}ysINN%cGj{38>*p_v)hh+5)RB|}@jrIa@m|L%cgEj+D#a=g#w+9P z%$v+Utzo=+6z5f5`#JdHkn@vfU-8|Zf*tWt+8m~J6_B#3aJRMlI=wzh*cQQpqyN|) zok&pCWxWo&Si3iMT~@=n9j3nSsFz3Y%OlL8@#9Yb_rs|{$F6w0sBEckwi?>-m9l(WS}BB>VTRMN+2kaqav1-V3*`{&LK1OF3rU z)4qP07#cSTc?|Z&&M8~DWcB$Mb-`;t6=WGeGC3>eabQ+p&?Buk{mGeqPV=YBP!@p! z6l-;-xi_;IS~@ZhpHmfeQoF!nuj!E=<2-I0r40uq#FCa5vD&6u6Kk^%h(5kF==tGP z_A;HbKj-eh?$J4Wfy`#@?vA*(hk0k=f*bv32z4oUbKoHZy%}{kE}RNn6}o;G^Y?>$ zCn_&oXs$h}hb#CHM9`66EB*a-M?YcZE>X$NBU0(oK#Kp-s+fE2Tl{tp&TD(X6b&$r zZT#t=eqVmgj_Q3~?-PIF6%ltGZCG`01wndxY&YLfB-nPN!#v$_dqoWB&KZn2hTfX>~31$+8ql49-3B&eZ`C`S^L=iUtiWG5| zh{B^Gw}ff+9sUzn4gCK}>Yp>3 zq5ID=|0?aj#rhv*{+0UA_BSq?`0$L^Y?7nnBSEWg5y4%a7MeN}j59uG^_TVk%Z~e7 zc>GDnomudIc2-Bn3*u9v|JnD5j))Lx;#Cu%8ke=>#zn`crL6xK+Zi|bYtYSj&cD3m zn`lihZ226 z(UDQ#yE77I#%3t-TwhI8M289DBV#q`1xcqdo$jJ=PrTL|JsXA zNzqvCFOV7E)np%Yu7K;tb?16;J-J?7AFeOgkGq)b&t1Y@%3a0{;0AJoxXZaKxGTA< zxNEo}T!^djby0G3N(?uY8=4G-iDE?&seiPRXH@>yj1i^&6Rc_fF%ZTLONdQ~*IeV` zAZ|EU#1$o_L9yHjZbbBE5jR2;dE7{Dq~_g6BY+#ljpoL1W4W=SloW2dqOzX|%*`a?{jM!SS?Zena&3O9+Hl$MYx3J;CtCUaA`DWbUOKXgcm zPUoh?LMc()ltj%OxT)OKsAQ4mz9oU1#!ZV47bT~JB_xZuo4H%K>D;Z{3~q)fIbqJX zCDy#PiEKctZz=6xzVWU9-8uevujBfMtp4MrPP0sZ^;7ph-vSrd*x0zbe&4E!0Y1Q| z00<0{^3&+@^19o}If8bw_&#dV5ax=I+Waz6GrhyrQ@WCp=nCLm;R2m2!>o6VTmW!z z7&y3Ao8jk~}q~7F24}ZymLnVW7i9bKc`oNv~Hr(xBVlF*WFId=sAo_!c3cX(6A}T|S z4SkLqTlI|jI8`idKYAs%D&2}sHnWZ%>t1TTr>6tq=+PTwTX{Rb`9$OCI9*n!iOE<` zl$`+<>0aJDk?z9AqiV|o{1i!nl&IZy}C0lX0A05kv= zViX8(1XciZ#V8?M4&(wTG0+TPg+K^E-~)vKN)B8Cuu??52>=rVCSq72U<$y>08=q+ zKQIe`NdbK^TnHEd@F>7Q3{M2GV)$SHpaES6;9|f6&@i2!V68r9TO)R8Ej+QdKO;ut0GiBlK94 zm6_w<7_`w?@my^NKlW;hD6VxNE~FqSQ!cc2DxX}V5)%Vx!!m~@Wk~5bxrA>uWqAZC z#cwMX^2Yg;u->W|m2<%3`#0`^r4`4zF=`t2DXgwXkAH#&m#T9>5ofKiQYJ zi$SYJ$CEx44rG=CR?WuyRp~BQirRzkIPYxTPi>kwx`8zJ1*S#kGNa=?q9r@>_~FyL zLKcvB4~<^gjW9C1Qk!@njGE5c3rw43={yVc3Dyz!-DDqt9GtgRe6athMm$pzxn1{H z!;cQkElrGob&3^4&IsP|LLj$M;zmrigRdnQT?&JS{x@Bau#^w3Ka=TQsF)GVb>rg+lF z*%)9`WI}wY)g=myKNlmMro)A)_88%~L0I?}*t;@rfm}>iA~Sau#=3MW-_dwP4moK) z%o9M6UEE&xbDGOYiDfJ|BsguoiICdVu-y=+pa`Vqs>tyB;kHBfqHW zDpylCw%HKm)rh8oOM@Oc#YsKKy0bU8%Vp`)G!;9JB*U80-iaDt68;I8GprRyu+4(<#QVl)6cz)By*tmJqx#pN#FDG;P;@3WF#5;UcdBVh1V3 zZRKGs2QX5_z}e88oNOk^s$()D4xW^2-=|)O@afF`T z_5;CvfQ|39SeW19i3Ymax%^dl$@I^LM~h=htbWnkZy80jw9d3wZJd|8&Kpw+P)M~H3YhW@tM;uTI8*-RFCq!@9Cw#;)6N+EfM*Jp$@l-P&A>fW9!$hx z}u7KE&JWxID!arOht#jNREw*(a5@-n?P`A)mC>`Q3^qE09~yIcG{_ z+nqY5V>5ClGjm?OL?xSt1Bxd-51Pzpd7^6ImuPL6lk-Bu<5r1lTXfg#vWv9teus3Q zG`YPhDdoTmJ0dsY@a6Gv=Yo#k(LK9c?`P7@yzjSNWDIAPP_uMvqBdsa@H2~?LR{rB zI^>Bcm!c$iS7%O6xZwVxLdx_YYpiec5{D(2S98IFfwbFve_fJ74WNWFraX38VUrV> zr<+0xrFdh@=Qw-xR?%8x{R#ukS;$^C30~+_#J_Lc+OmrvY1hkn^iyfqO~Kak^Ty$j z8XmTN>1`lp4hAv@lN+n(?_=giDqZ#q!FRe__oYN+7#vIqUiZ__hf7B-pXbdP+g_1I z@`oMRu#l4;MIRd2K~VlYdr(Nw4I2m|+7Hv`1iypvS61TU7VVS2z4PRBO}@I(Y%W6B zqzjt}huySY(5d^7p&D3?zT~Q(hmD{qY<+U9EI7HsG&*c}F&1WP+}@34x&te;tQxrP z;!tU}t#j}0Qnz<4Y`y6+QXt2Y)ix&irFGWRoeDpFx5@o@X)GNHT%aKW4r^uCIZIvz zusr#>`n41Y8@TvsjO?D2sKoz-G*S%1N2QR0mVHFb= z%P1APc|KRe;Q^WXQgT3eU6m;5NbL2i(}=Z+RaFY|?2FQS%*jIqWfNjb;sVy~HlvgD z*C&6v6=@>TyOhumWUZG|r)EjPYs%!+j2(o7cjT`0k=(@7=AR(-r+S~gn+geW%}O;* z1u45D2I$asu@oQA?`8wVa7D}KVkfw8QcE$}^1_&uKYfSn!-jMLxtR`7ClNov@$Cu1 z+l-f$ELAqLYb|mT(2-10{BgBh-)7srnnpEauq3zd% zx@=Cv4u55))HX`+4nHw|yzw$@J~o?ob}I!uC+RIzrXhuRCZ+MKG`OB}6)}1<+Zzo? zzlh|1y;8hx*~lKsIH@sxha~hekj@rkfrfP@z#t^KaPC$tu`?7d>-k(d{dx3LS$!HH z4`D<10eLn~D#eH|5frXW<%RQdNJQ<}(9!2zihkSC|{D_E*cfGmZQbck|06!B`e!7E)r zRtzXwx4_!j5S4mMs3Y$cDmMw0%s6ZWOSJ`FPl@Lbvw?89LWQ^$yp2D78ZrkI4Ood7 zCA^K}ewj*6K^92tsSargE6qD!h{TQCvloWua6N?`3M7 zl1H~5{Cw^MEMf4i(3KIfj?S4Pqfe7@Z-{rN_W;`nWf@URzC6trSSR*;Qo3UAkYdje zOC+~h$|quBI7?%28JlNSNlV(#7NYdJrWu{<;IJu?T=$5OU`3XmPpZnc2}Ay(We2Iz zf~f*!FYm;ReX&+LfKRr8hq0RJ#FLoS|R}c-tB&vvL-w^XIeRfoAan zDVu5ums${^6?laMp704FUGB4s376e#P}=J$4$>7HbOBce$CWN{dJa(Nf5SFSP zkox*XWCHxwOKA<1IdjeU*J$W8^&>YGqfo3 z16$Yw$gk@vYZ&~(ALJ|)u(Z%8*GTTqQX1+DDi}~P^ECwvQ`TBKf}_oBp*prFd>5vl zAztmi^9g25ZUmh*fc+XAbQ7=$U_IXiK$BFZWdtWMdRZ+k;pv7z=P!_yEzT9)3nJA= z+S^9mG0R)uOW1%GY*_xo2Fa^m59enRLhZ3Xk5AN z=Wb)1B=>|MmH|~VVF8CZI}r*~s(?j>^lLcwG=&9Sz@tFsWSJpCd5^{~rh%O`;07FU z5(~KE#mS%MZfaFrO%!hU!fj9D$Tmdtuyj|UGGD0tYKf5!aMYx3G<-ze#QFHkz>6&4%Vjyq09JulR^j-?cxilBf7uNS*BfHf8;bMn zABW*FEbMO+aOq85=~?aOnlzAxsw^sl^`lB|DmXP%NUW`h*NqGUKoV6c#e;RYJY%+y zvV;GcyeV^uqLrd(H;_>by4~6V+xFPSYflG>VuL&6iJhEYeZPJ*zYr@HqJjLgf=+#? z-f;hYK$b=F>DA5e+j_YsLp+%&pB4)}Xt41jh{;kWx%FMn0xa1=Z}Q^OgUV#IDgdJp zgaX?j7Wuu)MZ;`fLcpDMUkoz!Y@<^ zOFfgC3r^CM4@nZ1me`&QF)0FVl8OR@`LJPSVj;;;_HLVW;kI{!z?L)H_f0@Luk)wt zKkWIDJ+CEBVLf0Ud~9mH>m;sV_O*pw(N2+O6eUqx5k!|b(>Ndl=B2H$U~-tuKyfO@ zvwpU})@Tp~?0gy%b80$0S@6=Ca}}%DjS|-o`D(oUa!gO|hpQ)9s*H$s+KA2t!VQjv$K)Rl#72owFy{kinAavv<wl39el?cGaiy>lO%;gFKb znbcESR08<^ReZW?l3H*O5ahB{sk&anId{jFi-)jJk9zcyfF^FisD&BwtNn~;= z9de*S7TSxQVVr5AY6>=cZ3kqj4La-9yG8K>^OudVCMD-zHuQE29G$+?oAWjPH`Pi zWEmwI(Fj!4D;fyD#cZ!q7|?!`?Opb9L-6S%uqgwOh?bV&OvE_YLBqMu1~zOx2dcy8 zkXEUy_U9T=hb}sLqDIke2&sXo>ueYu&pR&C_`q~henb{qLceCe{#xduYrOsvi)p&p zQg3k*tutJ^|HgyND1@p`B(Gr?uftBf24qK6b9m8*4^{;9tMYqkbBhUR5_-FvPUmpE zSo@fC%hi+N`WU4C+=%#1n}3$U>7D$|Jo=qI^>C;~>xDk>D~rMLV4N6a2$pIId$Tz; z2AlgEBI8CcvKTNAM$sTcvQ$g@b2jJLbMHvlhJ)IXmIO`)PTsC1eM=B_A_g{($Xjd7 zM)SY{vhY6f%vo|_ulC7l0R6bxzMH~PvzGfq|9CVY&TNoPq4_RMXbKITZ@6*q2-N)R z7;(F*)lg|cg(~Q>{R~*5Hf$9Ga$riB%qR!4j~@fLPM20vg$H3M+J50{95_IbPiP7I zZ529sU_V_v!4MAU0B>|SWe>+5mZ)0TFw|?=D!RgrAz*0>3~7)t6>>Z(0BF+J_&LS6 zE;U9JOVBiM z48$s5HG$~?#=i;+THca&tvS-~^$afK?+a{`0HbY9%$vZC{@*4I9$%Wy%G)S%+o~eW z^E~1{d-%%d`6Yfw0}ChL3>Y`Vf1q$1dkx3M0@hvMRGQfJ-6mKiF1$9$UhHR-^A@z- zRgnk1}&>l z;cyXekFVLNZ|7XSs2XPIKfn$weM_MAI~x%v!d29izd*8Yu=d@X#bs_^2bJde{}$NP#r4$gDf zwM1GGnHqgUKP}Ms*RqB%@ai@5ngA?a_1r8kkP5t7;l8KsR6dd&-`%-*cOHLY0jX_z z#Irc+w!Q1zjyYL4He7GJ{mhrQDAuzz>OH&fc2Buf+zxh4D>swZcoqWud=5^rzuuC5 zEb$VV;!#BODl2aJ#HS!8r~Jts>95KAhPI|I(&@RPMj1uCQbrK!eRi%yC=bZP8K~$~ zD90O2kIc<(Y;-9(s_X1THW_>CS*qlJ>Y$q*F!rXIik(+iiDV98%_ArB=NAnHzqZ$E zle;>W=3F6KTaOPqWr}~plFHeDquOW|;82L@z&lk4=;Kkr2>S5V`jaP>(~p-7_S{pq#@3^v&c4yR++){#|BAXM zULdhud0`gLr0l9i&LFVgCck~n6jDBjlW&uBwHR(WG#jP{Y6Q>aOq{X!wkc8h%9H~? zMvYiZ&%I^8a&JeG^Xlf2=v=cxSno-*!ffEu`kI{l(2~m%*yNV%V@XrK)S<1Gi}nl$ zTjx}?UtulZd;E$iktw{q_8(I&M`9kmb9tIUj97E=+`*&D8#h<)lj==c*Ni$?cu`E( zAU(^5gR5PNh7w!n6+)BOL2B47rYp4_$C)l04m(g(W(s_8Vhr_VL=gLY=6hk;`fcW` zcf*)2aseL8e{lVB;!?7p@go41#pXc$HeTjUdaZIYR?vWQmxfVbW3HIS`}*$YTZkj; zO!EX4cKJ$$o{3KkL3#@>T3`Wj2g$LCY-8MuSt45%?g^2!pH*KmsA z*1ZPZ6r{_a7PAJ&P1^VGqlab%?hLJ4(~*9jjFB4`x(`^DCWfHgz>m~gbN8;un`n3W z!GhLk*Ycpvc<&Y|ARW#uy8i>MHhk$$s?W;Ks6OUSWfyDk0=`t7<=Qq@MumHL+9q13 zx9=~b4*GZ%DtRUzTOFyPF11+56hsz&G&(w94wI-C9&4-$fcw_M4ulxzrWeK}OWko+ zXj7!YQ);NLM`0i(&s+Eo*E*eCMRoQCPL9*EW0x{S4;R73=#{YNjM~0QZOnbnp_sFY zu=gE~cq<>zJlX@XJbKSF4z;x~i znA95@KplUjYZ9W_Hk+BcN`}&BVc%ZWRjypI%(oY}&tFa3b>Rv2V3dpE*#dI$3U{o6 zW|C{p)*G5Y?Uec(D|B}u1&#FFq$vcFpGS2wi)gZ%AKKnhL368K22<6$$aR~;2QAYJ zn+Ei~rCuy0)^QgHIm`X^ev`0)$r9}iE%{MhY zIHXkNan%|};T+}gk>^I7EX z_qgrkixBwlr)=8~4rq6j#gUWDu4Ef!w*C6{bgq?}fzQ{nuYU^9vznsFU18*GQ$bI& zkahgT!sDtH2uzYWh*Vb7vV)hY^y+nna+7zLKXk^X|IS8!+D@|uGP~zsSMzEZ9eHKT zk^H$kXIqZW*_E1=Up|GKU6x(_OFvoFDKZE(^(vxSSoz%lQE#xlqLmLemh?@*XGbqT zG`KXec;elL*-Zv)*hH3?Z()i&6MbgO+r^mPuYxvZuKZ}?_MBH_wL;Ow3!0iWHSBt2Oap{ZZ6vd8oO`2+3k>}>472=F`1+Qv>(MKJRN6uGy>p&C zKc>cnhI@HW_hC%E_F``X!w-@}S&8Y4IdkBJs?2qoRLI{ViG{<{GBheR1czs!8daz& zDJxkO6vW8Us8#3&M*iV_H47F!P;jpO_`6Nc`sU8ub>D9pHsVlaYUGAjT~{OhotGx= z*f23Z=J){W^`#8XZSkG){MV-+?4{yNZQhfoYhF09@@|I|eJ-d!eU;TcI=m#^IHQy@ z_0h@He67ut1Fj!_T1%gIdbMvtoa!6@j7w>F-J)zWWc6x8-`645)gM3lzzIFDJX*Qk zG3wl*-Jx)bHLMH2e~uryQ=UN*rJE1uF{sF6o<&Iff*DEoZy! z?%dbZGKzWqXsws{3A*yP#FzP_T%_&(0zbrc=J&TwACoUQ_GJ0}Z@*q1k+S@|-NxCw zzZw6^_v5DQ*-z(;h@C@r_FEk}n)|R|TH}&%(NsR`g6o#%n)u7JKM^hRniy#E;LY;- zEbRHGGj72cOdG)P?70ex@P4G z=6rLJ%|JrZ=OMqrH^AzKH4a`2-<0`mblromUh6Y&|G5GC<9=T@w8ZV&JpGdJY3eiZ z#eq=MN$34ejzpR5#%venFDLg`od2o$a<%W===Fiij$~900$GV~P?`(wcma=4D%qiWi#l6~;O`lGimbzq2`8>umr`-*Dme`e&dP^Y$}P)& zfqqbcug_`*9Gj)F03DKBwA89h4K!o23oK$)PSz%Mk}Aj2A2I5zq$MiNO4!mt5FDq< z*I4YrvnR+KIvw7Fju`?MnCmsK_I5~Z{7>wqq zCew#wmqtZIM0i*ttJ75Kx3?6k%1KhEWoxq3P{5>vw~^njSZ+B@oudg!Mb*#@A9x}9 zZtU&j4KGhi)}-dFWcbS`i~Ih2Qu60#QvUDpTirir|J(HsZ<899H{&l4|7r8r%KLHN zX}!zr?>2vUfA9N$iSWMl|9_14tt?{;biy(%Pt~-{b&&Vu4#&bvHYI8%aXJYP@4t5J z?drQNdyC^g?cm7`{P$#eTBb5HC+*+!(6p2kl?BQc>{`&}2X9Er+?2EWFSnE1`o7mm zB>c7OZ?`%c-Jtq^fg{+`KbH3K@(!43>7YQ!-^XY5 zI0;UMRq)&FVAaM=Xa<}Dr=;bo;1o+A!0X^tI1SE#H~djJI1|oH%T&QxaF*pe8_u45 zN@S=~G=GfLllKT`TU=))!)iDO&Qay6GU1%Gd^jf?O;W)cSd*$&S+03m@FqAH&V%#e z&2WKAoi*)ksV&E?Y6j#z38(j(_3ixKCjD_B!wXj||Kl{a6zqMxg#3AY`vv&V2nu@l zaKr!wpx^*RDv9&;lOt%E^}d(dYIXZ9l7# zyb=@vKtRC2!Id_G`C%I)T9$e4bYRQB3DgZkVkTvZ5-b^o4tGCkI16%aw=ZN)w#3l7EzqgM_o}q{PM=1y@ShQeQR#)T!OaM_=xvVj-bFmcA%t; z+)x#BiRlFJ4Fox;0Gt6E1tA8g1C{`E16cva0n-2hM$mz)fOvp|kt;za-~|XVl7cc` z2H0XW1Bd|?fC!@lga{x7peuk>fT9C30J;u13=klTM*;%40R$c32@rn3J|{_FmX2rLWN@5DA5Y{jv-31 zfHvY`MDdK|h(x55YM>YgG6!EgOfJI{;>aK4$S}nYOFd6Hgk+zl+8FX1s5J_VMx#Mm z1Fck7>O`wIRMF^mcwHs^0Cb>^0T^`S45_YJ!>BYIU&yG3S}$9%j~V-@aiIxYx9so> zj9u$wd}?+f9Q|pGi8TZ;XLCrLvAMiXu7X`}!k96m-O9&4%6UrX{YF=oIUv$Zq4AMvJ@7z60%(z!O?2;j%-anGw|I4=* zGVAfH#S7x^D&1xi|0OmDV_nLYSbn%txV$R)Cq~TPsUq`&ilTU&Bu%D0BtE(j9s^*V zzkRnqg}Bii3UpmBOWKK#xwvwZ0!BR;NI11{&!&JgMG}0C!*bh4EGK&Xp$(&6tM2=4 zSzA98z|!rqE8fl}+KO*&n0au|=AY1Tzm93KTA_JQ_1f%G{a%BE~u?!q=^=W4MBiBz+g1 z_ib^m!$0=pVsoOD;Puj)q>UV-e~f5{`1SaO8=D=kwZ~G6cJ2CtUD;r8-+U+$h!N~U zM;7v_;l{pM#eMf34cmrxn?|Hdk*ftqaR0s9>Ez(ya||bJYDsIQQ%CkjD}4sMvuA*d z7-&?5!#3@;-k>k@rQ#jVu~tk$yxsDO%2^mBrN*_W?| z26e<9Be@?=+Ku1rAPqL7M+R~)c=yaTF0m!(4(thRniELI-*A4w=@mP(A0ALF1v+-t zPXDE5aGo5Nn0km-m5uTpCA}rLnseuk2nQ8CuRyFNhu!MN3GU0G8__dly_vl;Rp5AK zmD3I&ncV?-kQHyzSc|*-y6T={Wwk_#AbxgT_Pv55pKUE38a+MG_lgCHM@x=QfF$G< z34u^xqaZ*ldIjuwVMS}I^8dE8c=^*gYfnS&K}6asqQPMkU1ng0Vy}T@XJScZxV17{ z&OLQ7g`In6_(4*p1W#RCadx}Cecc-g{$|Ui`7UBWp2sT$qQklFZotSZ!r3|{J+&7i zwn~^g%yI3?RZJitw^38;9ji6dcH#4md7v8tKjVp3cJ4jI%-_t$F3vTcyK?mW7j-?d zF}Y#(y10LZuBEv2**>W2kqkyF*{yb`u1vJE6IUrt{-nEJ%gJRAl7f74$9-3nnfb~$ z^LOPToL!$o1jLZb&IUZlv^HYm*09psB)2PdA94x7&0k2PYEmoQdYfjl8IbC8M%g{h+crE{B)4r~PRgxpC zy_+<>Tgqo`j6Uv+mTQ`HO8OF*Ylsmf5LUDgRL-TD3$K+gXVS|IeV*aK7BP_d#`>pX|DE}H0^_N* z#rj}zQELcK?~*Y~i!^LSm10%})2m4K-K zMQxpc*6T{wceKV9S6+4@G~1JmfENktbqzs|v!ShV)T$U6rMXBHY!my~Fg}eqa){O7 zIUB&v^N9ieR2j5vcl^L?N%kuT_tq_iR%(H>&9kFbO^?E_d4hx)3!BR|F`c)^reg9B z#LDE{-TLCGMZ=ef9fpOaXXQ?vy)!w4_@EM$8LTx?HEsRJMI6Xz^O0yj{ zrzXB5TS52RzpObYy&Ln}MNbuSe&~B`ofg$}PleH7Qf&fSv6ViyyycgZaw+1yKGpBy znX3iee# z6O>YvBV4R?;QnYr9Vj2M-_`lN#dLd*Im&8fCqf}4;?rieKICD2E13=dT*ls5NI$sF z`qJs_Z6!F9RV-R&|8>3-^Q_RDEb6dr`)tXg^5JQxuJ^C-|2b>@(%PV|BL@cdj95>1 zPxJd#^lI3HH}d87iu*rCkF_P~e3M$raNpTO*vNJuwETEMS&I~mu(E!5+NJUEK7Ju7a@RcM!t1T0#K8d~>Fk)7 z((sA{*|-6S`c81fE1}M2)z~fez0ahW{cpX5a)cSM;^Lq*amuA1p`PQ$6UV>|*;Dq$ zyf5~J@K_c05^+RUW@9!$O42UM(?dVaWwlj!*YhP^K7G*ogsqqvZfr zL&s0Eu<{Z^B~un>i#vfR}<_G4mgWhcYB$T2wlOYE8N5b7K+K6!s zSft27S0xxAsp>FTq675HNhcPNo}lDtQRUZGB(0gE9NS_jmm>Lqp7NA@C*JD%(>*oB zr_P7NVvapdK`SdcVZAD^zROD5LyzvbAy%frc`xL%H+3RW(Oe0RI6kEeDq4?6hZB(I zDjBZ|`_%fHzXWUk)c$)%?LryZog< zyX4V9{2OO$1iuA?P*b>wY5MbVw@|85q3Q zj0fg_kQXQBWX+NyE2LbU2@Lar5)O&yD9>WFt)D2tnu0MB^C7 z00#RJQ5Q?znIc8p9n*Y?=wY#bj=+QwO|g8FFTZ6W2+F@f-f&PRS4QepoU_s$W?{u8 zhF}`lAOVN%w2cyDyV!8UO6Ei~*|AJ6oQ(ALuwI824aKT_rIOObd^n^B_&A|JIRdO# z+Z)ZXj|=x=3@K*lk$*>@28@%d(@z}|oN6HA;R%Li(yTbk+2o*Lkg6I6j&>frbCPit zBgdSp#>=IoLsZk4rpHUOgd?_fimfvGtZMW5qF%3*BV+Gw5N89@d z#A8TLI=0FNNJcYgY!u6uiHw=!3QR(~S$(E33mjt&S@U+i*eHu9Z9w*D>%ZUwXf_WCA~tecD80QZ1Oy(p2DQ&nWA-B1lk9zX-zI>3v!zQ?fAZyf_W^`hvmXq;Hh7Kd*%~UT^wKc=ODU|%f ziR7<)B_{p!>Dy`6gNUv;4*$Ko%sG?Vas+#!Q8*vMI1Z*3N97%gv018Vm8PUQ%;2qB z&~}N8UHZB0a#+eC?1y>C?}rsEd$5{;*U}Z`3|$tHhF3%kSKOIEjptqgK8ev9n#nAI z+^tMy4ATP8r4ob^pl`bz74dCPcy`))E{fS0Ges$t0L0?rItJ88*NV~rP7XB6PW!~s z)WI=!+Uq&?*D#WHgs9BFrUd(x|4>^})<6N)Xv0X8$r3KYP$sC+%V~pi%=kR2Z01US=x(j7O zp;E{n+MWuHq-urMLzNt;tNmGRR;?y|eP>Eco4u}FgvZnIP8Qx`m7{L3&QTRR2-?<2 zOoF8V)6UQ%)U`Tj$0!)*<=xx_1P2UTx9a+ZNTU$#5P%w6qfm@+90Z73KgK<4nsuYf z%VnJUtuGNTKcp4RTbDt?S$48oE1-!16j&)%s^oq|j4@T_YzLj&YcxLz_YSXIrXn}l zdEZuF#iaLUV!Z<@?d=8Fqi~9g&k;J4Cg*)4VBXs?U4R=CdXy+qM zzbgQ$qJpCMf{%9z&M*avXF}k2JLq@2*fNejoUNVDM*XezLTiLWGgMju2n8v#RaSEh zbGXV67U{-HZcg+s9VTS=A6wse6!f{K%x0pgBJ7#CTtoo7>>?&uXeJX4C*pm4!$TfY zzy}WVbb~x(h;R8*ys^;=1pr5^EVBjM?2KhhMbmDXs8LCF_000E%D*^TxaVxdfjbqb z0YMFGF38%}P8+fOaG^siwsim>4d9{fHuGaa**McQ2D%(5q;=XrbHqmrS1A@R9y**= z5tY^I9f}PuE%Tb$EaaZfjU1Dax-U!@WSlaN*+Wc#)1u0whv#D{rKz7jOp> z$U+6p)HO zbXx0PS|MG;K1B!CQPSlaV;Eo~eaw@q*dCk|c;e|EQ%T`?HZem(116amo*2ZkM>>wAd94a5S8E=$=qiYq-bbN%<-p55I zh|n7z{yWcP$J5)rE{i3|RPHiDQyt#dz0ZTPCKvEq(#+&_zoc2IiKFia9L&5&PZ<8{n{Cg!5%`9_q|TB}8L@NMA10)|D7f zh>=FR!r+FiqCi1ZAfJkt(R7D7N(vFE3X@$ty1U|^h6f__euMI-2FzIs6gNEUkeHT9 zCc2k{1a>a4Qh%2#JFCPn8B|0!q%e?HzJB!vki?TQxq4cO;SC1_*oHAa@J8^W$rgWT ztN3l>Vkb~}*WQSWv34<3CYZ-_04oLHirWTX2P|KVM=%VnY~+DXH_V16*o&G$;I~gv z7oN;96|)@HDMD>Po`PeiFSgRvTO*^^*Z>;{Vj<%!ll6)At2NOtfnj0kW7yG9x}LI# zVZQXSxF_Af-uq3IN8lYP;7PuEn5`TqU<}6fdK=ZK6zM;NU6z=-fHMG6;4CrK#^I~F zu?W=YegSHgg83RHXt!^xP&;M=G1;hlXKe{r@ATT3X(LPFwQmQ(iy}n>#Sl$bRFJVI z#&ez(62wuuesRe>@!%y}H_nH~1y^fr4ZXIyG10Ve&~%lExs(B0?RCLS;0^~Fv5N8j zS|1;WpYO(|uhFi#0M$rLz68AuPcJ-Ygt%x0AFU98>9%N-J(z9xmEAWW?@G%ouE~by zR?e5X^NeyE#Z5kTp0227DcTvjAR4oW(lN_&G|*%QDdIQ-eQ59E2FM;!^#(Fl%>ZuD zfm_i~5kVg+L_PU?+y&?=p^v1*cu=G`NCPw_mM1^ZW{VE9IC3PPDJ3s+GL%U{WUV4q zsud{oHXM_XgZoUF0KUwJCv)QKosL48QgG_#IqlT^?)HE?L}QG^w6c9wKlkx4n{vOw z(1CVA%Q2xx zU$U%&ioTHOJM7VZvEsT&Q7s6+?1&{weyXwi^b0z4kfCU!DT)}%T(PW9q{r-Bc@pKA zKtZ$DS2FGf(REE!T|Ql3Y^T(T!6JLdyn9y{-8-2=7;+Gpw#>wDNG1}wS^^g(54p+N zNWHb8!wM;;8ZOg7AzLP7YaKW;*{?>K{w1q0f>6U^rA1#=cAj$txD(S zFW1i$dDecIpjpYCb_IWO<*Ye+ZQyc)ZO3Nw14eV~m!bU|ftp#nzTXLW-v!L$+b%ds}CD&fm>H z85%|HBZnu=hd$&q-bwI05aCqSTvW2P;uXc-ari=m*U*Xl84vOE>M+rsutt#n;Y9p| z#W`8#|)pXd+;59@s_>r`Xz%Puq|W?*X@zpw))rP6Ghk0 z+Ifa%@TTH>OplMeLxi`}r$cFCKPRBE?*F$E=`l6a!bm}v_zPmk(OgIQf|_uW~tr&jA9w0KG``?u1cL_i3s^l_x7C@6!eZF z%vY;YEVPri4@3U%7v%5fH^UD~f&P>Q`dXOI$rqIQr)*~6Bv0@^W%2+EH}jvenSZyH z%e^g3<$u`D^!b~ux1}oospswIYhf+_!!|JRZ!+&d|G&$8{oaeAvHWnzP^m5dgaE-y z(h5|T8bB6CHp{|;P7)#z9GRJt1x@a$g_4a7g;vh7n1|2wpBdsaQ>hH|mj}*}D}4jy op~1esp)=)yzP>^Kx5ny8iZw@rsx@y5A0Q8uGp0@rTNKXtZ!WEqjsO4v diff --git a/deps/sofa/20231011/c/doc/contents.lis b/deps/sofa/20231011/c/doc/contents.lis deleted file mode 100644 index d3acfdb..0000000 --- a/deps/sofa/20231011/c/doc/contents.lis +++ /dev/null @@ -1,25 +0,0 @@ -contents.lis 2018 January 26 - - - -------- - CONTENTS - -------- - - - - - - 1) Introduction - - 2) The SOFA Astronomy Library - - 3) The SOFA Vector/Matrix Library - - 4) The individual routines - - - A1 The SOFA copyright notice - - A2 Constants - - A3 SOFA Board membership diff --git a/deps/sofa/20231011/c/doc/contents.pdf b/deps/sofa/20231011/c/doc/contents.pdf deleted file mode 100644 index e5b392d709bf69b428566deaf92dfecca65b6288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7025 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 diff --git a/deps/sofa/20231011/c/doc/copyr.lis b/deps/sofa/20231011/c/doc/copyr.lis deleted file mode 100644 index 5323a53..0000000 --- a/deps/sofa/20231011/c/doc/copyr.lis +++ /dev/null @@ -1,111 +0,0 @@ -copyr.lis 2023 April 17 - - -COPYRIGHT NOTICE - -Text equivalent to that below appears at the end of every SOFA routine -(with one exception). There are small formatting differences between -the Fortran and C versions. - -The one exception is the "leap second" routine DAT. This uniquely is -classified as "user replaceable", and has a mitigated license statement -that permits the distribution of local variants under the same name. -This measure allows other SOFA routines to call the local variant, which -may be file or network based, or otherwise equipped to pick up IERS leap -second updates with no need to download new SOFA code. - -*+---------------------------------------------------------------------- -* -* Copyright (C) 2023 -* 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 -* -*----------------------------------------------------------------------- diff --git a/deps/sofa/20231011/c/doc/copyr.pdf b/deps/sofa/20231011/c/doc/copyr.pdf deleted file mode 100644 index 548655a7ed66c7be6c975f9c65c5c4f6139d8ef2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11677 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 GCRS, geocentric, special - APCG13 prepare for ICRS <-> GCRS, geocentric - APCI prepare for ICRS <-> CIRS, terrestrial, special - APCI13 prepare for ICRS <-> CIRS, terrestrial - APCO prepare for ICRS <-> observed, terrestrial, special - APCO13 prepare for ICRS <-> observed, terrestrial - APCS prepare for ICRS <-> CIRS, space, special - APCS13 prepare for ICRS <-> CIRS, space - APER insert ERA into context - APER13 update context for Earth rotation - APIO prepare for CIRS <-> observed, terrestrial, special - APIO13 prepare for CIRS <-> observed, terrestrial - ATCC13 catalog -> astrometric - ATCCQ quick catalog -> astrometric - ATCI13 catalog -> CIRS - ATCIQ quick ICRS -> CIRS - ATCIQN quick ICRS -> CIRS, multiple deflections - ATCIQZ quick astrometric ICRS -> CIRS - ATCO13 ICRS -> observed - ATIC13 CIRS -> ICRS - ATICQ quick CIRS -> ICRS - ATICQN quick CIRS -> ICRS, multiple deflections - ATIO13 CIRS -> observed - ATIOQ quick CIRS -> observed - ATOC13 observed -> astrometric ICRS - ATOI13 observed -> CIRS - ATOIQ quick observed -> CIRS - LD light deflection by a single solar-system body - LDN light deflection by multiple solar-system bodies - LDSUN light deflection by the Sun - PMPX apply proper motion and parallax - PMSAFE apply proper motion, with zero-parallax precautions - PVTOB observatory position and velocity - PVSTAR space motion pv-vector to star catalog data - REFCO refraction constants - STARPM apply proper motion - STARPV star catalog data to space motion pv-vector - - Time scales - - D2DTF format 2-part JD for output - DAT Delta(AT) (=TAI-UTC) for a given UTC date - DTDB TDB-TT - DTF2D encode time and date fields into 2-part JD - TAITT TAI to TT - TAIUT1 TAI to UT1 - TAIUTC TAI to UTC - TCBTDB TCB to TDB - TCGTT TCG to TT - TDBTCB TDB to TCB - TDBTT TDB to TT - TTTAI TT to TAI - TTTCG TT to TCG - TTTDB TT to TDB - TTUT1 TT to UT1 - UT1TAI UT1 to TAI - UT1TT UT1 to TT - UT1UTC UT1 to UTC - UTCTAI UTC to TAI - UTCUT1 UTC to UT1 - - Earth rotation angle and sidereal time - - EE00 equation of the equinoxes, IAU 2000 - EE00A equation of the equinoxes, IAU 2000A - EE00B equation of the equinoxes, IAU 2000B - EE06A equation of the equinoxes, IAU 2006/2000A - EECT00 equation of the equinoxes complementary terms, IAU 2000 - EQEQ94 equation of the equinoxes, IAU 1994 - ERA00 Earth rotation angle, IAU 2000 - GMST00 Greenwich mean sidereal time, IAU 2000 - GMST06 Greenwich mean sidereal time, IAU 2006 - GMST82 Greenwich mean sidereal time, IAU 1982 - GST00A Greenwich apparent sidereal time, IAU 2000A - GST00B Greenwich apparent sidereal time, IAU 2000B - GST06 Greenwich apparent ST, IAU 2006, given NPB matrix - GST06A Greenwich apparent sidereal time, IAU 2006/2000A - GST94 Greenwich apparent sidereal time, IAU 1994 - - Ephemerides (limited precision) - - EPV00 Earth position and velocity - MOON98 Moon position and velocity - PLAN94 major-planet position and velocity - - Precession, nutation, polar motion - - BI00 frame bias components, IAU 2000 - BP00 frame bias and precession matrices, IAU 2000 - BP06 frame bias and precession matrices, IAU 2006 - BPN2XY extract CIP X,Y coordinates from NPB matrix - C2I00A celestial-to-intermediate matrix, IAU 2000A - C2I00B celestial-to-intermediate matrix, IAU 2000B - C2I06A celestial-to-intermediate matrix, IAU 2006/2000A - C2IBPN celestial-to-intermediate matrix, given NPB matrix, IAU 2000 - C2IXY celestial-to-intermediate matrix, given X,Y, IAU 2000 - C2IXYS celestial-to-intermediate matrix, given X,Y and s - C2T00A celestial-to-terrestrial matrix, IAU 2000A - C2T00B celestial-to-terrestrial matrix, IAU 2000B - C2T06A celestial-to-terrestrial matrix, IAU 2006/2000A - C2TCIO form CIO-based celestial-to-terrestrial matrix - C2TEQX form equinox-based celestial-to-terrestrial matrix - C2TPE celestial-to-terrestrial matrix given nutation, IAU 2000 - C2TXY celestial-to-terrestrial matrix given CIP, IAU 2000 - EO06A equation of the origins, IAU 2006/2000A - EORS equation of the origins, given NPB matrix and s - FW2M Fukushima-Williams angles to r-matrix - FW2XY Fukushima-Williams angles to X,Y - LTP long-term precession matrix - LTPB long-term precession matrix, including ICRS frame bias - LTPECL long-term precession of the ecliptic - LTPEQU long-term precession of the equator - NUM00A nutation matrix, IAU 2000A - NUM00B nutation matrix, IAU 2000B - NUM06A nutation matrix, IAU 2006/2000A - NUMAT form nutation matrix - NUT00A nutation, IAU 2000A - NUT00B nutation, IAU 2000B - NUT06A nutation, IAU 2006/2000A - NUT80 nutation, IAU 1980 - NUTM80 nutation matrix, IAU 1980 - OBL06 mean obliquity, IAU 2006 - OBL80 mean obliquity, IAU 1980 - PB06 zeta,z,theta precession angles, IAU 2006, including bias - PFW06 bias-precession Fukushima-Williams angles, IAU 2006 - PMAT00 precession matrix (including frame bias), IAU 2000 - PMAT06 PB matrix, IAU 2006 - PMAT76 precession matrix, IAU 1976 - PN00 bias/precession/nutation results, IAU 2000 - PN00A bias/precession/nutation, IAU 2000A - PN00B bias/precession/nutation, IAU 2000B - PN06 bias/precession/nutation results, IAU 2006 - PN06A bias/precession/nutation results, IAU 2006/2000A - PNM00A classical NPB matrix, IAU 2000A - PNM00B classical NPB matrix, IAU 2000B - PNM06A classical NPB matrix, IAU 2006/2000A - PNM80 precession/nutation matrix, IAU 1976/1980 - P06E precession angles, IAU 2006, equinox based - POM00 polar motion matrix - PR00 IAU 2000 precession adjustments - PREC76 accumulated precession angles, IAU 1976 - S00 the CIO locator s, given X,Y, IAU 2000A - S00A the CIO locator s, IAU 2000A - S00B the CIO locator s, IAU 2000B - S06 the CIO locator s, given X,Y, IAU 2006 - S06A the CIO locator s, IAU 2006/2000A - SP00 the TIO locator s', IERS 2003 - XY06 CIP, IAU 2006/2000A, from series - XYS00A CIP and s, IAU 2000A - XYS00B CIP and s, IAU 2000B - XYS06A CIP and s, IAU 2006/2000A - - Fundamental arguments for nutation etc. - - FAD03 mean elongation of the Moon from the Sun - FAE03 mean longitude of Earth - FAF03 mean argument of the latitude of the Moon - FAJU03 mean longitude of Jupiter - FAL03 mean anomaly of the Moon - FALP03 mean anomaly of the Sun - FAMA03 mean longitude of Mars - FAME03 mean longitude of Mercury - FANE03 mean longitude of Neptune - FAOM03 mean longitude of the Moon's ascending node - FAPA03 general accumulated precession in longitude - FASA03 mean longitude of Saturn - FAUR03 mean longitude of Uranus - FAVE03 mean longitude of Venus - - Star catalog conversions - - FK52H transform FK5 star data into the Hipparcos system - FK5HIP FK5 to Hipparcos rotation and spin - FK5HZ FK5 to Hipparcos assuming zero Hipparcos proper motion - H2FK5 transform Hipparcos star data into the FK5 system - HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion - FK425 transform FK4 star data into FK5 - FK45Z FK4 to FK5 assuming zero FK5 proper motion - FK524 transform FK5 star data into FK4 - FK54Z FK5 to FK4 assuming zero FK5 proper motion - - Ecliptic coordinates - - ECEQ06 ecliptic to ICRS, IAU 2006 - ECM06 rotation matrix, ICRS to ecliptic, IAU 2006 - EQEC06 ICRS to ecliptic, IAU 2006 - LTECEQ ecliptic to ICRS, long term - LTECM rotation matrix, ICRS to ecliptic, long-term - LTEQEC ICRS to ecliptic, long term - - Galactic coordinates - - G2ICRS transform IAU 1958 galactic coordinates to ICRS - ICRS2G transform ICRS coordinates to IAU 1958 Galactic - - Geodetic/geocentric - - EFORM a,f for a nominated Earth reference ellipsoid - GC2GD geocentric to geodetic for a nominated ellipsoid - GC2GDE geocentric to geodetic given ellipsoid a,f - GD2GC geodetic to geocentric for a nominated ellipsoid - GD2GCE geodetic to geocentric given ellipsoid a,f - - Gnomonic projection - - TPORS solve for tangent point, spherical - TPORV solve for tangent point, vector - TPSTS deproject tangent plane to celestial, spherical - TPSTV deproject tangent plane to celestial, vector - TPXES project celestial to tangent plane, spherical - TPXEV project celestial to tangent plane, vector - - Horizon/equatorial - - AE2HD (azimuth, altitude) to (hour angle, declination) - HD2AE (hour angle, declination) to (azimuth, altitude) - HD2PA parallactic angle - - Obsolete - - C2TCEO former name of C2TCIO - - -CALLS: FORTRAN VERSION - - CALL iau_AB ( PNAT, V, S, BM1, PPR ) - CALL iau_AE2HD ( AZ, EL, PHI, HA, DEC ) - CALL iau_APCG ( DATE1, DATE2, EB, EH, ASTROM ) - CALL iau_APCG13 ( DATE1, DATE2, ASTROM ) - CALL iau_APCI ( DATE1, DATE2, EB, EH, X, Y, S, ASTROM ) - CALL iau_APCI13 ( DATE1, DATE2, ASTROM, EO ) - CALL iau_APCO ( DATE1, DATE2, EB, EH, X, Y, S, - : THETA, ELONG, PHI, HM, XP, YP, SP, - : REFA, REFB, ASTROM ) - CALL iau_APCO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, - : PHPA, TC, RH, WL, ASTROM, EO, J ) - CALL iau_APCS ( DATE1, DATE2, PV, EB, EH, ASTROM ) - CALL iau_APCS13 ( DATE1, DATE2, PV, ASTROM ) - CALL iau_APER ( THETA, ASTROM ) - CALL iau_APER13 ( UT11, UT12, ASTROM ) - CALL iau_APIO ( SP, THETA, ELONG, PHI, HM, XP, YP, - : REFA, REFB, ASTROM ) - CALL iau_APIO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, - : PHPA, TC, RH, WL, ASTROM, J ) - CALL iau_ATCC13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RA, DA ) - CALL iau_ATCCQ ( RC, DC, PR, PD, PX, RV, ASTROM, RA, DA ) - CALL iau_ATCI13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RI, DI, EO ) - CALL iau_ATCIQ ( RC, DC, PR, PD, PX, RV, ASTROM, RI, DI ) - CALL iau_ATCIQN ( RC, DC, PR, PD, PX, RV, ASTROM, N, B, RI, DI ) - CALL iau_ATCIQZ ( RC, DC, ASTROM, RI, DI ) - CALL iau_ATCO13 ( RC, DC, PR, PD, PX, RV, UTC1, UTC2, DUT1, ELONG, - : PHI, HM, XP, YP, PHPA, TC, RH, WL, - : AOB, ZOB, HOB, DOB, ROB, EO, J ) - CALL iau_ATIC13 ( RI, DI, DATE1, DATE2, RC, DC, EO ) - CALL iau_ATICQ ( RI, DI, ASTROM, RC, DC ) - CALL iau_ATICQN ( RI, DI, ASTROM, N, B, RC, DC ) - CALL iau_ATIO13 ( RI, DI, UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, - : PHPA, TC, RH, WL, AOB, ZOB, HOB, DOB, ROB, J ) - CALL iau_ATIOQ ( RI, DI, ASTROM, AOB, ZOB, HOB, DOB, ROB ) - CALL iau_ATOC13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, - : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, - : RC, DC, J ) - CALL iau_ATOI13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, - : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, - : RI, DI, J ) - CALL iau_ATOIQ ( TYPE, OB1, OB2, ASTROM, RI, DI ) - CALL iau_BI00 ( DPSIBI, DEPSBI, DRA ) - CALL iau_BP00 ( DATE1, DATE2, RB, RP, RBP ) - CALL iau_BP06 ( DATE1, DATE2, RB, RP, RBP ) - CALL iau_BPN2XY ( RBPN, X, Y ) - CALL iau_C2I00A ( DATE1, DATE2, RC2I ) - CALL iau_C2I00B ( DATE1, DATE2, RC2I ) - CALL iau_C2I06A ( DATE1, DATE2, RC2I ) - CALL iau_C2IBPN ( DATE1, DATE2, RBPN, RC2I ) - CALL iau_C2IXY ( DATE1, DATE2, X, Y, RC2I ) - CALL iau_C2IXYS ( X, Y, S, RC2I ) - CALL iau_C2T00A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) - CALL iau_C2T00B ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) - CALL iau_C2T06A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) - CALL iau_C2TCEO ( RC2I, ERA, RPOM, RC2T ) - CALL iau_C2TCIO ( RC2I, ERA, RPOM, RC2T ) - CALL iau_C2TEQX ( RBPN, GST, RPOM, RC2T ) - CALL iau_C2TPE ( TTA, TTB, UTA, UTB, DPSI, DEPS, XP, YP, RC2T ) - CALL iau_C2TXY ( TTA, TTB, UTA, UTB, X, Y, XP, YP, RC2T ) - CALL iau_CAL2JD ( IY, IM, ID, DJM0, DJM, J ) - CALL iau_D2DTF ( SCALE, NDP, D1, D2, IY, IM, ID, IHMSF, J ) - CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J ) - D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V ) - CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J ) - CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD ) - CALL iau_ECM06 ( DATE1, DATE2, RM ); - D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI ) - D = iau_EE00A ( DATE1, DATE2 ) - D = iau_EE00B ( DATE1, DATE2 ) - D = iau_EE06A ( DATE1, DATE2 ) - D = iau_EECT00 ( DATE1, DATE2 ) - CALL iau_EFORM ( N, A, F, J ) - D = iau_EO06A ( DATE1, DATE2 ) - D = iau_EORS ( RNPB, S ) - D = iau_EPB ( DJ1, DJ2 ) - CALL iau_EPB2JD ( EPB, DJM0, DJM ) - D = iau_EPJ ( DJ1, DJ2 ) - CALL iau_EPJ2JD ( EPJ, DJM0, DJM ) - CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J ) - CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB ) - D = iau_EQEQ94 ( DATE1, DATE2 ) - D = iau_ERA00 ( DJ1, DJ2 ) - D = iau_FAD03 ( T ) - D = iau_FAE03 ( T ) - D = iau_FAF03 ( T ) - D = iau_FAJU03 ( T ) - D = iau_FAL03 ( T ) - D = iau_FALP03 ( T ) - D = iau_FAMA03 ( T ) - D = iau_FAME03 ( T ) - D = iau_FANE03 ( T ) - D = iau_FAOM03 ( T ) - D = iau_FAPA03 ( T ) - D = iau_FASA03 ( T ) - D = iau_FAUR03 ( T ) - D = iau_FAVE03 ( T ) - CALL iau_FK425 ( R1950, D1950, DR1950, DD1950, P1950, V1950, - : R2000, D2000, DR2000, DD2000, P2000, V2000 ) - CALL iau_FK45Z ( R1950, D1950, BEPOCH, R2000, D2000 ) - CALL iau_FK524 ( R2000, D2000, DR2000, DD2000, P2000, V2000, - : R1950, D1950, DR1950, DD1950, P1950, V1950 ) - CALL iau_FK52H ( R5, D5, DR5, DD5, PX5, RV5, - : RH, DH, DRH, DDH, PXH, RVH ) - CALL iau_FK54Z ( R2000, D2000, BEPOCH, R1950, D1950, DR1950, DD1950 ) - CALL iau_FK5HIP ( R5H, S5H ) - CALL iau_FK5HZ ( R5, D5, DATE1, DATE2, RH, DH ) - CALL iau_FW2M ( GAMB, PHIB, PSI, EPS, R ) - CALL iau_FW2XY ( GAMB, PHIB, PSI, EPS, X, Y ) - CALL iau_G2ICRS ( DL, DB, DR, DD ) - CALL iau_GC2GD ( N, XYZ, ELONG, PHI, HEIGHT, J ) - CALL iau_GC2GDE ( A, F, XYZ, ELONG, PHI, HEIGHT, J ) - CALL iau_GD2GC ( N, ELONG, PHI, HEIGHT, XYZ, J ) - CALL iau_GD2GCE ( A, F, ELONG, PHI, HEIGHT, XYZ, J ) - D = iau_GMST00 ( UTA, UTB, TTA, TTB ) - D = iau_GMST06 ( UTA, UTB, TTA, TTB ) - D = iau_GMST82 ( UTA, UTB ) - D = iau_GST00A ( UTA, UTB, TTA, TTB ) - D = iau_GST00B ( UTA, UTB ) - D = iau_GST06 ( UTA, UTB, TTA, TTB, RNPB ) - D = iau_GST06A ( UTA, UTB, TTA, TTB ) - D = iau_GST94 ( UTA, UTB ) - CALL iau_H2FK5 ( RH, DH, DRH, DDH, PXH, RVH, - : R5, D5, DR5, DD5, PX5, RV5 ) - CALL iau_HD2AE ( HA, DEC, PHI, AZ, EL ) - D = iau_HD2PA ( HA, DEC, PHI ) - CALL iau_HFK5Z ( RH, DH, DATE1, DATE2, R5, D5, DR5, DD5 ) - CALL iau_ICRS2G ( DR, DD, DL, DB ) - CALL iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J ) - CALL iau_JDCALF ( NDP, DJ1, DJ2, IYMDF, J ) - CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 ) - CALL iau_LDN ( N, B, OB, SC, SN ) - CALL iau_LDSUN ( P, E, EM, P1 ) - CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD ) - CALL iau_LTECM ( EPJ, RM] ) - CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB ) - CALL iau_LTP ( EPJ, RP ) - CALL iau_LTPB ( EPJ, RPB ) - CALL iau_LTPECL ( EPJ, VEC ) - CALL iau_LTPEQU ( EPJ, VEQ ) - CALL iau_MOON98 ( DATE1, DATE2, PV ) - CALL iau_NUM00A ( DATE1, DATE2, RMATN ) - CALL iau_NUM00B ( DATE1, DATE2, RMATN ) - CALL iau_NUM06A ( DATE1, DATE2, RMATN ) - CALL iau_NUMAT ( EPSA, DPSI, DEPS, RMATN ) - CALL iau_NUT00A ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUT00B ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUT06A ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUT80 ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUTM80 ( DATE1, DATE2, RMATN ) - D = iau_OBL06 ( DATE1, DATE2 ) - D = iau_OBL80 ( DATE1, DATE2 ) - CALL iau_PB06 ( DATE1, DATE2, BZETA, BZ, BTHETA ) - CALL iau_PFW06 ( DATE1, DATE2, GAMB, PHIB, PSIB, EPSA ) - CALL iau_PLAN94 ( DATE1, DATE2, NP, PV, J ) - CALL iau_PMAT00 ( DATE1, DATE2, RBP ) - CALL iau_PMAT06 ( DATE1, DATE2, RBP ) - CALL iau_PMAT76 ( DATE1, DATE2, RMATP ) - CALL iau_PMPX ( RC, DC, PR, PD, PX, RV, PMT, POB, PCO ) - CALL iau_PMSAFE ( RA1, DEC1, PMR1, PMD1, PX1, RV1, - : EP1A, EP1B, EP2A, EP2B, - : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) - CALL iau_PN00 ( DATE1, DATE2, DPSI, DEPS, - : EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN00A ( DATE1, DATE2, - : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN00B ( DATE1, DATE2, - : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN06 ( DATE1, DATE2, DPSI, DEPS, - : EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN06A ( DATE1, DATE2, - : DPSI, DEPS, RB, RP, RBP, RN, RBPN ) - CALL iau_PNM00A ( DATE1, DATE2, RBPN ) - CALL iau_PNM00B ( DATE1, DATE2, RBPN ) - CALL iau_PNM06A ( DATE1, DATE2, RNPB ) - CALL iau_PNM80 ( DATE1, DATE2, RMATPN ) - CALL iau_P06E ( DATE1, DATE2, - : EPS0, PSIA, OMA, BPA, BQA, PIA, BPIA, - : EPSA, CHIA, ZA, ZETAA, THETAA, PA, GAM, PHI, PSI ) - CALL iau_POM00 ( XP, YP, SP, RPOM ) - CALL iau_PR00 ( DATE1, DATE2, DPSIPR, DEPSPR ) - CALL iau_PREC76 ( DATE01, DATE02, DATE11, DATE12, ZETA, Z, THETA ) - CALL iau_PVSTAR ( PV, RA, DEC, PMR, PMD, PX, RV, J ) - CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PV ) - CALL iau_REFCO ( PHPA, TC, RH, WL, REFA, REFB ) - D = iau_S00 ( DATE1, DATE2, X, Y ) - D = iau_S00A ( DATE1, DATE2 ) - D = iau_S00B ( DATE1, DATE2 ) - D = iau_S06 ( DATE1, DATE2, X, Y ) - D = iau_S06A ( DATE1, DATE2 ) - D = iau_SP00 ( DATE1, DATE2 ) - CALL iau_STARPM ( RA1, DEC1, PMR1, PMD1, PX1, RV1, - : EP1A, EP1B, EP2A, EP2B, - : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) - CALL iau_STARPV ( RA, DEC, PMR, PMD, PX, RV, PV, J ) - CALL iau_TAITT ( TAI1, TAI2, TT1, TT2, J ) - CALL iau_TAIUT1 ( TAI1, TAI2, DTA, UT11, UT12, J ) - CALL iau_TAIUTC ( TAI1, TAI2, UTC1, UTC2, J ) - CALL iau_TCBTDB ( TCB1, TCB2, TDB1, TDB2, J ) - CALL iau_TCGTT ( TCG1, TCG2, TT1, TT2, J ) - CALL iau_TDBTCB ( TDB1, TDB2, TCB1, TCB2, J ) - CALL iau_TDBTT ( TDB1, TDB2, DTR, TT1, TT2, J ) - CALL iau_TPORS ( XI, ETA, A, B, A01, B01, A02, B02, N ) - CALL iau_TPORV ( XI, ETA, V, V01, V02, N ) - CALL iau_TPSTS ( XI, ETA, A0, B0, A, B ) - CALL iau_TPSTV ( XI, ETA, V0, V ) - CALL iau_TPXES ( A, B, A0, B0, XI, ETA, J ) - CALL iau_TPXEV ( V, V0, XI, ETA, J ) - CALL iau_TTTAI ( TT1, TT2, TAI1, TAI2, J ) - CALL iau_TTTCG ( TT1, TT2, TCG1, TCG2, J ) - CALL iau_TTTDB ( TT1, TT2, DTR, TDB1, TDB2, J ) - CALL iau_TTUT1 ( TT1, TT2, DT, UT11, UT12, J ) - CALL iau_UT1TAI ( UT11, UT12, TAI1, TAI2, J ) - CALL iau_UT1TT ( UT11, UT12, DT, TT1, TT2, J ) - CALL iau_UT1UTC ( UT11, UT12, DUT, UTC1, UTC2, J ) - CALL iau_UTCTAI ( UTC1, UTC2, DTA, TAI1, TAI2, J ) - CALL iau_UTCUT1 ( UTC1, UTC2, DUT, UT11, UT12, J ) - CALL iau_XY06 ( DATE1, DATE2, X, Y ) - CALL iau_XYS00A ( DATE1, DATE2, X, Y, S ) - CALL iau_XYS00B ( DATE1, DATE2, X, Y, S ) - CALL iau_XYS06A ( DATE1, DATE2, X, Y, S ) - - -CALLS: C VERSION - - iauAb ( pnat, v, s, bm1, ppr ); - iauAe2hd ( az, el, phi, &ha, &dec ); - iauApcg ( date1, date2, eb, eh, &astrom ); - iauApcg13 ( date1, date2, &astrom ); - iauApci ( date1, date2, eb, eh, x, y, s, &astrom ); - iauApci13 ( date1, date2, &astrom, &eo ); - iauApco ( date1, date2, eb, eh, x, y, s, - theta, elong, phi, hm, xp, yp, sp, - refa, refb, &astrom ); - i = iauApco13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom, &eo ); - iauApcs ( date1, date2, pv, eb, eh, &astrom ); - iauApcs13 ( date1, date2, pv, &astrom ); - iauAper ( theta, &astrom ); - iauAper13 ( ut11, ut12, &astrom ); - iauApio ( sp, theta, elong, phi, hm, xp, yp, refa, refb, - &astrom ); - i = iauApio13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom ); - iauAtcc13 ( rc, dc, pr, pd, px, rv, date1, date2, &ra, &da ); - iauAtccq ( rc, dc, pr, pd, px, rv, &astrom, &ra, &da ); - iauAtci13 ( rc, dc, pr, pd, px, rv, date1, date2, - &ri, &di, &eo ); - iauAtciq ( rc, dc, pr, pd, px, rv, &astrom, &ri, &di ); - iauAtciqn ( rc, dc, pr, pd, px, rv, astrom, n, b, &ri, &di ); - iauAtciqz ( rc, dc, &astrom, &ri, &di ); - i = iauAtco13 ( rc, dc, pr, pd, px, rv, utc1, utc2, dut1, - elong phi, hm, xp, yp, phpa, tc, rh, wl, - aob, zob, hob, dob, rob, eo ); - iauAtic13 ( ri, di, date1, date2, &rc, &dc, &eo ); - iauAticq ( ri, di, &astrom, &rc, &dc ); - iauAticqn ( ri, di, astrom, n, b, &rc, &dc ); - i = iauAtio13 ( ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, aob, zob, hob, dob, rob ); - iauAtioq ( ri, di, &astrom, &aob, &zob, &hob, &dob, &rob ); - i = iauAtoc13 ( type, ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &rc, &dc ); - i = iauAtoi13 ( type, ob1, ob2, utc1, utc2, dut1, elong, phi, hm, - xp, yp, phpa, tc, rh, wl, &ri, &di ); - iauAtoiq ( type, ob1, ob2, &astrom, &ri, &di ); - iauBi00 ( &dpsibi, &depsbi, &dra ); - iauBp00 ( date1, date2, rb, rp, rbp ); - iauBp06 ( date1, date2, rb, rp, rbp ); - iauBpn2xy ( rbpn, &x, &y ); - iauC2i00a ( date1, date2, rc2i ); - iauC2i00b ( date1, date2, rc2i ); - iauC2i06a ( date1, date2, rc2i ); - iauC2ibpn ( date1, date2, rbpn, rc2i ); - iauC2ixy ( date1, date2, x, y, rc2i ); - iauC2ixys ( x, y, s, rc2i ); - iauC2t00a ( tta, ttb, uta, utb, xp, yp, rc2t ); - iauC2t00b ( tta, ttb, uta, utb, xp, yp, rc2t ); - iauC2t06a ( tta, ttb, uta, utb, xp, yp, rc2t ); - iauC2tcio ( rc2i, era, rpom, rc2t ); - iauC2teqx ( rbpn, gst, rpom, rc2t ); - iauC2tpe ( tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t ); - iauC2txy ( tta, ttb, uta, utb, x, y, xp, yp, rc2t ); - i = iauCal2jd ( iy, im, id, &djm0, &djm ); - i = iauD2dtf ( scale, ndp, d1, d2, &iy, &im, &id, ihmsf ); - i = iauDat ( iy, im, id, fd, &deltat ); - d = iauDtdb ( date1, date2, ut, elong, u, v ); - i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 ); - iauEceq06 ( date1, date2, dl, db, &dr, &dd ); - iauEcm06 ( date1, date2, rm ); - d = iauEe00 ( date1, date2, epsa, dpsi ); - d = iauEe00a ( date1, date2 ); - d = iauEe00b ( date1, date2 ); - d = iauEe06 ( date1, date2 ); - d = iauEect00 ( date1, date2 ); - i = iauEform ( n, &a, &f ); - d = iauEo06 ( date1, date2 ); - d = iauEors ( rnpb, s ); - d = iauEpb ( dj1, dj2 ); - iauEpb2jd ( epb, &djm0, &djm ); - d = iauEpj ( dj1, dj2 ); - iauEpj2jd ( epj, &djm0, &djm ); - i = iauEpv00 ( dj1, dj2, pvh, pvb ); - iauEqec06 ( date1, date2, dr, dd, &dl, &db ); - d = iauEqeq94 ( date1, date2 ); - d = iauEra00 ( dj1, dj2 ); - d = iauFad03 ( t ); - d = iauFae03 ( t ); - d = iauFaf03 ( t ); - d = iauFaju03 ( t ); - d = iauFal03 ( t ); - d = iauFalp03 ( t ); - d = iauFama03 ( t ); - d = iauFame03 ( t ); - d = iauFane03 ( t ); - d = iauFaom03 ( t ); - d = iauFapa03 ( t ); - d = iauFasa03 ( t ); - d = iauFaur03 ( t ); - d = iauFave03 ( t ); - iauFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950, - &r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000 ); - iauFk45z ( r1950, d1950, bepoch, &r2000, &d2000 ); - iauFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000, - &r1950, &d1950, &dr1950, &dd1950, &p1950, &v1950 ); - iauFk52h ( r5, d5, dr5, dd5, px5, rv5, - &rh, &dh, &drh, &ddh, &pxh, &rvh ); - iauFk54z ( r2000, d2000, bepoch, - &r1950, &d1950, &dr1950, &dd1950 ); - iauFk5hip ( r5h, s5h ); - iauFk5hz ( r5, d5, date1, date2, &rh, &dh ); - iauFw2m ( gamb, phib, psi, eps, r ); - iauFw2xy ( gamb, phib, psi, eps, &x, &y ); - iauG2icrs ( dl, db, &dr, &dd ); - i = iauGc2gd ( n, xyz, &elong, &phi, &height ); - i = iauGc2gde ( a, f, xyz, &elong, &phi, &height ); - i = iauGd2gc ( n, elong, phi, height, xyz ); - i = iauGd2gce ( a, f, elong, phi, height, xyz ); - d = iauGmst00 ( uta, utb, tta, ttb ); - d = iauGmst06 ( uta, utb, tta, ttb ); - d = iauGmst82 ( uta, utb ); - d = iauGst00a ( uta, utb, tta, ttb ); - d = iauGst00b ( uta, utb ); - d = iauGst06 ( uta, utb, tta, ttb, rnpb ); - d = iauGst06a ( uta, utb, tta, ttb ); - d = iauGst94 ( uta, utb ); - iauH2fk5 ( rh, dh, drh, ddh, pxh, rvh, - &r5, &d5, &dr5, &dd5, &px5, &rv5 ); - iauHd2ae ( ha, dec, phi, &az, &el ); - d = iauHd2pa ( ha, dec, phi ); - iauHfk5z ( rh, dh, date1, date2, - &r5, &d5, &dr5, &dd5 ); - iauIcrs2g ( dr, dd, &dl, &db ); - i = iauJd2cal ( dj1, dj2, &iy, &im, &id, &fd ); - i = iauJdcalf ( ndp, dj1, dj2, iymdf ); - iauLd ( bm, p, q, e, em, dlim, p1 ); - iauLdn ( n, b, ob, sc, sn ); - iauLdsun ( p, e, em, p1 ); - iauLteceq ( epj, dl, db, &dr, &dd ); - iauLtecm ( epj, rm ); - iauLteqec ( epj, dr, dd, &dl, &db ); - iauLtp ( epj, rp ); - iauLtpb ( epj, rpb ); - iauLtpecl ( epj, vec ); - iauLtpequ ( epj, veq ); - iauMoon98 ( date1, date2, pv ); - iauNum00a ( date1, date2, rmatn ); - iauNum00b ( date1, date2, rmatn ); - iauNum06a ( date1, date2, rmatn ); - iauNumat ( epsa, dpsi, deps, rmatn ); - iauNut00a ( date1, date2, &dpsi, &deps ); - iauNut00b ( date1, date2, &dpsi, &deps ); - iauNut06a ( date1, date2, &dpsi, &deps ); - iauNut80 ( date1, date2, &dpsi, &deps ); - iauNutm80 ( date1, date2, rmatn ); - d = iauObl06 ( date1, date2 ); - d = iauObl80 ( date1, date2 ); - iauPb06 ( date1, date2, &bzeta, &bz, &btheta ); - iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa ); - i = iauPlan94 ( date1, date2, np, pv ); - iauPmat00 ( date1, date2, rbp ); - iauPmat06 ( date1, date2, rbp ); - iauPmat76 ( date1, date2, rmatp ); - iauPmpx ( rc, dc, pr, pd, px, rv, pmt, pob, pco ); - i = iauPmsafe ( ra1, dec1, pmr1, pmd1, px1, rv1, - ep1a, ep1b, ep2a, ep2b, - &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); - iauPn00 ( date1, date2, dpsi, deps, - &epsa, rb, rp, rbp, rn, rbpn ); - iauPn00a ( date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); - iauPn00b ( date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); - iauPn06 ( date1, date2, dpsi, deps, - &epsa, rb, rp, rbp, rn, rbpn ); - iauPn06a ( date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); - iauPnm00a ( date1, date2, rbpn ); - iauPnm00b ( date1, date2, rbpn ); - iauPnm06a ( date1, date2, rnpb ); - iauPnm80 ( date1, date2, rmatpn ); - iauP06e ( date1, date2, - &eps0, &psia, &oma, &bpa, &bqa, &pia, &bpia, - &epsa, &chia, &za, &zetaa, &thetaa, &pa, - &gam, &phi, &psi ); - iauPom00 ( xp, yp, sp, rpom ); - iauPr00 ( date1, date2, &dpsipr, &depspr ); - iauPrec76 ( date01, date02, date11, date12, &zeta, &z, &theta ); - i = iauPvstar ( pv, &ra, &dec, &pmr, &pmd, &px, &rv ); - iauPvtob ( elong, phi, hm, xp, yp, sp, theta, pv ); - iauRefco ( phpa, tc, rh, wl, refa, refb ); - d = iauS00 ( date1, date2, x, y ); - d = iauS00a ( date1, date2 ); - d = iauS00b ( date1, date2 ); - d = iauS06 ( date1, date2, x, y ); - d = iauS06a ( date1, date2 ); - d = iauSp00 ( date1, date2 ); - i = iauStarpm ( ra1, dec1, pmr1, pmd1, px1, rv1, - ep1a, ep1b, ep2a, ep2b, - &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2 ); - i = iauStarpv ( ra, dec, pmr, pmd, px, rv, pv ); - i = iauTaitt ( tai1, tai2, &tt1, &tt2 ); - i = iauTaiut1 ( tai1, tai2, dta, &ut11, &ut12 ); - i = iauTaiutc ( tai1, tai2, &utc1, &utc2 ); - i = iauTcbtdb ( tcb1, tcb2, &tdb1, &tdb2 ); - i = iauTcgtt ( tcg1, tcg2, &tt1, &tt2 ); - i = iauTdbtcb ( tdb1, tdb2, &tcb1, &tcb2 ); - i = iauTdbtt ( tdb1, tdb2, dtr, &tt1, &tt2 ); - i = iauTpors ( xi, eta, a, b, &a01, &b01, &a02, &b02 ); - i = iauTporv ( xi, eta, v, v01, v02 ); - iauTpsts ( xi, eta, a0, b0, &a, &b ); - iauTpstv ( xi, eta, v0, v ); - i = iauTpxes ( a, b, a0, b0, &xi, &eta ); - i = iauTpxev ( v, v0, &xi, &eta ); - i = iauTttai ( tt1, tt2, &tai1, &tai2 ); - i = iauTttcg ( tt1, tt2, &tcg1, &tcg2 ); - i = iauTttdb ( tt1, tt2, dtr, &tdb1, &tdb2 ); - i = iauTtut1 ( tt1, tt2, dt, &ut11, &ut12 ); - i = iauUt1tai ( ut11, ut12, &tai1, &tai2 ); - i = iauUt1tt ( ut11, ut12, dt, &tt1, &tt2 ); - i = iauUt1utc ( ut11, ut12, dut, &utc1, &utc2 ); - i = iauUtctai ( utc1, utc2, dta, &tai1, &tai2 ); - i = iauUtcut1 ( utc1, utc2, dut, &ut11, &ut12 ); - iauXy06 ( date1, date2, &x, &y ); - iauXys00a ( date1, date2, &x, &y, &s ); - iauXys00b ( date1, date2, &x, &y, &s ); - iauXys06a ( date1, date2, &x, &y, &s ); - - - - - - -sofa_vml.lis 2020 September 9 - - -------------------------- - SOFA Vector/Matrix Library - -------------------------- - -PREFACE - -The routines described here comprise the SOFA vector/matrix library. -Their general appearance and coding style conforms to conventions -agreed by the SOFA Board, and their functions, names and algorithms have -been ratified by the Board. Procedures for soliciting and agreeing -additions to the library are still evolving. - - -PROGRAMMING LANGUAGES - -The SOFA routines are available in two programming languages at present: -Fortran 77 and ANSI C. - -There is a one-to-one relationship between the two language versions. -The naming convention is such that a SOFA routine referred to -generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a -C function iauExampl. The calls for the two versions are very similar, -with the same arguments in the same order. In a few cases, the C -equivalent of a Fortran SUBROUTINE subprogram uses a return value rather -than an argument. - - -GENERAL PRINCIPLES - -The library consists mostly of routines which operate on ordinary -Cartesian vectors (x,y,z) and 3x3 rotation matrices. However, there is -also support for vectors which represent velocity as well as position -and vectors which represent rotation instead of position. The vectors -which represent both position and velocity may be considered still to -have dimensions (3), but to comprise elements each of which is two -numbers, representing the value itself and the time derivative. Thus: - -* "Position" or "p" vectors (or just plain 3-vectors) have dimension - (3) in Fortran and [3] in C. - -* "Position/velocity" or "pv" vectors have dimensions (3,2) in Fortran - and [2][3] in C. - -* "Rotation" or "r" matrices have dimensions (3,3) in Fortran and [3][3] - in C. When used for rotation, they are "orthogonal"; the inverse of - such a matrix is equal to the transpose. Most of the routines in - this library do not assume that r-matrices are necessarily orthogonal - and in fact work on any 3x3 matrix. - -* "Rotation" or "r" vectors have dimensions (3) in Fortran and [3] in C. - Such vectors are a combination of the Euler axis and angle and are - convertible to and from r-matrices. The direction is the axis of - rotation and the magnitude is the angle of rotation, in radians. - Because the amount of rotation can be scaled up and down simply by - multiplying the vector by a scalar, r-vectors are useful for - representing spins about an axis which is fixed. - -* The above rules mean that in terms of memory address, the three - velocity components of a pv-vector follow the three position - components. Application code is permitted to exploit this and all - other knowledge of the internal layouts: that x, y and z appear in - that order and are in a right-handed Cartesian coordinate system etc. - For example, the cp function (copy a p-vector) can be used to copy - the velocity component of a pv-vector (indeed, this is how the - CPV routine is coded). - -* The routines provided do not completely fill the range of operations - that link all the various vector and matrix options, but are confined - to functions that are required by other parts of the SOFA software or - which are likely to prove useful. - -In addition to the vector/matrix routines, the library contains some -routines related to spherical angles, including conversions to and -from sexagesimal format. - -Using the library requires knowledge of vector/matrix methods, spherical -trigonometry, and methods of attitude representation. These topics are -covered in many textbooks, including "Spacecraft Attitude Determination -and Control", James R. Wertz (ed.), Astrophysics and Space Science -Library, Vol. 73, D. Reidel Publishing Company, 1986. - - -OPERATIONS INVOLVING P-VECTORS AND R-MATRICES - - Initialize - - ZP zero p-vector - ZR initialize r-matrix to null - IR initialize r-matrix to identity - - Copy - - CP copy p-vector - CR copy r-matrix - - Build rotations - - RX rotate r-matrix about x - RY rotate r-matrix about y - RZ rotate r-matrix about z - - Spherical/Cartesian conversions - - S2C spherical to unit vector - C2S unit vector to spherical - S2P spherical to p-vector - P2S p-vector to spherical - - Operations on vectors - - PPP p-vector plus p-vector - PMP p-vector minus p-vector - PPSP p-vector plus scaled p-vector - PDP inner (=scalar=dot) product of two p-vectors - PXP outer (=vector=cross) product of two p-vectors - PM modulus of p-vector - PN normalize p-vector returning modulus - SXP multiply p-vector by scalar - - Operations on matrices - - RXR r-matrix multiply - TR transpose r-matrix - - Matrix-vector products - - RXP product of r-matrix and p-vector - TRXP product of transpose of r-matrix and p-vector - - Separation and position-angle - - SEPP angular separation from p-vectors - SEPS angular separation from spherical coordinates - PAP position-angle from p-vectors - PAS position-angle from spherical coordinates - - Rotation vectors - - RV2M r-vector to r-matrix - RM2V r-matrix to r-vector - - -OPERATIONS INVOLVING PV-VECTORS - - Initialize - - ZPV zero pv-vector - - Copy/extend/extract - - CPV copy pv-vector - P2PV append zero velocity to p-vector - PV2P discard velocity component of pv-vector - - Spherical/Cartesian conversions - - S2PV spherical to pv-vector - PV2S pv-vector to spherical - - Operations on pv-vectors - - PVPPV pv-vector plus pv-vector - PVMPV pv-vector minus pv-vector - PVDPV inner (=scalar=dot) product of two pv-vectors - PVXPV outer (=vector=cross) product of two pv-vectors - PVM modulus of pv-vector - SXPV multiply pv-vector by scalar - S2XPV multiply pv-vector by two scalars - PVU update pv-vector - PVUP update pv-vector discarding velocity - - Matrix-vector products - - RXPV product of r-matrix and pv-vector - TRXPV product of transpose of r-matrix and pv-vector - - -OPERATIONS ON ANGLES - - Wrap - - ANP normalize radians to range 0 to 2pi - ANPM normalize radians to range -pi to +pi - - To sexagesimal - - A2TF decompose radians into hours, minutes, seconds - A2AF decompose radians into degrees, arcminutes, arcseconds - D2TF decompose days into hours, minutes, seconds - - From sexagesimal - - AF2A degrees, arcminutes, arcseconds to radians - TF2A hours, minutes, seconds to radians - TF2D hours, minutes, seconds to days - - -CALLS: FORTRAN VERSION - - CALL iau_A2AF ( NDP, ANGLE, SIGN, IDMSF ) - CALL iau_A2TF ( NDP, ANGLE, SIGN, IHMSF ) - CALL iau_AF2A ( S, IDEG, IAMIN, ASEC, RAD, J ) - D = iau_ANP ( A ) - D = iau_ANPM ( A ) - CALL iau_C2S ( P, THETA, PHI ) - CALL iau_CP ( P, C ) - CALL iau_CPV ( PV, C ) - CALL iau_CR ( R, C ) - CALL iau_D2TF ( NDP, DAYS, SIGN, IHMSF ) - CALL iau_IR ( R ) - CALL iau_P2PV ( P, PV ) - CALL iau_P2S ( P, THETA, PHI, R ) - CALL iau_PAP ( A, B, THETA ) - CALL iau_PAS ( AL, AP, BL, BP, THETA ) - CALL iau_PDP ( A, B, ADB ) - CALL iau_PM ( P, R ) - CALL iau_PMP ( A, B, AMB ) - CALL iau_PN ( P, R, U ) - CALL iau_PPP ( A, B, APB ) - CALL iau_PPSP ( A, S, B, APSB ) - CALL iau_PV2P ( PV, P ) - CALL iau_PV2S ( PV, THETA, PHI, R, TD, PD, RD ) - CALL iau_PVDPV ( A, B, ADB ) - CALL iau_PVM ( PV, R, S ) - CALL iau_PVMPV ( A, B, AMB ) - CALL iau_PVPPV ( A, B, APB ) - CALL iau_PVU ( DT, PV, UPV ) - CALL iau_PVUP ( DT, PV, P ) - CALL iau_PVXPV ( A, B, AXB ) - CALL iau_PXP ( A, B, AXB ) - CALL iau_RM2V ( R, P ) - CALL iau_RV2M ( P, R ) - CALL iau_RX ( PHI, R ) - CALL iau_RXP ( R, P, RP ) - CALL iau_RXPV ( R, PV, RPV ) - CALL iau_RXR ( A, B, ATB ) - CALL iau_RY ( THETA, R ) - CALL iau_RZ ( PSI, R ) - CALL iau_S2C ( THETA, PHI, C ) - CALL iau_S2P ( THETA, PHI, R, P ) - CALL iau_S2PV ( THETA, PHI, R, TD, PD, RD, PV ) - CALL iau_S2XPV ( S1, S2, PV ) - CALL iau_SEPP ( A, B, S ) - CALL iau_SEPS ( AL, AP, BL, BP, S ) - CALL iau_SXP ( S, P, SP ) - CALL iau_SXPV ( S, PV, SPV ) - CALL iau_TF2A ( S, IHOUR, IMIN, SEC, RAD, J ) - CALL iau_TF2D ( S, IHOUR, IMIN, SEC, DAYS, J ) - CALL iau_TR ( R, RT ) - CALL iau_TRXP ( R, P, TRP ) - CALL iau_TRXPV ( R, PV, TRPV ) - CALL iau_ZP ( P ) - CALL iau_ZPV ( PV ) - CALL iau_ZR ( R ) - - -CALLS: C VERSION - - iauA2af ( ndp, angle, &sign, idmsf ); - iauA2tf ( ndp, angle, &sign, ihmsf ); - i = iauAf2a ( s, ideg, iamin, asec, &rad ); - d = iauAnp ( a ); - d = iauAnpm ( a ); - iauC2s ( p, &theta, &phi ); - iauCp ( p, c ); - iauCpv ( pv, c ); - iauCr ( r, c ); - iauD2tf ( ndp, days, &sign, ihmsf ); - iauIr ( r ); - iauP2pv ( p, pv ); - iauP2s ( p, &theta, &phi, &r ); - d = iauPap ( a, b ); - d = iauPas ( al, ap, bl, bp ); - d = iauPdp ( a, b ); - d = iauPm ( p ); - iauPmp ( a, b, amb ); - iauPn ( p, &r, u ); - iauPpp ( a, b, apb ); - iauPpsp ( a, s, b, apsb ); - iauPv2p ( pv, p ); - iauPv2s ( pv, &theta, &phi, &r, &td, &pd, &rd ); - iauPvdpv ( a, b, adb ); - iauPvm ( pv, &r, &s ); - iauPvmpv ( a, b, amb ); - iauPvppv ( a, b, apb ); - iauPvu ( dt, pv, upv ); - iauPvup ( dt, pv, p ); - iauPvxpv ( a, b, axb ); - iauPxp ( a, b, axb ); - iauRm2v ( r, p ); - iauRv2m ( p, r ); - iauRx ( phi, r ); - iauRxp ( r, p, rp ); - iauRxpv ( r, pv, rpv ); - iauRxr ( a, b, atb ); - iauRy ( theta, r ); - iauRz ( psi, r ); - iauS2c ( theta, phi, c ); - iauS2p ( theta, phi, r, p ); - iauS2pv ( theta, phi, r, td, pd, rd, pv ); - iauS2xpv ( s1, s2, pv ); - d = iauSepp ( a, b ); - d = iauSeps ( al, ap, bl, bp ); - iauSxp ( s, p, sp ); - iauSxpv ( s, pv, spv ); - i = iauTf2a ( s, ihour, imin, sec, &rad ); - i = iauTf2d ( s, ihour, imin, sec, &days ); - iauTr ( r, rt ); - iauTrxp ( r, p, trp ); - iauTrxpv ( r, pv, trpv ); - iauZp ( p ); - iauZpv ( pv ); - iauZr ( r ); - - - -void iauA2af(int ndp, double angle, char *sign, int idmsf[4]) -/* -** - - - - - - - - -** i a u A 2 a f -** - - - - - - - - -** -** Decompose radians into degrees, arcminutes, arcseconds, fraction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** ndp int resolution (Note 1) -** angle double angle in radians -** -** Returned: -** sign char* '+' or '-' -** idmsf int[4] degrees, arcminutes, arcseconds, fraction -** -** Notes: -** -** 1) The argument ndp is interpreted as follows: -** -** ndp resolution -** : ...0000 00 00 -** -7 1000 00 00 -** -6 100 00 00 -** -5 10 00 00 -** -4 1 00 00 -** -3 0 10 00 -** -2 0 01 00 -** -1 0 00 10 -** 0 0 00 01 -** 1 0 00 00.1 -** 2 0 00 00.01 -** 3 0 00 00.001 -** : 0 00 00.000... -** -** 2) The largest positive useful value for ndp is determined by the -** size of angle, the format of doubles on the target platform, and -** the risk of overflowing idmsf[3]. On a typical platform, for -** angle up to 2pi, the available floating-point precision might -** correspond to ndp=12. However, the practical limit is typically -** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is -** only 16 bits. -** -** 3) The absolute value of angle may exceed 2pi. In cases where it -** does not, it is up to the caller to test for and handle the -** case where angle is very nearly 2pi and rounds up to 360 degrees, -** by testing for idmsf[0]=360 and setting idmsf[0-3] to zero. -** -** Called: -** iauD2tf decompose days to hms -** -*/ - - - -void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4]) -/* -** - - - - - - - - -** i a u A 2 t f -** - - - - - - - - -** -** Decompose radians into hours, minutes, seconds, fraction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** ndp int resolution (Note 1) -** angle double angle in radians -** -** Returned: -** sign char* '+' or '-' -** ihmsf int[4] hours, minutes, seconds, fraction -** -** Notes: -** -** 1) The argument ndp is interpreted as follows: -** -** ndp resolution -** : ...0000 00 00 -** -7 1000 00 00 -** -6 100 00 00 -** -5 10 00 00 -** -4 1 00 00 -** -3 0 10 00 -** -2 0 01 00 -** -1 0 00 10 -** 0 0 00 01 -** 1 0 00 00.1 -** 2 0 00 00.01 -** 3 0 00 00.001 -** : 0 00 00.000... -** -** 2) The largest positive useful value for ndp is determined by the -** size of angle, the format of doubles on the target platform, and -** the risk of overflowing ihmsf[3]. On a typical platform, for -** angle up to 2pi, the available floating-point precision might -** correspond to ndp=12. However, the practical limit is typically -** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is -** only 16 bits. -** -** 3) The absolute value of angle may exceed 2pi. In cases where it -** does not, it is up to the caller to test for and handle the -** case where angle is very nearly 2pi and rounds up to 24 hours, -** by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero. -** -** Called: -** iauD2tf decompose days to hms -** -*/ - - - -void iauAb(double pnat[3], double v[3], double s, double bm1, - double ppr[3]) -/* -** - - - - - - -** i a u A b -** - - - - - - -** -** Apply aberration to transform natural direction into proper -** direction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** pnat double[3] natural direction to the source (unit vector) -** v double[3] observer barycentric velocity in units of c -** s double distance between the Sun and the observer (au) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** -** Returned: -** ppr double[3] proper direction to source (unit vector) -** -** Notes: -** -** 1) The algorithm is based on Expr. (7.40) in the Explanatory -** Supplement (Urban & Seidelmann 2013), but with the following -** changes: -** -** o Rigorous rather than approximate normalization is applied. -** -** o The gravitational potential term from Expr. (7) in -** Klioner (2003) is added, taking into account only the Sun's -** contribution. This has a maximum effect of about -** 0.4 microarcsecond. -** -** 2) In almost all cases, the maximum accuracy will be limited by the -** supplied velocity. For example, if the SOFA iauEpv00 function is -** used, errors of up to 5 microarcseconds could occur. -** -** References: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013). -** -** Klioner, Sergei A., "A practical relativistic model for micro- -** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). -** -** Called: -** iauPdp scalar product of two p-vectors -** -*/ - - - -void iauAe2hd (double az, double el, double phi, - double *ha, double *dec) -/* -** - - - - - - - - - -** i a u A e 2 h d -** - - - - - - - - - -** -** Horizon to equatorial coordinates: transform azimuth and altitude -** to hour angle and declination. -** -** Given: -** az double azimuth -** el double altitude (informally, elevation) -** phi double site latitude -** -** Returned: -** ha double hour angle (local) -** dec double declination -** -** Notes: -** -** 1) All the arguments are angles in radians. -** -** 2) The sign convention for azimuth is north zero, east +pi/2. -** -** 3) HA is returned in the range +/-pi. Declination is returned in -** the range +/-pi/2. -** -** 4) The latitude phi is pi/2 minus the angle between the Earth's -** rotation axis and the adopted zenith. In many applications it -** will be sufficient to use the published geodetic latitude of the -** site. In very precise (sub-arcsecond) applications, phi can be -** corrected for polar motion. -** -** 5) The azimuth az must be with respect to the rotational north pole, -** as opposed to the ITRS pole, and an azimuth with respect to north -** on a map of the Earth's surface will need to be adjusted for -** polar motion if sub-arcsecond accuracy is required. -** -** 6) Should the user wish to work with respect to the astronomical -** zenith rather than the geodetic zenith, phi will need to be -** adjusted for deflection of the vertical (often tens of -** arcseconds), and the zero point of ha will also be affected. -** -** 7) The transformation is the same as Ve = Ry(phi-pi/2)*Rz(pi)*Vh, -** where Ve and Vh are lefthanded unit vectors in the (ha,dec) and -** (az,el) systems respectively and Rz and Ry are rotations about -** first the z-axis and then the y-axis. (n.b. Rz(pi) simply -** reverses the signs of the x and y components.) For efficiency, -** the algorithm is written out rather than calling other utility -** functions. For applications that require even greater -** efficiency, additional savings are possible if constant terms -** such as functions of latitude are computed once and for all. -** -** 8) Again for efficiency, no range checking of arguments is carried -** out. -** -** Last revision: 2017 September 12 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double sa, ca, se, ce, sp, cp, x, y, z, r; - - -/* Useful trig functions. */ - sa = sin(az); - ca = cos(az); - se = sin(el); - ce = cos(el); - sp = sin(phi); - cp = cos(phi); - -/* HA,Dec unit vector. */ - x = - ca*ce*sp + se*cp; - y = - sa*ce; - z = ca*ce*cp + se*sp; - -/* To spherical. */ - r = sqrt(x*x + y*y); - *ha = (r != 0.0) ? atan2(y,x) : 0.0; - *dec = atan2(z,r); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} - - - -int iauAf2a(char s, int ideg, int iamin, double asec, double *rad) -/* -** - - - - - - - - -** i a u A f 2 a -** - - - - - - - - -** -** Convert degrees, arcminutes, arcseconds to radians. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** s char sign: '-' = negative, otherwise positive -** ideg int degrees -** iamin int arcminutes -** asec double arcseconds -** -** Returned: -** rad double angle in radians -** -** Returned (function value): -** int status: 0 = OK -** 1 = ideg outside range 0-359 -** 2 = iamin outside range 0-59 -** 3 = asec outside range 0-59.999... -** -** Notes: -** -** 1) The result is computed even if any of the range checks fail. -** -** 2) Negative ideg, iamin and/or asec produce a warning status, but -** the absolute value is used in the conversion. -** -** 3) If there are multiple errors, the status value reflects only the -** first, the smallest taking precedence. -** -*/ - - - -double iauAnp(double a) -/* -** - - - - - - - -** i a u A n p -** - - - - - - - -** -** Normalize angle into the range 0 <= a < 2pi. -** -** 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 angle (radians) -** -** Returned (function value): -** double angle in range 0-2pi -** -*/ - - - -double iauAnpm(double a) -/* -** - - - - - - - - -** i a u A n p m -** - - - - - - - - -** -** Normalize angle into the range -pi <= a < +pi. -** -** 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 angle (radians) -** -** Returned (function value): -** double angle in range +/-pi -** -*/ - - - -void iauApcg(double date1, double date2, - double ebpv[2][3], double ehp[3], - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p c g -** - - - - - - - - -** -** For a geocentric observer, prepare star-independent astrometry -** parameters for transformations between ICRS and GCRS coordinates. -** The Earth ephemeris is supplied by the caller. -** -** The parameters produced by this function are required in the -** parallax, light deflection and aberration parts of the astrometric -** transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** ebpv double[2][3] Earth barycentric pos/vel (au, au/day) -** ehp double[3] Earth heliocentric position (au) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 4) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauApcs astrometry parameters, ICRS-GCRS, space observer -** -*/ - - - -void iauApcg13(double date1, double date2, iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p c g 1 3 -** - - - - - - - - - - -** -** For a geocentric observer, prepare star-independent astrometry -** parameters for transformations between ICRS and GCRS coordinates. -** The caller supplies the date, and SOFA models are used to predict -** the Earth ephemeris. -** -** The parameters produced by this function are required in the -** parallax, light deflection and aberration parts of the astrometric -** transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) In cases where the caller wishes to supply his own Earth -** ephemeris, the function iauApcg can be used instead of the present -** function. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 5) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauEpv00 Earth position and velocity -** iauApcg astrometry parameters, ICRS-GCRS, geocenter -** -*/ - - - -void iauApci(double date1, double date2, - double ebpv[2][3], double ehp[3], - double x, double y, double s, - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p c i -** - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and geocentric CIRS -** coordinates. The Earth ephemeris and CIP/CIO are supplied by the -** caller. -** -** The parameters produced by this function are required in the -** parallax, light deflection, aberration, and bias-precession-nutation -** parts of the astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** ebpv double[2][3] Earth barycentric position/velocity (au, au/day) -** ehp double[3] Earth heliocentric position (au) -** x,y double CIP X,Y (components of unit vector) -** s double the CIO locator s (radians) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) In cases where the caller does not wish to provide the Earth -** ephemeris and CIP/CIO, the function iauApci13 can be used instead -** of the present function. This computes the required quantities -** using other SOFA functions. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 5) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauApcg astrometry parameters, ICRS-GCRS, geocenter -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** -*/ - - - -void iauApci13(double date1, double date2, - iauASTROM *astrom, double *eo) -/* -** - - - - - - - - - - -** i a u A p c i 1 3 -** - - - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and geocentric CIRS -** coordinates. The caller supplies the date, and SOFA models are used -** to predict the Earth ephemeris and CIP/CIO. -** -** The parameters produced by this function are required in the -** parallax, light deflection, aberration, and bias-precession-nutation -** parts of the astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** eo double* equation of the origins (ERA-GST, radians) -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) In cases where the caller wishes to supply his own Earth -** ephemeris and CIP/CIO, the function iauApci can be used instead -** of the present function. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 5) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauEpv00 Earth position and velocity -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauApci astrometry parameters, ICRS-CIRS -** iauEors equation of the origins, given NPB matrix and s -** -*/ - - - -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) -/* -** - - - - - - - - -** i a u A p c o -** - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and observed -** coordinates. The caller supplies the Earth ephemeris, the Earth -** rotation information and the refraction constants as well as the -** site coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** ebpv double[2][3] Earth barycentric PV (au, au/day, Note 2) -** ehp double[3] Earth heliocentric P (au, Note 2) -** x,y double CIP X,Y (components of unit vector) -** s double the CIO locator s (radians) -** theta double Earth rotation angle (radians) -** elong double longitude (radians, east +ve, Note 3) -** phi double latitude (geodetic, radians, Note 3) -** hm double height above ellipsoid (m, geodetic, Note 3) -** xp,yp double polar motion coordinates (radians, Note 4) -** sp double the TIO locator s' (radians, Note 4) -** refa double refraction constant A (radians, Note 5) -** refb double refraction constant B (radians, Note 5) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double adjusted longitude (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) The vectors eb, eh, and all the astrom vectors, are with respect -** to BCRS axes. -** -** 3) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN -** CONVENTION: the longitude required by the present function is -** right-handed, i.e. east-positive, in accordance with geographical -** convention. -** -** The adjusted longitude stored in the astrom array takes into -** account the TIO locator and polar motion. -** -** 4) xp and yp are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions), measured along the -** meridians 0 and 90 deg west respectively. sp is the TIO locator -** s', in radians, which positions the Terrestrial Intermediate -** Origin on the equator. For many applications, xp, yp and -** (especially) sp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto the -** local meridian. -** -** 5) The refraction constants refa and refb are for use in a -** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed -** (i.e. refracted) zenith distance and dZ is the amount of -** refraction. -** -** 6) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 7) In cases where the caller does not wish to provide the Earth -** Ephemeris, the Earth rotation information and refraction -** constants, the function iauApco13 can be used instead of the -** present function. This starts from UTC and weather readings etc. -** and computes suitable values using other SOFA functions. -** -** 8) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 9) The context structure astrom produced by this function is used by -** iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauRx rotate around X-axis -** iauAnpm normalize angle into range +/- pi -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** iauPvtob position/velocity of terrestrial station -** iauTrxpv product of transpose of r-matrix and pv-vector -** iauApcs astrometry parameters, ICRS-GCRS, space observer -** iauCr copy r-matrix -** -*/ - - - -int iauApco13(double utc1, double utc2, double dut1, - double elong, double phi, double hm, double xp, double yp, - double phpa, double tc, double rh, double wl, - iauASTROM *astrom, double *eo) -/* -** - - - - - - - - - - -** i a u A p c o 1 3 -** - - - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and observed -** coordinates. The caller supplies UTC, site coordinates, ambient air -** conditions and observing wavelength, and SOFA models are used to -** obtain the Earth ephemeris, CIP/CIO and refraction constants. -** -** The parameters produced by this function are required in the -** parallax, light deflection, aberration, and bias-precession-nutation -** parts of the ICRS/CIRS transformations. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 1,2) -** dut1 double UT1-UTC (seconds, Note 3) -** elong double longitude (radians, east +ve, Note 4) -** phi double latitude (geodetic, radians, Note 4) -** hm double height above ellipsoid (m, geodetic, Notes 4,6) -** xp,yp double polar motion coordinates (radians, Note 5) -** phpa double pressure at the observer (hPa = mB, Note 6) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 7) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** eo double* equation of the origins (ERA-GST, radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 2) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 4) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 5) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto -** the local meridian. -** -** 6) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 7) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 8) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 9) In cases where the caller wishes to supply his own Earth -** ephemeris, Earth rotation information and refraction constants, -** the function iauApco can be used instead of the present function. -** -** 10) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 11) The context structure astrom produced by this function is used -** by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. -** -** Called: -** iauUtctai UTC to TAI -** iauTaitt TAI to TT -** iauUtcut1 UTC to UT1 -** iauEpv00 Earth position and velocity -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauRefco refraction constants for given ambient conditions -** iauApco astrometry parameters, ICRS-observed -** iauEors equation of the origins, given NPB matrix and s -** -*/ - - - -void iauApcs(double date1, double date2, double pv[2][3], - double ebpv[2][3], double ehp[3], - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p c s -** - - - - - - - - -** -** For an observer whose geocentric position and velocity are known, -** prepare star-independent astrometry parameters for transformations -** between ICRS and GCRS. The Earth ephemeris is supplied by the -** caller. -** -** The parameters produced by this function are required in the space -** motion, parallax, light deflection and aberration parts of the -** astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** pv double[2][3] observer's geocentric pos/vel (m, m/s) -** ebpv double[2][3] Earth barycentric PV (au, au/day) -** ehp double[3] Earth heliocentric P (au) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) Providing separate arguments for (i) the observer's geocentric -** position and velocity and (ii) the Earth ephemeris is done for -** convenience in the geocentric, terrestrial and Earth orbit cases. -** For deep space applications it maybe more convenient to specify -** zero geocentric position and velocity and to supply the -** observer's position and velocity information directly instead of -** with respect to the Earth. However, note the different units: -** m and m/s for the geocentric vectors, au and au/day for the -** heliocentric and barycentric vectors. -** -** 4) In cases where the caller does not wish to provide the Earth -** ephemeris, the function iauApcs13 can be used instead of the -** present function. This computes the Earth ephemeris using the -** SOFA function iauEpv00. -** -** 5) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 6) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauCp copy p-vector -** iauPm modulus of p-vector -** iauPn decompose p-vector into modulus and direction -** iauIr initialize r-matrix to identity -** -*/ - - - -void iauApcs13(double date1, double date2, double pv[2][3], - iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p c s 1 3 -** - - - - - - - - - - -** -** For an observer whose geocentric position and velocity are known, -** prepare star-independent astrometry parameters for transformations -** between ICRS and GCRS. The Earth ephemeris is from SOFA models. -** -** The parameters produced by this function are required in the space -** motion, parallax, light deflection and aberration parts of the -** astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** pv double[2][3] observer's geocentric pos/vel (Note 3) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) The observer's position and velocity pv are geocentric but with -** respect to BCRS axes, and in units of m and m/s. No assumptions -** are made about proximity to the Earth, and the function can be -** used for deep space applications as well as Earth orbit and -** terrestrial. -** -** 4) In cases where the caller wishes to supply his own Earth -** ephemeris, the function iauApcs can be used instead of the present -** function. -** -** 5) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 6) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauEpv00 Earth position and velocity -** iauApcs astrometry parameters, ICRS-GCRS, space observer -** -*/ - - - -void iauAper(double theta, iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p e r -** - - - - - - - - -** -** In the star-independent astrometry parameters, update only the -** Earth rotation angle, supplied by the caller explicitly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** theta double Earth rotation angle (radians, Note 2) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double not used -** eb double[3] not used -** eh double[3] not used -** em double not used -** v double[3] not used -** bm1 double not used -** bpn double[3][3] not used -** along double longitude + s' (radians) -** xpl double not used -** ypl double not used -** sphi double not used -** cphi double not used -** diurab double not used -** eral double not used -** refa double not used -** refb double not used -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double "local" Earth rotation angle (radians) -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) This function exists to enable sidereal-tracking applications to -** avoid wasteful recomputation of the bulk of the astrometry -** parameters: only the Earth rotation is updated. -** -** 2) For targets expressed as equinox based positions, such as -** classical geocentric apparent (RA,Dec), the supplied theta can be -** Greenwich apparent sidereal time rather than Earth rotation -** angle. -** -** 3) The function iauAper13 can be used instead of the present -** function, and starts from UT1 rather than ERA itself. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -*/ - - - -void iauAper13(double ut11, double ut12, iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p e r 1 3 -** - - - - - - - - - - -** -** In the star-independent astrometry parameters, update only the -** Earth rotation angle. The caller provides UT1, (n.b. not UTC). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ut11 double UT1 as a 2-part... -** ut12 double ...Julian Date (Note 1) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double not used -** eb double[3] not used -** eh double[3] not used -** em double not used -** v double[3] not used -** bm1 double not used -** bpn double[3][3] not used -** along double longitude + s' (radians) -** xpl double not used -** ypl double not used -** sphi double not used -** cphi double not used -** diurab double not used -** eral double not used -** refa double not used -** refb double not used -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double "local" Earth rotation angle (radians) -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The UT1 date (n.b. not UTC) ut11+ut12 is a Julian Date, -** apportioned in any convenient way between the arguments ut11 and -** ut12. For example, JD(UT1)=2450123.7 could be expressed in any -** of these ways, among others: -** -** ut11 ut12 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. The date & time method is -** best matched to the algorithm used: maximum precision is -** delivered when the ut11 argument is for 0hrs UT1 on the day in -** question and the ut12 argument lies in the range 0 to 1, or vice -** versa. -** -** 2) If the caller wishes to provide the Earth rotation angle itself, -** the function iauAper can be used instead. One use of this -** technique is to substitute Greenwich apparent sidereal time and -** thereby to support equinox based transformations directly. -** -** 3) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** Called: -** iauAper astrometry parameters: update ERA -** iauEra00 Earth rotation angle, IAU 2000 -** -*/ - - - -void iauApio(double sp, double theta, - double elong, double phi, double hm, double xp, double yp, - double refa, double refb, - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p i o -** - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between CIRS and observed -** coordinates. The caller supplies the Earth orientation information -** and the refraction constants as well as the site coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** sp double the TIO locator s' (radians, Note 1) -** theta double Earth rotation angle (radians) -** elong double longitude (radians, east +ve, Note 2) -** phi double geodetic latitude (radians, Note 2) -** hm double height above ellipsoid (m, geodetic Note 2) -** xp,yp double polar motion coordinates (radians, Note 3) -** refa double refraction constant A (radians, Note 4) -** refb double refraction constant B (radians, Note 4) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double adjusted longitude (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Notes: -** -** 1) sp, the TIO locator s', is a tiny quantity needed only by the -** most precise applications. It can either be set to zero or -** predicted using the SOFA function iauSp00. -** -** 2) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 3) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many applications, -** xp and yp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto the -** local meridian. -** -** 4) The refraction constants refa and refb are for use in a -** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed -** (i.e. refracted) zenith distance and dZ is the amount of -** refraction. -** -** 5) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 6) In cases where the caller does not wish to provide the Earth -** rotation information and refraction constants, the function -** iauApio13 can be used instead of the present function. This -** starts from UTC and weather readings etc. and computes suitable -** values using other SOFA functions. -** -** 7) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 8) The context structure astrom produced by this function is used by -** iauAtioq and iauAtoiq. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauRx rotate around X-axis -** iauAnpm normalize angle into range +/- pi -** iauPvtob position/velocity of terrestrial station -** -*/ - - - -int iauApio13(double utc1, double utc2, double dut1, - double elong, double phi, double hm, double xp, double yp, - double phpa, double tc, double rh, double wl, - iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p i o 1 3 -** - - - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between CIRS and observed -** coordinates. The caller supplies UTC, site coordinates, ambient air -** conditions and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 1,2) -** dut1 double UT1-UTC (seconds) -** elong double longitude (radians, east +ve, Note 3) -** phi double geodetic latitude (radians, Note 3) -** hm double height above ellipsoid (m, geodetic Notes 4,6) -** xp,yp double polar motion coordinates (radians, Note 5) -** phpa double pressure at the observer (hPa = mB, Note 6) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 7) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 2) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 4) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 5) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many applications, -** xp and yp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto -** the local meridian. -** -** 6) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to the -** pressure and that an accurate phpa value is important for -** precise work. -** -** 7) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 8) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 9) In cases where the caller wishes to supply his own Earth -** rotation information and refraction constants, the function -** iauApc can be used instead of the present function. -** -** 10) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 11) The context structure astrom produced by this function is used -** by iauAtioq and iauAtoiq. -** -** Called: -** iauUtctai UTC to TAI -** iauTaitt TAI to TT -** iauUtcut1 UTC to UT1 -** iauSp00 the TIO locator s', IERS 2000 -** iauEra00 Earth rotation angle, IAU 2000 -** iauRefco refraction constants for given ambient conditions -** iauApio astrometry parameters, CIRS-observed -** -*/ - - - -void iauAtcc13(double rc, double dc, - double pr, double pd, double px, double rv, - double date1, double date2, - double *ra, double *da) -/* -** - - - - - - - - - - -** i a u A t c c 1 3 -** - - - - - - - - - - -** -** Transform a star's ICRS catalog entry (epoch J2000.0) into ICRS -** astrometric place. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc double ICRS right ascension at J2000.0 (radians, Note 1) -** dc double ICRS declination at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 3) -** -** Returned: -** ra,da double* ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** Called: -** iauApci13 astrometry parameters, ICRS-CIRS, 2013 -** iauAtccq quick catalog ICRS to astrometric -** -*/ - - - -void iauAtccq(double rc, double dc, - double pr, double pd, double px, double rv, - iauASTROM *astrom, double *ra, double *da) -/* -** - - - - - - - - - -** i a u A t c c q -** - - - - - - - - - -** -** Quick transformation of a star's ICRS catalog entry (epoch J2000.0) -** into ICRS astrometric place, given precomputed star-independent -** astrometry parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** If the parallax and proper motions are zero the transformation has -** no effect. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at J2000.0 (radians) -** pr double RA proper motion (radians/year, Note 3) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ra,da double* ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) All the vectors are with respect to BCRS axes. -** -** 2) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 3) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** Called: -** iauPmpx proper motion and parallax -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -*/ - - - -void iauAtci13(double rc, double dc, - double pr, double pd, double px, double rv, - double date1, double date2, - double *ri, double *di, double *eo) -/* -** - - - - - - - - - - -** i a u A t c i 1 3 -** - - - - - - - - - - -** -** Transform ICRS star data, epoch J2000.0, to CIRS. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc double ICRS right ascension at J2000.0 (radians, Note 1) -** dc double ICRS declination at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 3) -** -** Returned: -** ri,di double* CIRS geocentric RA,Dec (radians) -** eo double* equation of the origins (ERA-GST, radians, Note 5) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 4) The available accuracy is better than 1 milliarcsecond, limited -** mainly by the precession-nutation model that is used, namely -** IAU 2000A/2006. Very close to solar system bodies, additional -** errors of up to several milliarcseconds can occur because of -** unmodeled light deflection; however, the Sun's contribution is -** taken into account, to first order. The accuracy limitations of -** the SOFA function iauEpv00 (used to compute Earth position and -** velocity) can contribute aberration errors of up to -** 5 microarcseconds. Light deflection at the Sun's limb is -** uncertain at the 0.4 mas level. -** -** 5) Should the transformation to (equinox based) apparent place be -** required rather than (CIO based) intermediate place, subtract the -** equation of the origins from the returned right ascension: -** RA = RI - EO. (The iauAnp function can then be applied, as -** required, to keep the result in the conventional 0-2pi range.) -** -** Called: -** iauApci13 astrometry parameters, ICRS-CIRS, 2013 -** iauAtciq quick ICRS to CIRS -** -*/ - - - -void iauAtciq(double rc, double dc, - double pr, double pd, double px, double rv, - iauASTROM *astrom, double *ri, double *di) -/* -** - - - - - - - - - -** i a u A t c i q -** - - - - - - - - - -** -** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed -** star-independent astrometry parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** If the parallax and proper motions are zero the iauAtciqz function -** can be used instead. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ri,di double CIRS RA,Dec (radians) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** Called: -** iauPmpx proper motion and parallax -** iauLdsun light deflection by the Sun -** iauAb stellar aberration -** iauRxp product of r-matrix and pv-vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -*/ - - - -void iauAtciqn(double rc, double dc, double pr, double pd, - double px, double rv, iauASTROM *astrom, - int n, iauLDBODY b[], double *ri, double *di) -/* -** - - - - - - - - - - -** i a u A t c i q n -** - - - - - - - - - - -** -** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed -** star-independent astrometry parameters plus a list of light- -** deflecting bodies. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** -** If the only light-deflecting body to be taken into account is the -** Sun, the iauAtciq function can be used instead. If in addition the -** parallax and proper motions are zero, the iauAtciqz function can be -** used. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at J2000.0 (radians) -** pr double RA proper motion (radians/year, Note 3) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** n int number of bodies (Note 3) -** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): -** bm double mass of the body (solar masses, Note 5) -** dl double deflection limiter (Note 6) -** pv [2][3] barycentric PV of the body (au, au/day) -** -** Returned: -** ri,di double CIRS RA,Dec (radians) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The struct b contains n entries, one for each body to be -** considered. If n = 0, no gravitational light deflection will be -** applied, not even for the Sun. -** -** 4) The struct b should include an entry for the Sun as well as for -** any planet or other body to be taken into account. The entries -** should be in the order in which the light passes the body. -** -** 5) In the entry in the b struct for body i, the mass parameter -** b[i].bm can, as required, be adjusted in order to allow for such -** effects as quadrupole field. -** -** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is -** the angular separation (in radians) between star and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. Example values suitable for a terrestrial -** observer, together with masses, are as follows: -** -** body i b[i].bm b[i].dl -** -** Sun 1.0 6e-6 -** Jupiter 0.00095435 3e-9 -** Saturn 0.00028574 3e-10 -** -** 7) For efficiency, validation of the contents of the b array is -** omitted. The supplied masses must be greater than zero, the -** position and velocity vectors must be right, and the deflection -** limiter greater than zero. -** -** Called: -** iauPmpx proper motion and parallax -** iauLdn light deflection by n bodies -** iauAb stellar aberration -** iauRxp product of r-matrix and pv-vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -*/ - - - -void iauAtciqz(double rc, double dc, iauASTROM *astrom, - double *ri, double *di) -/* -** - - - - - - - - - - -** i a u A t c i q z -** - - - - - - - - - - -** -** Quick ICRS to CIRS transformation, given precomputed star- -** independent astrometry parameters, and assuming zero parallax and -** proper motion. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** The corresponding function for the case of non-zero parallax and -** proper motion is iauAtciq. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS astrometric RA,Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ri,di double CIRS RA,Dec (radians) -** -** Note: -** -** All the vectors are with respect to BCRS axes. -** -** References: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013). -** -** Klioner, Sergei A., "A practical relativistic model for micro- -** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauLdsun light deflection due to Sun -** iauAb stellar aberration -** iauRxp product of r-matrix and p-vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range +/- pi -** -*/ - - - -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 tc, double rh, double wl, - double *aob, double *zob, double *hob, - double *dob, double *rob, double *eo) -/* -** - - - - - - - - - - -** i a u A t c o 1 3 -** - - - - - - - - - - -** -** ICRS RA,Dec to observed place. The caller supplies UTC, site -** coordinates, ambient air conditions and observing wavelength. -** -** SOFA models are used for the Earth ephemeris, bias-precession- -** nutation, Earth orientation and refraction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS right ascension at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 3-4) -** dut1 double UT1-UTC (seconds, Note 5) -** elong double longitude (radians, east +ve, Note 6) -** phi double latitude (geodetic, radians, Note 6) -** hm double height above ellipsoid (m, geodetic, Notes 6,8) -** xp,yp double polar motion coordinates (radians, Note 7) -** phpa double pressure at the observer (hPa = mB, Note 8) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 9) -** -** Returned: -** aob double* observed azimuth (radians: N=0,E=90) -** zob double* observed zenith distance (radians) -** hob double* observed hour angle (radians) -** dob double* observed declination (radians) -** rob double* observed right ascension (CIO-based, radians) -** eo double* equation of the origins (ERA-GST, radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 4) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require -** a preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 6) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 7) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 8) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), -** is available, an adequate estimate of hm can be obtained from -** the expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 9) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 10) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted observed -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtco13 and -** iauAtoc13 are self-consistent to better than 1 microarcsecond -** all over the celestial sphere. With refraction included, -** consistency falls off at high zenith distances, but is still -** better than 0.05 arcsec at 85 degrees. -** -** 11) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and RA are related simply through the Earth rotation -** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus -** means the position that would be seen by a perfect equatorial -** with its polar axis aligned to the Earth's axis of rotation. -** -** 12) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApco13 astrometry parameters, ICRS-observed, 2013 -** iauAtciq quick ICRS to CIRS -** iauAtioq quick CIRS to observed -** -*/ - - - -void iauAtic13(double ri, double di, double date1, double date2, - double *rc, double *dc, double *eo) -/* -** - - - - - - - - - - -** i a u A t i c 1 3 -** - - - - - - - - - - -** -** Transform star RA,Dec from geocentric CIRS to ICRS astrometric. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri,di double CIRS geocentric RA,Dec (radians) -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** eo double equation of the origins (ERA-GST, radians, Note 4) -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) Iterative techniques are used for the aberration and light -** deflection corrections so that the functions iauAtic13 (or -** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; -** even at the edge of the Sun's disk the discrepancy is only about -** 1 nanoarcsecond. -** -** 3) The available accuracy is better than 1 milliarcsecond, limited -** mainly by the precession-nutation model that is used, namely -** IAU 2000A/2006. Very close to solar system bodies, additional -** errors of up to several milliarcseconds can occur because of -** unmodeled light deflection; however, the Sun's contribution is -** taken into account, to first order. The accuracy limitations of -** the SOFA function iauEpv00 (used to compute Earth position and -** velocity) can contribute aberration errors of up to -** 5 microarcseconds. Light deflection at the Sun's limb is -** uncertain at the 0.4 mas level. -** -** 4) Should the transformation to (equinox based) J2000.0 mean place -** be required rather than (CIO based) ICRS coordinates, subtract the -** equation of the origins from the returned right ascension: -** RA = RI - EO. (The iauAnp function can then be applied, as -** required, to keep the result in the conventional 0-2pi range.) -** -** Called: -** iauApci13 astrometry parameters, ICRS-CIRS, 2013 -** iauAticq quick CIRS to ICRS astrometric -** -*/ - - - -void iauAticq(double ri, double di, iauASTROM *astrom, - double *rc, double *dc) -/* -** - - - - - - - - - -** i a u A t i c q -** - - - - - - - - - -** -** Quick CIRS RA,Dec to ICRS astrometric place, given the star- -** independent astrometry parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] -** or iauApcs[13]. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri,di double CIRS RA,Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) Only the Sun is taken into account in the light deflection -** correction. -** -** 2) Iterative techniques are used for the aberration and light -** deflection corrections so that the functions iauAtic13 (or -** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; -** even at the edge of the Sun's disk the discrepancy is only about -** 1 nanoarcsecond. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauZp zero p-vector -** iauAb stellar aberration -** iauLdsun light deflection by the Sun -** iauC2s p-vector to spherical -** iauAnp normalize angle into range +/- pi -** -*/ - - - -void iauAticqn(double ri, double di, iauASTROM *astrom, - int n, iauLDBODY b[], double *rc, double *dc) -/* -** - - - - - - - - - - -** i a u A t i c q n -** - - - - - - - - - - -** -** Quick CIRS to ICRS astrometric place transformation, given the star- -** independent astrometry parameters plus a list of light-deflecting -** bodies. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] -** or iauApcs[13]. -* -* If the only light-deflecting body to be taken into account is the -* Sun, the iauAticq function can be used instead. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri,di double CIRS RA,Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** n int number of bodies (Note 3) -** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): -** bm double mass of the body (solar masses, Note 5) -** dl double deflection limiter (Note 6) -** pv [2][3] barycentric PV of the body (au, au/day) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) Iterative techniques are used for the aberration and light -** deflection corrections so that the functions iauAticqn and -** iauAtciqn are accurate inverses; even at the edge of the Sun's -** disk the discrepancy is only about 1 nanoarcsecond. -** -** 2) If the only light-deflecting body to be taken into account is the -** Sun, the iauAticq function can be used instead. -** -** 3) The struct b contains n entries, one for each body to be -** considered. If n = 0, no gravitational light deflection will be -** applied, not even for the Sun. -** -** 4) The struct b should include an entry for the Sun as well as for -** any planet or other body to be taken into account. The entries -** should be in the order in which the light passes the body. -** -** 5) In the entry in the b struct for body i, the mass parameter -** b[i].bm can, as required, be adjusted in order to allow for such -** effects as quadrupole field. -** -** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is -** the angular separation (in radians) between star and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. Example values suitable for a terrestrial -** observer, together with masses, are as follows: -** -** body i b[i].bm b[i].dl -** -** Sun 1.0 6e-6 -** Jupiter 0.00095435 3e-9 -** Saturn 0.00028574 3e-10 -** -** 7) For efficiency, validation of the contents of the b array is -** omitted. The supplied masses must be greater than zero, the -** position and velocity vectors must be right, and the deflection -** limiter greater than zero. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauZp zero p-vector -** iauAb stellar aberration -** iauLdn light deflection by n bodies -** iauC2s p-vector to spherical -** iauAnp normalize angle into range +/- pi -** -*/ - - - -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 tc, double rh, double wl, - double *aob, double *zob, double *hob, - double *dob, double *rob) -/* -** - - - - - - - - - - -** i a u A t i o 1 3 -** - - - - - - - - - - -** -** CIRS RA,Dec to observed place. The caller supplies UTC, site -** coordinates, ambient air conditions and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri double CIRS right ascension (CIO-based, radians) -** di double CIRS declination (radians) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 1,2) -** dut1 double UT1-UTC (seconds, Note 3) -** elong double longitude (radians, east +ve, Note 4) -** phi double geodetic latitude (radians, Note 4) -** hm double height above ellipsoid (m, geodetic Notes 4,6) -** xp,yp double polar motion coordinates (radians, Note 5) -** phpa double pressure at the observer (hPa = mB, Note 6) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 7) -** -** Returned: -** aob double* observed azimuth (radians: N=0,E=90) -** zob double* observed zenith distance (radians) -** hob double* observed hour angle (radians) -** dob double* observed declination (radians) -** rob double* observed right ascension (CIO-based, radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 2) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 4) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 5) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 6) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 7) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 8) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and RA are related simply through the Earth rotation -** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus -** means the position that would be seen by a perfect equatorial -** with its polar axis aligned to the Earth's axis of rotation. -** -** 9) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted astrometric -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** 10) The complementary functions iauAtio13 and iauAtoi13 are self- -** consistent to better than 1 microarcsecond all over the -** celestial sphere. -** -** 11) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApio13 astrometry parameters, CIRS-observed, 2013 -** iauAtioq quick CIRS to observed -** -*/ - - - -void iauAtioq(double ri, double di, iauASTROM *astrom, - double *aob, double *zob, - double *hob, double *dob, double *rob) -/* -** - - - - - - - - - -** i a u A t i o q -** - - - - - - - - - -** -** Quick CIRS to observed place transformation. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling iauApio[13] or iauApco[13]. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri double CIRS right ascension -** di double CIRS declination -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** aob double* observed azimuth (radians: N=0,E=90) -** zob double* observed zenith distance (radians) -** hob double* observed hour angle (radians) -** dob double* observed declination (radians) -** rob double* observed right ascension (CIO-based, radians) -** -** Notes: -** -** 1) This function returns zenith distance rather than altitude in -** order to reflect the fact that no allowance is made for -** depression of the horizon. -** -** 2) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted observed -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtioq and -** iauAtoiq are self-consistent to better than 1 microarcsecond all -** over the celestial sphere. With refraction included, consistency -** falls off at high zenith distances, but is still better than -** 0.05 arcsec at 85 degrees. -** -** 3) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 4) The CIRS RA,Dec is obtained from a star catalog mean place by -** allowing for space motion, parallax, the Sun's gravitational lens -** effect, annual aberration and precession-nutation. For star -** positions in the ICRS, these effects can be applied by means of -** the iauAtci13 (etc.) functions. Starting from classical "mean -** place" systems, additional transformations will be needed first. -** -** 5) "Observed" Az,El means the position that would be seen by a -** perfect geodetically aligned theodolite. This is obtained from -** the CIRS RA,Dec by allowing for Earth orientation and diurnal -** aberration, rotating from equator to horizon coordinates, and -** then adjusting for refraction. The HA,Dec is obtained by -** rotating back into equatorial coordinates, and is the position -** that would be seen by a perfect equatorial with its polar axis -** aligned to the Earth's axis of rotation. Finally, the -** (CIO-based) RA is obtained by subtracting the HA from the local -** ERA. -** -** 6) The star-independent CIRS-to-observed-place parameters in ASTROM -** may be computed with iauApio[13] or iauApco[13]. If nothing has -** changed significantly except the time, iauAper[13] may be used to -** perform the requisite adjustment to the astrom structure. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -*/ - - - -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 tc, double rh, double wl, - double *rc, double *dc) -/* -** - - - - - - - - - - -** i a u A t o c 1 3 -** - - - - - - - - - - -** -** Observed place at a groundbased site to to ICRS astrometric RA,Dec. -** The caller supplies UTC, site coordinates, ambient air conditions -** and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) -** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) -** ob2 double observed ZD or Dec (radians) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 3,4) -** dut1 double UT1-UTC (seconds, Note 5) -** elong double longitude (radians, east +ve, Note 6) -** phi double geodetic latitude (radians, Note 6) -** hm double height above ellipsoid (m, geodetic Notes 6,8) -** xp,yp double polar motion coordinates (radians, Note 7) -** phpa double pressure at the observer (hPa = mB, Note 8) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 9) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 4) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and (CIO-based) RA are related simply through the -** Earth rotation angle and the site longitude. "Observed" RA,Dec -** or HA,Dec thus means the position that would be seen by a -** perfect equatorial with its polar axis aligned to the Earth's -** axis of rotation. -** -** 2) Only the first character of the type argument is significant. -** "R" or "r" indicates that ob1 and ob2 are the observed right -** ascension (CIO-based) and declination; "H" or "h" indicates -** that they are hour angle (west +ve) and declination; anything -** else ("A" or "a" is recommended) indicates that ob1 and ob2 are -** azimuth (north zero, east 90 deg) and zenith distance. -** -** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 6) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 7) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 8) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 9) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 10) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted astrometric -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtco13 and -** iauAtoc13 are self-consistent to better than 1 microarcsecond -** all over the celestial sphere. With refraction included, -** consistency falls off at high zenith distances, but is still -** better than 0.05 arcsec at 85 degrees. -** -** 11) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApco13 astrometry parameters, ICRS-observed -** iauAtoiq quick observed to CIRS -** iauAticq quick CIRS to ICRS -** -*/ - - - -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 tc, double rh, double wl, - double *ri, double *di) -/* -** - - - - - - - - - - -** i a u A t o i 1 3 -** - - - - - - - - - - -** -** Observed place to CIRS. The caller supplies UTC, site coordinates, -** ambient air conditions and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) -** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) -** ob2 double observed ZD or Dec (radians) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 3,4) -** dut1 double UT1-UTC (seconds, Note 5) -** elong double longitude (radians, east +ve, Note 6) -** phi double geodetic latitude (radians, Note 6) -** hm double height above the ellipsoid (meters, Notes 6,8) -** xp,yp double polar motion coordinates (radians, Note 7) -** phpa double pressure at the observer (hPa = mB, Note 8) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 9) -** -** Returned: -** ri double* CIRS right ascension (CIO-based, radians) -** di double* CIRS declination (radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and (CIO-based) RA are related simply through the -** Earth rotation angle and the site longitude. "Observed" RA,Dec -** or HA,Dec thus means the position that would be seen by a -** perfect equatorial with its polar axis aligned to the Earth's -** axis of rotation. -** -** 2) Only the first character of the type argument is significant. -** "R" or "r" indicates that ob1 and ob2 are the observed right -** ascension and declination; "H" or "h" indicates that they are -** hour angle (west +ve) and declination; anything else ("A" or -** "a" is recommended) indicates that ob1 and ob2 are azimuth -** (north zero, east 90 deg) and zenith distance. -** -** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 6) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 7) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 8) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 9) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 10) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted astrometric -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtio13 and -** iauAtoi13 are self-consistent to better than 1 microarcsecond -** all over the celestial sphere. With refraction included, -** consistency falls off at high zenith distances, but is still -** better than 0.05 arcsec at 85 degrees. -** -** 12) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApio13 astrometry parameters, CIRS-observed, 2013 -** iauAtoiq quick observed to CIRS -** -*/ - - - -void iauAtoiq(const char *type, - double ob1, double ob2, iauASTROM *astrom, - double *ri, double *di) -/* -** - - - - - - - - - -** i a u A t o i q -** - - - - - - - - - -** -** Quick observed place to CIRS, given the star-independent astrometry -** parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling iauApio[13] or iauApco[13]. -** -** Status: support function. -** -** Given: -** type char[] type of coordinates: "R", "H" or "A" (Note 1) -** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) -** ob2 double observed ZD or Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ri double* CIRS right ascension (CIO-based, radians) -** di double* CIRS declination (radians) -** -** Notes: -** -** 1) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. This is related to -** the observed HA,Dec via the standard rotation, using the geodetic -** latitude (corrected for polar motion), while the observed HA and -** (CIO-based) RA are related simply through the Earth rotation -** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus -** means the position that would be seen by a perfect equatorial -** with its polar axis aligned to the Earth's axis of rotation. -** -** 2) Only the first character of the type argument is significant. -** "R" or "r" indicates that ob1 and ob2 are the observed right -** ascension (CIO-based) and declination; "H" or "h" indicates that -** they are hour angle (west +ve) and declination; anything else -** ("A" or "a" is recommended) indicates that ob1 and ob2 are -** azimuth (north zero, east 90 deg) and zenith distance. (Zenith -** distance is used rather than altitude in order to reflect the -** fact that no allowance is made for depression of the horizon.) -** -** 3) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted intermediate -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better than -** 20 arcmin (optical) or 25 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtioq and -** iauAtoiq are self-consistent to better than 1 microarcsecond all -** over the celestial sphere. With refraction included, consistency -** falls off at high zenith distances, but is still better than -** 0.05 arcsec at 85 degrees. -** -** 4) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -*/ - - - -void iauBi00(double *dpsibi, double *depsbi, double *dra) -/* -** - - - - - - - - -** i a u B i 0 0 -** - - - - - - - - -** -** Frame bias components of IAU 2000 precession-nutation models; part -** of the Mathews-Herring-Buffett (MHB2000) nutation series, with -** additions. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Returned: -** dpsibi,depsbi double longitude and obliquity corrections -** dra double the ICRS RA of the J2000.0 mean equinox -** -** Notes: -** -** 1) The frame bias corrections in longitude and obliquity (radians) -** are required in order to correct for the offset between the GCRS -** pole and the mean J2000.0 pole. They define, with respect to the -** GCRS frame, a J2000.0 mean pole that is consistent with the rest -** of the IAU 2000A precession-nutation model. -** -** 2) In addition to the displacement of the pole, the complete -** description of the frame bias requires also an offset in right -** ascension. This is not part of the IAU 2000A model, and is from -** Chapront et al. (2002). It is returned in radians. -** -** 3) This is a supplemented implementation of one aspect of the IAU -** 2000A nutation model, formally adopted by the IAU General -** Assembly in 2000, namely MHB2000 (Mathews et al. 2002). -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G., Astron. -** Astrophys., 387, 700, 2002. -** -** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation -** and precession: New nutation series for nonrigid Earth and -** insights into the Earth's interior", J.Geophys.Res., 107, B4, -** 2002. The MHB2000 code itself was obtained on 2002 September 9 -** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -*/ - - - -void iauBp00(double date1, double date2, - double rb[3][3], double rp[3][3], double rbp[3][3]) -/* -** - - - - - - - - -** i a u B p 0 0 -** - - - - - - - - -** -** Frame bias and precession, IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rb double[3][3] frame bias matrix (Note 2) -** rp double[3][3] precession matrix (Note 3) -** rbp double[3][3] bias-precession matrix (Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by -** applying frame bias. -** -** 3) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 4) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 5) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the order given. -** -** Called: -** iauBi00 frame bias components, IAU 2000 -** iauPr00 IAU 2000 precession adjustments -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRy rotate around Y-axis -** iauRz rotate around Z-axis -** iauCr copy r-matrix -** iauRxr product of two r-matrices -** -** Reference: -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -*/ - - - -void iauBp06(double date1, double date2, - double rb[3][3], double rp[3][3], double rbp[3][3]) -/* -** - - - - - - - - -** i a u B p 0 6 -** - - - - - - - - -** -** Frame bias and precession, IAU 2006. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rb double[3][3] frame bias matrix (Note 2) -** rp double[3][3] precession matrix (Note 3) -** rbp double[3][3] bias-precession matrix (Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by -** applying frame bias. -** -** 3) The matrix rp transforms vectors from mean J2000.0 to mean of -** date by applying precession. -** -** 4) The matrix rbp transforms vectors from GCRS to mean of date by -** applying frame bias then precession. It is the product rp x rb. -** -** 5) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the order given. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix -** iauPmat06 PB matrix, IAU 2006 -** iauTr transpose r-matrix -** iauRxr product of two r-matrices -** iauCr copy r-matrix -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -void iauBpn2xy(double rbpn[3][3], double *x, double *y) -/* -** - - - - - - - - - - -** i a u B p n 2 x y -** - - - - - - - - - - -** -** Extract from the bias-precession-nutation matrix the X,Y coordinates -** of the Celestial Intermediate Pole. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rbpn double[3][3] celestial-to-true matrix (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** -** Notes: -** -** 1) The matrix rbpn transforms vectors from GCRS to true equator (and -** CIO or equinox) of date, and therefore the Celestial Intermediate -** Pole unit vector is the bottom row of the matrix. -** -** 2) The arguments x,y are components of the Celestial Intermediate -** Pole unit vector in the Geocentric Celestial Reference System. -** -** Reference: -** -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 -** (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -*/ - - - -void iauC2i00a(double date1, double date2, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i 0 0 a -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date using the -** IAU 2000A precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 3) A faster, but slightly less accurate, result (about 1 mas) can be -** obtained by using instead the iauC2i00b function. -** -** Called: -** iauPnm00a classical NPB matrix, IAU 2000A -** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix -** -** References: -** -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 -** (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2i00b(double date1, double date2, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i 0 0 b -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date using the -** IAU 2000B precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauC2i00a function. -** -** Called: -** iauPnm00b classical NPB matrix, IAU 2000B -** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix -** -** References: -** -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 -** (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2i06a(double date1, double date2, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i 0 6 a -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date using the -** IAU 2006 precession and IAU 2000A nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -*/ - - - -void iauC2ibpn(double date1, double date2, double rbpn[3][3], - double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i b p n -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date given -** the bias-precession-nutation matrix. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** rbpn double[3][3] celestial-to-true matrix (Note 2) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rbpn transforms vectors from GCRS to true equator (and -** CIO or equinox) of date. Only the CIP (bottom row) is used. -** -** 3) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 4) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauC2ixy celestial-to-intermediate matrix, given X,Y -** -** References: -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2ixy(double date1, double date2, double x, double y, - double rc2i[3][3]) -/* -** - - - - - - - - - -** i a u C 2 i x y -** - - - - - - - - - -** -** Form the celestial to intermediate-frame-of-date matrix for a given -** date when the CIP X,Y coordinates are known. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** x,y double Celestial Intermediate Pole (Note 2) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y components -** of the unit vector in the Geocentric Celestial Reference System. -** -** 3) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 4) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2ixys(double x, double y, double s, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i x y s -** - - - - - - - - - - -** -** Form the celestial to intermediate-frame-of-date matrix given the CIP -** X,Y and the CIO locator s. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** x,y double Celestial Intermediate Pole (Note 1) -** s double the CIO locator s (Note 2) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) -** -** Notes: -** -** 1) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 2) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 3) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2s(double p[3], double *theta, double *phi) -/* -** - - - - - - - -** i a u C 2 s -** - - - - - - - -** -** P-vector to spherical coordinates. -** -** 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: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** -** Notes: -** -** 1) The vector p can have any magnitude; only its direction is used. -** -** 2) If p is null, zero theta and phi are returned. -** -** 3) At either pole, zero theta is returned. -** -*/ - - - -void iauC2t00a(double tta, double ttb, double uta, double utb, - double xp, double yp, double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t 0 0 a -** - - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1 and -** the polar motion, using the IAU 2000A precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** xp,yp double CIP coordinates (radians, Note 2) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 3) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RC2I is the -** celestial-to-intermediate matrix, ERA is the Earth rotation -** angle and RPOM is the polar motion matrix. -** -** 4) A faster, but slightly less accurate, result (about 1 mas) can -** be obtained by using instead the iauC2t00b function. -** -** Called: -** iauC2i00a celestial-to-intermediate matrix, IAU 2000A -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2t00b(double tta, double ttb, double uta, double utb, - double xp, double yp, double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t 0 0 b -** - - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1 and -** the polar motion, using the IAU 2000B precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** xp,yp double coordinates of the pole (radians, Note 2) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 3) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RC2I is the -** celestial-to-intermediate matrix, ERA is the Earth rotation -** angle and RPOM is the polar motion matrix. -** -** 4) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauC2t00a function. -** -** Called: -** iauC2i00b celestial-to-intermediate matrix, IAU 2000B -** iauEra00 Earth rotation angle, IAU 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2t06a(double tta, double ttb, double uta, double utb, - double xp, double yp, double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t 0 6 a -** - - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1 and -** the polar motion, using the IAU 2006/2000A precession-nutation -** model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** xp,yp double coordinates of the pole (radians, Note 2) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the two arguments. For -** example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 3) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RC2I is the -** celestial-to-intermediate matrix, ERA is the Earth rotation -** angle and RPOM is the polar motion matrix. -** -** Called: -** iauC2i06a celestial-to-intermediate matrix, IAU 2006/2000A -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -*/ - - - -void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], - double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t c i o -** - - - - - - - - - - -** -** Assemble the celestial to terrestrial matrix from CIO-based -** components (the celestial-to-intermediate matrix, the Earth Rotation -** Angle and the polar motion matrix). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc2i double[3][3] celestial-to-intermediate matrix -** era double Earth rotation angle (radians) -** rpom double[3][3] polar-motion matrix -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix -** -** Notes: -** -** 1) This function constructs the rotation matrix that transforms -** vectors in the celestial system into vectors in the terrestrial -** system. It does so starting from precomputed components, namely -** the matrix which rotates from celestial coordinates to the -** intermediate frame, the Earth rotation angle and the polar motion -** matrix. One use of the present function is when generating a -** series of celestial-to-terrestrial matrices where only the Earth -** Rotation Angle changes, avoiding the considerable overhead of -** recomputing the precession-nutation more often than necessary to -** achieve given accuracy objectives. -** -** 2) The relationship between the arguments is as follows: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003). -** -** Called: -** iauCr copy r-matrix -** iauRz rotate around Z-axis -** iauRxr product of two r-matrices -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -*/ - - - -void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], - double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t e q x -** - - - - - - - - - - -** -** Assemble the celestial to terrestrial matrix from equinox-based -** components (the celestial-to-true matrix, the Greenwich Apparent -** Sidereal Time and the polar motion matrix). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rbpn double[3][3] celestial-to-true matrix -** gst double Greenwich (apparent) Sidereal Time (radians) -** rpom double[3][3] polar-motion matrix -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 2) -** -** Notes: -** -** 1) This function constructs the rotation matrix that transforms -** vectors in the celestial system into vectors in the terrestrial -** system. It does so starting from precomputed components, namely -** the matrix which rotates from celestial coordinates to the -** true equator and equinox of date, the Greenwich Apparent Sidereal -** Time and the polar motion matrix. One use of the present function -** is when generating a series of celestial-to-terrestrial matrices -** where only the Sidereal Time changes, avoiding the considerable -** overhead of recomputing the precession-nutation more often than -** necessary to achieve given accuracy objectives. -** -** 2) The relationship between the arguments is as follows: -** -** [TRS] = rpom * R_3(gst) * rbpn * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003). -** -** Called: -** iauCr copy r-matrix -** iauRz rotate around Z-axis -** iauRxr product of two r-matrices -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2tpe(double tta, double ttb, double uta, double utb, - double dpsi, double deps, double xp, double yp, - double rc2t[3][3]) -/* -** - - - - - - - - - -** i a u C 2 t p e -** - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1, -** the nutation and the polar motion. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** dpsi,deps double nutation (Note 2) -** xp,yp double coordinates of the pole (radians, Note 3) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. For high-accuracy -** applications, free core nutation should be included as well as -** any other relevant corrections to the position of the CIP. -** -** 3) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 4) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(GST) * RBPN * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RBPN is the -** bias-precession-nutation matrix, GST is the Greenwich (apparent) -** Sidereal Time and RPOM is the polar motion matrix. -** -** 5) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauPn00 bias/precession/nutation results, IAU 2000 -** iauGmst00 Greenwich mean sidereal time, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauEe00 equation of the equinoxes, IAU 2000 -** iauPom00 polar motion matrix -** iauC2teqx form equinox-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauC2txy(double tta, double ttb, double uta, double utb, - double x, double y, double xp, double yp, - double rc2t[3][3]) -/* -** - - - - - - - - - -** i a u C 2 t x y -** - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1, -** the CIP coordinates and the polar motion. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** x,y double Celestial Intermediate Pole (Note 2) -** xp,yp double coordinates of the pole (radians, Note 3) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any o -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 3) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 4) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 5) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauC2ixy celestial-to-intermediate matrix, given X,Y -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) -/* -** - - - - - - - - - - -** i a u C a l 2 j d -** - - - - - - - - - - -** -** Gregorian Calendar to Julian Date. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** iy,im,id int year, month, day in Gregorian calendar (Note 1) -** -** Returned: -** djm0 double MJD zero-point: always 2400000.5 -** djm double Modified Julian Date for 0 hrs -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = bad year (Note 3: JD not computed) -** -2 = bad month (JD not computed) -** -3 = bad day (JD computed) -** -** Notes: -** -** 1) The algorithm used is valid from -4800 March 1, but this -** implementation rejects dates before -4799 January 1. -** -** 2) The Julian Date is returned in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding djm0 and -** djm. -** -** 3) In early eras the conversion is from the "Proleptic Gregorian -** Calendar"; no account is taken of the date(s) of adoption of -** the Gregorian Calendar, nor is the AD/BC numbering convention -** observed. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 12.92 (p604). -** -*/ - - - -void iauCp(double p[3], double c[3]) -/* -** - - - - - - -** i a u C p -** - - - - - - -** -** Copy a p-vector. -** -** 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 to be copied -** -** Returned: -** c double[3] copy -** -*/ - - - -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 -** -*/ - - - -void iauCr(double r[3][3], double c[3][3]) -/* -** - - - - - - -** i a u C r -** - - - - - - -** -** Copy 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 to be copied -** -** Returned: -** c double[3][3] copy -** -** Called: -** iauCp copy p-vector -** -*/ - - - -int iauD2dtf(const char *scale, int ndp, double d1, double d2, - int *iy, int *im, int *id, int ihmsf[4]) -/* -** - - - - - - - - - -** i a u D 2 d t f -** - - - - - - - - - -** -** Format for output a 2-part Julian Date (or in the case of UTC a -** quasi-JD form that includes special provision for leap seconds). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** scale char[] time scale ID (Note 1) -** ndp int resolution (Note 2) -** d1,d2 double time as a 2-part Julian Date (Notes 3,4) -** -** Returned: -** iy,im,id int year, month, day in Gregorian calendar (Note 5) -** ihmsf int[4] hours, minutes, seconds, fraction (Note 1) -** -** Returned (function value): -** int status: +1 = dubious year (Note 5) -** 0 = OK -** -1 = unacceptable date (Note 6) -** -** Notes: -** -** 1) scale identifies the time scale. Only the value "UTC" (in upper -** case) is significant, and enables handling of leap seconds (see -** Note 4). -** -** 2) ndp is the number of decimal places in the seconds field, and can -** have negative as well as positive values, such as: -** -** ndp resolution -** -4 1 00 00 -** -3 0 10 00 -** -2 0 01 00 -** -1 0 00 10 -** 0 0 00 01 -** 1 0 00 00.1 -** 2 0 00 00.01 -** 3 0 00 00.001 -** -** The limits are platform dependent, but a safe range is -5 to +9. -** -** 3) d1+d2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where d1 is the Julian Day Number -** and d2 is the fraction of a day. In the case of UTC, where the -** use of JD is problematical, special conventions apply: see the -** next note. -** -** 4) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The SOFA internal convention is that -** the quasi-JD day represents UTC days whether the length is 86399, -** 86400 or 86401 SI seconds. In the 1960-1972 era there were -** smaller jumps (in either direction) each time the linear UTC(TAI) -** expression was changed, and these "mini-leaps" are also included -** in the SOFA convention. -** -** 5) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 6) For calendar conventions and limitations, see iauCal2jd. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauD2tf decompose days to hms -** iauDat delta(AT) = TAI-UTC -** -*/ - - - -void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]) -/* -** - - - - - - - - -** i a u D 2 t f -** - - - - - - - - -** -** Decompose days to hours, minutes, seconds, fraction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** ndp int resolution (Note 1) -** days double interval in days -** -** Returned: -** sign char* '+' or '-' -** ihmsf int[4] hours, minutes, seconds, fraction -** -** Notes: -** -** 1) The argument ndp is interpreted as follows: -** -** ndp resolution -** : ...0000 00 00 -** -7 1000 00 00 -** -6 100 00 00 -** -5 10 00 00 -** -4 1 00 00 -** -3 0 10 00 -** -2 0 01 00 -** -1 0 00 10 -** 0 0 00 01 -** 1 0 00 00.1 -** 2 0 00 00.01 -** 3 0 00 00.001 -** : 0 00 00.000... -** -** 2) The largest positive useful value for ndp is determined by the -** size of days, the format of double on the target platform, and -** the risk of overflowing ihmsf[3]. On a typical platform, for -** days up to 1.0, the available floating-point precision might -** correspond to ndp=12. However, the practical limit is typically -** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is -** only 16 bits. -** -** 3) The absolute value of days may exceed 1.0. In cases where it -** does not, it is up to the caller to test for and handle the -** case where days is very nearly 1.0 and rounds up to 24 hours, -** by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero. -** -*/ - - - -int iauDat(int iy, int im, int id, double fd, double *deltat) -/* -** - - - - - - - -** i a u D a t -** - - - - - - - -** -** For a given UTC date, calculate Delta(AT) = TAI-UTC. -** -** :------------------------------------------: -** : : -** : IMPORTANT : -** : : -** : A new version of this function must be : -** : produced whenever a new leap second is : -** : announced. There are four items to : -** : change on each such occasion: : -** : : -** : 1) A new line must be added to the set : -** : of statements that initialize the : -** : array "changes". : -** : : -** : 2) The constant IYV must be set to the : -** : current year. : -** : : -** : 3) The "Latest leap second" comment : -** : below must be set to the new leap : -** : second date. : -** : : -** : 4) The "This revision" comment, later, : -** : must be set to the current date. : -** : : -** : Change (2) must also be carried out : -** : whenever the function is re-issued, : -** : even if no leap seconds have been : -** : added. : -** : : -** : Latest leap second: 2016 December 31 : -** : : -** :__________________________________________: -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: user-replaceable support function. -** -** Given: -** iy int UTC: year (Notes 1 and 2) -** im int month (Note 2) -** id int day (Notes 2 and 3) -** fd double fraction of day (Note 4) -** -** Returned: -** deltat double TAI minus UTC, seconds -** -** Returned (function value): -** int status (Note 5): -** 1 = dubious year (Note 1) -** 0 = OK -** -1 = bad year -** -2 = bad month -** -3 = bad day (Note 3) -** -4 = bad fraction (Note 4) -** -5 = internal error (Note 5) -** -** Notes: -** -** 1) UTC began at 1960 January 1.0 (JD 2436934.5) and it is improper -** to call the function with an earlier date. If this is attempted, -** zero is returned together with a warning status. -** -** Because leap seconds cannot, in principle, be predicted in -** advance, a reliable check for dates beyond the valid range is -** impossible. To guard against gross errors, a year five or more -** after the release year of the present function (see the constant -** IYV) is considered dubious. In this case a warning status is -** returned but the result is computed in the normal way. -** -** For both too-early and too-late years, the warning status is +1. -** This is distinct from the error status -1, which signifies a year -** so early that JD could not be computed. -** -** 2) If the specified date is for a day which ends with a leap second, -** the TAI-UTC value returned is for the period leading up to the -** leap second. If the date is for a day which begins as a leap -** second ends, the TAI-UTC returned is for the period following the -** leap second. -** -** 3) The day number must be in the normal calendar range, for example -** 1 through 30 for April. The "almanac" convention of allowing -** such dates as January 0 and December 32 is not supported in this -** function, in order to avoid confusion near leap seconds. -** -** 4) The fraction of day is used only for dates before the -** introduction of leap seconds, the first of which occurred at the -** end of 1971. It is tested for validity (0 to 1 is the valid -** range) even if not used; if invalid, zero is used and status -4 -** is returned. For many applications, setting fd to zero is -** acceptable; the resulting error is always less than 3 ms (and -** occurs only pre-1972). -** -** 5) The status value returned in the case where there are multiple -** errors refers to the first error detected. For example, if the -** month and day are 13 and 32 respectively, status -2 (bad month) -** will be returned. The "internal error" status refers to a -** case that is impossible but causes some compilers to issue a -** warning. -** -** 6) In cases where a valid result is not available, zero is returned. -** -** References: -** -** 1) For dates from 1961 January 1 onwards, the expressions from the -** file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used. -** -** 2) The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of -** the 1992 Explanatory Supplement. -** -** Called: -** iauCal2jd Gregorian calendar to JD -** -*/ - - - -double iauDtdb(double date1, double date2, - double ut, double elong, double u, double v) -/* -** - - - - - - - - -** i a u D t d b -** - - - - - - - - -** -** An approximation to TDB-TT, the difference between barycentric -** dynamical time and terrestrial time, for an observer on the Earth. -** -** The different time scales - proper, coordinate and realized - are -** related to each other: -** -** TAI <- physically realized -** : -** offset <- observed (nominally +32.184s) -** : -** TT <- terrestrial time -** : -** rate adjustment (L_G) <- definition of TT -** : -** TCG <- time scale for GCRS -** : -** "periodic" terms <- iauDtdb is an implementation -** : -** rate adjustment (L_C) <- function of solar-system ephemeris -** : -** TCB <- time scale for BCRS -** : -** rate adjustment (-L_B) <- definition of TDB -** : -** TDB <- TCB scaled to track TT -** : -** "periodic" terms <- -iauDtdb is an approximation -** : -** TT <- terrestrial time -** -** Adopted values for the various constants can be found in the IERS -** Conventions (McCarthy & Petit 2003). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double date, TDB (Notes 1-3) -** ut double universal time (UT1, fraction of one day) -** elong double longitude (east positive, radians) -** u double distance from Earth spin axis (km) -** v double distance north of equatorial plane (km) -** -** Returned (function value): -** double TDB-TT (seconds) -** -** Notes: -** -** 1) The date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** Although the date is, formally, barycentric dynamical time (TDB), -** the terrestrial dynamical time (TT) can be used with no practical -** effect on the accuracy of the prediction. -** -** 2) TT can be regarded as a coordinate time that is realized as an -** offset of 32.184s from International Atomic Time, TAI. TT is a -** specific linear transformation of geocentric coordinate time TCG, -** which is the time scale for the Geocentric Celestial Reference -** System, GCRS. -** -** 3) TDB is a coordinate time, and is a specific linear transformation -** of barycentric coordinate time TCB, which is the time scale for -** the Barycentric Celestial Reference System, BCRS. -** -** 4) The difference TCG-TCB depends on the masses and positions of the -** bodies of the solar system and the velocity of the Earth. It is -** dominated by a rate difference, the residual being of a periodic -** character. The latter, which is modeled by the present function, -** comprises a main (annual) sinusoidal term of amplitude -** approximately 0.00166 seconds, plus planetary terms up to about -** 20 microseconds, and lunar and diurnal terms up to 2 microseconds. -** These effects come from the changing transverse Doppler effect -** and gravitational red-shift as the observer (on the Earth's -** surface) experiences variations in speed (with respect to the -** BCRS) and gravitational potential. -** -** 5) TDB can be regarded as the same as TCB but with a rate adjustment -** to keep it close to TT, which is convenient for many applications. -** The history of successive attempts to define TDB is set out in -** Resolution 3 adopted by the IAU General Assembly in 2006, which -** defines a fixed TDB(TCB) transformation that is consistent with -** contemporary solar-system ephemerides. Future ephemerides will -** imply slightly changed transformations between TCG and TCB, which -** could introduce a linear drift between TDB and TT; however, any -** such drift is unlikely to exceed 1 nanosecond per century. -** -** 6) The geocentric TDB-TT model used in the present function is that of -** Fairhead & Bretagnon (1990), in its full form. It was originally -** supplied by Fairhead (private communications with P.T.Wallace, -** 1990) as a Fortran subroutine. The present C function contains an -** adaptation of the Fairhead code. The numerical results are -** essentially unaffected by the changes, the differences with -** respect to the Fairhead & Bretagnon original being at the 1e-20 s -** level. -** -** The topocentric part of the model is from Moyer (1981) and -** Murray (1983), with fundamental arguments adapted from -** Simon et al. 1994. It is an approximation to the expression -** ( v / c ) . ( r / c ), where v is the barycentric velocity of -** the Earth, r is the geocentric position of the observer and -** c is the speed of light. -** -** By supplying zeroes for u and v, the topocentric part of the -** model can be nullified, and the function will return the Fairhead -** & Bretagnon result alone. -** -** 7) During the interval 1950-2050, the absolute accuracy is better -** than +/- 3 nanoseconds relative to time ephemerides obtained by -** direct numerical integrations based on the JPL DE405 solar system -** ephemeris. -** -** 8) It must be stressed that the present function is merely a model, -** and that numerical integration of solar-system ephemerides is the -** definitive method for predicting the relationship between TCG and -** TCB and hence between TT and TDB. -** -** References: -** -** Fairhead, L., & Bretagnon, P., Astron.Astrophys., 229, 240-247 -** (1990). -** -** IAU 2006 Resolution 3. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Moyer, T.D., Cel.Mech., 23, 33 (1981). -** -** Murray, C.A., Vectorial Astrometry, Adam Hilger (1983). -** -** Seidelmann, P.K. et al., Explanatory Supplement to the -** Astronomical Almanac, Chapter 2, University Science Books (1992). -** -** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G. & Laskar, J., Astron.Astrophys., 282, 663-683 (1994). -** -*/ - - - -int iauDtf2d(const char *scale, int iy, int im, int id, - int ihr, int imn, double sec, double *d1, double *d2) -/* -** - - - - - - - - - -** i a u D t f 2 d -** - - - - - - - - - -** -** Encode date and time fields into 2-part Julian Date (or in the case -** of UTC a quasi-JD form that includes special provision for leap -** seconds). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** scale char[] time scale ID (Note 1) -** iy,im,id int year, month, day in Gregorian calendar (Note 2) -** ihr,imn int hour, minute -** sec double seconds -** -** Returned: -** d1,d2 double 2-part Julian Date (Notes 3,4) -** -** Returned (function value): -** int status: +3 = both of next two -** +2 = time is after end of day (Note 5) -** +1 = dubious year (Note 6) -** 0 = OK -** -1 = bad year -** -2 = bad month -** -3 = bad day -** -4 = bad hour -** -5 = bad minute -** -6 = bad second (<0) -** -** Notes: -** -** 1) scale identifies the time scale. Only the value "UTC" (in upper -** case) is significant, and enables handling of leap seconds (see -** Note 4). -** -** 2) For calendar conventions and limitations, see iauCal2jd. -** -** 3) The sum of the results, d1+d2, is Julian Date, where normally d1 -** is the Julian Day Number and d2 is the fraction of a day. In the -** case of UTC, where the use of JD is problematical, special -** conventions apply: see the next note. -** -** 4) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The SOFA internal convention is that -** the quasi-JD day represents UTC days whether the length is 86399, -** 86400 or 86401 SI seconds. In the 1960-1972 era there were -** smaller jumps (in either direction) each time the linear UTC(TAI) -** expression was changed, and these "mini-leaps" are also included -** in the SOFA convention. -** -** 5) The warning status "time is after end of day" usually means that -** the sec argument is greater than 60.0. However, in a day ending -** in a leap second the limit changes to 61.0 (or 59.0 in the case -** of a negative leap second). -** -** 6) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 7) Only in the case of continuous and regular time scales (TAI, TT, -** TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly -** speaking. In the other cases (UT1 and UTC) the result must be -** used with circumspection; in particular the difference between -** two such results cannot be interpreted as a precise time -** interval. -** -** Called: -** iauCal2jd Gregorian calendar to JD -** iauDat delta(AT) = TAI-UTC -** iauJd2cal JD to Gregorian calendar -** -*/ - - - -void iauEceq06(double date1, double date2, double dl, double db, - double *dr, double *dd) -/* -** - - - - - - - - - - -** i a u E c e q 0 6 -** - - - - - - - - - - -** -** Transformation from ecliptic coordinates (mean equinox and ecliptic -** of date) to ICRS RA,Dec, using the IAU 2006 precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian date (Note 1) -** dl,db double ecliptic longitude and latitude (radians) -** -** Returned: -** dr,dd double ICRS right ascension and declination (radians) -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) No assumptions are made about whether the coordinates represent -** starlight and embody astrometric effects such as parallax or -** aberration. -** -** 3) The transformation is approximately that from ecliptic longitude -** and latitude (mean equinox and ecliptic of date) to mean J2000.0 -** right ascension and declination, with only frame bias (always -** less than 25 mas) to disturb this classical picture. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 -** iauTrxp product of transpose of r-matrix and p-vector -** iauC2s unit vector to spherical coordinates -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** -*/ - - - -void iauEcm06(double date1, double date2, double rm[3][3]) -/* -** - - - - - - - - - -** i a u E c m 0 6 -** - - - - - - - - - -** -** ICRS equatorial to ecliptic rotation matrix, IAU 2006. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian date (Note 1) -** -** Returned: -** rm double[3][3] ICRS to ecliptic rotation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix is in the sense -** -** E_ep = rm x P_ICRS, -** -** where P_ICRS is a vector with respect to ICRS right ascension -** and declination axes and E_ep is the same vector with respect to -** the (inertial) ecliptic and equinox of date. -** -** P_ICRS is a free vector, merely a direction, typically of unit -** magnitude, and not bound to any particular spatial origin, such -** as the Earth, Sun or SSB. No assumptions are made about whether -** it represents starlight and embodies astrometric effects such as -** parallax or aberration. The transformation is approximately that -** between mean J2000.0 right ascension and declination and ecliptic -** longitude and latitude, with only frame bias (always less than -** 25 mas) to disturb this classical picture. -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** iauPmat06 PB matrix, IAU 2006 -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRxr product of two r-matrices -** -*/ - - - -double iauEe00(double date1, double date2, double epsa, double dpsi) -/* -** - - - - - - - - -** i a u E e 0 0 -** - - - - - - - - -** -** The equation of the equinoxes, compatible with IAU 2000 resolutions, -** given the nutation in longitude and the mean obliquity. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** epsa double mean obliquity (Note 2) -** dpsi double nutation in longitude (Note 3) -** -** Returned (function value): -** double equation of the equinoxes (Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The obliquity, in radians, is mean of date. -** -** 3) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** 4) The result is compatible with the IAU 2000 resolutions. For -** further details, see IERS Conventions 2003 and Capitaine et al. -** (2002). -** -** Called: -** iauEect00 equation of the equinoxes complementary terms -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauEe00a(double date1, double date2) -/* -** - - - - - - - - - -** i a u E e 0 0 a -** - - - - - - - - - -** -** Equation of the equinoxes, compatible with IAU 2000 resolutions. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** 3) The result is compatible with the IAU 2000 resolutions. For -** further details, see IERS Conventions 2003 and Capitaine et al. -** (2002). -** -** Called: -** iauPr00 IAU 2000 precession adjustments -** iauObl80 mean obliquity, IAU 1980 -** iauNut00a nutation, IAU 2000A -** iauEe00 equation of the equinoxes, IAU 2000 -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003). -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004). -** -*/ - - - -double iauEe00b(double date1, double date2) -/* -** - - - - - - - - - -** i a u E e 0 0 b -** - - - - - - - - - -** -** Equation of the equinoxes, compatible with IAU 2000 resolutions but -** using the truncated nutation model IAU 2000B. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** 3) The result is compatible with the IAU 2000 resolutions except -** that accuracy has been compromised (1 mas) for the sake of speed. -** For further details, see McCarthy & Luzum (2003), IERS -** Conventions 2003 and Capitaine et al. (2003). -** -** Called: -** iauPr00 IAU 2000 precession adjustments -** iauObl80 mean obliquity, IAU 1980 -** iauNut00b nutation, IAU 2000B -** iauEe00 equation of the equinoxes, IAU 2000 -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Celestial Mechanics & -** Dynamical Astronomy, 85, 37-49 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauEe06a(double date1, double date2) -/* -** - - - - - - - - - -** i a u E e 0 6 a -** - - - - - - - - - -** -** Equation of the equinoxes, compatible with IAU 2000 resolutions and -** IAU 2006/2000A precession-nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** Called: -** iauAnpm normalize angle into range +/- pi -** iauGst06a Greenwich apparent sidereal time, IAU 2006/2000A -** iauGmst06 Greenwich mean sidereal time, IAU 2006 -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -*/ - - - -double iauEect00(double date1, double date2) -/* -** - - - - - - - - - - -** i a u E e c t 0 0 -** - - - - - - - - - - -** -** Equation of the equinoxes complementary terms, consistent with -** IAU 2000 resolutions. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double complementary terms (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The "complementary terms" are part of the equation of the -** equinoxes (EE), classically the difference between apparent and -** mean Sidereal Time: -** -** GAST = GMST + EE -** -** with: -** -** EE = dpsi * cos(eps) -** -** where dpsi is the nutation in longitude and eps is the obliquity -** of date. However, if the rotation of the Earth were constant in -** an inertial frame the classical formulation would lead to -** apparent irregularities in the UT1 timescale traceable to side- -** effects of precession-nutation. In order to eliminate these -** effects from UT1, "complementary terms" were introduced in 1994 -** (IAU, 1994) and took effect from 1997 (Capitaine and Gontier, -** 1993): -** -** GAST = GMST + CT + EE -** -** By convention, the complementary terms are included as part of -** the equation of the equinoxes rather than as part of the mean -** Sidereal Time. This slightly compromises the "geometrical" -** interpretation of mean sidereal time but is otherwise -** inconsequential. -** -** The present function computes CT in the above expression, -** compatible with IAU 2000 resolutions (Capitaine et al., 2002, and -** IERS Conventions 2003). -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N. & Gontier, A.-M., Astron.Astrophys., 275, -** 645-650 (1993) -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astron.Astrophys., 406, -** 1135-1149 (2003) -** -** IAU Resolution C7, Recommendation 3 (1994) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -int iauEform ( int n, double *a, double *f ) -/* -** - - - - - - - - - -** i a u E f o r m -** - - - - - - - - - -** -** Earth reference ellipsoids. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** n int ellipsoid identifier (Note 1) -** -** Returned: -** a double equatorial radius (meters, Note 2) -** f double flattening (Note 2) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal identifier (Note 3) -** -** Notes: -** -** 1) The identifier n is a number that specifies the choice of -** reference ellipsoid. The following are supported: -** -** n ellipsoid -** -** 1 WGS84 -** 2 GRS80 -** 3 WGS72 -** -** The n value has no significance outside the SOFA software. For -** convenience, symbols WGS84 etc. are defined in sofam.h. -** -** 2) The ellipsoid parameters are returned in the form of equatorial -** radius in meters (a) and flattening (f). The latter is a number -** around 0.00335, i.e. around 1/298. -** -** 3) For the case where an unsupported n value is supplied, zero a and -** f are returned, as well as error status. -** -** References: -** -** Department of Defense World Geodetic System 1984, National -** Imagery and Mapping Agency Technical Report 8350.2, Third -** Edition, p3-2. -** -** Moritz, H., Bull. Geodesique 66-2, 187 (1992). -** -** The Department of Defense World Geodetic System 1972, World -** Geodetic System Committee, May 1974. -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** p220. -** -*/ - - - -double iauEo06a(double date1, double date2) -/* -** - - - - - - - - - -** i a u E o 0 6 a -** - - - - - - - - - -** -** Equation of the origins, IAU 2006 precession and IAU 2000A nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the equation of the origins in radians -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The equation of the origins is the distance between the true -** equinox and the celestial intermediate origin and, equivalently, -** the difference between Earth rotation angle and Greenwich -** apparent sidereal time (ERA-GST). It comprises the precession -** (since J2000.0) in right ascension plus the equation of the -** equinoxes (including the small correction terms). -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauEors equation of the origins, given NPB matrix and s -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -double iauEors(double rnpb[3][3], double s) -/* -** - - - - - - - - -** i a u E o r s -** - - - - - - - - -** -** Equation of the origins, given the classical NPB matrix and the -** quantity s. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rnpb double[3][3] classical nutation x precession x bias matrix -** s double the quantity s (the CIO locator) in radians -** -** Returned (function value): -** double the equation of the origins in radians -** -** Notes: -** -** 1) The equation of the origins is the distance between the true -** equinox and the celestial intermediate origin and, equivalently, -** the difference between Earth rotation angle and Greenwich -** apparent sidereal time (ERA-GST). It comprises the precession -** (since J2000.0) in right ascension plus the equation of the -** equinoxes (including the small correction terms). -** -** 2) The algorithm is from Wallace & Capitaine (2006). -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -double iauEpb(double dj1, double dj2) -/* -** - - - - - - - -** i a u E p b -** - - - - - - - -** -** Julian Date to Besselian Epoch. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dj1,dj2 double Julian Date (Notes 3,4) -** -** Returned (function value): -** double Besselian Epoch. -** -** Notes: -** -** 1) Besselian Epoch is a method of expressing a moment in time as a -** year plus fraction. It was superseded by Julian Year (see the -** function iauEpj). -** -** 2) The start of a Besselian year is when the right ascension of -** the fictitious mean Sun is 18h 40m, and the unit is the tropical -** year. The conventional definition (see Lieske 1979) is that -** Besselian Epoch B1900.0 is JD 2415020.31352 and the length of the -** year is 365.242198781 days. -** -** 3) The time scale for the JD, originally Ephemeris Time, is TDB, -** which for all practical purposes in the present context is -** indistinguishable from TT. -** -** 4) The Julian Date is supplied in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding dj1 and -** dj2. The maximum resolution is achieved if dj1 is 2451545.0 -** (J2000.0). -** -** Reference: -** -** Lieske, J.H., 1979. Astron.Astrophys., 73, 282. -** -*/ - - - -void iauEpb2jd(double epb, double *djm0, double *djm) -/* -** - - - - - - - - - - -** i a u E p b 2 j d -** - - - - - - - - - - -** -** Besselian Epoch to Julian Date. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epb double Besselian Epoch (e.g. 1957.3) -** -** Returned: -** djm0 double MJD zero-point: always 2400000.5 -** djm double Modified Julian Date -** -** Note: -** -** The Julian Date is returned in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding djm0 and -** djm. -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** -*/ - - - -double iauEpj(double dj1, double dj2) -/* -** - - - - - - - -** i a u E p j -** - - - - - - - -** -** Julian Date to Julian Epoch. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dj1,dj2 double Julian Date (Note 4) -** -** Returned (function value): -** double Julian Epoch -** -** Notes: -** -** 1) Julian Epoch is a method of expressing a moment in time as a -** year plus fraction. -** -** 2) Julian Epoch J2000.0 is 2000 Jan 1.5, and the length of the year -** is 365.25 days. -** -** 3) For historical reasons, the time scale formally associated with -** Julian Epoch is TDB (or TT, near enough). However, Julian Epoch -** can be used more generally as a calendrical convention to -** represent other time scales such as TAI and TCB. This is -** analogous to Julian Date, which was originally defined -** specifically as a way of representing Universal Times but is now -** routinely used for any of the regular time scales. -** -** 4) The Julian Date is supplied in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding dj1 and -** dj2. The maximum resolution is achieved if dj1 is 2451545.0 -** (J2000.0). -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** -*/ - - - -void iauEpj2jd(double epj, double *djm0, double *djm) -/* -** - - - - - - - - - - -** i a u E p j 2 j d -** - - - - - - - - - - -** -** Julian Epoch to Julian Date. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian Epoch (e.g. 1996.8) -** -** Returned: -** djm0 double MJD zero-point: always 2400000.5 -** djm double Modified Julian Date -** -** Note: -** -** The Julian Date is returned in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding djm0 and -** djm. -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** -*/ - - - -int iauEpv00(double date1, double date2, - double pvh[2][3], double pvb[2][3]) -/* -** - - - - - - - - - -** i a u E p v 0 0 -** - - - - - - - - - -** -** Earth position and velocity, heliocentric and barycentric, with -** respect to the Barycentric Celestial Reference System. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TDB date (Note 1) -** -** Returned: -** pvh double[2][3] heliocentric Earth position/velocity -** pvb double[2][3] barycentric Earth position/velocity -** -** Returned (function value): -** int status: 0 = OK -** +1 = warning: date outside -** the range 1900-2100 AD -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. However, -** the accuracy of the result is more likely to be limited by the -** algorithm itself than the way the date has been expressed. -** -** n.b. TT can be used instead of TDB in most applications. -** -** 2) On return, the arrays pvh and pvb contain the following: -** -** pvh[0][0] x } -** pvh[0][1] y } heliocentric position, au -** pvh[0][2] z } -** -** pvh[1][0] xdot } -** pvh[1][1] ydot } heliocentric velocity, au/d -** pvh[1][2] zdot } -** -** pvb[0][0] x } -** pvb[0][1] y } barycentric position, au -** pvb[0][2] z } -** -** pvb[1][0] xdot } -** pvb[1][1] ydot } barycentric velocity, au/d -** pvb[1][2] zdot } -** -** The vectors are oriented with respect to the BCRS. The time unit -** is one day in TDB. -** -** 3) The function is a SIMPLIFIED SOLUTION from the planetary theory -** VSOP2000 (X. Moisson, P. Bretagnon, 2001, Celes. Mechanics & -** Dyn. Astron., 80, 3/4, 205-213) and is an adaptation of original -** Fortran code supplied by P. Bretagnon (private comm., 2000). -** -** 4) Comparisons over the time span 1900-2100 with this simplified -** solution and the JPL DE405 ephemeris give the following results: -** -** RMS max -** Heliocentric: -** position error 3.7 11.2 km -** velocity error 1.4 5.0 mm/s -** -** Barycentric: -** position error 4.6 13.4 km -** velocity error 1.4 4.9 mm/s -** -** Comparisons with the JPL DE406 ephemeris show that by 1800 and -** 2200 the position errors are approximately double their 1900-2100 -** size. By 1500 and 2500 the deterioration is a factor of 10 and -** by 1000 and 3000 a factor of 60. The velocity accuracy falls off -** at about half that rate. -** -** 5) It is permissible to use the same array for pvh and pvb, which -** will receive the barycentric values. -** -*/ - - - -void iauEqec06(double date1, double date2, double dr, double dd, - double *dl, double *db) -/* -** - - - - - - - - - - -** i a u E q e c 0 6 -** - - - - - - - - - - -** -** Transformation from ICRS equatorial coordinates to ecliptic -** coordinates (mean equinox and ecliptic of date) using IAU 2006 -** precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian date (Note 1) -** dr,dd double ICRS right ascension and declination (radians) -** -** Returned: -** dl,db double ecliptic longitude and latitude (radians) -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) No assumptions are made about whether the coordinates represent -** starlight and embody astrometric effects such as parallax or -** aberration. -** -** 3) The transformation is approximately that from mean J2000.0 right -** ascension and declination to ecliptic longitude and latitude -** (mean equinox and ecliptic of date), with only frame bias (always -** less than 25 mas) to disturb this classical picture. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 -** iauRxp product of r-matrix and p-vector -** iauC2s unit vector to spherical coordinates -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** -*/ - - - -double iauEqeq94(double date1, double date2) -/* -** - - - - - - - - - - -** i a u E q e q 9 4 -** - - - - - - - - - - -** -** Equation of the equinoxes, IAU 1994 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TDB date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** Called: -** iauAnpm normalize angle into range +/- pi -** iauNut80 nutation, IAU 1980 -** iauObl80 mean obliquity, IAU 1980 -** -** References: -** -** IAU Resolution C7, Recommendation 3 (1994). -** -** Capitaine, N. & Gontier, A.-M., 1993, Astron.Astrophys., 275, -** 645-650. -** -*/ - - - -double iauEra00(double dj1, double dj2) -/* -** - - - - - - - - - -** i a u E r a 0 0 -** - - - - - - - - - -** -** Earth rotation angle (IAU 2000 model). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** dj1,dj2 double UT1 as a 2-part Julian Date (see note) -** -** Returned (function value): -** double Earth rotation angle (radians), range 0-2pi -** -** Notes: -** -** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any -** convenient way between the arguments dj1 and dj2. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, -** among others: -** -** dj1 dj2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. The date & time method is -** best matched to the algorithm used: maximum precision is -** delivered when the dj1 argument is for 0hrs UT1 on the day in -** question and the dj2 argument lies in the range 0 to 1, or vice -** versa. -** -** 2) The algorithm is adapted from Expression 22 of Capitaine et al. -** 2000. The time argument has been expressed in days directly, -** and, to retain precision, integer contributions have been -** eliminated. The same formulation is given in IERS Conventions -** (2003), Chap. 5, Eq. 14. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine N., Guinot B. and McCarthy D.D, 2000, Astron. -** Astrophys., 355, 398-405. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauFad03(double t) -/* -** - - - - - - - - - -** i a u F a d 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean elongation of the Moon from the Sun. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double D, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -*/ - - - -double iauFae03(double t) -/* -** - - - - - - - - - -** i a u F a e 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Earth. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Earth, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -*/ - - - -double iauFaf03(double t) -/* -** - - - - - - - - - -** i a u F a f 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of the Moon minus mean longitude of the ascending -** node. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double F, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -*/ - - - -double iauFaju03(double t) -/* -** - - - - - - - - - - -** i a u F a j u 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Jupiter. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Jupiter, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -*/ - - - -double iauFal03(double t) -/* -** - - - - - - - - - -** i a u F a l 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean anomaly of the Moon. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double l, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -*/ - - - -double iauFalp03(double t) -/* -** - - - - - - - - - - -** i a u F a l p 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean anomaly of the Sun. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double l', radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -*/ - - - -double iauFama03(double t) -/* -** - - - - - - - - - - -** i a u F a m a 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Mars. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Mars, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -*/ - - - -double iauFame03(double t) -/* -** - - - - - - - - - - -** i a u F a m e 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Mercury. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Mercury, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -*/ - - - -double iauFane03(double t) -/* -** - - - - - - - - - - -** i a u F a n e 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Neptune. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Neptune, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is adapted from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -*/ - - - -double iauFaom03(double t) -/* -** - - - - - - - - - - -** i a u F a o m 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of the Moon's ascending node. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double Omega, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J., 1994, Astron.Astrophys. 282, 663-683. -** -*/ - - - -double iauFapa03(double t) -/* -** - - - - - - - - - - -** i a u F a p a 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** general accumulated precession in longitude. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double general precession in longitude, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003). It -** is taken from Kinoshita & Souchay (1990) and comes originally -** from Lieske et al. (1977). -** -** References: -** -** Kinoshita, H. and Souchay J. 1990, Celest.Mech. and Dyn.Astron. -** 48, 187 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauFasa03(double t) -/* -** - - - - - - - - - - -** i a u F a s a 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Saturn. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Saturn, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -*/ - - - -double iauFaur03(double t) -/* -** - - - - - - - - - - -** i a u F a u r 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Uranus. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Uranus, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is adapted from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -*/ - - - -double iauFave03(double t) -/* -** - - - - - - - - - - -** i a u F a v e 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Venus. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Venus, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -*/ - - - -void iauFk425(double r1950, double d1950, - double dr1950, double dd1950, - double p1950, double v1950, - double *r2000, double *d2000, - double *dr2000, double *dd2000, - double *p2000, double *v2000) -/* -** - - - - - - - - - -** i a u F k 4 2 5 -** - - - - - - - - - -** -** Convert B1950.0 FK4 star catalog data to J2000.0 FK5. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** This function converts a star's catalog data from the old FK4 -** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system. -** -** Given: (all B1950.0, FK4) -** r1950,d1950 double B1950.0 RA,Dec (rad) -** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) -** p1950 double parallax (arcsec) -** v1950 double radial velocity (km/s, +ve = moving away) -** -** Returned: (all J2000.0, FK5) -** r2000,d2000 double J2000.0 RA,Dec (rad) -** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) -** p2000 double parallax (arcsec) -** v2000 double radial velocity (km/s, +ve = moving away) -** -** Notes: -** -** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, -** and are per year rather than per century. -** -** 2) The conversion is somewhat complicated, for several reasons: -** -** . Change of standard epoch from B1950.0 to J2000.0. -** -** . An intermediate transition date of 1984 January 1.0 TT. -** -** . A change of precession model. -** -** . Change of time unit for proper motion (tropical to Julian). -** -** . FK4 positions include the E-terms of aberration, to simplify -** the hand computation of annual aberration. FK5 positions -** assume a rigorous aberration computation based on the Earth's -** barycentric velocity. -** -** . The E-terms also affect proper motions, and in particular cause -** objects at large distances to exhibit fictitious proper -** motions. -** -** The algorithm is based on Smith et al. (1989) and Yallop et al. -** (1989), which presented a matrix method due to Standish (1982) as -** developed by Aoki et al. (1983), using Kinoshita's development of -** Andoyer's post-Newcomb precession. The numerical constants from -** Seidelmann (1992) are used canonically. -** -** 3) Conversion from B1950.0 FK4 to J2000.0 FK5 only is provided for. -** Conversions for different epochs and equinoxes would require -** additional treatment for precession, proper motion and E-terms. -** -** 4) In the FK4 catalog the proper motions of stars within 10 degrees -** of the poles do not embody differential E-terms effects and -** should, strictly speaking, be handled in a different manner from -** stars outside these regions. However, given the general lack of -** homogeneity of the star data available for routine astrometry, -** the difficulties of handling positions that may have been -** determined from astrometric fields spanning the polar and non- -** polar regions, the likelihood that the differential E-terms -** effect was not taken into account when allowing for proper motion -** in past astrometry, and the undesirability of a discontinuity in -** the algorithm, the decision has been made in this SOFA algorithm -** to include the effects of differential E-terms on the proper -** motions for all stars, whether polar or not. At epoch J2000.0, -** and measuring "on the sky" rather than in terms of RA change, the -** errors resulting from this simplification are less than -** 1 milliarcsecond in position and 1 milliarcsecond per century in -** proper motion. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauPv2s pv-vector to spherical coordinates -** iauPdp scalar product of two p-vectors -** iauPvmpv pv-vector minus pv_vector -** iauPvppv pv-vector plus pv_vector -** iauS2pv spherical coordinates to pv-vector -** iauSxp multiply p-vector by scalar -** -** References: -** -** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 -** FK4-based positions of stars to epoch J2000.0 positions in -** accordance with the new IAU resolutions". Astron.Astrophys. -** 128, 263-267. -** -** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the -** Astronomical Almanac", ISBN 0-935702-68-7. -** -** Smith, C.A. et al., 1989, "The transformation of astrometric -** catalog systems to the equinox J2000.0". Astron.J. 97, 265. -** -** Standish, E.M., 1982, "Conversion of positions and proper motions -** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., -** 115, 1, 20-22. -** -** Yallop, B.D. et al., 1989, "Transformation of mean star places -** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". -** Astron.J. 97, 274. -** -*/ - - - -void iauFk45z(double r1950, double d1950, double bepoch, - double *r2000, double *d2000) -/* -** - - - - - - - - - -** i a u F k 4 5 z -** - - - - - - - - - -** -** Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero -** proper motion in the FK5 system. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** This function converts a star's catalog data from the old FK4 -** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, -** in such a way that the FK5 proper motion is zero. Because such a -** star has, in general, a non-zero proper motion in the FK4 system, -** the function requires the epoch at which the position in the FK4 -** system was determined. -** -** Given: -** r1950,d1950 double B1950.0 FK4 RA,Dec at epoch (rad) -** bepoch double Besselian epoch (e.g. 1979.3) -** -** Returned: -** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) -** -** Notes: -** -** 1) The epoch bepoch is strictly speaking Besselian, but if a -** Julian epoch is supplied the result will be affected only to a -** negligible extent. -** -** 2) The method is from Appendix 2 of Aoki et al. (1983), but using -** the constants of Seidelmann (1992). See the function iauFk425 -** for a general introduction to the FK4 to FK5 conversion. -** -** 3) Conversion from equinox B1950.0 FK4 to equinox J2000.0 FK5 only -** is provided for. Conversions for different starting and/or -** ending epochs would require additional treatment for precession, -** proper motion and E-terms. -** -** 4) In the FK4 catalog the proper motions of stars within 10 degrees -** of the poles do not embody differential E-terms effects and -** should, strictly speaking, be handled in a different manner from -** stars outside these regions. However, given the general lack of -** homogeneity of the star data available for routine astrometry, -** the difficulties of handling positions that may have been -** determined from astrometric fields spanning the polar and non- -** polar regions, the likelihood that the differential E-terms -** effect was not taken into account when allowing for proper motion -** in past astrometry, and the undesirability of a discontinuity in -** the algorithm, the decision has been made in this SOFA algorithm -** to include the effects of differential E-terms on the proper -** motions for all stars, whether polar or not. At epoch J2000.0, -** and measuring "on the sky" rather than in terms of RA change, the -** errors resulting from this simplification are less than -** 1 milliarcsecond in position and 1 milliarcsecond per century in -** proper motion. -** -** References: -** -** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 -** FK4-based positions of stars to epoch J2000.0 positions in -** accordance with the new IAU resolutions". Astron.Astrophys. -** 128, 263-267. -** -** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the -** Astronomical Almanac", ISBN 0-935702-68-7. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauC2s p-vector to spherical -** iauEpb2jd Besselian epoch to Julian date -** iauEpj Julian date to Julian epoch -** iauPdp scalar product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPpsp p-vector plus scaled p-vector -** iauPvu update a pv-vector -** iauS2c spherical to p-vector -** -*/ - - - -void iauFk524(double r2000, double d2000, - double dr2000, double dd2000, - double p2000, double v2000, - double *r1950, double *d1950, - double *dr1950, double *dd1950, - double *p1950, double *v1950) -/* -** - - - - - - - - - -** i a u F k 5 2 4 -** - - - - - - - - - -** -** Convert J2000.0 FK5 star catalog data to B1950.0 FK4. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: (all J2000.0, FK5) -** r2000,d2000 double J2000.0 RA,Dec (rad) -** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) -** p2000 double parallax (arcsec) -** v2000 double radial velocity (km/s, +ve = moving away) -** -** Returned: (all B1950.0, FK4) -** r1950,d1950 double B1950.0 RA,Dec (rad) -** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) -** p1950 double parallax (arcsec) -** v1950 double radial velocity (km/s, +ve = moving away) -** -** Notes: -** -** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, -** and are per year rather than per century. -** -** 2) The conversion is somewhat complicated, for several reasons: -** -** . Change of standard epoch from J2000.0 to B1950.0. -** -** . An intermediate transition date of 1984 January 1.0 TT. -** -** . A change of precession model. -** -** . Change of time unit for proper motion (Julian to tropical). -** -** . FK4 positions include the E-terms of aberration, to simplify -** the hand computation of annual aberration. FK5 positions -** assume a rigorous aberration computation based on the Earth's -** barycentric velocity. -** -** . The E-terms also affect proper motions, and in particular cause -** objects at large distances to exhibit fictitious proper -** motions. -** -** The algorithm is based on Smith et al. (1989) and Yallop et al. -** (1989), which presented a matrix method due to Standish (1982) as -** developed by Aoki et al. (1983), using Kinoshita's development of -** Andoyer's post-Newcomb precession. The numerical constants from -** Seidelmann (1992) are used canonically. -** -** 4) In the FK4 catalog the proper motions of stars within 10 degrees -** of the poles do not embody differential E-terms effects and -** should, strictly speaking, be handled in a different manner from -** stars outside these regions. However, given the general lack of -** homogeneity of the star data available for routine astrometry, -** the difficulties of handling positions that may have been -** determined from astrometric fields spanning the polar and non- -** polar regions, the likelihood that the differential E-terms -** effect was not taken into account when allowing for proper motion -** in past astrometry, and the undesirability of a discontinuity in -** the algorithm, the decision has been made in this SOFA algorithm -** to include the effects of differential E-terms on the proper -** motions for all stars, whether polar or not. At epoch J2000.0, -** and measuring "on the sky" rather than in terms of RA change, the -** errors resulting from this simplification are less than -** 1 milliarcsecond in position and 1 milliarcsecond per century in -** proper motion. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauPdp scalar product of two p-vectors -** iauPm modulus of p-vector -** iauPmp p-vector minus p-vector -** iauPpp p-vector pluus p-vector -** iauPv2s pv-vector to spherical coordinates -** iauS2pv spherical coordinates to pv-vector -** iauSxp multiply p-vector by scalar -** -** References: -** -** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 -** FK4-based positions of stars to epoch J2000.0 positions in -** accordance with the new IAU resolutions". Astron.Astrophys. -** 128, 263-267. -** -** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the -** Astronomical Almanac", ISBN 0-935702-68-7. -** -** Smith, C.A. et al., 1989, "The transformation of astrometric -** catalog systems to the equinox J2000.0". Astron.J. 97, 265. -** -** Standish, E.M., 1982, "Conversion of positions and proper motions -** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., -** 115, 1, 20-22. -** -** Yallop, B.D. et al., 1989, "Transformation of mean star places -** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". -** Astron.J. 97, 274. -** -*/ - - - -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) -/* -** - - - - - - - - - -** i a u F k 5 2 h -** - - - - - - - - - -** -** Transform FK5 (J2000.0) star data into the Hipparcos system. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (all FK5, equinox J2000.0, epoch J2000.0): -** r5 double RA (radians) -** d5 double Dec (radians) -** dr5 double proper motion in RA (dRA/dt, rad/Jyear) -** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) -** px5 double parallax (arcsec) -** rv5 double radial velocity (km/s, positive = receding) -** -** Returned (all Hipparcos, epoch J2000.0): -** rh double RA (radians) -** dh double Dec (radians) -** drh double proper motion in RA (dRA/dt, rad/Jyear) -** ddh double proper motion in Dec (dDec/dt, rad/Jyear) -** pxh double parallax (arcsec) -** rvh double radial velocity (km/s, positive = receding) -** -** Notes: -** -** 1) This function transforms FK5 star positions and proper motions -** into the system of the Hipparcos catalog. -** -** 2) The proper motions in RA are dRA/dt rather than -** cos(Dec)*dRA/dt, and are per year rather than per century. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure -** rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 4) See also iauH2fk5, iauFk5hz, iauHfk5z. -** -** Called: -** iauStarpv star catalog data to space motion pv-vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauRxp product of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauPpp p-vector plus p-vector -** iauPvstar space motion pv-vector to star catalog data -** -** Reference: -** -** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). -** -*/ - - - -void iauFk54z(double r2000, double d2000, double bepoch, - double *r1950, double *d1950, - double *dr1950, double *dd1950) -/* -** - - - - - - - - - -** i a u F k 5 4 z -** - - - - - - - - - -** -** Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero -** proper motion in FK5 and parallax. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) -** bepoch double Besselian epoch (e.g. 1950.0) -** -** Returned: -** r1950,d1950 double B1950.0 FK4 RA,Dec (rad) at epoch BEPOCH -** dr1950,dd1950 double B1950.0 FK4 proper motions (rad/trop.yr) -** -** Notes: -** -** 1) In contrast to the iauFk524 function, here the FK5 proper -** motions, the parallax and the radial velocity are presumed zero. -** -** 2) This function converts a star position from the IAU 1976 FK5 -** (Fricke) system to the former FK4 (Bessel-Newcomb) system, for -** cases such as distant radio sources where it is presumed there is -** zero parallax and no proper motion. Because of the E-terms of -** aberration, such objects have (in general) non-zero proper motion -** in FK4, and the present function returns those fictitious proper -** motions. -** -** 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. -** Conversions involving other equinoxes would require additional -** treatment for precession. -** -** 4) The position returned by this function is in the B1950.0 FK4 -** reference system but at Besselian epoch bepoch. For comparison -** with catalogs the bepoch argument will frequently be 1950.0. (In -** this context the distinction between Besselian and Julian epoch -** is insignificant.) -** -** 5) The RA component of the returned (fictitious) proper motion is -** dRA/dt rather than cos(Dec)*dRA/dt. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauC2s p-vector to spherical -** iauFk524 FK4 to FK5 -** iauS2c spherical to p-vector -** -*/ - - - -void iauFk5hip(double r5h[3][3], double s5h[3]) -/* -** - - - - - - - - - - -** i a u F k 5 h i p -** - - - - - - - - - - -** -** FK5 to Hipparcos rotation and spin. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Returned: -** r5h double[3][3] r-matrix: FK5 rotation wrt Hipparcos (Note 2) -** s5h double[3] r-vector: FK5 spin wrt Hipparcos (Note 3) -** -** Notes: -** -** 1) This function models the FK5 to Hipparcos transformation as a -** pure rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 2) The r-matrix r5h operates in the sense: -** -** P_Hipparcos = r5h x P_FK5 -** -** where P_FK5 is a p-vector in the FK5 frame, and P_Hipparcos is -** the equivalent Hipparcos p-vector. -** -** 3) The r-vector s5h represents the time derivative of the FK5 to -** Hipparcos rotation. The units are radians per year (Julian, -** TDB). -** -** Called: -** iauRv2m r-vector to r-matrix -** -** Reference: -** -** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). -** -*/ - - - -void iauFk5hz(double r5, double d5, double date1, double date2, - double *rh, double *dh) -/* -** - - - - - - - - - -** i a u F k 5 h z -** - - - - - - - - - -** -** Transform an FK5 (J2000.0) star position into the system of the -** Hipparcos catalog, assuming zero Hipparcos proper motion. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** r5 double FK5 RA (radians), equinox J2000.0, at date -** d5 double FK5 Dec (radians), equinox J2000.0, at date -** date1,date2 double TDB date (Notes 1,2) -** -** Returned: -** rh double Hipparcos RA (radians) -** dh double Hipparcos Dec (radians) -** -** Notes: -** -** 1) This function converts a star position from the FK5 system to -** the Hipparcos system, in such a way that the Hipparcos proper -** motion is zero. Because such a star has, in general, a non-zero -** proper motion in the FK5 system, the function requires the date -** at which the position in the FK5 system was determined. -** -** 2) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure -** rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 4) The position returned by this function is in the Hipparcos -** reference system but at date date1+date2. -** -** 5) See also iauFk52h, iauH2fk5, iauHfk5z. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauSxp multiply p-vector by scalar -** iauRv2m r-vector to r-matrix -** iauTrxp product of transpose of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. -** -*/ - - - -void iauFw2m(double gamb, double phib, double psi, double eps, - double r[3][3]) -/* -** - - - - - - - - -** i a u F w 2 m -** - - - - - - - - -** -** Form rotation matrix given the Fukushima-Williams angles. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psi double F-W angle psi (radians) -** eps double F-W angle epsilon (radians) -** -** Returned: -** r double[3][3] rotation matrix -** -** Notes: -** -** 1) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole, -** E = ecliptic pole of date, -** and P = CIP, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma = epE -** phib = phi = pE -** psi = psi = pEP -** eps = epsilon = EP -** -** 2) The matrix representing the combined effects of frame bias, -** precession and nutation is: -** -** NxPxB = R_1(-eps).R_3(-psi).R_1(phib).R_3(gamb) -** -** 3) The present function can construct three different matrices, -** depending on which angles are supplied as the arguments gamb, -** phib, psi and eps: -** -** o To obtain the nutation x precession x frame bias matrix, -** first generate the four precession angles known conventionally -** as gamma_bar, phi_bar, psi_bar and epsilon_A, then generate -** the nutation components Dpsi and Depsilon and add them to -** psi_bar and epsilon_A, and finally call the present function -** using those four angles as arguments. -** -** o To obtain the precession x frame bias matrix, generate the -** four precession angles and call the present function. -** -** o To obtain the frame bias matrix, generate the four precession -** angles for date J2000.0 and call the present function. -** -** The nutation-only and precession-only matrices can if necessary -** be obtained by combining these three appropriately. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRx rotate around X-axis -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -*/ - - - -void iauFw2xy(double gamb, double phib, double psi, double eps, - double *x, double *y) -/* -** - - - - - - - - - -** i a u F w 2 x y -** - - - - - - - - - -** -** CIP X,Y given Fukushima-Williams bias-precession-nutation angles. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psi double F-W angle psi (radians) -** eps double F-W angle epsilon (radians) -** -** Returned: -** x,y double CIP unit vector X,Y -** -** Notes: -** -** 1) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole -** E = ecliptic pole of date, -** and P = CIP, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma = epE -** phib = phi = pE -** psi = psi = pEP -** eps = epsilon = EP -** -** 2) The matrix representing the combined effects of frame bias, -** precession and nutation is: -** -** NxPxB = R_1(-epsA).R_3(-psi).R_1(phib).R_3(gamb) -** -** The returned values x,y are elements [2][0] and [2][1] of the -** matrix. Near J2000.0, they are essentially angles in radians. -** -** Called: -** iauFw2m F-W angles to r-matrix -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -*/ - - - - -void iauG2icrs ( double dl, double db, double *dr, double *dd ) -/* -** - - - - - - - - - - -** i a u G 2 i c r s -** - - - - - - - - - - -** -** Transformation from Galactic coordinates to ICRS. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dl double Galactic longitude (radians) -** db double Galactic latitude (radians) -** -** Returned: -** dr double ICRS right ascension (radians) -** dd double ICRS declination (radians) -** -** Notes: -** -** 1) The IAU 1958 system of Galactic coordinates was defined with -** respect to the now obsolete reference system FK4 B1950.0. When -** interpreting the system in a modern context, several factors have -** to be taken into account: -** -** . The inclusion in FK4 positions of the E-terms of aberration. -** -** . The distortion of the FK4 proper motion system by differential -** Galactic rotation. -** -** . The use of the B1950.0 equinox rather than the now-standard -** J2000.0. -** -** . The frame bias between ICRS and the J2000.0 mean place system. -** -** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation -** matrix that transforms directly between ICRS and Galactic -** coordinates with the above factors taken into account. The -** matrix is derived from three angles, namely the ICRS coordinates -** of the Galactic pole and the longitude of the ascending node of -** the Galactic equator on the ICRS equator. They are given in -** degrees to five decimal places and for canonical purposes are -** regarded as exact. In the Hipparcos Catalogue the matrix -** elements are given to 10 decimal places (about 20 microarcsec). -** In the present SOFA function the matrix elements have been -** recomputed from the canonical three angles and are given to 30 -** decimal places. -** -** 2) The inverse transformation is performed by the function iauIcrs2g. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** iauS2c spherical coordinates to unit vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauC2s p-vector to spherical -** -** Reference: -** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho -** catalogues. Astrometric and photometric star catalogues -** derived from the ESA Hipparcos Space Astrometry Mission. ESA -** Publications Division, Noordwijk, Netherlands. -** -*/ - - - -int iauGc2gd ( int n, double xyz[3], - double *elong, double *phi, double *height ) -/* -** - - - - - - - - - -** i a u G c 2 g d -** - - - - - - - - - -** -** Transform geocentric coordinates to geodetic using the specified -** reference ellipsoid. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical transformation. -** -** Given: -** n int ellipsoid identifier (Note 1) -** xyz double[3] geocentric vector (Note 2) -** -** Returned: -** elong double longitude (radians, east +ve, Note 3) -** phi double latitude (geodetic, radians, Note 3) -** height double height above ellipsoid (geodetic, Notes 2,3) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal identifier (Note 3) -** -2 = internal error (Note 3) -** -** Notes: -** -** 1) The identifier n is a number that specifies the choice of -** reference ellipsoid. The following are supported: -** -** n ellipsoid -** -** 1 WGS84 -** 2 GRS80 -** 3 WGS72 -** -** The n value has no significance outside the SOFA software. For -** convenience, symbols WGS84 etc. are defined in sofam.h. -** -** 2) The geocentric vector (xyz, given) and height (height, returned) -** are in meters. -** -** 3) An error status -1 means that the identifier n is illegal. An -** error status -2 is theoretically impossible. In all error cases, -** all three results are set to -1e9. -** -** 4) The inverse transformation is performed in the function iauGd2gc. -** -** Called: -** iauEform Earth reference ellipsoids -** iauGc2gde geocentric to geodetic transformation, general -** -*/ - - - -int iauGc2gde ( double a, double f, double xyz[3], - double *elong, double *phi, double *height ) -/* -** - - - - - - - - - - -** i a u G c 2 g d e -** - - - - - - - - - - -** -** Transform geocentric coordinates to geodetic for a reference -** ellipsoid of specified form. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** a double equatorial radius (Notes 2,4) -** f double flattening (Note 3) -** xyz double[3] geocentric vector (Note 4) -** -** Returned: -** elong double longitude (radians, east +ve) -** phi double latitude (geodetic, radians) -** height double height above ellipsoid (geodetic, Note 4) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal f -** -2 = illegal a -** -** Notes: -** -** 1) This function is based on the GCONV2H Fortran subroutine by -** Toshio Fukushima (see reference). -** -** 2) The equatorial radius, a, can be in any units, but meters is -** the conventional choice. -** -** 3) The flattening, f, is (for the Earth) a value around 0.00335, -** i.e. around 1/298. -** -** 4) The equatorial radius, a, and the geocentric vector, xyz, -** must be given in the same units, and determine the units of -** the returned height, height. -** -** 5) If an error occurs (status < 0), elong, phi and height are -** unchanged. -** -** 6) The inverse transformation is performed in the function -** iauGd2gce. -** -** 7) The transformation for a standard ellipsoid (such as WGS84) can -** more conveniently be performed by calling iauGc2gd, which uses a -** numerical code to identify the required A and F values. -** -** Reference: -** -** Fukushima, T., "Transformation from Cartesian to geodetic -** coordinates accelerated by Halley's method", J.Geodesy (2006) -** 79: 689-693 -** -*/ - - - -int iauGd2gc ( int n, double elong, double phi, double height, - double xyz[3] ) -/* -** - - - - - - - - - -** i a u G d 2 g c -** - - - - - - - - - -** -** Transform geodetic coordinates to geocentric using the specified -** reference ellipsoid. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical transformation. -** -** Given: -** n int ellipsoid identifier (Note 1) -** elong double longitude (radians, east +ve, Note 3) -** phi double latitude (geodetic, radians, Note 3) -** height double height above ellipsoid (geodetic, Notes 2,3) -** -** Returned: -** xyz double[3] geocentric vector (Note 2) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal identifier (Note 3) -** -2 = illegal case (Note 3) -** -** Notes: -** -** 1) The identifier n is a number that specifies the choice of -** reference ellipsoid. The following are supported: -** -** n ellipsoid -** -** 1 WGS84 -** 2 GRS80 -** 3 WGS72 -** -** The n value has no significance outside the SOFA software. For -** convenience, symbols WGS84 etc. are defined in sofam.h. -** -** 2) The height (height, given) and the geocentric vector (xyz, -** returned) are in meters. -** -** 3) No validation is performed on the arguments elong, phi and -** height. An error status -1 means that the identifier n is -** illegal. An error status -2 protects against cases that would -** lead to arithmetic exceptions. In all error cases, xyz is set -** to zeros. -** -** 4) The inverse transformation is performed in the function iauGc2gd. -** -** Called: -** iauEform Earth reference ellipsoids -** iauGd2gce geodetic to geocentric transformation, general -** iauZp zero p-vector -** -*/ - - - -int iauGd2gce ( double a, double f, double elong, double phi, - double height, double xyz[3] ) -/* -** - - - - - - - - - - -** i a u G d 2 g c e -** - - - - - - - - - - -** -** Transform geodetic coordinates to geocentric for a reference -** ellipsoid of specified form. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** a double equatorial radius (Notes 1,3,4) -** f double flattening (Notes 2,4) -** elong double longitude (radians, east +ve, Note 4) -** phi double latitude (geodetic, radians, Note 4) -** height double height above ellipsoid (geodetic, Notes 3,4) -** -** Returned: -** xyz double[3] geocentric vector (Note 3) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal case (Note 4) -** Notes: -** -** 1) The equatorial radius, a, can be in any units, but meters is -** the conventional choice. -** -** 2) The flattening, f, is (for the Earth) a value around 0.00335, -** i.e. around 1/298. -** -** 3) The equatorial radius, a, and the height, height, must be -** given in the same units, and determine the units of the -** returned geocentric vector, xyz. -** -** 4) No validation is performed on individual arguments. The error -** status -1 protects against (unrealistic) cases that would lead -** to arithmetic exceptions. If an error occurs, xyz is unchanged. -** -** 5) The inverse transformation is performed in the function -** iauGc2gde. -** -** 6) The transformation for a standard ellipsoid (such as WGS84) can -** more conveniently be performed by calling iauGd2gc, which uses a -** numerical code to identify the required a and f values. -** -** References: -** -** Green, R.M., Spherical Astronomy, Cambridge University Press, -** (1985) Section 4.5, p96. -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 4.22, p202. -** -*/ - - - -double iauGmst00(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G m s t 0 0 -** - - - - - - - - - - -** -** Greenwich mean sidereal time (model consistent with IAU 2000 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich mean sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** Part A Part B -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession. If UT1 is used for -** both purposes, errors of order 100 microarcseconds result. -** -** 3) This GMST is compatible with the IAU 2000 resolutions and must be -** used only in conjunction with other IAU 2000 compatible -** components such as precession-nutation and equation of the -** equinoxes. -** -** 4) The result is returned in the range 0 to 2pi. -** -** 5) The algorithm is from Capitaine et al. (2003) and IERS -** Conventions 2003. -** -** Called: -** iauEra00 Earth rotation angle, IAU 2000 -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauGmst06(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G m s t 0 6 -** - - - - - - - - - - -** -** Greenwich mean sidereal time (consistent with IAU 2006 precession). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich mean sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD=2450123.7 could be expressed in -** any of these ways, among others: -** -** Part A Part B -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** rotation angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession. If UT1 is used for -** both purposes, errors of order 100 microarcseconds result. -** -** 3) This GMST is compatible with the IAU 2006 precession and must not -** be used with other precession models. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauEra00 Earth rotation angle, IAU 2000 -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2005, -** Astron.Astrophys. 432, 355 -** -*/ - - - -double iauGmst82(double dj1, double dj2) -/* -** - - - - - - - - - - -** i a u G m s t 8 2 -** - - - - - - - - - - -** -** Universal Time to Greenwich mean sidereal time (IAU 1982 model). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** dj1,dj2 double UT1 Julian Date (see note) -** -** Returned (function value): -** double Greenwich mean sidereal time (radians) -** -** Notes: -** -** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any -** convenient way between the arguments dj1 and dj2. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, -** among others: -** -** dj1 dj2 -** -** 2450123.7 0 (JD method) -** 2451545 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. The date & time method is -** best matched to the algorithm used: maximum accuracy (or, at -** least, minimum noise) is delivered when the dj1 argument is for -** 0hrs UT1 on the day in question and the dj2 argument lies in the -** range 0 to 1, or vice versa. -** -** 2) The algorithm is based on the IAU 1982 expression. This is -** always described as giving the GMST at 0 hours UT1. In fact, it -** gives the difference between the GMST and the UT, the steady -** 4-minutes-per-day drawing-ahead of ST with respect to UT. When -** whole days are ignored, the expression happens to equal the GMST -** at 0 hours UT1 each day. -** -** 3) In this function, the entire UT1 (the sum of the two arguments -** dj1 and dj2) is used directly as the argument for the standard -** formula, the constant term of which is adjusted by 12 hours to -** take account of the noon phasing of Julian Date. The UT1 is then -** added, but omitting whole days to conserve accuracy. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Transactions of the International Astronomical Union, -** XVIII B, 67 (1983). -** -** Aoki et al., Astron.Astrophys., 105, 359-361 (1982). -** -*/ - - - -double iauGst00a(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G s t 0 0 a -** - - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 2000 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession-nutation. If UT1 is -** used for both purposes, errors of order 100 microarcseconds -** result. -** -** 3) This GAST is compatible with the IAU 2000 resolutions and must be -** used only in conjunction with other IAU 2000 compatible -** components such as precession-nutation. -** -** 4) The result is returned in the range 0 to 2pi. -** -** 5) The algorithm is from Capitaine et al. (2003) and IERS -** Conventions 2003. -** -** Called: -** iauGmst00 Greenwich mean sidereal time, IAU 2000 -** iauEe00a equation of the equinoxes, IAU 2000A -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauGst00b(double uta, double utb) -/* -** - - - - - - - - - - -** i a u G s t 0 0 b -** - - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 2000 -** resolutions but using the truncated nutation model IAU 2000B). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 date uta+utb is a Julian Date, apportioned in any -** convenient way between the argument pair. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, -** among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) The result is compatible with the IAU 2000 resolutions, except -** that accuracy has been compromised for the sake of speed and -** convenience in two respects: -** -** . UT is used instead of TDB (or TT) to compute the precession -** component of GMST and the equation of the equinoxes. This -** results in errors of order 0.1 mas at present. -** -** . The IAU 2000B abridged nutation model (McCarthy & Luzum, 2003) -** is used, introducing errors of up to 1 mas. -** -** 3) This GAST is compatible with the IAU 2000 resolutions and must be -** used only in conjunction with other IAU 2000 compatible -** components such as precession-nutation. -** -** 4) The result is returned in the range 0 to 2pi. -** -** 5) The algorithm is from Capitaine et al. (2003) and IERS -** Conventions 2003. -** -** Called: -** iauGmst00 Greenwich mean sidereal time, IAU 2000 -** iauEe00b equation of the equinoxes, IAU 2000B -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Celestial Mechanics & -** Dynamical Astronomy, 85, 37-49 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauGst06(double uta, double utb, double tta, double ttb, - double rnpb[3][3]) -/* -** - - - - - - - - - -** i a u G s t 0 6 -** - - - - - - - - - -** -** Greenwich apparent sidereal time, IAU 2006, given the NPB matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** rnpb double[3][3] nutation x precession x bias matrix -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** rotation angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession-nutation. If UT1 is -** used for both purposes, errors of order 100 microarcseconds -** result. -** -** 3) Although the function uses the IAU 2006 series for s+XY/2, it is -** otherwise independent of the precession-nutation model and can in -** practice be used with any equinox-based NPB matrix. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauAnp normalize angle into range 0 to 2pi -** iauEra00 Earth rotation angle, IAU 2000 -** iauEors equation of the origins, given NPB matrix and s -** -** Reference: -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -double iauGst06a(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G s t 0 6 a -** - - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 2000 and 2006 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** rotation angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession-nutation. If UT1 is -** used for both purposes, errors of order 100 microarcseconds -** result. -** -** 3) This GAST is compatible with the IAU 2000/2006 resolutions and -** must be used only in conjunction with IAU 2006 precession and -** IAU 2000A nutation. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauGst06 Greenwich apparent ST, IAU 2006, given NPB matrix -** -** Reference: -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -double iauGst94(double uta, double utb) -/* -** - - - - - - - - - -** i a u G s t 9 4 -** - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 1982/94 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 date uta+utb is a Julian Date, apportioned in any -** convenient way between the argument pair. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, among -** others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) The result is compatible with the IAU 1982 and 1994 resolutions, -** except that accuracy has been compromised for the sake of -** convenience in that UT is used instead of TDB (or TT) to compute -** the equation of the equinoxes. -** -** 3) This GAST must be used only in conjunction with contemporaneous -** IAU standards such as 1976 precession, 1980 obliquity and 1982 -** nutation. It is not compatible with the IAU 2000 resolutions. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauGmst82 Greenwich mean sidereal time, IAU 1982 -** iauEqeq94 equation of the equinoxes, IAU 1994 -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** IAU Resolution C7, Recommendation 3 (1994) -** -*/ - - - -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) -/* -** - - - - - - - - - -** i a u H 2 f k 5 -** - - - - - - - - - -** -** Transform Hipparcos star data into the FK5 (J2000.0) system. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (all Hipparcos, epoch J2000.0): -** rh double RA (radians) -** dh double Dec (radians) -** drh double proper motion in RA (dRA/dt, rad/Jyear) -** ddh double proper motion in Dec (dDec/dt, rad/Jyear) -** pxh double parallax (arcsec) -** rvh double radial velocity (km/s, positive = receding) -** -** Returned (all FK5, equinox J2000.0, epoch J2000.0): -** r5 double RA (radians) -** d5 double Dec (radians) -** dr5 double proper motion in RA (dRA/dt, rad/Jyear) -** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) -** px5 double parallax (arcsec) -** rv5 double radial velocity (km/s, positive = receding) -** -** Notes: -** -** 1) This function transforms Hipparcos star positions and proper -** motions into FK5 J2000.0. -** -** 2) The proper motions in RA are dRA/dt rather than -** cos(Dec)*dRA/dt, and are per year rather than per century. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure -** rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 4) See also iauFk52h, iauFk5hz, iauHfk5z. -** -** Called: -** iauStarpv star catalog data to space motion pv-vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauRv2m r-vector to r-matrix -** iauRxp product of r-matrix and p-vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPvstar space motion pv-vector to star catalog data -** -** Reference: -** -** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). -** -*/ - - - -void iauHd2ae (double ha, double dec, double phi, - double *az, double *el) -/* -** - - - - - - - - - -** i a u H d 2 a e -** - - - - - - - - - -** -** Equatorial to horizon coordinates: transform hour angle and -** declination to azimuth and altitude. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ha double hour angle (local) -** dec double declination -** phi double site latitude -** -** Returned: -** *az double azimuth -** *el double altitude (informally, elevation) -** -** Notes: -** -** 1) All the arguments are angles in radians. -** -** 2) Azimuth is returned in the range 0-2pi; north is zero, and east -** is +pi/2. Altitude is returned in the range +/- pi/2. -** -** 3) The latitude phi is pi/2 minus the angle between the Earth's -** rotation axis and the adopted zenith. In many applications it -** will be sufficient to use the published geodetic latitude of the -** site. In very precise (sub-arcsecond) applications, phi can be -** corrected for polar motion. -** -** 4) The returned azimuth az is with respect to the rotational north -** pole, as opposed to the ITRS pole, and for sub-arcsecond -** accuracy will need to be adjusted for polar motion if it is to -** be with respect to north on a map of the Earth's surface. -** -** 5) Should the user wish to work with respect to the astronomical -** zenith rather than the geodetic zenith, phi will need to be -** adjusted for deflection of the vertical (often tens of -** arcseconds), and the zero point of the hour angle ha will also -** be affected. -** -** 6) The transformation is the same as Vh = Rz(pi)*Ry(pi/2-phi)*Ve, -** where Vh and Ve are lefthanded unit vectors in the (az,el) and -** (ha,dec) systems respectively and Ry and Rz are rotations about -** first the y-axis and then the z-axis. (n.b. Rz(pi) simply -** reverses the signs of the x and y components.) For efficiency, -** the algorithm is written out rather than calling other utility -** functions. For applications that require even greater -** efficiency, additional savings are possible if constant terms -** such as functions of latitude are computed once and for all. -** -** 7) Again for efficiency, no range checking of arguments is carried -** out. -** -** Last revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double sh, ch, sd, cd, sp, cp, x, y, z, r, a; - - -/* Useful trig functions. */ - sh = sin(ha); - ch = cos(ha); - sd = sin(dec); - cd = cos(dec); - sp = sin(phi); - cp = cos(phi); - -/* Az,Alt unit vector. */ - x = - ch*cd*sp + sd*cp; - y = - sh*cd; - z = ch*cd*cp + sd*sp; - -/* To spherical. */ - r = sqrt(x*x + y*y); - a = (r != 0.0) ? atan2(y,x) : 0.0; - *az = (a < 0.0) ? a+D2PI : a; - *el = atan2(z,r); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} - - - -double iauHd2pa (double ha, double dec, double phi) -/* -** - - - - - - - - - -** i a u H d 2 p a -** - - - - - - - - - -** -** Parallactic angle for a given hour angle and declination. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ha double hour angle -** dec double declination -** phi double site latitude -** -** Returned (function value): -** double parallactic angle -** -** Notes: -** -** 1) All the arguments are angles in radians. -** -** 2) The parallactic angle at a point in the sky is the position -** angle of the vertical, i.e. the angle between the directions to -** the north celestial pole and to the zenith respectively. -** -** 3) The result is returned in the range -pi to +pi. -** -** 4) At the pole itself a zero result is returned. -** -** 5) The latitude phi is pi/2 minus the angle between the Earth's -** rotation axis and the adopted zenith. In many applications it -** will be sufficient to use the published geodetic latitude of the -** site. In very precise (sub-arcsecond) applications, phi can be -** corrected for polar motion. -** -** 6) Should the user wish to work with respect to the astronomical -** zenith rather than the geodetic zenith, phi will need to be -** adjusted for deflection of the vertical (often tens of -** arcseconds), and the zero point of the hour angle ha will also -** be affected. -** -** Reference: -** Smart, W.M., "Spherical Astronomy", Cambridge University Press, -** 6th edition (Green, 1977), p49. -** -** Last revision: 2017 September 12 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double cp, cqsz, sqsz; - - - cp = cos(phi); - sqsz = cp*sin(ha); - cqsz = sin(phi)*cos(dec) - cp*sin(dec)*cos(ha); - return ( ( sqsz != 0.0 || cqsz != 0.0 ) ? atan2(sqsz,cqsz) : 0.0 ); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} - - - -void iauHfk5z(double rh, double dh, double date1, double date2, - double *r5, double *d5, double *dr5, double *dd5) -/* -** - - - - - - - - - -** i a u H f k 5 z -** - - - - - - - - - -** -** Transform a Hipparcos star position into FK5 J2000.0, assuming -** zero Hipparcos proper motion. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rh double Hipparcos RA (radians) -** dh double Hipparcos Dec (radians) -** date1,date2 double TDB date (Note 1) -** -** Returned (all FK5, equinox J2000.0, date date1+date2): -** r5 double RA (radians) -** d5 double Dec (radians) -** dr5 double RA proper motion (rad/year, Note 4) -** dd5 double Dec proper motion (rad/year, Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure rotation -** and spin; zonal errors in the FK5 catalog are not taken into -** account. -** -** 4) It was the intention that Hipparcos should be a close -** approximation to an inertial frame, so that distant objects have -** zero proper motion; such objects have (in general) non-zero -** proper motion in FK5, and this function returns those fictitious -** proper motions. -** -** 5) The position returned by this function is in the FK5 J2000.0 -** reference system but at date date1+date2. -** -** 6) See also iauFk52h, iauH2fk5, iauFk5hz. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauRxp product of r-matrix and p-vector -** iauSxp multiply p-vector by scalar -** iauRxr product of two r-matrices -** iauTrxp product of transpose of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauPv2s pv-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. -** -*/ - - - -void iauIcrs2g ( double dr, double dd, double *dl, double *db ) -/* -** - - - - - - - - - - -** i a u I c r s 2 g -** - - - - - - - - - - -** -** Transformation from ICRS to Galactic coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dr double ICRS right ascension (radians) -** dd double ICRS declination (radians) -** -** Returned: -** dl double Galactic longitude (radians) -** db double Galactic latitude (radians) -** -** Notes: -** -** 1) The IAU 1958 system of Galactic coordinates was defined with -** respect to the now obsolete reference system FK4 B1950.0. When -** interpreting the system in a modern context, several factors have -** to be taken into account: -** -** . The inclusion in FK4 positions of the E-terms of aberration. -** -** . The distortion of the FK4 proper motion system by differential -** Galactic rotation. -** -** . The use of the B1950.0 equinox rather than the now-standard -** J2000.0. -** -** . The frame bias between ICRS and the J2000.0 mean place system. -** -** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation -** matrix that transforms directly between ICRS and Galactic -** coordinates with the above factors taken into account. The -** matrix is derived from three angles, namely the ICRS coordinates -** of the Galactic pole and the longitude of the ascending node of -** the Galactic equator on the ICRS equator. They are given in -** degrees to five decimal places and for canonical purposes are -** regarded as exact. In the Hipparcos Catalogue the matrix -** elements are given to 10 decimal places (about 20 microarcsec). -** In the present SOFA function the matrix elements have been -** recomputed from the canonical three angles and are given to 30 -** decimal places. -** -** 2) The inverse transformation is performed by the function iauG2icrs. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** iauS2c spherical coordinates to unit vector -** iauRxp product of r-matrix and p-vector -** iauC2s p-vector to spherical -** -** Reference: -** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho -** catalogues. Astrometric and photometric star catalogues -** derived from the ESA Hipparcos Space Astrometry Mission. ESA -** Publications Division, Noordwijk, Netherlands. -** -*/ - - - -void iauIr(double r[3][3]) -/* -** - - - - - - -** i a u I r -** - - - - - - -** -** Initialize an r-matrix to the identity matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Returned: -** r double[3][3] r-matrix -** -*/ - - - -int iauJd2cal(double dj1, double dj2, - int *iy, int *im, int *id, double *fd) -/* -** - - - - - - - - - - -** i a u J d 2 c a l -** - - - - - - - - - - -** -** Julian Date to Gregorian year, month, day, and fraction of a day. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dj1,dj2 double Julian Date (Notes 1, 2) -** -** Returned (arguments): -** iy int year -** im int month -** id int day -** fd double fraction of day -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = unacceptable date (Note 1) -** -** Notes: -** -** 1) The earliest valid date is -68569.5 (-4900 March 1). The -** largest value accepted is 1e9. -** -** 2) The Julian Date is apportioned in any convenient way between -** the arguments dj1 and dj2. For example, JD=2450123.7 could -** be expressed in any of these ways, among others: -** -** dj1 dj2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** Separating integer and fraction uses the "compensated summation" -** algorithm of Kahan-Neumaier to preserve as much precision as -** possible irrespective of the jd1+jd2 apportionment. -** -** 3) In early eras the conversion is from the "proleptic Gregorian -** calendar"; no account is taken of the date(s) of adoption of -** the Gregorian calendar, nor is the AD/BC numbering convention -** observed. -** -** References: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 12.92 (p604). -** -** Klein, A., A Generalized Kahan-Babuska-Summation-Algorithm. -** Computing, 76, 279-293 (2006), Section 3. -** -*/ - - - -int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]) -/* -** - - - - - - - - - - -** i a u J d c a l f -** - - - - - - - - - - -** -** Julian Date to Gregorian Calendar, expressed in a form convenient -** for formatting messages: rounded to a specified precision. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ndp int number of decimal places of days in fraction -** dj1,dj2 double dj1+dj2 = Julian Date (Note 1) -** -** Returned: -** iymdf int[4] year, month, day, fraction in Gregorian -** calendar -** -** Returned (function value): -** int status: -** -1 = date out of range -** 0 = OK -** +1 = ndp not 0-9 (interpreted as 0) -** -** Notes: -** -** 1) The Julian Date is apportioned in any convenient way between -** the arguments dj1 and dj2. For example, JD=2450123.7 could -** be expressed in any of these ways, among others: -** -** dj1 dj2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** 2) In early eras the conversion is from the "Proleptic Gregorian -** Calendar"; no account is taken of the date(s) of adoption of -** the Gregorian Calendar, nor is the AD/BC numbering convention -** observed. -** -** 3) See also the function iauJd2cal. -** -** 4) The number of decimal places ndp should be 4 or less if internal -** overflows are to be avoided on platforms which use 16-bit -** integers. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 12.92 (p604). -** -*/ - - - -void iauLd(double bm, double p[3], double q[3], double e[3], - double em, double dlim, double p1[3]) -/* -** - - - - - - -** i a u L d -** - - - - - - -** -** Apply light deflection by a solar-system body, as part of -** transforming coordinate direction into natural direction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** bm double mass of the gravitating body (solar masses) -** p double[3] direction from observer to source (unit vector) -** q double[3] direction from body to source (unit vector) -** e double[3] direction from body to observer (unit vector) -** em double distance from body to observer (au) -** dlim double deflection limiter (Note 4) -** -** Returned: -** p1 double[3] observer to deflected source (unit vector) -** -** Notes: -** -** 1) The algorithm is based on Expr. (70) in Klioner (2003) and -** Expr. (7.63) in the Explanatory Supplement (Urban & Seidelmann -** 2013), with some rearrangement to minimize the effects of machine -** precision. -** -** 2) The mass parameter bm can, as required, be adjusted in order to -** allow for such effects as quadrupole field. -** -** 3) The barycentric position of the deflecting body should ideally -** correspond to the time of closest approach of the light ray to -** the body. -** -** 4) The deflection limiter parameter dlim is phi^2/2, where phi is -** the angular separation (in radians) between source and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. -** -** 5) The returned vector p1 is not normalized, but the consequential -** departure from unit magnitude is always negligible. -** -** 6) The arguments p and p1 can be the same array. -** -** 7) To accumulate total light deflection taking into account the -** contributions from several bodies, call the present function for -** each body in succession, in decreasing order of distance from the -** observer. -** -** 8) For efficiency, validation is omitted. The supplied vectors must -** be of unit magnitude, and the deflection limiter non-zero and -** positive. -** -** References: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013). -** -** Klioner, Sergei A., "A practical relativistic model for micro- -** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). -** -** Called: -** iauPdp scalar product of two p-vectors -** iauPxp vector product of two p-vectors -** -*/ - - - -void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], - double sn[3]) -/*+ -** - - - - - - - -** i a u L d n -** - - - - - - - -** -** For a star, apply light deflection by multiple solar-system bodies, -** as part of transforming coordinate direction into natural direction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** n int number of bodies (note 1) -** b iauLDBODY[n] data for each of the n bodies (Notes 1,2): -** bm double mass of the body (solar masses, Note 3) -** dl double deflection limiter (Note 4) -** pv [2][3] barycentric PV of the body (au, au/day) -** ob double[3] barycentric position of the observer (au) -** sc double[3] observer to star coord direction (unit vector) -** -** Returned: -** sn double[3] observer to deflected star (unit vector) -** -** 1) The array b contains n entries, one for each body to be -** considered. If n = 0, no gravitational light deflection will be -** applied, not even for the Sun. -** -** 2) The array b should include an entry for the Sun as well as for -** any planet or other body to be taken into account. The entries -** should be in the order in which the light passes the body. -** -** 3) In the entry in the b array for body i, the mass parameter -** b[i].bm can, as required, be adjusted in order to allow for such -** effects as quadrupole field. -** -** 4) The deflection limiter parameter b[i].dl is phi^2/2, where phi is -** the angular separation (in radians) between star and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. Example values suitable for a terrestrial -** observer, together with masses, are as follows: -** -** body i b[i].bm b[i].dl -** -** Sun 1.0 6e-6 -** Jupiter 0.00095435 3e-9 -** Saturn 0.00028574 3e-10 -** -** 5) For cases where the starlight passes the body before reaching the -** observer, the body is placed back along its barycentric track by -** the light time from that point to the observer. For cases where -** the body is "behind" the observer no such shift is applied. If -** a different treatment is preferred, the user has the option of -** instead using the iauLd function. Similarly, iauLd can be used -** for cases where the source is nearby, not a star. -** -** 6) The returned vector sn is not normalized, but the consequential -** departure from unit magnitude is always negligible. -** -** 7) The arguments sc and sn can be the same array. -** -** 8) For efficiency, validation is omitted. The supplied masses must -** be greater than zero, the position and velocity vectors must be -** right, and the deflection limiter greater than zero. -** -** Reference: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013), Section 7.2.4. -** -** Called: -** iauCp copy p-vector -** iauPdp scalar product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPpsp p-vector plus scaled p-vector -** iauPn decompose p-vector into modulus and direction -** iauLd light deflection by a solar-system body -** -*/ - - - -void iauLdsun(double p[3], double e[3], double em, double p1[3]) -/* -** - - - - - - - - - -** i a u L d s u n -** - - - - - - - - - -** -** Deflection of starlight by the Sun. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** p double[3] direction from observer to star (unit vector) -** e double[3] direction from Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** -** Returned: -** p1 double[3] observer to deflected star (unit vector) -** -** Notes: -** -** 1) The source is presumed to be sufficiently distant that its -** directions seen from the Sun and the observer are essentially -** the same. -** -** 2) The deflection is restrained when the angle between the star and -** the center of the Sun is less than a threshold value, falling to -** zero deflection for zero separation. The chosen threshold value -** is within the solar limb for all solar-system applications, and -** is about 5 arcminutes for the case of a terrestrial observer. -** -** 3) The arguments p and p1 can be the same array. -** -** Called: -** iauLd light deflection by a solar-system body -** -*/ - - - -void iauLteceq(double epj, double dl, double db, double *dr, double *dd) -/* -** - - - - - - - - - - -** i a u L t e c e q -** - - - - - - - - - - -** -** Transformation from ecliptic coordinates (mean equinox and ecliptic -** of date) to ICRS RA,Dec, using a long-term precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** dl,db double ecliptic longitude and latitude (radians) -** -** Returned: -** dr,dd double ICRS right ascension and declination (radians) -** -** 1) No assumptions are made about whether the coordinates represent -** starlight and embody astrometric effects such as parallax or -** aberration. -** -** 2) The transformation is approximately that from ecliptic longitude -** and latitude (mean equinox and ecliptic of date) to mean J2000.0 -** right ascension and declination, with only frame bias (always -** less than 25 mas) to disturb this classical picture. -** -** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauLtecm J2000.0 to ecliptic rotation matrix, long term -** iauTrxp product of transpose of r-matrix and p-vector -** iauC2s unit vector to spherical coordinates -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauLtecm(double epj, double rm[3][3]) -/* -** - - - - - - - - - -** i a u L t e c m -** - - - - - - - - - -** -** ICRS equatorial to ecliptic rotation matrix, long-term. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** -** Returned: -** rm double[3][3] ICRS to ecliptic rotation matrix -** -** Notes: -** -** 1) The matrix is in the sense -** -** E_ep = rm x P_ICRS, -** -** where P_ICRS is a vector with respect to ICRS right ascension -** and declination axes and E_ep is the same vector with respect to -** the (inertial) ecliptic and equinox of epoch epj. -** -** 2) P_ICRS is a free vector, merely a direction, typically of unit -** magnitude, and not bound to any particular spatial origin, such -** as the Earth, Sun or SSB. No assumptions are made about whether -** it represents starlight and embodies astrometric effects such as -** parallax or aberration. The transformation is approximately that -** between mean J2000.0 right ascension and declination and ecliptic -** longitude and latitude, with only frame bias (always less than -** 25 mas) to disturb this classical picture. -** -** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** Called: -** iauLtpequ equator pole, long term -** iauLtpecl ecliptic pole, long term -** iauPxp vector product -** iauPn normalize vector -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauLteqec(double epj, double dr, double dd, double *dl, double *db) -/* -** - - - - - - - - - - -** i a u L t e q e c -** - - - - - - - - - - -** -** Transformation from ICRS RA,Dec to ecliptic coordinates (mean equinox -** and ecliptic of date), using a long-term precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** dr,dd double ICRS right ascension and declination (radians) -** -** Returned: -** dl,db double ecliptic longitude and latitude (radians) -** -** 1) No assumptions are made about whether the coordinates represent -** starlight and embody astrometric effects such as parallax or -** aberration. -** -** 2) The transformation is approximately that from mean J2000.0 right -** ascension and declination to ecliptic longitude and latitude -** (mean equinox and ecliptic of date), with only frame bias (always -** less than 25 mas) to disturb this classical picture. -** -** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauLtecm J2000.0 to ecliptic rotation matrix, long term -** iauRxp product of r-matrix and p-vector -** iauC2s unit vector to spherical coordinates -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauLtp(double epj, double rp[3][3]) -/* -** - - - - - - - -** i a u L t p -** - - - - - - - -** -** Long-term precession matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** -** Returned: -** rp double[3][3] precession matrix, J2000.0 to date -** -** Notes: -** -** 1) The matrix is in the sense -** -** P_date = rp x P_J2000, -** -** where P_J2000 is a vector with respect to the J2000.0 mean -** equator and equinox and P_date is the same vector with respect to -** the mean equator and equinox of epoch epj. -** -** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** Called: -** iauLtpequ equator pole, long term -** iauLtpecl ecliptic pole, long term -** iauPxp vector product -** iauPn normalize vector -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauLtpb(double epj, double rpb[3][3]) -/* -** - - - - - - - - -** i a u L t p b -** - - - - - - - - -** -** Long-term precession matrix, including ICRS frame bias. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** -** Returned: -** rpb double[3][3] precession+bias matrix, J2000.0 to date -** -** Notes: -** -** 1) The matrix is in the sense -** -** P_date = rpb x P_ICRS, -** -** where P_ICRS is a vector in the Geocentric Celestial Reference -** System, and P_date is the vector with respect to the Celestial -** Intermediate Reference System at that date but with nutation -** neglected. -** -** 2) A first order frame bias formulation is used, of sub- -** microarcsecond accuracy compared with a full 3D rotation. -** -** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauLtpecl(double epj, double vec[3]) -/* -** - - - - - - - - - - -** i a u L t p e c l -** - - - - - - - - - - -** -** Long-term precession of the ecliptic. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** -** Returned: -** vec double[3] ecliptic pole unit vector -** -** Notes: -** -** 1) The returned vector is with respect to the J2000.0 mean equator -** and equinox. -** -** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauLtpequ(double epj, double veq[3]) -/* -** - - - - - - - - - - -** i a u L t p e q u -** - - - - - - - - - - -** -** Long-term precession of the equator. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian epoch (TT) -** -** Returned: -** veq double[3] equator pole unit vector -** -** Notes: -** -** 1) The returned vector is with respect to the J2000.0 mean equator -** and equinox. -** -** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model -** agrees with the IAU 2006 precession at J2000.0 and stays within -** 100 microarcseconds during the 20th and 21st centuries. It is -** accurate to a few arcseconds throughout the historical period, -** worsening to a few tenths of a degree at the end of the -** +/- 200,000 year time span. -** -** References: -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession -** expressions, valid for long time intervals, Astron.Astrophys. 534, -** A22 -** -** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession -** expressions, valid for long time intervals (Corrigendum), -** Astron.Astrophys. 541, C1 -** -*/ - - - -void iauMoon98 ( double date1, double date2, double pv[2][3] ) -/* -** - - - - - - - - - - -** i a u M o o n 9 8 -** - - - - - - - - - - -** -** Approximate geocentric position and velocity of the Moon. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** n.b. Not IAU-endorsed and without canonical status. -** -** Given: -** date1 double TT date part A (Notes 1,4) -** date2 double TT date part B (Notes 1,4) -** -** Returned: -** pv double[2][3] Moon p,v, GCRS (au, au/d, Note 5) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. The limited -** accuracy of the present algorithm is such that any of the methods -** is satisfactory. -** -** 2) This function is a full implementation of the algorithm -** published by Meeus (see reference) except that the light-time -** correction to the Moon's mean longitude has been omitted. -** -** 3) Comparisons with ELP/MPP02 over the interval 1950-2100 gave RMS -** errors of 2.9 arcsec in geocentric direction, 6.1 km in position -** and 36 mm/s in velocity. The worst case errors were 18.3 arcsec -** in geocentric direction, 31.7 km in position and 172 mm/s in -** velocity. -** -** 4) The original algorithm is expressed in terms of "dynamical time", -** which can either be TDB or TT without any significant change in -** accuracy. UT cannot be used without incurring significant errors -** (30 arcsec in the present era) due to the Moon's 0.5 arcsec/sec -** movement. -** -** 5) The result is with respect to the GCRS (the same as J2000.0 mean -** equator and equinox to within 23 mas). -** -** 6) Velocity is obtained by a complete analytical differentiation -** of the Meeus model. -** -** 7) The Meeus algorithm generates position and velocity in mean -** ecliptic coordinates of date, which the present function then -** rotates into GCRS. Because the ecliptic system is precessing, -** there is a coupling between this spin (about 1.4 degrees per -** century) and the Moon position that produces a small velocity -** contribution. In the present function this effect is neglected -** as it corresponds to a maximum difference of less than 3 mm/s and -** increases the RMS error by only 0.4%. -** -** References: -** -** Meeus, J., Astronomical Algorithms, 2nd edition, Willmann-Bell, -** 1998, p337. -** -** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 -** -** Defined in sofam.h: -** DAU astronomical unit (m) -** DJC days per Julian century -** DJ00 reference epoch (J2000.0), Julian Date -** DD2R degrees to radians -** -** Called: -** iauS2pv spherical coordinates to pv-vector -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRx rotate around X-axis -** iauRxpv product of r-matrix and pv-vector -** -*/ - - - -void iauNum00a(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u m 0 0 a -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 2000A model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** 3) A faster, but slightly less accurate, result (about 1 mas) can be -** obtained by using instead the iauNum00b function. -** -** Called: -** iauPn00a bias/precession/nutation, IAU 2000A -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -*/ - - - -void iauNum00b(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u m 0 0 b -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 2000B model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauNum00a function. -** -** Called: -** iauPn00b bias/precession/nutation, IAU 2000B -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -*/ - - - -void iauNum06a(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u m 0 6 a -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 2006/2000A model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** iauNut06a nutation, IAU 2006/2000A -** iauNumat form nutation matrix -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -*/ - - - -void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) -/* -** - - - - - - - - - -** i a u N u m a t -** - - - - - - - - - -** -** Form the matrix of nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epsa double mean obliquity of date (Note 1) -** dpsi,deps double nutation (Note 2) -** -** Returned: -** rmatn double[3][3] nutation matrix (Note 3) -** -** Notes: -** -** -** 1) The supplied mean obliquity epsa, must be consistent with the -** precession-nutation models from which dpsi and deps were obtained. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. -** -** 3) The matrix operates in the sense V(true) = rmatn * V(mean), -** where the p-vector V(true) is with respect to the true -** equatorial triad of date and the p-vector V(mean) is with -** respect to the mean equatorial triad of date. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRz rotate around Z-axis -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -*/ - - - -void iauNut00a(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - - -** i a u N u t 0 0 a -** - - - - - - - - - - -** -** Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation -** with free core nutation omitted). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the equinox and ecliptic of date. The -** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) -** value of 84381.448 arcsec. -** -** Both the luni-solar and planetary nutations are included. The -** latter are due to direct planetary nutations and the -** perturbations of the lunar and terrestrial orbits. -** -** 3) The function computes the MHB2000 nutation series with the -** associated corrections for planetary nutations. It is an -** implementation of the nutation part of the IAU 2000A precession- -** nutation model, formally adopted by the IAU General Assembly in -** 2000, namely MHB2000 (Mathews et al. 2002), but with the free -** core nutation (FCN - see Note 4) omitted. -** -** 4) The full MHB2000 model also contains contributions to the -** nutations in longitude and obliquity due to the free-excitation -** of the free-core-nutation during the period 1979-2000. These FCN -** terms, which are time-dependent and unpredictable, are NOT -** included in the present function and, if required, must be -** independently computed. With the FCN corrections included, the -** present function delivers a pole which is at current epochs -** accurate to a few hundred microarcseconds. The omission of FCN -** introduces further errors of about that size. -** -** 5) The present function provides classical nutation. The MHB2000 -** algorithm, from which it is adapted, deals also with (i) the -** offsets between the GCRS and mean poles and (ii) the adjustments -** in longitude and obliquity due to the changed precession rates. -** These additional functions, namely frame bias and precession -** adjustments, are supported by the SOFA functions iauBi00 and -** iauPr00. -** -** 6) The MHB2000 algorithm also provides "total" nutations, comprising -** the arithmetic sum of the frame bias, precession adjustments, -** luni-solar nutation and planetary nutation. These total -** nutations can be used in combination with an existing IAU 1976 -** precession implementation, such as iauPmat76, to deliver GCRS- -** to-true predictions of sub-mas accuracy at current dates. -** However, there are three shortcomings in the MHB2000 model that -** must be taken into account if more accurate or definitive results -** are required (see Wallace 2002): -** -** (i) The MHB2000 total nutations are simply arithmetic sums, -** yet in reality the various components are successive Euler -** rotations. This slight lack of rigor leads to cross terms -** that exceed 1 mas after a century. The rigorous procedure -** is to form the GCRS-to-true rotation matrix by applying the -** bias, precession and nutation in that order. -** -** (ii) Although the precession adjustments are stated to be with -** respect to Lieske et al. (1977), the MHB2000 model does -** not specify which set of Euler angles are to be used and -** how the adjustments are to be applied. The most literal -** and straightforward procedure is to adopt the 4-rotation -** epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR -** to psi_A and DEPSPR to both omega_A and eps_A. -** -** (iii) The MHB2000 model predates the determination by Chapront -** et al. (2002) of a 14.6 mas displacement between the -** J2000.0 mean equinox and the origin of the ICRS frame. It -** should, however, be noted that neglecting this displacement -** when calculating star coordinates does not lead to a -** 14.6 mas change in right ascension, only a small second- -** order distortion in the pattern of the precession-nutation -** effect. -** -** For these reasons, the SOFA functions do not generate the "total -** nutations" directly, though they can of course easily be -** generated by calling iauBi00, iauPr00 and the present function -** and adding the results. -** -** 7) The MHB2000 model contains 41 instances where the same frequency -** appears multiple times, of which 38 are duplicates and three are -** triplicates. To keep the present code close to the original MHB -** algorithm, this small inefficiency has not been corrected. -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFaf03 mean argument of the latitude of the Moon -** iauFaom03 mean longitude of the Moon's ascending node -** iauFame03 mean longitude of Mercury -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFama03 mean longitude of Mars -** iauFaju03 mean longitude of Jupiter -** iauFasa03 mean longitude of Saturn -** iauFaur03 mean longitude of Uranus -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, -** Astron.Astrophys. 387, 700 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. -** 107, B4. The MHB_2000 code itself was obtained on 9th September -** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002) -** -*/ - - - -void iauNut00b(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - - -** i a u N u t 0 0 b -** - - - - - - - - - - -** -** Nutation, IAU 2000B model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the equinox and ecliptic of date. The -** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) -** value of 84381.448 arcsec. (The errors that result from using -** this function with the IAU 2006 value of 84381.406 arcsec can be -** neglected.) -** -** The nutation model consists only of luni-solar terms, but -** includes also a fixed offset which compensates for certain long- -** period planetary terms (Note 7). -** -** 3) This function is an implementation of the IAU 2000B abridged -** nutation model formally adopted by the IAU General Assembly in -** 2000. The function computes the MHB_2000_SHORT luni-solar -** nutation series (Luzum 2001), but without the associated -** corrections for the precession rate adjustments and the offset -** between the GCRS and J2000.0 mean poles. -** -** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400 -** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only -** 77 terms, plus additional simplifications, yet still delivers -** results of 1 mas accuracy at present epochs. This combination of -** accuracy and size makes the IAU 2000B abridged nutation model -** suitable for most practical applications. -** -** The function delivers a pole accurate to 1 mas from 1900 to 2100 -** (usually better than 1 mas, very occasionally just outside -** 1 mas). The full IAU 2000A model, which is implemented in the -** function iauNut00a (q.v.), delivers considerably greater accuracy -** at current dates; however, to realize this improved accuracy, -** corrections for the essentially unpredictable free-core-nutation -** (FCN) must also be included. -** -** 5) The present function provides classical nutation. The -** MHB_2000_SHORT algorithm, from which it is adapted, deals also -** with (i) the offsets between the GCRS and mean poles and (ii) the -** adjustments in longitude and obliquity due to the changed -** precession rates. These additional functions, namely frame bias -** and precession adjustments, are supported by the SOFA functions -** iauBi00 and iauPr00. -** -** 6) The MHB_2000_SHORT algorithm also provides "total" nutations, -** comprising the arithmetic sum of the frame bias, precession -** adjustments, and nutation (luni-solar + planetary). These total -** nutations can be used in combination with an existing IAU 1976 -** precession implementation, such as iauPmat76, to deliver GCRS- -** to-true predictions of mas accuracy at current epochs. However, -** for symmetry with the iauNut00a function (q.v. for the reasons), -** the SOFA functions do not generate the "total nutations" -** directly. Should they be required, they could of course easily -** be generated by calling iauBi00, iauPr00 and the present function -** and adding the results. -** -** 7) The IAU 2000B model includes "planetary bias" terms that are -** fixed in size but compensate for long-period nutations. The -** amplitudes quoted in McCarthy & Luzum (2003), namely -** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for -** the "total nutations" method described in Note 6. The Luzum -** (2001) values used in this SOFA implementation, namely -0.135 mas -** and +0.388 mas, are optimized for the "rigorous" method, where -** frame bias, precession and nutation are applied separately and in -** that order. During the interval 1995-2050, the SOFA -** implementation delivers a maximum error of 1.001 mas (not -** including FCN). -** -** References: -** -** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions -** for the precession quantities based upon the IAU /1976/ system of -** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977) -** -** Luzum, B., private communication, 2001 (Fortran code -** MHB_2000_SHORT) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. -** 85, 37-49 (2003) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994) -** -*/ - - - -void iauNut06a(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - - -** i a u N u t 0 6 a -** - - - - - - - - - - -** -** IAU 2000A nutation with adjustments to match the IAU 2006 -** precession. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Status: canonical model. -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the mean equinox and ecliptic of date, -** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. -** 2005). -** -** 3) The function first computes the IAU 2000A nutation, then applies -** adjustments for (i) the consequences of the change in obliquity -** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the -** secular variation in the Earth's dynamical form factor J2. -** -** 4) The present function provides classical nutation, complementing -** the IAU 2000 frame bias and IAU 2006 precession. It delivers a -** pole which is at current epochs accurate to a few tens of -** microarcseconds, apart from the free core nutation. -** -** Called: -** iauNut00a nutation, IAU 2000A -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, -** Astron.Astrophys. 387, 700 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. -** 107, B4. The MHB_2000 code itself was obtained on 9th September -** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002) -** -*/ - - - -void iauNut80(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - -** i a u N u t 8 0 -** - - - - - - - - - -** -** Nutation, IAU 1980 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi double nutation in longitude (radians) -** deps double nutation in obliquity (radians) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components are with respect to the ecliptic of -** date. -** -** Called: -** iauAnpm normalize angle into range +/- pi -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222 (p111). -** -*/ - - - -void iauNutm80(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u t m 8 0 -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 1980 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TDB date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), -** where the p-vector V(true) is with respect to the true -** equatorial triad of date and the p-vector V(mean) is with -** respect to the mean equatorial triad of date. -** -** Called: -** iauNut80 nutation, IAU 1980 -** iauObl80 mean obliquity, IAU 1980 -** iauNumat form nutation matrix -** -*/ - - - -double iauObl06(double date1, double date2) -/* -** - - - - - - - - - -** i a u O b l 0 6 -** - - - - - - - - - -** -** Mean obliquity of the ecliptic, IAU 2006 precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double obliquity of the ecliptic (radians, Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result is the angle between the ecliptic and mean equator of -** date date1+date2. -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -*/ - - - -double iauObl80(double date1, double date2) -/* -** - - - - - - - - - -** i a u O b l 8 0 -** - - - - - - - - - -** -** Mean obliquity of the ecliptic, IAU 1980 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double obliquity of the ecliptic (radians, Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result is the angle between the ecliptic and mean equator of -** date date1+date2. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Expression 3.222-1 (p114). -** -*/ - - - -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) -/* -** - - - - - - - - -** i a u P 0 6 e -** - - - - - - - - -** -** Precession angles, IAU 2006, equinox based. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical models. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (see Note 2): -** eps0 double epsilon_0 -** psia double psi_A -** oma double omega_A -** bpa double P_A -** bqa double Q_A -** pia double pi_A -** bpia double Pi_A -** epsa double obliquity epsilon_A -** chia double chi_A -** za double z_A -** zetaa double zeta_A -** thetaa double theta_A -** pa double p_A -** gam double F-W angle gamma_J2000 -** phi double F-W angle phi_J2000 -** psi double F-W angle psi_J2000 -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) This function returns the set of equinox based angles for the -** Capitaine et al. "P03" precession theory, adopted by the IAU in -** 2006. The angles are set out in Table 1 of Hilton et al. (2006): -** -** eps0 epsilon_0 obliquity at J2000.0 -** psia psi_A luni-solar precession -** oma omega_A inclination of equator wrt J2000.0 ecliptic -** bpa P_A ecliptic pole x, J2000.0 ecliptic triad -** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad -** pia pi_A angle between moving and J2000.0 ecliptics -** bpia Pi_A longitude of ascending node of the ecliptic -** epsa epsilon_A obliquity of the ecliptic -** chia chi_A planetary precession -** za z_A equatorial precession: -3rd 323 Euler angle -** zetaa zeta_A equatorial precession: -1st 323 Euler angle -** thetaa theta_A equatorial precession: 2nd 323 Euler angle -** pa p_A general precession (n.b. see below) -** gam gamma_J2000 J2000.0 RA difference of ecliptic poles -** phi phi_J2000 J2000.0 codeclination of ecliptic pole -** psi psi_J2000 longitude difference of equator poles, J2000.0 -** -** The returned values are all radians. -** -** Note that the t^5 coefficient in the series for p_A from -** Capitaine et al. (2003) is incorrectly signed in Hilton et al. -** (2006). -** -** 3) Hilton et al. (2006) Table 1 also contains angles that depend on -** models distinct from the P03 precession theory itself, namely the -** IAU 2000A frame bias and nutation. The quoted polynomials are -** used in other SOFA functions: -** -** . iauXy06 contains the polynomial parts of the X and Y series. -** -** . iauS06 contains the polynomial part of the s+XY/2 series. -** -** . iauPfw06 implements the series for the Fukushima-Williams -** angles that are with respect to the GCRS pole (i.e. the variants -** that include frame bias). -** -** 4) The IAU resolution stipulated that the choice of parameterization -** was left to the user, and so an IAU compliant precession -** implementation can be constructed using various combinations of -** the angles returned by the present function. -** -** 5) The parameterization used by SOFA is the version of the Fukushima- -** Williams angles that refers directly to the GCRS pole. These -** angles may be calculated by calling the function iauPfw06. SOFA -** also supports the direct computation of the CIP GCRS X,Y by -** series, available by calling iauXy06. -** -** 6) The agreement between the different parameterizations is at the -** 1 microarcsecond level in the present era. -** -** 7) When constructing a precession formulation that refers to the GCRS -** pole rather than the dynamical pole, it may (depending on the -** choice of angles) be necessary to introduce the frame bias -** explicitly. -** -** 8) It is permissible to re-use the same variable in the returned -** arguments. The quantities are stored in the stated order. -** -** References: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, -** Astron.Astrophys., 412, 567 -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** -*/ - - - -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 -** -*/ - - - -void iauP2s(double p[3], double *theta, double *phi, double *r) -/* -** - - - - - - - -** i a u P 2 s -** - - - - - - - -** -** P-vector to spherical polar coordinates. -** -** 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: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** -** Notes: -** -** 1) If P is null, zero theta, phi and r are returned. -** -** 2) At either pole, zero theta is returned. -** -** Called: -** iauC2s p-vector to spherical -** iauPm modulus of p-vector -** -*/ - - - -double iauPap(double a[3], double b[3]) -/* -** - - - - - - - -** i a u P a p -** - - - - - - - -** -** Position-angle from two p-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[3] direction of reference point -** b double[3] direction of point whose PA is required -** -** Returned (function value): -** double position angle of b with respect to a (radians) -** -** Notes: -** -** 1) The result is the position angle, in radians, of direction b with -** respect to direction a. It is in the range -pi to +pi. The -** sense is such that if b is a small distance "north" of a the -** position angle is approximately zero, and if b is a small -** distance "east" of a the position angle is approximately +pi/2. -** -** 2) The vectors a and b need not be of unit length. -** -** 3) Zero is returned if the two directions are the same or if either -** vector is null. -** -** 4) If vector a is at a pole, the result is ill-defined. -** -** Called: -** iauPn decompose p-vector into modulus and direction -** iauPm modulus of p-vector -** iauPxp vector product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPdp scalar product of two p-vectors -** -*/ - - - -double iauPas(double al, double ap, double bl, double bp) -/* -** - - - - - - - -** i a u P a s -** - - - - - - - -** -** Position-angle from spherical coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** al double longitude of point A (e.g. RA) in radians -** ap double latitude of point A (e.g. Dec) in radians -** bl double longitude of point B -** bp double latitude of point B -** -** Returned (function value): -** double position angle of B with respect to A -** -** Notes: -** -** 1) The result is the bearing (position angle), in radians, of point -** B with respect to point A. It is in the range -pi to +pi. The -** sense is such that if B is a small distance "east" of point A, -** the bearing is approximately +pi/2. -** -** 2) Zero is returned if the two points are coincident. -** -*/ - - - -void iauPb06(double date1, double date2, - double *bzeta, double *bz, double *btheta) -/* -** - - - - - - - - -** i a u P b 0 6 -** - - - - - - - - -** -** This function forms three Euler angles which implement general -** precession from epoch J2000.0, using the IAU 2006 model. Frame -** bias (the offset between ICRS and mean J2000.0) is included. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** bzeta double 1st rotation: radians cw around z -** bz double 3rd rotation: radians cw around z -** btheta double 2nd rotation: radians ccw around y -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The traditional accumulated precession angles zeta_A, z_A, -** theta_A cannot be obtained in the usual way, namely through -** polynomial expressions, because of the frame bias. The latter -** means that two of the angles undergo rapid changes near this -** date. They are instead the results of decomposing the -** precession-bias matrix obtained by using the Fukushima-Williams -** method, which does not suffer from the problem. The -** decomposition returns values which can be used in the -** conventional formulation and which include frame bias. -** -** 3) The three angles are returned in the conventional order, which -** is not the same as the order of the corresponding Euler -** rotations. The precession-bias matrix is -** R_3(-z) x R_2(+theta) x R_3(-zeta). -** -** 4) Should zeta_A, z_A, theta_A angles be required that do not -** contain frame bias, they are available by calling the SOFA -** function iauP06e. -** -** Called: -** iauPmat06 PB matrix, IAU 2006 -** iauRz rotate around Z-axis -** -*/ - - - -double iauPdp(double a[3], double b[3]) -/* -** - - - - - - - -** i a u P d p -** - - - - - - - -** -** p-vector inner (=scalar=dot) product. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned (function value): -** double a . b -** -*/ - - - -void iauPfw06(double date1, double date2, - double *gamb, double *phib, double *psib, double *epsa) -/* -** - - - - - - - - - -** i a u P f w 0 6 -** - - - - - - - - - -** -** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psib double F-W angle psi_bar (radians) -** epsa double F-W angle epsilon_A (radians) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole, -** E = mean ecliptic pole of date, -** and P = mean pole of date, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma_bar = epE -** phib = phi_bar = pE -** psib = psi_bar = pEP -** epsa = epsilon_A = EP -** -** 3) The matrix representing the combined effects of frame bias and -** precession is: -** -** PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb) -** -** 4) The matrix representing the combined effects of frame bias, -** precession and nutation is simply: -** -** NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb) -** -** where dP and dE are the nutation components with respect to the -** ecliptic of date. -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** -*/ - - - -int iauPlan94(double date1, double date2, int np, double pv[2][3]) -/* -** - - - - - - - - - - -** i a u P l a n 9 4 -** - - - - - - - - - - -** -** Approximate heliocentric position and velocity of a nominated -** planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or -** Neptune (but not the Earth itself). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** n.b. Not IAU-endorsed and without canonical status. -** -** Given: -** date1 double TDB date part A (Note 1) -** date2 double TDB date part B (Note 1) -** np int planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, -** 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) -** -** Returned (argument): -** pv double[2][3] planet p,v (heliocentric, J2000.0, au,au/d) -** -** Returned (function value): -** int status: -1 = illegal NP (outside 1-8) -** 0 = OK -** +1 = warning: year outside 1000-3000 -** +2 = warning: failed to converge -** -** Notes: -** -** 1) The date date1+date2 is in the TDB time scale (in practice TT can -** be used) and is a Julian Date, apportioned in any convenient way -** between the two arguments. For example, JD(TDB)=2450123.7 could -** be expressed in any of these ways, among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. The limited -** accuracy of the present algorithm is such that any of the methods -** is satisfactory. -** -** 2) If an np value outside the range 1-8 is supplied, an error status -** (function value -1) is returned and the pv vector set to zeroes. -** -** 3) For np=3 the result is for the Earth-Moon barycenter (EMB). To -** obtain the heliocentric position and velocity of the Earth, use -** instead the SOFA function iauEpv00. -** -** 4) On successful return, the array pv contains the following: -** -** pv[0][0] x } -** pv[0][1] y } heliocentric position, au -** pv[0][2] z } -** -** pv[1][0] xdot } -** pv[1][1] ydot } heliocentric velocity, au/d -** pv[1][2] zdot } -** -** The reference frame is equatorial and is with respect to the -** mean equator and equinox of epoch J2000.0. -** -** 5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, -** M. Chapront-Touze, G. Francou and J. Laskar (Bureau des -** Longitudes, Paris, France). From comparisons with JPL -** ephemeris DE102, they quote the following maximum errors -** over the interval 1800-2050: -** -** L (arcsec) B (arcsec) R (km) -** -** Mercury 4 1 300 -** Venus 5 1 800 -** EMB 6 1 1000 -** Mars 17 1 7700 -** Jupiter 71 5 76000 -** Saturn 81 13 267000 -** Uranus 86 7 712000 -** Neptune 11 1 253000 -** -** Over the interval 1000-3000, they report that the accuracy is no -** worse than 1.5 times that over 1800-2050. Outside 1000-3000 the -** accuracy declines. -** -** Comparisons of the present function with the JPL DE200 ephemeris -** give the following RMS errors over the interval 1960-2025: -** -** position (km) velocity (m/s) -** -** Mercury 334 0.437 -** Venus 1060 0.855 -** EMB 2010 0.815 -** Mars 7690 1.98 -** Jupiter 71700 7.70 -** Saturn 199000 19.4 -** Uranus 564000 16.4 -** Neptune 158000 14.4 -** -** Comparisons against DE200 over the interval 1800-2100 gave the -** following maximum absolute differences (the results using -** DE406 were essentially the same): -** -** L (arcsec) B (arcsec) R (km) Rdot (m/s) -** -** Mercury 7 1 500 0.7 -** Venus 7 1 1100 0.9 -** EMB 9 1 1300 1.0 -** Mars 26 1 9000 2.5 -** Jupiter 78 6 82000 8.2 -** Saturn 87 14 263000 24.6 -** Uranus 86 7 661000 27.4 -** Neptune 11 2 248000 21.4 -** -** 6) The present SOFA re-implementation of the original Simon et al. -** Fortran code differs from the original in the following respects: -** -** * C instead of Fortran. -** -** * The date is supplied in two parts. -** -** * The result is returned only in equatorial Cartesian form; -** the ecliptic longitude, latitude and radius vector are not -** returned. -** -** * The result is in the J2000.0 equatorial frame, not ecliptic. -** -** * More is done in-line: there are fewer calls to subroutines. -** -** * Different error/warning status values are used. -** -** * A different Kepler's-equation-solver is used (avoiding -** use of double precision complex). -** -** * Polynomials in t are nested to minimize rounding errors. -** -** * Explicit double constants are used to avoid mixed-mode -** expressions. -** -** None of the above changes affects the result significantly. -** -** 7) The returned status indicates the most serious condition -** encountered during execution of the function. Illegal np is -** considered the most serious, overriding failure to converge, -** which in turn takes precedence over the remote date warning. -** -** Called: -** iauAnpm normalize angle into range +/- pi -** -** Reference: Simon, J.L, Bretagnon, P., Chapront, J., -** Chapront-Touze, M., Francou, G., and Laskar, J., -** Astron.Astrophys., 282, 663 (1994). -** -*/ - - - -double iauPm(double p[3]) -/* -** - - - - - - -** i a u P m -** - - - - - - -** -** Modulus of p-vector. -** -** 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 (function value): -** double modulus -** -*/ - - - -void iauPmat00(double date1, double date2, double rbp[3][3]) -/* -** - - - - - - - - - - -** i a u P m a t 0 0 -** - - - - - - - - - - -** -** Precession matrix (including frame bias) from GCRS to a specified -** date, IAU 2000 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbp double[3][3] bias-precession matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where -** the p-vector V(GCRS) is with respect to the Geocentric Celestial -** Reference System (IAU, 2000) and the p-vector V(date) is with -** respect to the mean equatorial triad of the given date. -** -** Called: -** iauBp00 frame bias and precession matrices, IAU 2000 -** -** Reference: -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -*/ - - - -void iauPmat06(double date1, double date2, double rbp[3][3]) -/* -** - - - - - - - - - - -** i a u P m a t 0 6 -** - - - - - - - - - - -** -** Precession matrix (including frame bias) from GCRS to a specified -** date, IAU 2006 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbp double[3][3] bias-precession matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where -** the p-vector V(GCRS) is with respect to the Geocentric Celestial -** Reference System (IAU, 2000) and the p-vector V(date) is with -** respect to the mean equatorial triad of the given date. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -void iauPmat76(double date1, double date2, double rmatp[3][3]) -/* -** - - - - - - - - - - -** i a u P m a t 7 6 -** - - - - - - - - - - -** -** Precession matrix from J2000.0 to a specified date, IAU 1976 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double ending date, TT (Note 1) -** -** Returned: -** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2 -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = RMATP * V(J2000), -** where the p-vector V(J2000) is with respect to the mean -** equatorial triad of epoch J2000.0 and the p-vector V(date) -** is with respect to the mean equatorial triad of the given -** date. -** -** 3) Though the matrix method itself is rigorous, the precession -** angles are expressed through canonical polynomials which are -** valid only for a limited time span. In addition, the IAU 1976 -** precession rate is known to be imperfect. The absolute accuracy -** of the present formulation is better than 0.1 arcsec from -** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, -** and remains below 3 arcsec for the whole of the period -** 500BC to 3000AD. The errors exceed 10 arcsec outside the -** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to -** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD. -** -** Called: -** iauPrec76 accumulated precession angles, IAU 1976 -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauCr copy r-matrix -** -** References: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** equations (6) & (7), p283. -** -** Kaplan,G.H., 1981. USNO circular no. 163, pA2. -** -*/ - - - -void iauPmp(double a[3], double b[3], double amb[3]) -/* -** - - - - - - - -** i a u P m p -** - - - - - - - -** -** P-vector subtraction. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** amb double[3] a - b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -*/ - - - -void iauPmpx(double rc, double dc, double pr, double pd, - double px, double rv, double pmt, double pob[3], - double pco[3]) -/* -** - - - - - - - - -** i a u P m p x -** - - - - - - - - -** -** Proper motion and parallax. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at catalog epoch (radians) -** pr double RA proper motion (radians/year, Note 1) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** pmt double proper motion time interval (SSB, Julian years) -** pob double[3] SSB to observer vector (au) -** -** Returned: -** pco double[3] coordinate direction (BCRS unit vector) -** -** Notes: -** -** 1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 2) The proper motion time interval is for when the starlight -** reaches the solar system barycenter. -** -** 3) To avoid the need for iteration, the Roemer effect (i.e. the -** small annual modulation of the proper motion coming from the -** changing light time) is applied approximately, using the -** direction of the star at the catalog epoch. -** -** References: -** -** 1984 Astronomical Almanac, pp B39-B41. -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013), Section 7.2. -** -** Called: -** iauPdp scalar product of two p-vectors -** iauPn decompose p-vector into modulus and direction -** -*/ - - - -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) -/* -** - - - - - - - - - - -** i a u P m s a f e -** - - - - - - - - - - -** -** Star proper motion: update star catalog data for space motion, with -** special handling to handle the zero parallax case. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ra1 double right ascension (radians), before -** dec1 double declination (radians), before -** pmr1 double RA proper motion (radians/year), before -** pmd1 double Dec proper motion (radians/year), before -** px1 double parallax (arcseconds), before -** rv1 double radial velocity (km/s, +ve = receding), before -** ep1a double "before" epoch, part A (Note 1) -** ep1b double "before" epoch, part B (Note 1) -** ep2a double "after" epoch, part A (Note 1) -** ep2b double "after" epoch, part B (Note 1) -** -** Returned: -** ra2 double right ascension (radians), after -** dec2 double declination (radians), after -** pmr2 double RA proper motion (radians/year), after -** pmd2 double Dec proper motion (radians/year), after -** px2 double parallax (arcseconds), after -** rv2 double radial velocity (km/s, +ve = receding), after -** -** Returned (function value): -** int status: -** -1 = system error (should not occur) -** 0 = no warnings or errors -** 1 = distance overridden (Note 6) -** 2 = excessive velocity (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above warnings -** -** Notes: -** -** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are -** Julian Dates, apportioned in any convenient way between the two -** parts (A and B). For example, JD(TDB)=2450123.7 could be -** expressed in any of these ways, among others: -** -** epNa epNb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. -** -** 2) In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per TDB -** Julian year. -** -** The parallax and radial velocity are in the same frame. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, is -** assumed. -** -** 6) An extremely small (or zero or negative) parallax is overridden -** to ensure that the object is at a finite but very large distance, -** but not so large that the proper motion is equivalent to a large -** but safe speed (about 0.1c using the chosen constant). A warning -** status of 1 is added to the status if this action has been taken. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX in the function iauStarpv), it is arbitrarily set -** to zero. When this action occurs, 2 is added to the status. -** -** 8) The relativistic adjustment carried out in the iauStarpv function -** involves an iterative calculation. If the process fails to -** converge within a set number of iterations, 4 is added to the -** status. -** -** Called: -** iauSeps angle between two points -** iauStarpm update star catalog data for space motion -** -*/ - - - -void iauPn(double p[3], double *r, double u[3]) -/* -** - - - - - - -** i a u P n -** - - - - - - -** -** Convert a p-vector into modulus and unit vector. -** -** 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: -** r double modulus -** u double[3] unit vector -** -** Notes: -** -** 1) If p is null, the result is null. Otherwise the result is a unit -** vector. -** -** 2) It is permissible to re-use the same array for any of the -** arguments. -** -** Called: -** iauPm modulus of p-vector -** iauZp zero p-vector -** iauSxp multiply p-vector by scalar -** -*/ - - - -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]) -/* -** - - - - - - - - -** i a u P n 0 0 -** - - - - - - - - -** -** Precession-nutation, IAU 2000 model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based -** use indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** dpsi,deps double nutation (Note 2) -** -** Returned: -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Note 8) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. For high-accuracy -** applications, free core nutation should be included as well as -** any other relevant corrections to the position of the CIP. -** -** 3) The returned mean obliquity is consistent with the IAU 2000 -** precession-nutation models. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox of -** date to true equator and equinox of date by applying the nutation -** (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the order given. -** -** Called: -** iauPr00 IAU 2000 precession adjustments -** iauObl80 mean obliquity, IAU 1980 -** iauBp00 frame bias and precession matrices, IAU 2000 -** iauCr copy r-matrix -** iauNumat form nutation matrix -** iauRxr product of two r-matrices -** -** Reference: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -*/ - - - -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]) -/* -** - - - - - - - - - -** i a u P n 0 0 a -** - - - - - - - - - -** -** Precession-nutation, IAU 2000A model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based -** use indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation (Note 2) -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components (luni-solar + planetary, IAU 2000A) in -** longitude and obliquity are in radians and with respect to the -** equinox and ecliptic of date. Free core nutation is omitted; -** for the utmost accuracy, use the iauPn00 function, where the -** nutation components are caller-specified. For faster but -** slightly less accurate results, use the iauPn00b function. -** -** 3) The mean obliquity is consistent with the IAU 2000 precession. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox -** of date to true equator and equinox of date by applying the -** nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the IAU 2000A Celestial Intermediate -** Pole are elements (3,1-3) of the GCRS-to-true matrix, -** i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauNut00a nutation, IAU 2000A -** iauPn00 bias/precession/nutation results, IAU 2000 -** -** Reference: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -*/ - - - -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]) -/* -** - - - - - - - - - -** i a u P n 0 0 b -** - - - - - - - - - -** -** Precession-nutation, IAU 2000B model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based -** use indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation (Note 2) -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components (luni-solar + planetary, IAU 2000B) in -** longitude and obliquity are in radians and with respect to the -** equinox and ecliptic of date. For more accurate results, but -** at the cost of increased computation, use the iauPn00a function. -** For the utmost accuracy, use the iauPn00 function, where the -** nutation components are caller-specified. -** -** 3) The mean obliquity is consistent with the IAU 2000 precession. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox -** of date to true equator and equinox of date by applying the -** nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the IAU 2000B Celestial Intermediate -** Pole are elements (3,1-3) of the GCRS-to-true matrix, -** i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauNut00b nutation, IAU 2000B -** iauPn00 bias/precession/nutation results, IAU 2000 -** -** Reference: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003). -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -*/ - - - -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]) -/* -** - - - - - - - - -** i a u P n 0 6 -** - - - - - - - - -** -** Precession-nutation, IAU 2006 model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based use -** indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** dpsi,deps double nutation (Note 2) -** -** Returned: -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. For high-accuracy -** applications, free core nutation should be included as well as -** any other relevant corrections to the position of the CIP. -** -** 3) The returned mean obliquity is consistent with the IAU 2006 -** precession. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox -** of date to true equator and equinox of date by applying the -** nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the Celestial Intermediate Pole are -** elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix -** iauCr copy r-matrix -** iauTr transpose r-matrix -** iauRxr product of two r-matrices -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -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]) -/* -** - - - - - - - - - -** i a u P n 0 6 a -** - - - - - - - - - -** -** Precession-nutation, IAU 2006/2000A models: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based use -** indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation (Note 2) -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components (luni-solar + planetary, IAU 2000A) in -** longitude and obliquity are in radians and with respect to the -** equinox and ecliptic of date. Free core nutation is omitted; -** for the utmost accuracy, use the iauPn06 function, where the -** nutation components are caller-specified. -** -** 3) The mean obliquity is consistent with the IAU 2006 precession. -** -** 4) The matrix rb transforms vectors from GCRS to mean J2000.0 by -** applying frame bias. -** -** 5) The matrix rp transforms vectors from mean J2000.0 to mean of -** date by applying precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean of date by -** applying frame bias then precession. It is the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean of date to true of -** date by applying the nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true of date -** (CIP/equinox). It is the product rn x rbp, applying frame bias, -** precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the IAU 2006/2000A Celestial -** Intermediate Pole are elements (3,1-3) of the GCRS-to-true -** matrix, i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauNut06a nutation, IAU 2006/2000A -** iauPn06 bias/precession/nutation results, IAU 2006 -** -** Reference: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -*/ - - - -void iauPnm00a(double date1, double date2, double rbpn[3][3]) -/* -** - - - - - - - - - - -** i a u P n m 0 0 a -** - - - - - - - - - - -** -** Form the matrix of precession-nutation for a given date (including -** frame bias), equinox based, IAU 2000A model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbpn double[3][3] bias-precession-nutation matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where -** the p-vector V(date) is with respect to the true equatorial triad -** of date date1+date2 and the p-vector V(GCRS) is with respect to -** the Geocentric Celestial Reference System (IAU, 2000). -** -** 3) A faster, but slightly less accurate, result (about 1 mas) can be -** obtained by using instead the iauPnm00b function. -** -** Called: -** iauPn00a bias/precession/nutation, IAU 2000A -** -** Reference: -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -*/ - - - -void iauPnm00b(double date1, double date2, double rbpn[3][3]) -/* -** - - - - - - - - - - -** i a u P n m 0 0 b -** - - - - - - - - - - -** -** Form the matrix of precession-nutation for a given date (including -** frame bias), equinox-based, IAU 2000B model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbpn double[3][3] bias-precession-nutation matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where -** the p-vector V(date) is with respect to the true equatorial triad -** of date date1+date2 and the p-vector V(GCRS) is with respect to -** the Geocentric Celestial Reference System (IAU, 2000). -** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauPnm00a function. -** -** Called: -** iauPn00b bias/precession/nutation, IAU 2000B -** -** Reference: -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -*/ - - - -void iauPnm06a(double date1, double date2, double rbpn[3][3]) -/* -** - - - - - - - - - - -** i a u P n m 0 6 a -** - - - - - - - - - - -** -** Form the matrix of precession-nutation for a given date (including -** frame bias), equinox based, IAU 2006 precession and IAU 2000A -** nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbpn double[3][3] bias-precession-nutation matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where -** the p-vector V(date) is with respect to the true equatorial triad -** of date date1+date2 and the p-vector V(GCRS) is with respect to -** the Geocentric Celestial Reference System (IAU, 2000). -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauNut06a nutation, IAU 2006/2000A -** iauFw2m F-W angles to r-matrix -** -** Reference: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855. -** -*/ - - - -void iauPnm80(double date1, double date2, double rmatpn[3][3]) -/* -** - - - - - - - - - -** i a u P n m 8 0 -** - - - - - - - - - -** -** Form the matrix of precession/nutation for a given date, IAU 1976 -** precession model, IAU 1980 nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatpn double[3][3] combined precession/nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rmatpn * V(J2000), -** where the p-vector V(date) is with respect to the true equatorial -** triad of date date1+date2 and the p-vector V(J2000) is with -** respect to the mean equatorial triad of epoch J2000.0. -** -** Called: -** iauPmat76 precession matrix, IAU 1976 -** iauNutm80 nutation matrix, IAU 1980 -** iauRxr product of two r-matrices -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.3 (p145). -** -*/ - - - -void iauPom00(double xp, double yp, double sp, double rpom[3][3]) -/* -** - - - - - - - - - - -** i a u P o m 0 0 -** - - - - - - - - - - -** -** Form the matrix of polar motion for a given date, IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xp,yp double coordinates of the pole (radians, Note 1) -** sp double the TIO locator s' (radians, Note 2) -** -** Returned: -** rpom double[3][3] polar-motion matrix (Note 3) -** -** Notes: -** -** 1) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 2) The argument sp is the TIO locator s', in radians, which -** positions the Terrestrial Intermediate Origin on the equator. It -** is obtained from polar motion observations by numerical -** integration, and so is in essence unpredictable. However, it is -** dominated by a secular drift of about 47 microarcseconds per -** century, and so can be taken into account by using s' = -47*t, -** where t is centuries since J2000.0. The function iauSp00 -** implements this approximation. -** -** 3) The matrix operates in the sense V(TRS) = rpom * V(CIP), meaning -** that it is the final rotation when computing the pointing -** direction to a celestial source. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauRx rotate around X-axis -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauPpp(double a[3], double b[3], double apb[3]) -/* -** - - - - - - - -** i a u P p p -** - - - - - - - -** -** P-vector addition. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** apb double[3] a + b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -*/ - - - -void iauPpsp(double a[3], double s, double b[3], double apsb[3]) -/* -** - - - - - - - - -** i a u P p s p -** - - - - - - - - -** -** P-vector plus scaled p-vector. -** -** 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[3] first p-vector -** s double scalar (multiplier for b) -** b double[3] second p-vector -** -** Returned: -** apsb double[3] a + s*b -** -** Note: -** It is permissible for any of a, b and apsb to be the same array. -** -** Called: -** iauSxp multiply p-vector by scalar -** iauPpp p-vector plus p-vector -** -*/ - - - -void iauPr00(double date1, double date2, double *dpsipr, double *depspr) -/* -** - - - - - - - - -** i a u P r 0 0 -** - - - - - - - - -** -** Precession-rate part of the IAU 2000 precession-nutation models -** (part of MHB2000). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsipr,depspr double precession corrections (Notes 2,3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The precession adjustments are expressed as "nutation -** components", corrections in longitude and obliquity with respect -** to the J2000.0 equinox and ecliptic. -** -** 3) Although the precession adjustments are stated to be with respect -** to Lieske et al. (1977), the MHB2000 model does not specify which -** set of Euler angles are to be used and how the adjustments are to -** be applied. The most literal and straightforward procedure is to -** adopt the 4-rotation epsilon_0, psi_A, omega_A, xi_A option, and -** to add dpsipr to psi_A and depspr to both omega_A and eps_A. -** -** 4) This is an implementation of one aspect of the IAU 2000A nutation -** model, formally adopted by the IAU General Assembly in 2000, -** namely MHB2000 (Mathews et al. 2002). -** -** References: -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B., "Expressions -** for the precession quantities based upon the IAU (1976) System of -** Astronomical Constants", Astron.Astrophys., 58, 1-16 (1977) -** -** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation -** and precession New nutation series for nonrigid Earth and -** insights into the Earth's interior", J.Geophys.Res., 107, B4, -** 2002. The MHB2000 code itself was obtained on 9th September 2002 -** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002). -** -*/ - - - -void iauPrec76(double date01, double date02, double date11, double date12, - double *zeta, double *z, double *theta) -/* -** - - - - - - - - - - -** i a u P r e c 7 6 -** - - - - - - - - - - -** -** IAU 1976 precession model. -** -** This function forms the three Euler angles which implement general -** precession between two dates, using the IAU 1976 model (as for the -** FK5 catalog). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date01,date02 double TDB starting date (Note 1) -** date11,date12 double TDB ending date (Note 1) -** -** Returned: -** zeta double 1st rotation: radians cw around z -** z double 3rd rotation: radians cw around z -** theta double 2nd rotation: radians ccw around y -** -** Notes: -** -** 1) The dates date01+date02 and date11+date12 are Julian Dates, -** apportioned in any convenient way between the arguments daten1 -** and daten2. For example, JD(TDB)=2450123.7 could be expressed in -** any of these ways, among others: -** -** daten1 daten2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** The two dates may be expressed using different methods, but at -** the risk of losing some resolution. -** -** 2) The accumulated precession angles zeta, z, theta are expressed -** through canonical polynomials which are valid only for a limited -** time span. In addition, the IAU 1976 precession rate is known to -** be imperfect. The absolute accuracy of the present formulation -** is better than 0.1 arcsec from 1960AD to 2040AD, better than -** 1 arcsec from 1640AD to 2360AD, and remains below 3 arcsec for -** the whole of the period 500BC to 3000AD. The errors exceed -** 10 arcsec outside the range 1200BC to 3900AD, exceed 100 arcsec -** outside 4200BC to 5600AD and exceed 1000 arcsec outside 6800BC to -** 8200AD. -** -** 3) The three angles are returned in the conventional order, which -** is not the same as the order of the corresponding Euler -** rotations. The precession matrix is -** R_3(-z) x R_2(+theta) x R_3(-zeta). -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282, equations -** (6) & (7), p283. -** -*/ - - - -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 -** -*/ - - - -void iauPv2s(double pv[2][3], - double *theta, double *phi, double *r, - double *td, double *pd, double *rd) -/* -** - - - - - - - - -** i a u P v 2 s -** - - - - - - - - -** -** Convert position/velocity from Cartesian to spherical coordinates. -** -** 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: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** td double rate of change of theta -** pd double rate of change of phi -** rd double rate of change of r -** -** Notes: -** -** 1) If the position part of pv is null, theta, phi, td and pd -** are indeterminate. This is handled by extrapolating the -** position through unit time by using the velocity part of -** pv. This moves the origin without changing the direction -** of the velocity component. If the position and velocity -** components of pv are both null, zeroes are returned for all -** six results. -** -** 2) If the position is a pole, theta, td and pd are indeterminate. -** In such cases zeroes are returned for all three. -** -*/ - - - -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 -** -*/ - - - -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 -** -*/ - - - -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 -** -*/ - - - -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 -** -*/ - - - -int iauPvstar(double pv[2][3], double *ra, double *dec, - double *pmr, double *pmd, double *px, double *rv) -/* -** - - - - - - - - - - -** i a u P v s t a r -** - - - - - - - - - - -** -** Convert star position+velocity vector to catalog coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (Note 1): -** pv double[2][3] pv-vector (au, au/day) -** -** Returned (Note 2): -** ra double right ascension (radians) -** dec double declination (radians) -** pmr double RA proper motion (radians/year) -** pmd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, positive = receding) -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = superluminal speed (Note 5) -** -2 = null position vector -** -** Notes: -** -** 1) The specified pv-vector is the coordinate direction (and its rate -** of change) for the date at which the light leaving the star -** reached the solar-system barycenter. -** -** 2) The star data returned by this function are "observables" for an -** imaginary observer at the solar-system barycenter. Proper motion -** and radial velocity are, strictly, in terms of barycentric -** coordinate time, TCB. For most practical applications, it is -** permissible to neglect the distinction between TCB and ordinary -** "proper" time on Earth (TT/TAI). The result will, as a rule, be -** limited by the intrinsic accuracy of the proper-motion and -** radial-velocity data; moreover, the supplied pv-vector is likely -** to be merely an intermediate result (for example generated by the -** function iauStarpv), so that a change of time unit will cancel -** out overall. -** -** In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** Summarizing, the specified pv-vector is for most stars almost -** identical to the result of applying the standard geometrical -** "space motion" transformation to the catalog data. The -** differences, which are the subject of the Stumpff paper cited -** below, are: -** -** (i) In stars with significant radial velocity and proper motion, -** the constantly changing light-time distorts the apparent proper -** motion. Note that this is a classical, not a relativistic, -** effect. -** -** (ii) The transformation complies with special relativity. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds; the radial velocity is in km/s, but -** the pv-vector result is in au and au/day. -** -** 4) The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per Julian -** year. The RA proper motion is in terms of coordinate angle, not -** true angle, and will thus be numerically larger at high -** declinations. -** -** 5) Straight-line motion at constant speed in the inertial frame is -** assumed. If the speed is greater than or equal to the speed of -** light, the function aborts with an error status. -** -** 6) The inverse transformation is performed by the function iauStarpv. -** -** Called: -** iauPn decompose p-vector into modulus and direction -** iauPdp scalar product of two p-vectors -** iauSxp multiply p-vector by scalar -** iauPmp p-vector minus p-vector -** iauPm modulus of p-vector -** iauPpp p-vector plus p-vector -** iauPv2s pv-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. -** -*/ - - - -void iauPvtob(double elong, double phi, double hm, - double xp, double yp, double sp, double theta, - double pv[2][3]) -/* -** - - - - - - - - - -** i a u P v t o b -** - - - - - - - - - -** -** Position and velocity of a terrestrial observing station. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** elong double longitude (radians, east +ve, Note 1) -** phi double latitude (geodetic, radians, Note 1) -** hm double height above ref. ellipsoid (geodetic, m) -** xp,yp double coordinates of the pole (radians, Note 2) -** sp double the TIO locator s' (radians, Note 2) -** theta double Earth rotation angle (radians, Note 3) -** -** Returned: -** pv double[2][3] position/velocity vector (m, m/s, CIRS) -** -** Notes: -** -** 1) The terrestrial coordinates are with respect to the WGS84 -** reference ellipsoid. -** -** 2) xp and yp are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions), measured along the -** meridians 0 and 90 deg west respectively. sp is the TIO locator -** s', in radians, which positions the Terrestrial Intermediate -** Origin on the equator. For many applications, xp, yp and -** (especially) sp can be set to zero. -** -** 3) If theta is Greenwich apparent sidereal time instead of Earth -** rotation angle, the result is with respect to the true equator -** and equinox of date, i.e. with the x-axis at the equinox rather -** than the celestial intermediate origin. -** -** 4) The velocity units are meters per UT1 second, not per SI second. -** This is unlikely to have any practical consequences in the modern -** era. -** -** 5) No validation is performed on the arguments. Error cases that -** could lead to arithmetic exceptions are trapped by the iauGd2gc -** function, and the result set to zeros. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013), Section 7.4.3.3. -** -** Called: -** iauGd2gc geodetic to geocentric transformation -** iauPom00 polar motion matrix -** iauTrxp product of transpose of r-matrix and p-vector -** -*/ - - - -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 -** -*/ - - - -void iauPvup(double dt, double pv[2][3], double p[3]) -/* -** - - - - - - - - -** i a u P v u p -** - - - - - - - - -** -** Update a pv-vector, discarding the velocity component. -** -** 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: -** p double[3] p-vector -** -** 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. -** -*/ - - - -void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]) -/* -** - - - - - - - - - -** i a u P v x p v -** - - - - - - - - - -** -** Outer (=vector=cross) 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: -** axb double[2][3] a x b -** -** Notes: -** -** 1) If the position and velocity components of the two pv-vectors are -** ( ap, av ) and ( bp, bv ), the result, a x b, is the pair of -** vectors ( ap x bp, ap x bv + av x bp ). The two vectors are the -** cross-product of the two p-vectors and its derivative. -** -** 2) It is permissible to re-use the same array for any of the -** arguments. -** -** Called: -** iauCpv copy pv-vector -** iauPxp vector product of two p-vectors -** iauPpp p-vector plus p-vector -** -*/ - - - -void iauPxp(double a[3], double b[3], double axb[3]) -/* -** - - - - - - - -** i a u P x p -** - - - - - - - -** -** p-vector outer (=vector=cross) product. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** axb double[3] a x b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -*/ - - - -void iauRefco(double phpa, double tc, double rh, double wl, - double *refa, double *refb) -/* -** - - - - - - - - - -** i a u R e f c o -** - - - - - - - - - -** -** Determine the constants A and B in the atmospheric refraction model -** dZ = A tan Z + B tan^3 Z. -** -** Z is the "observed" zenith distance (i.e. affected by refraction) -** and dZ is what to add to Z to give the "topocentric" (i.e. in vacuo) -** zenith distance. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** phpa double pressure at the observer (hPa = millibar) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers) -** -** Returned: -** refa double* tan Z coefficient (radians) -** refb double* tan^3 Z coefficient (radians) -** -** Notes: -** -** 1) The model balances speed and accuracy to give good results in -** applications where performance at low altitudes is not paramount. -** Performance is maintained across a range of conditions, and -** applies to both optical/IR and radio. -** -** 2) The model omits the effects of (i) height above sea level (apart -** from the reduced pressure itself), (ii) latitude (i.e. the -** flattening of the Earth), (iii) variations in tropospheric lapse -** rate and (iv) dispersive effects in the radio. -** -** The model was tested using the following range of conditions: -** -** lapse rates 0.0055, 0.0065, 0.0075 deg/meter -** latitudes 0, 25, 50, 75 degrees -** heights 0, 2500, 5000 meters ASL -** pressures mean for height -10% to +5% in steps of 5% -** temperatures -10 deg to +20 deg with respect to 280 deg at SL -** relative humidity 0, 0.5, 1 -** wavelengths 0.4, 0.6, ... 2 micron, + radio -** zenith distances 15, 45, 75 degrees -** -** The accuracy with respect to raytracing through a model -** atmosphere was as follows: -** -** worst RMS -** -** optical/IR 62 mas 8 mas -** radio 319 mas 49 mas -** -** For this particular set of conditions: -** -** lapse rate 0.0065 K/meter -** latitude 50 degrees -** sea level -** pressure 1005 mb -** temperature 280.15 K -** humidity 80% -** wavelength 5740 Angstroms -** -** the results were as follows: -** -** ZD raytrace iauRefco Saastamoinen -** -** 10 10.27 10.27 10.27 -** 20 21.19 21.20 21.19 -** 30 33.61 33.61 33.60 -** 40 48.82 48.83 48.81 -** 45 58.16 58.18 58.16 -** 50 69.28 69.30 69.27 -** 55 82.97 82.99 82.95 -** 60 100.51 100.54 100.50 -** 65 124.23 124.26 124.20 -** 70 158.63 158.68 158.61 -** 72 177.32 177.37 177.31 -** 74 200.35 200.38 200.32 -** 76 229.45 229.43 229.42 -** 78 267.44 267.29 267.41 -** 80 319.13 318.55 319.10 -** -** deg arcsec arcsec arcsec -** -** The values for Saastamoinen's formula (which includes terms -** up to tan^5) are taken from Hohenkerk and Sinclair (1985). -** -** 3) A wl value in the range 0-100 selects the optical/IR case and is -** wavelength in micrometers. Any value outside this range selects -** the radio case. -** -** 4) Outlandish input parameters are silently limited to -** mathematically safe values. Zero pressure is permissible, and -** causes zeroes to be returned. -** -** 5) The algorithm draws on several sources, as follows: -** -** a) The formula for the saturation vapour pressure of water as -** a function of temperature and temperature is taken from -** Equations (A4.5-A4.7) of Gill (1982). -** -** b) The formula for the water vapour pressure, given the -** saturation pressure and the relative humidity, is from -** Crane (1976), Equation (2.5.5). -** -** c) The refractivity of air is a function of temperature, -** total pressure, water-vapour pressure and, in the case -** of optical/IR, wavelength. The formulae for the two cases are -** developed from Hohenkerk & Sinclair (1985) and Rueger (2002). -** The IAG (1999) optical refractivity for dry air is used. -** -** d) The formula for beta, the ratio of the scale height of the -** atmosphere to the geocentric distance of the observer, is -** an adaption of Equation (9) from Stone (1996). The -** adaptations, arrived at empirically, consist of (i) a small -** adjustment to the coefficient and (ii) a humidity term for the -** radio case only. -** -** e) The formulae for the refraction constants as a function of -** n-1 and beta are from Green (1987), Equation (4.31). -** -** References: -** -** Crane, R.K., Meeks, M.L. (ed), "Refraction Effects in the Neutral -** Atmosphere", Methods of Experimental Physics: Astrophysics 12B, -** Academic Press, 1976. -** -** Gill, Adrian E., "Atmosphere-Ocean Dynamics", Academic Press, -** 1982. -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987. -** -** Hohenkerk, C.Y., & Sinclair, A.T., NAO Technical Note No. 63, -** 1985. -** -** IAG Resolutions adopted at the XXIIth General Assembly in -** Birmingham, 1999, Resolution 3. -** -** Rueger, J.M., "Refractive Index Formulae for Electronic Distance -** Measurement with Radio and Millimetre Waves", in Unisurv Report -** S-68, School of Surveying and Spatial Information Systems, -** University of New South Wales, Sydney, Australia, 2002. -** -** Stone, Ronald C., P.A.S.P. 108, 1051-1058, 1996. -** -*/ - - - -void iauRm2v(double r[3][3], double w[3]) -/* -** - - - - - - - - -** i a u R m 2 v -** - - - - - - - - -** -** Express an r-matrix as an r-vector. -** -** 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] rotation matrix -** -** Returned: -** w double[3] rotation vector (Note 1) -** -** Notes: -** -** 1) A rotation matrix describes a rotation through some angle about -** some arbitrary axis called the Euler axis. The "rotation vector" -** returned by this function has the same direction as the Euler axis, -** and its magnitude is the angle in radians. (The magnitude and -** direction can be separated by means of the function iauPn.) -** -** 2) If r is null, so is the result. If r is not a rotation matrix -** the result is undefined; r must be proper (i.e. have a positive -** determinant) and real orthogonal (inverse = transpose). -** -** 3) The reference frame rotates clockwise as seen looking along -** the rotation vector from the origin. -** -*/ - - - -void iauRv2m(double w[3], double r[3][3]) -/* -** - - - - - - - - -** i a u R v 2 m -** - - - - - - - - -** -** Form the r-matrix corresponding to a given r-vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** w double[3] rotation vector (Note 1) -** -** Returned: -** r double[3][3] rotation matrix -** -** Notes: -** -** 1) A rotation matrix describes a rotation through some angle about -** some arbitrary axis called the Euler axis. The "rotation vector" -** supplied to This function has the same direction as the Euler -** axis, and its magnitude is the angle in radians. -** -** 2) If w is null, the identity matrix is returned. -** -** 3) The reference frame rotates clockwise as seen looking along the -** rotation vector from the origin. -** -*/ - - - -void iauRx(double phi, double r[3][3]) -/* -** - - - - - - -** i a u R x -** - - - - - - -** -** Rotate an r-matrix about the x-axis. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** phi double angle (radians) -** -** Given and returned: -** r double[3][3] r-matrix, rotated -** -** Notes: -** -** 1) Calling this function with positive phi incorporates in the -** supplied r-matrix r an additional rotation, about the x-axis, -** anticlockwise as seen looking towards the origin from positive x. -** -** 2) The additional rotation can be represented by this matrix: -** -** ( 1 0 0 ) -** ( ) -** ( 0 + cos(phi) + sin(phi) ) -** ( ) -** ( 0 - sin(phi) + cos(phi) ) -** -*/ - - - -void iauRxp(double r[3][3], double p[3], double rp[3]) -/* -** - - - - - - - -** i a u R x p -** - - - - - - - -** -** Multiply a p-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 -** p double[3] p-vector -** -** Returned: -** rp double[3] r * p -** -** Note: -** It is permissible for p and rp to be the same array. -** -** Called: -** iauCp copy p-vector -** -*/ - - - -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 -** -** Notes: -** -** 1) The algorithm is for the simple case where the r-matrix r is not -** a function of time. The case where r is a function of time leads -** to an additional velocity component equal to the product of the -** derivative of r and the position vector. -** -** 2) It is permissible for pv and rpv to be the same array. -** -** Called: -** iauRxp product of r-matrix and p-vector -** -*/ - - - -void iauRxr(double a[3][3], double b[3][3], double atb[3][3]) -/* -** - - - - - - - -** i a u R x r -** - - - - - - - -** -** Multiply two r-matrices. -** -** 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[3][3] first r-matrix -** b double[3][3] second r-matrix -** -** Returned: -** atb double[3][3] a * b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -** Called: -** iauCr copy r-matrix -** -*/ - - - -void iauRy(double theta, double r[3][3]) -/* -** - - - - - - -** i a u R y -** - - - - - - -** -** Rotate an r-matrix about the y-axis. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double angle (radians) -** -** Given and returned: -** r double[3][3] r-matrix, rotated -** -** Notes: -** -** 1) Calling this function with positive theta incorporates in the -** supplied r-matrix r an additional rotation, about the y-axis, -** anticlockwise as seen looking towards the origin from positive y. -** -** 2) The additional rotation can be represented by this matrix: -** -** ( + cos(theta) 0 - sin(theta) ) -** ( ) -** ( 0 1 0 ) -** ( ) -** ( + sin(theta) 0 + cos(theta) ) -** -*/ - - - -void iauRz(double psi, double r[3][3]) -/* -** - - - - - - -** i a u R z -** - - - - - - -** -** Rotate an r-matrix about the z-axis. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** psi double angle (radians) -** -** Given and returned: -** r double[3][3] r-matrix, rotated -** -** Notes: -** -** 1) Calling this function with positive psi incorporates in the -** supplied r-matrix r an additional rotation, about the z-axis, -** anticlockwise as seen looking towards the origin from positive z. -** -** 2) The additional rotation can be represented by this matrix: -** -** ( + cos(psi) + sin(psi) 0 ) -** ( ) -** ( - sin(psi) + cos(psi) 0 ) -** ( ) -** ( 0 0 1 ) -** -*/ - - - -double iauS00(double date1, double date2, double x, double y) -/* -** - - - - - - - -** i a u S 0 0 -** - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, given the CIP's X,Y -** coordinates. Compatible with IAU 2000A precession-nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** x,y double CIP coordinates (Note 3) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems: the two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The quantity s remains below 0.1 arcsecond -** throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. This -** function requires X,Y to be supplied by the caller, who is -** responsible for providing values that are consistent with the -** supplied date. -** -** 4) The model is consistent with the IAU 2000A precession-nutation. -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauS00a(double date1, double date2) -/* -** - - - - - - - - -** i a u S 0 0 a -** - - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, using the IAU 2000A -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems. The two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The CIO locator s remains a small fraction of -** 1 arcsecond throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. The present -** function uses the full IAU 2000A nutation model when predicting -** the CIP position. Faster results, with no significant loss of -** accuracy, can be obtained via the function iauS00b, which uses -** instead the IAU 2000B truncated model. -** -** Called: -** iauPnm00a classical NPB matrix, IAU 2000A -** iauBnp2xy extract CIP X,Y from the BPN matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauS00b(double date1, double date2) -/* -** - - - - - - - - -** i a u S 0 0 b -** - - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, using the IAU 2000B -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems. The two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The CIO locator s remains a small fraction of -** 1 arcsecond throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. The present -** function uses the IAU 2000B truncated nutation model when -** predicting the CIP position. The function iauS00a uses instead -** the full IAU 2000A model, but with no significant increase in -** accuracy and at some cost in speed. -** -** Called: -** iauPnm00b classical NPB matrix, IAU 2000B -** iauBnp2xy extract CIP X,Y from the BPN matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -double iauS06(double date1, double date2, double x, double y) -/* -** - - - - - - - -** i a u S 0 6 -** - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, given the CIP's X,Y -** coordinates. Compatible with IAU 2006/2000A precession-nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** x,y double CIP coordinates (Note 3) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems: the two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The quantity s remains below 0.1 arcsecond -** throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. This -** function requires X,Y to be supplied by the caller, who is -** responsible for providing values that are consistent with the -** supplied date. -** -** 4) The model is consistent with the "P03" precession (Capitaine et -** al. 2003), adopted by IAU 2006 Resolution 1, 2006, and the -** IAU 2000A nutation (with P03 adjustments). -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, Astron. -** Astrophys. 432, 355 -** -** McCarthy, D.D., Petit, G. (eds.) 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -*/ - - - -double iauS06a(double date1, double date2) -/* -** - - - - - - - - -** i a u S 0 6 a -** - - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, using the IAU 2006 -** precession and IAU 2000A nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems. The two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The CIO locator s remains a small fraction of -** 1 arcsecond throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series is -** more compact than a direct series for s would be. The present -** function uses the full IAU 2000A nutation model when predicting -** the CIP position. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -void iauS2c(double theta, double phi, double c[3]) -/* -** - - - - - - - -** i a u S 2 c -** - - - - - - - -** -** Convert spherical coordinates to Cartesian. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** -** Returned: -** c double[3] direction cosines -** -*/ - - - -void iauS2p(double theta, double phi, double r, double p[3]) -/* -** - - - - - - - -** i a u S 2 p -** - - - - - - - -** -** Convert spherical polar coordinates to p-vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** -** Returned: -** p double[3] Cartesian coordinates -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauSxp multiply p-vector by scalar -** -*/ - - - -void iauS2pv(double theta, double phi, double r, - double td, double pd, double rd, - double pv[2][3]) -/* -** - - - - - - - - -** i a u S 2 p v -** - - - - - - - - -** -** Convert position/velocity from spherical to Cartesian coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** td double rate of change of theta -** pd double rate of change of phi -** rd double rate of change of r -** -** Returned: -** pv double[2][3] pv-vector -** -*/ - - - -void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]) -/* -** - - - - - - - - - -** i a u S 2 x p v -** - - - - - - - - - -** -** Multiply a pv-vector by two scalars. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** s1 double scalar to multiply position component by -** s2 double scalar to multiply velocity component by -** pv double[2][3] pv-vector -** -** Returned: -** spv double[2][3] pv-vector: p scaled by s1, v scaled by s2 -** -** Note: -** It is permissible for pv and spv to be the same array. -** -** Called: -** iauSxp multiply p-vector by scalar -** -*/ - - - -double iauSepp(double a[3], double b[3]) -/* -** - - - - - - - - -** i a u S e p p -** - - - - - - - - -** -** Angular separation between two p-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[3] first p-vector (not necessarily unit length) -** b double[3] second p-vector (not necessarily unit length) -** -** Returned (function value): -** double angular separation (radians, always positive) -** -** Notes: -** -** 1) If either vector is null, a zero result is returned. -** -** 2) The angular separation is most simply formulated in terms of -** scalar product. However, this gives poor accuracy for angles -** near zero and pi. The present algorithm uses both cross product -** and dot product, to deliver full accuracy whatever the size of -** the angle. -** -** Called: -** iauPxp vector product of two p-vectors -** iauPm modulus of p-vector -** iauPdp scalar product of two p-vectors -** -*/ - - - -double iauSeps(double al, double ap, double bl, double bp) -/* -** - - - - - - - - -** i a u S e p s -** - - - - - - - - -** -** Angular separation between two sets of spherical coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** al double first longitude (radians) -** ap double first latitude (radians) -** bl double second longitude (radians) -** bp double second latitude (radians) -** -** Returned (function value): -** double angular separation (radians) -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauSepp angular separation between two p-vectors -** -*/ - - - -double iauSp00(double date1, double date2) -/* -** - - - - - - - - -** i a u S p 0 0 -** - - - - - - - - -** -** The TIO locator s', positioning the Terrestrial Intermediate Origin -** on the equator of the Celestial Intermediate Pole. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the TIO locator s' in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The TIO locator s' is obtained from polar motion observations by -** numerical integration, and so is in essence unpredictable. -** However, it is dominated by a secular drift of about -** 47 microarcseconds per century, which is the approximation -** evaluated by the present function. -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -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) -/* -** - - - - - - - - - - -** i a u S t a r p m -** - - - - - - - - - - -** -** Star proper motion: update star catalog data for space motion. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ra1 double right ascension (radians), before -** dec1 double declination (radians), before -** pmr1 double RA proper motion (radians/year), before -** pmd1 double Dec proper motion (radians/year), before -** px1 double parallax (arcseconds), before -** rv1 double radial velocity (km/s, +ve = receding), before -** ep1a double "before" epoch, part A (Note 1) -** ep1b double "before" epoch, part B (Note 1) -** ep2a double "after" epoch, part A (Note 1) -** ep2b double "after" epoch, part B (Note 1) -** -** Returned: -** ra2 double right ascension (radians), after -** dec2 double declination (radians), after -** pmr2 double RA proper motion (radians/year), after -** pmd2 double Dec proper motion (radians/year), after -** px2 double parallax (arcseconds), after -** rv2 double radial velocity (km/s, +ve = receding), after -** -** Returned (function value): -** int status: -** -1 = system error (should not occur) -** 0 = no warnings or errors -** 1 = distance overridden (Note 6) -** 2 = excessive velocity (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above warnings -** -** Notes: -** -** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are -** Julian Dates, apportioned in any convenient way between the two -** parts (A and B). For example, JD(TDB)=2450123.7 could be -** expressed in any of these ways, among others: -** -** epNa epNb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. -** -** 2) In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per TDB -** Julian year. -** -** The parallax and radial velocity are in the same frame. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, -** is assumed. -** -** 6) An extremely small (or zero or negative) parallax is interpreted -** to mean that the object is on the "celestial sphere", the radius -** of which is an arbitrary (large) value (see the iauStarpv -** function for the value used). When the distance is overridden in -** this way, the status, initially zero, has 1 added to it. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX in the function iauStarpv), it is arbitrarily set -** to zero. When this action occurs, 2 is added to the status. -** -** 8) The relativistic adjustment carried out in the iauStarpv function -** involves an iterative calculation. If the process fails to -** converge within a set number of iterations, 4 is added to the -** status. -** -** Called: -** iauStarpv star catalog data to space motion pv-vector -** iauPvu update a pv-vector -** iauPdp scalar product of two p-vectors -** iauPvstar space motion pv-vector to star catalog data -** -*/ - - - -int iauStarpv(double ra, double dec, - double pmr, double pmd, double px, double rv, - double pv[2][3]) -/* -** - - - - - - - - - - -** i a u S t a r p v -** - - - - - - - - - - -** -** Convert star catalog coordinates to position+velocity vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (Note 1): -** ra double right ascension (radians) -** dec double declination (radians) -** pmr double RA proper motion (radians/year) -** pmd double Dec proper motion (radians/year) -** px double parallax (arcseconds) -** rv double radial velocity (km/s, positive = receding) -** -** Returned (Note 2): -** pv double[2][3] pv-vector (au, au/day) -** -** Returned (function value): -** int status: -** 0 = no warnings -** 1 = distance overridden (Note 6) -** 2 = excessive speed (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above -** -** Notes: -** -** 1) The star data accepted by this function are "observables" for an -** imaginary observer at the solar-system barycenter. Proper motion -** and radial velocity are, strictly, in terms of barycentric -** coordinate time, TCB. For most practical applications, it is -** permissible to neglect the distinction between TCB and ordinary -** "proper" time on Earth (TT/TAI). The result will, as a rule, be -** limited by the intrinsic accuracy of the proper-motion and -** radial-velocity data; moreover, the pv-vector is likely to be -** merely an intermediate result, so that a change of time unit -** would cancel out overall. -** -** In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** 2) The resulting position and velocity pv-vector is with respect to -** the same frame and, like the catalog coordinates, is freed from -** the effects of secular aberration. Should the "coordinate -** direction", where the object was located at the catalog epoch, be -** required, it may be obtained by calculating the magnitude of the -** position vector pv[0][0-2] dividing by the speed of light in -** au/day to give the light-time, and then multiplying the space -** velocity pv[1][0-2] by this light-time and adding the result to -** pv[0][0-2]. -** -** Summarizing, the pv-vector returned is for most stars almost -** identical to the result of applying the standard geometrical -** "space motion" transformation. The differences, which are the -** subject of the Stumpff paper referenced below, are: -** -** (i) In stars with significant radial velocity and proper motion, -** the constantly changing light-time distorts the apparent proper -** motion. Note that this is a classical, not a relativistic, -** effect. -** -** (ii) The transformation complies with special relativity. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds; the radial velocity is in km/s, but -** the pv-vector result is in au and au/day. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, -** is assumed. -** -** 6) An extremely small (or zero or negative) parallax is interpreted -** to mean that the object is on the "celestial sphere", the radius -** of which is an arbitrary (large) value (see the constant PXMIN). -** When the distance is overridden in this way, the status, -** initially zero, has 1 added to it. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX), it is arbitrarily set to zero. When this action -** occurs, 2 is added to the status. -** -** 8) The relativistic adjustment involves an iterative calculation. -** If the process fails to converge within a set number (IMAX) of -** iterations, 4 is added to the status. -** -** 9) The inverse transformation is performed by the function -** iauPvstar. -** -** Called: -** iauS2pv spherical coordinates to pv-vector -** iauPm modulus of p-vector -** iauZp zero p-vector -** iauPn decompose p-vector into modulus and direction -** iauPdp scalar product of two p-vectors -** iauSxp multiply p-vector by scalar -** iauPmp p-vector minus p-vector -** iauPpp p-vector plus p-vector -** -** Reference: -** -** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. -** -*/ - - - -void iauSxp(double s, double p[3], double sp[3]) -/* -** - - - - - - - -** i a u S x p -** - - - - - - - -** -** Multiply a p-vector by a scalar. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** s double scalar -** p double[3] p-vector -** -** Returned: -** sp double[3] s * p -** -** Note: -** It is permissible for p and sp to be the same array. -** -*/ - - - -void iauSxpv(double s, double pv[2][3], double spv[2][3]) -/* -** - - - - - - - - -** i a u S x p v -** - - - - - - - - -** -** Multiply a pv-vector by a scalar. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** s double scalar -** pv double[2][3] pv-vector -** -** Returned: -** spv double[2][3] s * pv -** -** Note: -** It is permissible for pv and spv to be the same array. -** -** Called: -** iauS2xpv multiply pv-vector by two scalars -** -*/ - - - -int iauTaitt(double tai1, double tai2, double *tt1, double *tt2) -/* -** - - - - - - - - - -** i a u T a i t t -** - - - - - - - - - -** -** Time scale transformation: International Atomic Time, TAI, to -** Terrestrial Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tai1,tai2 double TAI as a 2-part Julian Date -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tai1+tai2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tai1 is the Julian -** Day Number and tai2 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauTaiut1(double tai1, double tai2, double dta, - double *ut11, double *ut12) -/* -** - - - - - - - - - - -** i a u T a i u t 1 -** - - - - - - - - - - -** -** Time scale transformation: International Atomic Time, TAI, to -** Universal Time, UT1. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tai1,tai2 double TAI as a 2-part Julian Date -** dta double UT1-TAI in seconds -** -** Returned: -** ut11,ut12 double UT1 as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tai1+tai2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tai1 is the Julian -** Day Number and tai2 is the fraction of a day. The returned -** UT11,UT12 follow suit. -** -** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is -** available from IERS tabulations. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2) -/* -** - - - - - - - - - - -** i a u T a i u t c -** - - - - - - - - - - -** -** Time scale transformation: International Atomic Time, TAI, to -** Coordinated Universal Time, UTC. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tai1,tai2 double TAI as a 2-part Julian Date (Note 1) -** -** Returned: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3) -** -** Returned (function value): -** int status: +1 = dubious year (Note 4) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) tai1+tai2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tai1 is the Julian -** Day Number and tai2 is the fraction of a day. The returned utc1 -** and utc2 form an analogous pair, except that a special convention -** is used, to deal with the problem of leap seconds - see the next -** note. -** -** 2) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the JD day represents UTC days whether the -** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era -** there were smaller jumps (in either direction) each time the -** linear UTC(TAI) expression was changed, and these "mini-leaps" -** are also included in the SOFA convention. -** -** 3) The function iauD2dtf can be used to transform the UTC quasi-JD -** into calendar date and clock time, including UTC leap second -** handling. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** Called: -** iauUtctai UTC to TAI -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) -/* -** - - - - - - - - - - -** i a u T c b t d b -** - - - - - - - - - - -** -** Time scale transformation: Barycentric Coordinate Time, TCB, to -** Barycentric Dynamical Time, TDB. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tcb1,tcb2 double TCB as a 2-part Julian Date -** -** Returned: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tcb1+tcb2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tcb1 is the Julian -** Day Number and tcb2 is the fraction of a day. The returned -** tdb1,tdb2 follow suit. -** -** 2) The 2006 IAU General Assembly introduced a conventional linear -** transformation between TDB and TCB. This transformation -** compensates for the drift between TCB and terrestrial time TT, -** and keeps TDB approximately centered on TT. Because the -** relationship between TT and TCB depends on the adopted solar -** system ephemeris, the degree of alignment between TDB and TT over -** long intervals will vary according to which ephemeris is used. -** Former definitions of TDB attempted to avoid this problem by -** stipulating that TDB and TT should differ only by periodic -** effects. This is a good description of the nature of the -** relationship but eluded precise mathematical formulation. The -** conventional linear relationship adopted in 2006 sidestepped -** these difficulties whilst delivering a TDB that in practice was -** consistent with values before that date. -** -** 3) TDB is essentially the same as Teph, the time argument for the -** JPL solar system ephemerides. -** -** Reference: -** -** IAU 2006 Resolution B3 -** -*/ - - - -int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2) -/* -** - - - - - - - - - -** i a u T c g t t -** - - - - - - - - - -** -** Time scale transformation: Geocentric Coordinate Time, TCG, to -** Terrestrial Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tcg1,tcg2 double TCG as a 2-part Julian Date -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tcg1+tcg2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tcg1 is the Julian -** Day Number and tcg22 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2000 Resolution B1.9 -** -*/ - - - -int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) -/* -** - - - - - - - - - - -** i a u T d b t c b -** - - - - - - - - - - -** -** Time scale transformation: Barycentric Dynamical Time, TDB, to -** Barycentric Coordinate Time, TCB. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** -** Returned: -** tcb1,tcb2 double TCB as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tdb1 is the Julian -** Day Number and tdb2 is the fraction of a day. The returned -** tcb1,tcb2 follow suit. -** -** 2) The 2006 IAU General Assembly introduced a conventional linear -** transformation between TDB and TCB. This transformation -** compensates for the drift between TCB and terrestrial time TT, -** and keeps TDB approximately centered on TT. Because the -** relationship between TT and TCB depends on the adopted solar -** system ephemeris, the degree of alignment between TDB and TT over -** long intervals will vary according to which ephemeris is used. -** Former definitions of TDB attempted to avoid this problem by -** stipulating that TDB and TT should differ only by periodic -** effects. This is a good description of the nature of the -** relationship but eluded precise mathematical formulation. The -** conventional linear relationship adopted in 2006 sidestepped -** these difficulties whilst delivering a TDB that in practice was -** consistent with values before that date. -** -** 3) TDB is essentially the same as Teph, the time argument for the -** JPL solar system ephemerides. -** -** Reference: -** -** IAU 2006 Resolution B3 -** -*/ - - - -int iauTdbtt(double tdb1, double tdb2, double dtr, - double *tt1, double *tt2 ) -/* -** - - - - - - - - - -** i a u T d b t t -** - - - - - - - - - -** -** Time scale transformation: Barycentric Dynamical Time, TDB, to -** Terrestrial Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** dtr double TDB-TT in seconds -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tdb1 is the Julian -** Day Number and tdb2 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** 2) The argument dtr represents the quasi-periodic component of the -** GR transformation between TT and TCB. It is dependent upon the -** adopted solar-system ephemeris, and can be obtained by numerical -** integration, by interrogating a precomputed time ephemeris or by -** evaluating a model such as that implemented in the SOFA function -** iauDtdb. The quantity is dominated by an annual term of 1.7 ms -** amplitude. -** -** 3) TDB is essentially the same as Teph, the time argument for the -** JPL solar system ephemerides. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2006 Resolution 3 -** -*/ - - - -int iauTf2a(char s, int ihour, int imin, double sec, double *rad) -/* -** - - - - - - - - -** i a u T f 2 a -** - - - - - - - - -** -** Convert hours, minutes, seconds to radians. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** s char sign: '-' = negative, otherwise positive -** ihour int hours -** imin int minutes -** sec double seconds -** -** Returned: -** rad double angle in radians -** -** Returned (function value): -** int status: 0 = OK -** 1 = ihour outside range 0-23 -** 2 = imin outside range 0-59 -** 3 = sec outside range 0-59.999... -** -** Notes: -** -** 1) The result is computed even if any of the range checks fail. -** -** 2) Negative ihour, imin and/or sec produce a warning status, but -** the absolute value is used in the conversion. -** -** 3) If there are multiple errors, the status value reflects only the -** first, the smallest taking precedence. -** -*/ - - - -int iauTf2d(char s, int ihour, int imin, double sec, double *days) -/* -** - - - - - - - - -** i a u T f 2 d -** - - - - - - - - -** -** Convert hours, minutes, seconds to days. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** s char sign: '-' = negative, otherwise positive -** ihour int hours -** imin int minutes -** sec double seconds -** -** Returned: -** days double interval in days -** -** Returned (function value): -** int status: 0 = OK -** 1 = ihour outside range 0-23 -** 2 = imin outside range 0-59 -** 3 = sec outside range 0-59.999... -** -** Notes: -** -** 1) The result is computed even if any of the range checks fail. -** -** 2) Negative ihour, imin and/or sec produce a warning status, but -** the absolute value is used in the conversion. -** -** 3) If there are multiple errors, the status value reflects only the -** first, the smallest taking precedence. -** -*/ - - - -int iauTpors(double xi, double eta, double a, double b, - double *a01, double *b01, double *a02, double *b02) -/* -** - - - - - - - - - -** i a u T p o r s -** - - - - - - - - - -** -** In the tangent plane projection, given the rectangular coordinates -** of a star and its spherical coordinates, determine the spherical -** coordinates of the tangent point. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** a,b double star's spherical coordinates (Note 3) -** -** Returned: -** *a01,*b01 double tangent point's spherical coordinates, Soln. 1 -** *a02,*b02 double tangent point's spherical coordinates, Soln. 2 -** -** Returned (function value): -** int number of solutions: -** 0 = no solutions returned (Note 5) -** 1 = only the first solution is useful (Note 6) -** 2 = both solutions are useful (Note 6) -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the spherical coordinates are observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the spherical coordinates are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) All angular arguments are in radians. -** -** 4) The angles a01 and a02 are returned in the range 0-2pi. The -** angles b01 and b02 are returned in the range +/-pi, but in the -** usual, non-pole-crossing, case, the range is +/-pi/2. -** -** 5) Cases where there is no solution can arise only near the poles. -** For example, it is clearly impossible for a star at the pole -** itself to have a non-zero xi value, and hence it is meaningless -** to ask where the tangent point would have to be to bring about -** this combination of xi and dec. -** -** 6) Also near the poles, cases can arise where there are two useful -** solutions. The return value indicates whether the second of the -** two solutions returned is useful; 1 indicates only one useful -** solution, the usual case. -** -** 7) The basis of the algorithm is to solve the spherical triangle PSC, -** where P is the north celestial pole, S is the star and C is the -** tangent point. The spherical coordinates of the tangent point are -** [a0,b0]; writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), side c -** is then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be -** found) is (pi/2-b0). Angle C is given by sin(C) = xi/rho and -** cos(C) = eta/rho. Angle P (to be found) is the longitude -** difference between star and tangent point (a-a0). -** -** 8) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** iauTpsts iauTpstv star -** > iauTpors < iauTporv origin -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -*/ - - - -int iauTporv(double xi, double eta, double v[3], - double v01[3], double v02[3]) -/* -** - - - - - - - - - -** i a u T p o r v -** - - - - - - - - - -** -** In the tangent plane projection, given the rectangular coordinates -** of a star and its direction cosines, determine the direction -** cosines of the tangent point. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** v double[3] star's direction cosines (Note 3) -** -** Returned: -** v01 double[3] tangent point's direction cosines, Solution 1 -** v02 double[3] tangent point's direction cosines, Solution 2 -** -** Returned (function value): -** int number of solutions: -** 0 = no solutions returned (Note 4) -** 1 = only the first solution is useful (Note 5) -** 2 = both solutions are useful (Note 5) -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the direction cosines represent observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the direction cosines are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) The vector v must be of unit length or the result will be wrong. -** -** 4) Cases where there is no solution can arise only near the poles. -** For example, it is clearly impossible for a star at the pole -** itself to have a non-zero xi value, and hence it is meaningless -** to ask where the tangent point would have to be. -** -** 5) Also near the poles, cases can arise where there are two useful -** solutions. The return value indicates whether the second of the -** two solutions returned is useful; 1 indicates only one useful -** solution, the usual case. -** -** 6) The basis of the algorithm is to solve the spherical triangle -** PSC, where P is the north celestial pole, S is the star and C is -** the tangent point. Calling the celestial spherical coordinates -** of the star and tangent point (a,b) and (a0,b0) respectively, and -** writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), and -** transforming the vector v into (a,b) in the normal way, side c is -** then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be -** found) is (pi/2-b0), while angle C is given by sin(C) = xi/rho -** and cos(C) = eta/rho; angle P (to be found) is (a-a0). After -** solving the spherical triangle, the result (a0,b0) can be -** expressed in vector form as v0. -** -** 7) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** iauTpsts iauTpstv star -** iauTpors > iauTporv < origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -*/ - - - -void iauTpsts(double xi, double eta, double a0, double b0, - double *a, double *b) -/* -** - - - - - - - - - -** i a u T p s t s -** - - - - - - - - - -** -** In the tangent plane projection, given the star's rectangular -** coordinates and the spherical coordinates of the tangent point, -** solve for the spherical coordinates of the star. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** a0,b0 double tangent point's spherical coordinates -** -** Returned: -** *a,*b double star's spherical coordinates -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the spherical coordinates are observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the spherical coordinates are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) All angular arguments are in radians. -** -** 4) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** > iauTpsts < iauTpstv star -** iauTpors iauTporv origin -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -*/ - - - -void iauTpstv(double xi, double eta, double v0[3], double v[3]) -/* -** - - - - - - - - - -** i a u T p s t v -** - - - - - - - - - -** -** In the tangent plane projection, given the star's rectangular -** coordinates and the direction cosines of the tangent point, solve -** for the direction cosines of the star. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** v0 double[3] tangent point's direction cosines -** -** Returned: -** v double[3] star's direction cosines -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the direction cosines represent observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the direction cosines are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) The method used is to complete the star vector in the (xi,eta) -** based triad and normalize it, then rotate the triad to put the -** tangent point at the pole with the x-axis aligned to zero -** longitude. Writing (a0,b0) for the celestial spherical -** coordinates of the tangent point, the sequence of rotations is -** (b-pi/2) around the x-axis followed by (-a-pi/2) around the -** z-axis. -** -** 4) If vector v0 is not of unit length, the returned vector v will -** be wrong. -** -** 5) If vector v0 points at a pole, the returned vector v will be -** based on the arbitrary assumption that the longitude coordinate -** of the tangent point is zero. -** -** 6) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** iauTpsts > iauTpstv < star -** iauTpors iauTporv origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -*/ - - - -int iauTpxes(double a, double b, double a0, double b0, - double *xi, double *eta) -/* -** - - - - - - - - - -** i a u T p x e s -** - - - - - - - - - -** -** In the tangent plane projection, given celestial spherical -** coordinates for a star and the tangent point, solve for the star's -** rectangular coordinates in the tangent plane. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** a,b double star's spherical coordinates -** a0,b0 double tangent point's spherical coordinates -** -** Returned: -** *xi,*eta double rectangular coordinates of star image (Note 2) -** -** Returned (function value): -** int status: 0 = OK -** 1 = star too far from axis -** 2 = antistar on tangent plane -** 3 = antistar too far from axis -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the spherical coordinates are observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". For right-handed spherical coordinates, -** (xi,eta) are also right-handed. The units of (xi,eta) are, -** effectively, radians at the tangent point. -** -** 3) All angular arguments are in radians. -** -** 4) This function is a member of the following set: -** -** spherical vector solve for -** -** > iauTpxes < iauTpxev xi,eta -** iauTpsts iauTpstv star -** iauTpors iauTporv origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -*/ - - - -int iauTpxev(double v[3], double v0[3], double *xi, double *eta) -/* -** - - - - - - - - - -** i a u T p x e v -** - - - - - - - - - -** -** In the tangent plane projection, given celestial direction cosines -** for a star and the tangent point, solve for the star's rectangular -** coordinates in the tangent plane. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** v double[3] direction cosines of star (Note 4) -** v0 double[3] direction cosines of tangent point (Note 4) -** -** Returned: -** *xi,*eta double tangent plane coordinates of star -** -** Returned (function value): -** int status: 0 = OK -** 1 = star too far from axis -** 2 = antistar on tangent plane -** 3 = antistar too far from axis -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the direction cosines represent observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the direction cosines are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) The method used is to extend the star vector to the tangent -** plane and then rotate the triad so that (x,y) becomes (xi,eta). -** Writing (a,b) for the celestial spherical coordinates of the -** star, the sequence of rotations is (a+pi/2) around the z-axis -** followed by (pi/2-b) around the x-axis. -** -** 4) If vector v0 is not of unit length, or if vector v is of zero -** length, the results will be wrong. -** -** 5) If v0 points at a pole, the returned (xi,eta) will be based on -** the arbitrary assumption that the longitude coordinate of the -** tangent point is zero. -** -** 6) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes > iauTpxev < xi,eta -** iauTpsts iauTpstv star -** iauTpors iauTporv origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -*/ - - - -void iauTr(double r[3][3], double rt[3][3]) -/* -** - - - - - - -** i a u T r -** - - - - - - -** -** Transpose 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 -** -** Returned: -** rt double[3][3] transpose -** -** Note: -** It is permissible for r and rt to be the same array. -** -** Called: -** iauCr copy r-matrix -** -*/ - - - -void iauTrxp(double r[3][3], double p[3], double trp[3]) -/* -** - - - - - - - - -** i a u T r x p -** - - - - - - - - -** -** Multiply a p-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 -** p double[3] p-vector -** -** Returned: -** trp double[3] r^T * p -** -** Note: -** It is permissible for p and trp to be the same array. -** -** Called: -** iauTr transpose r-matrix -** iauRxp product of r-matrix and p-vector -** -*/ - - - -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^T * pv -** -** Notes: -** -** 1) The algorithm is for the simple case where the r-matrix r is not -** a function of time. The case where r is a function of time leads -** to an additional velocity component equal to the product of the -** derivative of the transpose of r and the position vector. -** -** 2) It is permissible for pv and rpv to be the same array. -** -** Called: -** iauTr transpose r-matrix -** iauRxpv product of r-matrix and pv-vector -** -*/ - - - -int iauTttai(double tt1, double tt2, double *tai1, double *tai2) -/* -** - - - - - - - - - -** i a u T t t a i -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to International -** Atomic Time, TAI. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned: -** tai1,tai2 double TAI as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned tai1,tai2 follow -** suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) -/* -** - - - - - - - - - -** i a u T t t c g -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to Geocentric -** Coordinate Time, TCG. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned: -** tcg1,tcg2 double TCG as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned tcg1,tcg2 follow -** suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2000 Resolution B1.9 -** -*/ - - - -int iauTttdb(double tt1, double tt2, double dtr, - double *tdb1, double *tdb2) -/* -** - - - - - - - - - -** i a u T t t d b -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to Barycentric -** Dynamical Time, TDB. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** dtr double TDB-TT in seconds -** -** Returned: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned tdb1,tdb2 follow -** suit. -** -** 2) The argument dtr represents the quasi-periodic component of the -** GR transformation between TT and TCB. It is dependent upon the -** adopted solar-system ephemeris, and can be obtained by numerical -** integration, by interrogating a precomputed time ephemeris or by -** evaluating a model such as that implemented in the SOFA function -** iauDtdb. The quantity is dominated by an annual term of 1.7 ms -** amplitude. -** -** 3) TDB is essentially the same as Teph, the time argument for the JPL -** solar system ephemerides. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2006 Resolution 3 -** -*/ - - - -int iauTtut1(double tt1, double tt2, double dt, - double *ut11, double *ut12) -/* -** - - - - - - - - - -** i a u T t u t 1 -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to Universal Time, -** UT1. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** dt double TT-UT1 in seconds -** -** Returned: -** ut11,ut12 double UT1 as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned ut11,ut12 follow -** suit. -** -** 2) The argument dt is classical Delta T. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauUt1tai(double ut11, double ut12, double dta, - double *tai1, double *tai2) -/* -** - - - - - - - - - - -** i a u U t 1 t a i -** - - - - - - - - - - -** -** Time scale transformation: Universal Time, UT1, to International -** Atomic Time, TAI. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** ut11,ut12 double UT1 as a 2-part Julian Date -** dta double UT1-TAI in seconds -** -** Returned: -** tai1,tai2 double TAI as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) ut11+ut12 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where ut11 is the Julian -** Day Number and ut12 is the fraction of a day. The returned -** tai1,tai2 follow suit. -** -** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is -** available from IERS tabulations. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauUt1tt(double ut11, double ut12, double dt, - double *tt1, double *tt2) -/* -** - - - - - - - - - -** i a u U t 1 t t -** - - - - - - - - - -** -** Time scale transformation: Universal Time, UT1, to Terrestrial -** Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** ut11,ut12 double UT1 as a 2-part Julian Date -** dt double TT-UT1 in seconds -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) ut11+ut12 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where ut11 is the Julian -** Day Number and ut12 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** 2) The argument dt is classical Delta T. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauUt1utc(double ut11, double ut12, double dut1, - double *utc1, double *utc2) -/* -** - - - - - - - - - - -** i a u U t 1 u t c -** - - - - - - - - - - -** -** Time scale transformation: Universal Time, UT1, to Coordinated -** Universal Time, UTC. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** ut11,ut12 double UT1 as a 2-part Julian Date (Note 1) -** dut1 double Delta UT1: UT1-UTC in seconds (Note 2) -** -** Returned: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 3,4) -** -** Returned (function value): -** int status: +1 = dubious year (Note 5) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) ut11+ut12 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where ut11 is the Julian -** Day Number and ut12 is the fraction of a day. The returned utc1 -** and utc2 form an analogous pair, except that a special convention -** is used, to deal with the problem of leap seconds - see Note 3. -** -** 2) Delta UT1 can be obtained from tabulations provided by the -** International Earth Rotation and Reference Systems Service. The -** value changes abruptly by 1s at a leap second; however, close to -** a leap second the algorithm used here is tolerant of the "wrong" -** choice of value being made. -** -** 3) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the returned quasi-JD UTC1+UTC2 represents UTC -** days whether the length is 86399, 86400 or 86401 SI seconds. -** -** 4) The function iauD2dtf can be used to transform the UTC quasi-JD -** into calendar date and clock time, including UTC leap second -** handling. -** -** 5) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauDat delta(AT) = TAI-UTC -** iauCal2jd Gregorian calendar to JD -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) -/* -** - - - - - - - - - - -** i a u U t c t a i -** - - - - - - - - - - -** -** Time scale transformation: Coordinated Universal Time, UTC, to -** International Atomic Time, TAI. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) -** -** Returned: -** tai1,tai2 double TAI as a 2-part Julian Date (Note 5) -** -** Returned (function value): -** int status: +1 = dubious year (Note 3) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** 2) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the JD day represents UTC days whether the -** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era -** there were smaller jumps (in either direction) each time the -** linear UTC(TAI) expression was changed, and these "mini-leaps" -** are also included in the SOFA convention. -** -** 3) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 4) The function iauDtf2d converts from calendar date and time of day -** into 2-part Julian Date, and in the case of UTC implements the -** leap-second-ambiguity convention described above. -** -** 5) The returned TAI1,TAI2 are such that their sum is the TAI Julian -** Date. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauDat delta(AT) = TAI-UTC -** iauCal2jd Gregorian calendar to JD -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -*/ - - - -int iauUtcut1(double utc1, double utc2, double dut1, - double *ut11, double *ut12) -/* -** - - - - - - - - - - -** i a u U t c u t 1 -** - - - - - - - - - - -** -** Time scale transformation: Coordinated Universal Time, UTC, to -** Universal Time, UT1. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) -** dut1 double Delta UT1 = UT1-UTC in seconds (Note 5) -** -** Returned: -** ut11,ut12 double UT1 as a 2-part Julian Date (Note 6) -** -** Returned (function value): -** int status: +1 = dubious year (Note 3) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** 2) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the JD day represents UTC days whether the -** length is 86399, 86400 or 86401 SI seconds. -** -** 3) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 4) The function iauDtf2d converts from calendar date and time of -** day into 2-part Julian Date, and in the case of UTC implements -** the leap-second-ambiguity convention described above. -** -** 5) Delta UT1 can be obtained from tabulations provided by the -** International Earth Rotation and Reference Systems Service. -** It is the caller's responsibility to supply a dut1 argument -** containing the UT1-UTC value that matches the given UTC. -** -** 6) The returned ut11,ut12 are such that their sum is the UT1 Julian -** Date. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauDat delta(AT) = TAI-UTC -** iauUtctai UTC to TAI -** iauTaiut1 TAI to UT1 -** -*/ - - - -void iauXy06(double date1, double date2, double *x, double *y) -/* -** - - - - - - - - -** i a u X y 0 6 -** - - - - - - - - -** -** X,Y coordinates of celestial intermediate pole from series based -** on IAU 2006 precession and IAU 2000A nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double CIP X,Y coordinates (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The X,Y coordinates are those of the unit vector towards the -** celestial intermediate pole. They represent the combined effects -** of frame bias, precession and nutation. -** -** 3) The fundamental arguments used are as adopted in IERS Conventions -** (2003) and are from Simon et al. (1994) and Souchay et al. -** (1999). -** -** 4) This is an alternative to the angles-based method, via the SOFA -** function iauFw2xy and as used in iauXys06a for example. The two -** methods agree at the 1 microarcsecond level (at present), a -** negligible amount compared with the intrinsic accuracy of the -** models. However, it would be unwise to mix the two methods -** (angles-based and series-based) in a single application. -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFame03 mean longitude of Mercury -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFama03 mean longitude of Mars -** iauFaju03 mean longitude of Jupiter -** iauFasa03 mean longitude of Saturn -** iauFaur03 mean longitude of Uranus -** iauFane03 mean longitude of Neptune -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, -** Astron.Astrophys., 412, 567 -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M., 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -void iauXys00a(double date1, double date2, - double *x, double *y, double *s) -/* -** - - - - - - - - - - -** i a u X y s 0 0 a -** - - - - - - - - - - -** -** For a given TT date, compute the X,Y coordinates of the Celestial -** Intermediate Pole and the CIO locator s, using the IAU 2000A -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** s double the CIO locator s (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 3) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 4) A faster, but slightly less accurate result (about 1 mas for -** X,Y), can be obtained by using instead the iauXys00b function. -** -** Called: -** iauPnm00a classical NPB matrix, IAU 2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauXys00b(double date1, double date2, - double *x, double *y, double *s) -/* -** - - - - - - - - - - -** i a u X y s 0 0 b -** - - - - - - - - - - -** -** For a given TT date, compute the X,Y coordinates of the Celestial -** Intermediate Pole and the CIO locator s, using the IAU 2000B -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** s double the CIO locator s (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 3) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 4) The present function is faster, but slightly less accurate (about -** 1 mas in X,Y), than the iauXys00a function. -** -** Called: -** iauPnm00b classical NPB matrix, IAU 2000B -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -*/ - - - -void iauXys06a(double date1, double date2, - double *x, double *y, double *s) -/* -** - - - - - - - - - - -** i a u X y s 0 6 a -** - - - - - - - - - - -** -** For a given TT date, compute the X,Y coordinates of the Celestial -** Intermediate Pole and the CIO locator s, using the IAU 2006 -** precession and IAU 2000A nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** s double the CIO locator s (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y components -** of the unit vector in the Geocentric Celestial Reference System. -** -** 3) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 4) Series-based solutions for generating X and Y are also available: -** see Capitaine & Wallace (2006) and iauXy06. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -*/ - - - -void iauZp(double p[3]) -/* -** - - - - - - -** i a u Z p -** - - - - - - -** -** Zero a p-vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Returned: -** p double[3] zero p-vector -** -*/ - - - -void iauZpv(double pv[2][3]) -/* -** - - - - - - - -** i a u Z p v -** - - - - - - - -** -** Zero 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. -** -** Returned: -** pv double[2][3] zero pv-vector -** -** Called: -** iauZp zero p-vector -** -*/ - - - -void iauZr(double r[3][3]) -/* -** - - - - - - -** i a u Z r -** - - - - - - -** -** Initialize an r-matrix to the null matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Returned: -** r double[3][3] r-matrix -** -*/ - -copyr.lis 2023 April 17 - - -COPYRIGHT NOTICE - -Text equivalent to that below appears at the end of every SOFA routine -(with one exception). There are small formatting differences between -the Fortran and C versions. - -The one exception is the "leap second" routine DAT. This uniquely is -classified as "user replaceable", and has a mitigated license statement -that permits the distribution of local variants under the same name. -This measure allows other SOFA routines to call the local variant, which -may be file or network based, or otherwise equipped to pick up IERS leap -second updates with no need to download new SOFA code. - -*+---------------------------------------------------------------------- -* -* Copyright (C) 2023 -* 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 -* -*----------------------------------------------------------------------- - -consts.lis 2008 September 30 - - -SOFA Fortran constants ----------------------- - -These must be used exactly as presented below. - -* Pi - DOUBLE PRECISION DPI - PARAMETER ( DPI = 3.141592653589793238462643D0 ) - -* 2Pi - DOUBLE PRECISION D2PI - PARAMETER ( D2PI = 6.283185307179586476925287D0 ) - -* Radians to hours - DOUBLE PRECISION DR2H - PARAMETER ( DR2H = 3.819718634205488058453210D0 ) - -* Radians to seconds - DOUBLE PRECISION DR2S - PARAMETER ( DR2S = 13750.98708313975701043156D0 ) - -* Radians to degrees - DOUBLE PRECISION DR2D - PARAMETER ( DR2D = 57.29577951308232087679815D0 ) - -* Radians to arc seconds - DOUBLE PRECISION DR2AS - PARAMETER ( DR2AS = 206264.8062470963551564734D0 ) - -* Hours to radians - DOUBLE PRECISION DH2R - PARAMETER ( DH2R = 0.2617993877991494365385536D0 ) - -* Seconds to radians - DOUBLE PRECISION DS2R - PARAMETER ( DS2R = 7.272205216643039903848712D-5 ) - -* Degrees to radians - DOUBLE PRECISION DD2R - PARAMETER ( DD2R = 1.745329251994329576923691D-2 ) - -* Arc seconds to radians - DOUBLE PRECISION DAS2R - PARAMETER ( DAS2R = 4.848136811095359935899141D-6 ) - - -SOFA C constants ----------------- - -The constants used by the C version of SOFA are defined in the header -file sofam.h. - -#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: 2023 April 16 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ - -#include "math.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* 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; - -/* 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 tc, 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 tc, double rh, double wl, - iauASTROM *astrom); -void iauAtcc13(double rc, double dc, - double pr, double pd, double px, double rv, - double date1, double date2, - double *ra, double *da); -void iauAtccq(double rc, double dc, - double pr, double pd, double px, double rv, - iauASTROM *astrom, double *ra, double *da); -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 tc, 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 tc, 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 tc, 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 tc, 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 pob[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 height, double xp, - double yp, double sp, double theta, double pv[2][3]); -void iauRefco(double phpa, double tc, double rh, double wl, - double *refa, double *refb); - -/* Astronomy/Ephemerides */ -int iauEpv00(double date1, double date2, - double pvh[2][3], double pvb[2][3]); -void iauMoon98(double date1, double date2, double pv[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 iauLtp(double epj, double rp[3][3]); -void iauLtpb(double epj, double rpb[3][3]); -void iauLtpecl(double epj, double vec[3]); -void iauLtpequ(double epj, double veq[3]); -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 date01, double date02, - double date11, double date12, - 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 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 iauFk425(double r1950, double d1950, - double dr1950, double dd1950, - double p1950, double v1950, - double *r2000, double *d2000, - double *dr2000, double *dd2000, - double *p2000, double *v2000); -void iauFk45z(double r1950, double d1950, double bepoch, - double *r2000, double *d2000); -void iauFk524(double r2000, double d2000, - double dr2000, double dd2000, - double p2000, double v2000, - double *r1950, double *d1950, - double *dr1950, double *dd1950, - double *p1950, double *v1950); -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 iauFk54z(double r2000, double d2000, double bepoch, - double *r1950, double *d1950, - double *dr1950, double *dd1950); -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/EclipticCoordinates */ -void iauEceq06(double date1, double date2, double dl, double db, - double *dr, double *dd); -void iauEcm06(double date1, double date2, double rm[3][3]); -void iauEqec06(double date1, double date2, double dr, double dd, - double *dl, double *db); -void iauLteceq(double epj, double dl, double db, double *dr, double *dd); -void iauLtecm(double epj, double rm[3][3]); -void iauLteqec(double epj, double dr, double dd, double *dl, double *db); - -/* Astronomy/GalacticCoordinates */ -void iauG2icrs(double dl, double db, double *dr, double *dd); -void iauIcrs2g(double dr, double dd, double *dl, double *db); - -/* 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]); - -/* 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); - -/* Astronomy/HorizonEquatorial */ -void iauAe2hd(double az, double el, double phi, - double *ha, double *dec); -void iauHd2ae(double ha, double dec, double phi, - double *az, double *el); -double iauHd2pa(double ha, double dec, double phi); - -/* Astronomy/Gnomonic */ -int iauTpors(double xi, double eta, double a, double b, - double *a01, double *b01, double *a02, double *b02); -int iauTporv(double xi, double eta, double v[3], - double v01[3], double v02[3]); -void iauTpsts(double xi, double eta, double a0, double b0, - double *a, double *b); -void iauTpstv(double xi, double eta, double v0[3], double v[3]); -int iauTpxes(double a, double b, double a0, double b0, - double *xi, double *eta); -int iauTpxev(double v[3], double v0[3], double *xi, double *eta); - -/* 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) 2023 -** 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 -** -**--------------------------------------------------------------------*/ - -#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: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ - -/* 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, IAU 2012) */ -#define DAU (149597870.7e3) - -/* Speed of light (m/s) */ -#define CMPS 299792458.0 - -/* Light time for 1 au (s) */ -#define AULT (DAU/CMPS) - -/* 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) (fabs(A)<0.5?0.0\ - :((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) 2023 -** 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 -** -**--------------------------------------------------------------------*/ - -board.lis 2023 May 31 - - - -IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD - - -Current Membership - - John Bangert - United States Naval Observatory, retired - Steven Bell - His Majesty's Nautical Almanac Office (HMNAO) - Nicole Capitaine - Paris Observatory - Maria Davis - United States Naval Observatory (IERS) - Mickael Gastineau - Paris Observatory, IMCCE - Catherine Hohenkerk - HMNAO (Chair, retired) - Li Jinling - Shanghai Astronomical Observatory - Zinovy Malkin - Pulkovo Observatory, St Petersburg - Jeffrey Percival - University of Wisconsin - Wendy Puatua - United States Naval Observatory - Scott Ransom - National Radio Astronomy Observatory - Nick Stamatakos - United States Naval Observatory - Patrick Wallace - RAL Space, retired - Toni Wilmot - His Majesty's Nautical Almanac Office - - -Past Members - - Wim Brouw University of Groningen - Mark Calabretta Australia Telescope National Facility - William Folkner Jet Propulsion Laboratory - Anne-Marie Gontier Paris Observatory - George Hobbs Australia Telescope National Facility - George Kaplan United States Naval Observatory - Brian Luzum United States Naval Observatory - Dennis McCarthy United States Naval Observatory - Skip Newhall Jet Propulsion Laboratory - Jin Wen-Jing Shanghai Astronomical Observatory - - -The email address for the Board chair is catherine.hohenkerk@gmail.com - diff --git a/deps/sofa/20231011/c/doc/manual.pdf b/deps/sofa/20231011/c/doc/manual.pdf deleted file mode 100644 index 8d84e19940217fc8f87b83127d46251145eab26e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485794 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

I 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%0AUB8MpoK2fOnf*FIeT#qH*jy))L!>;`n5 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�}4~)kYfT*e-43B1-q)ju>?tfJ3f{ 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�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 z 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¥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 E28ubo7XSbN diff --git a/deps/sofa/20231011/c/doc/sofa_ast_summary.pdf b/deps/sofa/20231011/c/doc/sofa_ast_summary.pdf deleted file mode 100644 index 1200691c4922ce1610132e735ee6f92310a222ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63625 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

*m=^?ozeGwNNx9x zYW5j}@c2}u9IQf@7p#AZqij!WSHH;pF_$&WifL$#qk4F_otKqjZ znBNIu_kq3#9Tm~EO3B@G6w3wQg~vYV8=4z2#kF-&|tyd`~EZfE=PC4RbU z9>_WF{f`W=*-c1NAe6@5miLM`mS^0p&)A$z3;1)5>Y5MRxmB(eDTn`#?yW`4Ez-1m!uh5prafyNyfXo_`XlJ7oqrNH+%mf;mM!jcUNkt%v z@fXg#bNXzV3b%UZrg91xKWSKBP!`Vgaia2uTyguP(0f5XPk5-ZkMfaedBFzhrIAWA zk1Z!Qh6RAMU(?&%$UM?K1@lq&m5xjBr`;KNEfLVZ9A=XE>6oTsc_{Ts-KAbhr8f@Y zd(fmzHshPf7mukl{IDSAnN?gPt4O2)u9*k51q05peO-&zu}*tEO=&ka8CF)OOnnCG z7P=K<`a2l}x&gJU`>EJLu7^r6dtp;cVuJ#sQ>UzUH4lAIILj=dL_TmE8Ya3|L}JD_ z;gay<)oBVQc`AhSddA};%Fx$?Yn}7+1$gI-3Au0IgVS$8pZx;>scjf;vQpEzWqMMY zA_c~y-$Pi%4_6tIKVULRw7YFIXeM8)Y?Mb>G}55!g|;h%iFsuaU1DC~We~lQ*G`}`i2Cg=zML++pGe;*Bnh*LD ze%cz}Q>UzsXwxHu=%%kr_yb7NfmHkO_6e$cRUo~snBN-O563?0tbuh19Am&*Y*)|5 z%YR5!xc!<;Ot`SmbBM~vc&kzb69M`KK>2g{MElY8d)5v@HuS!^O5=N{B3;?7lg*oQop1x!3XB3|E`Y#x(ZSI1!My(Tz) z(auV}x#S+LcHwI~;lIwNO0_zzHHtUg!8xCszYf~Is0lpnG%fAY);Uzr6#jRvO1t*- zsVRP9I&%GrB9ElW#C~em?3n6KeW_K3cMqx0Uy59SGqHtr?jpwbrnR}7E@!l!G$dfC z*ao@zAJVB8(LW$waHW)k$${Vz0!mxOg<-r!^qkD5Dx=yiOA290c4f=8B_-hZt!liP zQTUmcHr+kT-0DE)eUHpn)^@F2+sr2IcT+lun~Aam)qEKse)G$CBiME2P${1E&LO=O!#T`)gWs*mt|CQTJavg<&%l*YKxf_LhIO|?|ELV@;nB6t zcBp4+nR)p|XS0Z)F!dn0*6Wq2ez=xi6~|`K|En{m1!RvNBxDib~EU*aLc zy0Le`XYlX#1LN4Ad>>zXJVT5Op47;Yo}qTV(GKL%j^PoJeII9gMga!)PPxKrWhKr%iFg<0whKjPJ$z^h^`60$ zMntCNG5hx^!&S!!)pPHP04-m63D1JmtN} zl5BE#S7>J&?QHS`_mX1V6xetaoi$jwaGYhcQhzG@Y*1D^AZ`G-%CjGs996a5#p?)X z`_sZxBi6R z$4C(yhB61qM!fhdB#qMbKEk}xcfh7f?>Zdc`>$Ev%t#J6a(M_a#B;o;UQ+pb7e;+L zkPDBSd4`PKiwG8un{Ha2Y=db6hNm-#ZOMFVMcl@Xt@HnG`x^V@KS1T750meob-0Hsx071 zb-WA&<%Y)S{_u4!Dlf5$1Z~N|a5S&Z$)$(&SztEQyY$mK+uRwo8@htwbxS{NvCf_A z4uHM??Qm5$mq}XsqrmbqaT<@90pC=1Q@({kVYgXlvTHliex7u3j@?aOccr6%zo{$f zIbU2KTu>(~!3>}$2$urbo$>UM&leo8h#7q8nfU43OjD*E|C(3mtV~Ck<2kcT4kX@m zX!E7NEd7qf7ku^nYbXqgVabnqHaBH3yI~+__+z4*c?TLBbig?iYtqBTIm*1_dxdR} zg^ayi11v0kq#>qIP~$T1iLa6)QHyj%=``8cQk!`Awx$iL;WAgl5P zCWI$EK3rIRO@ms^M}on(dJzT^+BqYgYR_6eD|K1FdkE5{CIU+&-^wfqz8akSrDZg8 zSSozs^+qrmSd%!%9s3H4UADkmrV*)gi|5nKM_=!_F|Sd{fs%}WIITclK=9=vSW%V@ z5@e4pjb1(w;{11_XdsyOLJaP+^X>isjQTf3n+esaMXM~~)nl@DAaNG&)tSdj-^GY? zKVMNYFo!@)A&Q)!M|!Boh;U0FH|^qDIo>j*kyNPx+@#%=8}`qB#7|$QGMgU%QU0x6 zZo%To<6C=~(P!a*M;aj73@rCZf7)i5rMNeL$bUrj)ThvxyCve$NG(&GM~0l4p1PfT#qf_) zQY6dLzkWJ7e$vq8|LDvI5f|Yz`ZrIUx{hYDF#@FP@AQ1y#Hq%XKPTATYTM^Xv@Nq% zRA4q@uWd^tH8)KqwSue(Kj~9aD;n0fc_u4-y{%$OnVAyz8_W6|RWzVgkLJpoKTdf* zm&I#@^gT0y66>)L!Na<8Mr60JY4CRhVDvHqRJ0PX%>KB{5W^MKBh+zsuU{)h7|anQ ziK}52gpl)v?Srpd-uBO6%I&x${&0vLdoyHWV+CbvKvw3{VS_jp#d}>^dmJ8gg!1iX z6s_dKM%n{v>jmtlw9ix@X!un>gu+`zg<24i3CpGIUr&4%AznG@S?O6>8(Ds=oVz(Y z{xNf_#|T&NheXB9omuq`d{n|7)lF*nvSElE^M$kz_Ub5RHseloNPl`(ZUEHSi zuaPnpQoG6)?Ve(H63q}~FOxdGV{&h?jplIX6=Pr6YMX3b5K?&O{8Z_1=v?Eqo;jWc zmC=pum?{8zjbA;wais?E#17~S%i01vH~&1&9<0X#VMo=lt07^BoN-oYFZ4CT3=lmi zq*7(OT(K>QxY;G|X^7ygTJwB<3Z&f|RKi}B`x_x>^O2S5l$DUW?|WTRu}N$u6HC-W zSl6aJE3dQBGj|>P*b$*mnb^o4!W|-Z#H#*(gYn73;k3KA&ggCJcY35fK@lDp(8d8B z-$;MCThC!5CB{7Dt7=6A^q*{(qkhaX!LtS<&*9WHiV|!%NpAgp&tL)gA#yzABS+5{ zR&LQD7=MHxPlWHAJi)qa1oFUh>&7!Jr;?0Iy$w|IipHUi*$U~_Q$yVgkY~h&CKfP< zI016i&h_M@G`yw^hm7Z&OqAUdw@UMDsAKPTedeXNlwhU-O*a^0RDW5K#t~ki5lufu zihmP*LCp|z3R?Ci*{3*m`S>bkK(sSfJUg%bt9$MWWDxsh>xJvqy(CXK%SJ8Inq_fP zq2u>D@hf#9ncPnphg>P8Idb=8&GwoQn?L0(<$kfnQ>QKG-DndxUfTe!DF?b-zu(tI zDp2cRNIm+)vEm4TsqFJoNGIz3fY!cKP*h|0NOH{fV>|l&hW`z##t{j6N%zr9T3gCbvYbQFCtC3uOy_#vVNr4 z8sMnPO6yNR6lP5L|8>5cS$%KgD$4>F95E(;xXt%1r*j6Z`g}dPQyt6Ak#MUI@Gooj znBhs{mU|kqi4`y`L9of3gR3%i&;{A zZGPJ|_qHomfE+sGa!ku<%@RFiM5)iHqakUGs`^1g9oKE}m$6OKsYLWgf28jGu4ik^?1 z{z=52`!&Mbr=vwTD5_psst2=GRbtFRLxpV&I?fn(_eZ_=W{gxIqVM+IT)`@{cp7>0 zAqA>lS?*`5?CGY`v25J(Rpq}Ju*+jI2J?QIGMq>1=4~^~=@~grHQU$}V7a(|!TygA z`Ke%xsaO*?^#JdY7(a}4t4mJlYgGhMZGKZ=?FmH062zP4aiH8`n0S5e{ChWym^mdi+>xvJ+#X z8g451Q(2Duvw}^@yu2D9-dpw5tIV>1P3hJ%zf{=GbSqiLF0(=H7Ce8erdL#**sgU7D-vbCB`Q;vh@?wS zt1!1to=;ZOmN8&x(m!P>n=AB}w+X9C-(>2S4;B+mL$e5y`~1G5SE`nz6BQ${AeUbA z^ysR|uqr?d*h^kZ&=_o*i|87}9i{tQ_0v}y1S!_u(vO5q?+WmL&cFXZiwtBgm$^;I zRU%dwVz!vNKGUngj*qIQ3|a3}e=DU=_xDeCn=#W2$;VcS~blVac5b?I*TIu zliM;JJ1Df9!KGC^s!y};CS$Ngu9ZB z_b9ix9W$`-2%#Adg4?JZ9FjY8bXL3I6$cW?yBR92ZTzD@B?HcKV)~3JR3hUz%$cnk z8Y2(%-=m{=@=c8Xr@ilvYbxv3maZU8=|uukq^1x;@4X`(rISpdlL}2L1%PkUT40!zwiF}CgkLtz1Mp7+RyH5A96HOz4f3gZ6ah7 zRB)EcQKHM}p>5iOW*VBBddreT%*!@0f4zzlJ&7}(6mwIIC4~G*JjNGC4o%ocHcdY_ zav@TsjPc_;Np}%NMP&fn_y#j)~Ts!1{8aS@_A)i zFBXAQpVH3yUe$`rGZyffR{3TT@_mZvfIz>QV+7q}}jZP;RNKBGLVnI#u@3EE2Hn&2xQ!BVNcG~&$9OwXf{ti$*G zaAN%$R{{Ta`a;;m*Hvk^mFnG8;j-GR(#NBdR=lMjjOzR|K#|UZ3IP1Zi z(4gCVqhkqg6FF%IuYVBSerKUi>~eSGwTVuf`%15$9(67~U&Rq^S3^giv+n9z`EZ}$ zc%6=}q}0K3s&m|;OX%%}RckGMhCy%fu!}cmRJ;WvGFtGeiLY=Se6p_;Gm=x>P#kii zjmS(FV~RMh;QCDO5mkgi*nw-iojf?>7EMSvHHsB_UqMNpAvBQq8E5QHk7#4dTypBT z_U>)-9*fj*0@|IjtqU@v3@Phd=Tgq|WNxOWX7U#n%7q<6EaVFXzgk|}%UdrMj4J9M zo_AmCZ9laBI6P?GK`a%g4?#)klCslg58<9KGS?{t6=^cL*E9Fbb*zT@t(whyFNdMU zdnj_tt__n+p7R}7hSj&!hPoH?!Y{`(a5aUhUxIPQmwHx9#@bH1mRy{#wu^-yg3q~D z?%gC8d^_f5h!p8YcRkIYJ#0THMLLMQ1=1T5lQ=9IkdudRE8V!c-gpMVqx*EJ@iN=N zo-3Q=(bL!YCb21RGgWC}{#)yrr2$p0U$)`d-c>59YYts2_n$MoNXoQ#V3qd2J2b#E zf4$je;ESol>(kOI?#(`e(;?Pd`0fVhCg|@xWXdr4+oij$wt5T>@Bd z?^;%zoab6#pPjixZVyGW7!Q9u!zKw$FFiA}-bWkeSDH~8*=*xcFlWuLcJKM45rk=* zskRnyXSKet*28MhDTi5yKVyxJHuu)U*GC3Y$FGmZ88$YjFC!?gnUEAW8oAiUsgMbl ztmBu2OtR;10IKS*(KJ}2OX`jNEJnA4KjJ_aBTfg!k@WmA} zLqlUCn#W8p>6OwHK9;a?tLaANT*vzAZ>dSf*KLr^5Bh|0qat#4)ufNuxn_@}G5Qko zvV{QvqR;A?f$`lJX$nyJX9o!v6-2fht~!jQu!-r4E6)nfIz7o4EO~@#_UIIU235V1 zJBA8Kh2|ze9m-bGIoAHRN5fi4XWTM}?VUk`$sM+_j9})DG&A%<&O|jN^lwm6|sYcWO&ky}Vc1*GFbZ&R*W+>{v)!816_DUMdzc;gL^**}p`s>G|wy=to z((|wUl6=UNxn@kGa7rSz=H;gU)%{qqBpn~X0mAw19{4?I64l%BxG)H@{2OQtJ6nZ^5dWMxixU|Y}GNz4uhrDlsOXo2G$yZum;v@XR zAlfw^7g~W3{>k0Rb5*B>0w;ntCt1YE$B9-0D_?!y_#HOe_+)-+Z}eDz6^c)8~d&9a{!uSM>OG`ud_K>9zlnxfw$@=pzT*R>)1 z6>2qw^pAM)ihj@GEA0`)Y7)3kzbEkcW8YWCBPei#*FRDAHP0TQY$MrM_9Fn>bmmt) z|GXOuCy_{QG!52aJaw$+mqp2*f+J45wK5#RG7l01yC;uqT(20;-@Ku}BP1 z#SxB0Dj}`WHpt(ec>{nzU@|gpSPT;GL{6%9+dQhvz7at6c2%Z{#gp>R@FOn03L4BD zThb2RT^;>&MkIp5``|vzF`a;KdiQX~ZL1()iPxqZ%`z6qm?M|!dXHH$lzLWfVI-JR zh|OYb3=!LlPkE5!I**EIW$0ezD17KCCjCWh%52_b=UtGknBRD~@Elxoo|!)DEIF3d z>(Na5^<>MX;52@Z`T9BbReJal3)>9^JBNTn^689b5wn|)C>11AE=7B+;ghJZvWIDJ zTl~z7a|Fk8qBFfBM-^ITCoi-(wa4V>q`kd_hyT$}jhCD1nZWkNm#2o`qCvl)N#q}C zQbA$dumCXR2VWv$Kpg-CXz1;N1nMH}4X{o>`Li1j?QXMw1EM18wt9%v0Q+3QurnY? zVx8;kG|VqqJiYHixIv(N=kscEE1zqvUF9xCrZ@-hH30sl>|)Ezj_UUzB*9$D*-0KF zSRTq4jq>+y@t}4+q>*PhNzgObHD$1W9XD@mIsu0(6J1?cg?@cW!h8AJOs0N|clPfc zXkxP%me+gu9Y(sB>-!p{(|xe@rR?@ov<#WvF2Y!2MFobD8)IyRx};ma53z|y68#Tb zA}Q({4-8U2?P)ikjwVZ?B4hnDmE8O#ShY%Pmd=j5w0N4N*zmAcnA(&vkGFVnP-g6< zdznM)z6`}t$fp;@xQD|ZJ&7ZGIQtm?>?w|b*p6TD3;SR3D*_h&Cw|)vwbA`@XAk)s zF2=3j@*}>?fev(Q{SvyvUTxX%ute%kEHWR`S?Nx+(>5^P~3;bC*HX%TwGh zsV1i~YMwQJu361lus!gut@f_WJ^n!HWZ}2qaoDizZ!%hO(0y;YZNG-~EoxJba?+8j zJ+h;UdE`kh+o_AQN5*~ylspZx6S@J9lNLO@oSof!kLRv*z7HIHQkoU=u(GggayWg|W++=xTlr47s6Wiw9TqCQq4OyX{GsT0ce;)UEfA^{#ev6; zf2Fjpc#?&r&Ol9$qUzRUY!5gm{{S6CL#=k7i24j>OO7U}>Vg?%3uEUZfS5qtUSevW z8lU<8Er$(>1Hu+J3K_-DcrchPtW6|p_7Qy#cM4T3LMVZ{2O?BS+n6ZUd60WIT73Kp zZr;Rife<2#5>JYPQW*#khIi#dCD+&=Bz8rq$AIxM`84L9Ze#586>s-=yT42ia8S=5 zhTfY~=t)_owqUzEA55PkRi>5Im!T`1n5Y4!ZW=T5b=h~kGo%=twM@5;AnGK zPh*kfzvEUY&h4w@|KyG8qckBg0_bp_NIxC_Q$b^@MS%*hFtOE4>EI73<;jIrlV`iv zD0K^7C0HmXRj6e7x-^~XU(FS>CU*^&xCA(^JURn9MQ9~3@r&vu`Y)=N7#Q?>`vr@D zV7Lkf27&&r3CAT^p$)`o8ec@Pd9oP~HXjS7YrK4I-{f3r|1o!pJ+78(Bu0rndaiQ9 zRSK0}nEfT}jW)OJLHn04!8Y0PJ$yt+CC0^ga4X@R7kmlpCQnKy$%;5pzKnVnhTIvp zUm?6LbPIQxLQ09a&CI?kkz@*-4xXUBU6qxu*pWf8IQa@;c79zvijIFYl<8%QsaZK@ zQhYUzpzBi>i`Rt!u{EikCG%kcEYg8mVl6|?q~g|gNtQa3#9GW?Yl7hQCsJOFcf8jy zkk+e?tQ~OPyo=bO($mXW}PayGNb37B6haLAzM~G!!eSrCHpbLFxEPe9N_%rkF5QmFuG*bu>l?g;dS>wKA`4Lg)uiRKi_?U1j=e5lvN>WT}cSpU23^q4;W;b`o zYWFN3&SU&UkL!oxZu7X_D3GzP#<-(u4Uo3!8O*fRvP!sCTaL$0A7+jS@`B zF4>B&=ru~x&_(gGW~Xn(dh}{1sRL15DY$=NjE40pC#g}Q*jclJwjy_Wq?1%v?O0RD z;?MDiRVwGlnevwCBeEMcZsP*Dj5VIc8S>`p>t||faT$FJsMhx~`lQhkAH&aO zqEQ%U&ReaI$&TAqE2tYShkqiP|VzpAF48pShn##`aHuM4Y`9}n5W?E2yQ!^O3JvdH?i4`h@LYcph#4Qoqel*fIZ zZ$BcRK6ycxH)=Kh=y<0&&uX1cynzKBzvhm)Y~`YHA&#w(qSb!FP2a7iAJ)4<{9#^y zLM@wz{E4RZMGi{yi95YFI?lAgAlxEjlDXTDvTyB_mEp8 zF87xk{XB4-po2@j+Wq>w%4+vnjyb%7vv$cJ5T4<|CpH$ab;GK|Rvg2{(zH+DyHoat zX6R~!*^qJ$#O2F%?yEQFegmraM6h({;5o%6uZ~lyQ`+IO@OhwKQ$P9Yu8_L3+#*T2 zlk?$mRMR)>J{!nbByR^+bQDN#4xhDKRv$SgVmM`G`%&~4V~E(#F+|x5i*&Ye1Dp&i z`oEetf1ePFiT?i7NB~$^X2XNbr561a;ZhHJr@TR36&D_4z!g$ zKSP@89K{{N<5Uxm?RL<8?a!b-=Y#iox(Q=SQ+1h>78+hrd9;y}m!{}5GGo@Ygp}?Q z)aucuSlo@^7c#ae5>kF`V6N}GbzfdNahl^EKY`}tJLT$F{;bs{je*^zXM?*_e2X{S zjkYWvan|vyW=%;4_2t1O=8X)3jqIgzw;PLjOGb)>?N86&g&4*6(&MY1O9{I~&|DnM zP?pbU^k$~~MRjpR zn)CHg5ibh`^N^%dy;M*{HDD?!+#IZD!PtHqWbpFQnhH_-l37Qi+$KQ+zJn=gqFXm! zV%frL$9MRiWQljeiC|&9j|kj)z5t%56K|huHzEie)>|ijVL_#BMpRbL1=75#0QNGZ zW>@TSxO-Wl$HBtTmD)_+QHnT;pZzSf^PIV3s)mvvYKIe^rY)<1E}Pp&74Zq4Y&(^YS)aceJK8xsxc>>S&A{TqR+;EJX7F$9&b}#|XV)z#z$&kkD$l%0yFHr}s5=-HDgM;W#b5Y~T){-NxWMk< z)7%7#%n2bD?f@e39|FBM}JIGElTtGiMZ4hDY0XZcFQ z{Pk)Hi8SP@dNy%2+L)8zaDOa(0W|_CZgL=Nvh_;%ti7)odsLB@v+i?o+uYb?KS&wu9YeC5d1N=+lP=yO)QEX;OoX>L`>6wnrkJ1>!sF4*>Uj zF{y5B`K+m)Z{$_c;Z6l-k#tUNjZj&o(ZNL(aB6W6lcj)WghaNBuOkhFMt&~2%FlUg z)+6xoer~sm%dS(w=iAJEL{f{IVn?O&<8hfq zpSv!K`$^ShwOBhH>zg;k$mWZkmS0Aezur=~?HV@Ubly9tq-d;+`S#famiv7dCdE1q zLM(c}^mD0t2dvY2??1iO@>qudi1ykkugBWIT3d?$e|6koDER-;aVP4cIhD^gz0hF& zD3{|n$d*uk<@V`DJi;DgojjJ;d?N(xAB)x2mc0uL=UW+B15OrR-A^ z2hSRk;&T}h>KLBBd~RM&NrSM2dxf=x3*NTNS-@`3*Ldq?YH0L-3TSTWM{A6k6rdQ=c+ibp@Su zzP+Rbgc%zX~*HJL^bF2={eWnw5qu2}HY{LFOzQ*&lwv&+@UyEPe@JmO3YGwuV# zeb|UIOA!no^vq~M8r^c%Rp}dZfy|w@4v)!sMMGR4yu0=^%f8rMoY~RCFr?#VP@f-+ z<{Hl;i@j-HM39A}<69c$z-r{w5*E!J20LbAdI>wqAs!_u8xWYw(P@zxk~K80YJr^- zfk(93kMjyKgtirw5p>w*iIChXx7lQKQ!Ukg6zv*FJW0x8nn}#V-Y#(=n4piKD^#oh zX`;oz8oW;{U+VL)W3L>NfN|_*EMoT+p4Rzyv=4V*-E8#;#D-}F(V#*D?4FjN$;2ds z_&j0tUl#3T`?)UH;%{n|Cu$iQZxQ>%4*AlUauJlt<h*5{L2pM`XOz8Loh3S{RQ5F%Io(H9K*;4l%-k@_;u2*a4TP57<;%-ciF;NfPa8?G{UdR=y{}|z2)Og{{)NH z!=gya1Iq!=T+2pN(NVh1=>8H;=eCWg3}siP`50M@T7f(|_9*Jgf{0;}W_|dAd+wmz zp>L&GN5AI8?14^H+*tU>ST2p;RKv$J0JG-QrK46B&c(JYluYhr%xX6*`Z(F~@S}l9V)+B0Kb$Lok63L(q`p1_m zOidj5cWB+4oT!Jdj?tl%E!WL~Bg}3AR+3ltQ-0vR^A?UE}J>oYe~kV>j=C*&` zO_Xt{r~0wons?QoPTi@ z7Fhf%dcZ&F(Ly?3$JzmeMa4vc2JQ&#iIetZE9jfIRvU?h+rY8#pZ;1YSuYp3wF43h zKp?N9oTWKdYhQ2xP&U#WCL-D(Z5KtP9ZJmygEa8bF|_t^uok!Bkd+~o@{;g!a&f|; z0lb_Xo!un7q&eU=XarIMcYYEK7aIf<>X70VlX{ z1lk=d&B1Y!(2v(|`Eqjkk&v^S(6>AaS)-kRUT_y6SO^6C8zpV+e^zsH`lY6g^$#@{ zcZ}n=Oxaiik&Z|wq%+nHmm>I=dM0_|0eqvoNp|DgLHxNhzUd!#k?4<(E%=Wp%I0O|VY(BC5*Q8ExI;7OCgo&5wn ziT)P)XT{%*_|Jr-Y^)`4%sRobGH@3cN0c@Eq%8t*l~oG(GwNpoC-PVn))D!aL{BV{ zcl=8hej0nySx7j-ov%xCcnR7dZQ<^YSPmHjT@`tNyn&&nJM!Qx5-}+Ba+eYS@Xf)+bdQjroPSf2Ig$>rZoK6yaDqBnIV-1gN3ykj}U& z=L5JrvjT;|3kzk5T8(#C~V-|Ni(h5C8YrKM?<$$PX(1&B=f1`Zp~7kohlN zKdAUOC;z4E->~#U=D&3PpyJ=0{FknO!_p6#f1-=@=eiZQS0&BiiCdNaYGDldxiJ34 z4Pf6lvS7da2}HiR3I5JY0D-{_KzhX`J)WJw4*tua-rY_u-uo~Z_*4WjFGKJ<)5ECN zV8g?}#;tyYq-5YJf>RRoKgyo{)6{H4+R8%-`bk4pCVFu_ z(!$0y6{%b0=^tftz94n9-h8me5-+S>4I1%W`f?#%mAChS?Fv}pXuP=Kn)!^9zqPz6N=aTSP?h`hXv1yJ4D77Y*< z{=Pl>o4W<)chE0Of GCRS, geocentric, special - APCG13 prepare for ICRS <-> GCRS, geocentric - APCI prepare for ICRS <-> CIRS, terrestrial, special - APCI13 prepare for ICRS <-> CIRS, terrestrial - APCO prepare for ICRS <-> observed, terrestrial, special - APCO13 prepare for ICRS <-> observed, terrestrial - APCS prepare for ICRS <-> CIRS, space, special - APCS13 prepare for ICRS <-> CIRS, space - APER insert ERA into context - APER13 update context for Earth rotation - APIO prepare for CIRS <-> observed, terrestrial, special - APIO13 prepare for CIRS <-> observed, terrestrial - ATCC13 catalog -> astrometric - ATCCQ quick catalog -> astrometric - ATCI13 catalog -> CIRS - ATCIQ quick ICRS -> CIRS - ATCIQN quick ICRS -> CIRS, multiple deflections - ATCIQZ quick astrometric ICRS -> CIRS - ATCO13 ICRS -> observed - ATIC13 CIRS -> ICRS - ATICQ quick CIRS -> ICRS - ATICQN quick CIRS -> ICRS, multiple deflections - ATIO13 CIRS -> observed - ATIOQ quick CIRS -> observed - ATOC13 observed -> astrometric ICRS - ATOI13 observed -> CIRS - ATOIQ quick observed -> CIRS - LD light deflection by a single solar-system body - LDN light deflection by multiple solar-system bodies - LDSUN light deflection by the Sun - PMPX apply proper motion and parallax - PMSAFE apply proper motion, with zero-parallax precautions - PVTOB observatory position and velocity - PVSTAR space motion pv-vector to star catalog data - REFCO refraction constants - STARPM apply proper motion - STARPV star catalog data to space motion pv-vector - - Time scales - - D2DTF format 2-part JD for output - DAT Delta(AT) (=TAI-UTC) for a given UTC date - DTDB TDB-TT - DTF2D encode time and date fields into 2-part JD - TAITT TAI to TT - TAIUT1 TAI to UT1 - TAIUTC TAI to UTC - TCBTDB TCB to TDB - TCGTT TCG to TT - TDBTCB TDB to TCB - TDBTT TDB to TT - TTTAI TT to TAI - TTTCG TT to TCG - TTTDB TT to TDB - TTUT1 TT to UT1 - UT1TAI UT1 to TAI - UT1TT UT1 to TT - UT1UTC UT1 to UTC - UTCTAI UTC to TAI - UTCUT1 UTC to UT1 - - Earth rotation angle and sidereal time - - EE00 equation of the equinoxes, IAU 2000 - EE00A equation of the equinoxes, IAU 2000A - EE00B equation of the equinoxes, IAU 2000B - EE06A equation of the equinoxes, IAU 2006/2000A - EECT00 equation of the equinoxes complementary terms, IAU 2000 - EQEQ94 equation of the equinoxes, IAU 1994 - ERA00 Earth rotation angle, IAU 2000 - GMST00 Greenwich mean sidereal time, IAU 2000 - GMST06 Greenwich mean sidereal time, IAU 2006 - GMST82 Greenwich mean sidereal time, IAU 1982 - GST00A Greenwich apparent sidereal time, IAU 2000A - GST00B Greenwich apparent sidereal time, IAU 2000B - GST06 Greenwich apparent ST, IAU 2006, given NPB matrix - GST06A Greenwich apparent sidereal time, IAU 2006/2000A - GST94 Greenwich apparent sidereal time, IAU 1994 - - Ephemerides (limited precision) - - EPV00 Earth position and velocity - MOON98 Moon position and velocity - PLAN94 major-planet position and velocity - - Precession, nutation, polar motion - - BI00 frame bias components, IAU 2000 - BP00 frame bias and precession matrices, IAU 2000 - BP06 frame bias and precession matrices, IAU 2006 - BPN2XY extract CIP X,Y coordinates from NPB matrix - C2I00A celestial-to-intermediate matrix, IAU 2000A - C2I00B celestial-to-intermediate matrix, IAU 2000B - C2I06A celestial-to-intermediate matrix, IAU 2006/2000A - C2IBPN celestial-to-intermediate matrix, given NPB matrix, IAU 2000 - C2IXY celestial-to-intermediate matrix, given X,Y, IAU 2000 - C2IXYS celestial-to-intermediate matrix, given X,Y and s - C2T00A celestial-to-terrestrial matrix, IAU 2000A - C2T00B celestial-to-terrestrial matrix, IAU 2000B - C2T06A celestial-to-terrestrial matrix, IAU 2006/2000A - C2TCIO form CIO-based celestial-to-terrestrial matrix - C2TEQX form equinox-based celestial-to-terrestrial matrix - C2TPE celestial-to-terrestrial matrix given nutation, IAU 2000 - C2TXY celestial-to-terrestrial matrix given CIP, IAU 2000 - EO06A equation of the origins, IAU 2006/2000A - EORS equation of the origins, given NPB matrix and s - FW2M Fukushima-Williams angles to r-matrix - FW2XY Fukushima-Williams angles to X,Y - LTP long-term precession matrix - LTPB long-term precession matrix, including ICRS frame bias - LTPECL long-term precession of the ecliptic - LTPEQU long-term precession of the equator - NUM00A nutation matrix, IAU 2000A - NUM00B nutation matrix, IAU 2000B - NUM06A nutation matrix, IAU 2006/2000A - NUMAT form nutation matrix - NUT00A nutation, IAU 2000A - NUT00B nutation, IAU 2000B - NUT06A nutation, IAU 2006/2000A - NUT80 nutation, IAU 1980 - NUTM80 nutation matrix, IAU 1980 - OBL06 mean obliquity, IAU 2006 - OBL80 mean obliquity, IAU 1980 - PB06 zeta,z,theta precession angles, IAU 2006, including bias - PFW06 bias-precession Fukushima-Williams angles, IAU 2006 - PMAT00 precession matrix (including frame bias), IAU 2000 - PMAT06 PB matrix, IAU 2006 - PMAT76 precession matrix, IAU 1976 - PN00 bias/precession/nutation results, IAU 2000 - PN00A bias/precession/nutation, IAU 2000A - PN00B bias/precession/nutation, IAU 2000B - PN06 bias/precession/nutation results, IAU 2006 - PN06A bias/precession/nutation results, IAU 2006/2000A - PNM00A classical NPB matrix, IAU 2000A - PNM00B classical NPB matrix, IAU 2000B - PNM06A classical NPB matrix, IAU 2006/2000A - PNM80 precession/nutation matrix, IAU 1976/1980 - P06E precession angles, IAU 2006, equinox based - POM00 polar motion matrix - PR00 IAU 2000 precession adjustments - PREC76 accumulated precession angles, IAU 1976 - S00 the CIO locator s, given X,Y, IAU 2000A - S00A the CIO locator s, IAU 2000A - S00B the CIO locator s, IAU 2000B - S06 the CIO locator s, given X,Y, IAU 2006 - S06A the CIO locator s, IAU 2006/2000A - SP00 the TIO locator s', IERS 2003 - XY06 CIP, IAU 2006/2000A, from series - XYS00A CIP and s, IAU 2000A - XYS00B CIP and s, IAU 2000B - XYS06A CIP and s, IAU 2006/2000A - - Fundamental arguments for nutation etc. - - FAD03 mean elongation of the Moon from the Sun - FAE03 mean longitude of Earth - FAF03 mean argument of the latitude of the Moon - FAJU03 mean longitude of Jupiter - FAL03 mean anomaly of the Moon - FALP03 mean anomaly of the Sun - FAMA03 mean longitude of Mars - FAME03 mean longitude of Mercury - FANE03 mean longitude of Neptune - FAOM03 mean longitude of the Moon's ascending node - FAPA03 general accumulated precession in longitude - FASA03 mean longitude of Saturn - FAUR03 mean longitude of Uranus - FAVE03 mean longitude of Venus - - Star catalog conversions - - FK52H transform FK5 star data into the Hipparcos system - FK5HIP FK5 to Hipparcos rotation and spin - FK5HZ FK5 to Hipparcos assuming zero Hipparcos proper motion - H2FK5 transform Hipparcos star data into the FK5 system - HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion - FK425 transform FK4 star data into FK5 - FK45Z FK4 to FK5 assuming zero FK5 proper motion - FK524 transform FK5 star data into FK4 - FK54Z FK5 to FK4 assuming zero FK5 proper motion - - Ecliptic coordinates - - ECEQ06 ecliptic to ICRS, IAU 2006 - ECM06 rotation matrix, ICRS to ecliptic, IAU 2006 - EQEC06 ICRS to ecliptic, IAU 2006 - LTECEQ ecliptic to ICRS, long term - LTECM rotation matrix, ICRS to ecliptic, long-term - LTEQEC ICRS to ecliptic, long term - - Galactic coordinates - - G2ICRS transform IAU 1958 galactic coordinates to ICRS - ICRS2G transform ICRS coordinates to IAU 1958 Galactic - - Geodetic/geocentric - - EFORM a,f for a nominated Earth reference ellipsoid - GC2GD geocentric to geodetic for a nominated ellipsoid - GC2GDE geocentric to geodetic given ellipsoid a,f - GD2GC geodetic to geocentric for a nominated ellipsoid - GD2GCE geodetic to geocentric given ellipsoid a,f - - Gnomonic projection - - TPORS solve for tangent point, spherical - TPORV solve for tangent point, vector - TPSTS deproject tangent plane to celestial, spherical - TPSTV deproject tangent plane to celestial, vector - TPXES project celestial to tangent plane, spherical - TPXEV project celestial to tangent plane, vector - - Horizon/equatorial - - AE2HD (azimuth, altitude) to (hour angle, declination) - HD2AE (hour angle, declination) to (azimuth, altitude) - HD2PA parallactic angle - - Obsolete - - C2TCEO former name of C2TCIO - - -CALLS: FORTRAN VERSION - - CALL iau_AB ( PNAT, V, S, BM1, PPR ) - CALL iau_AE2HD ( AZ, EL, PHI, HA, DEC ) - CALL iau_APCG ( DATE1, DATE2, EB, EH, ASTROM ) - CALL iau_APCG13 ( DATE1, DATE2, ASTROM ) - CALL iau_APCI ( DATE1, DATE2, EB, EH, X, Y, S, ASTROM ) - CALL iau_APCI13 ( DATE1, DATE2, ASTROM, EO ) - CALL iau_APCO ( DATE1, DATE2, EB, EH, X, Y, S, - : THETA, ELONG, PHI, HM, XP, YP, SP, - : REFA, REFB, ASTROM ) - CALL iau_APCO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, - : PHPA, TC, RH, WL, ASTROM, EO, J ) - CALL iau_APCS ( DATE1, DATE2, PV, EB, EH, ASTROM ) - CALL iau_APCS13 ( DATE1, DATE2, PV, ASTROM ) - CALL iau_APER ( THETA, ASTROM ) - CALL iau_APER13 ( UT11, UT12, ASTROM ) - CALL iau_APIO ( SP, THETA, ELONG, PHI, HM, XP, YP, - : REFA, REFB, ASTROM ) - CALL iau_APIO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, - : PHPA, TC, RH, WL, ASTROM, J ) - CALL iau_ATCC13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RA, DA ) - CALL iau_ATCCQ ( RC, DC, PR, PD, PX, RV, ASTROM, RA, DA ) - CALL iau_ATCI13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RI, DI, EO ) - CALL iau_ATCIQ ( RC, DC, PR, PD, PX, RV, ASTROM, RI, DI ) - CALL iau_ATCIQN ( RC, DC, PR, PD, PX, RV, ASTROM, N, B, RI, DI ) - CALL iau_ATCIQZ ( RC, DC, ASTROM, RI, DI ) - CALL iau_ATCO13 ( RC, DC, PR, PD, PX, RV, UTC1, UTC2, DUT1, ELONG, - : PHI, HM, XP, YP, PHPA, TC, RH, WL, - : AOB, ZOB, HOB, DOB, ROB, EO, J ) - CALL iau_ATIC13 ( RI, DI, DATE1, DATE2, RC, DC, EO ) - CALL iau_ATICQ ( RI, DI, ASTROM, RC, DC ) - CALL iau_ATICQN ( RI, DI, ASTROM, N, B, RC, DC ) - CALL iau_ATIO13 ( RI, DI, UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, - : PHPA, TC, RH, WL, AOB, ZOB, HOB, DOB, ROB, J ) - CALL iau_ATIOQ ( RI, DI, ASTROM, AOB, ZOB, HOB, DOB, ROB ) - CALL iau_ATOC13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, - : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, - : RC, DC, J ) - CALL iau_ATOI13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, - : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, - : RI, DI, J ) - CALL iau_ATOIQ ( TYPE, OB1, OB2, ASTROM, RI, DI ) - CALL iau_BI00 ( DPSIBI, DEPSBI, DRA ) - CALL iau_BP00 ( DATE1, DATE2, RB, RP, RBP ) - CALL iau_BP06 ( DATE1, DATE2, RB, RP, RBP ) - CALL iau_BPN2XY ( RBPN, X, Y ) - CALL iau_C2I00A ( DATE1, DATE2, RC2I ) - CALL iau_C2I00B ( DATE1, DATE2, RC2I ) - CALL iau_C2I06A ( DATE1, DATE2, RC2I ) - CALL iau_C2IBPN ( DATE1, DATE2, RBPN, RC2I ) - CALL iau_C2IXY ( DATE1, DATE2, X, Y, RC2I ) - CALL iau_C2IXYS ( X, Y, S, RC2I ) - CALL iau_C2T00A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) - CALL iau_C2T00B ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) - CALL iau_C2T06A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) - CALL iau_C2TCEO ( RC2I, ERA, RPOM, RC2T ) - CALL iau_C2TCIO ( RC2I, ERA, RPOM, RC2T ) - CALL iau_C2TEQX ( RBPN, GST, RPOM, RC2T ) - CALL iau_C2TPE ( TTA, TTB, UTA, UTB, DPSI, DEPS, XP, YP, RC2T ) - CALL iau_C2TXY ( TTA, TTB, UTA, UTB, X, Y, XP, YP, RC2T ) - CALL iau_CAL2JD ( IY, IM, ID, DJM0, DJM, J ) - CALL iau_D2DTF ( SCALE, NDP, D1, D2, IY, IM, ID, IHMSF, J ) - CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J ) - D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V ) - CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J ) - CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD ) - CALL iau_ECM06 ( DATE1, DATE2, RM ); - D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI ) - D = iau_EE00A ( DATE1, DATE2 ) - D = iau_EE00B ( DATE1, DATE2 ) - D = iau_EE06A ( DATE1, DATE2 ) - D = iau_EECT00 ( DATE1, DATE2 ) - CALL iau_EFORM ( N, A, F, J ) - D = iau_EO06A ( DATE1, DATE2 ) - D = iau_EORS ( RNPB, S ) - D = iau_EPB ( DJ1, DJ2 ) - CALL iau_EPB2JD ( EPB, DJM0, DJM ) - D = iau_EPJ ( DJ1, DJ2 ) - CALL iau_EPJ2JD ( EPJ, DJM0, DJM ) - CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J ) - CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB ) - D = iau_EQEQ94 ( DATE1, DATE2 ) - D = iau_ERA00 ( DJ1, DJ2 ) - D = iau_FAD03 ( T ) - D = iau_FAE03 ( T ) - D = iau_FAF03 ( T ) - D = iau_FAJU03 ( T ) - D = iau_FAL03 ( T ) - D = iau_FALP03 ( T ) - D = iau_FAMA03 ( T ) - D = iau_FAME03 ( T ) - D = iau_FANE03 ( T ) - D = iau_FAOM03 ( T ) - D = iau_FAPA03 ( T ) - D = iau_FASA03 ( T ) - D = iau_FAUR03 ( T ) - D = iau_FAVE03 ( T ) - CALL iau_FK425 ( R1950, D1950, DR1950, DD1950, P1950, V1950, - : R2000, D2000, DR2000, DD2000, P2000, V2000 ) - CALL iau_FK45Z ( R1950, D1950, BEPOCH, R2000, D2000 ) - CALL iau_FK524 ( R2000, D2000, DR2000, DD2000, P2000, V2000, - : R1950, D1950, DR1950, DD1950, P1950, V1950 ) - CALL iau_FK52H ( R5, D5, DR5, DD5, PX5, RV5, - : RH, DH, DRH, DDH, PXH, RVH ) - CALL iau_FK54Z ( R2000, D2000, BEPOCH, R1950, D1950, DR1950, DD1950 ) - CALL iau_FK5HIP ( R5H, S5H ) - CALL iau_FK5HZ ( R5, D5, DATE1, DATE2, RH, DH ) - CALL iau_FW2M ( GAMB, PHIB, PSI, EPS, R ) - CALL iau_FW2XY ( GAMB, PHIB, PSI, EPS, X, Y ) - CALL iau_G2ICRS ( DL, DB, DR, DD ) - CALL iau_GC2GD ( N, XYZ, ELONG, PHI, HEIGHT, J ) - CALL iau_GC2GDE ( A, F, XYZ, ELONG, PHI, HEIGHT, J ) - CALL iau_GD2GC ( N, ELONG, PHI, HEIGHT, XYZ, J ) - CALL iau_GD2GCE ( A, F, ELONG, PHI, HEIGHT, XYZ, J ) - D = iau_GMST00 ( UTA, UTB, TTA, TTB ) - D = iau_GMST06 ( UTA, UTB, TTA, TTB ) - D = iau_GMST82 ( UTA, UTB ) - D = iau_GST00A ( UTA, UTB, TTA, TTB ) - D = iau_GST00B ( UTA, UTB ) - D = iau_GST06 ( UTA, UTB, TTA, TTB, RNPB ) - D = iau_GST06A ( UTA, UTB, TTA, TTB ) - D = iau_GST94 ( UTA, UTB ) - CALL iau_H2FK5 ( RH, DH, DRH, DDH, PXH, RVH, - : R5, D5, DR5, DD5, PX5, RV5 ) - CALL iau_HD2AE ( HA, DEC, PHI, AZ, EL ) - D = iau_HD2PA ( HA, DEC, PHI ) - CALL iau_HFK5Z ( RH, DH, DATE1, DATE2, R5, D5, DR5, DD5 ) - CALL iau_ICRS2G ( DR, DD, DL, DB ) - CALL iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J ) - CALL iau_JDCALF ( NDP, DJ1, DJ2, IYMDF, J ) - CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 ) - CALL iau_LDN ( N, B, OB, SC, SN ) - CALL iau_LDSUN ( P, E, EM, P1 ) - CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD ) - CALL iau_LTECM ( EPJ, RM] ) - CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB ) - CALL iau_LTP ( EPJ, RP ) - CALL iau_LTPB ( EPJ, RPB ) - CALL iau_LTPECL ( EPJ, VEC ) - CALL iau_LTPEQU ( EPJ, VEQ ) - CALL iau_MOON98 ( DATE1, DATE2, PV ) - CALL iau_NUM00A ( DATE1, DATE2, RMATN ) - CALL iau_NUM00B ( DATE1, DATE2, RMATN ) - CALL iau_NUM06A ( DATE1, DATE2, RMATN ) - CALL iau_NUMAT ( EPSA, DPSI, DEPS, RMATN ) - CALL iau_NUT00A ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUT00B ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUT06A ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUT80 ( DATE1, DATE2, DPSI, DEPS ) - CALL iau_NUTM80 ( DATE1, DATE2, RMATN ) - D = iau_OBL06 ( DATE1, DATE2 ) - D = iau_OBL80 ( DATE1, DATE2 ) - CALL iau_PB06 ( DATE1, DATE2, BZETA, BZ, BTHETA ) - CALL iau_PFW06 ( DATE1, DATE2, GAMB, PHIB, PSIB, EPSA ) - CALL iau_PLAN94 ( DATE1, DATE2, NP, PV, J ) - CALL iau_PMAT00 ( DATE1, DATE2, RBP ) - CALL iau_PMAT06 ( DATE1, DATE2, RBP ) - CALL iau_PMAT76 ( DATE1, DATE2, RMATP ) - CALL iau_PMPX ( RC, DC, PR, PD, PX, RV, PMT, POB, PCO ) - CALL iau_PMSAFE ( RA1, DEC1, PMR1, PMD1, PX1, RV1, - : EP1A, EP1B, EP2A, EP2B, - : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) - CALL iau_PN00 ( DATE1, DATE2, DPSI, DEPS, - : EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN00A ( DATE1, DATE2, - : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN00B ( DATE1, DATE2, - : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN06 ( DATE1, DATE2, DPSI, DEPS, - : EPSA, RB, RP, RBP, RN, RBPN ) - CALL iau_PN06A ( DATE1, DATE2, - : DPSI, DEPS, RB, RP, RBP, RN, RBPN ) - CALL iau_PNM00A ( DATE1, DATE2, RBPN ) - CALL iau_PNM00B ( DATE1, DATE2, RBPN ) - CALL iau_PNM06A ( DATE1, DATE2, RNPB ) - CALL iau_PNM80 ( DATE1, DATE2, RMATPN ) - CALL iau_P06E ( DATE1, DATE2, - : EPS0, PSIA, OMA, BPA, BQA, PIA, BPIA, - : EPSA, CHIA, ZA, ZETAA, THETAA, PA, GAM, PHI, PSI ) - CALL iau_POM00 ( XP, YP, SP, RPOM ) - CALL iau_PR00 ( DATE1, DATE2, DPSIPR, DEPSPR ) - CALL iau_PREC76 ( DATE01, DATE02, DATE11, DATE12, ZETA, Z, THETA ) - CALL iau_PVSTAR ( PV, RA, DEC, PMR, PMD, PX, RV, J ) - CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PV ) - CALL iau_REFCO ( PHPA, TC, RH, WL, REFA, REFB ) - D = iau_S00 ( DATE1, DATE2, X, Y ) - D = iau_S00A ( DATE1, DATE2 ) - D = iau_S00B ( DATE1, DATE2 ) - D = iau_S06 ( DATE1, DATE2, X, Y ) - D = iau_S06A ( DATE1, DATE2 ) - D = iau_SP00 ( DATE1, DATE2 ) - CALL iau_STARPM ( RA1, DEC1, PMR1, PMD1, PX1, RV1, - : EP1A, EP1B, EP2A, EP2B, - : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) - CALL iau_STARPV ( RA, DEC, PMR, PMD, PX, RV, PV, J ) - CALL iau_TAITT ( TAI1, TAI2, TT1, TT2, J ) - CALL iau_TAIUT1 ( TAI1, TAI2, DTA, UT11, UT12, J ) - CALL iau_TAIUTC ( TAI1, TAI2, UTC1, UTC2, J ) - CALL iau_TCBTDB ( TCB1, TCB2, TDB1, TDB2, J ) - CALL iau_TCGTT ( TCG1, TCG2, TT1, TT2, J ) - CALL iau_TDBTCB ( TDB1, TDB2, TCB1, TCB2, J ) - CALL iau_TDBTT ( TDB1, TDB2, DTR, TT1, TT2, J ) - CALL iau_TPORS ( XI, ETA, A, B, A01, B01, A02, B02, N ) - CALL iau_TPORV ( XI, ETA, V, V01, V02, N ) - CALL iau_TPSTS ( XI, ETA, A0, B0, A, B ) - CALL iau_TPSTV ( XI, ETA, V0, V ) - CALL iau_TPXES ( A, B, A0, B0, XI, ETA, J ) - CALL iau_TPXEV ( V, V0, XI, ETA, J ) - CALL iau_TTTAI ( TT1, TT2, TAI1, TAI2, J ) - CALL iau_TTTCG ( TT1, TT2, TCG1, TCG2, J ) - CALL iau_TTTDB ( TT1, TT2, DTR, TDB1, TDB2, J ) - CALL iau_TTUT1 ( TT1, TT2, DT, UT11, UT12, J ) - CALL iau_UT1TAI ( UT11, UT12, TAI1, TAI2, J ) - CALL iau_UT1TT ( UT11, UT12, DT, TT1, TT2, J ) - CALL iau_UT1UTC ( UT11, UT12, DUT, UTC1, UTC2, J ) - CALL iau_UTCTAI ( UTC1, UTC2, DTA, TAI1, TAI2, J ) - CALL iau_UTCUT1 ( UTC1, UTC2, DUT, UT11, UT12, J ) - CALL iau_XY06 ( DATE1, DATE2, X, Y ) - CALL iau_XYS00A ( DATE1, DATE2, X, Y, S ) - CALL iau_XYS00B ( DATE1, DATE2, X, Y, S ) - CALL iau_XYS06A ( DATE1, DATE2, X, Y, S ) - - -CALLS: C VERSION - - iauAb ( pnat, v, s, bm1, ppr ); - iauAe2hd ( az, el, phi, &ha, &dec ); - iauApcg ( date1, date2, eb, eh, &astrom ); - iauApcg13 ( date1, date2, &astrom ); - iauApci ( date1, date2, eb, eh, x, y, s, &astrom ); - iauApci13 ( date1, date2, &astrom, &eo ); - iauApco ( date1, date2, eb, eh, x, y, s, - theta, elong, phi, hm, xp, yp, sp, - refa, refb, &astrom ); - i = iauApco13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom, &eo ); - iauApcs ( date1, date2, pv, eb, eh, &astrom ); - iauApcs13 ( date1, date2, pv, &astrom ); - iauAper ( theta, &astrom ); - iauAper13 ( ut11, ut12, &astrom ); - iauApio ( sp, theta, elong, phi, hm, xp, yp, refa, refb, - &astrom ); - i = iauApio13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom ); - iauAtcc13 ( rc, dc, pr, pd, px, rv, date1, date2, &ra, &da ); - iauAtccq ( rc, dc, pr, pd, px, rv, &astrom, &ra, &da ); - iauAtci13 ( rc, dc, pr, pd, px, rv, date1, date2, - &ri, &di, &eo ); - iauAtciq ( rc, dc, pr, pd, px, rv, &astrom, &ri, &di ); - iauAtciqn ( rc, dc, pr, pd, px, rv, astrom, n, b, &ri, &di ); - iauAtciqz ( rc, dc, &astrom, &ri, &di ); - i = iauAtco13 ( rc, dc, pr, pd, px, rv, utc1, utc2, dut1, - elong phi, hm, xp, yp, phpa, tc, rh, wl, - aob, zob, hob, dob, rob, eo ); - iauAtic13 ( ri, di, date1, date2, &rc, &dc, &eo ); - iauAticq ( ri, di, &astrom, &rc, &dc ); - iauAticqn ( ri, di, astrom, n, b, &rc, &dc ); - i = iauAtio13 ( ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, aob, zob, hob, dob, rob ); - iauAtioq ( ri, di, &astrom, &aob, &zob, &hob, &dob, &rob ); - i = iauAtoc13 ( type, ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &rc, &dc ); - i = iauAtoi13 ( type, ob1, ob2, utc1, utc2, dut1, elong, phi, hm, - xp, yp, phpa, tc, rh, wl, &ri, &di ); - iauAtoiq ( type, ob1, ob2, &astrom, &ri, &di ); - iauBi00 ( &dpsibi, &depsbi, &dra ); - iauBp00 ( date1, date2, rb, rp, rbp ); - iauBp06 ( date1, date2, rb, rp, rbp ); - iauBpn2xy ( rbpn, &x, &y ); - iauC2i00a ( date1, date2, rc2i ); - iauC2i00b ( date1, date2, rc2i ); - iauC2i06a ( date1, date2, rc2i ); - iauC2ibpn ( date1, date2, rbpn, rc2i ); - iauC2ixy ( date1, date2, x, y, rc2i ); - iauC2ixys ( x, y, s, rc2i ); - iauC2t00a ( tta, ttb, uta, utb, xp, yp, rc2t ); - iauC2t00b ( tta, ttb, uta, utb, xp, yp, rc2t ); - iauC2t06a ( tta, ttb, uta, utb, xp, yp, rc2t ); - iauC2tcio ( rc2i, era, rpom, rc2t ); - iauC2teqx ( rbpn, gst, rpom, rc2t ); - iauC2tpe ( tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t ); - iauC2txy ( tta, ttb, uta, utb, x, y, xp, yp, rc2t ); - i = iauCal2jd ( iy, im, id, &djm0, &djm ); - i = iauD2dtf ( scale, ndp, d1, d2, &iy, &im, &id, ihmsf ); - i = iauDat ( iy, im, id, fd, &deltat ); - d = iauDtdb ( date1, date2, ut, elong, u, v ); - i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 ); - iauEceq06 ( date1, date2, dl, db, &dr, &dd ); - iauEcm06 ( date1, date2, rm ); - d = iauEe00 ( date1, date2, epsa, dpsi ); - d = iauEe00a ( date1, date2 ); - d = iauEe00b ( date1, date2 ); - d = iauEe06 ( date1, date2 ); - d = iauEect00 ( date1, date2 ); - i = iauEform ( n, &a, &f ); - d = iauEo06 ( date1, date2 ); - d = iauEors ( rnpb, s ); - d = iauEpb ( dj1, dj2 ); - iauEpb2jd ( epb, &djm0, &djm ); - d = iauEpj ( dj1, dj2 ); - iauEpj2jd ( epj, &djm0, &djm ); - i = iauEpv00 ( dj1, dj2, pvh, pvb ); - iauEqec06 ( date1, date2, dr, dd, &dl, &db ); - d = iauEqeq94 ( date1, date2 ); - d = iauEra00 ( dj1, dj2 ); - d = iauFad03 ( t ); - d = iauFae03 ( t ); - d = iauFaf03 ( t ); - d = iauFaju03 ( t ); - d = iauFal03 ( t ); - d = iauFalp03 ( t ); - d = iauFama03 ( t ); - d = iauFame03 ( t ); - d = iauFane03 ( t ); - d = iauFaom03 ( t ); - d = iauFapa03 ( t ); - d = iauFasa03 ( t ); - d = iauFaur03 ( t ); - d = iauFave03 ( t ); - iauFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950, - &r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000 ); - iauFk45z ( r1950, d1950, bepoch, &r2000, &d2000 ); - iauFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000, - &r1950, &d1950, &dr1950, &dd1950, &p1950, &v1950 ); - iauFk52h ( r5, d5, dr5, dd5, px5, rv5, - &rh, &dh, &drh, &ddh, &pxh, &rvh ); - iauFk54z ( r2000, d2000, bepoch, - &r1950, &d1950, &dr1950, &dd1950 ); - iauFk5hip ( r5h, s5h ); - iauFk5hz ( r5, d5, date1, date2, &rh, &dh ); - iauFw2m ( gamb, phib, psi, eps, r ); - iauFw2xy ( gamb, phib, psi, eps, &x, &y ); - iauG2icrs ( dl, db, &dr, &dd ); - i = iauGc2gd ( n, xyz, &elong, &phi, &height ); - i = iauGc2gde ( a, f, xyz, &elong, &phi, &height ); - i = iauGd2gc ( n, elong, phi, height, xyz ); - i = iauGd2gce ( a, f, elong, phi, height, xyz ); - d = iauGmst00 ( uta, utb, tta, ttb ); - d = iauGmst06 ( uta, utb, tta, ttb ); - d = iauGmst82 ( uta, utb ); - d = iauGst00a ( uta, utb, tta, ttb ); - d = iauGst00b ( uta, utb ); - d = iauGst06 ( uta, utb, tta, ttb, rnpb ); - d = iauGst06a ( uta, utb, tta, ttb ); - d = iauGst94 ( uta, utb ); - iauH2fk5 ( rh, dh, drh, ddh, pxh, rvh, - &r5, &d5, &dr5, &dd5, &px5, &rv5 ); - iauHd2ae ( ha, dec, phi, &az, &el ); - d = iauHd2pa ( ha, dec, phi ); - iauHfk5z ( rh, dh, date1, date2, - &r5, &d5, &dr5, &dd5 ); - iauIcrs2g ( dr, dd, &dl, &db ); - i = iauJd2cal ( dj1, dj2, &iy, &im, &id, &fd ); - i = iauJdcalf ( ndp, dj1, dj2, iymdf ); - iauLd ( bm, p, q, e, em, dlim, p1 ); - iauLdn ( n, b, ob, sc, sn ); - iauLdsun ( p, e, em, p1 ); - iauLteceq ( epj, dl, db, &dr, &dd ); - iauLtecm ( epj, rm ); - iauLteqec ( epj, dr, dd, &dl, &db ); - iauLtp ( epj, rp ); - iauLtpb ( epj, rpb ); - iauLtpecl ( epj, vec ); - iauLtpequ ( epj, veq ); - iauMoon98 ( date1, date2, pv ); - iauNum00a ( date1, date2, rmatn ); - iauNum00b ( date1, date2, rmatn ); - iauNum06a ( date1, date2, rmatn ); - iauNumat ( epsa, dpsi, deps, rmatn ); - iauNut00a ( date1, date2, &dpsi, &deps ); - iauNut00b ( date1, date2, &dpsi, &deps ); - iauNut06a ( date1, date2, &dpsi, &deps ); - iauNut80 ( date1, date2, &dpsi, &deps ); - iauNutm80 ( date1, date2, rmatn ); - d = iauObl06 ( date1, date2 ); - d = iauObl80 ( date1, date2 ); - iauPb06 ( date1, date2, &bzeta, &bz, &btheta ); - iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa ); - i = iauPlan94 ( date1, date2, np, pv ); - iauPmat00 ( date1, date2, rbp ); - iauPmat06 ( date1, date2, rbp ); - iauPmat76 ( date1, date2, rmatp ); - iauPmpx ( rc, dc, pr, pd, px, rv, pmt, pob, pco ); - i = iauPmsafe ( ra1, dec1, pmr1, pmd1, px1, rv1, - ep1a, ep1b, ep2a, ep2b, - &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); - iauPn00 ( date1, date2, dpsi, deps, - &epsa, rb, rp, rbp, rn, rbpn ); - iauPn00a ( date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); - iauPn00b ( date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); - iauPn06 ( date1, date2, dpsi, deps, - &epsa, rb, rp, rbp, rn, rbpn ); - iauPn06a ( date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); - iauPnm00a ( date1, date2, rbpn ); - iauPnm00b ( date1, date2, rbpn ); - iauPnm06a ( date1, date2, rnpb ); - iauPnm80 ( date1, date2, rmatpn ); - iauP06e ( date1, date2, - &eps0, &psia, &oma, &bpa, &bqa, &pia, &bpia, - &epsa, &chia, &za, &zetaa, &thetaa, &pa, - &gam, &phi, &psi ); - iauPom00 ( xp, yp, sp, rpom ); - iauPr00 ( date1, date2, &dpsipr, &depspr ); - iauPrec76 ( date01, date02, date11, date12, &zeta, &z, &theta ); - i = iauPvstar ( pv, &ra, &dec, &pmr, &pmd, &px, &rv ); - iauPvtob ( elong, phi, hm, xp, yp, sp, theta, pv ); - iauRefco ( phpa, tc, rh, wl, refa, refb ); - d = iauS00 ( date1, date2, x, y ); - d = iauS00a ( date1, date2 ); - d = iauS00b ( date1, date2 ); - d = iauS06 ( date1, date2, x, y ); - d = iauS06a ( date1, date2 ); - d = iauSp00 ( date1, date2 ); - i = iauStarpm ( ra1, dec1, pmr1, pmd1, px1, rv1, - ep1a, ep1b, ep2a, ep2b, - &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2 ); - i = iauStarpv ( ra, dec, pmr, pmd, px, rv, pv ); - i = iauTaitt ( tai1, tai2, &tt1, &tt2 ); - i = iauTaiut1 ( tai1, tai2, dta, &ut11, &ut12 ); - i = iauTaiutc ( tai1, tai2, &utc1, &utc2 ); - i = iauTcbtdb ( tcb1, tcb2, &tdb1, &tdb2 ); - i = iauTcgtt ( tcg1, tcg2, &tt1, &tt2 ); - i = iauTdbtcb ( tdb1, tdb2, &tcb1, &tcb2 ); - i = iauTdbtt ( tdb1, tdb2, dtr, &tt1, &tt2 ); - i = iauTpors ( xi, eta, a, b, &a01, &b01, &a02, &b02 ); - i = iauTporv ( xi, eta, v, v01, v02 ); - iauTpsts ( xi, eta, a0, b0, &a, &b ); - iauTpstv ( xi, eta, v0, v ); - i = iauTpxes ( a, b, a0, b0, &xi, &eta ); - i = iauTpxev ( v, v0, &xi, &eta ); - i = iauTttai ( tt1, tt2, &tai1, &tai2 ); - i = iauTttcg ( tt1, tt2, &tcg1, &tcg2 ); - i = iauTttdb ( tt1, tt2, dtr, &tdb1, &tdb2 ); - i = iauTtut1 ( tt1, tt2, dt, &ut11, &ut12 ); - i = iauUt1tai ( ut11, ut12, &tai1, &tai2 ); - i = iauUt1tt ( ut11, ut12, dt, &tt1, &tt2 ); - i = iauUt1utc ( ut11, ut12, dut, &utc1, &utc2 ); - i = iauUtctai ( utc1, utc2, dta, &tai1, &tai2 ); - i = iauUtcut1 ( utc1, utc2, dut, &ut11, &ut12 ); - iauXy06 ( date1, date2, &x, &y ); - iauXys00a ( date1, date2, &x, &y, &s ); - iauXys00b ( date1, date2, &x, &y, &s ); - iauXys06a ( date1, date2, &x, &y, &s ); - - - - - diff --git a/deps/sofa/20231011/c/doc/sofa_lib.pdf b/deps/sofa/20231011/c/doc/sofa_lib.pdf deleted file mode 100644 index 887f8de3883583e01cf58b12eda5b9abff5245de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23708 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�)KUj8e&~haqpWhgU)tIk~geg+T@n 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 NiAh*^-yv0|{{>xeC1d~q diff --git a/deps/sofa/20231011/c/doc/sofa_pn_c.pdf b/deps/sofa/20231011/c/doc/sofa_pn_c.pdf deleted file mode 100644 index 180b33ce4764c2174ab2ef03d19c18de43a413e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054150 zcma&NV{j4wr$&XZr;7`Ij6qbU)4STx<=0)J@E8U z&q?xISd@l=mKl;{_#!qRl7WRDpB~@Vzygw+n@-x;#?;9SpMizpho(R$YHsCZ?0`=v zYNhXFENpCOYh=vJ3+d?OV61Nq>6TfkB4dj!0)NQeogd2-dU;t^^+j&O&d?{05JYXq zk4;UsCG57pqJwmM?aso)weHUn242~~q`mq0sH6P2(YiAV@;*6TuHF3QkJx@G#5RW0 zy4}_ub0m@~*IGa6M$buD4FQ>P9%BLmd*SHJ5kI|Z?XpStIam|Ho1|9g%P0IK!twmB zPr@5n_FxNom!~rN`B~G)3WX%wCo8d`3p;BWURF8QPVj;Wm9nr6OGOMXIAX36k%(D| zSus;B-wM2i}=C1n7z zU>ya?C*^&hRPmdWfk5$GEAVe4tn~+|dj!=3)O5x|S5MTgCD=(qhfztinUpvb( z`^I`;LJi0lQ(cL|CJiz~dKMujh*aniO#$V)7XT`<-cc1xS<)ibi=lqvN@_;1gn*+j zI8S3##+_-l&GD+~>nS~G?p(VE^9#w<6*PZ?65p>Y z?h5eb{z&9`WVexk-c~HwhQxbQr&S1Zcp5BBRuU8?0v=ATa1iF9V^y354@eTbp?ny4 zzW8tgHXoBll^UMknc#Jp%?Rc?T49R_bT*ph$0FDh@W3!MuD=(|wHwmk`}447`5XSUe z2E!71C&&*FqWK*5FCXS+ri`~wgw7;Sr9)TfHncIMnIGyGPgarln=FucP-a$4^z5sH z9lg;)>1ig68Y^^8m!H-jh$xkws;cp7XmJ_BvMUM+~aZpM6A% z19v({4i9aam=%uti#d|^ELf%}%m;({#ll7bsu;L&8HA|yI87}W<(c>jCS}}U_`VJt z4|-}NZ>_+Bb}eHXsZC|M(t<$>YvP`M)0%lnFjJ&ZGL99PBC+}Tbc#6YRVQpv7a?u@ z_fNBoJ~hJ?+HPpU&A3PlFXVFMjp4h?3NNI0WRHNGJ2EeAUnuB}@%vk144?Cz4}uNa zZpn@J5}WMMqh&qUu1e;g{i8G3Nl&U+a8R`7g_Z7}V}Y6sux*IFKv^_7rJC^TpcV4j zTW^RD<7cu`d{A3s8>9dGY5!dP6A=C#2L8F?U}J;)FCr`Zf5r<|j{i-(I8 znXh5nrTMpmf6^q%=TZ=T(!;Uyt@yozZFBfD_m*BZL19y@Q-+A_lb>rq{j~L6kq>=; zh&}Xb+^1%f%nj~g(FLpHyGu3If+!g?5N*>tLYwy@y2x49)psaGT+oe6msJ5WfJX*9 z>W+D_9#Z!y{fN@?L}*ph;^9y6dXGcbWyDpR>!z^pZFgSx_EYCj!0Na2{i+52>6)wu z&xv~j>D2iohrkWS!^-@Hl-VP)hQ|`3Mdlnkj6VPD3`pl!bcpW-*fLLvy(uzI1$kK7 zX4CQmg=Ns_afdOd)2ClFT7C8`wdpC3lkNhHoF|j3YbR6B;C((0EG`C_=nX`ZH)v_O zL4zNw!jusO1~4zNoLgGdFZEwKuM;_DNGC>}YN1H8Vs(a2l93e05Ezwke@GKJ<@jxJ zt6950i?cIXI?kg*dXfJ4t+SRJnu*Pw{ORQYM_vfP<&$I}e^d8mb>P5h9kF(lBPOSKU_a0W8L7 z&avJZV7cRLD^nR2XOv7?=9~Rs_MSs3<~E|2&QZGqdo(f^SO@v`+3kib)??WFP`Zpf z5#K6vQWc+G)e~&?qG$`uXQGQCJwyE@FPed(`-e?)8`VY=%JxSc5Jx|SE>8e06LAT> z1?K*PLtj5R4xb`scCS@4Z4xO~MbP|{T+NFqz(FKCQ8Ulr3B)wDYfbuHY8WXaL zr4HWsL~;3!J-YbURiY=JWnCp7I{=Z7yp?ctl|I^;Hp*TUs-&sj?(Ekl!bH*ny9{9L z)*vh+OOHy4H?(MQ4xa>VZchOy@nP~Nzj>5-_e=F0r>J!kplo4ga(u?5-0Nz{a3nLC z3X5U?a6nB-guX)$gU6#N4(~6vzaxy1g#VgZl86_v1VHP0y^rQr#RX0jSLOJIAeo zc{H*+#3ew++8tXZFJADoXuV##P?g51sJ+@pK3*0CajZQ;&=&@+moLi&2{GYa;nN#3 z;R`oYeF{`Ett$GG%L?Dj1T97(TB0T-UJ&AVLru9d-@sLScMJ`#NnOlg+jgvtROiTODR=Dw@%T$7@F*v;cZpRBl?s zQ@mUeKWZ=fK$H>8tp65AnCqchw)R%-?l&!`h0x8o%E#W)Dy$V0=%3TSG}bzFD>$rE zSsy6F+K)Bq06)-N3oNyh2k@OuMUr^+mGH} zY*|vxKuY-VwL2T-;1V$>#^TWUJ?f*TBd|?R_xJZyW z#T2D6IN#c;0^x>EVJmVf-MJEDLl*adOPf#j3k79>>Y~6rD43Gvnh0TB@-_^JkI*(> zaKMlZsyR@6V$6iW-9Z``4vWY2B=w@_8dAX{cE_#(o%I^3^|SLIQ_Ldev{A`RyLfia zsZ5gvi@8xUbKkO*K^67V=O(VU(=KZdnHX*{DeaA?3iHheD#6MEe1)Kh1ngyxLddNZ z1~(d|&C9n1RQ5eEp9dvkk8C9i7+G-ynaXgF#VAU{^L*8fR8NJlnAK$P9wvO&jv+|b z&SEEQ>&AEjldNXoxU-14r&5`%?Kkq~HuDnXc0|aQd+?xr_YAvrT#y!9##i8tD8$c} zF7oZ^*f_D1IaZV?cT0%?Qad}oxZZtx!7N%fNlKO(SM`pZ2sfdsT9hcuJ4Hne#BHeE zhjo){spNnQe4$=ztl&UJiri=p11vM@-~t#&4<#GfJD?nOsN_o7gw+cVTY4MXlc_fK}{%5{XD( zQ}QeTN&>13`n_xlj8PWJUR3GjA}bcXi7+~uyz1V~*Nf8YYK67|^Fc?gVNS;s{b#EZ z8Bk~8iZqjc9u(4&YPSvyN!5{792BS!*@a3>94U%0fp@5XhsgJ8p6q~mlkcIjA@*aj zq4~BdzQldMAYK{sivP1-`d1nBPrby*$nrl06C3M)7EEkx|C@s8GE?1gK@@&?`;+2H zzRV!_DBGQxn79xKa9t@_@~}6AUjf|_B;M=Y>3QSMre=TjBEqV5soan`eV>ho$G7om z(*S$LV4(Zv^Ww4hlBoD)?=TdYvr8{h73>;TZ3RQ9Y%mK++Kd_-bK_)X?_dxR3JtxB zUIAK^R#pe^V`1|$rS2W@o9DvaH2_QZSt|QE=Di4aC@%WxIN|!_t7<|;l0zJdBZoV5 z!zZx3kE|FKiWH21Wq4uyj~B&)UNqBJS^FounSRv8)`Qh=QN~s6hX9x;^QF(Nd;P?X z)ho0W#`InlcCKVozK3yp_)PP>n=RcOZ0;cyOl0J%&+*4eqt|qkxnwwvcN2rpIeYO# zVb^W8rT8^5C$UcY6~DIkGSkfj9Rov&Xc(-u$&z+FOpX0UXotGFq{9y_+bY^(1DhQO z1*Mo)P47yTQco5W+e`dZN2tn6J;kpwtlZc3ngoTtS;m4bG-%y=F~q za(`mNgpdC4Y>1Y-`m5r{!2mQslJ?alu3v|x-P9?cEVbiFlPUJqzx(@uw3*etbBOv=Vi~~F5$nLsDHY`Xkbl>MF9k|aJy=Ho|I-_?;11=`(X|X$O0=UB0GE|n1YUY zQoC(W9Kkn~FQkM1S>mYIs8e7|)>s(ogD6u>CSv&Ts+7)%R93?vN2ZZ72T#S7Al~_8 zUi0`plvBmDF3(OOD&vM`G4YA>K50PpWIwJ*9lT<*2KakPe)XQLv)DAf`tgfit5d7V z?5T^mLRr=;um&r}_44DESk@W0dvqigc-H>AZtAtC3}4bjW|7Gz5g3(EtAO-0H?QlN zgg11up}z%WFzzn1vkCDRxW)Oc%(CNC?~z6{w+@*ax9^119-7nDBArh=mxOKw*^rbj zG_DAVJ7=8&uF)!Wz9ySE%Ovjp{7{jx{xtqns4Z7Eh8ZL3%CVhU>)IQI`zZs+u0?|b z&dC*SFEXitS>h4+2x&`|48Ye^q=D%5@vv1{r0g_@0uA-{kLgwxwfQhAYq~m;Ty{Zh zcKjeKDh1`Fn-l@*1}7S$mkJqXe7Pvdz6m zT;J*#WW67qAhO*(5uhGoL0^3^-+DTbxu2M^ zGEkSfe*F(F&MyR(BQSY*W*f(PemBGlVs_)jtw+g?WTGe1LbZJ2ZWxQY;4t^sW!p)# zOiz=U7sW-V#0o`DQwiaNh_#bBtT-&>1*8hwSAsKfEB zsM_A5x5*f6#H8Xqfp`*-B}|t`;(^4QGUunh5Myn2=6wRxCg9kTT#uu=Ta$U#Fcyj1nFT#dZbE0)F{I|_&_8bjx zsvm3aU{g-(@4@)D3ir58u}R|K2CpR(2IAzf@_G$K)eF9Jw2uDbGMI*;JhoR9-r1%# z9q&8?7En#eFuq|_#*RveqWQ9XSwrOgIE`7D{2U^RL>D$yki4LP%n&(2uU)uiE7R>H zK*yImQaFjQXkulPVlH#ZW!o%5P96-Ww451|YF;Jmx#~mR1r7AL1eD*NIWQUrqbCf6 z6T_jkBD}h^;)>Fgx%1fP`k(2yGYUItzSahp>QmUob5M~~`SxXnUlls#OP`1@`;$4Q z_OuDOc&`aCFPhf54)lil#pJ2-zPPe?8INdyCGo&*_9E-k34={{w5HT!4+tX8+Q|C@ z?XYrGdzKrI{VU%{-ZQ>h$(1}rdutXg6KMkXm>fK82lP(y>b0D*J-xr!4H^}5Bjuvm z!Z3Jc#8khqQP|<6W4+=6V9Mrf^z4JH$?wW+P58`pRoyh&A524r<;(BKzHzI(Iyc5e zNMemi<{DWw9Zf0!6YhQ0)=q zk$ar9UocL(Es?>^mm)iDGqft%5Pj~fQ`Z(JqyLQ+O{|$ZuXv1~$r+n_j1DH+pBhIm6L) zqB_-j#?2||q^AkeAGBIxC?`!_F4sm}?|*LG9p~fX zeZXWhHe&y0Mfa~d?OzogGXwj7jldWg{~34vL;atTIV00QWAy*$$ow)(#&Mk$KIHlh zg*zTBPs72eZs+~O(l?v!%9v$aRb(NbO~)1BY_l&!FM zDjb{O!MwdSA!L(1Kd85Dk~%;Ar_ks@(JbqiEFYTVGTH4gcBFK82R*|J2enV0vd(r& zH(Ecjv~`dE2oQW4mb<FheG?brLfkUeSaVcEs6_FBzElaiN z#!IX&)OrtQjN9lSzkj9Wge~a(wYsLKa!N?i5KT+9~jY62p8*(s%J8{7? zfCt!VP~38m`~C)NLv#c3Us;P{0y(|PFi8d9=Zp%RNi^cDO^ZV#4H2~RACebn8E3m4 zxExk01kE+8AmqCz=ODZ58@K_hnrHyYyJGd7Ib(jNWF+{Z^@LUqt<+G@ZR%fxIDqwa zL`;PKSpVW@R?$Qy?#T2qQ-}TED?53H-U6syfwzr6^qa|d03OQm$%aOL<%XsJR?>hw zVDy~ZuLe*1xS;F~pzq%3Tly|hN7}Jn6us$wGVlgid!$K?a{MDBpVi^?S-`Ipz=>zv zLK1eo2UjZI5*dGwq<@|RHyHP6THs7Un7H2_Yyl^-^mW-{CSzszk(EEpT8Gg)$l#Rl zX1$nfF`mVpe6%}F7&sHG)i%!jhcl>v)$3~F+wl>&>>)a|f4`R5QI?}Y!avRnTTy7B zV40Z|@LIHj$rkRWbeM~>L#z!p-;bJ;N(spvK$q+ipyFd{a_UPlLk%0j9)&{cCu&l$ zhRkxh55JvUIfBhXGv#qI_<_R2Jj2Bfilw4OQTzCAd%cy~QV1u9D0|3Cmw}K*+WvC5 zs=0MGB|AE_HZz{d*WrQC4?do1+QMm_XK89eHyPj*b9FpV4$ybe4GxjCPx3MpUsz$X zg8Leye|!#0pu#_kL*e=1aO05%0WR zAj7al*@n&(uav6-4!97Pq?;cTq8lV3S;q$(A|K^>=>lW-clyTt8ygiC`BL6a*g{Al z1#;1|$Ez7LZX+h}nO?&4;dE#orOJ-7hJZ!WkIj&~_*xP&m&_c6Ph9 zLY9&_8ARE=R^FJCG|sv#ogUBw@GKbI#R9BtFe4b1E~-2yApY?Jua$DTmq04luN<+y zV^!lTd#oQcl+P+zlu-3H)4yhe>ekj@F^~!WnB}GB(2TNS{&Kawb4M_PbF{)E6PXBG z(2615Ng$SspWs20#|?nc@gEO{u2?W9VV*-`8&m;=zAKwwRw0=NC4|uc9f3AKL7|#F zG}BD{#0YG6{cKnRxN3+HV{aROL9P0CdIHd@iSWs&A6z2`d$&O;yXACmiUjn@b75Fl=9ZJ zm%m9gi&z(y&UfEFmuF0(O_QwbZC+>W-U>$Kur*_0TrcdGN6@*R23ud?F=}s0)OxnZ z-NI>THf*IWp|xjB!X2tEE~RW2eRow_wMwyND`|RmJbO1D^{P0pp3Qa zD80(ey^0-e z+>8#uqu2amjXwS00NQ?j23T0t!{mc_e%)S5>IcDQRf7#=qU9aXe|4zS(GDxT7fqKi zI@_qFbY`}9XcfoX$T z%fX=5vI%U@(@`G@aLw1lUW)sl)&2NQbcg|SY3;*$YtedWK13n<*3+}l@rGg6aliPs zv$=!_%s|);PL@S+#_>6VSL*caBnxDF;hRyhDV!{uV@&>F3t6#{hRs!G^wMYB45tu~ zYn;ar(|9qa5Rt!V+gCE5nZRQ=k+H)LTif%TF2@lE$^Cr57hNmEuU8v(0}M3p3UpWW zfc;fo>Pll?Klb|xU~um$r=v2vLUQfyYGYA9w3*ON(09?(ejXW|-Tvf#m;=9^FD+@@ zI1aKOn||m|LwHm-?16rTl;hc~;Q&4)Y++d|{8$uV05|;BrVESh=9$%+`AhPi-s|!> zkrZ1(@aN`E|B`lx@|!)dw>z5674ks-r44R68Oo2~hNioXsMTrvN45Q0&!QJfjvFi` z0Y6f6StSiRf4)g+pUc!(_O2Y}xhwRNAqC+UiCmIFMk%snG1IvV(Qgg0l%Y!=$z#^E)S0oMjVK4Z@p5m#Q zB5;H`0=mOv(+za=6!_Y65YyG?GljL={3uE6w(Ste z4e`g7z<4hA`YhG!951;#Z0#PKRbGEGd96H`DRtOjcpH`{t8|*raf!v?+OHcc(S3a; zU5((p+bH2=)6jk-1+9I8EqC9{R*@ase)DV{#1`AOu;0fZE`if@s{PXHz7(nk+Ikrg zVk8Ux5taYq7WI4%{P=~-YXPNdn@a~UHjcvaA9;OoeWnI2nwpMJ4J*HfyiV@FfXOS* z3<@Tpel!nU*~_U+dRi9)t<4EaAAbM1K8M@`g0CIc6TWT1;gDuxj1roiux|Lfn-Ja$ zuNjLvdBtk?0_Px$y0|Br@ozDe&CL@-HhOlt;p^AK^c>}nFVp9Lln=yj;-vYp)5|1B z&)x)hL3b&F>mev9V*#G6!C|E1mZUfpU_R&FvWQ zVniFt&@&AcVe+RPjHuX%XKE^iW50?+;0I&$2IVV(&Xr$5uNbawCcZM6zf7iJel!YQ z0W!$6Ju-&x@`a|;p5StCF#nNV0RE#h#48p!EUu|`%1s_kA=_A zL>w)DHZMlgq%2@x6DH6{{$=@((h4A?G^IHRx7U%}Y&18lb$<}yI7`DKG0D9dl65-bW6)=Jc+iSQ1Lm4pT;C1!vVgSYm6Yu2TJJek zUmu+-9p_uVbqmSNue!kB$o<%Fw$)b>_@rf5onI#JWB*`GSZ_dtP91dD7Hy34oa&}; z-k`M~(w*^5b)x`Wk1XQ&(_HGiF5Dja`!P1JUN+V$Hw%u7v~GCkx^>K)Z92Iz>_JL~sfTPSN8at+r5E zP4`Ro{&)lU2ugkYhok@PzJFZG#KH7m>7I%CKX*bfG5@c2LM&>iJ0g!F_^7gfU>!|v z!WK7Q?c4YA*RUR?d*8hYpovk73*x)HK2J@IwY7N?ufPv*g6GN0IV-CirKIVaEWSsl z9*FMneR+Re?SvlBl}(nzfjxK;v328i@csD+-I32|=fXtaokbQ&%-9?U9;H(wAw^)_ zIvLHFyxQ#b1?5=#zVgXeefY_OSS2?}l?;HxHjP;Uu|D-&d9#`nNjaIgxY3#n6evNk z{oP^=?j#+5`fWDSC0g+>ZoC$35Cw;JA!1-8$t^>Dd(;ergNFHHA^9}eHUdLsJ!xdP z1lonUL^NbI$}wjTk#_+jsy+*oW->OrVO@O5(geZ%T*lm}*Amlm& zWPGrbviLhqUaXbu5oOzU?G_XtIEQu}HYm|e6N4H_N_o*!nwK#Y&n4E;@1As`G(*=I z$P*TF?Q)EOf_qr`dKzl#LXs}*Kn-UJ38Bee*1)jAu1A5^a);pd9a*eCx$bAH3WGME8z?E0KU?wH~` zon-|vcKJ{ru_~hKI>zpZHg~e(mKt&3c=eT|ZtPb?>R}JF9fC;psO!fs$E&5ki7ijG z#ZHPIzcq&a$IK-~i=QByi}c#p@L^GYaeJUGI1vHU`)X6&=G-jJJRm{OU1#w38f zc_e1JlCTuQa%S%~hfXV*LG_>au~#PBHOoZ?34Aaw9*iLS4Im4WtpdVnbYMM<%GW_Q z5bG>hREblpmP=_h#Y8`4EjV@kjf2$|)4M6dDR3cnIRujccGetjo?MJTbai zdX%*nqgw1QJ0?SH{VD^f8+aWw-aSiGSk2u&779a>5N$RRiF5{*d1lctCsNMil4n*zI|vt_H93O}id z4F(N$nt1-k8u}2#K{JWFXR|yb;bPMIJ=!I!%ErPKJ~$*aY*OYy<;`L02C5;#m3{<$ zOlJs2^8)f7b#yCx8!63czj9Ks0kYu%0`_lHNS%H5^0pvRzsX$QN!BI3zU^92ag zj@}1{xTnx9G>lvG-wd1Axs$soae;_ErzE|Cuk`LI`nA7}H)YDFqdLu%G9k?3Y0ML^jgkk0LR zyK|&Z(WQ5^sD>%>aI;GGfc(Lq+A$Uu zEM3`QV{nPa83`#BP_TkyLG0Gw3nb$Yls{{?);xiPX*q3olhRO$T=5HYtjQ7~H6UFu z{F4Jq@qtR|m^`@G3~{9W5__LkfqYEB8g;JzD40T;fwa`Qp%9;H5^W(mY9G`i{nB%T zfZCI)#2r>a0wR(Bg10RK(kiM*Bv{e}o%6|^5QYRyGe?L$7(l{7GjRVRLf7x6-YC;|wI#7nUKB+nR=0fhMV@&d-ky+o}>m&-nPe{AaIA z2>IZ(tHV;)m4R?l6{QnlobI4-%8Zi>=TT>s4&*CYD1Bs$39qE_vcd^pM{RBc@#C6Z8A>X#MThc@dO%)i|yQt_+i7{f6Kf@B)j zto!$@97u%+KbfhN*5&rE2_UX4ODXaRCDb693xUTVA-o5{)xL;Ii~j0Fv{{UZN`Why zU)6~;RzHT!BNxGku{?Ga(?YC%cCdObvFjs2#=S4QbCPLY9*n~453j;p??-koA8Bm+ zweNI9PDy7qa=oV;|E4Ni!#=>SVKdxCes%?$u1Vujce}n@Tz08%OiF$A7nNP9AF^qZ z*}UMs#XFC;JSV$sb0_=V;9&HKH@x;|g5i}3)q$kXP1Rt?GgIKuMS5cfXd?L(x0yJOXDMJ(Ua}r83gx&t3q+Nc%n7(_&PJ^Fa=X zy*k_Kr4tHR;!0Vnts*^coF&OAnL=vG%6_I;MQ`=gw#%#? zhN(?%HP2v|r9E|+I#P(>oV-@J&KFZ1V&)8FaWtLTkebjhJcltbS=k3@g?sQ8r1x7A zEEUEf6*|`p?*X#fl8F?FPB2Q?mIS6`5S1|{s{O@1qyE!X+pl)Ay+ zGA5bx02wgOBZ+H8aQj+Y`9hmjMh^>7oxQ-Y#R2&#^?Y0n4$NGw?}?=Y=oI&A-%|m~ zm>5))KoWqd+27Kb+pf@M&HI-JRcCPCx?th!gLky(xnRL9xqf`Fq9s@D$wTj7!LZ6X zubzu&|2AQ1UI3Y;iRQqFSEV(G`QOJ+p1fP2QSeIc{(>W_lchV>8>6VFF1?4^^m{x( z+m6H=bfrR(9jRSrtHIPt0p=;1=OK7RTynX^>Y9-C)wSuHOA^TWGkRV{$9TclY!jd^ z`6%&hJE6R(keFufkd9by}hBoBXFrSVKj;ekoZFkPQ^zno|UI#cg2+g8( z3Xqy=zTC7hy6WkQ=<&wV9IKS;o9GZ38N23l_s;!pvCS`uF>A14o0pP!q)6rVQ~nNL zVL_KV!LQHG)=mN?I;Y5Snu67qdwPgnm(`q);FtTI2fwoFO1ZtL2H`EDp;=VaAA9xE zPA*;|Wvr}4OVwRFLw+jsr$J7oH*Ob?@i3>63XT2@3598@T2=|$uFLVa+X|^sb6ZEa5s=6_t$nNdcxx+ti%06LfC6i0 zEsIvA_WNns@+q5UOH>vktl_F@A6;$-_U&u*aw8)tD&L` zR9}0xRG*YF8#U%oSTiS9dE!44qo%N-_bqQ=O?XwO)erR< zaf_pzK333n@V_HlyQN&6>LZ$u3_U&*UoQYG=CGMA-4SFxIbl$E{&gwG)tIey!AaSO ze{~62jqhhIu^V4Ua9Z2~pFCM}E$Kw>+OSg%+w&-xEA+wFMX+}naxd|MOEz4)%h#Zk zM-^5md7swJ0X|(zOg^AX!<(jixvs%1z#@N)*j$U-KQ+TdD~{gchb=95yx8$o(^+l$ z&*to3J=edQGbRrD|L)FM8UM2jXZ>eD`~U31ClzIE7xSLgrPo zv}tsD!|<#&^EU}xzY;H6uRu40a@>H@<8s zx*$tm7f`hx$tS_%kPB8VQh4e&A&&a^>-qBI4X0dO{d!0GaJxhK11wqkge3f)rToG< zrwv?U$S2W5h!Sh$2`a88;n5V#%McKDS_rCCKSu-P`In?x`7ks60(R({g(=MZfwtIR zn(K0{zNi)E!EF0JS@LBXr*1(&FfL+9XLPY@)tDgpl7xFsjYYG+nXkk3@$5hcyEb*(yZKe!MnVz_6XcFPcVPv#z1JU!=Ph}+T4~Pf z-C6H{Gwk$KL~^M+KC zXae}-b942OP6D)se4kzRl%D@xD)rcylN}KT9DePtpIImcueN}Kww$lSFJ{O%;_D_v zN1fZrf>#Hp9{?Eha~D`#570j7)s6_JlNQdW$A5~~!*s19q)R`EaANCW)OHg0=yfXU zRaWB@a0|{{%OuUAh=~AtDptS*1}Gi&THlK50V{79{PMkDs>R{u*XDdPmzx>77#nS< zW($JpOMnn$sOrlbR7k2PAS2Dg6^fU4 zPAJnXn+JrZU#or&#CpJ2iay9@OYd-vg!e@{SAX7JPi-jImA>|5rz>}ueP$k>nOy)V z89a8Fr#9MeGw(aeVK+Ay^6GsN@&af_a$dpizkvgYF%@#L%WMVYJJQ+F-qcwVA7CH~gQ$Bp>?RRAmPF(QMm%h^ zpB-6WJrtBeTOgmUb9)xdmHnxZXEs$TMHkNd64)CP9N^`@2d)H_zDta$@L$SAl~a8q zswO-$&31R%=PguYj_WmCZjd^fYm9*(uBmye#O;z^S2h^E*UH{!0mhSI>ab5yUnJ+0 zyWXp@1FL4b1V-&XV}bQ47+_N`=a-H|>cq_b4sV*+^|hmY*&)N;laA0Ka!{8%^T<05 zM;=b9DdfH%tEjbDSL}SDxq@FB+Q!a;GJ?$3YmZx7H1-_5LF$iheg{Xr8!kAO*L0Mp zK$J_UF~{VYe&W<5uZID-b5nIxRCi*x=}vBJ69Q}>`|$5}d;#&H-2s6-Dv=)+)!v-R zVDE6LEJwIC_BS3xBUX@|E(ml7b-e+WB3$n}SsMbEWbKOQ}SmeT3!-138zO!XTRHzzfE zqZ#`eWf0z=J-r#GM*2-W@4iKNBIg7j7LsAi^$H|DKUa#7MrUtul=Qn;Tqju>2JEvs z4Qg)zggkylQ|>9*NvdJ`jRE7WQqUg{_^OIB;35zjTg4o{!#)f$Hz{HMK7(|DVl9kT z-MSr(E}Dewh*kMTLjaZwm45Y@b5@SLA$79ZEFDe6vcgdZ@kvR=PzCE2YqGs;7PCY- z#L8+0tFEE4OC7kli?DL%{qC$h<_@2||MI}AsnKCSq8N}! zS|Qs*I{f!hqFe$?<)c-E4bazg+GWAsmsBhgiq^?UzBlUcKV5kLC+Cz6Wvo#XBTTCc2Thzj@Ngso)&|54)#0z_aH zL3)K4b6iqjrU2gk@*Dh_Ebd&jvGLEOowg6Mo0Hd2&dWQ;KP8p>VPsc5S}(7 z#$sA?0H|hYMJE_yXZ+*p7N2S3Q0mQf;PcAR-bQKRV6GAT*Zywfli0kci71ewPK!!= zL`&T$%_4kzm2I`f+g5V=vOUmcM#^A{vXp|Y{fvsoy5pa-Vt+Oy7DOsQG|4x)FwliA z2IKsDpJc*;dV3~)_Cr`~cEq+~Pp%$Vd)6`22jm6^Q4*9clwXy|0Sq@Rg2p~XmwU?v z0ek7@p!U7h<_dr?_jUpIVyQj!nmy&tYr zB^E(mujBT~?;;b&0*W<2^{ea-jgLqCH^EEnmmsEjMx9{=md@-_L+RU!p`kld|N4>` z88iuVnk6j9b6w;%Tyg2DWmc#N(Iqw6X+FJlT5pCLoNkgB^wejRGYIgWI9s9{1G)5k zO|+?E3g)_eoVR*-hF{Mc7MlB+CU=S#zpPwofEjgZajJo#PGlW)nnuyzKj*inEx9`Z zL_?OsBQPi{8q+NAj(ljQy%1O__u#atk+BdBw6M`+Xy|nkW z1L}oTv&zL$BhNahA|pA$pBe%LZL7{{I6;x=D(;p$H1hms#+IU?`UEk9i1^D7sYJe; z6NK-xBMHu(8x%0GjkZc2!yZy5SPKhm!dUr%H?^y3>W2F#GtJejes2_cQ?~V{qFBI8 zTzP}4P*Mz@V`oFjllfT2+L#uScA?=$z0wwAgBD;SXrmZ)X(auBAmdm~OWV;>TF{bj ze<#&O`dkE--0TS-s=L%o7Fs1RNyHoB5Bl7x~=gKE8> zuMY#PCzdM1iP|V@gKX0U8zr$W1>eG#>yK8v<^{!{X6@y^{NIxEpQRdkax znV&dK=-~ALoqf+)kyPRhm!@djAnT$jSB+PK#osU(ZOr#jX+9EC$#IH_rie{c;l|G} zqi}2f=E4Syv%XE<8LiF07hvKV~002&m^`~TW z^;GdGG8p9^i?6mz6mD*~9vHJN@``z1RGdRE%N(C63-ZQn%Pr@NM_@3L1~ipZi_StfMy z9ED%1W~qTvht%eeD=xH@Th}NVuQ&&&rth3kdh$f@fVR{OD~W~J)15`M#+dF`F#8Ch zgsvm+SndgZayI9}814{P$ms3>`3a^OTM)F_XO?Fw6rwX-Xu2hs<~xN=dsa$d-2#af zkZ_TXlJ-eL(L|dj9J9A#(gpk21)n1>>r4PBwj(iaX=u2*YX!{p<_EN$Zrho_))SxT zY)S!fh8i?>o;g^}s_IxK(m;5}xqH==*~<@e+eFnv+o&G<7`QAH@AmRt{nl2 zFw=S*{PgsY;uzPcoXn}}fl|#<9pcamcm4~l_y1w+9G^RZ!Ym!zwr$(CZFX$iww-j6 zUu@g%*tTsao$cAJ+1aYu5A)^z0k`T_-S@obJf{fuNuPCyP-=`}T(JKF<;F3t(@i#; z!$r>$4Q|ZMgKaA4uocVi!~X~FlOfg7Jf&hCZWUMOCj1Gp7z>WRc9IGP`!$;yPkOM3 zPfh~tlpPWWAEa8^&JH44+hOY!F(Is%rf82Va;q$Wd({5ZzG7n*7^$}JneUrzg+j=9 z2Gw&m&QzT@JKRfg{^7TO_ITK4kdoDBlC{mySsQhZU8!j$3d3NGWj3#A`ALJqsv7R_ z_T)F4kzYwe+F8tocwQ>M+V5X%8JW!^lPY6`COKK3bXNFO3a1}|qcgHjxFg)E@z6|J z`>u++_<{u#-df-Jbk%5Lp(@O*me9!3Db2##FG%G@o2lRY?SCw({143Up{KPrtaY=! z@L7%WymPdfMiMcc@999(dx zX7eAZ;Rf3YIzh8x`FV}I`D6Bz0jh>xA73dhskRG=%_)%7XL{t4X!N+5Gn;?va#8#W z<^2uC`P3WY#CS$SHna1=={$Fz-r94C5aI^yN)ZiyvohsF;*Q%PhscrVw#O!Y8}z#N zWT3%}3gDLdAy!Ev%9tmG2e#TfTt2pf&%rHC^1Q)Q|Lh!`RwVLIeeF2aBKBU1t6%UR}jL$Fjd&5tqzd;IH4| z8wj9#=*FK_`!2Mgh1{XEn3=jjgtX8Q9uDHaMEJ((CMJo*z(TiE?7?gjT&!X zQB1R|@-d3O{Sdu803jf>WTK_;2TK6A#~NcYfocG1llx2VD; z{aMT;bf!w8j2VPysN-wtl!r`r{9Ly4!t}*E2K{xChfO<8#ClPit=&teN!$754Ot_w zE(UFA#5<~{WOU%gZ_5_~p+HpXkbrhNRirrSG-pDVdn*NQ9#|Dm(Sw*c1aGV1!%#_f zaoprZ>OuqdXNP{ZeWD7)z0>WVR6Y^uoQm4 zztq93<*-QT|I0CpJgAKO&UU)uOrEpn&3yziH+5$eaCKsnI{#$_C|beJfRdjA(YmZ5Zg_0JgQQ6;3a$80j!bSu{ZJ&hSkKhv7; z{0&r6cO-2}67sHhLN3)BBfauc>Uk0tqvZo_*6B=p{KHe(?@Agw|NFv_+vQ{~Z0j$Y z*pC#Fw4VAc|8(4zx5?&+%NDiS7P;5F^c8QrnM!}rfVHf>d)J03Uz%Uz=m@sML@LyQ zb4SD7zMZ(8`Rtq$m#Jji7?8uoN>|c0LQQ>uS>)J+G5TB3b zFi^!9=vMJAzv)aGCNScdZ9rlvP2BgYTq7_@K9|1=0w)7rs`HanOuf8ZkI_!m*&jyYX_0$1DkkU_d`vZx%WY) z`csQdsi1OO?l17q0!UVa88xNSYC`&!CuNWFv5w z8{T}+2#)>Y*R#_X{~D?A#c+oT=ZiuIhU{U1GtX8Ky;BeK!FIGie`HEAm7OPRD-g~< zhVdy{DPn!sDijBB2l26ZD&1plU+lL|l;Td+7eVwHpxn@26~09=?bXed5G6fPR|y!{ zt;0i6w%KqKFMsP-62tcX)YZs6zyB_>WhQP1FOr&v#;_JGW8A|NrB~X8oUev0L>zhWi_OTksn5$jH5;-!Rmo9h@gMGH3ev!I(amlB~ZM-i#ViSk|k%n(--jf;FCW!j=aA+^OSi$Xr_zU75;RH_f&)d zbyvX+&|2=unCKN%OKGcVQOymAIM(WxEH`n(ScvztrPCVms1pWSAU@1|? zmOt4&#n$jT=IUu6>FcS&JGtmZy|@qW8=zg_?1hI|XT@Vo)gnFm!g*K!c+WN~`)xkz zWJI}flX@wd&O)%WOuX;sISYCI#^0Pd>vk4_`Fsh_$Gdm2^0zQUC?ptIXp_&>;jbjC zNz<1jEFU^fdT(DqD#MOBz{NAZ4-Lt9I z1&}e}0#mLFvT$%q|8tr#8V)c+T-F7-FIkXJ^=82KOL26@j9@l};?v@#X(*wj7AT%s zL*Jj#yH(mu7+a|Y?8n8;>DlR&cY(~^C`wP5b3O%8+sEqS!R_!CZ_!8Dw__*tcRftD zSV#UswE3&w+*=>@1`6V(34%S98TGj7ELJpmgM)ba1AeG7C3G0osCuB>%1&SBnMDCK z4*lMji&DC?vr77o#U!mCkUmGH6>a)R(3wVBbM|;8%sU6wtQSw5qrCxEBbju%??gx4Q#Bf^)O$ zXAtsjJ4jBHuKBKg=b3D5`LfXR;?KgbO|-VI%bjrGVb?mX_Yo^c;5dTw<+7U7~1d1Ca$(l+eb=gK+^8`fMWc^BR zEGT>r?ePytyv75A2e23{A)I*8MM5|~=e?5@xGZc>{jJgf33dc`~6@@bFh z3d%oItJ`c}_wm?&o|6T04L&WA$CLz3^o5+8=Mv~9ZB>uHj(uFJy*g=G;nHnDc46P1 zAxyu`K?=AB<5fM4D8%Lw@6-?VFb%h0 zB}#un`G2d8B)K)jx3`Mu=2Z?EmDSl(sGgSdGkS7g=8Z0MkPi58L}S-Q>v8tLtPm3L zePqn|kFAk?Q?BcEV~@VPWv)rl2(iFCUvYH`k0!~@vnIvK=Cvx6BRB_l3~daC%564G z$4}8RSh}Iz7QP2&k0!)i83(LX%-sx__lrEMnAy~`Tr#IA*0(ZG7hN-3;D=~`XdbCf z>bbFK?U{S)brI(Z=k@KuNL_L6BZ3*qBh@;Q( zv!B`t4F$u65Frjud2vlEAVY*lE!k3yg6FEj7E2?3$Bu+1$$rpI71nwWMPkoHA~Em2 zW=xc(3btA8+*8n^6(%7tw-D?FabzJXk%rPl&(#vaHZ%Rk0{%q5Bv?)S#f*Z|FzmJ9 z9LXDNyoixZ7k8>{1-?cHvDz8iOwg$O!0LlJ|HWwsI}*YndMAu|P{}?-E)OGDuu!SF zxfNAXZUdl)ejck2i4v)0Ry$`_?vINJjT%jSpctn`0c854&(PoawLW$$jtPa#nsW@XBu>IG>_IUvf$mYJi6W@+>^B@xCjezprXWS^9pnqWh2Hx4 z!Tk!f_aMe$qQ`)mB`)f_9ww5)Z_WI^tVB z){$guFVe(oPaQo$C$9{xat%(ic=?j)p?NIC>%`2aQtIKKf$3`FY?J;M&Y&kqeVmTaR3izVy+l+NK~3(gR1dw z&}J89)!9ZNfHYa0JvBv{B|DS3L`=M>{zM}?_47TJKF2c>Vkzd-jG(RFvCPiMXzYCB zM^2I83`$;Wd;XK_6ul6u2oX)pIVpVb!H z6#n$ofc zt$Mb4<$y55Mv>33{cj~k#)0>(Pn?GK;e3m=*7hlBq7%*rxm3Z6~G~?6}71yxG z`;KHTMVl?kCi`>C6wALaSWM?C7v6hD`K`pb8Ux%m>FM$@D?svLdaAD4uhAWp_y4gf3_Q*ct) zR&vzNRBR!@RIo5XDhjY2sL;5Cgs8gpr&UmCJnK`mq1FdW-FjDMs3PSyb3_i4uH9^# zWy1~8^N^zjWQ~a`rDr4WFEwgV&mjhzOviGk7hNI zuh~s0i95nghNC*LY-<%By`a2-v8l)?Xa~A zYE*rd*3$(DcJbJ*t1qsX4krv)eTpJTKXB#B-gsi*lHjPfqKi-~3&UBOoAB(A3BO*` zHnhjG-gTXITv02pn5#vniH>$zB44mKeBgTdi z<|T`(o7QJMujK+QO*pm6Cus;|=L3)Z0tsMrn%}J47Pc*@T+NhR#rEv2fN0&ryNvyl zOIfeHOt74=E>NZ4T~VMyLDJ_#(^?Jn(miFR?Pyqqn6LC@q92O~>Y>Jh#;I0@y~vei zQx&c{>R3AC66>Eho=QH|I~gdjqP%n*J5IA4V@ef+Z|*Zw#WQ|U{;+kkgHhP2W(33) z_JuoP(u9*Y_CK;{ZjL?&Os+HaHEGjgDH}G$Sdn%W5X!}yr+w!&Ot7z-mbhdG7e(!YJF4JKuc!g!fZR;3o;WDY9Xrp=0v@_IMQN1E6r z>?4HGlyMJvm6TzVgls?<1Pz>?j=558pg!&a&!RdgwVF9s2Aro z$lu*_V?@GAs|2m#h{Z`wH&h__@=fnryZcx z==jBe^uU?rYq57OoMl4R^%Mn8Bd64|0d&K!02|J;xk+Xajoahkae+?Y0llkx%*ddnx_bqb(0=S+(v*&or4hw$ zXwinW7%NH1Q1e_b2@YU0Z&JvMR=cPZ((?pG{kn<1V)|S0>P9dp-rpIZ^#{9L;4ut) z?l*_{h3JP!HTp}tnm|768(>$#oG&tACZD7eb~zy$eBAiZ=*RZ`(<_ zf}#ogl8zLosOhL5Hx`0La*c9gr%F`iKs<%jwCMCE6jQx#P_8Aw+J zm%WOm4yYlqWXAm36+s4b(INSOb(o$-BWC<7+z<)awU(a1aEYnix!q~CV{In-gh|wj zHgXlO81X$ff(zAQEswXZauz7}q1*9WIe=)FAp*_)vB;pf>NZD$WbCK1w{ECICD69q z36tY^Mr_V3hEt+S#r&Eb$;)&_l!aW?iQBKj1IJa%8A9xyW59cRY|#n6=C)q>f`2nV2P+)Y$Otkl}5w!msa8MH3)0bkMT`XyYyJ^1rrl>^&hqO}fw{GGHt z72!f?AXfB}fOqi@hzFJUGLg)Z{IQ97j5<*AP0v6B-%Y1N45ncY*(s!d-;py8jF6C z)g(U@P8{9VpyaRokn<9;5&{@d;?hSEvzGjOS)%WphPQofjj6-)Mh0FP;qv zJ`XW;xTo#a!xJh)4;;+jc{6Lz+;-LlP^zF@+u}4=!}L_L!s%L~&f&h#rDtu7;Zn!0 zt<%h(b_vK6zh@ybBnf<5i2EE$(EVOe|BOHi2lK%i5*Med$^31i7C>u0rMXp#no^d9 zhIdi1*V5ZzZAiErE`tVVg&y4ib4;(6jgw}`x-vWe)M!XghJInPX{FngGHx2(!V^$M zC$7$be;k2r)Kqbiu+F=*e#siqIUV`aN$hV4eo@Dz~(SR z=47})QSe?E2S?i5o$(eJN5*VJ^B6=qoo-Lj*!MrJ|6HtFthtMW$kyabv7#e+rzM(1 zmB`J&;X8SrL?>Hm&Q>AL5e$U`6&klZLQIpW}S+8%bv8TqJZsHl{cCTe2t6C}O1n)+rxulU2x6rE4p2&f>LF z@@t_2X0M!bKYV_R@)W3dfE_TdI1g*0Ke(%10&vxi$6FYroVG;3FAm0bsw30D8_JQ~ zbp3+*y6>{{mWj3@Fd@f>NT}m%#Wav%D!vqnTuH2~`oIA0xb-na8~-?b;v;s@OPqud z>Bo+UYPUR@(zoSHTu%g=%8VEIV5`73X2|NbPYd{AAmkua)Om~QaOcA{Pe|UO^gY1Y zo2^pn_g0Lp7{Aod;{0wUCVOFKmW%Oa$gw{Yyj$Hm~Uv$8YNFif6sBfQ$ zqAN*@vHMiD0EY^t{!E~F7=p$BTOwV1Ux$S5xp=17CT%qv4VWvozljX=yz<&W6CHyw zX>^;IF`VP2^komAi+Y&WN2mula*-^2L~47 z@Kw`Nye|_hzGnM9YS?_{wGp+WXUpo4ER&q|JX0AHAXGfjvb@w3#veZOVWV;fvJG-k(_Xae#bQ#L%VVu| z<=308xmqX>R{1m5rx*0hw+qa&~wHZ{em6&^Fwj+6Yuo)K_C6lOw`u||z zD?J}};u3~!TC(AEV55-J@THbCJesGGefGCtY4cS-(E>d4P&<_0RFw zN9f2OuJr7-qOl8nwr~F3fDyKZ$DeiMXOnD^w_4)roX>RgXP>|Nk}RO zM0?5OMN09sj_0sRevWe89;)_dAiKF}%bdpJE(=-G6%?B$CE7F54b|R?p^(|G4*UJs z!-j3EBI&s&bC~XqG~%`Wo3SHQ*BJKIdh~TPdE+RweOF^lnG`H+XCn4>Pe&Q| zhHL|oA`6tV&BfGm5ZyXH!d(ax z`P=^ZrmL|6d|!gPJN)!Zge(YTbnnwkwBFNn#WAcy0CIo=><)+5qMn@M-p5+r3>u3S zXH+spcAaD);TKHmAsckI0`0KV9nF512Mj4xgQw)^XWcWd)y3oDS}d@Q)l?YXykGpW z6-Ug+OL`ibVd59aQ?e2_=z^I~qo*Qj83QD1e;-4BAOqP+>HhnE;Qxm7 zIheTqD;~i8A6%CIaB=?^!;6)h{eKh>(3N%B8byA|ayrg@)L;OnF|gc8I5OjQCh1VQ z4^ijV5>QGNx6dM>mT9d1`taokonlMxSJ9$RQ=`Fvg7fz7{Ji|@&Gcza&eMVN)c1FH zF+&ouH$$Ul#(=QoleXjI_-r}p>Idn&e0j(e=M2=|OUjbDqw$+oA~Y_QevnJY8<}@4v~_HRh4P>5X}fGg|Ese-~9g zj&yN(E?pl<@#dt>gJ;thneV7mhhReSEsmMIYU0c}V|V+dIXG^pY@V>Di~a|0H&{NzJ|%Y|PoDc;eHoWTXm5HYm6Yy4&nPH69*2@|29$d(c4cp;>~Kh7WiXD|!0#pc02QZ8W2- zoB@2DT&?(@8Qww&`M+}{pq7N&fDMe`MBIo0K=othGCg=)3aGV+E2woYwp9-hn~qNa z(Ol}?m*<=%=5UaZs`xgmW%Fw0O#mzo{qk6lgb)*CT+i&6p=cI*pg^i$EES?3RhK|2 zy2_U?74G3vkVpsEG(n+Wb96;=s1!vo+3idG5gBw$b3~F^XoinWc2Fp?NitetJP{K8 zMI$^mYMt&n@uSzWUK@fFy)fB;=6&rV3LP37OhQyn(u`+oycuZSQ?oNO!s8Rny58{3g495$|D2QrCzdo0w`HiH zfKc&7CU&6d{4HK-`V{ck27-S1^IhT}W*7Z~!&0}Rrt#ubC1h$0ua9Ou<}S_ZLQd8} z_XU?dJ!636!s@groEWjN1aqY;N-b%jqnN6c^;-TCy)1wK3(N4 z?C(qZ1?L6P!%!k^Mdjc|b)`o0st;y8T=4uybJ7Yi5a60HB_)8=5k%$$R13@wYs*3$ zsE_y^QoE$JHbBm*!muREY=soT2L1!e2@2u!K3T@|npj%8Zp}au&1w^BTJ?*o)=;A@ zg3M~)Xh%-=PP}@O#vF5Du`(@m7Y&pA#$ywzr;eF6I9OTqByS@c+bzwC5UghhHCo;Q zDXEeVgSW18fjOEwsH|kWTK)uHo%6DWpf;7InsM5$3My4)pqlro?s=a*P^2VgV}ae< zS@`?Xs*3s*Vly{Gy7$bcWo24hx%$t9gY3p~9gV_;(00~SxRrj+(ZdCrZPQ`PE3^2E z^VsZIv66K~HFhc#HU^1@_8+xzq?H=DQe1a4=f5rr_wnb|ETt|xM%HZMJK-l@9TV-# zi?}F(uRS;C#iTD<`K%J|9wE_%2=Ix$EqTs9Tz$T3hEBpBOk~C+bxZL9tc7`n76Fb$i8FIhH*Z{W;IPB{&H9PM?Hc_^Kpr;7BdU`4Fldf0XDp`-Nxct#`9`C~807q{`=-5)+8*^*4qKj4JW|dMOq5>#Z#sHujvmTHPA{ zYe}e69s~*h?j~mL5K!D%?)rgxY8dl%Sxks><`oSLJPg2#P2NlE;)SGSq8lH8uy^x$ zH=|JS)spKe6U8*!*=E#VArR7^uOQxBJdSRF8I2Z_AjS@Ma8a(f&50?M*WT#%-AD!F zlg=-A)oq!%?ek$#$TEKgcx@oK>}G|}F*4AX(k3K&(DhsD#*r)!e}6UzAfqcApSO-I zh#f(h;>cSSM9{o;nXHFx*w*M}Dk%6Uk0)0BTZ5Z|gn7OVQ%5Wmu1|h6F&ADRT(P5; zdpqeiGM$I2NwBAxw`~{irh&NMfz(W4ux`LheOT5bB@%Dg=iVFS9Uz=ff}JHvfmA%1(9Rsp|TP6N2u9Lq`z zbO)?#Jc$DFm>MG9W`w+>B>XJAlzovIoJd~r8>#X?_z5f^!uTWy;Ma3ZpICGC1ia&< zLc8{FJy{IAy}NlkqYRYJZCzQ><)mNSF$OB3?apPh`!uebF{!o_dMLU&Py z(3B3Ex%Qn#SA|+j)D$Vt>AkQ)w+sqpw@*4?u+5?TjOSNA}N$?-8tb~%wfWw`S8hG%)_lShQ${)ag=3A zU4_D=b)mlEG9g;h-Lk8*373>?mUqTN!$^r^Q3?Z($fxs+%mykbVPn53TX~NKN*GOu zClI8B96F()FkB9zF4$wvJd9$|0bwc;0kpe!z4_3Th-ID+J{_>`8rT4hTLarll+$Mp z)UWO>dBZgCArzu>H0jn`EH4;sAaMKsz%+ZPR<2;sF0TP5M-9d-NF@+-n4qQF2yHX} zCS_!^$!k^>kcz2@Utk@`OW^pHJ0Jx`E=r_x1&TdtLqS%agWusvMgQOhZib4=I$9#6(n(3 z`v={lv+6M`N+uJxS_th|_+|%GEdZCjm3z9TwAs0Q$m2B^h`>u8YGB3Rg39irXJs`i zdBmW(nvX8&#I!*h*tIDEjJxT&H_!nJOpAgZZ=kT zKf3#)3R@OrImf(A^MoA}1+8>wRK0VebY|>Yj&z4L@LI2SM-hr-=;-p|BhdWk$r$^& z;Jc|t_^w>BclUYKC*&y>D0nf@phsV@R^!H)&V_ib>MK4yPq}ztH^&Y8kksUYmg&VZ zx05>Nyl0Ye-v zo4(5HeI#U5pTEf*w*aO02*zOsmad+r(ZcnpKd;BX(WF5Zpd>@wXAlSE%-=9(9ZRs_ zMtpo2=!8~)8w|o>1XXWdmRZ)F^yn@2GakxlV>q25oCQ%$#7x>2TN1aA#a|BmX08UU z8Q#^8g<}UEyt5YyQ3MF($e&VHvfC%~%ZMl=xe~TVp6c_U8JGIuNsc-Aqr;RnV*gl4S6qM7mDT!-0xGm$- z`mtdMiCc9{*#0RNg}nCNKx=VHhvyNm#Sm!my={%lYG^pWBt;siG^F=8ec@EA*fJ-R zavC&z|3GY6v4?S*%k5xMQs1;+1KKgvGgBm9jrhxHHv!l5d}-ps5k-NqQ(ewyC#y|z zN}^uT%*Z4E0s)-Su_%dv#hIek!k6C!@(O#50~`nYE7acKPCdGan+p|*X>f3hH#)nh z7;E~JeQKt1eP^c%1nbrX)MsemH^)@-@FXj#l&K}( z-VnJuMQbh+K-zS?{?DSG1hvZ@pGbvZ!#ct039igC{V z`wafSC+q(m(dXji_)m`>8`FO}_x@`JXJh^!akNMDWF7uh$<1Uj`%V&P7&&ACcNhB$ z9;AFpiI7H_<_IISBF_QHPz;j1by@@bdM|FWYS;7jtObQXcns!Y@Bvqp}O3-FRsgI1YLlOUZ!U-Hte$4tzIiU ztJKuyE(iq)J67v@%`5Y>)1-}MXU&|`ix~5AKCxZ+qdi4hziYtcY9}CMc&*lMIcv_k z(J3;ihhkIrf}LbV!{`T^+TdP9(}DS(2hx*tV#Tr?@fN2>@DsR-H4r%F$klz5LE=*h zjQ`f}nchMPfTtAiElL9Txn#2EVQ%UW7N)9u@K&5H)3JDww{E$tOc1080Modhubc+~`h~OEt00nm8 zZJDG|8w)giD&cL<_a{;%d{A3KC^F0@&XTIcrniTcmYff&gYwiSTRr^z%YvuOrt~LY zu`Og25Kz-Y5g{n_!zw^5s+CP-v85JXqU>p(w& zsAMVX!tMKB9{3)2dlO(((Te#O zMA4=q_MSZXw~SH3R+<~TuZQr8xR?Q+_k=1Jp>yO#uo$$D=gRavAR6VC?{W|ggMduW zJ+BYAR@oD&XgxQED-cAuir)!HSe+TIuYl|K-qb$P^z;Vm#1q#ShQN32yPe!)CfD8O z7&;cV$O1P+q0BF6_wo*8Dc}*{AUMtE!XVb$h%~2|;_~EtC(N z)1X?1>&Shv zfPtCiT~UT1eG7PS_oxTU@{#HlacR7xoc?ToULUNsEy~9B7#t+7k`PFv^x&A8c6DLX zU6_a;!Uvy7F@y2ZkLN*Vr>Ug^no@lQjs~~+_>*WC<(hsI0EvZ;;)4r8N+p9V^CBXp z#sZ1ZrhBlpCQG8Dr~kS$x6;HBmt~(Tqwn`;aeR~+cQB?R;{)aiVD`-l;BdUl(V)F3 zcri1i8hwU!;2fZAh47P|qzSXAaD@0r=`r$ru|ZeGRQ&}T#oW1uOmH*vlkeubEBgSc zjCP~|x#qA^BgbZ6p=&IgD`hFfjU4sqV~PG8&#xvbU=4Fqn2WGddq+Hsq;TyXNsL~@ z+Y9^@D?>WZI1j)s5%;Z#<+9S3&h$`Vmt0h;4h|I@&{$UTg_*dXehM6(uV~yEaezRi{|AxA|(1`c!1AS6)$K z2Lb>A>(Yw;)8vr`^B2gdGm@uS5gd5#19bx257V9pv)$LS4IsVu9ORwTQmP#D3D3&# z3&0=GY>@+&&ND7CV85C7sf)4UuKUPH#z z2b4=(_?9>H+T`dD2g90an~i(fpPU5fj$)d1fo{)O6PSg6Fl{XLzI?~$hFNuE>J z>Q}Ei2G1282rAC2FnQiL$Kk zDxCQAyP9hUT}$Yrq+o?Zug&g~7;;qlTl{@t~`1b}V(**w-QHXCn0G4ylj7+G{=ug1D$l;)8`g2rI!U1Uwmi z4{GBVg#7RKdXJWA#24{EUacSvQBW|@mjmUI<0r26d*O;OZeT0)r+wgnJ@B4#(rv@e z5X?Eg9ao7S3$YV}FA^aEvc*$_sXC~4;7QhwwD{Bmkxt}mTS~W3)cF!_!tT7#iXyJ& zQ1r;9OTK=hCi{aMCrt0Ft{bh4LJQ{X8=+vo;RUeM?|$N_+uVl5+b@*!6}znB)bT$I z7W)G6xA+^0*&Wf9AD=q`xMKL{Qob1N9Ph>Hpz2kQ-^P1K#}v634Mu2N@r#cII`Dlf zNrY|s=_VW5ewez0<(Yr4`=wh-c%{ypY6GDYKr6CVg~>dFHEE$KZ@Qua?5IU(mijQ( z>3U{}k)@33bCgOe?$2<-3Vs&SABm!(L!>zg@Y-J}dhJyaz(V-TIN8e|clCBnvU4&r zPcJ^O@!w1dLXA5wK`zCyA5rUc&>MgNi=6a%7+_TohzV=7B%Ej?g_P33+vyc=K-mPz7pgCu~=nW6fe{?B_x!H{|)r`|L%n zGZp}Y$h~rWhV$P$Bh^S#LDq@3k>BH5t%qPTO;w#62CQ#yXtNQPXv&D#caaiHMN)@Z zzZON8xRUR5auTxs*cYr0)LnwiEMgSPX@-7+r}{-K4G<|a;8Q;vHdatc&@56rysL?i zArLeHw}($$z^!7Mn;N(GB-;~U^zS5d2*-rlakL$JH32By)@^tETjFORtm4KCD?K9; zLQX^yNtg9k8UPN$9^dBL)fx?Jrf>XN+QcewyDa3rWbFg!elGHa>TPI!#)J~$5#1g zt&>E#!Aak8IS)WB7s(!}jFG-zi|e8SIu^vPv~&>A(KN0d77+(7#WO`+jzW0VWh2lN zjbUdD-me6g-BIF7W?Kx!)IOB&g5?|E$?1tmZvJ7s+_y2qsRV&JK%WcW+CC~Zkvq4;Q8a-uM+sKE50 z&j@Q1x&g~1Vse!4H8QS8Lo`Qf8h)^@FbI@+b4^A{z$co$YZ?BlT7jyL6cArYU6oMF zknDLZm*WOpd^aWx_GUxyu+v_2B|u2e2fex-5yYmeqijRuEfD>cbO{*6xs^tuIXn1U z+lCZeGE`ub&8qvLhHR6zd~5nmSZ#Src7Z{44wMaA_>H7%BTImpAaHJ07hR&RY<6fP z>c>WggH98yrsFx%%MwA3OUd)qmcrK&v#mdtr|$r9>Pe@!e=%atEC*T7q^od&c*d- z6AM_gp`1KEA?A=2;%X*Wo3+R( zx4o(}(t~(zKi6Cp@mR@}GQ9m`9rMmNa{Fw1%FYBIf?#XJ4f+^vo=qNzKHSW+&TXK$ zZyoXUFs#nQAlS20s-6`RT3=2PwPmM~wYp$4Op4r#f8-y9zh8c-wB;1}%6DYIPp}S! zuq4n`;#v%Ijx@tOIpuDlz~|8W#DWcn<^RroYPkF1%SPA3d>6)UWiqa(C}b1eeur`s zgHsB15KMcE+3p(cIjSre*bqx!v|ez#G#++Gn_iIE;Wo+)gWzx<_78W!uHiK$>cZjI zRC^gPBOd19oRQ@jRk+}8xAPp_ibiObP(e#JlZ)jXam`YIg1O5ixI8@NTYq->+mXSx zG)_G*#k@LLbWR~_74J0`6u-F3azB(ah~h*Z;a-|If8V`d!|aeu>;RB35!8 z8{f1xRcp=#qfJqJ?$LQNgNA4w^+a<7mB1eez8!78cVQ#4dfF;gScnv7`F`uyfw?SZ zeX*z~EsxHl=DVo>ZFHiGPZcf}nL>VmRo8<%*h9ZPpElA18?%EV>ofy?!`2;4MeT-m zpsiA%zzOG>O3LSpDSRA(U(ID9K^7~FTa8VCwD7F!Z6hUf^K83O$ov@o&IS*T3mDzE z{Uvh&SB#-(50O1?I!x7kgctda)%WKU)*-2s5Kgzmo=pS%M0fs`=@WdJujS2D+71>D zlyQY*mzF7N-ocF@g*oeBs=1)ryadl#y|UA74Z5X7oy8th`9f`B>L6u5Kz~V`i!|g{ zP1-jut5N2inl3e}n?dGz$WL<@>zwBqy(n2+49|K;J)x%^) z^*IV#^dY~(vB0s)X=NwQXRR6GnXz*eZc!#$m)wiW%|?lF*1rvCr}1Uo)R7OM;gl^= zQ;BUIc)~I2v21IT$SuAc9l6tB?K=?Xbod_EjY`e-@e1T-tH$974^QER=ODc1EBxCmUruMQ+Lb^#)9^b{wu~4tZ?rC#n?Fni2_7f zwrtzBZTzxr+qP}jFWa_l+qP}H=1)g-&qQ=DdXo{E``p}j-#NP4Jw6ZL{rHOp93MhF zIa?gELNj5Lhm?4_xN?gOv9{W9^s%LTi}9(>Z;SUw@UyXm1LS^hHQJEvTWp6MgY7Xv%5rZ z*nt6yhp9wdP<%i-enbr~x)Z@#yt25qh^C#K9=+U4u#XlR-XR z2i@sRzN0sA&Y%Yfw*jGw-?C}qy|w+^PQ&H+) z!qA?!El=QeFP$=*uHm18Sy@3Hvqf^ey>ESiYa_(%o!2rsCSPVg=#0Q$MMa+?)DL2N z@X_T(j5j-F7e-~qHIOO58Ew?V=03*SEV)o_zBQU3ygpglGdCQa;#5q*?DS<{G0l07 z@JL&8w;uhf8(q;60C2_a$a50p+)rRt&}*8SP}9!zL6|V{;{(?amw{*QH-nq-g6jP( z-V3hICMckCj0vxU2-tGsL9-cg=%1_Y_I^ryVftHj2&x_K{%8X$XVUZJL$cSPh#-{B z-RTh%47C*qIYV1k-uWpXO?+~tX-*ub4Td>Cp|44AP;xjE{be*o7>Zd+!g1EJA>y#@ zWIEZlY7f~ZO5pU#Umte%Yv2|B*I20#A`@&HGltk<%>x2=f^};SMQrAce1I3(Pus9G z5J^fOnf#dE_R@*&X21}4l@fQXpQ<>D)J}Z(`QVm8Y3&tOGQ^^|eh>IUqujijv5-1I zAza}E6e+|K&IZ{_<4RJDkOjAU@Hw)MYbx(h9{a>4o9B%t>@3vv^z$U2iY(DS1Pg#4 z6uK3nJYYZ6mnwERStD*B6hT}}?OHAih&p8f00ookZ>xDY9_(4D+qPXtaBu-7s0c%8 zb~K5ha)|qB!tz!RY^cScU`2I*IDbF#D-WZ06-=vq;5+oJ4;5YzIV3byCvx44kbirm zLDAAfl-)oA-GtRCCvCj{2Pv#UN4OA;Ia_?%XyG7<6Qy5>L1g2pS(K>qgXT|0Bt&G& z)M0ONTHS;T@Md|TG@7HHde1}}OsGwJB9pj02hF>hvBE~+W*PuykeL5dz08n4VQ?u1 zFCiMAKhR3{oGYxPWKxSx z#Bv0FKQ0hGQBqtYD;pTV0xv)|KA<1j)G}-6m%P%mI?Y`50s|ltDzzh)65oi!P1AIJ z$16))9P-e$hDMa+X6qlfkSHGC$)s=T#4vAM>!g-55N^tA8wJlok?k(y%TK8a3*rPJOA{xciH}o469IJsb%;ttf}vlh3^cSS2DK4&yNpYL z=d4XLtL4C;dMy>^2rxOOu(QB60Sq#;nbBr$hQA?Z-=q*aq~#}QyDjO@ zVwpR$b-_{sYCVq(c`1W#$ACpCgyQJ5Nj7U|sL`_QE>;f^U3 zfa7-~2z3#5e8I#38vQf@>x^lk&_H`krX4^J(1*)nHjOi$Lc8GJn1V)e_VM_+V!XWZ z!bqGSQwg>ziKpD)@>aPjdvQ4_x(#KaUsMH!Vyld?4`Axu)clNs#8RAzh`NG;7^^W}QYofy6Li9qw z`jDT?N$5)rm7(eg7Vs`Swg2QIDs#_-4mN|o;R%x-{tT}_q|x0tg1MD{G3yGY#3evD zw87t2cSYZ{-!>xP&3Bzu%tG+7|3{ULcCiO=pj9wZ1I=#UDopWGn^PFqauW$4MV`xh zI?jGzIdH*``uj;Fa(h7){JwfIA9U{;P;7evo-BB>#MY#&yEGHTZo>!!iesKmv|sMA z>l6)|Fn`Q9GBS&H#sH8~Jy|b~HZ;^jgAYNP>Y^cnC>bMF0q9bSGVb1uF$-4@`3c9; z5<7Tk-a7n`)W2kW%Dy+7YcPdAKIwW>uSwf2eD`z+26eRj6-OtUy@^)R0JGO;k`%nR zwb!aogA`WpB|5)HP}vd0WE55uww|>Bz7KM;gup%I)SUT|$NZ zAnB4!lQYM)mhcshUkj=S6&1Y0TU9CSzzor8=pqGd2`Phl##4XHK00zgp6Z4pPP)M~ z5fi*}-|6;27vAK5+f~_*YrfVB^+v8wuYZ1^L2W9uT$HD1>Wj1MC}kRW>m?6Qp8Jhp zBql&W5!678_}JG$KmkMzcm)t^QCSY)_~uydm2fFJhEXK**Q`u9t~`W^Y#LM{%Xtm3 zD6xA{yi@`guZJ{uY&Z}e>L{{DUGxhx$EyR}=Ya{r^>oO9==7E3dC>$;<(Et9_$XJ#LA5C_n}G2m2^N8&Dc0QL0#H45XBVGy>SVGkR5qOK%N(ZsA=8p#1+@v@6nzp^_=mGjCH0K*4a2GtVd z1SLLEYXd|U$#|e3lJv?vLM&21y81wZejo2SxB5~H&^jl6TsaS?pLb^Gn0Ry zZI@!nJ!gLMUNj`^>&vI9ZD#=5?W^srrMa9qdt6sto-B@ETtJ0Il^mryb;*7`Cm~qp z^?Rlez3uv^_?C-PT+&zOdGt9^PDd>EL~(T7_S2He4}`b5gO(^P5f<)o4;E!*;yqD$ zTIxWPpQTz~__Sn-pX<9Q|wPM=4>kY7th}KkEE#mtEn)f8k`UvOe}cQj$#$ ziC50d2D*yHXd5V@UMXQ{)cD?3t*l7-xlc1-OjKTOV^9>*azZsPuk%f0e^9noV|J0O zygAXqTN$B}3m&11`_MIa6xfKA#{H0tsBmqX?2>4M42R;|d4tthQF}PX?~9GBablx6 zX>EpMJrOH;SdcWUxwU(qKWhqvT8O;Xto&; zvf;sF*77BeOl z1S4WUbNwX9BgWCZK19$?x3mh*tFg5X7N@grBJJM)rJblcRo7l_Bz{9{rE$L~C?by!KSPgxa$DC$ z{+-?pL&`b;;;whkduZ9xRR#Jpf6G#kol={pcBRVu4WyoFB9O3|%!w+rqpC(jd9D8Q z6-S=>`_gT)kcQi@L;tK4UrOnAr#cuJa?X`ghHTUcYQD$SWeMUKMn6$FJGBinX`y@8g15ZSS^JvT=XzO=2q&w4o)9Fg zkT-}59>XI(o$a(@2`i{-r}_t?$@zM%nRuAx`Lg8gDbBe~=<{#Q5X{18qY6k+=w~$m zF}TwQ3M3AXSj6z06Hro!n60Yja3?S337a)x7EqlK!3HSO!IGs_{LO}cfSQ#u>E3}t<^D=2|YV*b4D1kpr>qPG=ng(@O8GxgTTX{??$>#vbf57T-IP-R9F zFSfh@b@hTLY3C_{&-q)cWMsyP*O(vsl_fit@?b?b1KB??Z73I?gzVCB$8pG|Wssb* z%~@SO>4hCO;o^Lvqft8lX>)I(QX;oD!hGzCjf=4;Yq*-g?s8|EJj)zc>%ND0- zON7Na%-{3u7f5bNI6pfj+n}rX#y;V`sMbEy?aMFGL{DWdH)1z7*oY;E>Zrw!X@`n)x_4l-73mvvNs8= zej*B`+*#c7M-<178RHzmBt^ZXQMF3?Y?xqicun1F-@W4x?lt+n6+4x&c1mjuNjz9w zPq~H@8!*#M4RKFsz&37On#AxvKL7#&#_o41oeF{JJ0LUR(Okw~E7(Ac7Yb5Jwv;TF zva%$P(k5B%xlf)?>Q4`m_z^@O_8V-hwkWvAJfmo6Iv<*Do4N5-lkAFL+qmM1)O z74n^oJ&Kkc8Tp?5!uosBrziD`PYBmd`R|L|`^8u?cHp$-by_NOTV(?6pBl#jj$Js# zLrqkWyKXb_p7ys61d4uYYoC!BXpj4_~tkHl-1PbvBmKR#R)U)aCh=26*}!iT1wlQQ{ZT zH+5gBR`1+}XX#W`-}p}QTuQ33TL#^-*{1$y_R(vrtBqlw}7AQ%z`CY2uGn zi>gg#c?*J|x7T>qOBIApYGh4QjSdhK+HQA;?I+DdO#w-%^K0f;EYIeg9`l(k!c5v! z>1ti`&TsG`k8d#Q;+KV}6lZSncTP9iI#u~7Rh8;Gd?#X7o5f#^!akDZ%NtwFXY-Bs z+Maz(%{PZz%)2g(;I@=#e4+y{Cy6v8))J?$d{h(DJcoZmIrZPtvbZ`k?^caoAMh1jbe)j>)=BVPXINA^ z-C~jBi|gY5`+<_aa)u&-mWs6UtlEzh`9B{45=CGIg>14O&zqHKb`gqebjzC?ZsFWH zeK-gosHO#Aja}5aeZo&kUP~vNe?4X8R1vCw!a=ZSZ0F%``UCONdhjUTNGacvhe+TW ziJLCM*2S#H1F^IPT`S8Pwm6kYu*2&5pe(CzSYzAXc*@1cUmbC`AJX5MeQ zRfTxaUEew!?ly60%Fz_Q=G;(s!lgyP(tJ1JZXSr@9?hFIdm5|T^181gkP?_Dm-S&x zh{T1K@o6)W%_?HeTSUB&M1a1$r7=8SHwS^?u>D2>*w0`aeCntZbbBWmRQi`p?(@ zuN27izq03c|1+uJjJm8ar6&aW{|@T_qiZLl8hFyCX^n zB>i;HR?E4~z5o!QmMS9ztf%*6@ttz-womn}PbaQVzvX^;y+2&dr;@F0Kf0MY`Ht5~mK3uAW8D*WUZ+yS+pY0iHr+g!K z{VoFY9!^OI^~sEkexE+q%w8_j!;fNuv#{Ozc~PiYr2X>k$xlWfrox-^GBDFIl2T(| zy!svC;_9S1Y9iTPJ?y>K?(g&TbHMq+ezr19{Xn_a|Du_ChV*Lp9pl5<{-WIYf?sB* zT8umVt_DpV*{~}$DKShc2ERg9Ikgo?x0c7BIwH}9;a-sx$6K^z=XL?_r)*AL?f=?F z_H$sa7q7+g$gR(=yl>ZgJ@LaC&9|9CdI9q*_};yO@WZpaLNz@7*4b#vFZ5wQkB9Dy zP9K?H#jTyvcuh6Tg8KfMy^fYle(^hG#LLa~320#hb$_{jlreIW+9F+>vgR^sGyuz% z8j)Ua=*Ct4C8A*U z-a8N4JycRPR`MmoFbVal0xy>POeG*{n!*{!nPbt-SMd6HgazpTDPhi81t(v5MxII9 zH|X>O%>9YZ0~F7HjeNezJ@iR2-Bd&aZt04K0S50{D`7B#+^i%$zhJ37vFC^r$OZv81q9cM z4NwB*bT|11qpg7-*mF@G2TjOfi_0o`m)@l7_6uYT6d6Z8&s}Yc|m;lcp4_pihD)x|4%SDZ;&rESjl%^=uTcWYqsx8nXKFvBPb8evBtg`;wexF6l>sBP zfiSopbl2UD0!Kg62;`B6en#0lIo&9?t~E2B?4}30CIZFb&nH#bs-=Al=HuMrewyJ8 z0+3vPIuE8widLv232>@C3$K-(ZGbf=MRJ;rba95*;rfyy7#%z*)2tM+Y(Lna;gkO4 z(EF1y1rT9}Eh7hZ=tF>mR8LO;MrEKnItT2%9AxMRu_r1h(=uFrMzOdx4R`+hja-B) zVhhRJ2WWLD!4HoTauKnwDW%+oI8&LgasGXB{{1$nkv5c6*!`2+37>9e?J0L&@7jTv z+C9P{zLY6s4jMmRupPS8&`GT87T`t6>W>sbMfq6n_c z>zaT_=v=r|HAkOlK{dnpC+>D?!n2i@sI_9DjQYAw??#xF9mI-Q*@Z!QCkhWZXB(Qs zvrRj~(eoxxKlLzT6JYg;dKSQ+8%kZx;Hr`O{DO!cyl07`*-w!h)xzFH}$uDBVTHactmu(XcoU`SUFt zXr1a0APu@&_rD|@BSUD+AHO^phZJ?6D5ocJxfTEdi4@tFvb}S~qWMElh1UsoWHPKq z57lr!3UVi+^u8+eGoB7BQAUNiY6(2EXT1s;;q!1#?t|3(XjIn$E;vQ*k&^l5JHPaz zOX1?Kzn6pVR92O>bx9$>J*gz;43U}@K4=)7CKh7wi>2nOqHn2#YuL$|Ev%-jJ*?S( z40^GFwVs@|`z9Q;d054;Wif-CV1n?IW~v3)h=R9bO|RAzv|(?Pd7y*?FlvFGL!ZM_ ztqX*G}{nFMQ({K+Eayz*8;!fDb|78feYCVGxt&)*! z96BYfpyOl*pxVnf(ptyu?DSft*6zdnN#3IWhHvEuxDB1KdZ^~cN^qYwe|CC?NI)VI zV){Whk0$jh0o2jJ%tSQR97{)ldqF(X<}Qeq-d>&^Ep<2$pL|tc_O^o9nhX zNJhn6^7%)*voQu znlD+RSeDC>s4dmm)^Rctg1HpQ4`ti`!I82R0fY|nrtlsO4t;@r#LlL+{JK#fS>(=E zG-Igy%d(o)GBhJw#+?&1;$TjiK;DV4XRFjPV};Q>6U<5Y#ah2y5^To;!(otTkUv)$ zhcS;YaMvUN4@n^X#^A|esz28H9fn+Y3!YWi&_HM#)V8X8Wx}q%sT+Fki}7!KLF25=*2pdEOveY&V-apU_%CuxISQXNWt`FiUH4tH4NN z!Fa?-M_CMTe~uw$~R z&xl2$aR*^db3-5$1lS=&`lV6$R2{Bej5KkGqGb z<-G1iYS+8C&E|Iv?V#CFe}B-l^(cnB5NY|!k!zTt#o_668V@oXX!x}EJFfIYLidB+$&zfZD(JE=?)Ng4SHV_BPrQ$WNQlQ-xt>HV z=4AB7t)!@Am<5FbMPPU#e@en@rZEuh9-YpVHle{yt5xNXS7~!V=1S`yneaNR(#`sG zz6HA%0vh%pX~qmgFL1%JEW#%%^NBmT&RSBtx!j3G&kw!|M|;Es!(p<)|=kB2{AFPmR)NxKzVlb!vbZ zM;o-}lDzl7ZB{lqlyh}k(dWZTsBx{R|HZ7rLB`(8rG?MT5_N-3Js8@qObL?ZPe3B~ zl3KSHA`KWSQ!i|!mJ8b^mz$vcQV?%`ig!u{o-|$?;>;3n{Xiv=7J9=JJ)N0joO~B% zr1pN3!8omM>sdTMzDhiD5tCXj_Is+eQpfoSux3`7F(+io3I_`jN8%xW6_ORUts&ARQDuhK2qJ`$(v z_f}1-!2A0Bn&;Krq7jMWO}aDj(jtlA$%Dd&SkezW?vMqXDL)Imr7HM3T?O{mO{fBy zO?8#I2317g$l&i%Kt@^GW z_vW~s!?7rYIM})jc+{Famzd>(W~yUdwHV#DSV`yA_twGcA(jzxX6FAHpCfX~IQ%JM z^T_D;6o0}b_CtN=8s%ysKYg@dy688ZTPx38ImB+O9(B(6D-01asgsTJYGL+-MDPpD zlvWmghSidRlYUl`{31DVqwIyu&Q;T#%3M_5a<^SF`A?qYM~|syH{DHUvzs#EJq1QA zhN<(z(&P}lvt)TgAHe}&ywxFBpqyt|c8zEw=v@G}n89>2xkpFydQRtzWZ#_Sw6$Yb zCv7b!@cRPhCxR;(!DeTn&x2y>lE=8nB)d7{#{)9K$ZbMIuA!OpM`g%v4r09=$^?a% zQoPc=ET(LpIm8PjSG|G3i1)#L?F79{++yUMmHkM|2y>&!K2v#1^7KjPH72aWp<_!Y@Q0Mes-0Y(Z({Av_r>GDMstr72BK6oFDCy*@P!` z8U`0~ghk=9ZiP9LZ>78|wvhmR*5upmg`KS$XS88lH*SNYEO3qsO4sKZ za=DVlipDc3-LMzec%kKn)VrEfTXz$)7Ryf8gp$h>jDPO#7e?=2Ljm8$QFg_<=}N_w z2?S_^q$bZO3mN%ym81{t#UgE>}(%T3%9?P3!rC$&F<&=X}I|^mdI|?vGXE#-ZAsaPxi;8oPDtn4& zy})~+nk&ZpRY}lPY}s9(izYgv^b*DPr&5aVJudwvAZ5es91Pae(@7%&pOGn%+u=xv z%-VUcoF00XUj1BjYx9-L?9HL0ygigzJ>{s1Dd^SG;+d>`G+z^Z{HUq5p#^zkWRe#O zRqEWTvRdTOUuD@97OIYbnmtLWyam2&G)59q$-n-wIxcMZJN1<>W91`AFXhRJ3d1ZW zu%TiF6(LO4?isQ>P|j9wef;=a)mN3PWW^M|THVJv)go>TYj|5x`3=qW46@_?rZ&T{ zZXOp^G2_4-i5O;}mQOvEJ&(#^nrR#@8j~%IMG`YrJNW9#aSYj+?TQVS!ppLkcrl$c z9w%6Kz)q3ICO+h~`;q>U)^wJ&mrjI>(k$)fsTpn`IW4XQvQ5o2LN&^s+p6@|*<_ua zk9^}cY*4FA((5V4SC&(EZ<@+5m9`IY#yvwQS5B&C_bs%*d(ziTqoMS*mHDfy!<** zv|iwT`2fLaEw#=2fCJN{=(Sx@AEopk`4+b;&Th~gTLOjcqUK5F6hBgkWEZTrczq^r zPE1$dG!Y^Br2p$SkM9Za`iKC>_jO5`_UoMDklDk$;nL;ua(X=-#dYHE?C|h~>j|Epy4FGY zPn|LK3hhMk<7Aw_Y+$r5zL zDl|0lm@CzzseXGZd zj-p&$r+2ow-Lug16rWrmRlw(^5;wu_(p$ADn@{eDa}1_qIn;|2UX<2+C2XjV1}>76 zN_K;}{&Jb!orfGf^2i+L&;zlQxtUEvBK^~7n;1KW_i0oBiS6Y(K}RpLS|N(NXGx2< zTK%5vOM^E)*Xf`rg<5}DVK^o-eYZ-)_ApGsmiTAbC#wNg1Q9?#N?zuI2D6&ZMJprn z4t2JN7CEh`hl|BEbH{yR&Ih2?+666@C9Ou%XV8*@i|y%zQz z=;8Dl+R-8pP$6Hr2EIu+zM)=gV?ne6w+>%O$XPU0DWQ3Q|JInDJ|;~fUzUSO*SycL ztfbR+dVDl4+}ncz?#6iV`_{WUi~sehMkkBTZihGb2<>+N9kdFM^UL_4h2GmUgq{i# z7wV$DJ$!r!9*a%0IE?gF7aTQt3g5#iJ?f4TyJ*1suTeWQ*zr%}Tx##`$TL02(ZPs| zhb!kBIhb*<|ADbLYwr$5d)I3hTY7%?at1HA-;e7246~Ds%Od^sM*4N0e|~W;XZ_H6 zNO|HX4UXKEu#lCz+4B_%>p(>37opeX-+r7Dw~uf8@i4Z{M?ZUKViUXFbF^}2obluN zuGf@Xxm|*=z(BTEJ{eZWeaU#BMegev*j!|y^N`8{%UzXfAxGH@!yyap&3?F)pBxsGYro0cR6>}Qo%HV`L#9a&2PglKN7e(59_}e3`&uR}-!rI3Mkt0_@=-6&pFrQB&0kX4 zSNP+xU&mm(z348j2JQVGel-ctkkSz1eDUgt7cBBmF!ny&9?pk5JTj|L@O>@&4W6%D z{jOj#V@_`{u)Q45TGi6{kTl<I*B<3tWn`YSG&!7=&@&XF5bWWXURNG;XdZ;o1@INk=K!5)U17Yu8)?wvdv(4XP=50^DYi@ z(9qAnh0&_g%+}v(E~E)zL>(LxYbvUQ0%KrRN2e!cT1ysNy+nbNOu+~j;o=%bnjcJ@ z{B{T?d(^Y|CoMaPNm<}ci*g+=++p|!5XaNe%)rGO*SD^6=4ltKB_!k=|xEFEkOAi^3-UxVA%fzqb+x)%Qi3*>Qwlwrnc%r7!6f*O_-h+(-ASX!Rcbr>DZ7w! zDQovu^<&m!4h-cHc8tFoXMkgn?7bjzOPZz8 zW3<)H!LCpoXz@ar^Nfo)KVt)~IsEOLn9<2GR?C%rLcx<~(KAi-%CTi6gO%Qe?GtV{ zECgza7@F!0UurLnuQiP=t&vtx=>DQmAM4NHVl z4CSWu3}TK8Zdm zwsj%}Q^P^L+l-2slh&H(<$NLokPtKjQFV76$+63-t^8dN7gPj2WoRU|#VtJcP0-W^ zilP8w^GJlN#h=LA24jQTF1J>x$tI4Z7Y*$kk)(Dl@9fn4in|4MmuFSj$NWX%!_Xrj zh-bUF7QY>2qzqC)b?rM|_3yu$;qA-3`@^hO+Y7LSeuPkWD?|Os5rXEe(oJJ(RL~=) zPeV7ds<9;}DO$$W4q4W^(zhBd4=+oi6YAmeSG!%R0Ye3oQ?pEQfV0bVZ!9|}2;r%XA3y`o=bshK>$4uI*!73H~fEt;xKhNnS!G@1yImfrI3P-zt9x^Tvm zO!gY8%f=wlOYR^8o_)?rNmlQ`TzC@*N-<0^bVWCKN;RFO{>4X9?a_?NOL;7l#JnV*vB`Fvj}p6}?^Gcj4)NuQLa4V@EuVx#0gIT*X>) z`aDP213RrEPk^jj%7h3}1!r@0FzXj9>hl;98}`dI_w8bM&a*JmJ%a=92;M)G0~ZH& z=vejW9@KG4_su)f1I;Ip{(&+xprPaXtrnapc_$A0F{m)Cfe=H1vU*`Q3F<)1a1vsX zPM?i+oEBaYYs&TbOjL=|?80t*FQf{V7r;Y9<3gfG6TQ!yu%Z2v7%J;PwB!{g?o{zN z(`+epBV$x$@KsR=fGH_ANxnO!fL3|HK|ANKyuB@%seBb*SUuZL_{fkd-$tEWRa(w^ z5c)(CH)?FE>RxC;kzNCR2qen@ zD6B|U`;c^Ra+{Z9Rzh1yCI7vm6?>G@Dozlnz$yoxPeCH*culx*Kkz;|;u7kn_!KDB z(Fg>jDn29Q6_aWX4t1p6@s+s#lIH?rZ z?ZivEqSX8Vs(pJn^+z}mAC~a^ zYbs6TKZZXP>5;J^AzTDA4(t1)SCcWl_#%7Hd%gRwwRc3|2Rj)cwHuq8^bH!i6g_MoE5`b$HJI%^tl-rYmiTvCDlI6uUCb*p zt&D7S8>y&F6lh>5AT4K11~AKj_F}*=-LCN{F~P(gXL1Q)-#!X#uVP;zq&ju18MC7D zika zBSLoS1y5*BlcZbgmxzch?1WtRO&!0PJ`+=fx&17IDhlPGD@7UOdQ^OBr|g8^g2NL~ zB6`dw8+82|5EvJ^`9sB06^mi_>~*}3XQ| z=#>9@D}Bjc>G(v@vxav`D6~jKf|{d>2#cq#1}F4^pDl4(K=ETU_+8 z;y^1wG*{Nv5m(I6P6BlLsta8%-o+INd+jRRsyI|HK~S&?|AgmVAR1j7prmN3;sryx zWVG%k3zIru4;q8>GGTKzg&BrrpB;^B>q4B}$VHUh7*_L)7yMPBX>l)^;KnM)hR6l@#0fe8}wMdaBavuDD zNpbj;nXzifRjezdjzXkn*d!^L90)o?FalofOwg0K4L(n1C0psuCy{axxLmuP)j_Z% ztsE2rS8CQ^cF9DiW8YVdI7iD@ONt6jNuT#^!8}22M@rRfTyRHfita+yax%hTZRB3s zfFZsrC$V05Bbj1%xyQ1ZhNz^(tZG5UgTU=)2wH2qn2_*JCi#)%D7SWIYO$mzmE_?J=rM}9ivLuV^+7d7B|{uaIt}cG61TirAW;Cf^N5hau%T)oU>>ULCam5l>?RG zfd6=-?vIh$u6Grd5VqvwhZT*&qAly6L3PjR_q3U3HkkG##zi7rm!2tc@B=FBERhx~ zTW0Dw3|t1<#%ka_YYW;y+bsa3h?rL1IoK4cH+EKsk{T)Xg3hBJ;B+-aTcjq+EJPMM zr`w$xM=KS+A8|Xi?h|NxGUWg{LbYR@9LfE=s44t>&_v5&2FOBSAs zvd~&9uDTa}9^RcC%NlDsOrJ4;Rvqx|b9{i;tcoAbu%OM|ZfMEa=8rZ>bn`UB6%=xDpA8{bhZ>~fm zOrJ%?-+#+n^rfb&--Mv-C`x*`pI^#sIeW-T=7|w1Tb4EDrhJ87tWs90;#^D}m9k@A z5ln1T(`Jr;7aA_wON*TyPXi-m5vqN6(6CV3TyHY$Ywyfw4(@a2wJ{EqQRTx+=e4=i zKCpdHqNrpB`2^by9o}Tn3J+|pr!*rPX}PTfoljy?+y6w!D|jum06N5J9{Bfb>%RXZ zCNeg(mReiI4F#X=qse$_!T^-|Qe!PLtK=_lIO2BeF-`C>LIs%>qhi}FRpTqAJCg`D^Vb~pT+jru{&|_Rt#zG>)FEY?G z((}gz!Iy>Qy;wjpZDvle(9-J#R0;M zI5P@pU!kCQgD?P4=+|_R#xVcnQksXii@!2Rvt1d8>Nb)!eJJ&xa8FZtJAfxsb{=JFMi*p(wjnR2O{^kvh^% z$E4Av0qBgLJx}5GpAe+5c?w2cS2I>u%M)?63`(vOQK0}oCv5VpKmD0TZ_hk|g6 zw3jJvWBJ-WY&td)$}4)P0$wP`sa+S@XP*auZgu?SiY#(KhED=cE7o?cx&1zj@kaxzX6ZeSHl>kA0RNy(1Uyu|lSYVxPR9;w8z^9k z7H9tRBm5Z^4D#-f_bN$G ze4W=5b|8nevK^N0OH|xJ-p~qsKA7^$Px1hHkDLoXHoLz{B3VaiaJ`z|(Z3(-H}}4! z)6(nTs4;3n1cz?oCAw_94u&(!0dtF{UHv69_ns@#R*bE|&O&iZ1d$nX8=TN~&e zR*bRu?*9B@6`OIm=j|^7c4D^jA?4ZmC?&pC1Nn|gLj>9;1^wh(FAQ#s_uV~C#fUQg zHO{rf4<65k)s^0IZ%v9GsDQJtdO7I`Dq2qy%|H2+Nc$2Jxz)7ds_orHJSCjCOFjWR!w#jsPXXa*nu z3)zX5i08jYvi}jZ{zoMHuR8i)Xi3)p0dc_kzeF5JCE{`>$F8d)Pk}^fAfeKb*#_Dr zc$R=v-sBr#VPRzusjty|wK%j_Y{aoW(Wm83dx(oEmOSv`ICD(&B(oPM&2WCqxZ$1K z(UmIb$i9((f4)5r&-SXy>hbw`39QmDA6G`%(J6nJNV@6xx{9!iwy}&*R!ml!p;N)8 zJs(?7b8JpluA;xXS=x76*!y*U(88q)@d|VEiozGxvna9zc~9TsifJQ~#Q_2?68Pv`dF1&;O`xP<`!!rQVVidwdj%Q_?aDyG(aT3Jj8$F5mng#@;D7vw&N>jqQ$Y+qP}nw$-uGF*>&S#SyI>jhz5O0Aau09mp6(%4E79KJ$-AA_;gAw zXKJ9VYUxEVe-tOqIY&&Ms7qJh;gvmwF+o?6Y{N<|pjQK_bOHkbsK-pxNd-(!tp3XQ zIV^9Cazqmt?pDc}N%Y!}tH`P<+h2wp>8$S;>pX7itMP))o2wfqsxi*n!N8*C1DHbI z43J$uusz<8!Z5Tg;fACRVO{H8IFnc4zNh95pzZEFH;>_`23bJ0n|TQv!GA4Sfjiy< ztVbAj$yH1HGkiT@r4>x-9_cl|H@i%&N;+~8vP)-|I9e+eb&i*B65y8Q0IND%6!wUh zFC1Pl4IZpA#~uoIt{yi&MG63w_Bh0n?VLg-?~DhCk-Oa&#VRcIupiwZn|u;|_b(p* z1o)=6C-}H9ld{A|`YI&_;0sczy>r_S9r2T$Iarbp&@!A!Ada^YBY{}_gCh6b-H|-o zKO@c5v)-=s^l+>=iNQ@YjqlqH*9@AV`YaKsn?Zte)6YOu(+Zi#ULkj)``*zd5qJKH zA(dH{libYuA5S={XYblLFF?v6LTH+e?~rkVq#5sx7S$ijCfM7=-u&QPA8>!`;GG|U zxqkNGjsm$X8%TC&&rjI=<3xo?;qSrKWi?a*EAVHcF}pzMToUGt!Sy$rQqPXI$eKby zTV4y{C~WatbypKFF_5(o1Hxz`j;^0fy8Q&I1m$PuvnP0}A^Ffznr$&_9JRdTv(hwAc$@qKVNn=5=Zt-P}!QjG<=ijV04>Cn>GGnD_MQCZTlC%6a zq>IbVH|gzMYm;s_%^Cfa%~3W+--=hw8)jR;Yri64%ly;e_oOSP3ITMmbW^r)K36aw zmK-EnoLs*$p~>!Fmxglx7{nmN98cZ5K!+g=Vt0ZYL5-9he{yaW+!}^@Yu{-@@Fh$e zCOtnz7n$&7DAgxgq@~0pLq1)Six4AcN2@=(Gn2k;{~;IkvGl64{tL&>xrskA!pIqk z4IFPTCL(7c*uwt$XA)Dqm%Kmb%CaAxa;iC$UG+g`Ml&-D94*O%dx`a`c%%y^nGuHnD49zG{J0XuGYxGsPG> zU$Fvwe|ar2@$jG%*E%=7Zs5$?n_uF! zuNz!A(LlY%7yy{L zX-lUW?TsQHYBXDUIXDXUGIeoW#xoxFUz}aiFXnr(ggzy5*U=MxwAOSmC2T=EDJrCT zADs8QQ-=2BjEu05e%Kas1@?&EEVi|sA1X@2VRYIyr(S<4y!;~Y{vyy=-PQ1g%k+`A zCm{68z}UNH=>+Zr3*rTZ`oRg#u5uxhR?Yc23{i(zM8oK`cW62$A{oa<2hGgf0GA1M zM1lfVGRhEi!CJaGM?=40Uiy-X%tPG%YuI_@VU5HKG z%bL4lEqN0hCT2z@!z!5?DR~m%t9O7?Iqmu`WUM zi(?PCXa?WNam?ZE)Hn;=aAJ4hFwJ-qYZn%|!@nRocY+v4tksTMaulubUFnMm_n%&(F_+XfFb@;$b;x^NRSXo+JEkUVu@ zQ{A>AI|l*kmP1MQFZBlkPL-1m=}(htVaB^djfK$N=M~Aq?_?Te7F$^-6*Xao>FzLl z6I^Jui?*nGNk?>5dMf)VQG)6v?!9bOB43B^2Q}(6#_{1G5SPG4l5BgY4dCsfMf}bAcSAx!Y&BS^c z>~@j@CF{lvUvebW6jy)#rj#1_jCDGjTx?~ORn@EuqoQC!GNU9&8ie4&p5}yPLNL(w zLFg|d9lfA#D<%yY-1Pk1vU@>p&VauD^^KQ2Y7P~=Y-R8wf$CmE{~5Ei8rCXv&Yk)O z38U2MGiy>NY|y5C3|k%trr`P*p>g`Sy*Nb{OY{74aMm`ddmuGvHhWoT-c7!PmE z(6X)wU0M%ag-q^04iYtKc<5R!n`p4u8s18&mS1@V#MBkJ@M-=;S}bb2D{QBj9Pxz0 zyPEo=z~t^?r;@E}lcG6G56jZ=7#xA8ADt*EP~!}X=McU(KrD~`4uw;Ti7ruAL%I4C z@{keSiq(Hvg3WkI^Q>X>Dj+}zuMnnoROg$zX&DR>%sZDe9oc-_+doX>tMba~C-&_i zM@k?`du*qUCA&$&oYxI93*4S>{otcb{f8J0`i~#0{D*VGv>(Tqx9bkC{Ta1~!Dn?` zM+p0K&9sxCOTu>pGmV8A0K=jOAnC1E0TP;vLl_Xd!@>r^l`vby5+z8;g3MDyVmr9r zzc|zB=`FR6a8;4w*bF4ouG7=(tqrpR*n`YRkZE5V5kOQzn?LB=WT#aZ{Qc|WRP9n^ ze0kyu#eS{kr2`FX?-Cbc1~+kbHW6K!oA{?hNiO7tWD;kRH<%x73_&yom>o%)#pI8y z!8sNk!G+sX2o(%|ShGy-1}bAw3J$^k38M}{1(PHk@nF)<%9S9HzdNdfrJ$N&t)bA3 zAg0OrobQ~D9$zW%-&{=BqC#SvcB#f^&?Qc45H9q=+VHZ`gPvS!t(v|r44YKVC>5h~ z_CUoJ=$#6FWQs(Rwuo|BBUHf=mFA?`D|bhbRE0LhWQz(IF*@NWmMJ#0!!_ZAgQsGE zPquVg*nR8}mrU}RByAQ5hqT7DixjI*Te|E-J648nj6KM5)+4ndAcInG(%=@W+QsNV z^A^Q}Kb$2h&8+v+USHQqGna0D8SPgRXCo@?Gf;}bQB2BByoRo(e)cUQ*L zo=;f*IJ5Ya94G;n56_oAA;ZnqL`XykunAl6o&h$V)`z69DSVd1dR3LR`CZkszhsn1 zTkDa(u$OyNXCI?A9Wtss555!G>>s=g?NmNay67xm5kMPtPMfd8L|le5$r3IGZ2fUx#Av>rwCLZo z7~85$5xTy#7#6Pw@tD~-kMrW_R3ZMd-CFnyG6*^_ipPsE0YW?AN-6n_74(F(KVX6~ zR3!a><+0j{FUWfX+R3#Y&)qc7(}!nFRv>z15f`4=0Ve+QZ!AEaa3>&~^OJ1T)*J~^ zCi!-W1UogqNVKiKWArfgJ_lkGjcYuQnaZCtb?jQMvR$QfF5)bM59`0 zlMveCVjQ`D2cPe*9J65Q5k4mAU$63&SI*Dt$ja8&-!j$b!5k#Uar3V>Rs;CG9QvJf zoV=}QGT!@!;%7-h?WnjCfnd_+hF_C?WSI5})r$2RrdB~;1jjP|!Fq~t#c%_9Q*RX zf&%Q3)p`yV_j1HGhTyMQ~d3An{T_k zQOr+m46j(!E+U^{HrcR(?+l@D-K!8@D;aPY$A~ZwEU8}LKm#FnN|RMZX{na3fX(pH z>&tRJU$e9~JnVLZdr~p{xZI&^F$0Hj4tOpr1D=#g0GeZz=2AYh)muO;;c|m5bbubt zT6Lcf+8=7x_3aLgx zyR!>A(St7tzZjB-PtF+^Z{kmi9S`v5CbDi&I!hiaf2aq{(~GrYLI(^oO2vk^C6N4D z7@IFf2#(A;t6i;`5i|BNZtu0BcWcrm$E&P3j{+lqOr&Y@?6@~oQekOe?d&h*UuSEtRi;m(RTg)3(#o^uK<&m z-v4HE7S<*&fVFl)4&$)G2HUNs6}?8aO_Esuek}`|#xNnMX@|nJ!RNWaXVC2@LEhHo zwHV-Yt6Z84>(}y#sTtRl#Gdwk^hAJIQF$vSO~uFb$ET5kUnxGyK*`F!2ls8v!4d8e zpNGMgRz8n(dmm@i}J%5roS*yj8@?8~soV^H1(tHXt=BRTzUj=Qv;XN>b86}Sw zccWm$L+DN2ugxw`h$-T!#>g<;0q-@XRqihIB2wq8ISzfOQ#xCI_~kNgz%-^2gyON` z6neT+F9a%_s^)6W`)pjF%?9V{Yuk5MTt}~mx>U|yPzOo$8WCmCZLPpOk}iv$xG!RN z|CQ07*@l;cB9y+ud-xl`zR9?AC1OB7-AOi&O^pFXf=Q_^ur znrzMZJ0)$$U*q?Km5S6*!1jp%%}!yIh&CkDY3!`nR^&V4IeP`U+59=a2?8kpQ0*B8 zN*HpXHa7EWd|QaM*E_1W{S- zkkw{B)J3tZZIV&H7&RY8zw(I*{FY!>h)y}NQ`^$Rmppv1pEoNO-WBKUSk;b&^B6wM zZpAa3uKMLJvI`fc?T%|KjXBQ%rbwe*wicJOcAV#7Uh@iW8a`5U;y!DHXTUL_!{`8& zi_ay`hF~II%?k3jonDnZf(=dlRzn(CE~A{cSZT$L#{_7{JaSYwvmo`?Ir zsWFS+7~=N&8(FiDu`3^*cVD7K1|<)RN6{?4vtF&NVN?-Qt4ooR44iFF+OhHu(_2}* zn-zVwBSQ9vb-xx&N06F-yVWJ#D%9#J2x$ua4(8c*1rP?0XS)% z_pbqo*U5uCo2d{;G6lyHRThr5g!^hc4zv ziP3YV*IA9>*T#A1;1>_#^htVGwI66Lu5dqc($;w+C?=!q_{ke(c*iIP%i~YYry#@E z7}!qD5rABlw6AL4$s>RG7^+Zo$Dnxlg|X5SfOS|~_H2PT_bwmM?-5`q9fEYt3qqv7 zU{QJz644suL%z6u8;Phk;EFdl-Rd6jg3o(M#drmu!I`Q7KnNEsJB8Sz1fB7~G>~2? zY7!+xAl?BeaYSsRLjoR7)IQKOnnf===}Nx(Z`Z-KVf5SM$O9d}+Ia)DQ}CV0D&N3$ zM@A+bSr^Qd!b^c?8llpxR27lqUTCe=hUNO4woFLDPD3BGj+KwFb~u0&&g^f>Koz&C z;2;J3e_e`F;Z=)pt!tNtlx1ji28QqEgx9^l&c-*~bebNy&fFNG8X63}{YHFW9x=Il zYCzEKNIHnqaGUro?2i!d;OJMvv}s7*ls@E z$(WUED>R}|*GCGMkGBlXOz+K~UW72xY-)aVz9W=pk%FF!7W&g!95gIsdQ}|&P6*;L zDFqPX`6y{)+wMV!b-cQ| zW1**bd?%?&L|QL%YT=>UyykLno)AAm&_!fAe+_3kT?XGIu)8EuPG{620TN);$YhXLVK=W}(#*NLfGl3R z?oS`3R?~nhU%cs`z9|r6C41yWIa!S&3VB3cv;1UKofpiPi#w!PoqYbK15HC&&SkJh z5S=+A`i22Q+VX(5B!@)=qKdLjS1)GZVq>EM+ki+4VVK?=jP*~s+i*912LhVzN+huou?*4UN&P_3Zx5DESMirJ@^v~gU=nj32s^*KV~Y%muA>dJJ-dt)sG->r9e zqVD!YKi1>`6gM!M)OJ{ne+H#eL~=)Y()Fvhsb7tS3jJQq@rr-*oH!ll;k%lHyi0=p$Gu$<1gbP$MRHWX&);qs6^2i4xZ|gaIJV z$`Z-+!Xr-ZC>9vpJUqL!6CfB8BYxjO^1%s2$0fTSK+x2 zZXZnMW9Jc4(n(YK z_+)Has0p*tE&DsFKksje(KwZAIxCIMZv!K{y((`_YD1w#eZqo4 z1q#s|?XbWe5#e+_p4w9x!(KbwFSEsBQnn)%w5ZgmkPpHK(nx7kPGTJ-j8YXU>>J_w z0V)i|<8#utWfntF=N4ORi$talHD+;e%t%b*2h6P^uIJ^bH6Cba zLt^I-)B>u*v7_>(Z17-liFBCa-evm}>i|DAN}Mi?q4J-*MKgU; z&Bm*g!6X~j^xlj)D6lOSvJ zSeBy(#xCBkD%;6DLJl+cGwN7NP~=n8;5-IE_2j?BYd}%)Mf`3ls|ZnTi&HTsn&+m% zd#bra!i^+Qzl-!v^b(z%Z>oW+OI5rf8%;{0MFnrIfeg8q-T)s!w-6d>T zAfyTB-C32eE7#qoDbsT@;VKy;_x`#h=M&A7w@eItR5Agkp59;l!s8-0H?D`W!}BWM z{Lg`ZK1(215&0l_j3Y_MVv)7k@&c}W3XcYl zuEG_NrR1fgTsc0m;g)!&k;n4y_6~Duh!cMH18nY}&#{b4?5@p?J1bm$H>eaUEm59Y zgpwra>?cDzrTQ9zyBE|7hdIzQpkhb;I~BtX4T4gi;3Hz4E^fcEzJ<*GO|5D}G+H^K z;(%q8JrP6GVDJ6I6gi2)AO(C7I@;d-oy)fghPA0yNMxLxJ1dc$8$WAr{aU&^7ZxfC zM)%MXRXIEtG9wOsOPoq6lnJ;{l;Bq^$_WDw7DhNC0J>t)vEH0D1Fbz1ovK`m7W{G~ zrJcX8X>Y5%nRH+#!=5B#xC&QSd=PZ&ID4E_;U$R_vKdKgSG+LZ5>Up#t4HP11f7-~ zim?tt1<=v#-!Q04s6I@6XhV4fF&F`NYPH8k#Ffqn+1nWCDx zuP~KE*;;KWtQ?W*Vs`QMzn{TwvQuCgqjK>Y{7%N;Zlqz<;NhU&=ZqkT+D@8kGcmJx zg>td~zCDnpmbUTaYvWDnU{seuTXN~fDw_f+j=SUrztYm*Aou=^fbh|Y=Hn>dTWbkc zT9I0b1M#djROTy%L6%yh&$C}*gNz*ZOOEj7Ir(E0Iy->mc3aD7I<3Q2*LkPc<*m`P z#ahKL!1D<4o?HWV8o)#TX9*(*{bwIA@1%=pw0G&_1Ervmg)|ZK&tSbAD()ucu0L_lsGe`v!41v`U-X*$*r_Mr;86a3 z<1Y~fbu*q1c~%!Mhwr#Puu!^x3S$nEf}ob?=K-~{A1)hktX%k)fV&Qllt5!@qgG>o zjcBNY4Adx!Suj6=XQS!c-!NgzzlO8uU|t)e;4!3XI(;YkCIheBBzXQ~j+Y3Ij+S;?B+zBx)27g+N>!<#k zfiFwo2{lzNu9eGGoN`XIu8K`_y@|V_rPW8<>tR=e^FetQJl)EIvklOaV*zsuwd*=IZqZQ)XM#|j-T_eG72r4P`v`m<+5z*RSHGI=HtZt5QtQvSAUj7Nkb&UI%hnqR{8fvAKu|^ z$!oQ!)6UmzmIy>oxzPK#u9DcJ+xwReiWE*}tB-#2o*v`gvTjew2L!6}3U+VrdcA#>JL2WISW91O6!1Hb#Uka>~$E z__iE}pQtt6ygaWsAMXMRIdz=>Juv?#2LD%JX5sk1&}1C{1DcHEe}yJn()qdb8$$Nm zc6{kGV2s~nUs(J!4krMD#eu{m`e%f@6KFTg0V~HUfQhK-$%*E-;C0qKkmz&oXcT*C?t~4w1 zB7+@Hzy@$-lFyy=8R~gEui8mcbAB7pUE3JQS$x3q1t$T|)O@Y6DK1gC72x#3)i`9+ z=}Kahf_;av**X@xZqf^i@2>><>vItX0=#* zL;Zp_o*R}Y*iD7Hgr}Ec_=l5Ael}zrn~|ebDkR3i7hYyFUQ_{}R?4c52jV~kuO@qSrHU$?&=VTK2K*x+!5Ya!p7UJ+6E z5Yd_J%n`tamGQ|tkOX+qbj@d@AIXxVrxxO_2tgxlrxYVZF&}ptBK%%o=~;utz5(p7 z4Ii%@P=G#Z`W6oEueFGX_Yjta%-%>}LRz^Bgb2tY!>~)voZ_Sz@;KNV&SGy~(=s2> zY^ge#Je>0o=~{g>pnlU~pvdS{rmd(yb)0d3I=dm}EW8-{R8N8KBBhYo!`ZJ|^ZD3R ziZ>mAeD;e2l+wfvrhIDWB0e5G4hZFD-#&Tqh034E9r^lo&IQHaNStqzK=232Yp5+h zTso;&{Bd4INgq&mcKjg;vWH(uZR1M!&?ndrW7ZR;r;Ckw6e|61k*8C5`~7?=M@bV8 zk>`u7Z0AcE%<_kNY~H1_X)<8&#hD7 zRTp1??N^$MctM^D591;25bct1lWSUeTO%3tdiwyHH-36 zflIO(^MvHg+po{CB29kB37;T(JG`QUPla38AAXYp&w6or)}qPf{I6b+Nigz?Ub39Q zm+#X~f2>2!2$BYEvh6op{ES*f+zyY5bUF@BvL;+hiPN^T3NAGR&GIr73;|N}79o?) zUEOv*`KVFgv?ob|%*^b7XZ9gq0#{TQiUsF{X2rld8z@$EC%45yl4}m_7jPe%JPrjG ziaAGtl$i=^q|Liou<|{MLWks!KuF5wmJ>aG4k=K-u4N&a@(ae?XcyyhOx!d5=wLe* z2`>>rG_TA?o&LoA3QHJDQP%H4w=+B#fd@(%BlaP+r@*mzA?zVUB$L;$j_e;BCS&;@ z%3Uv&LWxHE;;xhXF@~FF%1psAX+QNI5Tv;YP6p0#jA>y^od=rCeaH z(<@=W%h38X!0jcUsUfWwi?rSsd#(2cMV~EZZZ``N0*ZQPEYk8Ig+Jk7)9b5n7Bf%4 zr-WH= ztI`GJ@SK_~3uI|zbhFkKfPWk}LjUrnn7~@5@g38is?2gENSCJ5H4{3HM6&t#T}sh^ z#qr)VtcxfSY&p-G1aeW5P&ZP}X7%pC#D11A7gU=KzOzKIguZ&{ugMGv)pnYh^`=qw zP72R~Wf62MVw|BzM(}?=96T(`%FTI6iCB2Xh7trl z-TU@tNCBAPC2dMe;KaDnr0|NbZJ_^@?R2$Q<_qYp;ORVn2^}t_M1yngD2PVxu^ z1=)>&QU{L^su429NK74Wtxo=8hirdhRQ)OJ3|frB!xZnhlO-vh;!x{_n!)=ROEiic zs#rG8U_H{VmkX(DbKMO4V8LHKcc0+(qXhXv>7~IgL2UwgbF%e>IR!h~^NP-0ZPK)1 zK9_{1ehS`nw|gZALkTG@T%{DhHY?2yObFT0DPrTr++2b%Q3>{!kwkv+&$J|mr;$9> z<__z3*V3NFm?{Y6^iy zpTc~J9txl-{#LOG@fK&Dw zFfs>+V-szU8X$>RibzOLGOEuKs+QMN^=m-$wv>kGh+>}HjZ{)Tk83K*+}T|T@R}37 zJFMYt`YM^W8xyRu)uf1*=!jh-S&P((6YQW#?C>c)9C!JW!x57|wcc^Z*Le0w_r-x` zFvt5VgjwM%!j#^|1mwa7)DeC)?qlOdV7s0azRaQEknoOS5c(!-q-HgZOUNLhoT(dR%%O9yW!5}o_b^&C{we2 zNb&i3BnAsjwsy@>$xA6(IQAWe&gY*iJfjVu2aztZ zFq^px1aMEeh==f>7joUVi!CWgRKWcbpWXWzv3l$0S0shk~-AOI}d)j?Fw(n7}6`@{X0 z3O#qDQc7f+EiZArgsG^n@UC5>n`p!5t4i`xFO$2C;uGgd5R(#F4$9IKh@q%!q>Os> z-TGGPQdW1yd?F2CU}lb0B`2H-y<)l32260z@djzuxfd*GF zciio_W6)my9B6z$RhmsSNn(t@g%JDaqljjznw*Ykb0pdXH1RhaAS3{@4AkBn?{hWk zYU|}za<1i?UFo<;C0MlGEK#6F>D{heL?`_Q_1IC1`5!{>e?{5@U9l9HvM^yV&?;|?#V~Blvy<&Ns6V?!c~jbXH#@Vx;2hrbrOrfo zqpw9}=SpnwO6-fl$MfFUn8t5(@v9%2Nd7ZV{rmD*^e^O|7^lUnX)FX+e0_K$IAf2e z9nnE(`Kv7T;DwGx3JQz{C3?|I`ounODENkef{zWGN0LK4V zoWnD^=<0hj`_rY{nOhwy*p^~r^Bd{_$u8{%Xc0E=yJEo?!dLLE_SP2I-|dxBVF&F) z-U4B3@0KpsFZ3F$vrt0H=3|ixy0Mx{rqpbTGp7H7VTaEdGBu^w0Fj12+(5(}Ysz;` z>Yy7+5aMEQM{AFBJpx35$n!q`yy>nkcrCY&L?u#H1{9T>{}ao9M9(cFJ3fg$Xn&{P zNGlOC8rN z6E;EWlth1s(j_yv0q8vjBKe@9sAUN1lq@?<|EpoT?7n|<`<5i=LTj!EiFL#u|4_BQ zxPIcwDoDVN)G;L^SqP}ou!_3E;qs^~mD`Zq5fSEutW!oX(UJ!Dj9VEQX4Jl0ME#yB$oi3FN(A(l50-h z9&;v&)eK6F<`xlNb~AOVUoSDQOnXB_0bf!f2xqBD5V&E{ z18<@WS1dDd1a201&Ta{Sr}~w=Z#B!Vi=DqVznVBX#$rkR*Oqv^SY11%mji^J6ihO_ zt3*IUS8u2RhC8$59)zDbIv%PMK@WdGt^BWmy*dfJq!aiq>2nBOj#~otc%Tz`E;=I<9*pjOp$6#HVsalRr zd3Jt)y9j_p6+-Ih2C8AG@WT|14emf&M+lgQvUSpI=nSG$Spjr<;eJ>0+DBor(&8-8 zVIHr_Bdi9v8h?sne=NPnfyNJ`gG$0Z#GzKeqdE#OoIoNdbtY8ddg;!gD4$o6qPW7O zFpaB0=pVH^FT982ediqa#8F~+q@ue0yRk^)vhS5xi`tc=WZ~)=*iV}~{g@Uf)8`UE z@gvyQ^QfvCQ?v#TTSX6MZu`CLrLCB+yAWA*Q-X7d0P&*lf)W^b;HVvH1H}N{?jTD68znH{iFkyK zs$EeUz2$GyZqz-j>U(&$)JWL_oO}?NPZJbD6<5Ib+!$qbWbbxi=Jr*x`OzoYkRpB| zlKx=_ZG09u6}pibz6yL#6u%3VHg{GrHX}^&U)rT{5iRSCfRlwn*)ZIrI)OO`MmsJy1wilpo(PJyMY$ClWQXa_xvu=l{w_)MExutlIT)Bn+&+q% zRKJ^`vfot5&;jOyC2PBU+?W`9H|RMk6VRF~y~TJNOa=GLigV5JYAUrLeTn;AK5udW zn{Om#OKI7FI2z7U-UkzPDut~^J=5naD|K_9u7JK4pw!S;OUsy?tyB?hwPlMgM@Bv} zQnY_i+Q|5joN5XlM+l8$pGo4ytR%Teg(QM`Bn-toX6e|yMazTG4j;fP>@glf;x_VS z;L&hZ1!_q*4m~R?^P}@V1!XJ_KgmGN8!0f8ukDEh#umkE4Jpb3abh7QXGadKB?*F5 zLQb5FXsJ{pSd!K|*V~`An^LuE%_%4nTxxr*af9-JkeL^ExKU}r;Z zf5&pvSsFic@l&$fPAJe)+C}g>1+QH7JKxsj&kEkJuvF-EERXL-lMOspU-2_Uvn=G` zTM5^U@sN)99{08nb!k=@73aG2N9I_3+o9?u>DV0*E489&Hze~D=UQ<%f0@s*{j*}E zL>{?QFg4`-a-ClVCdRn7vQoc{zd}wqC-)=cO>%zgYsfn$=)89Rf)8bFWBp-*k?}HE z>6GW?G#5MjbET%4c(=_b(W+gjruB{=jUL-O-{^bQt9RC=Z&>zS&JCFcqD)a!)KUu! z^|TDlgts0_PIaYZQh(w03v(BaWJEfG1Bo3_Eaj?7E2uXv8Q!#xaJDcT{hD8yK`fy2 z?LJF2TBm_I)0i#wK$l^NvtelCYSL^mfbIbtk^WQ zO1DXrM7E+}`7&fp)?6yMxk^X!PKVyUBuajBGP^i>sbjluItmbg_*n+TYk$W*ahiEv zGRg7U?Y?T96tjtXmi4DV+i1<_q=_Pzk&0Zyx}U=KQ>bRf{8-(GOZ4{7b3tuW32(8i z(HWP7oYV?=^00n@;@o$M`LAIt;vyXmHIgOu&1BkC-yi$Ib&;L4Bi?H?bi|Y~<$L!D z?O-L*ee+I!H0%A*&aS>1z7~LcyIlk7vkbXLP`7jVrju< z1*v18fv$#E&MivxvjYLaJ^BjqW4V);3vNm*mD^q6%K2XpvQhr;-~dz3I0o$0tT^@` zJM)MRXl;^5R*Erm36DbC1;dRG?Mv%km=VhrG!cW@tXi?lKN9V0gj;x|q^@qEE~a;f zj!^uwC1EN${dUl&uCe7+1`eMHm%nagKKth1!h^95p5tw8$Xy^Xji=C$+-C>PV$PT7^gE_ktW z1nY68 zMuEkJ;(^M_s}Hr@6x5wxH{+eiDmHj2mtn4Mja9IGQ7}qG zVAscG=ZYIge5j~v+Rr}s$zg|hckLb`k^6?s??H~Zl_a2**e$G zxAP_c!vXQmc6-je&(6#?Pj@g}&^vc{$>p7EBYTUBkJU=)_PRnXUrNMvRCvBL2mI(@ z1k%&g2LR$ ztKdXRSP5N0zsq+U@rU|?j4U)J3H1H`2Cif`Px$Wv=|8dOKLLrEo$deBXu19e`X|@_ zivGEzqwymwLiP{;9_;d39@4uyz4BKdOBT+91r)Qod+^DdoKpoTvQf+xuq`eOur9ES8xB#sl~+i z6=rE*jU?ZHm4*+(fpnDBy59pOHD@nAG&lT4MPPtnu`xU)6g+GXAtYQ{&P1UfuhWzY zfqMRXhF{WnM^7OAilP@9O3K}W^P7#9))9R9GYF~=V|1QL836z>)kqwT@~VN)h4KJr z7R;Othg52H=B344GZ+LE!{1LQi2{`dJqSOV|M(ox*>+)RLk29nHKo6I!?I=}w3kHQ zwg=*npf#^@^wOze$(UD(*eWRKM`$x<>VHahM*%_?Ab`O)j+XWajZ$U@eGqK;eCN&k zt4Sy4Gs+wNMz8+mPmG8mW(hZi(`#85>ER0vvuDtQR>8GjGmGv{GE;SOjrj+%zG;IZ z!>yOFeU_sVyTGXp2!9?_udp3Q(G-;Yh={n`A^r1O z23uaTB0zMDsK*v48Z1{rl3K)b%GpycQ#4F5Yrbu+{g2}VP@5BJs~c`DR?Ht$)AunD zV(V%^3O-`tAqYGjR81l*M7tuh&;*PI3#mHeDh;(rrX*e~euZfNmwvE<^h77+J@xVf zVSCBoCwC?_m>JL5SL%U8DyvvbefqA=-P9z?+SW{$@k6o%w92s*#aMe4p+ew<#dm-T z$%M2Hh_7E80jL}M)DTwL5PsbsNalfXgJU%_aneo$^I?T#o+9t%k? z#spu@Y_>a;gD{ru2x>E_V6MyvYH6lW2By%8j1KB3z6n8UAR9bYJ6Itza2qL0s(aWI z?2j6skpbSrX#Yy2{vezKOPdL#0$EL1qMQSyJw1P>;`pHxV5fbG1lK$8H)4s3ya>x$ z_n?ugU&+3gX6z&*p4go`hOSY-e+ZjU0?0uBAI9D(xU+!U_Kj`Z=0CP=JL%YV(qYH8 zI<{@wwr$%y{q1w_Ik#%xhyA)9SFKt#=WmQT#vfWFR!+8lEyxr|$i#^h$T{+$HdN6B zh+_Eyjp;uy_^;@|{Gz}#0R&l4RM61H)}x-in6!6zk+IK!U1u}lMDT%-GK5m#OV1Le zE$Nu)_!i(+t?292l2xe!e5)|9O86!28zc{Tt1vEo4OTOf;}4Hss2kM6s+YE)73n}s z%|+B#)G(Z$t+lU(i8bmxJgskPLLSidfkUiNveQH`%jS(^4-)N!n=v7yMe~cW+14r1 zcN-(}DJGwbZ*+UyvA)xNqWAKs#KV9zog*9PhBSjD3^h2^*iNyv*Ez3T+UQ^R0v8g? zI9oIKOdXO5YBoNOiGF<+aCw3OejzpLu0Qh4Es~^AYw8OPdTPFQjM|XxURlQBv3FLE zs>|Jy@|_Xs1pKLqrPT2B1)Mk>3KKa`9`&BYe5066`IHF6@*gN?@Mkz~%OjHTr!sK& zv@xr@{b9fD6tpm6`V2(48)?S2uaX!5pfG~70S3$y^6bG^_f@9< zDje;I4^PySuIj6a*ubJQZhNYZ!=E%- zjs@fwxJXO690bY`T_3NQT2!<8LR~8n@6+{$dMZ>%>8N;XYwjJvLAG{@QKMV-eoj7y ze*|g;XOEStje-_MA6J;|n?Zkk_Psg=bGvw^a+;-rcl1HP-`2!7rO$Nkzl?ny6<)s~ zNM91jyGoVkJ0+dK+#x?FK8imusrlBYNstaRMz;+8v%5MZK2yPLk}rlXP>OZ<|NiiF z*vsF3&_OWxJ0e*7{+V*@*Av{^Z}|&SKT@)&n6>ET7G%r-Cg@Rhr1?NrL zDV?VP>Z5yI8`jiSMld)^yQP`fn@-j<^>#yp-`(|FvNO=1wmq&W`-9Eg8p2kOCe-3W zh5)6kzcKRQUPBt?Sah7c+Zu%dkYhbJXoN0u90w@AHO(3i-=7PqnJ;lAH!&VYbI)Ew zMn-B_Us`CSmp)CSRVP8?8o~*ER#iIjad;(UhB_7_!lI?3WSQYp^u#1GbJ`f9gRQOH zPDq)<;2{_kW|Gt?^kOH4)jcspSfk7`7?T=Pm8HCr&$TJSLvrL^Li)OF);<;F9M%3L1TQ?{bGURF4T6Mn`qQ)g63hLWA)951?yLQ8_HeOJ5&RhfpDNa133IXK}6 zE@Qw&TQZtld0Fc0>$8@*U-dz6mOFe|F4FXiMvBv#y;Kj2p)Bf_W+Z5TWkeh82gX~?Mj zbViff%P?O6o5Z90T!*EY5^hRIs#Y%b=5JLvRK%jj1dr<&fE5k;2u3LNl zIBBViNe+m_mMFA`@NaH2$=TdeNJ3zZ&TYCCfBQ90g=Z1WU;>A+;qsJ-5_8o|>%Z?N ziqoDj(#M6#&(vk*ux5G#l^XrTAl{?vc|wY!m_*gV^cKQJQxC_34N;f#LSAr)b1fC|m9L2Go1nhV(N zbRu3)kC&z*3^8ZPbnUVB9-Lnw^Zg=Xp@AZf&Lb}Ch0MJoQHs@R#VT>LDGNhegnaCa z7KX+?sewJJPkUNhpVqvpC8Z$~NbR?bkN^#$sqbqsZ{{+%9)06xGwm(jW081QW(APD z3GI?M2=|Ksauzv@25N+U(>;rHB;kzy%fxCV#PLhW>Pxil!m6cZT`V!irGfO^8D__hV8*)T@N)^T~#R=W^_sP26M#tHYT-5V{}E^QL_$7_xxn&=k3ZyYp>3%tIiKE zecA!D6e>sm7e85i%1uQl)UvyfZdOjm96Ybiy~va2$Ht~V;fnSOrzHJX5iZ`qA@zov z-ub9bQ}CbQXutYL&Of#`Iw)`fRXppYKQ8ugR(2=vbtL=d^uv-2`$ zzYfdRb&Zp%Yux^Uz`4G8T#LA6X*X)=wbsf|37Ne|J9Y)04)C#U8zZX%<13S z^o0E#&gHg|roQrv{Gat(jOh?bE(2`9$)DdJ1X{RXTnS0e=MVoz+v2(k=p@*lfxpG$ zVnXs8^MmPfr~Xu;=F}_W_xJbxZsbY-=+as!=HtwoTE}&5>+pk>aoKI~7H;lf z?BBYu#9Jmyw=0ez`ts0xop?uuQ#O~kc-c|xcP$uZ9=s9MP&bpe?rFP+mu5_O(bh); ztQmXMymHIsM4{#fzq32h`dasBv0!N-Fi$!F-aOTYa%Wuxzjh1e`_IXKI~$o&nwoPC zwLnVvaSl&C-rDJI?7`c?9(3X}h;wE3-uV%rcPF&XC`Y2Mt zjnhVG?5cP!{w79<=(AAiD5+3-?AoBr~C1beuhq#N0So1oCQ{s|?Xtthc7P zG7Ptm1B5csH^g4=36lj)9-xxdi5`oi;)2LBZ*(McOG~|(k6pW_n)$8(eSS#%4hMd~ z&(qkr{c_ww1>3+Tx~sg_rNZNWO4_fDu?4tj{9q?0!3pAs9;z&zIP)b;+JgQS`N1!V zu6>l$Gfd65+LT9kDTGb;1MWvxCHI`E5*Z_I1&P^|7xiFLpFJ1)D9;;rKj4l)JKswum=UJZ3v<-KpO%F% zkXdj{RQxOUF-*%8))Kp;h$2ty0}Vi_2lnFF`<+#Q1`+8X2VZKHyJul^P+Q36(Vs|OK%4jMQkM@xodjzDOS2NJhwN9d6qn$Y!wquc*KD;3c4<7)f`PCb zg&0>k`vYKOLLq$sd%_Z#RDliijqk9WJU4=8xrEKD`8P{Hdx7~E1S_BHze`{JsqTNFxWpk{^3Ja+JfzZK00mLQCVAhrl7iZ> zZDEP0N=b#6IXS)t7Bk2rQMemd=xeR6RNg-#s?VpADMxha_k!UG`SupU2{J4ej3WtX z7sUQTa@7V@k0DqvV50%2P7y!l>H&G2T4kp^aaXq%AW3>PcZQQT)#B1 zcbE%WMhkYGTSNXka`9qhKw)R9i2Hz~mc64{WYXTF5alOBj^eWOUdEzKCsQ z-Z+zSEtmEm%Z>r{)m-OK6@v~Ke`{F<#Si-@^f_cXLBgCgi2N304RZ{$O&*uQ!zPh4 z^M3+Dlp$Oq6+58_R|@VkIsAX9>7~lt7dbnXpaVV$*HJL#mD*>tr3@xtxsh1Y@1^hK z52~r4-+f?dk4+MS2>6vL;`{>*cqaEJ&~6(IF}3kaJv z9*Je^vlPWrODA0rkUCX7M0ps`J4~$Sjpb|9vZF2!yk#k6&=faRX}08gP0X}}$RA4d zIII^eLTe-{&j2Z?R=$(3S`-?(xAnz$#kUI8awg3iZ)sz4II+#_?R6}u!=4FT%G=^w zRAb@Sg^t?|VNo1W@|CJB#V4XwoFD3<)e_g`o>Xr&Z=fNs&koF2VSJR7^e=tCvTuP_ z2XZ8<*(0|%tIMqI4^&!?`FpR*fuO)P2{zP#J^Mkqa+?3n&jI^tF51Swa{N+1wV!;0 z(-p1PKJ2{c;FVjW*CWDMwy(oDy7AdSlja#mM6}?6qB5%K{Y&|1TOyT~%?*?%)3N42 zm}smPZVJ;!Wn`1{Hx3F=pkr;hM8l4ui_}rOX&fztzhKdOA$38+G4!mED&IEt8}J+F zOJY{hPswDrDDZx()lId0b#G^Mq0RB_q;4jrDDz%cm6`&AQYx8{MdesD<`gagAy|)Y0Ou>E8um_ zBnz^0`mug!aoYaZSyMX#@zik{$$kfCE*-i^Oz{baCo5uoFRU)(r(gitKzQ|Bqb`jk z6irYrOAk$%jrP|sh*486*PMZ?8*6a|UqTuU3SOw>iId?214=(7g~b&?$t`OuB--|B zOmz*c8OJ3Fz|B(J>?89EnG0Cwo;O=DqWe;2LgFf|^bz#PU|2qXw*OLg|4d~52%W-N-+35_+Zya2qa=@MRx7%c{&H#doi6-IN zAA`acjY_bjbHO!FU+m<=+IX24(;_LDy)yI@xfQfCv;K{C<&_Tg<@o^j8^aaeZ>%kq zZ9P~GJ@8U?RQ%9gPjlb~selZNbTy5uRbACr`j`MyYQ3Cg*eq7X-#V!F4agK6HH=_2 ze?LUnw+9M4pB z=V&U$--8hriSpVLw$#WQvIqHbqz+==aA7m3yHT;yE94f)uQp!8^&ld#)+@l?;m}cy zd>~>cL3ps)&qbOcgYIZJxcyQm27(DbO$6K8=zqwFW7kj9xbji2O5OH`eCf-X|FAPE z@g7Ykkp8_h0`p2e2Y>(ex5}76&X$9T5E`kE?(He%6mn(YluyL?yR(o}tNnSAzgk{K zgaMy3xUn}gvrLV*baSv}+7BA&`NG-a$TNUcGZz_~qAUb|V>^CsjF&%dZt!U-kL%eW zTtvjOw-Sd#@kGToU~5OK5AdW_JueS72#ilRxXeAz;n|(RNAjZD zDH7^J#WEx_?wjR(b2OKdkyZ5wKpvRCCUdjMFCFCeF6I8kgCdq@{Cpe2`Y#!b<`*NY zEK`G{4zmx!YT2*l%IJ5J)TgtK;DhVQugE!aHK#g{Nl#pBf` zpSyzfv9&u)$eB&E?8RBgT8x9x?H$d1rK7a4Gzbo??rn|n@+VVJZ zR&t_;y}Vs+6<%KihCw~+|JzXizen}|4E4-h|JN+W#`K@~kpDdW{|xm^O#h>yURNgZ zUlUrl!ew6_Bq2V&*XpTLsWoh@aNcDi-NY|j4{|M>P&bjsKZlBBReNwl#A0(j27b@S zpwL7WihNrn=m^mnOKMa^@v)3OvX6)zc^ntO?T&=)cQ>g&!LhP+zJqOf zu>{%eodG;P?rA4=Ip!@tg*>mmSW$={J+2u1(aV=T=Lit|>;5?gaa=gKFF9_I9Y387 z9~0NRc>L(kKkzfXD@>O?{*kv#lMmmqS>E{)-vNHz*9gF&jl6sUIO*G(%g%rfEU%m6 z){Ky{SYVB&pPuV`!VQ$PlkIcJ?xD4}FBab{?EPCC ziYm<_h`1?ky9jmzq4_fRSO$zAo&kop$8{Wr07FP8yc5fP^N{JshAd;0Jz=tDL_pXE z{vwNydqS^B&{`(x?R{@3I_LN^ME@Q{3gB)_x09P}4 z`VnsC>%`-Tm~Qe!dYvEq3dH7{ZHM z8U3+$iS}>io)4Um0b;@dxz{OcEp_rX|ASU!+ocrT?7D~tjOs<)k*;E5-OV1cva!Jz z1;>0;diWj5VkdH$itSkCCdX4BHwjOE#4~t639!BR1?tUwv(P;B3EbJbNW5dV_j1nR zu5W4P8t$D0Yu8Y;hD8<&R{Yk_wJ0d_H*c&O0jHJVPr{V{^Cw#e{-%ALg#oDq?oa|ezX`xE{qdvxJ_&-MED;`_eb3*s*}G5!}8uDL=}Pp4AB!k}itxm;U9QrYmE z_20ymeb|7cEupRNjA_;`$5Xy7*36?2iPeU+oIJ6kKlXhsrYG+w(?TY0C@zkH)Mh-& z(JBEr@6qdWx78Xtf8lWmJI@rUA!mV96&2PsJ4LRvCHW2-v9a=D;QYG%tM+Hn^<^OwZ%4fE%@K~>-$ekSz!^13FOEMhNED6WCL>z?(U6Q_ppcV zWSjj*rV>51z0)aM03JB3k&o#%`*u5smRgZ!HmqTX={p}w~9d2 z_ozM7A?tm9%@5dB6bwRG1``gdN`gAMbo2^4MwGR`|K0%HSPysetf?E57S(Pjkf zU%D1zX9@UC+YSmqf0m~!mx_KCw+Uoonv7EFhq7y&Uv)eS9$W@_eP3&s7;AP>p>Qe6 z_rW0&^nKvGmw(ul*3wUH)&kIjUr<)VkwXYhONm3PZ{yQ>3+VEnm z6nAZkq-|elY-obC7)XWpabF`wgkJtpoM9WFgSWUw=-G}q-~uo~)pv_0AmW|eZe~>4 z-;q)5HIpu4mfxvluBz1RGRZm`=IVfWxV^>{)T*lqfiCBm;)R~ANbYwTDkXNZN%RUnVZ6W&9O+>?kn^Y;B%vohAGvhS->JwPYN9FboO zMhyMR^}A=o@7d8Ds?nHxuO|4|)TJ-wE_8t_Hw>o?$=Tz`%G#j)Ql^P@&@kKj1JltOYy1!on%}QRvJdoVU9BCgy&nx;0RaUS9-yZ#l#cW zFvG!22t3TeAuRkg*_pcdEv$Rt$ChvLI1Y)wiFZu zDbh;6ns>O4m0K=#3XfTrS0*mMQqVUZvbuBHMOY_QdH?kh#HGj8zw@dU4J?OQ2D)7V zYx&tJhz#(@Vd{{IHQy!+{28g7=Iu!$`!KNFiltG7$HW&R7}JRu%fE^qW_N&vX2QTJ z%FXHzvaxBXd2ZG8`A!qgc1J#<)Oh-Zsmu71-F%aY`5vDJgkPDS4rCUV4glC;bb4j! zdJoq@gPD`pihw5(UAHB_wSo<8L}ee}^ZI9#YLOxY+Z=NXJo}Sje(R;=w<*_ck!Di! zaTZ89nQUJ<+xs}w%chldHIwJ0&R<48BlmO(BCgF0k|G}t+11qDJ$VcI58ErA?z z-z|8W_I=`UT1;`ze*y(z$*Egn8g|vRqOgm&HKCt3E!6tm=I*n8!&gV+Wq|J| zDb2CHIU={R806VY(Jm)dxn3Sd@RMoR0No|&tCcPDcuyx34v{gBwo_w}=^(UW42(;M zYlVXhR_()8N}A^#q#>h#YnsM-z&`+!VpHuHu_urI7Kf1XU|TQ!%!K2aIszBy>U^cexOzuU`8YpoQ|my!bK86~JQX4F=NrJremzkGm9SWK%j`A_LS@{0LO7{!ina2I#aVqxmqaF;pbhi%v@; zD|$?CiaCt_cByipxcSa)OoTzW!wkQrErmHN91~<3`4ls|C;t{YQJ5T0zG1IonVa=9`)S|y!T;!7iy;RIUHHZa zbd-~HiJ`85!`%;1zom+@w!q?Gel-eZo;;Y@@i-6+=#u1sQ3o~V5E zsVd}-m}yK1^Dw4^bt4^>^~i3J9rZSC$f%Gg3RUV>78hYWq|DMf$e7QhFKO|f-1%+b;6 zsiGUedlly2)icbW9HUa}P#cYqc;b|xo6*T(moG|*^__C4lv?Jt`NgenAhfb`Caur; ze?WiNy`H?4G0jpHNBN_x>8w3L4_t}&snF&qQ}GoN(5*PdI5L+F&~0?LE{i`xxjM?c zfHIV^jQ%+fY9m8^3Mq_4cXvxZG;83L9}6Bk^JnEcb0od!(6VlIG^16W@VcI zsn=aXbs`J`Krbys0Oa%T2o|u|hIOFjme?88!X1g%XDybkj7<^H@@t|V^y?{JwY2%wT zGJ+a;E$f_b(thV%qzRE!b=3=#D(eK_?;p>L{fn1}sBVsA=uOmCOVmz-bM|;u$v}>Z zKh33;`GqZ}3(6&^`?`56b~rG@HyJ*1F~#kaWC|W1VRbc|*&Oxk@Y&z9X0iXGJajp| z^e5p`$-IP?Nh08~F38|u2^;kLOgT~oGtz{sO%5K?fZH?mjpH0NLd&;e>o{_ zHD#)<$cIS`}i#8IH_%Ce*Xpw@xb+!R7mM+akq)woo+u3$kEP z{Z|~>u9}8y9=K#crf6PKp5@x^f6$TzU^f^+&AQDQA8L8ar^nRC3&l$p1R+EhCJQa6 zR%_Zl;C+B$aT?-<=>GKtXH(W_nBKrm@TA2A4WhH?*yOlK>COZljBg}nNC?aCcK*ex zaPN%|UTTO7Pto#X^|(v?q333MBp#rxx=#l5oj6dI%#@te#N2M7ily7~nD-6Oe&$%@ zXP3Q5J3T7^Xh$sa6F7>ziLo|P)IF0>4YDib3xAypH_24NiGQ(NQuccE*Np14$E6%p z55?8>Y0cYOA<1sRbF-XF?sQ+0i=55lDLoLh+*F^z2p|4VXarGbFw%YYruPW$KwS%B z^Q70R<%TsV|HZ6JJ}BJvHjE+u8@t#AG#Wvj1z(wq{MX#yZnIAA)KVGnKc>Cysg^-- z-Hxk{p8h8^ODQ3(3FKLd)%xz}|+3gcoKjQj#tKaCNH(w%BHXax_R{(#L>{sIR5kW z3hAPyU{3ezJL`&DR9_C7wS9mnI@0#ygeGBAd|h_2E0(LIgw9|-xl#%6vJs)pL9N_y z&yj_;+~@Kq#Cic+QX3kK=)Ba3=a$)&wGt!kwJ)_E|IVPTV|isxq`ljo!qeqZ+O0*= zP33V86G_nm2BP!uBWX4=5bOf{G9q}Ml+QHFM=r2dz9Dvo@f6SYMh#Xe|j1H@rvXvMR7jcpQUlxW-JL?=q6ne^M)bcTI-SP4!gr7FryLu{b3v}_NH@BqQ}96RNmtaukxBW&zytzpbp0<_dv6)vout}&}L#K>k}4y zdm(VHs_gCB2lWbo(L%eQVS;L4LV=ZDJ(!j{apQ1e*SC^5JLuJbCSae$L zp`eN&NI5mPWvCHjPb@UGj!jpec)SGLBy@0VqTyV^P-VW>nbtoP2anO`aT_q>su6@6 z{)DmG7cBb~#e;5qeNlDX-knpk9_QZkaM2=XT*m9>kKXNSeEIKr>e>CN>%)BhhL;lW zT?sB6Pqbp+PoS2Q5ygAG#(^7+3wJr~VHtyphxdUl*b4Cu;=!HE0?#fWPLfwjMCIde z-R3uGFNM#@IX@0r#@mpCe@qwa5q%Bs)Fk%qTToinWCU4s9K~+bPw@Vo8rh*%9#Z7A zWk;}@LJEf;lC;VGvwkJ(Mr2DW3J@C)QVx4o;JzGnCyV61Hs2ZlZs;?96O#C7PMNb= zH+MzQ!=HD-)A6x)cocpl04LD&ahXJrxi`<5v34y_n59X8WQ(=XIMEl&bt#{d_333F z+BzfhIdirnk3h`X>2vFtd7tTCg1GzVCRAj7C$QufB4mpnXV6#R-mVBi^w@{Qt>X`f zT{jMb;}6{TJ%OEOdkBZ|=1#w(0Q^6~iCmIT>4=ja>&u6Y2k#McfExW{C*YyGP_>X~ z@6cl$1mF4FdkLP$SR4|U-7`~pt2X;}0PGAdtTf}f0~j-B#FOE}Gg{c`fLAOjH%Cb~ z{5je^r+|#$APg$D@Jr_tH$)RlAXsZKs@}oQ50t=V!J=}f2V1h+%`b$MU|;4|+{VZ! zJfZl_1Dl!hTPsw6E`Qj4C&k(o=F^kEH3;3t5jcBKs=@MZ%mI+(KOjs1;Tv8G=j^{Dh>G=1N}K7@x6-lBKl8sZ$0_xArZNg``Bw=Vq7f!GrfKps9_|J!O71p2o^0(Nma zB!tb!N`s!JPfn|0PYY{^Q=Cs;9?$eak#yhi&Nsk2p76s{NjDUx?#RMIv+D(f1NCWf zX!Ia0t2FU>Rw98T3wMF>_F2X!RUY)bjyPU>;VG%4UKd& zHs4T`DqyDnYnqFPB7ytv=i^G=dy(n zi)LH0=uIYGFw|X9=QKk$i0?Q`V+V#t>t4fytctHf?!7@iyy|I}GtotNPZ(zxB4gck z8Yv>c+$Q@(YQyGX>QwX2_!gB!u)6*EPVU2Ez2RTp>ICQS-d`?5bAI81o=iv@bu7W| z+ZTq4ECc}!1@4i#RN{Jdpb#OjUW4({fD&Wz8jZ$gxi(V)d5Qd;lchgxIA7NXHI%`A z1fR`t^A?Uryk!uU>$(BX1%IQKDm2B_v=!S{X=50>&y4ljUh93|&p@i4Xse0q<7!z9 zU4z5(o_CcU{#b;O=sHvh>)Qz^XM|Vccq7~r1o@H6eO>nJbBK%J=qvcu{S2<+B832Q z|E38Rq@jmK9ws<7HP*CDnYQ$`LPv`8RE*4=+bn%x2v`-zBjXQ6gM5j}vA3KVau)-@ z=s%qodVU{RQjQ!nvaq@=?6u>B9+HYJr;v7?rnzD+wbxpYJN4j@jr(qaT$=}9?0%WA zyADP>NKtD`v5h{;8akb{I)yew5W=f8Wf;rj6N2jE$Ckpd)st-cKtnVaX5xENrrI(2 z6Q~HBAquL@E8-j3GwUS|)vO6z&p{%rW(!*h0kQCHBJ7<`BrXV`M_^8UL(VY|C!Vr} z8vS0*%wy(QNysl;IANf1t}oFzFg{O!|NK(Hmfvjt@8F7 z#sp_w7P@W1FB*U*yr`Aiyc9>Sj8HY7LZ|XO4V;$Mc+1|@ybax#ruC!hwKPzsGs?>5 zKeb4|ER{f^MEH}{$LFFs)X0F#I`N=n63IeLaYPNWJg^U`@n%6){cP1%3NF=lmSA|B z^8D#^r)gKt(k*rgTL#QYQx&Y8+5 z9CgvBn9MK7kcMC? z*o=lUW%c`KWgM^V*#;|rO?_-4`A#jortLo!m~5R3^Cc~!FjmfWDl+TdEmS$(C`sJ} zG`!bJ$Pb(KG;v}j<1nJa(0;Ak=Rb3NII6uE(5&=&w#pdV_4i2=k3zW}cCM1w7iKeL zT12-mLJq1ER)d+qe@hAS-X+1|UMlRMZ&>5EJ?Yv2cXZDjdbWlNd^4{*i$+mHYA9KWuhv zmCAYKv5!p7Q95H|);HqyOIrQ)m7P|Ji@kdcfuoA!u_qmjmC9OdYg@;7YOd<-$QXG1 z4q4r}jvB(l>fzP9r#S63%lXdmNNYxx3B&W`eLn)-kgx>SjZzBwT(+RP8g4e=IC6^C z2zWz@Z@Pfn?D`8=_kcFm_75BoYvKCx89}2?c=_oN4(P(`cE^o91J7&Y0_H zNnQc^s{26Z=>clU`sR!hv>f--CK%ffnCCsWs^o>B=7YTTFXc^_M^IHY9$lo0d4IKXe)8Uk6$}6-jd~Hu%zG)k0MpJ+M-3y zd@=2x=}B(!xNe8o#gP@$ar46I6{d;N<<+047*cC9jX$v7vc5kx4+XiA#{COiyuW6b zZ8UKA`whsc43>O6Rvq6)kIzABt|cNZ+$9%&)1T zEO5BQl61T5`VfBk|0D_H+6n0qARMZ9#JA0$F3VkjHsEsn(T)uHWcGF z@pLLTXy#rsxUZ)Z`v$}vQtV_^l*!f^w8dfVP-@*nEuax>l<3m`>lp|8`mV#E&EHuA z^hY85`{(cofC-wd`GDzZN+ttMwE&14Rbs*(0qfM_kws3QSSZTG4mZ?qYstf6a8x8V z$}w|tDvGF^Ly<(~q;1f8BoK!@eNSj$N2tDFCFHT$`{RyB&MV0=Z<&lC z>weFUek(?>g<#dkKaivwEdBDcwITRBhwP`vX57N5>*w1Wm^}~>Ts0GEhwmQ%PiS9G zvNi7`Xrwh+w_|t&N=BGYnruniBI9^O)$$GlyR$W(20#*+^c;GG7Ti^3b)u>B>fjco ztfEh)Ll;X;?jfhoLrOGnEX6Sn`^aToSGPzv56qB}^D{K9f$8Wob>fhU+q`o4`6!S8 zxVq#uT^LQb@`7u_mx|)^l9=hP=1UJjpcvXN9V~rjo6b6?Iy={qX74Cy!S=JnmbCr> zU;omFw3dk^)ahtjq^fb57jp@3vZqOV_*0$^%IpwXQu-AD>6Fp9VKvB=5ZD3LaXvJ^ z1-;QiUL^Y%C7%G3S62@0sJ=eTS(tU4G9F66%W%P=?tY%}tW!e>D{>jJ(&ejt zS}C}SC1YQQ)2XX@`GE#5V;b6(cs?LYZ{_5khd)xRPMg6VD1=}nUw1y4D&ig?OzW@y z$60hhBuQdm7`1v~EAbck3tMTNfel~Y_+tBM9f7n!3S5(2?lh8BQ>jB)4|DSl`tuo# z5d2@dfRCBH>)7DDPC|x>Cf4?n*0b~A359Ad$N2kl&b=BHLaXnCcLzG>w>|<2LfJD~ z5B^FSp(>u_^%kyW{SQqwl0)4)ABs`fI>wN4)ZZ@uUigFhob;1NwTw*K7kz!0LzcGk zgI`=q^PQegvbd*%G7wkHqrOD+*mpXOOYiCyqf)s!difh;iLj&h$l`eBr7q}a&unI0 z!52BRhq`XYcS{}z!XJt8nr?iFAdQ6i??}3G)h^DUezwV>xlL1TpoQb_j$@b%#486_h& z)30iDu_ntDW5%1De>rV2ky!|Y2YoF$LNMFE5CWUHzF6xtcRL($MINyD-_aK(W4YE^ z!yN;UR_%IAs@yg(<-o@w2D2g&x~sT}lJb-7x{r1*JGs04!#9s9Q1S%m=sXhSNmNVfVm3%9Rm$HF%U-ihmjiuyhz3WgKLprqn;(%8W9Q zkcxGSsBWRK;QLYC} z`+r9j&krO5M*f|boSSAlTL*alCbVH7xOFx#@kAeg(8>n($Qd-);{|fc&%IhwQwI-; ziCTFUBwX?J@wd7NA*Kg=?-+f1`2Svg6Gh=|Gng;(hwbS%AhICqd*HG0ZWsJPWvvTW zFk1CuL3IpB3|xrd;=9b6{53UXaqP<~aPx&hzu^mW5ah$C1i2>_mdGrOP<(5&rhC1dM{!$IUHv`Jc zV&T6xAkzpm!_k~GgdhahCMaIaf*FcBVlHzt1k31^XB-*AfR`~75bM%zK39Viy|4P+1N8J9-3PZStS;MF^2(kfjHgIJq#Yvl`4F{B!JXu$3U^}8?6an%V-X8^!Ayb2U`5Jl+BZhARGoCks$VwDksC$H%^DLh(qWJuC@Up#Ie8< zDh}&1-87ZoPv+YfmQl?QGFO4;k+E7(JLur0tP!$^a7sK#M?+1eG8G1?4yo2%!{2Vq z7zOyGaVY>mRjEuQeg~Np2E++g5Zz3($^a>$@un9EFA95Yx8P3#w*}>E)O!Tiu{{E- zjz+K(^D0&>!CbdF_@krQqJs5;ar&nRuyRrwUXegWBSCv8E7#*`O*hk(d<9A7_z9-; zak_O2+fhRCG1G{1?}|mRp*7lrvstv-0RlP;h;Yb5d}(X1LQE&f#46dDa|X(@aRppK zv3Ql$ZHq5C9QY>ZUH^h5zYXr8!(G*zt!}O6Qx!PI7;HNuACo1KL$U@Xub{Q}_Kta} zHg}~9Qw%hNRWLL0$Rd<~fFYz6d&Tu}p^>p7`|wi?DpO%nBUhPn7&`g4+sf+{e6rQ< zQyMvh$8sIF2-XDAr`h5wd&&bpaf`VDF_zle4(&$Q(#*aTi-zx@n{#f#>5~C-^=zV? z#Smc@xtuTUZY%pmKjWoS0OYlxM&wO_2ld$ho~g zexcJxI#64#|wU_P| z@Ob^{KnjEz%-b}d>w$sEsG^Q|F?*59#`f?_eT5p(#Ze=Jg-XA`4*lZdBgD%S`B*h0 z{P|_Me+hNu_KU90x*&%s2RnB6x9DEu>k}i(6!mA6f6-avMuJ?IQhE4!cWNgD_bp<6 zuvyJMn~&X=7!y9?xZy}?&riY#04%Kf(fdx&^yz`C7p21nlU8J@IIKeZ*iCNb!mrC> zs?U{Kx6l!W2dT>UA33>E$a`hwTd-7z?W@EOOjJXY*%M0J!n5(XpxJ0!Ltd=!nx&R$ zEcR@Zz~FM4xwJ$=$sdBEVsbw$;ea)9=m3IGJJZkIx;qAI;V{hx0p-#v%s1)t?&a|9 ze-^PfiQhvbepU!Y6{}o(UiH;1xxR5Deu7$O62a^avo9Oi5Dm&=ZcL8!>scz7*`cQR z+3WlTKET2k07Q(^3N`}%yqg@dsC>$iMkKKzY5 z9yJ@XHclM3|ju@mz7r!1L5t5kw@A()hM|Z!cplFQSc3o`R?o}SvK_&6NfPR4ez)*ap z50z5SowPK3tw=VUjmbJKHN0tlR1!RQ#BMGH=%({=vU9E>a0-etOYnjTRZg^=9kfDAALN%$akz__b4R`v%t;$l382arf>;&g_liw(~ z-6Ty;O&uarp?sqO(_1^+C4n-z!0Ied06RMUJSqt@sh~)rao(E8d#VP3iu@>$Sw-Wg zLTES?kZm|dil2{$AzYvts`w@klm!3kZu{lY0l;)H!$t$8?}zm- z+1%{a==t#M)~0jM78xyZuQWWy-@u2W*|hGP?*50g4EWjLw48tcga7uR_Vte9+220CSv`M!wws%O@8g3`IZQb--3XsvUuAKxb?1js5Jl5m%LxTA1p2w1b z!B5lEU@&NANI%Uhg9Gy7K;!y=^G^X(bNhU)oQm>6<>sri3M z^MPV)*E#K?OR3oDigMVKLVhWrpAA5u6b+g1_^?O<`cm<=mLHYErT^|uIVOy$2gmjt z*YMM|(qh;L$-MfO``bu zJ+qS5RpHYv@V3C(ZdJBRfOkNCUC_&q(}<*;$WO%K2{i4RC^%P0AcVaKBic0HDSjJ*B$ZqYZXVt#Ml~~C z9_mVo-U(;Zbo`=&ozNj^3C$mZ)kvA-GKobc&3g;@-gL&pPNBc$dIEqlU+=NXEd^U1 zPfiq_lWQE!Cl!~zJz4~BMvJnqMie>>P`!KP$fs??M8-B5BQ~srj94{z`5R0cVJU^z z*=50c$?xOP*(FjEJI8~Zy}h5gRcs=#Xi5pkZNL=RK>ql975b1pkTDs+w4-b0v0%Ld zfb*vOIRvOkyVs?()pdJ-qoj;47^wn9{=%#IlU@8=@%K6|B+;7$q4ZURTl#benzert@~> zl;Kg@_P94H1+q2@zW3B$5^sTwA{nlLq6FBV6jY-wQ)$_QYb>oQ{q|Cr0aE*i#fgcK z#oq^qBvD^nXLFtD!03=;%1YCHP?X;6aU?FxS0u+k3`z84o`NPxR~`deB*IT9ll&PAN9}k^XCGi z9N(#!hSS9DxD-afo!;W)`t1!A4ubq{z0$c+*+dM!I1GuDcpXRnJ}-8Ymbzu>yk20P zfNs0&)qWAg-&&kg{sPyEKsviQTmuR{QLqaCyD-J0?%Gf=NfaK{N~7iy4rDPKRjDLa z9dqZHQb%YWi9%&+6}N+gQ?cb&DlmhDI2kN{)ve)Z3r!qLHdoq4eX^mmk<$bZU4$1P z_$|gDNtmetKv07-(wqqCK~sDVrFr;}$s<8X66nhXSBY|xY9oUB>OFc&G;Han%`hgp zbtzt&KhxodYnS}Yw?@DI{WJ8hFU~)oA!a6){{nNdvi^rCz{;;vA{UL+iOSu71H%PpuEbtNM8n_GONo z>TU>1mEXYkRs!84-<(fb`wA-*{_|?wDf+};CrdkPRy8akV*PUkylU1>f(q;oF$zuv zd~N_6v`Ltkhh+4Qznx#O7qul-`kwvz$sn}C&wGdHv7{>cqkuY=_{}Oq1x>n%jao!l zrq#o{))C`HLiE$EgnekD$e8Erc_lRT%4}!+lT9@T`8}fyy`J@`>nV|ZK3yTY%LAsliG6tF& z6@EV}3&9r@b>(#*y?sbL{Ut7-q;;V#SsWFeA|x*o3~n&_5w{PAL15SGQxDUI8D>y+?edj6~3&kEBvJ&Xxim&hzL0z&7& zaIZX5Er4QvV6O;S>mnsx?j@~UhO3@;YJ5-%(38W?5x&wjWv-xTO^WZLPT4W2(sPed zHPm0<bG=0r6y{+HXBoGIbu`e&R5LpPn-B$H#h8%F6R{%ci0ce z`?q~zPrGYh&Z~tO)Qw|U=Ff=)<_$WfAHqFWJkvI@Qr_~)SAP6FTtY8tkh6)+z16uV zo56?aI&P%D2Iw@0nd>ZNj7aM}G+Ja_zZ2AKQHu;PFxi3vhCFobhWu@5< z*^_<~(K`k9cc0`d1v36&c4vz?p{Q)NjV6J3byW!>k?SuIB<_dca>l>_jWnSwvdiEXsGkP) zCYHmsS-ODB4f{ldd56R;0r@`b%A>l{(dGGL1ZSeR8Bm4Vpj~DO!R@suj|ETzUfl92 zly_%5u=DDPkV{rJf`xnW=AnVLBRQ(~b4@VNDS~7AL*C5>qI3Y(-4yS9a8pzPx4D6j znWHS@&Xm6su_38?G~R{Db~(XULYeb10@UXS`2sr+!8h0L&(yS%(no-GhlKx@lrP4= zjUKj%C&UOwtn(Y+)ItK|s}fPTxy*YX0)+6Q-z$VSG=wHNGTJ6QfHFUTaLF6Lp& z1V8e*Vb^lZX#>qx@s=L?UDw3$*S1dsfnz82=$vR~jwCIeIs(`cL6s=Getz?;3IK{X zLsTN+Z5^oL{;Wub(60XU?-;}w`7^lCdbkI%I1bU>4oSls)|e`m;%}Z&t~yqH)nvT+ z1=HqqKp8^rAeH;y+phNBX-ZTc*gN)^VvB%$c#vWsjq!acS(m9E*eQ)q5OPpTEf!|EX$Bm>6xdZ&*2E~;&Gsu3q$sH1)>GSi7QYJ|BVEC%bXMMwz1x|Wz43T2cBP9+&<%pMDd#*-kcK4g z_{F`^gY`5Jeq3Nz#dM#){NS;K9HzS6RFMrKF2KKVd>DR&NebxOFF zWpE+O|D6Gd)hENP{NBGRm%%27Gm4q;{chztUvs$d2D;#T&Yy=lc?{-!>RPM^Vo*8?3$hx z@XE^L5(?k#n{I}A!tgfE;EBF9By>+j+f3z?b6lUqbL6Ts(Gk#V6*?Mt>TpY@M|WK^ zw@1$y3Fj9udUxjhWPWS>sq4ZNw&Qx!ahR_wo$f@qB&3=iVRjPQ-6Mhb^bR^RAB8&3 z?EZo;>i{Gq@(f5JK!$(D!xV{RrP0B;% zp466vCtJvBvAneeu9}5Jomg2QT1(I4&?lb&G)FEe4$k{|g6Ikc8Knli4-RM7!n!t?DF;^PhDme3ILC;@tq;Bf323Umo}@OI;szPD(F zWqrhB0?4$(OZX3%}uZ(}df+DXMR9wyx4ad$NXQf^MWa@Dx`cqRBtRKy+x$O8%N<5qWh` z(QiX*Zr)H6fH2~J!(6jSUSH)cb0%{MIegnqB3-bjC|V^Kx_t*`>^ISw^0jR^eaGpF4M( zr#vprUc`&a3s+E%Bd((TOd@a0ctU%YEcAD{t9%6P)vYA0NqIzs}tW-Kz z#f5-;<&@56VfOf^AQ1YZ3ct$vGtg8IO=_yQW#9Gp!gTyfkQh|-%J%z}DEi@rro}9p zrh>M^ zoy1#UsBGyH{LRhzoG_f*{#y16sg+EY(<0;9^+gfOl1nLOw?Z%77jLYf=+`d$nT^u4Z+~f!Y0j%YhK+reMzze)=JicKFWc`Ke*MAK-FEv++I2pA+0DHx z5jVNe{w<_*%1?7V5DTwornV{I)c$YP7HN~rL8Tk+QP$RekM5iaZ5;}C9k*D8rwP>o zG)?OxkQCL-5PkQwI<+g3>G#_8^f7lWzr@;gZa;%Qrj(Sfw+vm;Z=4tz*i3grWbgcK zXIUHvApfw+E!H)4Rnpxh#o9XF{Onn1c-lxQz@2B4p z5U$zvZS?m|RYmPqUX||`J2ZW~m3=0f7QBxG=oO&@L2fAs&F${vdyjvxn)63hAB4e6 zY6pV(23QaoPu9D0^9vPm7Hgc#%@v!7L%Sot0gZn?OaH_0{lCpfj2uk=J$%{zVc7jM zlK+1Q47Ps|;s5Wxq`xcJtr67e2cJ{>U1b5TeT(Pf-@hkn5~wT?Hx%domc*DyrvzDr zlVT>{UwBPl4oYh|*{(q;KopJb(U|k^Otsr{OKFJT(SQ5-bgX;#qujvJtM_ypZ}qC% ztJCz%u2yjd9Eu$d(rL@QuJtbxQHE!Y~Z!9pzl|otVE0?UhB~ zF~z@c!w`R87$3)UsNc!&KG&gTq~ugU3t{^UA0)V|Q7|}1sxc}K zFmf?sOmRPG^cV6*(#?r%taf-VJ_$EV!W0p7mC>ZAnx>kL*(eB-7@Qro3wwa=m`z0P zV#GH2FD*nWVqhLV;h^8{PSCU}h=cs=d9Et05e+gsN#x{{QM?Aod5TsQ9qvc9Tpt!@ z;x(E69k~JxCY3x$s>o?Q&_AE!vIcTyOmyajnL@8q%udvlX90G-k+CG}_YXpiFtBn?k<(L**zaJ@_I&$R$I%aezx-#$zEe z>qS+kmb)HR~0PW+mO(*#gmy#5snlE*Tn_s*?)c zi?y{RS*Ywl<}gg^o4<#!X?cIEm0E9uc=E=T14aiaiUX4q*m1+d!{nzZU1(AptI&3j zLov8F3{d7F6Q#Mjxj_P;j##p55;gdZk|MYvnid^HW6dX?-I#1b5*0yc^YARN70dv* z60-*xy4(dKrs9f#pfh6J)b^po5*I=H!}83(A3KZWP7F$W4-=vroa`;j>}sED7Cj8g zDFXQ4+xX|tqV~g3f7LodF85w8pu?jq3@}`(yFUV8Xsd$dqOS_et#H(?^qtlB&%8Q? z{b~H06(N!^>mIEll(41zKmZx{`SB8rGoz4T6y3z)tdMMiHM<`N_Jaa}ye6eEsx(Cw znXBJQL7>KSxMoMyK9g$ibz@OJsrPU@?(aJ>v5}OAOkI1;dM}@P?Cu-pyiiS^N(3c` zIIs%yq1VV?_MUKK!M0&MbsJ>^t&c8P>IVAxDeR#Sc~_Z+#fSN{*@oqtLh+VXYhnVe zeb*Vre!n52UWQBDeoLK<7$=dD}_<4V$2HiJUf6Pp{9Xih(iNWi3Rj)t`2k) zi(_`A>M0o!7~7&|4*DL1g@+l6dG^We2j)?7penux1SpZhu+BFC6omNVs4mH9uT$}> z@;9gF-3!knXkgMXHKr@CX<1%nA?JDE ziYKIXigNneUB*DVJgR&a`JUx8Ix(8zJ<3sE z1Mp%Riazqm1m;{2NW$3i0X11gNrI#sAVrFAE7U!q_FLVWYtiS~c(_|0#G#6QcyZX( z=m6F0g4UqrLM0v^h>;+)*AiYoK@+e2bkvp~c}yJZ2+M#$7c&eGn?{g(bkl(%38vpK zeFhckXfU?jk0no%cyn9lecZRpdX6?(II@5Koev1GZUo`fLD zdnmQbYMjq01JMLDrNLJDn=ckb14{J1VC;dz=G>?s9`}DLtTt0ZfOCgI5*s2FX-ycF zZ`WsluNnQxHvFJtwH|+_&{(mpIqVe%z#?QlOQ0yl(}#o>HRm^~k7F}#mnj9Kl;qf+ zWoHpRiKZ()@iqw}nbQqcS3u{cBStwilFVH7=&ovL7{5uh*EI_+cd9a%B)4kyvN{0~#v2Sz+iSml{WE_Jo3IQEVo_fY$sg4D=V3 z-ocF-k6YLty%x46balXM{pTEL`2B%s)-KE)jFJv26!h%`K%kNjE_S`t9Bfen{S}e! zmk(2=*r9iMtFM;$!8Fi*rFzna!N`$0uDLGg-}DmGg%x zr#lCo==acFUn*ILR8SsUcO|^?jg06AofHkUT5Wb9HDx~buN{deJbwZ`=G_roor=m& zbXLBBuGpikA$SmLh_A&MuZ+xUPk1ic+?TVn031kAAEef%dGwl;c%=mOL+MY}7GJDd zW1To+6%n6n5$TKg%!7XqZo1E3JMu9N;F{dOL>%zZ{iPusxY=^v2{&Ad^s48NeN;R# zj5-lp6QgNiwLQ}Yx`!A1THGzr_E`}tTiB=JOgufZ9S z`Yh-5WqZ_N&5%gYYBHQ+MBdjstm&;rUTJdzF4AiFAvgLIJ9<0sh0V6f|9AQLFH!g} z?}nA>zp=>d{{f54{=dQ^U;W<%--yKaJx?rmgxTr~BC#MvXg#JzxJWf3s2jp856QqD z?Z|Ymyy_Eg))G?`92P@RzL{4?<;Cmy=|O`r@eRgzMD57IO1UV!BEahdh z21+RRm5oJLJ({#Dri|EsY;vIq;vbDvZ=%AEUX8&bZ}pj)mRc|FgGQy`fVCgpgdr*! z&fda)Q)0FE<H`0w z^cqz~VODUP1pf3%^0}axao&1WQowY@Bs-=OredcmU`1ItfvsuP$1;>MWf4PQny$Wi zaoSIuf1+W>V@Vtt$((oBfRD8|KYE}xSmeH6iNsQAwY+Axf&z@%R|5S_gr}tm#f+6~ zbUSV{)41Gvrz;scjl1d;7P?sYbS)SV!2o5hAHJ}d)1ZEl^L&x$iv`%{iye~7k|v?0d%?k7Is7neO3wQlonHl^uX@sr5qtr|oW~qG{yctd zWc_0Ka(sSlQUBB$L*LRf#4n%Y1NU?FUH@TH-?+isD-N`*7R^OwAOU9emyto*9yyyd zuP}V89e-v zfS6_6ga4JC9jmBTh_gV%7#DVp)?5);S6iAAO^&a=8m z6$$zm93xggIYb8nOTAVTTSQ*8orpj#b{n>>88|Y%;UK%m2Ymfoi+K5*f#?7y2VGuj z7|G#O1*XD@BbS@_(|g&-nQ>u+tVn*;6=b?UPZW>bw9%i3xh;I_YLSk<=V=4Ym($ac z@!Eio1k_;V*R%eJhZYDDV|+OyQ^z4JM=-)Aia#Wzd??(q!3&Cg2xj0nk6`cyPZ`(S za0>jAt(3>B1;$_gf6L@#3aDf=iR2D-@oRDD9EOy_v$FCuVK1CIgcx08aLq&1!+h06|9=iKQPH z-R%TXBIB#6V5h)vEhE8xCfXp9#jD#}t&w!_)|KZ|K@{q}7=ie3^G{X<3*kWNB2`Dt zH9wOv_wA0uG~vZ>da!eYR{2)3`!a#vIG?$MQd+n|vvwm|)0mJQvKMqd*P0ZVkSP!0 z&szF-wp4KY??Xc~(7Zfg0a0_&9M_2qK9xa!u&qW-vSG44-;%@Suh;4Zv5*=T6b#sj zHTy>|8Lt&dlaf?PIE-tk&5+5%3_5&CSo0>TQ#-m66E4dgbJU)2zv_^{Vbr$F%iVeXCN&|qP4X#Cmrbk&-%0_Rr3@_;` zeTiACn+v3%=Bfo?uhCLN|4E@CQCsgs2? zwommjCI38WxH)NnpX4h|xZt1q{NOJg$`!z4Nq$;54t{m_V7LMbM{{{5PXPBI&8Qg4 zbbsz>;_IdIh47et`g>@8hduMfCxs_-8NO;}J?0(9lSYNR)jG#q{YeJ8wfQVg=f3TQ zcbI&X08pZcUw$imD5xx(J?{jhtI@z4#FJKFv|j@yY2}Q!$Vs@#h|0z91P~mef-%BM zt}XNy7qh=li_gq*(VDgrw337iUk}UuNklH{onJ#Z2{*vN<0TO({t2T3i|12$1mEpY z*R@CpKbk*qmq5tuC2*|lZNEC}?QA8xhL_mHx|%%1Ig-04)0Pc0I%}Ck7GUl&L7i1u z_p* zV3Y#UK0ZAO(l@YRdA=pwtS?=T@b2pDJbjFNbI_*fS8q_pcu4MfD^*j$^-H*)INBi@s~mn=xq*yzMOlIxefOXDACZuas;?q z7C3(x{tF=Mw$!U9Y*4oB>MEp@-`m-7R zoU2`e`Uo#24^XIyXhif1x*0q>DYRfz*B#L-u13zpHwwmafX-z|=wrYFD(+=^R%!^b zYYmk0N*T>9(2=wNN5o-yZIOXv8rxEuOk^aRyF|(9prfm_>9v(W&Z}yy9wJdv84*hM z_x=}V$TsD%aMmFWb$&wLej%g~qaAMiCB|P~vwOMVBvn;1pF(OA+4LEpEFz0UXCx^wbL45q6)G%m`Zffi2iRm z^LT0-4&^YATfImmvTchY3V+CJvV9O%7775>M3g<&O>n_YAHLfKGHZJ^1E|y~iDN&Z@WEoi`2c}rma_eMj*b540we|WfG`$JapVU^vpDw5 znjM4>DKcT5hpNG_1d=M^26G{q4V{qqGDnMY7G%Jq+&Lcj#DfKNjsv;g4-hwk=Qy?$ zuNLC1Y|dpe8wB7!Z4;In*Et6XPACw){w<}vTiC1`d{VN(I{gq}+@|HWr6Nh$eIWaJ zA}yIZe}cnLVxSo$C^6~NmjR$|i@#7m+iDVRv^|W>l`^~w1kg99DVJnMi(`iF$F)#UIu$4$pK&a2xAaLWA#Ro}Lu;D6q<$1(* zTVDF^z7dX(oCfQAJYQ#QX6SEE7WlTQ$XsY1g7@F{<5(RV!4zc%9$*}~h_=QQTnRfp zY1wNYHfWqDcGt{81ZlL+to9#<{Q!AJPjUWTW&cY%|4U_aFfskthLruE0{j1A(sKM0 z7yDnBv|IKYYzRAz-%z}$O4^f1PvdCVaVDC_`PB2v!)#4H4mRY_XrnP#E@$8GcNF(A zNfg?4?<_E)s2483NN#*z1f_oY;*k2n{4DOA4Pf`kIvwlV@<_fQ|Ipt|OE1b+wS68i zGNdFEi1HkV^Y=U=kt#6tPR*B1eclaxARHRvi4a0JIK&M(B0Azl4FE#N46sDHCpYf; za7ZZQ4Lf2o^y6Uv#0Kp;-?bqO-m;{HYC4cVg1qeILDUQnYTpSeZ%0d_eoh zO_Cp9paCgf8K@2QA}Gf`j)Qz(=8rUlYxP`n-A@9%Xb}nIi7uaaG~DWdX@FMCI^}K< zN|w;}#)%iNqEn9`kC2gw!Kp}InhzqgA3fTzL2rod8Ro4+n|~p z&ii@J&DuR8V0)_&X{y4~9u^(G+1?DWoHBjS3Y1>4S*ZT1q+t;;uJhR$NIS9FMEDx+ zuq%O`G`8tBnlPloG%pr&;2Q2OQv~9BVf>=w+ri*PXXkE^d9Hd?R=$OfV{V2Dg-zf> zs6WgkHP1A+oU{(d4fdsR6E*TWLMX7}+U@I8>e>h2P->RQt7UwN$AEt%_VpUr&}ewPbP+>ZChbjnhniJ5ozTL^%FSOtc_?_ z86>FpF<)hsKY~8Zqt@WLMlKlnE#tR9}s@Jq<OyN^X=nSsxV8O*|Fl zvZlSada;2pN@Db6W-4D~EPeKAy1FLBp5evLIWx`LD{Mr?k!8P@X4Gq@TbJSNJ85bJ zQBv&4>!41Qv8hzytxI~3KG&*mEUy~S+@7g%fjnd!O*hS*OHi9$=S-!GJU^LCKTn*F zFPDhEn2iMr`x%yATTh)iTUlhs)lH>#WOKOor&m1!!7XVRJ}%T+hKqeJs(85NQIH_U z4;A*!QMg{zD6Lqi>lVvD(WM-$Z};T6Riv_S#qbP1@~)s8o8Pnlb*|eL$a5g4eN2sY zF05AiXhEBhPvu-{bw#kQN@93U^ybcy=2QTc#A^n_UQB+zKZFLq!ST!#JURxv>q&z! zFzouS#@rSoLYCqRDVP$Dd68yxLe|^nE4Sn^+=3LZWnZi`t*DXA@ivHuvOK2RcSs41 zomZNfm(@sr{pOyanIN25oBOItMU?l#+f*^NR{m)#ZfYF7iTga)^>Qtf3PCUG$~C&EQBgON!2?K$h#-$DHQGN8Q?0Mo2`U8y(EBnw-1GH4SXsPRl@q}!GCjr0XOb*+w}gPpLMp?pdU-+S8V zxpQw@Mbw>l<4OC2#tNT0ONC0Tfsy08pX)i|%yeN@IV**2*oJM_gYI?mHYf>r3g;3S z9Sy|ny@`*JsEWbw4mYRmb;BBJ9g)mL+$EVbib|~LkG+pR)Pg7-Qyh;P-I8l6;^>sQ zbvCZyt5nPNitOKwAIi{rj;}%o*xr_ges6}}GRi23spi?Y$-!mNn3qBq7DnxKKkeUH zK})#}ec)spb<;Ej=5zRY6mo*pMMduspgk#ogO%uXPcM|W_&w#ndFzzEh)gUJ*tdJB zq-`7jea8Q5a{n{U89A9){%gi_{L{hwKW9AK|8B->JEQ({3oA(#>#?=8; ziWsyiwFVfa<2X^IL=cn*L~&{~*em~QrutX2I1Wkas*E^Lf)am#l*GpUL#W9E(BNPRfZn-rkc)O}6(RkfwZu&L8 zmrDj-%&UIa->9LleW4ci;-_>STja9~a2FU?7=_n2FxE>y3}wF9zB_PGSi%lpyf)up z^ox7_b#8?SQl|ULzRT+wjA?M+vHjw?WN+9ABuuR#&C5N1PgUQ=`wqtQJ_-$OKTc*3 z{?w&>$zCFc<$m=)*4AI4loa9B&TlFOeLMK;31LMKHYv_tevGanp5YBLnCyrY+=Hwm zcP_7m(=9@DO#nb4a@|q+<6cr9SlGgBU9(qiVe>!xP5d#ZH4rP!&rK?X5+Wnghp`4u zx`(*hG6}*fjQV>e4nNpH<$8u7nD<6c0(^jDVgt{g=~vS&Yzmq^hRsTde}pjslMC1x z$rCgORJx?eCTSuVnVKwSQe%3oVjixNLS;rt()p6-%}@#jmRVEGL4+-6rU>;b9-@HWlt_Myd9tmfdcB z2}EQ)*PtIh)7Lb`!{zOQp7v2;l(+ZbZ1UaX73b}BUKrwFQEid{V8`Y!_ ziy@?4t^H*!hSa{jMAgYxA$rtCdRyKSof37eA=N~$@Swpm%F|#$EVnY+T%p6iLs-XT zIhF_lQKE@$#OdmfnSXyHW}Po)GYlh*9HRI^VPqp^gSEaBRGGn|MYp3>VDM(tXK@yH z9f^WatqEze>~BWk&FW-)(gJAM?LaCh>T-02;5|Q+*a~)<$+~?{z`q?`L`(_~gei{Y zRYT%9LaunaWFS^=>SbvXgL(x(N}w6kqBLfQMLLUG&+s4jV3mVhj4&VYn_@!{HqAp^ zN?ZeYW_+WBxxnMbz>3}+hsQ5v1h~n4HwuEw32%YwaeSE_Y1?%tO1z%OZ~=8Ufxx{J z$|y6`#S#V{WdNbIK2$>!)>$9C$kNQRAyr38TO*N`Ym$r#d$-0=E#q>Keg|^ysEj?9*^13y#^7= zIx{HVifUB}&}47q+cNDGs9eVYH32W=(!s^HAq4w=B&heW;DbX8%4uq;lEJ8iwZc>| zgDB&#-`W#Txg@A)&r)aoI%0lVDjE^E+%kZRj7Me6ADok{Gs&ew<5eRsqY>{)5uX(0 zv-Ra`WOS9aHNsRhk-;rrI_*sAaZtiIq#VJ2#tqPmeL^l8eA*H@OOKYcd6m;>cAeCi zvCuaA7YqShUu9*(-Gz0PV?;ZW#PC~DN!$P@>`>-2zE1=}3CxtqrU#?VI1}n6ihLty zkll(pIr>ww{Gt{?rzMPdgT+autjv-3(~LbOLG)qERA?R0OVeH<<*KEV8I095by!Ou za1Vh}$JG*&Ru|g7$$2z?uhg8sHo^6!gPut*(I__Qw;g_vNz8%02{ z&TaI%RUIL-H)7h&YZ70js_I$uCExh)0aPXK9xbd@Ks58V=#E4~F3s$Y12D zgN1oZ6Vs@~GI`nC9qS+{KY@>N@wAJo3YS5(9y3vAx{Ph6fw<()PQ&<9DxuVb6lw|} zB#fN_xcHb(J{i5N8G;wXs^|PPf;L)~x1uRZN7*V%amL*Q;J9l| zKu0rdj05njf#ahP}{bEO?ZMRQ`A!Uwcaq1H&J=%oOU`TLw`O7 z{q5!T=2w5YvJQ5DpjmbL87azf0VE%!W_zJGtPt&F;WD)nJD7T(0yMKjAI#hA3^Y`$ z$7U1voSwsSJ~u7h6aDJD(Dm2Y<<~s62+x!Ci>vuIohE~vh+WiI62qT8vPe9>zvwR`@b%j+&a)_NZEPQ)7<$zql$Mc9Rd|bY=w{VPhA1| zX*!!5*Vo@#xH-AD^liVo6DzB0@0>2SZC_g-POcl5va_$h&1Q1b`Mi9iC{L&*>e>7p zTY_U8fcMdtNg-zR_a7b;4)xsc=&~cH$$WebjXRmukomUDqP1ONaLsbh@k4Kgt?AVCr0H)SXvCVf45aC;`3boEX_-YKA z)3VNRIs>6*n@czBL3dd5afR7sqz;Y$RMz9ug((^<;N>0q4_If@ITgUmM~5#;9<-eu znB|+k&sZO1EtJVuz*xU7v%VeR&2_ zvY#Pzl|=Omo++BYxxLRDo|jZR`i->(&=66YUf)o&TirrMrU$)9Ox1W(<@QOorm z3goHWWjG)MOn|7GsT}zbwDo4x?Ni|){yk)dtQhU$_oSa^-q`UUMC?D(^j}658{2=U z2|52s4*m}j`>#IT|F=UG_3)J{ShE;BJafMoIb=<@Oyp5BT}T2=Up{?n^L|D3}x+^K#74S%EY zk~_Qs8VS#0W4g zat%M8iC@s|hb7-e@8AiPIcSqS02n>zjXo@tT^j0--Z$vsQ4;GtmvoR=d8#m*KcsxQ zW@jtmWmo#UjVqHEF6bp3qodHDlv;Nb#@_Mnyfw{9{^ppg3Np3y$0Jotw;q54NlJx= zj)$HPUvN_V1qFelds3pOl7hUnA-80`{IAK% z*IM<+#n>J@ra927`FJmjFwVFpornkZ&=vz>yp{arnH^~Q_)T{Eaq=4gF@LSv(>^NQ0JMjz4h(5?=9+hb|v)%VU9&m4Fj<-_@ zTJUO8)9CK<^c$5AhE%6H#{1C!6d}IW0K}f}Wm;aVR%ooUE@Z(Q@X@J~DGWWlg*UIC9%lTvN6KLp?QY;Ue?X(=GMFXDm0Gl z=0BJT91Oj^*_GcSj}!;rI=G6K)izL%jyA&5BHdY`slR!J`v8ALt5JGZZ`Xp~8n!Om zp$|dO$TR5|9UdVu0+RWNuh&Ej@aXP^nJoBp=#m3xh{AV}lYjpeXb(m}pdnqKcd|#; zOq4YUBy3|Yv;OUjBW8@R)~WvNG4@VDnn3NcX4$rF+qP}nw!5q@ z+qP}nw!gBi?$Y$XPn>-wVo$`J`*pQ$)_ODZeNu!K@YB7Zc5H?+m1L=z8!fTq1>Ips zhX0ZJDbSQCA_!9*Bk`BznJtO)cd=L{h~T7DGI|S`-Si2^@3L|(m23k4Kv zYE0-@Wi$z-+KkAQu*Ls4;B4wBRZ|vLdU@~?Vxz(RNvF2xnM*^l;m9GE4yvR3!krOT z5QqyVF8(Dwg(r2$etBUQobQiw3Yp~u*lr*)Q6yBgILHep5*AUD*G79UZGgyE2`sy# zc;tT_Wl2^GI^$UH_AFaw+|4!+)vjFly+uCy%v+}{%A-6wg^~AWnN>IMlx?S2jhyYR z8YJp7uTx`9H!6#<$%fjFY60k-saA%b8adM>30C(W(X1}SQ47g2UYcvxG&xnF5P%$Y zUcNvYlXpgsz`sSxZ!El$YmHsQ6t3D7(%5E)z!Vb8Qz9i&_=~>qe4O)jce`K?Y5vV~ zY))n+^T>q5OsZxYiK6Pxdd{hx8D`|wjo-?-Le-C`jsJ1GZycw^iWlC+(V95lqWIuO z4tMqS9@t7^biKVadr8-zy7=-V;BW~TNz(qn+U6$qtMSfBHnwvz+NOP ziAgyTU@EcNKX%#ZSNzZIb|c$hPCL~;i!#P)i|<=q?$nLijUBkj^@v;ciA!~~Q7eF= zHv}?lKkfl_FRNVR8C`tNVeyZB3Stqcr=d`up)VV{&rvCf!lVyc-37!r(ljomHu*i) zAwhX!Ftr&} ztEtlEu<31D=wI{sF>K8{RNHCTaowc4wb<+RpfRi4Wa>H6R@Q7&x;|KIGWm-%qJ!G< zL#myqUNkAghcPtE;GAWY*$#6jqR}FXyRxF>lbyisNKQ-f>Se)vmEoULlQ9Lt-qNV1 ziMd}9;XqB>G&$8+=w)EC7LZd@L8&@Dm7#Y1+<31Ye@ZWaeaDL49S<(D_NBD5+*Uj2lmD$c zp#3z5WXr6dTZZ5DAFQ#pD586q!}Mq}G9bet=rBkgJapbb-xF5VMFQ*&>r$uvjPB5$^4vEoh+_7kWty80$XaLTyIt z_h)sXm}@_K9`u6KycHKh3ZScNzuL)S%%S`39SMcZcx}Qd3j?bF?hWc+>|26DBegN0 z8wpEIB``l&Aa*Dk<1rX{E+}uHj11?8c}LlnJg+;_N@@$(nr{(X82lHy+6eq#xIT0_ zKxWK{!%|Nb`}`n$quuPd12}Tv%}}N882Z^4E07E1qLass&|MQtJ@@xlC))6!z756n z2cLyNnacu3dI$Y{q%%VRzhCtC7rMk6BjlKf-RAg$*_U@dQl(cz_baMyT<=~y*j4{{ z{PMZHB=P;I*Qoyp6f+fMf>`^7x{IA%-?+cv0W>(pa3;ygC-7DJ>SV^oaSbG3o~qJi z#5hDl4n_oraTfyJ%#k%mgW2yi#cM_Fog^WoruJyyRrTm$#A^d`oVqk0R1~>u4`8Ic zzmtyUu?*fV1+YZ|jNVBZ{!HQui;VTA{yBO3q1o#`VT2$dEnL32nXH!K(}?7i*3$R$--0=q$)Gga zf4+;D9+T33VGzRD5Jujp-_FTN!WZeF%1>{02X6t>)9MahX{0oJKWsX8@?^_B2 z5;R6dy=ZOE6{a?I&#A{#*P7O{;$O$maeJ|v7ZLOn$KXO`*o*zq1jn*3?)~)G*@$T1!TcC3|je1%rPr z-%a_B?zQ-F)VL43=-BGB))^PJReG2IG1Gfk{BkD8u7pl4j(E@6GkQxo#c^2L)TX?6 zN*vN_2BEJ|$(9tAT#6p_-qN9!ewUnYE-X&K!xTZ(0*u5<3@8~)hc~#qc4X|{`PxR$ z^Ll-NhpOS~vG`GZuZ^g_=|trNfUhNr|70za3Yy`#dE;n!9c>#%yuvc_!3?z#p`3STE8=n%{aLsjnB^1Cv3{gN)8cewGOFIW8vJ+;$$)G-dqik_<&rNq2t~-?$QG_0iuvi*o1X@0KE5W8Ecj z+pV#)#7JCsLdU>aseY_8wLfch|Gd>oK@egGc_9|a2iOA~@{sMT7ul6=w3V*dB&Q&J zY61J%!gn+k-=*f9_?`_Iu;X~FOYs59()af&Wn959@nfB zKJ%TB`him<>C1H}*&f84Ic_M~I4hPz++^0LIa`^l8>b|pHNbpg6Y6p{M26%UCujlV z+I%1`LQBRB2yvo#c41FhEJIHUn@>Cp|FA27jS|^Q{F(H+c0?812v*sGRN zOCce~Fa9zjPe^p(ficbsJB*54$gJ)dO!_q23!VySX4JDURCc0965w=n)HqRhHWYQf zH`$_m3e5gJx!`O$XISrK?dK%#PI0ani6}e>LO|Vp_w@wlK z*84xQWkt9vp_c9UZCG_7R{9Vtl2dL;Oy^W(GeytQ?IJitFIPxevT&rT;&%NcYdqS`l`@n9J zUDON^(2L>}9YEf{(D0tTbUO-5^te15+F@%=+zQ3{Y7Jj8f6kQ|H zd<~l^)Ar2d?!o2Gxq-v<8jCd7hdqIT2=gaLX{mAwpyONm=9K~8xM<^Fmf1dHWJpz9 z8D=1wWaHo&>ybrW?G)2>Or`7lsRDXt{xI@TZR>eTW;ki!!{xNPCWRq}lrD48h}r{; zA`5>^!Z!1GNj}Fp41aaZl9{sqA&b}!k^CDI#Cek_V1^as2(RD5asdMkJwF6SQ58dE zZWI{TS@8E_52NG?x@jy%Eb~Gn)^y)JAl-t?z|vG`&#wT!ZFh_QRNgStW|k=5qCY<}-9y}QVL{IsZ*8a2Dv-fVehs7Sp!;H}{JRoozmX)sZc4PwkLA|-h#wZe0HTqiJ8mOiA zt^C1`Q`Q9rk}*yFC7@ZND=Z(N$_%SBy-rqqV}zaA2hyW(kUb&^`uB{WfBhT6KW(iv z6A~0OMl%E=~V(qSktGcGd>=gWUnG zYa_AZ#O*E-a!kA~DTmrM);iVOru3^)5E~BgX@#;|Odigqa1}9_nJAIay7l6t3}jcKWBAz=x0+(lD# zV)n0taxJF6vSA*z|G{yYj{YaU>VG|_|9N<)-Mr~}7q|8Ox7q6&`1T7wXj}g}pOxdMGK{U* zyZ{*3W1MUwP1UM*%Xw+sou&{3YA9^OC+j>EJqg^qJa<>Re_aQ3HMi-&8@F;eK&j?v zbbs7`I`psY4hPhBZGZ8^RDIBXYH+y0@Zj8fJr&}=*x($p(PYhU3)jye>E|pl{kpzk z!YQS2aHL>7!Htj}tze&_=iR+z=gg-chua!4GL~L}DzXp!opzk@)S>HuwyVHAa<4#A+ZhS$z_cnp@rQ7odC@a{-g|gR=MTWfJ zHV_58E@-%w+thXZV@Q1bL1j!GDy?6PTw#}ecaO=<0XNel3pd=KG51zO-Em^$i3Ucn zy!l6&IiL~axNL`S{#~=YS3R~K8i*Kh9B{xj`ENF0(2cdxlhK0vn_o}Gw~iOD=0re0 z<8w0bI60Y+e`NdHhIVvELw_662(X-I*!1C`Bqxk3N^*aq; zH-g2I#qqqVRitMve_@Y~ff2{js9;ozfap|Or6V8L^8D6Y`pY}+B~I#5l36^sAvaz(`Uny;yMnB@3tfi2f@5d> zI|UH9<0GreJZX0UL}rJ7gY0n-TSDc_sEg~#gv&Xi3r~rk_Ki-r zgS{!)ILm1=Pf3E{zjDrYcf*QrUVC%B-I+*OqZtErDHOGa*8_IBU%`>=?e2bJPaB4S z1nuYAX(I>+XDrs_PzaHEVPb0r#z?F}^$z~2+p`e1vd?}X9*t-nxRucW4GV1xqWRw7kY@Z0cxRX4--)A(*x{vfgte zGzEt(1L+Nbg=ukc>+{`^gzdPR=!du&H0)OVi#)l*R(0!u_)#=;-0*Eh!3tJ>P)?B3 zIu$kE-q;PZ_Hj#kju0|l*}Y#sE_}t5wcsxuLIdgGiimkryVqb9Qmv5ka3oM=@}M=f zcy5oQKNWThGMfzJYF0a1+PrS2h`Z_Vz`dl^6~EhHaoosABr4kKI3UU%R9?R+QX-0F zekH{vM9q$V$1t0`Qs*061PUg+FaNzKHJ{W>1WhT#)Us$~I)=Z;&tEmB(mU=)qCI=7 zdS?vDCA{k7dCP3WQRCqbq2-Y9&9x+VozMW13ZLM`93dVn|aQZxrGoK~oZt zRvfB`(_7*3KxV6jvswzAWLekP6+hJlkH}1OuqHEY+mh>R(RvtJ?^7&o%#hTIMN>xJF`19oqck}9FUuC z2pWK&ItJ!yiQ=*bo;@{NxU-W??!qk5=iR*XDWL+f$p7`XNOD>;8D0N&m4T9<+Jns` z>*?=%&yL>?WDA3=AJwjJFWDbu>vtFF`{Xqi%c>=${qZE6GAP&@N#P8g+8{d$)^{r9 zMmf%AR6y_7@$JFa`1M!bXCXw8s>TxeI}=u8Ds6g{MXrk_Qi%4s0IN(Lj6R8%Eh99( zx3$Um#2!n;&iuIqqAJP!@(O0y&Mhi;#40l&24wZZ+gM?Z znWIByZOsOK$Y>EV;lMZEt@gvS|6|ykZt@wyV!=K_au?K1V;~M_2!&279e9YxLkBJZ zjy*civsU(5_elqhfktyn`BFSR}O1saMNM%7TNF&}n-Q|rO`(N|RTC=Q>-AAXQQkwo2z+%n10mqn(I4Zn%+TYPrwCKN%Vw z83qkW?HTW|sX_+?Dp33Ib)PsrG;Cz3&gFCa%Jm7wTmDTLJ9IdB5ek{U_`PYJkMYdd zbK%}eXpk1wpU%lygRpR)c+hm6WNu;28n*W!vb<7F_T93k%<2=^<4k=27IQ*4TV6o6 z2;kg#rtceDV>TxIiiP+{kHWlw*NGK48iZTv1=lr0DW)Z+eTMxcAE7IQCWg1Cu`N<< zQiBB!Hm_j34~M}sGH4fsUiw8U4JFb5{XhGV%l zZ@EeIHy3oKmMY3S&BIzpBMopzyG4mb23i0@@_8{ne3?qCMBthiVkUb<(_h0z;4m3? zo~C!LBySUZvr%JpGb79JdXtgZc!Mu8HnEqr}inq=99|j3hav!9?c~(!jlA#XVRYx z4O6wc;L8?!{DQo=q7enBFHoSP^UQoogbXtdid1!B zWsx1Da}@(0110^Orm6=+i~11|EGQyCsM6S3)c4O0{T(UHTxC`@UpjhS`nVR(G6Qvp zj`>%u2$2juUlTm4JO6nJplH@w6F3*EN9z(;H;dIGPw#9)>wuyGJEP2QsE=~5z)ebJ z8pRe-x`?VNIt3QI=VSwU{+rhz2*aWwnIs==u%N(q4rp0Dn0KBXPPrrtU)*nT{geA` zSM~*S00mW?mnexn>bRoTh_B~F;*}^ho8pSLf28%rBY0KJ2@W2N-tO$t8 zWDMSZ=ugY+>7#joec3>O09Q_(Mf~<5-x|sb2bUqwN>=I%iET7g^qP{hJpuHbueyO` z&w zdHDT!Gm(50P)pFO#`QWY%ffX)rPjn*3Vijp8hyja+``kQt(b~a0y6H~Ee4-wbm3=u zUN!7XjBz4JN~3tn0r>gtx3wW?maYP@0yx$z4didzO(h9XLMU>-odPFlXO0Vv`whh` zqJ+p-OL-(K1a&8>`HUZWV3sV&LE#b0V0XnGeA>Ov4gIUZIKX-JKM2$%R3}GvUeAC; z!aY^ZxGFyXjUBj~cT@5WTko8Z?}Euqu3v(fK9T|BF^-`V0O2LwFfpq2J-lOGC{H$_ zT~B;2Z35CtS3S`d_zwwYYQ$$9yQa;b3vKI9n0|wF5785a7p+^bLKxbrp?TTT4vo<~ zI(Kdc^gSJm06JKibXNQ!YsS^yw<)eOmD`>BxuHv1(|6|6$zJ2tKhYlrhA_`u0OHB zL-9Kka^pD75lEZijJPiF!5G1c3Z6-m&dQf&N1OgwrO1#rCfE*pk7CNQlbWW(;?Cr? zn{>cHU2(iDEPX3ab7wV2apq+fh{xoK_^Phs?Z%K_F)`%O#%!pS^BkybvNLG1f|vHB zuvag9sp%R(9k|o~O(C2ea0J4I*DEH7|J5mG-Zo>&j?O7k32ZU**BufYOELi%*v*=d zNqf%EGmWL3K@uHm1Y6>0lqF(KMrbJ3&uq$f`4K?xGOiYzvt@Iv@@D8Cm-u5EI-&jq zTbMi}_CWFTtCN;Rxw$sqCt=qiH9DH$`L!g7udFBXo)tFoYTM7txmQ&Qir?aPw#>qM zHGAW}iEy7PyBDuic)qPKi>=yTGozR4+=m%9@#Jf4Q&vq+vkdMatJT)ne>PjJ={XUG zUCn%|dq2e>1E(nE!Vw9D=1 zv)Pr?DwCRQk_%b`egp;+il)Gb2C`E92L9FNT04cqmIlp?hUD92J3Hm~how1S6MxOY zbKvKA|L7@Ku+OP@-`}-W^v-klwma9*Bj*#VWc4-~)P`%g`h{=C;qBlhE*W9+t_*99 z`j#N)4$q^HuzM%|htDfcU!_eySaIRx04z)X%O-F9g)ick(O(Nu6spm8^W#=LAN5nN zkM~>?IZrRAtKJt;vDkB0^Gk-%@VOf4L2^Vg!+dVe(q{1sTH-Hj4Db9hpXdDF)L}_M z_x-_$awZ(MIaEfLxHt^%HT~Khhq)`P)1K_`mO0eh+7H8D_l#C|knLm<-Uc6S!^CvM z0E@ED?sHAkoNm&DIaMr2dlU-&Baxu=?=pH5A4J<v_`;7+UMDMrT}<&WXYXpHB_6MZnFfOL!Kb3U zXJw1qJW*GlJU)a~|KH(hfY()`IF5wL?KutU20_FGE$D%(5#^tsu^7Sb2q%bU* z_Qumk0%Tg8F+O5dAcz}h8IaJXBQFt16GOss9nCJ`8+hX4t_RUBOuv_%-M+bsaf<2D z?Wv-jcV#J)&Py4<3Fmy{@k2r?U5n@=bQ8&*N_5TD9a83}uepK#5Sd<;Ng=B64kmADM_>Lwef1~HkV$)*@S>QFXPjjIz zVSMbd*@ppJO`Lg=RRjXD7o^SQBU<-eYf>*koKx2R>~pct91VS8sbTOSB*vY{NWL#% zmXbuW%LWya+5^}T2NGE7cT1-3gUZjyQ&SC-rX-Sdy*p`ez6!lqvyuw*0}Vns3V+)y z3b{uLyP&he3|03yA56Zkvz{QDI}AZ@iu^_u-)hOp7k8loWvNqY1=}|~^nIO$Xf-vH z`+*S-N!RcH0sc7hLS>+7Kf-QYujQy4o&uVgX9Q^irO$36n0xatBZmQM3f73B@#4!& zuVE=d1~Y&%uQ10@eRZnOd_Ertrin3Ro{0Hreb7n_iu{h?lCT03iDyXALt5!AAE%V< z1NHum-PP7f4fEQ){P?&910Rp_!B;;O7Tn96)hU9>&$AE06l~{~EDiyxM~m!Rt)vLJ zc5dJJ=0`j=QaqSIA?Y<$Y>GSv-ps1LJ#C3!r7Y4N)Q|Dw^F0g*yygm8BZHFH5=J4B zqgcpO=6+#<^Y@#gj9d~n`$kDSfm#(uN9v-?i3T7G?fNOny~SL7o+u|EK;ArZBpC1z zx$4D&)!k+GHHhP*N{Yo8hFY`rO~D>*Z2h}{0)OH4433P9A?A6u2&39Je}EV6y)m9B z9;&sAvq*o$8)l5)s_h5H=d=Qrrzklrh9Tx2S$;gIT&&e?dXtMN^9POuAV*c--xNhO?8*IXwl&E3MBKo)Z zh%;>nKSPh15x=-Rq1gEMDv0D@M-pBU){_*XFqAB?!;9HRYejK^dvJqdq0Pv)Q=0u#k8Oz39y(GiK(OK_FLqd@!*9Ns1dhq)q;f+a;vmZ zZb*a&i=uV#Urw)^jxuMPVX0u1>P&^v_uDX9Mfurz01j<_8b;+T)@(;t45(X(MJp<1 zQ)r1^kgW=yKShC9@b@}UoW;0;QKrQCC`lH-Sa{wu$YYewJQUzU=q?f7rTwb!DOZaDk#(&+UA*kL|40^30LbcyiNR17c3u1uCF@ zshTl3Skc#eG_sYGTN&iEM*!7aE^nsl10L6&EPVJQ;qe3dmz2M}F3z#7&cxW`Bw}Iw*_%8J7~a=XHr=CsDyo z92z&um^aBZl#}4H2DIeZv~ah07J(kFcpOE~Z6S|F4{x4@?oqwlO0~W@&JYt}!A)R~ zF#zSn{kYbF@wnWZRbQHi6BCjaBo>fttDP`%m4MzoI@NQsHQ}nTDvm835Qa5~La#aB zRaRR394)T+($KOQ5{8CnwUc=cXDgL}{gs?BE}fRFlnkX7;6Hg@6`P(M)KI40DzdRX z>rK?-f4=t*XGh|jD5qfyD~ShL5H(Y9I4Xl$4W%$(wC()%8|2`}<#A!n46*ordEkQ1 zb?3&WB1GU-enYx-X~>R@BJr}pIkVE9o=IP!qEWujXfqud`N`y0!-Om+4*sa~KMb1t;;h)$7q z9qwBSpGP4Qctm@!u5!JplBVK(BZo8-Cks+q1@f&eVx|R+uMC%y?v~@> z(}d<~Xj7q|^Eb)@!TR-CDancT!V6MFBApsqZ4K2}DK7hoN3z`Hm)}CKKZ?o{8}!^x zH#`Z)9s(!F)ZSbuwyNrN9kE1`AUyK`3D$c-r!!;;vWg98{ZzY70)C3pTMSJcu`B-E zyIP66qm#$0j>s2V|EIL$Ps!nF9oD1~F5fJzR|#2=+?+a_Z(W6VJ?#C0CX8URH?0jS zRgE+km2R*45PI7BxQ`d-l!Ef86{td=P3zSN3e@GN`5oa=q*PR!vsmkJI4KWnLSfF2 z1`~vk7&=xLq0yCc@b5y4*E(eM5RHT{F3t*miAfH04y!6c3Om4M#L%m^YQLZZ-xPLT z+;d-bU4a21Pkm;T59{RQ;_fu=SLA7tMKl#pV-a;Yahq5AR;0MnsILNchD-@{QqOhv zzv6WY+`?Y&-vIuzGcpI4tjI>V#-_gCQ>ct|Qy3~*cQ}I+sP<%T9z+b4+8EI>Lu?qF$ecsz9r(wx64guSV>(*|ufG>5 z=Py#1hhXDU(;D$3IJPr#N)k1X@W(W-GX<5uoEOF1_*W%XQm-*tkU5gp#>zFz<)pOl z4MT@#5#Q_Rt(Z)qS+lMDvxYNA{_q*-DSiDX$H<0vmS>^S;d8_*Q zT*g(g?WDtA%wSQNuqx?VwirFyT}|=2Oa64*?zb*$rvy<@;UdvBd0Ub*?^RlN4U{>h zTyPLxTlg{4pN)A6y~==R&Fd&?2usEw9sG2qWxd5E@U2Rnb>F6gqB4)MGnKO4JzTmif$|{%K z)Y#!n;o@QIFl6&a8qKbEyTqSug6I^}ye|&y4UF?4Kjh4Y?=Wd$R)dfzL~$v%CBKAK?6>YO4P^W&YRf_@610m7V*)YhyWB z{y#EaEdN&-uUcK{bhLk~vXc>wj(<}I>j{B*@zxK$J8`WaHcU0#mWrqPNnTFJ`KM;J)Pao3SE3$UoRu~99K@yiZLZ= zellFEXUi#9mFb5W(K_@2Qm0ZSg?v%j3(9@hyYx{C?w#%s@hcq0tw0gjwo z0OZJ<7pwC(bUs6q5KX3EG0QcNca#fAKMH_xwt1VlmAt-O;ccd6EX@u0wFJ2NCzqYB zt@@eBuiA*$1$d7<6pzt#8?P}}03^~hM!!V1RTLK*N3_M_CnFOL1E-gryl#QDGe^!} zmz8(%DC@_xKM@=4neg_1sQDhptC7QCw?&mh0EwGDCHg~D?#;EJbMLTq6oZ#ehfrm% zAy;JD=6|g9#gj{c30q{De6jZ8!Z{p9&PamVR2lmYF$_Xth0D*SY4{{FFj`gDHiVQy3EZ4*X`}PuFlYt*1djTv( zMV{rO=ifVUw@n*Ljcc4_RA@|XV%Y(|d16YEcqrlF<=L) zcK)h2PtIjjIi#2Q$mrrQEaYm(9h2O%N6P0lL#G!~24Xg8y97M4V)d_0hagjO%FBB_wHZ@HIgg=QO`wEEsen4;B|=eZBF z{myKZ&drgRcC$;<0GpEE8iDOTnoZvH9^p*k`AzYn zO4`|1{6`@LIlECsiS67Q7M%7P(eVR8;U1A>=Uj8Zi|J&=yPT%nJuJIyQojie%Z<48HJwKC(M} zG%F|Gc@r@sv5sJY1_w4zp4&!|h^r>IGZ*VYtX~S~mquh4!W6kA0IRl(m z)9&YoX-6nt7%XWe=wI!lpwPdCl1^7iAzJECd6BSfig2bwJ^N_Bnod!;2ISdelA=@y-At!B{uIP8 z>#8U@Tg+BsDfCWrtU_E3RT^o&?4tJ%Lld-)_rjqYMPDn>NaLtAS_Ivr)uJ{`XSpue ztjf%(b-u|%YsD@P+LAdoRE#YeutHkI>&bG{p7^d6F57@Cp0N8Lx+vh#>UAe9FerL# zYHJppcK{*57D^TvO30JRq!5Yib)$Q)V_U*m&2(Cc7-vX#>opEmh0m~F!uZrO zOFxQPlOk=IjbOl|ksy(>Eeug>fkEikUQhf8!7tc5Qd!#*>T6eA&H9Nz>|}(JH*f=| zRB~Un+_F@>X!^FlU}uID3{_S|fyO&I-LTzvzg;nmd#T*OBccm!Io5hhO1#1bV!w#U z6HXmRYidkou5etptK?&9)FI2T*pu1;zm6t&n2*2I^LNDigxWXd%1C=fCY>e0)r)(jEHvw) z4O#i}cVEcXa}O#?Nb{%QRMF)J`{J3tBra{sNEK23)Rfj=S)_|UlFTB78Cd!<4ksj@ z@@$xYbP_taR5ovpL=37y1k``HCF<2G??Q07|KWT&!Mr)S`unKk(9+{aj7iP%$)E07 z7nWD&)%=Rp>h0&~51%*AG ziB5YvJH;FhmJyb|;ayfF+{TTNGB!3D1e7LMJ%19TcxQUQ;85m{xpbmxuCaRQ!d-1< zikkkQ>B1s9PVHd*u3gzd_8CPr7``o@qml?uz08(qMg&VdklrgkyLaqzQU8uyY{{1L z@w0>u-bI3c$7aDNR#dAySX(n{D#e+!e&6&?7Cf)fGx%JG@nQ2vX>IOR`XBB_4$TX= z(X#bgE&CWRZhfbC$5a|X-1mFJgW_o(2ToCznKX^a=3lbzCZ-_uX|s>fCm%DkGcKVT z;!Oz}Q5-vKDs%Y*8RE*w^#K%0^r}Gyt45nwoofQNw)Fc8T2elG;MfR~)=S?8J52`h z#&lNes_=1YQi;+~?m2d9RR=49z46xU8J%Qpa0xoe^K>kUiB5)jsB25f!QVGL| zhrxyitGfDzzK4p$T}5X1`)_idApPTF-F;6ES2rX>hom&x%3uh_^a1p>8D${t_)(Z` zSY{whZ`J89c5rJ-<3qo&hs8I@nh7$cNb{j2Fti09sOcMM zf?rO2irI;r1sLJrL_%+8{3ttNdioVO{PO)}inYir7^e5)rGsOX8_!ZH^c2sVOkMrO zM)Et5O8iAyH5K_HatGtoh_`~WG&QC&LHrkWC~8|4JOYICKXoRxyvgs@%;q8%mbWg% zL0`L|LOR99mR`>y{c!9KdlXr?_9u{PkLQ!ikAuW6jVdg-sm(dDnu4C;d&{pvThTyV z!{abF>Wu ziN;deRa-(z9f9#c*40<=ZQ7VSgVwO0Gvmj6DQb2rV?2>fP7Rmu*0AC5Sl(_O#&4hx z&>N|zR$+&Qf#!-vBXkzK{Cff8N=CnSAf3I1Z}ZS<50PfZ=-PUThUsWf_ca!O=j^b; zKn5NfDlL6Lh%3lz+q}?O0M(ZW*5{bMQhx!RQvN? z5PcxEliDE`^NPU#=aWsBqq^oP*;wx zn7m!*X0_SbVSzm2cAVa23*V*J)acmQ-iL3hej)dhv@~;27@gg4sY@EoCP-|bChCrC zr})yR@3ojP$n}k6dvcxBbKFwGam)?Mu>IT)ur_tN`*c_Ivn zdes$6Cj4HO1Bwmwx1AutY9;bxUP{*v_-HBhe{54Bh(wmP1YfSoDIHr z^2bjMK%_C);WFN7o}XV>_aTF_{Y*sn^#f8y#ckZ@4@c9;STK=TD!&yaBr{?Hf^q|~ z4)6&D!OqVna1O`>%?%usH?~SnzW*cCfG}j%?Jcs_&236gu`FrZ|G)MO$sEqoIJy*X^ zXg=>l2l89FvC*Mq&g7wSh?am0Ik7%6V-9F7$^wL~Bb4;>bk;Q+;7a|P4xtZ#y5^#3 z2)sLF`?~PXg&N$x(Yrb#*Rj{jzV4}4jt^p|Z|Lx6Kodtl2HXk~A^pVonHc#b#eE4? zsYrG1w9cSQWH$-yurn$Sz3I5{(8Yx%2X(mz)bUd>L2g~cUDUl~;9oB(6CUimNC+N5 zyz`rcAi1YN2@~_LxN2RKr)0fg#=zTmu;`U*euowk7ix(E!RK(ag&;POA?XfI% zkU?a@Xrc8>xf~_D=s5cTgxp{-s(_dupqu&!(>$w_KqC^z3CH~i2SAi|YR`+Vs;9t_N-3yzAt@Q!WW_B#bQkoc;Nlou(hg=Z@VxaLU9N_0Vy z$D;YOaCjA)>wR4%l1uD=U&xyqRR~A)DCK-7Jhlq5A>CBKyX~gsyVsj6`kzZ=r4?*Y z8;S>Rcr?eRB0}t`A-rep_trnw5^F4yXboRFFpDAg@&6T+DDC(ApQ6HlNd^DQy5{;n z)-~(@Hj5vsceBHpU&yO>EEWzC=$SD{?K9VOcNzKM=9~a4_aFvoH zH5nr)mla_8eB_u+fJhNWnLWn4ycLJ5_gdacaJQJ7prWnFW?M|kzwxkceRCmk^&k-W z>eR`qib6T!eZ$NC5jJ5&S?cU5qk`0FY)|OIz-C(!3Lri|EMpC68q%r zh`4G}U(eLPQJWZ0 zDrZF)C_zopSOrSMX2diqUf8H8-*)y!r6g^sFA#7*ueK1MpP&@;m_IkvUX`(oi<@E!OzCs z)#&f5Mthvl|D-i>GqTLGi$uc)#Y(A{U%&w-1l*Vw^rEg%ve>!*2@>2QXd$P4(2vPZ zMtpA}IXD$!_0V~$zG1DZDe#hQk4*%^Ci=$9#a*pffBA`(d2ep7kGbRfVn2L zzbG+zP~d58TK*IQRn;6^K)r_|1~6n2z>Sq74g#aTx~z+S@SAmDV~fY2J1l^ddEx6C znpNN^ZcohwMjUdNqEY2nTg*}M?M9Q)y5=Eb4g^~g0A#fXH-o<BFNX zaf3Y-51`M|nT#q$h5c>CO6GLD2)p41@}+ifZ_H@o*7|&QJu7p{TiqMcXkkHBw16uT zsWtg^PRA^6&MAVh9~ri{j2g~G;E6De#K`JpXB&%V2eR#BVUPVb4-ycTp}DeWC28e4 z`Qo^3HmiQe5b$7z)SpvNw5+kR!1h%aa68WHwrP{Jb+@TrB9Ff;1}~6c^6z{@WLWcl ztg5ejANh6;P@0@XQf>8dOgoIpdsszfYg9~tkhy@x{WW3B3j(dALM`4n@kI3=dgo@y zd5?}+?47+FynHdrec-dLO}-aZg6?=(Qmy`t1#q~l_jvt<&9JYBU+?jawPJHdspqiY zFDm%4kCl&uQK!hs4=M@7io0RBcR z;!U38r9fhNn-y$An#*9sYFa+4@9O)7%0bZTvvtUkiVxt#u4wd?Lin&={8LXQ)oxGc zxWgv@COMJHlqzdO#nc(bljJ)z0`XQk__9@&!XfO*)j#;VHqcH?_i%bFPGxL^nqFj# zIWwReN6x4GGd=N?3x1;MHv&sDg~$>;bmy;44ZPUHD4VDnP1$J$5&n+<`$z1#JHpAc}K1xg-y4++phv{mErFh~PVhDO*wE4jO zIkq?1hHh9}ik1%kw>TQ!KV{snSe==`cX#Mnlt#VVZboE-N+2me1WjT@s&+pV zGZnB)l^w+gEWsKy$th>@Py%>il6#fqjNYb5L)ER-2S!s_O~g28QX!`iu8UEuXp8Ci z#hhxEe1<6gTjw&?fz53#*M(3a0Cz|L#%@}*(C}8q9AJ`diu_f zi=*3zYqRpE5)SqZN7fQ=+Sby*8QW>WdbRiG)H>OqEcL}t<*vPUysN^n5V@4P+GP0- z;Yt6Q{yOiy{J(d^|Lk-BadfdU{vRtf%YXOsva5+@Ql4i^A%jw9`RmbnyKJ>2>ln11 z>bQUS(5I1xY2V6!J|8L;LZy+WpSgV z3%(Z@gjo+z1_MU7LqQjS#5Sh4`gYDiJv4)-Zl2}I&Rz+we45x@u)?5!t=RV{RFQS_ zwn1Ik8ArW)2*>F7w9Cc3AHsOrgCG3!n*MSCQF7zX?=t>!!uO`L}g5N zOf1xQ-@K$d8wJ{P@oxLg9hZ8~P+avE#fdYD;%IuyXXWhTmO6ktS+GDY+d^c%(cdh< zuDrc5T;KSiFagP4#$tFb5X7KM-}61qp+W^Wy@MWFU+@07tox+0HvzRhB4onSF#fo^ zY+5WBAm|lt>LC0JeVyxOxZJb>v2sOi-CH9}?g9Pg$i>xk)~UF?4L(6cAZsE2pyygt5Vs%V6Svu$NGiQ+ctTsBW188Hp(o| zv~*tYzL^>#r-lxfjme3H=b#)MQ4eoIgxq$LV)7Xf~D_K=cl3<(j%jtb^UD*83@ zqqwo?%l1ykQjg^gxl8TkvVDP*{i&M|rt=e?_JItk(Vx9))d<4=_b9e-cna1cbGWQn zHOd4|!0dr~qhyTscoCIEfC@L%nvpHUhj%n^O0&f1f z`$BUT+`G;^b5Y7-h>U?v3!>#9sV@U>@5n~m$pwxkZQx!=8^%2g{luC2Ky-2ottSpw z?_k9k{5;++b?L|&;RmPfRR=0-#Hm9JvY+LF0n#l#TE}n%9>pIxPk_ROoQtYNrd;hK zcJLpt@~>3}E*1k}Zk_J6S2h}9Gg&A`huSeSUTW2GRu^;axrQWRyR(m?67(67Nkg!A zY4lrd9I8Cw4`R*ew3IE$QBDN~B%4n$d9$KFe(OnY(&8~>BD*?6*UX^FvN)w77kx~1 zANiTFSbu&8qd^s0i{bVt_xO%q@XdNyPnDWGG~IIb@p`Y=)K>$Q3%o#)QHY-0-w?t$ zc92x9jLPL_SIMPUx7*sEP(Fm~!mronQc<7e8XZDOaRm8@-?&)#Ltmmtv{7q4D^o<> z`j|yPJ0okY)g|vux&&V+>Js~x0!Zv{bT^1_<#p}pldW{*!w9a&2Gt?9bf2Sk7@e$z zCdBhQ6e=SyB~E}WOUARu+RdrLkPc93X<@eo?XL8hu-xH2EhdavR5U;PwG9T#QE4-9 z0B?K|Rw$)a)s!r?fNumM;IJ`@bIWKol|lakE*>Rxt)AzDpsh?PShv*CyGn2$bdE=L zHR3>}OVem2)igwQv`Kk`-ZD6W2IiO9M@s`E62^L*CBEt>lF9z08U&N=1wpvB%Z{)1 zN9`xmlQjcTVvXPf^36luF63NA%k@A_>CYhH_Ecld%o9p@rP>*TB!ciLFy)yFlrMM@ z{khA=8HWbUe4`h=R3%$VfBVbugEW zjhuc0Cr1gE+6HQ)31AtJX~ zOSTq*#8Wl%s6?KJHaNwo{*jPTzy4dlXvTYX#p8qJ*z?x~B_7J^K~#dG(U|oQU175o z_lBg%u2@)JvNcE9MpFF(rnNj|(TVGyh4^R51`8NPx&C}wU145V6W~_V&EhoyNg;6K znI&(2RWAKMQF>sMmT>3wpADr22{GS<=m$-yFxmGv^B9}XFKvSv9PX?c52ngnf7$V= z*jHFEFt-q-Fl@ALuAt}W$`}50)3;$_$riU%P?i3~qxfo?xV8959--?l1WRW{zXv28 z0Zkyl;Mh#Ok+M0vs_1YcbxvX1n=;}dRlCWARe(q+ve7@6rW&G18pY?A=jf_T^=cMBw7!fz0V$FKkaie-b&H2p zhyWDmLbmCqxm(b|*?0F-rr4h15j@i<1(0m!JjqnS-Gb&w?;NqN<{miGAynK$*5EYa5n}qb~_}u zK$DRdlQsZY-PF0(I{_VJW6iYUnjqXrI>$ms#nLt~vo?eDuZ1vs$}*e?)p{H@##@AP zg+piegYXKNMxCF~ICm8ZZCbkvyZgsZTA;u52LBm07&>!b#PfB++V|t8AC(qR8tI#$ z2jj0m$RzW=a4fSxcAy;5SX&z?k;!!= z%1VxKgl@+qkO?`1`;v-Z2I&etZ|* z);9KN4CGYAw19>%je@$suQBS)sRSttdyJkY8Q`j?BN<9P{M`bnr>U)ixy?@9M$ZIK!VX<&p#o&6{Uk&Ju^B4aeUA0W5jE^PGq#nOaV* z-xUp525dhIeZf4q-{5F$%yLE`T#BgkdNXnS+}w_d=?qD1ep}9`eoLjF_P}YJXO#KT zXJ>Xtc6zsX-}|_uz3KZ=$m7rCmeWfot;4%m1~g}8qPMzB#v>^X+*ThA=3_NaKRMf} zFs1G2ll@x1!4uAf939z@uLh98Jwr1+2|z@3B_Uyy?vNiYQU;Q$KkJp#$>&dREb3V7 zh+dfVp4Th1tS>XE%!FCx9t7>P3wlz9LXx}U4#I9n(EJm+({1KNV9oUbViy%+>bsR^ zU(zO2L|-g0uxW#A-9wU-rTzS+!3O9^swL;5$c>H6hryxH^MO{LX_s6iZ{;&FDmbE0DaN1B^kJ6x61HilAdQs=cU0R@ALjH!_7Qt76^Fa`=-qNWp z^`c$+)$rB|zcGgBUW$P)%?mA_k<+h$+o=)3q#t{(SY|(e>@#M4kn6-Pqn zokeQvaI5!h_-J1d)i5026YI(i!Ozi}O$t)sJbEhnUjEmUa9I^~$@cGYYDX>xcJB}8 zAII)mexE<0mUn(WMqszptO~?RYP9WlJKLSDonFJ; zu9B~2gsAO3fPAwwpmFoM;TM=qY5hS*86-dxr4PKKwh$KpcIiEtV^*e+$_0zET3oil z^Ot)9;9;f1cEjE#INd$-#L&L!J1(!3*F8fgv#VKJxkBMYV+N<&-_{5heHX3RG9g<% zl5=-R3e(;|Z2B_~8q_CBC7!4WD*Y9h2L_@wvFrfo6k{eN{i$g-0CyJG&Qr(!u1lsb zOchCFn-D^g2O+dXGoh#!!MG&j{g`H8s&Rv2$))2z z_0o^#Eq-lR@%DUKd9I_yWQ#?>U<0TQ3m$9@=~8NvLY@P#b;J$+=GMdkC-7~OG8>8Y zAgmDx#8SLz^2&MA$48D#W9SzVF3WrYdoL2fIUoYaTm(#1_A{~L*@xcBLqVa9eqfdY zmk7HQ-%1IulVYnh->|QTicy;+SRN6~cr1tgnd4q-ODC5NxPbhC|6VHwo@A+w{G(J5 zufPS%PxBiC+3$ul#Kxcb_A|@#wKeX@6Ne`DPtG?ejG6-3jJ;%mz|1HAdbks8BPB@d zzs0gVHApP!5P1lImQ}19CgEJBV3rw`18etZ$`Jvl257hdKnl}~X^}*epPR|)tVyxH zUR+edkQl-o%#RX=j|z+9#xPvoRam)lkj|z-=!bq?p~e$|)yF5wyHgf$jIx@p97GXt zbwoWBzxNX>UlTAR*@7%IFatV~7*ubE08iZ{_Yu;+OeEo0QS#h*?Q<-|V86g*p z0+L2Yn$M<`9X1DyHt9MGCHq22Tc98)#PJ$pd=$6ABK^Ow{P|-2RPBvXi6*l>V9Ppi zL?GUVPJ{$p5wFZ`Z^yNKD<{nomvY?y=}}rslj?6ssdwoMXcGPC*2MSLatLdJZ{{ZR#=5pj~+p{caNqfvE@yRTFOc zPoA;0cFeWX;|2pxA?I^=H!>6pbfB|fOolVc78}^@VM5L@!`nSTP?av$Y&^p)3ntFT zPI(9Zu4Shwi0X*Mc|jzXY(QmAnjEt6hvbehrWIk5J*pr_iXee!C0Cr9X&>yNb)XA#SERaMSv0W{?W3lqPO_pz4{xjM5hVjwht%ao()UG z^(aO1c)(s0`{EE|2}qyxJQEx$s!D~F{k3JlVM$l9jeU@@kVz_Mag372dlHWR5d&Ay zYzeLcWbK(mEI0?57YJlDn#han?BceBOnNg7)>cZqi1k^~UN?~L?6KZs_Mm-}`NHE7 z+Nw{XhLNahO;d`jEH%av&4J>{&|oEqaV#xm$2h1FvmSr&cJWdZV1vc5?g0R#CIqE( zoh_IXq8wM=^QklC#|JF*!xTH?%}DzwZmQ)3k=HH1Z4uQ{8KDH-2Ftfnj|2s15jZa( zac0!wDSqvvWB3yK*rcbnrFHHJ214G8#ci3Of?F zvvW+~jOh|!W-nYVSec?--gJi@7z(Blh zdn~oCrO*QS&0sqCYD~~-GTR5GnM_~LourlOE$8$pHNv-MdPZ!oN1F{}>;`XH+6^p;UD3o?XvGb_^Fnh_ZNJqPrwop|0kTh5cT@&q zgYEZ>%T8^%hoGJACe`ZAY`}qAq^6;-s%?a1 zPFXN?p`JR}zw|L66H_q`2Wfi5))yt`%!6gFxdC847SHXR4Ay%WSd~;h;>R1y)pt?b`jNzsgr@SufMQSC@%SgW5qx?vlUj; zmcjI=m~qxHteiICVYo49@U9eINAaRoJ#{^))VZ@Xp_GDLXl`7vO7b+V zycJZxTK<-cu-58Q{MOyA)H#ah6X*ijEmFt2-=;!~`)Z0ro$IU1m2g9M!donB%`I>e z#8qp#Y?ZmZ%T{NbiD*X}>3k=b?vMbn64-n| zH_UQE!{X{pUzB5ovwJ9V2W8fheWzuP5U&ZGD3Q3nh+ zNLyyoss3XsE_EzoZ_;1(&*VnPyhqiI@70ik=+vYUA$cwzBqzyb?yGZX#lgXbnkESY zsoJ=NXy1#nKBE7bQ=?ialxk)jk~vag%AXT^8l3$>W9T_ z!@ARvfb_^&wpQ69aW3tT>>0&QM$O$$`1hT<1DUIy?l&Ye9-`J~W!a}w5 zk?7S|LH$C-eIbQRvKku8AkJENTkB@d&i+i)ZhFd;`%wJ)VGx3d&~S_lV$^J7ykW6g zva6rO%@t3UW-=RoHMB+q-<{{L0sYxukv$brn^O!p@H^?{y0Co7s}`X34I2{#FG?r` zoRYHeCjUPIy@v4-@W7P>yxM7}PMAC*X7Y;|swQQ228vnIhK8GYbDsHgH3y^qD-K1?ED@lmBXcH?B)64WX{+I}-OM5xTfT_>KHm z!+ks)0=$oO+s%gC(3|&+TWB1eC`Iny1);_i2|W;b@E^CKqE+>JsJzvyRoeEnY&RW! z-dj0cMN%%Nb)z}{io2mNY?(;I>_E3wxIR!#yu}6BVS$xV_I%t~NuMYtYNT*fHLCy-u8< z{^I^(XhZ$l{f7+3mS=*&U6ZIAKNuYQHBQwn4zH$;u1>G|=BGQgs>^Sn?~{)=zpkim zMXwqUuLl3tK&CDN)+W1B1ABP`6f0J{=X_be1j6VwyS90*=(hF~RtJl8^v1VuUI;?B z>V_yLb1p&`&Xr}snNByv-zcD1M~VZ)idaG>Q9=0mEn2+iip?>8f@)dkMHOZyHnMyn zA3x@Co2ziSC*MyLHo!M;FZI#+*;G?w`WK@tR(G}NcA(ULqVp!2Or1xZFYuk)pzynp z&9^=<)B1G@QI3YzPwuK9LCwa@#T)oa`vN|r&E%pyRxBsK3Ldj1zSXq z^G*CxpwD5u=hnOn?w83e2K9_V98=KrHqIyaL=y-E^)^J?t{Ar)kt)x02y2-=I2Hj# zP%>LUNEBn1I>HlQhAW8dLeWmHj{^8OJHEd)?=1{t+pCQCadgT7Qi1*|G1 z&E(EFGvd>@M}NQZ#P#;u@*DJa_j@5N%a4jJO{Hj5K!CKy_U2iWIjy?b2Tg213810O_y*jV%lR#i(pCNVFeBC+f3u1R_7&4u}`~e1|ifnf8 zFz~e-s=$iO zNppfx_ujc#kIa~Av?fr84hu7R;e)WQSUo%aiHoB0E9>SIQBzTjm`oSWp)o%OAske- z3(lHMlO^Om!bxdfG!a#li!uvqe4r>ZgvDXWNy-pifcQ07z9M{UzM~Y*MIU8s=w*!a z@uk+^2v^r;%8}@{VI3w&`F~mH4bpsquc!hofK1qne}PEZ(!ly|nNw%mPCWeqd`aNw zf>PJ8SR&&3t87NEkPE*VE|aYX?jZ89!}>0c8*#q&Y(eT%f+BqJ6r|4BzZ=aQ=*L2} ztSY=B{W`bYSvkVWOyuQ)W*_zlFMKpy%XM^jppH^DU)++vASV)Rot63wYmM)4DotBz zPIyEWn_&|4zRIo+*izoEfdd_A27-!fjtvr9b7SOoB{xP$P5gi3!o6d6X;M}^gkr~C zrdg6sZx?3&{(QI9gE>)`jn#(BP2F6FB~mvOeOBnjE^qq6omUyQm6jWaw~?4ZCr^*4 z_bWWOJpCjhK_9F}8+3;F5tkK-V8x#hsdFDwx-P5;P*&3f`K5!+PV7B8x-5G(v6r7n zm{TL2mPI2*68B)orQ_E#&P34M#RHfFnHVq7g7OcIGoND|!tg5tB7)h#DHu%O4>I2& zvvUpfh?AS-O%R?hZuc>a-Qfr_u`Dr z@SLqNBm|=a7%=@9QfU(s&JGUqEtbS2AiUTq^}<0bH!KH&G-6xiL}Z*%X0@g&pJQYs zc;(9S3?R27>g%>i=1bvds($?ZxlE8^@8pQB6s}<@i`9_rxR}u(o22;b-NHyh$VR^S z#}idQ7!IO1z=%MKG1O0$U0fk431t#=4I~IH;gNGZIC+vSlA85}%A|IoRkmZ!L_pc= z<^nk0?)UV#;#7;zRh_i&Y>d@_>=BrtWGP(f-UbE|29V0dFd=_RG4Ol# zsuC4LqxgXliKU>LJ>*t(tk2FP>745~Ho91OsJylN_1+)ySr5S~YVc0mAk~A(rVfcC zKL1Nl67rvJ&q{|a3gsc>x7o=Khc;GZDA9I!5PV9*P&UT=-_H==({3Un@?Fg5#7=Sj zZTuoK#^1(;_TI3qpg1*O*$hJIBFX;QglZ_rwrIav_#Fpj5Eczvr9`DIe%F}13BWf8 zazzSi#lN`gP?42M;Amz^=EeLpc9MG~hK{p- zeQM}xoKpDL@~hrhI#!gWLgc)_z~N*4Rfd!?ByNp+=dbwqzHXXPONj_=C+1OT zZEv@L+-+-{G_WW$&zE3=;z*LtTG7>CIKUJ)08W`==?W@UG=Pg78_@JlcTrNj?&gs4 zm+OiMk9)MxzDtM{If|sjM7)gIKS1?3NF37*glTQ=y5fYQ-nbR%V3dh9Eo@OXj!X*SnChQgKp)(KxP1)r69EucNxX~Ihbf}Ep zSS$3-?#8fH34dNnOGkI#>9wbxs!7BLaB#LR1f52mpRhh1cjYClpT!nUs-UB0Y*w)~ zIei2=;ReHw)GAbdU)E^6p2`-7*mPMus%_WIf775kI6o1z!6lY5*56Uj`s&ztIBKe0 zGy{8yp|0fxPIHI+;ttiWq?#siak>;6o_N-&wl-|heeF3i^k5--Oo!ota%c1#OIosY zERYZGC(0UpT@tTIjb?Rzx(87?k&6$uURt(c=g#Zbh;rY)QK5_@;mmdB=BC+PJsUlA*(p`Q6-X$h)KB;*!ES2JA8 zNV@25V$_&eqmJ8XV(7*#!QFK({_r_ zuHT0iTkNIAVMbArHp_*&>yaRH4^U&11G7TS!tQ0ZxsHlX87;M7C=E6-)I$SFB z%2#@sofWh`0!@rr|AVjwAW7d9!Ab86)G}A!$|RoU@#@|NZrl!q6Qd_)jg!Vyj|8`p zVK5|#PjCR@KXPTKk0M0@IuE~bqC;gCEC^D)^m1|&m%DLlzhK)Pi-G^mI{w2Y{=+&L z{;#qT_WxlR|9`B5{eR5q|DSPZJsRV-xMQf(A3h>=fwum2OMlcxs3i+=uv$gQVhODT zA`FeyNkm{-pI_uN3*=eQIO%jgygoU6a z$j9o!gUClmWBC9iD|%eHTnNhoi$g{^go%-kbR?XmUfL}S_4xIPmE{>~5n1_T$jG@W zB|be_cPfB7pTkV5?2Ue!V3W1mFo4=x zn9$f~l{=f_DdUe=$&|8~=0l+DOjAJ$gm>KEX@Q{OiCl?H%qfUt8YO(q>sXq4BOJYEQwi3T9TryAeAiS%pnMz(%@8_(Pj)^467=GM&^NmsHo{W>I}$l{&ZGo~ z^%K{08yetO_YXEl66gw))Kv0u$qoQ?kVnUalwJIHvj1fmES`zylhMP5;_U{!VJ{BqE8BCNip#Fy%V*i!&uSnTNFa zzGg|56q0{Zt(W)YEG4>D1jMKVe%ZLNP4LBb%Ph)`gKHZ?vdSgnXypl*q0(D+>t9s6 z6*k8?og7Nc0+3gv9Ak;dV6{Qj)SY9DE%e3RZDETlyJ&;U%E&}Q(6-B)ia`zaFE2g$ z9!v!`LcJz&EoK%GP9P>!9nhg!$@{yJUIai@ZLvu9rFS ztu?K+Ko5xUo8)Uztf=HS@=OBwO?U`$NoJumw?T?fN#H~#*FIWWfz*8nt@DsfE1c+< zckd&iBnei*#<@#Q;QgCLDh*k!@KAlnM0-Z(HjBnXf{lXr~T zAe`L1zaS)~lxI&HAa?9LyV~tfEOS^Z~th@wYJM0e7kdg;ycroYsVX{z(dL;tB1H5Xia67{|1`||h z!U`%;&PHEn%qv9n0K2f&2&j9|w)aYuY&6q%s1*o7&m23y(zzYjK%KpKl&h*RTLX5q zoz1yNe8aT$r;>q!spuktB;=nFNL1|#h>lF~JPH&#^!jtI{c3k%;CNo^rhQ2;Pg~Zg znboen-y+3!+9d13`WJA8WV7tRJ5>+{R%>a(bN-=RJ%n+}`zmRMLo^oz>BjO&Z7Wpg|~ThOS> zw7=&8R>)OWYrr|npbZx$WAYX*G=I(D_jdr{NR=SIs9x;H6recV;krmJA{gNvEAf_= za~J7V1ZZ+p`v?d^DG)_dWD+gS4^RrjC1d{`;d)& z)4ai^&jyX>xP8SbPnlX4T9ebBufH8)?geMIOY-3pr%(yf&;0hlff=Sg+^pgrpoQJrM7%kx6! z+y9}16$f|Br&o;M1s_Z1nAt8m8jh<+8f<0?8#9+bQm`^6UznVB(GOlU>n7D@=H#7* z+|SXk@dH2ffUoJlF~on6!T+EICI+Ve6K2El|1!Dc_+L#fN3j5K-29ek+QC6i)N5czZ zqiY7Hc~h05C3=2fH0RSBQv>ry5`1h`F$gOuIow@6UNOL#%9~F`P0qy4kem(ec?HBU7o83I*Yq>XxTQ0> z%2%4vuD7vXqR_1T4K#we9uG=4^9HMtfBp)(u~r;XnM7+`yq<1NJs$!~3L!Z5iFb*T zE9;Wn#*VgFWXsnHibrTJf2kzn&&@=(Ls^v7k-Mt`F(!QY&8m-olm5KxUI3K3YV>jo zla68p7V&;PIQUddOqPCLK0FvMJ#Zz4YWnh|wfRxYj8Uois+3=X=2yzI6(jYBmnMjR zp0>mB|10|zgE%lZ{kU2)Rd36jmZgDWg?N^UZ1b@Ch@kDACs`nA;+a(~WMjKR$ZWlCH?L2{@ZM~(5V!Khu?&7Ry-?TQUBR29CahYA@PkO zPLS!>roagd+jj@sR=j)R0huac@f!=cr zxURT=qLUJYUHVQp>gkJrnqI(D7uF8J9hvLNQnsERxdWe`*`rAe)MK{M2@C3ywvIW* zF_v1W3!KkiUrb_WFR$GI<&NNMh*%>_=sWX#OapW$*4T&pb~0LzDH^B`m6b2w1;jJ> zdt`paNHUQD`nHd7j`u>v>sV)4!iTZkB$G0<1w5_9Ez-nJjD8C;iiQ$Be;6$PQuV>!U~`_8CF- zRaIUqJwmX?Ft&eMZ+3-P7$$__fpS;n@jWJs)hC3{`Tb7DWlk?8t+V%wtgn0A7QRq! zC#exXi+`AYa&?B{C%hd6Rbx@+0O^hm=*A&@c^w%K_!@2RiX?}E|6ebxz{TSr34}KM zNy9AnFj^z)hHJF=j!i0SZ)*bdbQGb9y2K}_5;^3PpwRB`zV;T1tCqL78bD{Cj& z(Zd3$D4f6VsOm=JpKYR%`2de;5LY#DB6TJjWT_z>A)$=_aPuj`nHUi=khXNB>0Fy=)7bcvgNfh*3N72R zLa9YkW&B@6!gUNraad_#b)^)Ip1%lDNav2HfOe_8f0J@yt&>p@(=@2qB)1B(n)NcrR=ADG4)|OC><{4*ux8=?Dc8( zE*;^Wh0bX^LxZWNGWCyz(fInu_zf_&bN46U5cQsT-ei;D6_dgclL_a&tY25$$19Rv z$16s{r9;m}(j`?=(2$8Hz9@D}()o4ZgvBp}uX% zN+346T{^$+eA6y{K3j#zw3#B&NMCbKF0DIimp0(s=ra#XmTuD!)Yxh*Rzgt?Pi5`y z#&T24tyPSHuu_>w8>Fa!!tDhS(>>T(M9RR5Od*0DB`~kcjLxsZZV2QU)H&|RvQSL7 zkmArN%?(RY50yN;(=!xM?R_XtQ*0NAA-_V4)71jPqifo6vZ*1})r5?^98xwtkt!|JccE(9H*qL~uKuN58m z5LVp!AL^*tUw85*&93e;Ab&1&nIfwNy@N{{y z+T?fG8>EGRdXuNes=D=eQ`D)?4b5t-tnqWpZAz^-SV+xTA<Spd`l}Vh*&UVEM8sGS^+6f}RVnO;tIZwj}#%Gwb0#pLZrZGsqn3?3Msr(OGln z-gAHp3WV}*=YA$0iEg&K^7x#A>;aWz>Xn^y)f-}dsY}#;a4cJyGP^cSF$cG@U6j|C zuI@r^EmXE1(8Z?%)5-3;Dro{1OYttswkety^Zmy5lPZ5PUT}|9@y!eV#et?)jZvsW zK4_QZS&nTb+T}0VOw2B}Qb4dKtt9No$A>ShqO8`x8YdaEzE|x)rMP^xH-J*3^8#^I zV3(IzbR<$f8xxU2NHbiH2=W%L;#kZt2p>^$7A05S3YN;osBH!4f{P~U zchua)!L@d`&Y;lA>4@UnP~l!

%N6JUGGyF*iwXAWoNgS);~pK*U6_0Yt3|8DW&W z#f4m%FPv>)yCXwW?qZzA4jo_|yAqwifbYH%iYIG)Yn(ODB|T!X-&KAKZKjXJ*4wgV zX@kshM-<76%srgskEgPebMRQE<++lwYIYS>cJe8;sCxg<4r}{)>ZSjSqunU!_V|U> zsZ%cw*M|wEv5fsaU*f8$Fa>I1LdtTFI+2%g%C=AM1_7dALdAEVA7C zj_JnZn)Ybid(s8Geqam_y=ukrRTuW0c}v1;83*ccJfuxu=WYMBwlqQE&ac(mzEo_o zy3DmY^c5wb@^A-4kb4BC5sC9Gq{qR1glCRg3U+IaHMWRQ7H1C+(SxVAwJsfZtu8-7(coaI+84y;i4zq5yJ-7UaS`<)sY+C6iU{p&t>6vD7xR_btFNz=l6rvpH%$T;pBK&RB(=bfS%i_UO{=l0J zT?ikSL$_Eii1s_&7ABk@>8bO5@?h_^x?YMLl1^LGaZ#7~pa2Fc>6|f}<71_FNNsox z`>OQ&$p36}tdM;Bd_HesW|tM+g@s{b&REUJBWEh~OTUoT^$R3H%5(7FjP^e~^*>W_ zRt|QkfA|0AnvLPV87&*b|BBJND9hL(Ga~fd)~z8omee+k?QU%-%0mYy(jD+~@M}^8 zf=E)6{O~Xvc{NcABs9HTd3Sp}uC(>2maaZk%`SI(b+h1o(7WModM)~0+HxtucX~dH z5p$WcR8%*ekIm*(03v>zRY%t1uWox8l%NZIz#n3U470!o6r<|Txrf9`z;Sq`G@;It z>@k-R>_{R&Tbvy=vZn?i6MyGS01jJiQP#vjpE0Y8yW1ZK!U3`Y9Asz9p53}%MkFND z@u#P7)X1jp9MQm;tUztks(rFKmNCgo0O1iYu_8}x;z;HNJyVU~NOeh_Lu3h|1krYl zH<#NBa_IiebWO7lP7lg`^CIf_*sFnpn+EoGY~F7J8_P#1ZJlCZen+(7gVquyzenZj zNK2h=-nG`#A#MZ)L8X1IvR@`9?<6dz&3Y5D*4J)40N-FmGTcW>O4_!sW-~@HL*biz zZH$**EDg4@Xn6~UF^P^22$28T)(#LuC>NNC3df&keR#>4>L2el!qjZmGbmh9aiuDP zm@zSYzup6UTAt!74j*Q1{j(vl(ex%1-MMLbXEmo zYSxTH7iYyU@F%P8B{B(!`50GP8LycZQ(vv3jsXzXO3@nI&xF{6pEVvSJD9kH&`8cC z!@z5yD&L`BHSM3ZmK;=NTh7r^BbP19FsmJ9ntxx7q`j*~vtp(syR1QBzC1E;!cl~A z#!Pj}q9nPm1w61g)EG_Wc~boscj7y=P)5oxqO3l3CfzR90Tb}NwCr<@ z`ugt44~B|28(Nh%)K}ei?>ht63;#xoKaW!}>n{#}a<*JK)4t%!R=%d$oug(OMc|LV zJ~FbTfGe3Qet6nGo=<&!3|&u%&$!$-e7=7iY;`?sp?2In4_k2v}XQSnzXD3f$P1jC$w+l;KkMUz3%SBf9bEl;nUbgO3(UWb_h1$t@4U}`2Srf(L z&$7ekO6Dn{b>0zg0HCQy^nN%~#)Xm*n1S{sD;WcMJHAp|h0ZC_-!JSET0{O*8k;!k znfHLgqJnAJd-tWNq_Y{h)B&HA@1J1!{#gJ{xpI=Uztj~mWm*eeX-$v#%*JF0%GMX3 z5=iQP%8c^E){6zh9&%W7!Xbfb7g~n8Xq)M1y^wB3W^|LA#=DeZ?T^4gP~l!Jq=kOa zS#D#!m*Rc%f^mgmdoYl$`i67Gw4`yZ9t5`130qT*P0-veBoWt`X3(7}pf}l`UcDuDyoAW(*DLQibh9 zZ;ySJFq3w=8AmZ8NEs=shkS4Mzxt5j;?@R`QIM*GWUIt1h=dY`Ts*9)j zdD-0pd&a{O|IW7$(auC0A_b~d44YA?8rHvY`8C}fIf5awE(X{gAH$lmFAJ(|HRU$f zA_S`rE&6rzWLJrXp+RXL%63;BKVZUIza#jb-tS+WC-qQ8x3lLZMd-NOTE&yd_6~cjQJQQ#8v>=#+FxXq93?#lps!0=;jCeP4jZGj9%_rILkJL1)I`J3vl@Y>XN92nZ=N zEc(OIV>SRZvXqXVjV<#3NxmB%lq6Fe92~!CIoxdn+TpdHAo`bFzhcab>aH zusEwIv_dcvg37Y-N*$vx;c%q32R~Lx^h5C(ux9Zz+4N_59x0~SJTwUhnCHkNInpD5 z&*r|xgg^J}h<-_&{xcB#P$Jj{B2oyf?ZmAnJLL@C}je=Ig|J6+~Q*glV}ZD8HoX8XA_Nk=KDy;Q88!c3CHHq%sKw48r(7V(c#A2zg`*6}6Jn@TfZXD|ln1MB{LzEym2$PW z1wba@zKPs5OyV!?wqFl91ldwZJoq^r{RmYM6hf#u0vMV2+sO4RMTaHL=cGqHZZI?Y z9Pzbxfr!x?TnLkbQ0`daeT=C~Vqy=Wx3e(mw57%KYC%F~)q}wC!J8Ha%u(CaiN)X+ zHn;&V^ByRe)5S|ob6{N%`OC+i>}m9)2GP?~gb?r&-)9kmw?Kd&aG`^|c|8shlBG-Q3(CUr4a z1JAUPDqc@lcSa_y+h?EF@6_l!2Sc7_(-2hOW=&o~RtZOK?dHjRUC5x}%M7bMD zP+a-+mYD4x;UznHbWyGn$y^~=k{O*}mDT{%F{oqQl69hxZsC_hy%aYrWgT?#@Ltbg zK&97_IBk(#AcpKJHBQ$v2$z;g*GamDWM?A+(vBmMkS$n43x2b7xLs)5q*HIuomQN> zDcAfW77%ShF56Ls4Oh4KrUNP-KiKyL80D~l1WK`UlGYL_s34Y7a{?&iTkpDkq$Qh#RZyA#MPZ?7GTZR-n2aD{0 z{wYH-f6EZ^9tXR*pUYn|#M}5|T|sqxvgyFf1|$Wbtbsh~4|9sYe(cC)dh*b-=0rym zV@6g!mL`i7sEHikAsLEoTk$5^nhJOezE+GK~JjVaKWBRs_vlM_N+Bfni;=igPCEoW=NK6*s5%k z9aGwIoxEVqG?U9$ISyQv_fQ|${x7nk2ou^h7Zw>J5r(3?L~(bv!I^|*UUV(OBp^Uh z6qMW%u^a|#?ziLoT~@H?A!OAY{~z^26xV^0KY89IL}gcM8l&IZQ!kXQ-(+AO@M|ot zpl`tIhRY|0j>-@aFDt4b4#{>``*7 zsJahyQ`V`>4^3;VtnzfqZ&0m0noG=DA<$HATYr)ew%2_Xc1%F^dD*TmOS*5p#A+oU zCENs@39FxndWHMB1Jp9Wo)?#s6hU~z;?GRgVIRrF%s?L$p!wMV<<1QMa}0o{H=Pw6FtVXb-x$;+|CsDd0Q zn7wXEO|@6+q81|RH&hQNt|+|QPkA{r6=N#Q_ccbje#QaSdfMH(jhtXXfTF)Ud0tB< zU|Mf*JU$j7`u#|<@X0E^>5nnKH6(63KT)blo7$XWnSop1E-mO!*YPE_lk8ZJ=-@Me zX=VGquQ3OWi`jX*oJb*KTFCJg-9@1ILUYbOK>c56XeJMDRYFP7fu9#gNL5j-Z#7Xo zW^G^NKWWJIf2Sc`_d=(U4n@fE*LTtpb}9)#d5)aGYE=>@{+Vu=8-fYw$#vY>7cY9T zp%Ep*M}Fh{JioNa=DPHKs^S+|$^1JQ|c*mZs)J~<_n7+R-m1W#4 z$I$U^6v6&EnN1?-axugjMzR)RV^Vo4^BB&f2X{U^m__%U638i9XW>1_8|mKRN~?Lh z7HDQ$8|Z)1p!suQ%xyB}mp*dUgm>+gdU2EmTaBBcfes3LI)O{WY`(T}o^@gTHIz%? z{tAe<{U1Ig{J;BXZyS+BS*sg(T@Hfyg>9=(kyH)$j@)9BbRGW)Fcz(Ww`}GB!{HM>kurV<6i0 zBh%2G*dmO2dk?25b%wo;jPS2tl=1m`6&J!k+n<+NwzL}Y+p10iI9@AE)R`OFh|MVa zpAs2V0`l>=p(0}I>%H3dSQIU^XJTWBtZ9d}fvI~F$ z2J6syg~;}^PQx+cF@Kv6Ezuq4xA{mSgwF3y7}t@Cl9GH-ABpW#*CZ_ugFd5E6Mxz5 z3&r@O3hhJ4{C?fg^mHJa2Zh2k{xvmbKx$e?*r0N0BiZzau!RCq0>~|D(TrrhkXk$w6vqUm%v;=nUSpvP0tS6(wq+iB45NbjS&d~;5X8Zo z*4nQqAmJJn*WV>t?)P~NeaG-;sPUG?UG&cCjH?$dddgrGZUE=C^kTd8XjdHBEUWu_ zZS5+>6EOdN2qg_9^XSFxU#^3VETAC*eHFSxbzVhbp`>^#MM#rJ6ERGFVOK_p39a_T zb-&A9mr|HJ+)OicqDgrc&~U@z&CZEmaL%xO1`C5NgZgz5LqZ|DUcJ$ZKh2s6P>?FT zPP%1ADl3)IRsRPz0md znG3btB4=_&nH+luwL6;<1o1}wmL&I=S`0ucG_l!=x+;;zX-i_Deg@T-m?UWb(qkqEqSTWYeXa|7b>R^DOPLm^ za=Gfmks4mL$%)H*1Pz&^b9>3ez%WE2Z|L^CRsZ)c89%@5)1|ZUwL_?m`1n)%8k!k- zGcWb_-3{)7vCY!IPSxMD@*nc^Pe^6>*EVHVhJUL~`RG4ld!F6LQ$7OAu(Y6t)(2|oZ!T*k;4ng=6?P0-VSI2XT%y)pdm*#^_W$|+5Wu^b-Lw&G33$j zyZ8I`>U>>L|M30jH*!%#f--glJlmIfxX;-9|Qhjl1k4m1XKRvDPFR{Pp^7dzL_z5V;Q z^Yxw;1LrH;SNnr6=~s@{rY{rc-+G^V;N})TjmWqs5|}7g8bVEq&z)&S2}x`_Om7QG zjI~|YU~fy0j5;ztnWo3X*PQB63+gmZ4JPGJ%e-B)ab@4+CoxzfgHoH|3RpuR=W4Zo zHezK10J7FSP}%FO!5TQJ%v5upg6CqYnRT?>LJStE;(9Q*o6qNW0PH_P=O^$XbfO~Q z@(TDC42zFm3)^&^{=6JiTgy5sv$LoYJu`AGz&0e$W#l`7zG3X1_tQHx`78!=1hM`_QEw2iwR^`4|0}UiP5D6>wx2& z(7&nu2YuN26@IL`w(5f{=q3Id_kGp6+7w)#lQsMaZ}Qadu~qswuYZeN3(klM(qBRK z;~9c?`VN>yj|7&1X)6&X`)Dz%@DBI(z#W73_T)t$fbW^8%RR*E7AHu;u=UQ}CaJ6r z%_kls)?wyh(JdX*9`3Z#^(gmX`LX7}#p$I`w#rvhdqW|?C26#qKV6;yvF1erKAEUS zaFg9E;`+J|h$&fQw0X!>ZnfzW43Z#=R6PIwmCyFiwx@r^WG*Gxi-{a?;XDx>fbR=b zil_`w06<2qDfRg>3!feDn%G9zQnz?WWfp=Cfe%X@aCvyc>Ni*ijbWmUpxn*H_9*dC-^D$_oVj)%|H=<~hlMMfGAF6PlMX3Cv8N6?p)ap>*Zxu6f*5E{UwOGK%+ zNgHBpk9|>02`#?q#p4U$ZvfmWXIG)!$JQUgP9g4bj>}+C^t51kB3YIEwWU$T3KaR6 z`nc=x7qD?+yzgcU+hq-%N0w##YqG&isF+I^5MoO};?kSG)1dO-A%jBcYfS{z6v z9t0@yauO`^@K1s;@={>x!iwx@2ed1bHb1C6vgo!r{sPI)7Lc_L20mynKS|&TRCLed zs0(=B+?t4PXfIz&Z}e}+oBWb0NjSLk%vXlY3!H=RWS?vk$#*v9^37K!mg|B0kc_Y> zaVd2-Xd5Y8N~2|yPX;tO<_6jA5pcdJA%Im?B?m<%$v|KT4CG;z^cERRUx@58YT}bE%^*B$~JI#<(Q5(bu5I9aui~*gLgEdwZV|ASdIFNdP za8*?^HMaxn6m$a3Ecz$CH5pVdXnQwNYr+;EmNu0FUmziQMpom@7TL>MY1%OH@?L&i zSF_R{nP@NJbt61q{J$YH&o}R3(-FYwNLFR0ksE&G7+ygg($htL=SEjy7GSL8xufk) zmtMPG7L>`td`*|rz=a|JDZ?XWtL&Mq$)p$1Ujlz;{3sOqA*jGCU}&H?g0V9u;Ylr| zWB&>lfx8Mj=>%d$1cF7&0FFK3f3i1C3BLY^MDbpb4p--`%2mGKuz!7|&7#6Z+f%o!A z59=Ehgc^?D4`=~dF-rj))`){pC$@PqBQTLesdcso(a4{TD8|o)YS3F{KT71?FDM9u z%t{L3Ma=hT%XCz#AA-vG3;0#PUHXtObJUHA@C}nWg}C!N_P=|m1v{#20>QB zq7y}q@^>l=L3rXfKV(3B4G^?HTw*w=z`{z%r;^TT%3rRp|NW8#PhFH`H9R3@g*;W5 zY@RsewPC@rOOsj5;ctv9kAA5l4tB5kGPKM28ceg6{hAI&qfF1AWAH-9l9FER z;W|L(BxYHLi{EKjf}u~=Ds(V935NHTJg#x)$)$kc#Y+`t*1C-Gg-fu zQPCK`MTis^KG|QHKiZ|S&KvkPxnN=gMYG~RYHw`*PW(Z@sCJ^PA3Z?0>53YWY_g4) zvEsJ$myZzf4*m4<&Y!<+O8hFc1NS#O`yec6Q)`slFm}WK7M~JGb>oPUfS=AZil=Yx zDBs{SJPr1-oOF&fq?3P56&3bUC?QRVm|%CCLtf&$&Bh?H1o%uP#fSa8^fo`ApemxZ z!F#$I>a~yN|D(~3C+O}VlL5)y_$~s;uAUR7a2;7u_vj3@P9{C3#+CRWSW!YZR2q{s zMfoY~?JO+Qm2JYfsu|+KZ5boKJYNIObq0k}{V=T*N{wq&k8NrePZ0(c5bk$+7Hqx5PvA;AE@H8?RwC zZIJn9M@WftarLuw4j)^r*|7{wdtrTmUw6f8>kAbKBp<4YWx&up`!wR?!-u#b;c}=8Me(H>j=O0(9Hq2 zVmo7UdI_h+`;l7C8@s@&KhnR(l6Y)&Xf%~Jv^m5A3%8;&Q8jp;?#ua&SsDqPYW}UO z!5hNbh;cD51S?LoaDW1gpJx>SFOdxoa5cIf!1$IKtL93l_s>RUMg3Q%wNC1=s0w{w z-{DS<_fkF9ttwgh_s!^tm$fC7XTN$YY4!VwMvj++l7F~3W$U%V)iG8pPpeKZwYt2A z;ba1p$l267wiNKq@_0tez)<$bm0~^196d;+=T7^u&;k{rvsr@u5K6|ySC?Ajwp9X) zM4}R@DJnR=pn)skmbhEJ89MaGqA^aJBhotwrw5|bQlTWc6UIqHsh^zOc$L52pCb?y z>S=i#LK-}Vo>7I=k?$%?i(S2i4!eIO(25sBb=$~Z$Ao^F#91B$u;iWj*$g~MGK_8O ziCBoQz*Teb$_mI1x`~SXY%+OL(nZUMoT=F=)9Fy`;y&|SB!0$PEq7Zzv06)Gy|9fg zKg2wcU$cKPioAVZ!Kg`_kCK|S9V0`F=gvLsLkryTrspZSYFfUjkGo>@dD&B4qUwkl z%Hx(15$0AlH2QpGSj9SR-z;dVsSk2*ph#lM<+L&Mnl+ZLt)ecaT`LJLYS`|cXgf~U zJ?^cPJ$5ji5w5f8esI}Ss+{=X*X`BUFgg~oE>KN~#VP~JQY*efmMJDYT>c@ibj@lA zy9kw)<*F2YWjx-++!B7*G zqMSpFjAIM(OkM0u4zCVjl?_15j{7(h8x^0l@z0Zhou@%d$FvzaRN@&5`1??_C8jcf z!s+_8L2)%D`O3hXkb$B-JlFtlqnR5R^AQ1vi?F(T^?A{1adpCjH&69#QWVT&1na)c zL3$~C_77q5WF8pkZmAI#djmTu*=!`AkC|Ikn!zOrbpIpqa?ly`=|+hO;QgxB^RMh5 z$h@@`1J#ES4ia`y)^XX?QTV3ahMFm%AB=2^ ze!b{Cf5O6_4W^%41VdLKRszKXxzm{FF zGX7g-7ylz*<>vQ)C*#7l=c+-4sj0lZWKSErpyV~1kS?4}uy2vJp*J!F9_xD6(5lA9 zMwjeeT$QhaGkWQ6RZ9Jyow8ibiZBcjH_n=(^Hxtofin-AEK9L zPfsmKW-bhoKE0cInA)Jqu6ZYguuTqnCzHUI5YnTC;_2XIu-^mBp5PXpJip!wkTa*y zABsro0IdcW&U)E6ezou^m1#8N*VV*0`Ky+{mj?a@Mfp>5=#{eJN8GN=?1w0TQX(6om(k z2GKWWn~;V))5@$q_@sT@x7J6nA!%|i!0ZYcV&`ypLbap4rbHE2aGj9 zG0$--$l~&6X?5&SS2CMYR4-ZF=|pA{F>}VopK(T!Onet%r=EDQQ5+(X5oWb}MYlY4 zA(X0iq)0KhqT1IO?`KwjU9SvuA$`IcaWL{5lQY=jP^?!zzgoP_l}7O`ECM>Pu<1w1 zp`pY(RMBKw2;rfDJ4ru1(TKQ`t!R1u1jZGy z`OA78og9qyt^c9Ee-FstYQ@C*j}MvtwMdPX>E9|++tLz`{SKRcc83AHhkZvkYd-FfeNQS)hoPuzs~ zp#9?Zb#eOry|47}`UJ1NGdkrPqk}W{DmW;gAuDU9=O?KM$8RHpgFW`@mu%wT!-&Z} zW#V{$c^cXm?dzwe3MJN%GdVr`^WxB$-+NcB!8Ib`?yZ~=W9GD3*o$POoS5bztaJ)!$RBvG8W3lgo6!$u>*NahtO_!H z8pZu%=EK@KTD|A4_QWN(^vpI#ho%P~b__PmbTkmGT!A%ohTTsli;1ZHqkG75CRn55 zeK@<_O0Q4cKF-^dHm#ts8qDYwAqV!Bqy<*B16lHC;+)K0uq{tqps43XL&~~00Du}0 z@blLgIFx0i#`D*yE%Ozlhy@6iMU3%HeI4xeDru7%WrTuNtV=CS(pno88c)q0%^6h; zwZwT0o?CV&Khzw1V}%?F>NunnLgLK6+@uDyI5|gWJ@HvJ%}HU6N~r6-n69M`0z41| zBo50$wyf+4&wz*3;YskXZVv!4?}=JYDJFLxu$hB*yD+Ek7hC3;LQsw(mqr&% zh@@FxM6;hnx@S;zlj1v%Z}qQmR&5|Kk{GslXWE94|;3;9gbyadP)_y&}Or4WSWK?FWckX;-s_ z6Pdus?ie)=Zb4FfAyyiRQ8Ht}eA4&MN>6Vr7kRKCmI3nX?0~ahZaWJmQXa|BS?qyx z@|;f#vi)xsj!dfkh>-U-rdMBDAsD~zMpL$<(;>ZJUi|RmaeU}(CD!(UdRQ0s74e)7 zK+f*($&E^&^vWpiUOj8|@LeA@O?qKz6%m;-u(y@y6h9W3mr7(k4p1 z^;*$fZbG>&`ewUWE`4uyu zysMR=3<3h1>P2b#B{0Ar_Xzvq8u>HuPge4i#>`I*iD#^p4nA4?G;SArf7v_Ih&st9 zEB6_DlzBrZj@_VHL_GGIJ5mYB_#ZJ}071KQ%9FPfrCgCv#_`0j1Z$|~0PWrb>khap zZW&Fu!U$J5xR2?B;faBUUsg<#n8EHQ1Yiczov+Hx0~1+wIDP2tN5iPJ!36r;&2Sms zhng`;$x`>pyeecJHejm{zIYf|o{o2&xb}qd47jf&xTJ`WCUbpa1(Ha_vWeX1GH&kD zaH%1@{WT%0-H17}KMROB@9@}-S~XjxBo7SS-;n%Pw+Kv3bXy7I4yh@_OJjt7bt`a4 z(+lfE#TkqPukLjn^7C2$)aH*JOX0;d&S~*+P<@xCBo*XiW|zbGvS?(qXvH@YDeO`A zZ(mss+ynoZeH)e~ZvKd)J$JY(@q(Avo9L!YHutYeh)Y*<#c;;Mbm-nleTk+|fk{WY zfZGK1InjfytSOMAlYpFx!e4sh0M=K?zZv#<-CDw*v_`6kI>bD+BnkTHlyxY94;2T1 z<*SB@>UP9K3QCOR&Rd6&Ry*+A6?z^8%6s^(y9TDH|@_z{=(9W+c3&AQWh?#?5uoR=7i-e8^wczy9iEPDgnAs>xky|FeZ* zn0k_qsJ&V(!l{^ubQeep34$HfOTuw{o&%&6c4@p=2MK&xLAHjqF={BlWXW8nZ8%en zFjZBo1fjY{KTEM89rGrcQaM{_;tw^YkUsRQQ8=pul0G7gPq3=$ndo=dF$xu2e1M(UJCju z<1vEbF}ALVZzBWXE=oG}Pw}+=!2oiJIut+f(&c(p#IIoh}L+Ku=n~r_WVp1cG1}QUGmQKrem*=2ywh$4 zd^^#7FAt$~LZ{4+<=8{yXroHMq@Lkh{L!&16&b=}vvaHFDK$NYjWORH6WvUSPPGJ> z;_x^ja5xuf2m*I)iKvRgGY0F)Ll4uV1jL5?k&<<4TJ1g7`v|QM;hJ)(nEFwYbJ)q< z#g?-)Qf{kXyM_2+r>YgbMAXy3vLZZdfT1SIor>0ff%N612C)93q;_RdH4E&;TDgY~I(JByRWxl=j|9QX*WC&NEZrg2tQ_a` z^Po@(@x{;Ch4t)N-(P;j?N?^tAzjn#I17gPy^c*&xiimssU&*4>X*V0Xa1mM!-uxnx;E7>ZXV=Iu@puMe;G@o=gK{>hq5~}oqZvKPv+9dLIXJbkr)~-d zr8Y4|l&2x_3Mv^gjLnOeo3cjHCYT(N z3Dw*1E|MmuWf^=d#SUXz<8Ui5sd6&C^F~0oXYi~zkPF(vbL)`tuxDOCem(ZT&u*dQ z6aZqRo2IYV>`P0OI!NDpMmp5d7&VA987o}P`mYl^E(eq2l_ck~V zl`FLq8TD|tMn^hvDxaka9}aW!7y{y+6cE?ILGG#D(*Qw&B3i807fvMt-@LGI7FIZF z-_Z@YEGG&AZwrVh7@sac3G_lJP2KbK_xoHR=5Ke>U24r5VY!Qa{uyvy5d%okV3=Se zCpfWSwH}Dzvrz3H%eU}RmQA)u@0Zh(Y2w3QuItl&L<#*qg{tNlk2zbF9^s`~m{=Zm z>3^ERQs9#{8aQeOmWr<1!;D%=Qd-eA9iuCc5ae_Vz=SK>#~88J%&G28O43q_4KG=| znMNmX&sHy5Fp7w4wprwJSC1hP#%T-UFyz`=@;e@sKWx4yA&JyUVLIlRQcTr%qqB(@ zqfIU$#W7}G4|<{C#4ijuf5z4s5U^9Fy(JHjVl>tlHrExci!h%y@J=uaq{K+oQ}lP-N{czYoAsWfRoks*a)?5P01C`3dO`Vdkz=_JR?B zX6%JHX~=?*8o$L1FTP)7No~Q{Og__C_Cb(lusA<;uJ|xNIvzxsF;T`bem(%PAwDPR z|GT9cMn@}uYo)A2Xk;V7B6n$p6v>E{V#;m515bM}%FRhAC2`6VFXkYTv@Nik%SSO^ zkQ|JO)M|lQ0slG-1$Pd~5Xm*I+La09HbDyAWlSSQdeIX1$DF=yt~3N?uqI0ach^ml zvQMWA+(J3zD)c*mzL@FiADS#20XyZhu7dT}?O9A9wP&#*dq4R^@Xi+i*d586(XsKd zUWZRZ_FB$+-YKD+Bp7MQ;>S$MFt67#Nt|U#I%~7B-(X~QyBd5gJ;UegL_d|0`B6LT z^LhwQa|E`mP0E*@ui8Vvnl8?}zVMJ^(nTF=!zcLaceoM`UZ8AVivQ~GpThOEmoJwPEB>T}c20(Z^Ss>-tpRFughn}Bj4bL_3& zr6jS3bkHqJkkJhE!;VhR3FRrsV5Jq<$`$&^br1KM!sbz)69QbsX~3F9{@ z$OeGHM9t2#9yH0%1nIgg$QGW0Lg8Tiu)%h%Wbh!n0=*M#QP_}9tKB~|3#$GhW<2u^t%BfgoA z{c)Zy%u_2oz#kh^9$07PD0f-d53ZOlYw@np&a=RMURUO*t}}!Yy(>V9xc8c;Q1Gk(L`qV@+QCd?yt0Y}zRii^%W?U8{)7bbbGzPuNcb!$&1o za60gDFp>XZDWO&O{^nk3u58;x4A_#*{X5&yrc$Tlnru`0Tumbt*ixdB7A|`wWuP;f7kWMtCBn=4OPrx*wZ(EJ==6Gr zN>*z{)US*hpYYUiLghf(zOHL{XJn$RYj#cc*lO}%^`N-zjZ#ihPsZ^v;oT|~Egf-b z>!3?@Q&%}TDv`NAgL@kVe}JH0P^bS@KK=%czvP37ftmgv^uhc;&^``-cXYfZ)xQ29v+DoLPOJi@pEX#{sKn}(b+U=bqXRy!+gu?KH+&k`-% zK1UthwmR7sqE}DF;wM!$J*>PK+AQ947B3@(Xm4UeJm)T*7EbiHiyoFqEmv+kUhpa$ z{PW(}JN<*9MUcTd@R-r4m1st&1&Z_-_GIBb_|W?eMD|q7E-VqiYwGm-&P1FDxNb%7 zIvf7Z9D@F=Dqaa&y*~)-fr^lIz#B+3`?vT82qxv_8R7=Xo{cV%D>9I-bSJV#gW>?L zxs#b(DHr02kp(u;O9EnfP9posST3c<-D9<%Wwhua?xKY;`PL-}X^N0})nz;Ne%@m( zM>mrcNogGd}uWkV2T5a&cbi!)+D~NdM@~bs$nJpnvquwm z9RAvJ%r5dQ(o!sCB%cG@4`}7k=7a45FN~JB8f-r#o-sIF<~2bAy;PwI%q@g%S`n** z?i0RSw`>+h4qzZ-yb2_s#BU+^3N zzi(tS%U_&+j_h*xh7A|lDj$9ai{m$sF)yVSWT+TX)%l!#-cwxjOh0rJQH{guw7D<| zgJyV=W2e~si9F{3ip!`dXenr_lq>M?F!D)0|g7;opzj*s2rzB<;oea)%nlKSs&e#v)L z2(8(3XVg!?q*KOd&F`!3$LgM~+g?yNM z2}Hlj75#lM7Fh6`RCEWcYZI*kJ9;N%%-RH<1U44phIB7Js^f2kT>VQS=l-dXTQxU* zIR~<=xY%2~+g=T!OkIEs-*=NF)+(5&y9|m?3#BBK!l|K(uf@UHpSLcX{i+3nT$`9f zhm9%IFcwLPS1>Ten9K`S9@Jdm6Fm1#Sc*CPO!x#1Yq}im)%}?ew=rvZQ1?6X|iBY`8jg1 zEF-d}7s^>MpXg%o3S)EO4n?yl8ClW2joo5Wzs;HRyj-ic$Mf)<+VriE8U+ZZ-wN6A zt&k4i3aMU3$orQ#bs1ACW5ao@Tf~*w3OKMb3@`2JE#o&YHrPV1oW&WkP=wm3kB?^>?7Ph z6t|gEPVGD4w15Ikje#90vn?`*rXEMFh%cEEOSid><+_OW%AxHhBXpnI8(8PA-GO5& zHEH+NxvuayYaE9)?0$dYYNXX*mW4v^R;Gg%7S8Npw2)?ukDIfTTbsH?w&0pJ387sv zve`010otLM1y;gJvYpHIjpE;@uxSNB1>0yaOC1Iv_7Taz%HF?^-A!*E40xF9m1X3@ zME>-SUJnKCBjRI1vFUxl$#!*mOTZz1AhFqHY=rS%WW4om-<(8_Dv+{sz1z& z{x;ts&*(q1heJm+KLC3yP0p#c`(mQu1r=nIiKnf@6MU%zSjp@ec+(r@&z1WKB1~j& z06cR~;s*eZ=m*=u$I#~&NMzf~>5*=0N>lLczh%ik3RPbK zDcPUv{Ei%PYn@#p^+WM+v#piWz%*~<_3IF#UzTtv#An zSRXf)l`9^$vr6@6t=pg;krS6qk(gc~yz)uf<)#y!F%5Av1qXnlLE8Xh?$NyR8WEdz zkC1pEq2~r6x*|vFN@S5#eW+u@V!*Rcn9Hf)t-~8ufMf|~zh84#h-5OcG9OCt8iKP# zo)pk*_lIa3sCBNRp7hdDv>gv(Qv~8`aWuoHeD0}5D^sLLDY?*oaW+70MhbL!HC$xjj!TU1C#D zd!IBW%3`UzP#+0Q;UPB-!|q6mDy$Q5IF!bN+4N5~a8^zKTaE?;j#uz)*a)X^h7t^i z%oq+4QK>roE+I}1O8B3qr~JvHbC~-ulM)Ci_X$*#Qh?-&rCzE;_QQu`N$k}O!+5ni zu8vjOr=Nf!1Q}*_z)#v}<3a2PQXes6-3{V7OoNh2P)5_g3!#LJhT2f0i&3#B)QNY6 z57;Z1Amg}q;cUsM7N_SNjEPVnc*55}Uv;CF)kK=;T?g|bCdyNbelnIL6D|}c5E&Ak z6YOjE%#zblq_DP#@mI8Jcn@)+!mo@&ZzH7gSYP5<)=!|pNV3ddmX?~Q7_*bgm$+>@0c-7^J!pU7?Iqsg^_NF4pNFAjEdUcwhgn)uNgqI8+8Vi^qeG%UA# zel8%Oe15<&BK_zZdE_k7g&F4S=R?L!IB?3MgWv|)lqW(e&)Be{_8O+*6m-rW6S$6& z-w^uoae7!oZO!l{-IErV8jZHJe8y!<7jajBu%Pja${;;zp`sOw25?qUA{@u9ZKat^ zu-8W(i`{ES6CBntxs?=i?k#js9ZzNoC|nZ}SLHkz5&2HnNSm4cBDdb$Y#N%|kGf#j9Lmz=3yc;7=k^uISah_=GqEYWtOlMAP7)tET z5*jxkbJOOD$snS5+GHaNl%yf+Je=kb;m+ zLACG^$hO?D(Rd4L4P%Us!y+FhX$SG_L>c{UNJjmYiXXW1C)}v}HHR@HK4(xQ8al3> z_>SfveST}>xMjexlf@ezKOifHZ1D1p0A3&=2)U_nQOxEoKUVC1+!B^S znSAKLjMPOM`sJ*J*;9)K)u0m-$Ti+oYwCGJiJxsijpTnA!SA<19hDrdPXhH|T*3Ce zwW#!BWGll-!z`$uUy?}r-vS>-O47|XMj2^>im%YgNHE*us+qbb+Tfy~IY*g}v5Ubd z{;0Alh$p!@QmN25DTrxL%JWRtTC59Fy;-s}OxyKQXG=4C%zq-(uuy2V@=|qe2}?yH zS7e|wHTFAvXnSw3D>U zym$$}6=*n^|LwRevGMSK7<&h0QJ^5p^4hj-+kV%!ZQHhO+qP}nw(WO0uWP!iC!#81 z>MPFKJ2TfxRsMR3<~p=FIa9=yPT5^V-1;cPB2iyunMUw`bH} z&N;ii~NLVOncQLXB>mc;)@ae(a0s}B&mu1xxN1r zGgyY)h=m=Ir4^|7=x^>|qOLlA=hk5pi@={JX{ArrZu6bU+iXIA?1FxZ@t-qArFyP4 z+`}dM1^ZoBOUSC7JMD|8gT-kbrVmnO&N&zLZV5=0S_xk}1-jJ`Yqp3|=}KHK`7YyG z&2l#PF3T`h6+~>4eoO}{8r3pTch_3=6v?#U>o)KWA_N8cLavldu z%US55InbHW#PAire(kqdko$^KrXF-6$J#fgHtLAtHV2Y|Z zn1jpN0~ac5AGOkI^DslsrBUA6<)P-Rqi=2P@0(^p04mL)>11@`=P- zl+sjF++0zpGR|mJ$1P5yI^79<{ina^%m=*lIV7>5wRI%JIP>6(IZic z*6h^qvDC%V$gnqY;#3jS@WC+Pru3w=|6N@fh>~jld&_B@j9Y^<)MN$B62vEfxq$iHD_QyjQA^e1ri{IY z?WqPZg;&7=$6)#B|Au!+>3xCAslkbs zfGPf(CFZytfMLYw&J~sbhH^2x&bEoZ-FmW6y3^2PC(or{*@0PhHxOHr_bKgoG9Pcr z*_7V3dCGYCZoN#^PZ=MduQcOc~J#eg`W3 zMXQ}5gn3*QSZQF`0sE}ExRaBFeSiy9iKh>+Dao52afQaUDcPi&6DHK^di3M3TE9In z_2z~y#cu0KC6s2QNy%e6H$Wr-7kC@|%5eft=s_!2fdbj6d+e;P;!EQofJ;k}C2KX2 zt8Q)+MT~=;MtB)X6VQW@GzX@8jd!I9QR6{yQti6bQxs|Gt?}dx?Tg6 zEahT_m4;s~hcmT7EFUX)_!f6t@}nqv?0_bgD4ttckCAaxjIL7Y_|x!8*VjJ8iHD+_YXW7_Q zYqi`^Zb@9JXs7*Hs&qdrGF>N#8zHLua4UrID_}j-9=?9#o!1x*s;|xxAp&P&a95N1 zxL|sr6eE$tJ+C^)>#0?ltX2U{ueB=Vw^T(Zr&W4HrH|q(`%?CGUcx${5@lYqs1Vgj`_~Tbww|^4Q(RFl7~Tld8IjwN_((=#h5$|};azIgWxCNEnQ?l*AtNz-0@Gx_%co}Pobf6~#n*)g z+pXGXN1tCCa|q4(g34OgPPNcIS~r{jG^}4QX72+WIIDlP!a*@dU>j(r>o09C;cUNy zeD<2#68$;jwD%x72M`5(kaIxQP7!xV7_SBE4Ft7MKxf#S8tAWVsx2K_^V|PO#WP8> zurHLB5r($~<4?<=UiV}qxRQA`5{C-Gfq6Pjn~}c(qiA8CMGc2c)6fVHV@9lnHk(aH zUG2<7F9+&_(eMg~yeF1rkh1j7FyoV$&JFMCp{qAiC11$X*Zj_S#t`sp#`Td8ZF|F( z{16_t(eSd!0`t?|=TG@H=&QB$)T6nl+NoF}^WP#ZuUgyzxm2{h29~(luh};x*<`m^#z5ena*^mXEilE882i&aoLzlRKp*wGZ)5^i*Mv_>m3J~rv7{zW41Y~BWyfk>iFfr+`IfkSPT_WraGd6r~l zaUjAn;9Is(bDufU(t^73qzHLsu#829UwVDwPqcq1&I|?A_B)~v#Lv|zkbS4-+!GPO zb*R+*0Y(ZKHn?4)%~$6GlQ@6fJg)n5l$IUJTl;ttjy!co(K8umQJKeO5DV-8sztSD zE(@KKP?DTSRP~CNpr=iV{&6bi`?vl&({DzD#~KA8<%oLyQ3$O2wkawoB53!Es@#{r z4n2fK6BbVW!2OwpMxD!<;9zjITO{5wPuIgCI%8mxdzZ3Y?i)=Ljuh#DrW8@~@vLSt z8Xz#WFVIPD$qU&=Itj*nl+%tEhn@tPQZKZQgMKp!SCpOEBnO%+6oGkR2s8w}O59UU zFQRl);DOJNm3nN<@W!OL_0-SyUtF5d{&Yd&~IBl`_R zk>roMW5TmBWkL=XsIfl=pTJb4xT8!U!emlF6$<>nAe~RwIk%+_CF`YA5at{XVDT8S zjGLGSsnbUcB3i6>9nj3nE1+#j*keLNwOyPCvR+#S2@TV%bV-dciUK`tH)qxLWoT_| zRvVxTjvwIE-s-bCw*aOTaT<`E23ns8_Qmr&bWjVV4`ism+aX-SuX9tPymvN#d@A18 z#7S@&39*ZtGEz0!JR0$W2cjOlsX_~@iq$Bpt({Zy)xzTHWg53^mSV;n-*OrA0-e|2 z+adYRmms7vtdk>jLrk}v9C6vGE?~G8K}!JQsN9w{sB%-T=;dg$>%@xm*)x$;bT|B} zUc#(Kbj0*fAzu(hUB-#Y5mfDFsYl-7IBuc{)fb+@DZ5O6r5$`m&pNtcPm*iS-v_S@ z`!Y^I9Y7{$b4Asito~2zQ0Xu?!roIF-^f4vJevEIPBV(Gcu|Kd?GkucwUkh*3~ez@ z03zm0mK>6Lk0=?>IUSsJRNO7nt!h|y}5GRkK`nR&x)k_>)Zhxb)h`xB{e06c6 z$i~HZ`@_v0CZXM~*!`MRa3Qf-{gKC%nQ?S|a*>uuqOn)nInPmAgx5S6RADJ8_AJLu zwrmkmWkEtnM}!=?dTWI@EDJ7A2veq9auVQry~s62T>;J(&HrLccrtA`p`{X*+QVhj zmi4SxG1-ms{?FpFfITI#1J*xzhGiA*nL!N!e+{TQg;?hWD;uS?5ae3G3tmueHVr*Z znF(Zp1RTGNV&eC7T-8xubF;-?*}e<}!GYOkll*aP6sy0ccN&Ny_uFz)&!VYAqyYF9 zH48elZ=0uY)n7KbKHolez%Zv!#&T?xPlAU$2w^4~1h#qa^*>gDmEnDPxT1&~&nExx zLf+kF+{M3zyeMOn4^<>P*F8`(Hf6t@%Yvy$xU1liXRiDx+_1Zfu9-5wmH2M$M}0?U z+ls|?Xr-~9Tc`JZPPqQsVZbnwz16Bizr}9^vhH#r$0@ir6`@X zNUE;_mCvWuINdKhIv4_!dN(MU_-f*z1atetur}1gCni^P6RF0MsM*02msq^FwNPE6 zc(DJHI-q+k#-`ew$3f?-2bn4BoIujh&{-shY z?Toa>!9K(rH}HP7GlA&&mDYx0ZU}%fJ8##WDwcstDRGaKIsmCa>vaMrpmu%b;83kS zz_>GSdpRBk+`LI;&Ha3e=zg_1;KbD;=}6fE;e7K7n-b;%TsQi6jM}=Fh}ohskBPUj zBodRDPDt$oSS(_)IFhrO?3qNTSjC9TH4e6UT!E}uPuvJkUs7BjNRFns-_BK?o>7<2 z(w!&s_5~Jde`Z_F+Ek*jXV}-l%XT@edBO*Mn@=PgAl)pRx>OjYrTW5R5mx>wgUZCO zYE5Bq;%z<~xr+k0uz7}KO<-H$ZK!@jx-mN#G3`W-J#!n$1Q4EQc&;HVKI$3eOqV0$c`aw%BJIg)!?3~=(rQTb7*!DLZkz4GOZtVTL==?zWhIUbyr z7pd5X@#r8xRa*ivEIW`EXh$u{vlur$q+>qmcC%jO$8Jr2mG*KRw{pUQMw8oe#pW50 z&*&;FQ#BbdR~cn>Q2{dqY?Hn*CE;-q*rsWAZG5#TyGyil0)YaCeLOfTT%J$Nlh!Q( z^@wR!gro2fB#XDbTEbs5Y0A7_pPDmh<$A?eVLT(lC1PJq9Yu3CX?_~?CNiFZ5aR$CVI=+)gOi{^$YY+t;I-fG-u=Il0<_5^ZN_rco9@6 z9{B#8{@IN9G=j%+@9Z~a7Ju^)@|PEkil4H~0<<}%PaHArPI5<+N#*Mk5PG9PA@|Bu z11&|t^|{B=k;2e7v@5GL6`k4ZU{=Div?g7-FMT1+xgW{DdbpImvOlSFAxWKQNAgK4 zg@)t1iY~IGP1xSEPDc7FIgpjgI9Ckd+LZly6G6^%*sKIi743EK-jt?M=$5>P%#g;p zgnQtlB3jRe5x{rgszAl9`0js@-LJM9<5Yiv_4v!?|7-62k2Lweawjtz!~Z4L{5L{O z_Wzj>b4EkU4wn@Ht?mpE(s#gPJ4M}%w>QW=pEN&EQ_^#n0$ybiL^x@ljpcZcnYp*R zXG|hXh*X($Lnn^+D8sJSrzIz3d-j?Bo0n^An>!h-wakv~%ZIwn&sx{U*fRrp<@F~P z64)2X0M4Shmg|l{(N~S1i02D<-v8#!ugTnv8W7Yu|`_me({lVcc#jWcw!A;1xIZV)qT{0 z2)5N#W@g)aIxY1xXir=SkjUqXqJ;6*v}Rxo^poT$XDA?7cy!a$X)ih4l!uHLK05Km zs0K|B2{p#%@Yn;?0?<_8OK9c6hqDpBViO2=!0~tv9P-2+srwWg+57n3fmAh=X@VFh zflA7D1JHw~`(}ab&clS^E&lIlS5G#u4*^}XNAx2+8ceziG7$8dz&Lb675w?SKaa-A zf#VRkAa})z_0~geMS(c9*2)xwl?uF)`Nz`*7P9g6ei#?rMDYkEt!#2=u~&?yKBD=HLR!3l&k6-BWWHkTEJ zA`|YY91}sx&I3u)Oh|~VI*{fmE>q&Nlx44ZWHhDb<<-M>y%EEbW7Zw`27B}Zg~bQ0 zG`YmOvnPnF3q+rcH9$*g3m@gCd+Fv(1oAVf5BZXdUfg6=^4e8ALqw+c(pL|M2}lb> zE(p6IFz&~icviV(!|KG;TWvLQKPx!Ttb?`Gh0j8t8g!U{+(e*-8je~Hc?Bh4LAczyEa~sf61}>9CebWgI>GtFp3nvt~)OK*lVVtmNE7 z!WLDJaz;ZC#YALNq$43YvdN#UImdx8@xze2tKw87lon)8J2sVTsvd<+H>c`=yF?>i zdx>64(l8Fv3hKLPT58XE|&6{EEudeVq%8(|gFMr`)h<%?)vZ0^Vry8FJ^Bf8nnEY( z`I+v@F$K42Pa8eUmCt?V0+Jt0nUll1bLnqBE=rsjcB`@iKlmCt8apn)V>4~Hoq*;! zUhAN}2!uNouW7H`?88cJTZJkQ}wJm$URUFnl>h^hI$rVd=Z3N5M&wBqTy;~j1=3scFmj_uG zVUBxFozpAhVdXkISNF&^eV&7^WtHm{2Q7r#fIB65^&NTgz0b%6dZzlZF$3t(JXAZG z0yPHo{f=!h>_vbA;goE1$Vr72VdPM^WAuvrx)$(P4KLxRXb2J5L4Y&NsX|FKwPAPR zevlRFZf>laU#MG6gO|McdjdkWkgo$YuHMEMQq zmOom>B7c|mqQx|e|3b07c#vV|^hk)My+FXuQN6?vObM|<&&_I$c^+=c9tgp(xvZD` zI_{TnXih*9<~2w{Pm0dhk%wSteH0DKT9Qh8WSRZl_=p#+^Ni?YHwH^qo%77VdRtUW zWj?v-bmziC{WGUV{PW~$+pug#IXP-jS+vomok9_}w6d75W1+_fiI;k>9##t=v6Sv9 zQTSP2i7y7>5Ui+?+JSrh50}~J2e65eC;49=@&7bZGIDVKUzQ`s{~DGVW6lcWj;N#Na#Xl|wb0=@k_F8=e9kz55^BW3Wbl`-(s1Qwmfe_+#aNNbZ4_=@jmc& zkIsR+KeD}rv^%uVyfVxjnwQu|J`3F{$|66fGjBb~TA9Wv6CQ{;XrB%$T1i?NYf%MtrzS*2cD{d~o;0~+O3WHx&L(h{{ZTsmktak)n?buD$0I=P&r`xZ-4?Vq`3e9Od}}rBSvF zCDw_CLZbzgVV~CRZbAvRk_egsQrW78ri^ygA#m=X3RAc2Y{3xKzMV<`*1W;m3?5^GSQmq4 z>1ag521vJE+TDQY5Y)b}KdKRtJ~a)d9&r>9wEr|GI=2HI=s7=Z%WsG`0$<@e(k3_y z!-;P4`x~R{!qdCIw1rvAE2k9Tj2&5w6tJE=){@v}2QMT)VVps%{qPUTfmrSR5Pa!fUm*9{F259;0?pWXF`%9;JP{Vy3r7~HT|Z){khDZ%11#x z@jjw+o%tM=}x4V7!V_h zLpTb{;?CsAKr6hD1T4pEiJM5OI*iL?45(sMWGF2?2!~*)1hK(01&+ToK`4Z=C5O}x zQYu#V=EgW{Vf51NYn@Kv^E@CMmvzv3W?molXu$>U_0JKDF&+;F`4^fqw%CNHNT=3p zAX1rY99iEpEOL@0O5o7D2!S^O;6!Da#LN0KmI@a6%Qu2d!h(;Mh2Um~&^vFgb+$hR zPdZ#Zf$XidNkKsrzDR>Fp51u+%R{|6ENnNMZr9Ry!OVu!=E95Hv7)lfkH8 z!7TzmhHwhWF6gL;vGvEU*pOPVaRY6HL-(3TihnqXP%B36QJ6TquCWZiTnrI=Z+Og3 z2-e94kC+iHr|7dX#?%)5-^Afms*XuDx15%;253Dn65SHvAe{VAvdZ* z=U6^ujy)I&bSR#@gn@2|zu?&V)FU=f>h$9^MgYgH-};+K7)ypo;`#{T& z?Ldlp614Dt(5S<_j#5nmfx8oCP=cHRfem6Wl>ZJRImS{Nfb=No`3f;)lf`Lqo9YdF<^SK{G51Qa7zA}4+Y?kQ+ zQCIC`UPc{$P`ngMIw37|o7f5bl3q9!kKb5XysP*gf;+0KIf4;!M_-OJYql2bOPtKj zbvw~uLJY1?G_e?btOx?|j{BO(^`Ha*oYGWNp8qASiJ0c*Y|Y!&6sjy;TFiVH%5~Ft zg9g_3a=5w>d^zy!xRCB-jkfI}E_);yIru$aVpH%uQ|)znK>;inh_ga?`o$|8!`6I= zzGAq67s+LUW5d=Bo}}X%>|B>K1luFVhDWs-t2=ad3s?;W#tUU@IVwyOjlou9L#DCd zyT9QkFAEsbQoJbgD6R>nGQA&=iHTqP^iL89jgUWjt?aTqA4~bA+FN`(Rw=x4favP3 zg;W-l^;Te-tiWAUDGGoC(Ng!zHw)#xm{%xSj$oI+P(5$;nEb@6Np1zz{)9Bof(wNP z)sd!RIAFL^ZS%{lNHalG{!_a7>STo}S9oc4ej_d3E~Hiu!3oo{5}ShttJ2qIaE(L& zdGk$aV||8pU^=>p(ZovaRvt9a@U9D21&@B~+J&+B??3~_+!`f_j1G1ZagBm`^=k>5m z$OM%5dA9Q@0jI2QlbppQGUOY@tTnQQbK_>y^=Rsa>?0Igq9zX%Kb#;~mawElXSRS< ztS#kwZXjb`%rc_zJcTR#ICxv4;9sYdQi4{8B;|1r?E2lI8I6!=0xuaNUsJmVxrxw* z7bjWRIbd%yy_=7;I@@t7#8;+#!mJvu5oerci4tSHN(K_(K0e&I5f80m_PZ#Gav)R- z{*Vg%z%szHC#o?xa$Vy>AQh+DbRl;bf?NnMceo66mlj93<=Y0j~AJ(R>PT1i_~>dp9E|JZh>;uMHo< z#6d(KX|EWS*?0FEyX-={jz$?kwp_9b5}?B2+F|CP2V0=AF5rKYcJ5bLeS_PyvI7bF zy4d^>^K`%$K8zSAG!%R|w1Wb)?^zIAnc9-w;`y7+qBk-LLrQ8QfT@GDA}&Fn&8`>>A+ESNUaoP!Iw3TV#Q4p zxT$)Im04RIMoqC~!tsCnB_HGBD#ijA0b9tnwXgizk_FSHuXaNYQ6v_9n~KCua=M2& zw+Y{{w?T4Nvixfk3@-G>ICjc*37r}*J4T$GJ;mi$-KcltQIuX81$D-<{P5$Is5YZbD|civS~;9VP~}9>c#9wToXkz!6kx6#ah`@N5!HhaBZyI8|3hWdi>Go z(8TSp9Q7}i*f4GLnasupY&7D%b1ie2byMRIer`|$A2r!<2Pr!)MVKSMCo34al$x;q zScu(_x%LP<%$SIcc&0TjnH1nJe#b9AGkkGE{Ef;V8;h|?#9_DVYGLyq{f0? z8ET>a0unb+2@La#44M)v4rA@v9IDQe?4;TpDV?^0l;^+zDiD(*YNckC9bx6d)YJOb zfanCTDh$VaoKHH?P*;xBR>bK5fje;`SMb3|QOpGi{wgm@!INLg0XZ#Nbkh@&6=lKN zgDbzNb&t!b_|{v3aD8ViC$0Dae81!e{nr%vAKCCfs$f>u|62uf{x?Pd&i|1SU`0#9 z4Rs84_T%Oeez)-x$8CvKjguU@KX@Ec--uLWT^Ay_A5wf8?w8N4ydi8XDG;3xCpWjU zs_OQBr$N&0b&28?`6r4$uXl6DlO}qb->l>UqZ^+* z&Ul-1V~5M5-tYHysOg`s?q=k6Rqx?w*6m-an_&OszrM}6?&BB8+yusy)Y3>gJ>CVw zFs<~xI58ha(RKsdTQ1JN<9i17UU78X+404yc^u4?eKll}h2H52%ScKcaGTrDY69x* zxd?+CS5u6@x zQwI26+KJ!g(|O+GvWts2yW~9MIqe9{-EiWeb zWkwVyHK_%uKQp01vrw5E47$o*jdD`I_i#Ba#VC_qA(NxDd+5UluDmZUP zV2AnD?!Z*Qs}Oncc=Pinsc*+6sxVjqWGoejIzSHWq>`tOhw^sjG#f5aQH%kLeQ0HIa z#QvJ97G0V*<8}r=V363r31Sx7t^)EDB(V$bi7#L~QnF~nAi!qgBgWNqCVI=58Wpv4 ziT))-jyG%*{-|M*h=6TB5wC%j+}BB_QUge0jLEjo;@Y)#Iv)aDkB0Vm2=g^8Sb+G) zKS1N0$V1^GOx=~oK4^kKu^a{xpQ0v9;Mt4c^xnQc);_s z_hh)D0HZ622?blYW)LI_Ib#I}-Lp~V{;pJ>^EsslBpWz8$;v>a)a7pfOWf%Chb4ElQaSuTh#=Ar3 zaFp;HN8B$=sArLM-rqXg5M~C8tP2-!SR`_gS#7B4Hrz6&)+alsNsb(l{Dy-u-Fi|n zy|0vglD3jqc%!_bkm?APnbygvw^UBo`hyuc8-DHuV^4rDX0gq`&yFJ)Ha4{PjBWj~ z;JbQ*$!ICrn)Dl0$pRNpOQ{rsv*OJe^`*nrcSW8SnHXJ!Buz?1{>VU%20JV77(bIw zcG}tjNn~wN3>35fNP!Lvl8yiI65cTkyK0z|2;3}c%5wGfq9_C0t4m^!T< zsV%HrJeEvSG^hxdeoeup>Ya?Vr6RKGQIKp=q1|tw6!4U*0R|CR4C_eu+xxm-RcbTj zP|3oC%C(ZpgNv3?4r0E?Q^he124UvgSiVp7w~*@B6TJ(4zzyF^B(UO0m=aSmF*R+# zt!9)UUNVK`J_aOVgtSs+Ycl@}&8Bb`x~RZG$efpLW3ycF&U+AqVGUSYeDqOLgvunk zTN_9JZ+LZ63ONERkEbW$6U0-R!2Pcs>;>i~Di<;}bhBt}qW!$>wy-1r0dM}{k??nR z)fnIqk7$W_m}6*UxaC8YIvEhWl~ySi(4k`OIb%VXhv+n`$|HbvkbkATCwj>K<%n`P zmoy8-)&Y7IrIo(+Y8@pyrKq+!6?OL971UvvezF$gghsa{ZmztySjr5euOei%HqA;} zie0UT8ZB0X(cr=Y-VH3rf$*cqQK*{*^DY^j` ztJwbVo@i^MCgnyO;_3=U&fHRz9?5FE)iRp%4~NH3i%*Ta01xvX>8(NuQ1fFEEh(w9wns7^QSXCS{7qif8q61aw6B;zY@#~>kQPIhXkW)lLPCP6`Y zYitzghf}vKwvbF~NY(YydSnwIhegREp^O*N5Vmu<)(+2Pco#Mn2G*L#E8Wn; z`9$ezxJN86NkRNu1sFI8@8HBf=}Vw<-}Dj+2M$5O2p9Z96B>*ydnMH9*pE3)3?ykr zx6OLld^F0a)XXm>>A~hq@qrQ06&<1V09AlByG-z6{dJww_l0~ykI&U(^aT*s*ylXb zMr~8)j#c`nWT7a5Svtw41-7JC7*O_0W?RwU(T8Op3-WO%A2u+OL?-r16=AJgcuz%A z&k=!Q^0dP>7~v$Mpgvu@g~)}8P0NM`{AW`qheKg-ZCF-xZ<9lPjl92|E+i(bvda zk_{cpfUX47&x<;9pX1wH&muqE?C!g?P92J+kL zZ*H-G%2&!rgRVz9@+gU4qso(k#PTKD2MSJ&a31X`V!6blS66Rs8w5@sVEEcf{`+}& zzQ=(ZS2yr{i%R07p_He33KweZq2r|Iqt-;ziHoh5MALEek#>&EXsBKf4agPf&j|V? z*RtB%H7zlk_|Cxen`*OXMpm?j1K@=*z?$VpY+iTHmNGAxex5n7VF+ANJE1p>I}8Xr zN{R@DAy-$OzTB7wjq^Ex9u=mLGu@Nq&%&x>P+`^_zSSyU@MH{#uz*GOdVRp!DldQa z`^DfFTtGjhhOKJl8>=lJRvF7Tm2wEuV6D5Bk%}4W4or+ThgKibu^TUUgh=@&fn@-J zNr~UiW*Lu{vfd4&QFed0;7U8Pi?05Lds`iGl^O!AiRsnabsoWJZd&$;m6|WO{nYl% zByN2y^ku?rOUzBYs?jSEug3+E z04Id_14=1e(-e3jU!CBBM9CV(xQ4n&4Dj<*f@=DMK@zWN(}Lx{t)YQK8WxVzUa2SZ zfWSrYDq~HTQ?pNe><&xywMb_TWbCc0i>;2S=M)+Mt38J-_nQNg5{K7}x;VgRLF{|? zHBnqL8g>NAl)gLKr%Na9G?N22N-gdrVM|IuZVPB7l&k|VxQVJ|`AwP3cE{@JZ}&x~ zM0Rs6rGxF{rXeFbAQaH7Y#3F_b+;PqgJRYoU?8VDN?&#F&g6RRT5+ob``;W+!R(9# zn^_?PB3P&FjJHmDE=?R89J(_0{HN9_NI%4P*eDbK>V;g*sy_=(-%t@SCqmjoE$i1B zNO#fY+A1tgN(o9wH9aa#*A*;n-G+6@mRP(&$2W>>nc1VZ0g&9xD}OH-3noCZeYeEx zuDReSDN=5d=mNL8b;M6SkmmSOihxmjGus_5;8uuewyVS8uEtp+@e=4>mjMy4p)Pt~C+F~Gd#Q8if51CGY=@NaiOy0if8pjp zxG{OAl!_6(;<|cbowLGovLw84G*TiGVZRmQw!>VVPYC$5cry~K=L(mCvgP$!IT;Ei zF}mdlEdi}+J$*g&2z5aBZ?m{;2|?%6`Zlk-QzRK`5O{G z+44^ECp-+w##<7v)JE066j=9%dM1*j=XH|JcLi$dXXEBtWWTz{YK7!8dqL9C(l?he zMXmCwF8P)g-g?%7a2S*=9-}GpUWkscb^f9AnU` zCFj+;_%GhF-Xm-(kMNq-dF^M9VsK06eU#LV2X^;zA@Uu(XK%8ssWzxxvN+SH9507; zGx>xc$35&cxb35yw{b_nyN(<=edG+|#J-QjBUpX`?;ZBh;I8UhprL<NxGu!Yb&+=&=d zsahjIri>z{S`}WKxc~{@E;>zpITpQ%)DxwbV$fK*xS`411eE=T z`hxODaYGXzoIjWw@7#WYjpkZ4|C{Lfe@2zeY>fYj;o)HTuPkp4hW`=Ed*^?9v;K*q zLpe)2k!7nIfE`W^Eb_Xza-Sl$UrtYt;>R@3w@q(XAzWk@84FoUr^k2k z6F@<`Kvt#ttfVtBet1{sKR7#eLvcr|LqV%UZtE9(zS~v21|+g) zEq3EP<2f+B5*F>;r5=H|q2)KR*A!MH5zz30M{IX_I6i*Qjz&2T!-+PTUu5MhBkhn* z!78H1&t~wkw>C>-%%3BX=O)B2ra z?Bw zUCpbPHfq+AP#SkX!WM+L@|ITe;KC0fEgc!aVj6~2=i%OWhZ_qz^;y}?Uv=lwC9yF_ zZ*+5S;h`-S1D6E$3}_3`0LtzrW@JtUgpdibj21PzvS5ui^TCyyop%i+tp$q#e2nB; zhy)KTcn;cLNf8(IL5`8%VhLa{vtcdz(moYIeA_`__TQz-*K-etiD2zT`>dMH` zlR1&AHFp{~2<%@q($ny5>Y0xPH|_k*k2>TU59JMM4Egli8JFjEU<;gahx=4vP#8N2 zBMUHnji$}SEAO_C_su_JNCOK`-Lnff)QikSwZv_v8u4B8dedg@GILoObi{k6A?x^T z8coO@G9?IXj$oB}U3KsdPjaX*a(({^p@7SXThfGE_3-$QVLwhgbwpjP&=4j*PW6xL z(pSJeHZg$a3#Zv2kDN|EZ`dDlJc{L`d;J_!jHwUFebt5%3FIkt-(vv2JYL-V)gZL7 z;A}ki8(g4|P7z=ka(mqCW$!2*sL+{cUC7lXBuUPciWb0!%W zGd!ld4HIZ;%&FS9R%EpO%7-rJRgN0Ui5NX%G(e1V8IT;nM-v5`iH(g?PBDFUPkg%I zegkh3$f-Q2G+E`>&MX_`hKqKr7Yjp|WA>pf=C=y1VJHIcE5Ql4de($8b_UACwlv{9GCoilRat0J$QOV5yHrx6pnDLx0B|(Hk5f_j>UC>ag$iJ0nP{RW z)G@+!ZBfRXknfNZfS&8(WPcXxWKQ}XbI=o!5vo2b4UR1uVfZWHYRo1E3o3YeW{=}R zgtH_mS^B1WUP%dM2T$J(K6gDareE&acvHUTsDB+C;Lyfe8hQ?ghQM#mOds}8@>LT; z;I;k%NUWgkyWSV9-Zi4mq0)c;AL8CANVIOt)?Jyo(zb2ewyl-6ZQHhO8!K(wwr%s| zzw1`jiP#l!>g_(x`8;Qg-rDHxYnoANs1+_1Uu-9NRuRc#V`#@q5-PYYYpV+spf^(# zl=`d!RoDt6YJ>8CH1EtD(P831py~^q7RXv8*#M@qqm9{d>RN2);>#ri} zpi~#hy&?K-iD0bY^Ffx8{mnu2D8@z_HciNL(gz|>u@Up8vQ5-q$g71dJ0Bk0p*$PJkF=E=Ys`e>Y=@jxg;9&4wqY~%;dAePie z2dOCU)74MI-u7@aB8tw&xSLc)lZO(U`8C+g^i|4Od?rNcLa$uZpH#HSB^?`O+}w$| zzjOp|_6buaBhq6L^rLw5{b%e19npFx7PFa25MvuWkbDs`cZE%g4?4aa;%d#X9fJ5t zo%zKVT}gfzB-#XSgYmu2qvEOJI9iWoT-o!<5gc*YEtPMw2_q2{;li4M`e4yY=gDy% zAAE4RsdP~12-Z2)dMG;)e83K$rNN+7cZPmBw`xY!4ovAG1@N_u#{5TODX%J?49MTllzQ^B zmcr}!BItmc@?9B{Cyi*giSa)d^2Mam^r;eqMN%Wly^Hmm<QdDAL5> zcAzEWXhmC*bPYNpLq*!OkTn)hn&v*erH&R$@zq2^(HwUc*n(A%5=p8ubClK*Wn9z6 z5Eftr`x*L?sIQsnbRN?6f34|rRmFA-A`t^4%f&5{h0{N(DAd=q{!?Ut}hM8JY73+JHf`5{%haHu5 z#)X8{v=SrGAt`qipbPM>VVlx-q{`S1W@+W^wknn2RW1c_7Fx$WFPatO|J1ky&9n`| zl4qBD#dkMjrBDh~mkO!kG2=j&YA~4OR5ZV|v45SN;nR%!&g+qrFHw<9(>zNR4i(`& zYC--zR3DxiO71kbi==p+&ba|q(w|WDtvCt)TW7M|1eCaw0tcd zW=S0_0JQ0i%*ZEq@3<`_+-5=W!3ViVR;|xSlnbe46O3nQl0Tf2fLt)~jNsF^@5%yN zI<@OnF(w>9mkzt~M*?DO`@6^aCb&R)Sg%;4%|Q`=YBgQrwCBY_Z(rqWpFESiF{YC7 zFyHK*=YFoE_0ai+u*(TaK%E>&IG zev?GNbe~i0MB8-t#XJ>~fK~$fSqnre(^71F%}1QzFkelWKguz1zUgHv=Oa_R(M)m< z9&vSq;=+qm#+9IFjF=R#l|!?p^f2ie=GiRcnf1wlGd=61N}B2rTi7PfGY8A@HpEhe zY9`&C1=NTFuCg3}e2)bEG`~->W8-a1f@j@I?m>y5>*<1jp`O=+FXJuJZ$}ZaH>r@R zq-)vKOvN|eT;bzS{Dn%fW#iw}r7`(GjJn4&usS=7#p{{ih6(%{r+)G;wATC7ZESLs zoAOJG)9>0MM*a<&8507jV{Q~709+P1k&6|&5p))x^%H%JS}uyG!Gc)|qn)bWKzEyH z^n&+!Y=#rJCon{8h7s9mXvyPK=lFkc=*PW^J###{x&J!ydOy0xDc{7-zdZjfl1HLU zvww9>`|UHJT*@v__D8W}5dBH|IsGKiuKBkY{9XqF#fXBqZ^(8V0Hn}XwozAn1C?Z# z*G7ASfC(W$UB+3<#&%!+4m6yxF-*i-hEBL7rnGfS!hQpF#c@vScJp)tQ)!b*1cO1? zox(9Y(6(?loTxDeTIi&e+d&aRqQi#PZ$}WF>SECh$QDO~jZ==^yp(l9ZT9u}zsl)Y z*8ALTiS1=*3YNaM{oA&)br%#gwn$0zfXX72raC5dQ;KBz)H3CIFrOrqT3a!T1x&oi z6^}BJjN8$Un91IR^M=!_eKlJMWsg{n*NmUKMJjFYKStQ??%^}NKD!77@r-({8SIRM za!HiRDPQ{7pJmO1KL=sLnN?#{SL+Ltx6HdMSnYt(85=t6A7MzvUoaaqHYc(pf(1$| z4!Z z@V;JuU7TbX96nr~W)OOJDYkdVXk(Xs#7q=8|CMpoEfggfD|IH7jaJIuNkrzkFt!-5 zbRjhn^?~}AP|qRd#gF%<7B@O&F|oBTxW6CIqnkf*2{fn8 zhHQ`~3F2m14}m&0+P^#b6F~y^iao}E+4a}H32it;kD?cuzd$EkH=@J9H|uyjNH5a8 zyz$rX(@8I_4UUR%8-P5gHBDE2prX2_IZ1m=B(yN|qY6jndRCclk`ue9<4@3G+Z(tHP}K% z1eYS1I-m^pfUjII7CnDse@hiX)K82eXko)jz*GRf4&K(?h-dHa?B-_^jc|eV5}jFh zR0P%wPy&V?F4%OWMQACyqkP7RC7l8nU-=4R;DR(tLcaolMu-zCf`7D|w9Ht+3|8G4wRXtyQ9qIV5}Rvps2zAxk`I8^P& zFHnWJG$$dXWxY zx^_4%POb+HA((mAv0zr@QzI5$71(mxDG$|$a1Q!GGNz#8AI(Id$_?0CF9&;_dV)Kv zI$S6PlU4}7b0+dDwM;scsxYl^9_ufZAi*DH6ZQ`OP8=r8I-jNE#J_XHX)piE4(+g_2Ng$3E<8HylL^}V6$x=ZDsR#nt#&&#Dt+Z0}YCp9_}03>SZsH zR4~DNi>a`V%(?-LQPX)e;wuY$>f5vK$9b_ zL1lz{Z4n<}e1pv68Fl;N95H{n!YsziR7fyW>N1IWXl!dod)Xy@rwcI2Gwe(wlwlgE z8esaSxDV`o;Q@-7ndDuD%kUOCz5959oIWl-k?ivgj{t*oCL1f(R45gofTIhS7p*3n zW6wvlSMeM(Vzks@VRP2~iCgE%DF8pDVqIo8M=0kdo1li38pKXFMg;BvJ^5>?D*_aZ zX$i41E^4WA?0ePH+&TUelwOm&n4`_~l?2A!$2Ydc53W*SmpJdXt*LZcK@mMeHmm;p zl{x_sHPY1X_MT@(P-@=#Nk(~*Qp4fZ1o8}~*#EA|X~8(`_=i3W&}}h*m0^e?SREJy zq(jS4*Ng_T;&kDVry9;X<_A_$prcrRTf}=)fznVae`;!GWUFimH~yg!*S5JDKEMW+ z5(Ah}d@0V~{?&IzA}xrI-)9mwqlI~<`1Xt*JieA}K-Tv6H(=^*c1}qf75B60gI%&+^C*5Ei;3nO$>!s zU1j52&aE0LSmQIJpbose`+gGrec5^6zBO)N!0hQKZTKxLA)6;+catv#4jtUPSyr6_ zyl}rWpcjH$%i~iKbJah*Uh81es&Ep)v2aALGed3M2K3N5dxO(pyU;}o;7zV7fCLa~ z8qNR79aUm_rqgj(Htj)&Q4Oq|hL0-D-Yj(h6jSL>de_%Wo1zrN@j>CY32r(k+k{r-xhqAbDo3lj)QfugTdh<3pE^J7b6MHaeJJU9D&tljx3+jY zUsVg6hl9ztgTb?u-e_mIg3rqXc$nKfoP7UOBq$E{kZ8S)iH58rHQ1aOh%Q0f{+I%c zE_C8AhWi`cji0m(Z}e~!#uvD30^A(iNy98f4=m#coi!F08M9|Z7S7&qz#O8;o})~w zdD{Mp_HW(9VgA)~DIdCWikd9IKWdYgRh{o>M(+TscadaDVl8?xQDalq03(`kwR;F>5_Pnq+#&F|**gHz zBY}vO__#Yl!gk@s0OCtl19#Dz+kORBKbte@PqAxL40sDXV_ZWzm9`&MFT&CY8a1E+H&z4W zN!d$VeYZmR3FCIVb;WkSw5CX%hDGNK6^MHdv-5^_1Abr6&+VFkamH} z@pZI!?S5u_d{uU+GUtUA>kMzaJ^w&~oDWHXF@D?UkXr5f{dVwKNH-?H=8F)HVhwdo zHf9WM@=E&k$PDSVLMDfp$Pvza(l~a!Pi2S9s_E;Csx!+=;bO!R+VWczb(%p}meV4;Zck9%MWg*tu7s*xBGpddr$bXkJCu8=Z+{==f_x zD>HqB4*4(_f+ylKmx0HlOWQ*g3CZy|Zcv6Mh>RhqdWxYSg0O+5qo@4$@;`jWezi@@ z+*^0~8jaF@Kf>|4tQFoy%`iw&`W_e~18jlpcoK5+%DLz=eexO|Dzxs}snra6kfI&# zyB|-K2i^mV&Mt+XYn68%au2J?=x>w&WXM^HO%Z@_%#@I&vRhyK%fJe2}oiSWwV{a*#?omQ*hP-zr0MS&oq_R67RN3Zx zf-v1gn@}KAFyP}e&jfg*=4_K7X+7MBFoN`n<^BfE@9p}FBHKLvTwqwH8FRNk>W@$m z6d}bq(O$8cc~}~@b9x8{C+NETl7EmySxQ_pDA03*gk!wD%W|ZL&=H10=9-|#REJ8! zxgdcQ;fHBM8l*bPQ~f$ToB%RJ$?2IszGb=os-w^)u$i-0fPc6hj@PK~arRPnFt}r- zNB1x4cLQnRpA)j8DQ`&>;fGZk$6=ae97ugX@c=PLG4R3X+RhO00RVQWCQrnB2Ot&7 z_sF2weUW9OLqoEDxlBa6XVwB?WuTVc)HI}1bJ1vf3t}|yUf3+150%P;l#No!eVejd zxl8tqMCIP;k7oWws|+3{q->{fXKSb+fGb!QGY3rQa=~mH{Ylbd;zBmw$j?#}4I4Um zlwL!S;cd!uPdvJ`z|x@fFGFbS^@sLt&wg0(5AB=0x9OL>Kw3;g!>9Ns zKWBsrkpAJsRc`KYW!+}9!~rTJ*{Ar})VGc?M8XNs3!TF;qhN}6u~UVA(Z01q6b&$i zi|BUil)U+pqSF!pO>#H;^6Dii1J*24PIqu$yj2P%qbqQUH#o7K9>SJ2rv*9PH9yd% zW*`xBgv1KNaZJqCt?7$x)KpTF3p|tQrJ!6Y$sINfBmY3b;N~_#cJlVf8SW!o<#s^| z_9iA4bSQb)v79D=h=xh{O}OPK`Gr=pJ(tfu21A71_m{CfMQ9nQh@31aGxIQa4EkvMjb6iwS019?U zDPvCZ>vgCB`dvC#0j7*0ZUk(;73zK1(Q^eF%_3=3GXtzv>KitC%Dzr{5^61Ao8MuY zQKDkXB<+6;5wn(E`5rX2eYPMc6sXL|c%V3cu}efS_C_>5)lXrE@mVmDuy37&MIwdi z3PKrl=P>q8xboPu$$CSyVmq0^ zyQ5s^lTOr0mj5SEgbc)Hw9y*9BZTvx@hcXU6?zgsmxX`R7g%guv|8QLT&~?q5WK!>0ejLoZhHHEc)zeEl22qNr;rt zPE&GCOf~-ASN?73kO!2+MOH3B)P_~p&4Tsb@Dd&ch2QdyNKEyhRMjO}0es+=VSrdac11VXE3n&A}FhTq_yoX~NW)Uca1XfZyBK!jV!I>@9 z=8nL7-bt~e8GAI34LCZpu`uWiYa)oezV$$Hx8AP&?w+zJ$C8{J!Y|?zzI}lXz%)LA z3~9^Hwza1IywfA7bSl%lbZ=Lzxy~a~e+Sn}mcT4~m}HF0Dqod#d*Lf@fx@z<4WY$eb*UGjDaeS=k4gZ65?h(S4Uyq^?<$a_(qp9?K z6X16o+t7EuULAKqrqyD3KxuDwT#d>+Af;U{loNs2oMEjs^BO{jG(?*5Q`JFXXCa&~ zP`lc-+u-%I(tBEU^7ZWctz__`Y}eXJDBw-J+nkBHk(}wItaq;R)*F&^=t%Ok-iV(I zNT@pQk9wPEJ)lGaOCBVV;*U&xRFy{A@sj=ZW)Skdw&eTPXR_A}L9&$WPoo^OzR~Q9 zex?7Cx`Ji>vZXj%Om=C6RFUe5a-P8CFo^X=n4aE&+X8eV;+4{ps1NrI;2Va}d5C>8 z)9Mkdr67&W=3EhBd%0PFkU;;M71<#1sFWnRH0(jY`%!>$){v-o&2Fqcz^s-j?K{5( zLYA?=9+$^~1jt=IhhTOq`-hIQZs*oj&_@7A!2Z$&3l@D$OyYaX>DaB2b9rC@F~hp4 zbh1nieO~1Yr3qEWzD>9XNdryI<5J&YHK(AmT69ImQTE|kWxMJNG-ssX<=>U+zx3yS zz^DE@am2>>KPXkk|CLhx|J6yhb_~GS{5L0A5kuF^7mbuODs&c#bl)(BF9>-y)rX3-|HHIul8Sw4}p2D_yysAR%ixwR1RRXqecmM<{I_ zw6N2bVu&FH>TbmlnIJ>MhY$jrS?I)y>E6NxJ;|36lzq8#s!LBS&`=&&c z*7iE_wc(#t<`uAlg^sje3*<+Ria0O^8i>YEpGaB^wk`)y?dVQsW}rmQI;XW+mijk#h+hn@Z;>{`yE-9eOt(Mny>+Xhr>>S zBej460@Xi!H zl`z@5YZ}iC_oD&UV?p*PAuyBjcq1W?f%=}C=X|g zewH`CCR#iVi$R>QXEEv*oni)@ni!*a3A;6VuuyIJl>H05xh>Bb`decWCY6JlJt}w` zS_W$@^jayJF$6anoqt!?%|tpOr$`wI#jaX}Ax)b?^2B#GZChgvEPReA4wFJo(3w|* zt21bOo(ZWY@KZfqBRW(*S7_a=!zNUD@KNFf=Zk4U=}{{X1IP!!NGcH@@EHqfQYfy> zGPaCttO66a*4?)61yNEZrr{U!gT|>-iyfa+0V;(0yIr^u-ILL4n0<5K^9CcopR*yr zYLBtf#z@D&a^NH+hy)-MeviZ`;ndre1!S?%vL?Xf49u(+X)BRck$1R2(i0oogu!zw0Z$<)tVPR1g?Yqef;F$lS=#xVbyU zG4Jsy>2KVtSk6)oPv37)bLSP8(nEgHagb0y?ohF|YMBT%0zuQGuA|)TWR1KWea89O45(rn=8JpFf zNDwI26{Omfn3c*YfK59qj}*m|=El60A{{n>6bPOn!HFFKD2*!n#3i3yZME}S>gWZ^ zIn8$fx-=k+I188iC&76kxkdYTd6gAf9j7;Q=qvc*;O83WCFAJRT73lIyK+z)!$@VQ zCI~1f*Y=T~IZYIm`Lb~@P5cj>Wq1nF?qa2VNuM26YGe6=x!Jj~o$?jDk0nOpFxY#>A?a5fzt?i?JNr=57&%PDNWSFa*j5$_XTSbE^Vyx&x1lf z=_pl;*@8{IcACe7N5m>h8$2p@tH%__v9bSrmca?dQctY*OCJK#wn7tNqLl};*l~b6LmU`&`ekfE2 zk^#caVgF=& zEYA@YLwM6%TLgUIBo*zRoAxPHVfpt=Fx$V*-T%)^{;y0h8`D1(1pmDKZ?Y5{6Vv~u zlyOjf)qZmb{_(!bbD)Z=(3e8X)Olj%5L6=HkYUz%c2qDC)Na<;E{=>szKh4pU1i4~ z$v~C(kRT9pVs75+?I-M{8NvT!B};zeWK~~%QB|pTw`$(rH)(#iy|u)jhKLm`J;S)_ z=86i!@mIrY*BGYLl|Pz3(4{~2o}OK2U0Rj6zsCf4Nuhgj3cJyhr90Y60eN+U_rlIo0GKuX=gKf&-4)FCeUpI3*)Hn1c!+ByMN4I*^x_7;`{0zJ*qa;w) z++%dE-8ey{bE_o8!!;x%638kO2 zK_EC{YV$Z{?xn?8nw+V{>6b+KAK1upqTWiE10MF-oO9eIGgjrDNIP!>kQ=`-O&8pb z+Z{GuXJ;-+*T&hb#7kXVDUygay2^p3Mr3}|Re8B6C7W;goUs0;=QbDAIE0?UYqA~V zz`}#|TC|p|2=A3#^diaoAqEOiS)KkaxO@^vH{_~+LGDBu0$sgI6k4>;jF7l*g53n- zGscQay7X;RhG({L($_XJ6;Uy7EPtR-n=G|dI+bEDzp<{Y;Y~!JEgmz>z%USx+-Kmv zyiz_d!Q=+XP4=`z%aW6axFkWBUvfZ%{q2#zKG?wao3a0CL3{n;2}orB2^ zjOpJ_&@t;xydm7A0ARK_k=-BQXrp?~i=5`!$+vZjfy^2Uv;*_L&~|nr*WRb3aXG<% zHS$JNV00HcOz=u8}H)!%!ATuPA8BJqyY~& zh%eMqIg_bjz8-zz^u>ANE0ZM*gCFQE9zSZdreoBwMoL3V^*!~UEG8TdkyLZ#d~GFG zt-l4xOQ|#}u!*eXI&$J7%)AS17}-^zW5VtZ2$BZ2# zSHZB^4Yng?!=Z#lyP3Q9i|a#aRZ>28=x-7)%}{_cu|$zpWO9mF;WOj)ue^w)MD^poUl%gzwn zR?Hu~@#tEwDYg+=nZ5dlf`kYEj|-9G_-I$H$=F-Q(b|l7B>?dEwgLd5{=M)`q}Cx32BEInr4O|;5Dh1z)OB|)CpNq|v6bx3-&fG< z0hb`mHubisOn5g1rk=T=rDP|s*~xVSWn0MOUkxP-(W3C-o)hC>!u9QuyGc7CNDYh+ zq$pn_opHf57Rm_pz8w#`l7{PZr{97(jYyoaP_qHKHM~0@;oLHjB%9Yp-M`%zJ81xO z{#tUXaGmnGUBHQ8^rzui9xq|2$I^s1;GAUvDP%YBp6c9yLnnm46^2CbbkE$&Nibp5cgXvPBqlW zMJYoEzNYgF$SoasCA4PV&SyCNl1gdmlux*{sI=bw(n9A+SYn(;3Y4^MvvT2_=zV1a z7c5)iayK`xW=V<8PqGj=n(f=hR#V1 z^?!nHNFVwIY83`qAinXS6Nk>$IdDxl{gcITEv1+AnS}=eirYrgs+4$6zZjM#q28CJlv$QDEX*+{4R*B90cfp0v!x+}u5Cj8rsFsWQh+i`+<6QC0tam1A z_R!DE;i~K^5PrQ{){YbV+Gn1cIDzOYu`a4ee$F%zTv(811QXeWJHe9bXC91k{rzidlRpYt0m>M)k-I1)u zb`2YnTzi|`aU9Yxp*-#FN%@r43HRD&@trH7mdXz+T}{ zBxjkfj>j>70!E~mPF&<6x=A z%wOe7m#w2IS`p0P{JU-S;BrOWezS|-Ov&PRcq(=_pX?fDn#+a_pW@$6rEXjmhdSH=vJ|r3AeAQLLaz?Alm@J# zWV!PYbH7W*is&s(A~KaEbDFi@K5iH!g1bf6UkN_l~S4>*Lu_X~~ z-$bU&VXFiOALMP4J68sXjRY`l(c@CEI*ik3Mu+V7h%UiV7OWR(XPUWx zfkHG2Tsr&t|NicBJ~B{iYvfj;G~$ZBzc@ag(55iqXMcU1P7r2X4LMm{&XInkl-o`p z2YEwX7A?DUgQmKuA4HbBr-gn1CHO6=R^-b9%&fx%%8_0=J5caiVeGPX!JI-NREV*S zB1yqtmlo5KSv9UO^i-KPu~m9rk=y&klZ?jsvS$gF zspmabOG;vhiA_j#_(#UCzUxn#OR;dY?eEBOP;kN$Q{rC$TC;i(IL^or~xAMHBiX&piX4NJ%z2B7yPlY0Pp!ry%D zUOWoQ6+mx(+XI9M&R5v?V3(GsH3A~Fd0P_j3{cNshRnF%4e=FMV}oOLTU2P@iBIV| z0R-;FP!dn4)jv|f>O0mRt7^p-WIBCFrX*cuwWW6%4ipzUe7A#I@DqU)MH*`zj!(| zH{a#iJG)%}=D%AseK|cE7afd~{m4#PGu=Q9L97Dx93CC=G`iDA!%4c;$J4{Jl&Qz+ zhR*lrQ^HJ!Aop;X{an4dQxuS3Z^QyjeWuO7ox$DsFIUIfE-@ZK+m;tN518v&d&A=0 zvzyPh%#j84I760^FgJtFypNc$sOm1fJGmh*x4DslX)T${U28`|An2Y52G35o!vMjU zYgR7C4Glxo@;7F4t`i|86{Hoc7Uz+qNtSy%%L(CvVCQB~ct(8E+q`O`-8=(ePF~ zAQf6jA%OfAw_GCyq6xn{=GXbju|M|I_HvOlD?qhEhCv1b?kic1iR9f-;YM9_d_r&{aK)=hP^1GL zhEspP*UR>MwgZ?F2Fh2lLVPU8q=$TiCPHcG6L|xtxCbU!L9LDN_(5R-698}M+;(E3 zF%1D=@9Jo!Nha{@3~RN3f92R{=c};Y8OOLTTD@aQ-Fa>^rnOH_=Oi81+)ZZK-&b~} z4PM=E@*d}nv&l-ZSHpuq~LRSebu@4GnkUkHGm0hpMwA-xC)OC}2W^2zlh{ z`AY}CHpf7?+-_R%E&fHLsBOavvYYnE*H;6E&5%36m>P+o6W= z1WCXHG5gTM;+=B^vvq%fINE)rjvl0C;IY{Fv$X>&JPnmspjrrRAwE?jCnIQ|{RBYc zKTpT7+m1)2sWPio1bGOmqwisWx(JRBR9z$ar(|({)Qa`MH5GH&Eb@4%*~bqkf&Tjz zj`w*DzP4w-&~3&HtkyUoj_CKgj3@pM0KjLSYJ}gJD9khz(~gcRg1fPN>S$etw-BUG zpXdM>vM4)Zjy>Wkf`A&7Cc@46(p9rZ$o_0@x#Edpv`VW0?`pVgaM`>qtU%;3HKi~* zZ*F@=uMrkOlIGJ9W0_Et8aDE;P7=4KVa5Ub7F6PV7`fjdJ^Uqszmd6d=ZU}b4Xhc3 z-y(+-S6C21*FdML;1WeKRj*mA*{@bs+oogKSgb+sias2&XEE@zAHKRdo2JFiXfi5NT6i?ERY`7vhl_ZY=qV z3&lBNLV((UkIeR`10IVHTmF|XaSlD~g+N;3%ohpa7emww*HAkCQuYVm0bL7+|Ewdi zKe=e$vAH3>JN)aFLX&U79HXPlL&$Pcz&wKoLeL!_$|IHhhczca5g+2n=xo-=?F*Hv z=Cm&@Y0Rdbid^6OR$QAzU-76b4H2ugVbi67zb*O*uu@c)C`p<`&gvs(aja#6h#pA& zNRPlXsZy*&=^Py}1F$srbP=|KRf}&Q$fIq>b;2$(|AvezLWoq`h8Ub74TYoqnu@#|=j%S1O{0X%C6Nu48~trdh$&Gw?O>D0HiQ z=#f$^yoE7J9KCCxbDA7A?~Zp%252qntgHOEk_8gs0%JhDkK>R1)@?(8S`N-2xC4*? zzd)Ixd^yewY0jDITqM<4?W;nEhs)(gGMpn@A}4N=IJ6p#1HW;;fQnDeE^v0!O^D_E zE;dOX<0*J|95YG;)r1wbu7E=!aP6MfO#wV6x%tD9Xx}kfLn1<}`4ghSRHQkXlhbR5 zBne0`FVQb=DT^(R@0KB~s_p9k;69q?Uj4;4(R8&0^gtq$#PFcgRAi`MC>F0xig{*= zkwSk)E}v8?&^hRMpu*19XW;Ih^y*JMY^q+OhE%p2D<~A-!K*$3KV?;7u^5&^2XbP2 z24kD*Uore0j};=BxFR3Nf8NCxM*q-O+Nu-2!yrxVOv;%$3jZ#l6Hrn!=|0)#V89G3 zp4?7`sjlku9pu4Y8fPX$A0XI-$?dJOziD*`^nn4znRKD+Ss1V#8)AB)eb5Yb_T^7@ zTWw`dsM^)+qQaxp* z7yBT!hD#wfecirzitBTF6``OwZ^8qqwGwkcGwM@~PI_?519C|vKiznxOwdF>Gg$=)a}d>+`7ha-zfOe@B~(1*+KAQ5 zIdrSgwPbQ1@C0+}P^_R=@@Jw_Q0wd9=<({nVbTXG8$9u>r!cc3cqg25)OOqXftif=!OvRAD@TCqA} z`Z}3S9OZP&^xPPoqGXQ_$REmp&xPb^7ZU{>TE5h=dhFT$G*CMTU{W300UaSUP;U&0 z&f|;t+A>mWg4b$^ytiF(Ur<-3T9 zrs=OlDy^}s-JLxnERl`S6VD`Pc&j{~**O<{`~soasf_{9E89KVS-#XDEMoZ|L9q|V z*-xq9?+yRBk4wjd9xwg?$hA=q@5lK;kE)B0Phq#(VRrJ<1vuLWpgC`Kn#XN>W2R&o+2h%Mo^=666vI zvjq$p-&ODSpT?H+t8os>p7wdH@=k=+X57(1m&^ePHSf@V4Jo?ZrU2|M{l7(Uxd$#h z`zrKq$~=>&_WPVF8WLf9Dal*14&(A5;{4odvMb7;C;P&Zy>@NkPG*V{^ld_d7yUc`%2>`%@EoPvK zrMT**Q^IlB1|vhY9+K`o<8C4-#APYs3Cv0=F!wxL%kegLIob1TMF!|}0O3v}Q*%dV zV%|R5b8X_0FQ69HsWwQ!m6BfA-YT|HERg^WQ;F-E4e8g8%fsc)+6q|#926xE@SURg zwB7rmh!_s41KT0 zye85bCA;m&fJs?gW~`kEiGco`MXGR4Q>be?TxZ~0i+HM7-SSnL$$^ zaX4Jb2FHFB1%v)Qni4EVTgJ@qS~qcMQRT3}>QD>%DVM+~5L#REyH z+=1Ye?0NLe2hlT*@!!pWe~FiWR1PBp-G4_ZS^krT^nYEivHl}{{-06GBz27#VB+6oW_Ky6dMQ6D zM}4of25hr`5Po;Mx;*WKP3t|M?W0Fse_TB`@J@An*fLl=f5wr}&^i9u*mD_9G0{db z%z-i5k|xI~ZshFZe771g80!9J=iyl=O@Xbuc%sKWGD~wFmQ02FAx&+Vpu&zLgzUG- z_MhA7z)ZQZ!qV=rcGz2E(C9h3vJ9QpPOwAi>_+97%`T!rz;5kix)}V?<${_X_R_Sq z^7ERz0eA*1Gs$8|8KC5e_JE~4YJ|$MRmcZwKcvGjJxD#vAflj7hMb2X?>Uv+o3xEI?(hfA z^oBtcqn*E*gNbiQ7_Qi5!jdt1LHy}O?dhDQp*L(yH}LSyb)AD^^_n&Y;~&_ocx7|# z^!7hLzgT9$gbnJw02;M5pq1NLZefXan|Y9_h36jwuLW2?+5;T-cR8(r4++78fEY^W zGsv~|&5b9iUjy;qLl9djksY=)x27?F8vtb*+?LyoLyG3DIqlTHxJO$Q<1obIb8}@u zBbwirOx#?pvoRCNl+R`J99{{%eg!c;? zkv7-wsixJos=V&yi-D)Ntqs1g^W2?bj0C z(dO?jM%|rxBBx;-4|NwMjwm^jwt5lVn6KgS&}5>xWd*gvCp z)Dq>6xH*2G<`N8$M8E;){wU6I6CRb$qNg~K25{jnwiBx_pk-gFNBjcfv&`YvCq|A3 z)H4^fnqoUG$v^1n8+t9ZtDk*7mHdAgd&eeGpf=0$=1tqSZQHhO+qP}nwr$(CZSzjP z)e|)xQ5`Y;8_t)rV?TQ>+I3llEKI4sV*yZ?hm>M=wJ#x3nhD}gkvM&A)lMHakQgjFo6q8}8Yi&Yde#e_%5|zb(X5Kk4 zxW4)r=E}MVA2J1QMFR)0`09D_cfWJi@d9PiVprP>A)Wd+>$EwoIPrZvTiLu!{YZ0z zXEZ%|L*h7JVX;oMqn3tLYe_kXMW?X-+PybbNj{=+QY21AtR+n#m`Gg}wn0xxw%8&I zv7QQHr)5b0w`gp?e_*Pt@baUF8>l93|Qxn7gP`0ai=LjJ( z6+Sq0P__yCabk?Bp~T>;8;bJqOQX)Hcosz9a*5|t@(wWJNI5r_du zE}?4N87h(*3nU%ONEC!pGZY{rm0=dmk$UD9BrDiaPF zM`~H8|KJl(&qS>-q_K4>j!8$-6Ew-|)0C2HtP_;y3obZHm%e>)7D*ZtD#^@Db)SSb z|Fv)qD1?Kf*mVyUpf);&_$BIEvj?frDoVl}1l^@i1NTPhqbO7(&FJwxh9gf^B8i_g zZnF@gqXO!?NGnzE8NUE8@f0a{L^7uk$WiMFy!nS=dd{Zk`I;&eLbvg#DdwbYe861S zt2Vc$Q}pSEWj&n09HicE>&7YJOzYZk@cKuH4;t5i?}=3U=#!8*nlCuXUC=xlBtdU78O14!js&c;yH+qc>K|oCY`J6anw0KnDjS)PydJ^V1|)LU zmfU5wKxDVa;kM50AEs%HxCs7*bn(SQU3yc@1o4Vm4ZuO{hX8|)O||eA_i02ri;UI) zTy4j)KN&bYMG#c#$?5kdWDAlu_=`` ca?oB3Mwx2R^=}7&MapyrRi9(V(fK4gj>VICwI}ltss~|s{VLg9VZhpg=v#g&nz0WfZQy; zIlM_^j;5keM2uThBeoWX;=Ic^k(C0rx-2t$aVV_X^pZ>g2u1SYT#1PP+=23F&@>^g zXw9PtA#z7sggpHzMT*fOn2bL{gwd&QGSrL}DQ;>V@1nT2)YE=rI1h=Uu(~nv+8Ulx8@EZhr4eFo?ttq6fhn5=s`{&jUS4AX-7H)-Ae}WmY@VRH(BRm({x`T>64NBX}|r{3k&94H%o3 z+Z&Y`kH(1nQ6%>2+7D7zMijaS7CrlcgPSl-`gwtfNLgaNQ0=eK8GXRFlwzNJl@kAn z{5NQn?905gM}E!W z;}y5S?!`fp`Y{08J{?fLS@1EtqW0(0!a4SC^Jnf!{E#9|yV%o@_Z&B(FP6pL*06Uad^G+bH1bTMRJF^hrtH&epTeYH%yW|{zK(@6rD;w*{s-lK{m7gMAP4m4%bK4x{gL$a8A>c`uT3*yNku1ddo=?BF>36A0@|&g=qD zv?Gh|ZaZO$y{m<|5e|>uYt1Dw={{OI`{|7lS z+y9-MxLZ>^5or`TrPlji_bjnsB7??3_i7FRNPrL$$jl0x3Kx!X0S<++D&hUrN3v#l zeaf#cAnoR&N=v8b*i({(w#6V`)BoSXYoci;W^9r2X0EPv*{_`V-+I^D*ppz9&ZZ{m z61~78f^gDiVlE2<^qs|Jv`*K04%g6M+J9!u!7=(f!)B>y z&rioydz?V5--arS-|7dnh^4eA+37NOhi*IN=bCOBL2)Dex!EcJK56Hj?x%bF<>vq{ z9f7#IOF481rH&KKlUSuP7`sDk+gXKb|5-7=h`RjuiupFn3dcsrDtb9atsydU(*r#f zu0;nZj{&dL7TeYaYj?B9=l#UW@$j>HYwHby*M|G;Z%>S^E${jk`wov6=wv^HBIy*`qVb0`t{KGq(W@P%S zK=ZXU=Z8ZMlQlWdo+hE1Ta~4alcssg(pi$8m3ng*c68j`;TZ6_4A@Lo1?j27KT z_B+^Pr_385r_eh9YdfH)-5_^e8j9~Cvup+eHmqi$plo&`A$N8XFKwRWsFqqW z$3&pjk3orb!IJBYXC>q0)S{!5-}J`M7A`r0&|T8XiYS`Wvw@(T*Siwu!ff>p zdYAH(9gw)MKb>?7gGz^K7cQs%#kVjih?tb>y93o|3`JGGL;xdl93`gj%*=U`+B?=U2*UC-W3%w_rjKCjd~hjz7cUCiD^+P>b=c zFR+LU+4hy7?;uvy+9f-W##I2G2kC%F&i_P^tQgcOK9C&WJ55pNj(6+oILxa;#t>DR4O2LlOT zx+!iCsRC}I}8lhL3+&WH+TOM%;^+!nAvK-u^lF?=Bfb~RFb9~iz}16)DxoFuWAhD!&$ z73oiRiJ#sUN(nZ&jkPetaA~;#_1#?qJD5Z4N(7_kk*dE?OnL`+wj}L1Xqtl9R-?RI z>2Xa$sFfn=DbiH}Ys8RR?EHBc@T(aUQyJV*_n-_-YwQ`9$8Ey6qvPENMcmSxBL_BO zAQ?F~(g)m**ZA0dyDSS0^6@0T?4n2+jq2}FaKJlY{W!1>yfaT?(a}Wk4dPolj_^o+ zG_h>u#q%Y25jX%YGB(eSUQkGd`h5O-riv(GYk}4obYjvtCUQ|z-8Qc)ZX2d5aX?fe zqsmAN=7%zsCW}pzEZ0)zh7A1E_=_AkX47)b`${k5Y8r7Sv!zbq*5trzBNQH#nx>Z= zHN{Ip#KCJbvq{P3iPK)8U5ssz4`7_;ZF%zmFLh=?%Z;(cJ)La<36^9L3OKI9we{k9 zh!R>XK5XaL`9y7|Xeq*go-H$+sLdZHjt{9hEa^Ruwj@Nvpd!!Dg?)=ejNd?Fm<)t+ z8k!&DzgFqVeFO|53gUwok6KS=6c{O9vt7>9c0aC^XtXbUdz3Im9Lp5Y;ZSAWV z?!RQpMn8jNI+JEXe%q_K%nP}T-DwTs@VwICyrs{}#k`kS~9qBt76Qe&y`x~Rd$g0 z(G&53llW3FIz+YCbVQa$_Uf#nm9=_m>nw8<<}%NmRa-Yu~84ap|>O_s2|} z5Jzqc+a#JZ-2AvQjJvN4`b6^J54Y=x5?eoOwt$Rf{P{7#H)ds z*JAdqWy3Zx0F=&>PYax6GDl@cCC@ofVDpzS$=J`6Yz+$tU}Ho17v?0`X-!HBGiS5- z4*VMG!mmkz62I7EBt*ojkeY{LEHU;EA+?_zHV2=sam^1iGxn-nW z+4w;@a3x73u|`HD#mgj_WzO^2U$Q@DtjDvF#zt6Jc*Cw(Q(l@v)eTpf!%F=f1-b2U zZo8t)e5rJe_9W{*uM_#Cn*c{i=ypsfl7%&r#iTQ)?h!`*)m(rj{iI%BFn5N@<);fG zY~>`8_DOR9ilT4bMFkImFns~eNC5}tr?Key`8bcSFDDrMjK4@WeMPK?qWni@w8s(n zqVeD_b-b+4*1}N1Esf4`+nHT9*RyrSF_0IZwPRG<1aKrRwN3q13l`r(F=1~^Werb= zn8$y`m+V7;7YE9oZ~thSkttIF$!5@QDQC*w0lSI3Mix2GwB2cU>gH5kHJ}65ADc;_iAcfBs+2 z7UvM!r=5}-Y)jG=RzW%&kVZ4eP%lJ5e_XRb9BMaEWhOd}QJh(2))g2IW(lp%^#Hs}+UhQV*Tdwtp?|6F=?J)%`WQio8Cu9$|wq^Q` z*H7$HNE11DE&qrEZJjCvZ2N|gL~mZvWn(OMVd=rXMrl|R4xNRgCiFyssg*tQE096 zlc@E0Wd_nlcUG`pXu8odKhd?>v3yys`va3Dh$p>c&ESXD3=YY`%E+{PPKfou0VC4Uq`~KT! z&&b3^_um97_W#^N{wEFoZ?y>ff40K^zqLrW#;?zQ6n@#g$3P~+JaVzBxpM*ryDhwg zN`VMi6LbcehNJsCgXNC(a#{RW;Tf1^$59@sp;stwXBZqPy1uw z?sVY4)$!F#Ptr`%Ojpg*>!I&g`>dA67{fe#iXeGltHYPT>1j~d*3{eD85Y*w-HYkz z-h;!JL(Zqu{_ShiOi$PrS)K;w&SGmd)^r!k#&wza3}aPZ7?UTBVfWXloT>)LHEn25 z4=0i7PR~G`LYT(g?D5^%{4d3R*)X(4NUmnApxXh$fQ5^aS-mYuY1Vefw?YnryAm`H`EpKJi|$bHR5qukqmtK$eLZ{3*n0Xh8`!q#HN; z{>jafuIYIE>L+GZ-}J)kLNT`0%vNRoNPQwZAo{iG7ga4^1w(Q^l3u0C-CnfHM%=tX zUb);>rGl%4p0NU1()`>FO+?YUoyo?b{xnmU>(bhj@9gq6wt1yBG$MbA_Q>;(>&Qlt zmvdbfOv3hcBi3F)q$4+hi26Cg<&~Hl1DIJ|EqeH!D%(o7Q$eG#0KfZ*Ut6rY6W4{| zstKxdXcXND(GYA=CKcW0E)E{VK?5UqIVbg6qdgw!Vmw)2mlvvdP*)<% zHq`L`&Rl#yCDpV)N3YOG!seCw3cRs>yU@_#1<|}1m4T@kUt)|&kKN~23K{^)7l4R8 zH|VIxZ*-lrJvCjpkn=CtS6@}bBij&6$eNUc5l5R5^(5~eF(~hEbSsd}hWZQk%_NMV zsC_*4$jCON#jrqarPMCVCxW}d!KvAIIL^#k@}0peZWt)7G2Sa_<4&~rT=Iw_bl(s%a&mobC%tO3nw!6&zi zL{%5QTZ5G1s0khvIb*%0J4I^rv51kZP&bdQ26$QT-8Jb_v7iiHYrvi zPg^LP~0fm;|&(CSN?XvdK{V`o=vl(rwp2vUzb%ftt1n4I@Pv@Gk zhn!N+xP|f1h6xJg`$q(7l^8F&RpXD8Hw>T={`$k^hL)1Lh?*PB3z**h7xGS&5RMxG zC-G1UnEW4F@e7>$AIod<0_wC&EYSdz)f#{-avYlr&eOO`iWl5 zm3XSCMFt&sP(8{uOaeffO(ZM(pr0XnG?AG~;klG;tV>F-DXe}=D?<9J3obdcJ7vXm zA}^*r)t)#H{bkB+L^S&2e*gg_k%#WHy;4&v?hKXO2)CyoPTHGv>B6b*sq(9l?n z*b0mr=o06H5yVe^8zU?@ZV}&Lo8ly*mv>yYAb^8UF0YUuY&U{C5#d`&Cga*ZIA~9R zmL$(*_m83@I~y_b^Y|l?h@%LodHYtky?7>zZ{kwn1l^8*Z+Jc#vC@diLdEq%Mpozo zUA_*CBpwm4ufsX0GliZbaMl2ITQ^4B3fv^zRfE;VhdF-y-dygFJb;?k4mrMA1S%Js zW*ZpxaVj_cF4uR6YovpC8(Z0 zWHk1!e}tss&3$nIh$O20LX4Edz?>XTnspE8?Yw~Q*gu}bvHp6_nV<(k89#ZN0;PLy z-gMt9fqin3YDF4FvCx!>m_~bAW(Yo#YqDgB89VS(K9P0ml}J}(V!Q$BAn)UWNFg#lR49!YgUH@ zz2a1;;#1Eqo5{#n0U^2^$`GBd)c76>ELSmcvfFZ99J9i*2YWqQwLW_eP-?|?a7w-!w93u+&RqfuCK-dC!Bl%{y5d%{LpfsesBs{JKyjE#IjPhUw{*%s*6{5Pdz$; zE(6U@?m8kd7qD!@o|IIqP{5r~_^Ymm&0n0Mc+L&qLClb%F*EPTEMVr{kHxon_J<811}_XEjd-bIlHB zK~AbuxYC$V6tBZq(a8O!;fIDbH%G5|!< zZXOayvv`1wG}N#5^{|4S+mf9{+*c~CEPXC}9TBU{zF2(a=b5@gweUCiN)NZ%qrioMy(XEk58-oPgM|- zQ_vd@OiK{*lCeH?E)-?S_(8-~;kfV(PfHqJwklzDxB|vMtZxGu)L0RXV;|)8U+foR zr&;}p$^3|Q>JdjST+1wC#3WN}G}?z$$^B!iGJn@gFc4;hW`z=YMx)WLx}R9ol|&_8 zqJmvSE^%Qkt*Qkeg1QkPci7YV0>U_ID`qca-EHaL=XE=C+IYwtGCY()=3FXmV~Zu* ze-wbwEk1;g@#=p0>3=j4-hw@IU_pb(mse234Z>T9?NHqB9@OAn1Sm=L%qB^Uoj{#} zq1uiuMAtVa5oT#Itb~9Y3G^m@Z>CR1Za4;xG^o_m^xB~wO|qt2w4#eVQ$xUy^5j%y z^P{Bz8lIW!jw;rdI8F$P)J}ZuU$tvOOFUy~DJgq>)3lws%O_Ev?_p_(Fn#GPQS=>S zO{WSZsRfp;dJtH;XokV;pk9h z;EnZ6*(7tbEj5pubW2YO@?nj$ZxpEa#6BrvK369oDoN~Eur9l;g7GJ!pwU!7icsmU z_Rk_5{+QEQzkvqWecYzps1a1a(?3{0E$YuoDJdR()(mF00Jr@1o5y{klUjKN|863Cnub6xm-jI~CMSV3OSGROmc96TE ziqc-K^apXwd42{-=xrlOw-(>ifeOCm^zPgD8|O!uh)iOjNq01~3oZXL&q&t0c6UWD z{A)_CDk8F=i}+OYNN|k%ry2VClwR8v!x*)7TQ_-gW?@J*|BE{(b~|9?M-wQ$Qch!% z$RXF(aD_&IQ_lhn-)W9OF}(f?Hw5o{z7HL>un7U>?i)@zwZJ4+axe_`1_#y)**yJO z0t%Oys?@+x#vg~J89?=QeV00il@(b(rJ5bbN7c>wJu^`J4sz?|K|<V4887=q#FTLMRO}p<0{^W55?vU^<; z7}n8osL{7ev#g~%My_cAu|vI?B4t0{wEcNDb~ibTw%A0Q!`e(|lB%KWEC=ZHLZ)Aa zFk0xPArhn1s*ts>v8Xz}xY3qp@MxEJmwTOiBeM!8!Z?y?>oda)zEw9^pD~~KF589{ zcSmP8n{Vr;*0(VwtE%siF6+&15U*%!%dV9Tt~IU~--id~bk#3G_`DNrkm_r9FX*>? z3;kc^n;WQUu(5<&95mK%`4)=Z^&&Gu2Zq+TBbJ!Uhb6m!fS8C;y)B_;LA?kvE}8n= zhAEv^?RUMK*QaGCrZ_tgVdf8u2D#I>2MqOr)&$C;FGm5%!C84L%a5xkw$Tzet2bA% zZl;6Fcj(|IzkB=U4fR79#l$3g?>0bwsUh)?JksU(oSLUU1#gaW3|kDig+t&O(|G^> zqs-5+w9k&T`WtG6sjQ>)ZS4@6i3*Ygy`hMcni5iUCcxx)A}_%qdZHtFhG<(PRjE>2 zrJ6y#nI)}CLoFT*WZC1a2+-=VCGnvVT!6v&4vAH(H&7<9m!T3H>x@kj-O%Kv)-dP9 zpia-w1*bcZbLo~}|QXHH%0P)$LABr~EG}zQm zLMJ)k5!5##wzU7v`4@)vRD2n6K(P5s|8r?ny8@6}C7>WF2i&yxWM4R#5Ak6WZcdEU znR4>^We9Bwsm%|NsO|t@0%$wTt8BWJl~y>T~Ke( zH|I8waCr!pi!!i38hs7o9zJ4d#*K2|Xn*9dC`Q=bgybUvtch}hjAS9)x}?C0RnwnS zVl!OWW!mFbGWfvQ`30BElq2wD9a(@i1WM~cxhlZZ z@W+b!GYWIAr=iWz(1_gZw&VP()hQbcRSWh8;Sb#w7~jJ3<2}i%nfo%eQUTq7IRp~` z8^qmab~gQ(4eoLfIUVMBMI`ZtN@>HwY@+UGAcWzZ$!Z1(J&Mo1jxEWWVR=0J3%G@s zh!fBS*A_$|VN5e*J8>3ZfEcGf`PNfadOwJsRna-08nA#UQ&J?a|^nKc)<-;%mnUR6*?cp7Rxh3e%8RasH=H& zl-0T#%TX^@>rl`vZGkyMbT9(&(;tku$uLDs=KXTB=c@Dl^S|Jiq7H$I?<5=llOIiB zn(lz!_pun#vF7r<9r~6BbJ<4cvM?rRJIH;bfIj$H<-1M(^uoWa*lQs}8xtQ5)eiwL z*|og#(sTPi$4G-4G}1%e5a$Yk#$fHcMiIuW{wBx6w?I-v%5kHla4Ur6$N2`(9*gGa zOZ+)VeQ9J9>GhR+P{m!E94(q^+Ltz+B{G-Urt8BhDW_OvmcHkJ8|{OI<6+RZKkqH_ zGa|w%U*Blt(9P>_|8K=rOSF}xk%%sc9Y$f4+Qxk10`^B+$6hOwNZJyJ@NZUDL$Bo< z8W|749r{~6d9vVDKfN?s5eO_NSz@LCNQ)OGmn7P6*(EDnYcIA3XQ9Pn&$ez2 zehGBnrfpotNHUI{i|}6g+XzoED3)1@~M9aoKn}5alcx|Qo?oVOG1QxbcM`Q zN`9X;^eiuA2D$3_E@S>=U!Nq;#Jb;9va%Of7W}B>VSGne6a>?>pGqc@rj&etjTpX^ zs?$~=GjWrAhdXZ2$CX@}v1f7FbLd~@GT1xM+1f##I)1=Ue$9_eACfGq&Vy);TPVw7 zZ_64uIud5E4kcGFjBNB^E9mjlH{KMYOl9}>B?<;s3QjRm>3O2vbzsCe@2a)G6}E0) zLZTGTSgKS2?PMd;i?K6JcM&8BPABQjW{~X;Oi>FFIK0y};793sAWB^b=MN{{qz=QS9a5Kvxf7>ut`Ou1|;nIIJzu9=*^|or+3W$AuCR z<9Eii0y2`x$^Wq@^i#vSn5wH?_0~>Ca-?s|$VXFWN}&pyTjpp;leC6ws%mU9u`9LA zvFm~q0X~5=ASl=oMBLt#Nvg@q$1{5|Rh5+_Q8vVC!CwudAiF(Sv?Ofet! z+fh!D8grS2?Zii-SlWcK*mO?SJ%Z1_C^}+lm$+LE&80F%=l0e>5Nw!YS>f4)FI1S# zBzT(w5YQ)3RtHE`4C4EwH1zannZwx`>4SXqEu>0G66req^wQPI*6?|=XmtVY*LWU< zCdBx(`6eqC=6t)No5ej-K6mVY8vq)G@1t%%4*LuwVO&L8)C+AQutjo(c{$!E`{iF} zCoN;oB^&iom19q>mh(aLCYa`we!wPo{~Irm2=rRgO6UE{O#S z9`hr(e_ck$4XM+Oajqs_L&TL}yzv1(uJ+HdK)?MT78&wQ5Vsy*NjNi^#Me+;ovys6 z5pIS~7k|&IC&eTQ)+|#ka4}IV!8?y=T={0vF@RWM96-iQlqg0m2x1kt7!+CEOTYRu4HU(TEtBw3oK5Gu6$_KnOkj41%@695yuB1UCC27pK11FVCu>59)Wm<`?|UY_|G$dyly2m_)w$c zM-VSKfh991+M1}?wk5A3qjb=OAs06TbPSsnpM7|JR|1BaE*+M)Ha1&!kZyck?4iQF zHD{{%{E?@L>7_*tH9ph%Sef^}6QF-VePBNjv_C83ea`0`mYI{*Nan><_o7d_!BJ{@ zq9!Y**q2~cr2JWT^P4qHcKRD;EQ3 zH18cL=53?C+VY34>$Z~DcF4X;;gd`x7LpbYR@{%#eVPC+kmyp4FJt8+$c`$GQd z-nvR+OIg(mWOaCTk;iRYPkW)ruNS5=QFZPvFkvdz85Zx}`b17B7|E^}!WhtOnqshk zBJ~~|GInmsT1wPx#L^2wn~4q=u35}CSZ%We1b%&Q(sj~e17|H(N3L5sNjtVQyi&;w zB6?)Mc8C*B-e6VGC3#GRk#1$~@?N}NFxY$&;iEMg_{b|(*sd8E(EDq)`jV?jb)`t} z#{3eVTkOvu2at26aJ!y4KubNpW^uHXYip%~GlcY&w)ZoZ+ndpoJuh5slB)1*WTRJg zVn+OKZUttZ+!-p>+$=oU5;lknexAZL=q)Zb+s^K~W2~5@L&HT-n4+APt{l3?g`=pq z#;ne+yAVP$%X4knic_xi^iCc`H-D}xgDJs{#UY&bTjl7=qpQn1FoI&$HmsgkD=j%7~H_tn2*KS`(Catq_4PFwYy!NYuR6hw64EC`O6nq*R#`~?Qhf0#m`UCUi^%mM6?aI<%pKDZpbC< z;tzAB#$*DjK|~Ald{o{pOi~LB;*@=-B*!?P`axiBoh&FHxFu6m!s$H&${;TF$NReG zZOIIC>n)86cCwA{tE`qTwBHTZ0z(%LskntkR{{4kRhiK73x{QZ~~+U^7BzNUXmh*_h$U2PX+j+0Af|CNZmMqKYnQ%Z1`wCev;8@I-J8V=ODo7 z1t~jZVdCZ{HM=tX3l0&FztN{UV_K_PR9u6s2ZZL}$P=FG4=0nM8W+B))wG%)&gf@4fCLS6H@oKn) z&rrgTOV6;I%m`3V5!Ua3&vA(&^`kNK{+s_um39e4Xtx75HGgWP1vz<_cr|Vy)s#og zKW0IB>Zh~luJmP56fBjX#1zl38#5scUF>*4Eo(Q(g~K0YjoKsXxNiE-C*rp7#v)~1 z{{;gDiF)ap0BjxXw;dP~2>{M4GVYZ_8gfBY!D7xQm){d2L?^m)(>QoO1%mKUTpJ!K zEK#1ZV-O-0raZt&=o-$w!y6_mq&7q`U&PniYnTvq7Hm{}**ti(>N}WWbT4eZnlYov zP|b`b7hj;E=m@SJYgdT>@U19I^hl`r@`B#(rrh^u3+#+9S{t@J0hPnhf8Cyca_ghg z(Xo9y%rlhF8}N%bRgwYqQ<-h=o+)_D%xHhN(>^n z061jifLK@+&JT1!u}0R;81TiQ!IlzTN-GysClXOFuzx#)qdA7qcJXoiBmnhkWBU!V4v<6l=R;i+R# zwanzpc+6h*A>RgibWvI=v3voV0^UKj!R2Do3q>K)nVyJT+x@3Oie6wCX?SC>TPPT4C00fzPmD zbnx!$q8lk%F)!lnoFpRLUlH_K)$rA7V{J_mI1iI!dAI8f=0egxy!0Vfxkq}Q?cVN#FF7C8m8LPIs>INOpa`oH~CgZUl@V6Pclivj>sp9#-Aol zlSQ13-Fp0-66(BJm`mtAZKY#L%j+U@dp*}<-RNW5SCk(im$`yA$XknK_{@}OqlAHL z7120LYO=BkyJgNuh8$qyvax1DyiOtRdDr=7eE!Jox!xGF{@&j%C1{Wt4%~IhtIbwH zhG~G8%uGSL<%_3&m1P5=59cFx<01DEP+%QyXjZWp`LaA?R`;ptD7FpfcV?4}`6NX- zIpsOH?YvW+t@T>Xs?BmqT#I`=6bdadv;)YGz1gs{_3(bV^-*zmz~ zMT?;O;^gprF{K&qoBj^ep$>tn%1B=$=?JnZI4Ny9gI`hDCVMHr+5BpKoi?*`B$27h znzUDU{-6m#6QYKa$}!BO(}_2M#e=26@olbMO2=e4=)m7&NaRUS=#Y_H44w zfXBL{H2Sby_by&S=qP{|7=AN)d$>|PUEpO`50lC~cGy`-C2Cjom>(N!P{!Vw8Z!n` zd1FGZauP2o%R!sWn!2L{H0M#;nu8A(1CtyWFuw=1kj7jXczEY-r>P)=pyrHcNMjGL zl?)fu_Cy2up!w$%4b`F9jcFC)QQiqOri~3|{$P5#M0%~J-I)j9D;G5ie~}53`6*Zm z@wB$W-|ex?DHZK;ziXW5f5ysyt4=`21j$zf)(bW}DL9Z+ zv!d#3Fy2CJkK%pzvL-+LDh-adp_$0g3D_Y3GUd@)Xm#yAeyR%1a`5-JQ=}juY@?3e zbq*S@+97YIQPa6lXQs6<&hs=J1aeR)>nvRosrj?Lk)ifboNfu|n5@9`*h}Y?TPwI| z8Jn4$y31Kb+cD2{6uI#=^g1?yQ0Q%=6T^@7ieCv&T}{bCG%o~M)G_A?6!aVEIYhH2RGbr2s( z_r8s`TQ-@X$x#s=&r#xMu)%Puuq6=*7A!PPOhn>$54Ovr|{^vN9G1k-{`I0F=aPjd#rR$KT{GwKm_v))J z0_gQCHv{MT2b9}!@6Z4IZU5IF`oE@EZ2$Xj`+t%N*ctz?$OOY0;)%axf|T0Wz<&df zxJcV5+e*gN+Qy+UU?OHn2pVYXpof44aAZJGn_?@yt|lrgE48>#2?HwMIQ7DI{FZO(0>6?Hqv^ zF=5XT-Z-G-T$OLzrYbI=Kv2?}XDcK^3gmgm<*1A}=XWBqg=kF-yyy{|?u|%5q(!0z zfi-K5ZvRy8%9^N~bmm5hyqY;*m|XaIfqnjm157!fl9#i!4v0`<6X+=Ph;0$BgH6c)7WCX zeu=kC>#S%}s=`b|W`qXT$7zz++Pq#FtvO7u)rz}xm2N6rku<))nM_Xh0qXtymWySJ zQ(O`NU@-a5JLGv}Nh-Unm|6^ULLn-}`a-s$ADxkf5g(SeH!cU1^(}V z#=NBfw4h1M&A%k(#8$r5jD^09Xq%k!P56aiMP;57czW-S{{La@9lJAayR_>h72CFL+qP}n zwr$%s&N!*4Qn76tRk7b(caQFV#(Vb|-GAZuvahv{xy`L34xa>4g$V~PA~g1y7QyD& z(}|Hi(Fn1&JYoYq)^rMdM8Ydn1U)mzK_WV`*y5gjLg8Av*(!;>mkwgsELw&bf;h#9 z(MUJM0h9n@HjDS^WG>05bJ*`u6&x`dQ69LL4;$wX@`12>u7G0I7r|`Vd;INVHFm_) zY)9a-9u+I8eRJ?l+(rkQc|UwwW=!KWMPTlE;@VVc_2G|LOoi&dNvhq$uhIVK^4Qk0 zVotWz9EPBdYE)cYUN-ScDya$QL-b-vH5_%&cOsf6#J!Tfm1`lO0yvOg#B{R0%G%Co zqwTthFLa~rxw=K(XIwgXpP8n>eD3VaC_*V+JNrz@>Y+>+jM+SSN3$5}31fdV8EN)G~}r zBuHQ<%aOt}DMNDVR@=og?ZxSKVyX#$f{~84;B`>4>?(^cyJ7G&CcI+!>{oyioqe<( zh1AJAN6E1QM*`3E_QyM)bWR0d0KijXhBBY7v8Ajx&40AYr1>Yt&O_P*Nwb;KbxH>h zk=sW%69fY%Sf;HriqGT_pGi(~6#`^4f`C(jX7&RpxCo69_*i0v7->5|G|7A0ueNb! zx<7w~Hkkm(`=+p&jM-&bGPurUrAWRaVX{-9%rGXglrO@68V!J0wCQ~qcBihM;5lRN zW)r93Ezx*0*hCndY4--ZVu9Ng)Xdq z`$ht(sAkglub{(08WA<#v+=3CMX^`p-qE`0+%}=by@QOFfr-Qb^wcR@O|pHfc^_>R zauYkg1&~RXOTq?S;ih@}Wi_^6PuS0srgi7DdSYNF4H??98;gae6BT?rk?X3@vb^p936dAY6O zO#aj^YBdG6Qh^JWlpPaqP@^TL7-;rn)*taIS8y>LUPJEEYfM8qha#H*$Oz5mkmlMHx^mV;7Kj3s%-o*S)^?3tzYIDCYL|?f zX$d4vsa9t(m4o=j@m7?oK}((?<#j(=Y7pP4Da5S1(nn(JXtJbmW5jp|9ZUsjO&Sn+ zq-)~u37*8Le9WOjR^_IUEInyf`I(`K5QZRqlR@@a5*cH|4!V#R`D%}MB2T%w{!WB6 zc>g({q)2}2H~TQaO|c54o!Mv}#%y^F-|Gw&gaEpz^)SYszxShWN{p8UPI>r-)6Nq;Q= zy-JBiBXgnG=B=o+1V-eTa&**;!Wb^RH*V0qJ(CkEHx=j4@Let)#Mw0lCTaY?_Ez6b56uSl(y0}hXIU5y1#Kk2F|B&)E zh%XOCi~PBKJKYE(N2Os(K;*IdwhBT7w+-8lsABLbf{o!a<;l89{ictFfVIEBCKkiS zk@NkVXS$Ik!t|}j&^hb48A-%on$`cam^$*QPjUeKAf37{Iy~d@dwP#b()*s?OW{YK zwZ>mxolArgiDifbTbxsbN*Vr1HF0adS}o({@FzNf6s zf&uJHUJ4~hh4!wuH~MIQqcB4B?pqk#pP8QmEo*Gsri?Iup3~C8UCS*c=euqQb5iYy z8D8fQ=u==rq39j(D5&7nmx^OSMTPS_*%S*d0Ek6(mPZkEPW;F=I@K4um?xNByDygV zN?7$8a?Js~1Jm^CObd>|I2?IaU{1`W{k<7llt^*ziSWlIX^qnC{^>*e)=pNqhRh}! zpB@k+9xQ&Y`x8nk+)L9LtflCl7eNF|6Dipg`M;euQ`>oYJ#Dw%IsHbuK#v5QX)b_2iH90l=9^eC_*kC zHY2cezc#BLtYKY(Mt3nlc0B5cSX33X@w`%rSa{8&L&{i7m71*To`ldyLY0kfxXSRf zTt)AOWyvzgF!he}x1}^@7grP~Tn=}=8XKgL(DpL{FNgP4>+kj36x&KEQuiuUEVwo()z|1O`i z4Nak2HS)brOu*xsvs$E1;#MZ;j$#elXKv$zQ?W zKF3S|ML+7VgYvq1X)kEtvP|6dmQVSxM#|uiX#K9esumgd&>pIZ1L1gARY1~kPfm}) z8|JvpN6mSgujio~52eHN@Jc$~a0%K6Bww&?t+>BjDmyWVqf_}=w%c=UW67ypRLodF zlb*1K{m631+aiZrJS@!@F#IxqGRV&00Q~!s_^;LPU%zD7nA!d_r^Us>`ENNbE|z~5 z$Nx2__1)hXkII4QSI~fY1l)$Q{=9w_p9(<;dITb!F60%+`}2BGd@q{_$;Kg2G`(l_1Hf37MI2#?rwK;>3JY3 z>`+y1PUdf@@Dm1oGdpCR9Dt{_jBDeJ+aKo-}>gFkddrG^p zr&-}s{+PW|z3E+9IP7jXCjsy(#^a0+kur5%D;(*0$WOSP{m6Qv@k-=KcH)o{WF;m1 z+YM8jH-w6dX^^gPe^Z@cZ0#5H@m`$N6k*fS&o=-VVb28B*;ZMlovZ!spEr~eCQtC z2;*=VD38X}9?;J;M%SApCU3r<#gZ1k=9>Dbi=w&^e%L;<+7%Or5aMj;G#nV}0Z(kqiy zIy^XUWd)doF!~DiExP6sp zLs@(#!#E8eij2bWJm3WEJ)~wBx_T;>ERj!T>`?I)EpE!PkbzIYL^Q9QmNnWF?Duqw zk6}o|)Ziky%Ix+^L&!@N3R0A?d<`R$zz18k=-%>V`-~qfneo!{AeG?)>Pr(+2IR&{ z@6Egnbmu_So3IGR9I7u%l&c!fJs>b~=7t0CzV1fD!c(}lCyAqJr0D3Q$0M_;ljDMq3cGGzY1RA+!g3p;wf>#j$ z$+g`?=9uqc%cwSK(>%!KXu-FCq;Nr+xtw#e?6(Cg!rFynW7CSM%MZ z-3!b*0i&axCs6-6{u$8;mdr)(^>`g_tUqkh3nV;fTM;|rQbG0buB0@*+WK>}UtLS& zC7?x?@lRp%3)<_sC!OkFy9mgQw)Q-39McXX{kUm!_y)UT!nkel`3HOcHc&l$;p{o` zoB&+Q5}ibw%(N_UoG)Z6^Ihha7xEb*?LxWhNAR8&Yl9=%#Bn;!QaO}X+NRSCOS_{y1RvR~yR$y_1Fm$%oM&1AFLc2@lu*6J1w*r$)Zl+Y=FH5mQx(;E zv2&^MKaH*J8646*c9-&uuqX100N37bxt*Uy&ycXU3glU(l_Oyy9oW(ehr(c z6_@0_utPrGQ{Uyo2&y;SuK&Zs^`Cc4Cieg5;bQ$C9xm4Z)5Ep(p8?}{6c=UJjZ5>Z z7(DL4nj%Ch`bM`#-$Ecr#Y|8^pMN_s*2-usR?=CIl@cFdxdAGc* z?27YL&V9a}+Fb67Y>0s|(VV)vg1`-Nj#!>xKHOTW-s1fS+kQs*CnIX;!-;ta$sad9 z1-mb-M(exPur;d{`gRDGVRURDOnHdK_8w8-dL?}pCE{BwwSZeLj$JU!i5sglIjg&1 z+s)UVg(e>r?9_^F^Uqlt%ozho);)n^;i4GQwBZPw~>q1(_xB3NPBA-PpjHK8qR|Wn%8)IE;&$gdMC0@u=7h+K1xrBKs0*@z;3IAz zuHBWp^bSU;sv|^#X-PJV=pC=BxORNibo9T^86J&QVEux){sQUX0W@&SOI7c+j!A)g zT6@h_ZH6v#3n|74inAiH!8^{YP=;j{Z}pxPeA_ z;NCiq75AXd5Sa;IbHU*h9fM7l;E$L0}S$fS5l82=-6(yF;pQ ziLK5Ipux`(DF{Ua3FPPR#QrkmfKe!haIC6*iRuxiivE$A!k5s076JaeIMnl2({#Xk zv`Q^WJw`G-6{H;Vd5{|bS<5*y@dFoUsZ|Xf%G3UlbeSM<*ZF2JQGCnKCMs+P2oHtBtNE{ z`yF!s?5NThBH_Z6bU(evIyfjeIA>pHya{5A3uvSw@pB9ki()g2XKoRX0*VO>VUF%f zh=qluw;&T0y3=geZkS9XO?YVD^GMUd$sBPbZ3DiV>(JhWVl4pVC1finWfz&4l{20N z4K^TDDaJly4wY;pYI4(+Z1CvT7M3h-ODT=+>hYJQss1X@)&#u7l~N#zZAPLR_Z5^W z98hXPKE@j>({t+V?^A}+2hD%DbfcdzkPs=#aVo^v7OjNc;9$vj(NLN_f13CQ5pKNb zxORf-HR|wTPsW$y1jIq8Bc5e?*PJ3<-Sh|w(sQh((7o$A6j^w%LGB$uw5j%gcF4Ex z*zE@uO~vcPK!mR%JacVV7(x?pt6$avCjt8e|7H9kO&IKjtjp|s#K?32wpqdP{92r)FNpc!2~NrIVp#FCh(s zze3e%T%8wg7nQ7oCL&dSSU?-`T8LY?!#=ZC2|1SVD^lErJ>(lYC_ZSw#8cWAZwFmj zfkg~uy7Zn6y+lU%)w2?Tn(TwS1TENdGnxxTLs9>RrvF_qB?$-jz99-nhQSRk_YEH4 zi!0&=``A8hd(JPxlNTB`cE*K@t2CQMh(qp975fn9LN$)lS7s5?9e7@ZLw^8!v=?sX zZ{*}18fm-BVMVut{&TVWDz z-y-Riek1PS+#L2YIG6h%Dg5}*V-vNuzU%Y(J|evh=z}Q|0!Y&dUAdXjE>)C{+TmPF z8a_L^(@i;IxxC53qTlxWU^zeAn)hxb6tf^{N)=k)I82m%_ImzpD%*u@3X#P(9|-jn z;v=7ZQxZjC{)ajU$8$nJQ34FNuZQJtD43iwBJ)_z#}3*7WJBC@J2n4+Rty5GIxpbD zcg3MgDH6j!jszfY&022^Nd0JCk3yQc+UqMMLreIL(|0Ip$`LH1*uork**|3EDA_&J zprv)$|BW3OtogD~uj@^O9~4vDnN^}OztGmXm9+`2Oq8kU|5TNn%1;f3Q}R;~*PD-y zj-I`p`-TqWbm#n3JFmA+zC}!btn1a1zWe@+yE8pvd|c`n3q(B-|AnWsa-@9UEf1Hy z!Xo{!6ZOhFZ5L-9OtA&}tHFyq8MxLQ!FY^nwPYUi#JjtzOYt}lXPS!|5HzHJ zxpIuM z3fImShBhE90}bGleaZ-Zk05tYMr2LyvejcYarB1na%EW$#4;LF4$-t+WLIfLyoG3g zs$hvVc(fEMQt(AWvf4XwL#d}2r=xchUA3IY8YubIfo!$VIjE9^Zpy?q>jmD@VkTaIZ ziqx7n%mk)gf)v)mbm(|xJ0_@uzp83&_skbB)fXQRgC z4t<2Hl6G%w#9c5icYuAjh3x3%rK|)=&$ivew#-yZL7fW|*14sH9Y-L| zwfH*?w~OCcs?cuycNS$A`6?@95r>$pO)dWiu7_9gm@>tdl%&Zj3xA*>X8F4nIVG70e8*ylwjl)PP%Av&3d*h~e_V$Sj z0k1~v$Cxj_c4!`P-sSw9G4R*EWs<(wWDx7ftg1rcM%+hc{~S^%AXpzWSHfQ}>FG!3 z9K}?e*<=fW96DGpV}4}-;Twa&C7_=oK4*vT0h3Q{w(7!Hy%$)ya;^kud&o%15jZ9qs>gfAl zFMV5DQVw`xh~l^e0mkx{;>P5?421Afj02Fu$go_YxP>W&pbl72)##wcdu(Uc=vrW}Z zi($*Fe{ffhNhA4vvG9GbFsBR=N%(QdeFB(=sAji-06B%_9L%>nqtui};?+-M%#qSG z*X$>-JU~k8@Or6A=9o!>#AxZoi{YRsvhNoCT)X;-F-6 z0(e=obQ0LZM~%@UXdU2c7Y4i4nz>6afV)2+e|vOyL+vCa6L#&!w&sEqOY$aXK;x$v zrx_l*JdoTrPbD47Gz1N~#mC?>i!578aql)oODiJrBZ4GN-R;1GhhaL|icfwQoJg~> zu$0Mcfu{7W)Kb0mB(FT@m}wK~t;pht3XD6Yv7VbMaTqLh%3$Rn)S2wDsB0E7d!{hd z84OA5GXDisHC&>S#Nbc267u_8MX9|lBiD~B2T6&91miv8R@dCp*rwIzGsW`GGLT{e zNMZL9QbjjdD{dkqwkhI#Klub{API0C6NhYfHsoYs>1TNp3G5uAY!nmSFO>rIKb)s4 z{R5*6Zc7yR`NW*a*cevl3L<_lShF!qpzUzce^Y|14&{lVv1ZtJ@L8ANKxdHd@!(6& z`bl1Brw~gX3(dAn)fMBS5kU_H$=8D?ffXeLK_Da|HE-c@2}y0C*%WYF-cf|WYfQ7< zqRAj>uQ17Fi6Utk1hD3xXk?8)ljg`lsO7d%i5IE*5wwW}NZq8+S7%P^(s)a}7$8Q< z*^P4~B8O=wJ);PbYOg*O$$2wRh(B3J_1%?%2&o#ng&MKA%4E$J$`K6?nM+eWelV&J zUvurL4W%8q0{n>Xu8Ud0~ z>W>+c{)W=^DUvEWTbEn(#)O&b;LByuCltS{-yc`^rxfnWlYxqFC?{gO+;i%Dryx;& z@T9Osjp~|u5B<`nn9*muGK?(9vNV)F-B&VxtyQyH?9ul}nyeit9_`Q*nDW5*xlNl6 z7e-u8^(R<$K;E2i(4hJZ^1gNstdJ8}meuK;wAy}STqsRxbbh5!?tDt!!;x{~7kr%k zV0f>WO_r(4Bu?+WJG_?-=OIVQmJ*r17|(Kq-37?`CGMT-?`A-+`?i=XK`_jY5u;O% zp%T%WPNXi_V(kpsjHoP4R>7Ug;u)Vh-b__PBhY)W49!dKx&~!i7VJ6cQAIWrKAffW zZ*%%2fmw!FLcX#+hHyTm%~syG^(e{nN>^7&_4+IFPnlvu^aj;K8mOQP)5SJgm6Ry+ zz3N3>zxui<+_2VH?1s*;eoif0o~ZaAiy-yUqaTwMo4*@P`Un6QqiX$yH6~gm%5u6g z%;v%=6uczZq`Y5R|S3~GkMGaSnAT~zq}Op%?wD78;zH)^e#9gRZ@?OT(mgvzY__^$F;mie<%65Y_xCXwo=PT8>m+6Ef4oswo#EpU>ucMS9f6X4WK z8=Ifr0$3y(Wkg!K(oB-TyO=R8*vpvOqJr5HSV~OYk4VCuzv*po#3Md6xW*XLTV?Ya z&4|y9ecVk=jHK93p{wphdFXIYHf!YFjoIHzx>_dVr0Hb4k?JyW^KCVzit;_q#ki&3 zbqh5+RJ72OwtMtbpUj#Zh?Dp6LTCnaRaFa9$cJlU$89I|Eo|1#9wuEJW?2xi3>0wi zKS zo|hfrVM|yLDa7L0#uRWZ=<=x});!0Y(K1zQh#I1wJCMQ9CYK9lM-~T|C=)L!%Vna4 zEkv*5<%w_^bH-6dS)o*uYLjL(2vLhZj5$t_*ME--j}nS*Gh${wIuhgOI(klkQe6zf z<%Da>pW@oNvf7VR%?-x#0i83e`ed@jpgs*|;<%91^zQ@n3@X53bJa1XE3_MMlM0l`ma@UNCmE0HSMKCG8dhQ`z{141T#j za%Qs?yV}@*+GJcTr_}QVt6O>eQf@c)4+3 z2OZCywGXO7x*-kCMB9L)0pZMz%ntF_ydr3_`Ng4jp7H!lp=@{re+9%t%GYfu-$Kgz z?Dokm-ZoDKZ^6@Npl~p+Q>$L8^!H3g>|L9|gV&+!Q~zJD_Xz$3Q*>Th41R_Z_eZX; zhNYpc9rnIodH+7T{8wo(GZPEffBmHVA3C7SENzADhtG+Ug#rR?u%qpyteqU5R+fQ(mKI;b(?snf%tzS_1%vwv0Ts-fg@eat zzs6g@jsA`5tA$j_BZq>Q;cz_{z0#FJ!L@4kuF*|ge(zdA-|B~pV+r1*<(HdxLizKo zd{EVqakJm<`r%Uejg67fQaMJjyNWMZ1g9KQwN*8IcHgWic|0&gzeNsaqJLN zN_gN`=3a%9^C}Rgf2oki>D7O5tPu5U$E0xc_j0jAaZL0q@GCtVdz1DSg>+JmH$m}U zC$3M9Pu>o-?zPEO)Al!Nxgx7?WQD0gtbTW<9v_FFpIbRkC*2oct2J8>{qq}B1P*(n zV^<#<-8>X;5d^b++cYdT2Zm*S7)?5%ZwZ-+`LAP2oA=XL5W~CVk6!Y#~{RSx? zdQN1)nHardv7$x>&yc*E#(%E9&gx$sqlMaGaf#A9FhC-6i077G=hh!CzjJL%RL^gOs6SR}^L^g(iu6 z7L|&(l5!S;$id!6VFeP*ej1Di+I<8U1jWY{<^`b+ob)qUPi?eRD@Yxp z?EfSPb(@V84cN$Tw`ZqmQwUrpyh}T z8D?0ObjaL`TM6-5aDG;rpGrgUBb@P})k??481cmQQF9jTD)r zY%%3bkMIlnG)c151!tIYxi*NY2ld*QRhcxgR;mO8>)I<3nS{A_eK`a}LeiU%Y3*dB z2*<)dcmnS>H1Vec3ApWWbZ)-tJ--i$Q?VYX$!IY!`y9!fRc@8xGqU*ASXIm9E2djbaV!A4U5j?o9*>FXuJLrO4Y=m#O)ThK zt}E&Lo_^2t1QKMKIzscfk7cvr_& zJP=UKZs1=xsJl*mD7r-~U@gYpe~&4Z-gG5L#x}8CDhu>w>y@e9*CLwPAo+&CyZ2+3 zcUdtcrERK-Z62HCL`jcN1f6*(z{dvXn-f}y#w6HBfF90>e?o`}wgHl+8;yC>N0Mxh zY=7mJ)6z2IhK@+Cir2-?p9I59?=<#xWNh^->#9ia;JcLhwFpKTgLFZP-04I&2W)T)fqlt`66qLlNx09SP(aLG#cBCI!lmA2v`~5!N%cUlL?30)RfCdEBq> zGm98&W8_FN)7SLv{!7vRM*qxr|{TGUjiu;0Y)hd9~Eb zt5g4WreQNa+?zgP!^B?Zege>3RgMLDQ;0fPv%NJ6Ej7`HRGc(IPbFdH6vZ-3kvWJ_ z740-MPo;e=rN&UeM2|;{95kbxGLKo7_YJL5Y$~}@zi3dc@9oPk*+xlhg`ae;`Vz$W z)6LsdP$e_$OY@D6hBHixV}80gx*N)si*Y$(*pl>le;~O?+G!6{QW^Trj~CkeTd81< z_(LH;zb~`ue~q=%N$G+)+PKF`p~44}7K7H5O=hP3*EW|5Qupk5UWTaA~*>qF$DrGG|};E#!Zf7Tk6=QoAPNhdO= z??hPPU!5|sZr$(OY%HJ{jIh(HJf!}oF%B7iK~=Y2 z=}ihs(-tOu5Po>-@CV#CNV;y~PdASI<)_wH88UKJ85pC@MnzvWzYN_S>PE2zBlp_I`Gf`kc207nxD7O@x;cTIA5al{W0OdQB*LNC^p z4v;$_PIyzS)tjU!;{g@DSrvoH&XL1u*E?B$2@U;l<&&fTS1im;_TWEaVKPwcu0@LW zFFF61CX@a#P3DlMRNKcEltnfe*y}<_nj!&vBcH{Tv86QR)A*Vj7U&jzA81p_{+jVn z(%%0~+q1eZFCtOFUh1=HCy)%m$MrEi!PPi5Uuwa!@zaqe!>Z0kN2aaA06# zyUC0!>ZPJ;;VGsW3)H%CXVvl1-hVM0igOLo!eT^A61MLf(92-VN|#Ybq)jNIox~p& zJR1Caz50(tWN}NyQiM|XkU{{^P3cl+QZF2R{Lb(f0rZ()HDe+?H)DtIpIjK{Vb1#d zAjX&>g8CG-ZGIte?RDylwq447J419+tka88h87>$bNwcAMm@w?1=4j$`)E_ZYqDMJ z8PLx50$4MX1bt!x-}xP-XfN~EH*@VZIMI*zXVs(bxGv#Ti33|ji1N%vq}DPxMAUR0 znqkX58S}I?1-?h+%W~eFnR@2!JWSBV7oE$bV-JaY?_dr9z=%)gVeh_GP&gKaL%xG| z)O}HbE;yzP<2Gf}-xv3S79zV=?JeS+4RQDM*{+4I$aFcE)|<;%mYSn+!maZj`E$9C z;Y`T-^!nFEe)tg4j_jh#{jjMaXDgU;Vu;Y;IOayj9t)41DS-^&;J@@!05~aih;0Q* zMQe%;0~QMFU8N|Z`wRF|@igq;N9_OZ>EdMi?-85xe^4|0tGnxey$*i++LLid;g&l4 zixr~jbM$I;X;i*_?XjmtWY#$A-@bNhb5iAFYIw3gH*pY$+IoE0bMO!$3rlKRS(3ZJ zo`R1#SFF`np#f)i?<2>L9OGwK2@V{-0X2ZH?Vh#Ddo$@0fX9rdVX2NuZt;5lN2Agi zSjFY(kUPLU_v-O-Xb)&zO!N@F|qIMK6UdHEGYB5k0rZzPza?( zGsV1)B}TmX1A~Y`rmSD5;e0rSeqG{@yZsaW*y6yuNWz5;)<1Xhrk?2<3(oYdL07FzCHfVwcTewdVR=-S z8s$4sjSt&|*kGZFC8F~twL72QAfd`Y?SMXta6iMXSA4_lX?0>t3SGGt{*aAHBT{5j ztoFg0po3FXME0IN?ocYNG(dg&+8x13n4 z2FTmol?)aY?Ch%|nA_@UJR>1u7GnzbRK*u!5XfzvTOBGKcqSgn;|VHwj6f8$R^Bnl znP!&&O{a$&69*^;de7}SS+is=cDrgA-~c{so}4B!X!07)1JtzHCs66eH@OcYg@EYt zBr;!a@f1dCI^&XUe|9=X6M#iIgCuVHq&U}onH1?^Kkwhv4e=va@H#}HM-6P|4BCvwj&VKy^fQv%LfVlcsF-B%*s1Fl6<7Tu#+ z)Rk?wL&Sq1s(3%_N$T@zu1_6K0Z64drZD0()2G%Ojs&s^d8-({l<{mcLn=&3qBmj5^+@9)hr{+&LZ@o9{x;cu z(t%qRc+dOM$g#J^mFLi(_&hn!M&D9b>I}!S-r>b3Pr^W=uR+g?1zG0dL>DJd_}W+2 zeY3R{7WtY7{_SYdk@`YZsTHbV5gu}&(eMl~A|i=E8!@R8w|vykxO#?_2pVJ3Q!V0w z7|Z<15QV+EZ@V^x{%!r>ZP+tlgx!2q1@Q?$zK`$BGB<5TtQoRNo#+bXHL?(Nw-omK zBLn6`XtkPuJefiJ@6Zf52+a+P(0E4{8z|X(cqG^w_Vf@TDmfVt85&R_0@+|Y(mCOQ z3uiHD1(sa_aW_~zc%-U&w0OA=X0%UuNci@YU}WPleo3!~p6ULHk1W(tO!dH&gD$sh zHV5b+lS=1EWTlCr+xq~0kG+z|T*)-#q3u}c+8%Nmmn$cY^bmUDS?y5+oN`?){94<= zqMDZCi72%UB%ez!I!cN&pBkO0W=F8I-!|n%GjcXpLYeH}Qp2n^5(w32ml5YQmr_}I z|3WylAT)qNwWY?<@sV6pPXY`eA(`g ziC%nEE*6MOg!QNGg$d=q^=szZF9>_MP!$%QPfB-1-Gv{EkY6K-M>XU*0yrhpzpkxUS<`4JF%dh0mzu>(gy=5A7i?rRD?Pj-i%v#pu^y~b}Xf4tdBSpPy z(dS!YiJJqtBL(F&I|ogv$lah#w)KDCy5NHg&yh)`lc<5xY0T|XbDQ0YmZ)%_z!F|K zvq!p(X?U3kuV^#jn3WaUw@t}Z*d|(Q)`H?-Vi(#;wJM@`=$k|Dy}eH_WV=~wOT9#> zo0cU7YI!Nh!KA~po^E_M5ysh8y!wxzFN*7nY>_M^Q2*i)-LW`hrFMA=8?-KBYb~HN?q=|)tgYU z(+(Q0nTUWQqqiBFmuMfH&2JiWzMEZsO>Bzn49z+sieW57+~AiPeDQ|4wzoP+ZZq$= z(x$xg>k^A>>A);0tT!dHw-aV!B%VBo&Nlf~-4Jo=NUTn`S;vXjQ|~~~s#^_|^g|;6 z=@^;hroZB`hA(fzlDmBISvDv9A3nw=1SpI4}%MbO$vg>5sl=W z4P}?m?8i;Ck#%?F+zG*^S3;ej5^z@Elm+i)x~QLWAcCEc2U*n*qeCwZ;tXG4iSHYEdE7Xneuu_lzUQ?8)3 zIOZJA+OqOlpjL$a;IN0rPaum%89Na*M#`|uaeB824eq%T6hY2xD(PP_?OD3C9e$Zj z{E?#y-l>~Q0u$Hhs)z7mkRwitFl~IG(g0Dm@F z{=%yUJEMLTmY3b?9p7Dl_`-QDr3eUmSIX9LX*qmePL4c-3eSQ)SvB&x?4{@8x6p$q znxI>3KA^et_b2WBT2faj<`s5!vi_vlC=<9hivw(w>Y>VjmTONT1y^@yl{-}f%U&=e zragE1WwaG?C8x1;M7#|e3a8X!a5=5xw)$b<-5aopP)X7_#YUJ!)-Jk3;)@^#jIauD zU7%QI1%Y1E;RUi&K=@wdeKou7%3$l^EBN4AS0cG_q5Q?6d4P=8ohb5LHuI8vWy0k^ zln}bDKx-^%R6r(l^j&~KQ4*AYKyeVIA!^Bkl|$|D;a<*4U|8a2Q&u?;;)Wl3cY-uDzZ@^v4kCAi)J>eJE_bo`P> z1Y^1$;n;5kD2FDh(kH%{Q=^q5Ht3_3dR2f*`d@FA}H=*d>TUnbHM8j{Wi#GZZxKoR1j0 z%YF*KgKag{{^8-0U7pP_5C)c~S&XD<9%9?Z_`8XV6g7JR zL~OlpOr}~+dyKBJ9I94`$YDRzj?+6JK>UFaQq!lAeO+Iit$Z#jPbmO7pQ2^vVBnb6 zZ`_AAp+(28*@QcnwxtpBzB=`|R(BvaMT?M4@MpHSyh(r1$z;FjtqQF?DY;@O8m(3n zLraBgpG{!=bU!~C#bw(Y<&UZ@kGK}pMZ}Fm83E%SNAi?|_IF)?kgiQP5DXUriA(aW zEu^^lwe_1SQ3J&lI{F}n{P`;y&( zH-J0bUrsf4>V88`WwfiyJs@)Z{L?Q|d2 z@SGQZWAqQKTP+Wb_#ugNbkPbpu*whb2E%peO)_6Rqxyv_ZUX^jpqXO|!}f+fD%0V_ zn%jEG)Y618LFxMiGuQrsxNgIuPnTY;#c8(n+(myC-<5Tbi)aUh z!bF)S*3)1gGaobO606OIgZHa~arMHG2~Mu9*?Gm?(tCS4KtPL$=K{kbxf2~eBim3h z^%LkL6m9M?eX~SmPd64H$vC#zlQ(zRHVuk8p5eB#Ehe3)jE?ozT~#h~^`-K{1ZoBZ zJJoDC?Uq#XccJrS9Cc*kG^%I^yVp873cf9+=T8-MOx1#A8@&74!NAnqUKDC5aqrGQ z1O1c>r!|#byNGxeR3@}t{_JUH_EbQ-FhakL=&o>GVXe4S+q4-&e1jy&AaSz|OUA_a z(M&n#)ytbyUXky?5QsGoJWSTz7vNv*i(h8Opk&dy;ne-rOTmr7hl(&S?hNNirzsXV zTxXGzR#u|uL2$i#W>CI0d=qdsU^j_8W9ODJO9>T}QqV#0#@pntDa46>sFFG=$SJd` zlBQtDkrj#l(7s3_+AsLkLVQFtM$K`bPR z=~2;10;!neM*6@0oIpXF0b@d|vjGR%=)>vMORfE;7pwdW9j28efK4DuJL3zkBxw(Q zUx(kNTBsdANu#PrD4&5Frh(QnZw)iq?|7Zjf9ox2T+qRRAZQHiZPRF+GbkMQ= zzuhz6eEZ)s*R|(#ovou)tM00L995K)aI$Vqe}1RrB~NCgkS=-tY3MdSnoKDaCZj0@ zCrO?zf!YYq-l<>H{@7Xf0d`?z@B3YR`@4h9+i&wn*AOb4rZ|u(BGNoaHKsRHctUpW z1dakE;K972cX*cbZDR7;d)dt{nUq7Nwpn*DbDSL^{$+=^h#_9(Ur6Rq`L!5ejOGyj zC9CW?(x&(o97-I^=4><_vZ!KEq8_7!8HeUYjrL7uKO3-ku1*5O7&2G+R~6#yvm7?- z1b$%%YG9a*rE;~)a3&Epqh6rT{GxX=!qUmujo+6BK45KMALPYN(2>@dPM6^pOzWnZ$B3IVridR>xnKww&%CFQU@N2%4|y2k8NdFpjr zJ5^DSU&mKUbe51<8pV7qU}#gIc*{{YgCzOTMV!YFEAlx>E@F{EH{9+M-%qIfe;oFy zbgVJX2*s5*ENw-7lit&71tSWYogoWeR&sQ(I;8Fl%Rqa2Yhu5?JQ)1#J&z8iG{zhr zU9KysuHGQF33tb2={C>t8Q4FZYpF3tBEbT~IH@ipmaY|604IzUQK)%k7OlTVh+M0r zBvU^Pn4N()%gTxeM$ggY zK3waCcw=)m|It68{(HJW=Q59f!F3GOy(*nsx}-*IOEz2zW8|7k3gEUtYIDWZt0#K} zw@&MzNESKEQLKjZ?ssg7FUnYnPg`O=i|X7p&U&FSw^~?kW|(2)x^>DRcd%14hbJ|X zS12j+rVM_k-eKe~1${^RDBKP)$tP=fvTM+KrY#{~3* zEfGey6th!Gv3s*#t)W?g+jGd;HTkF)gQm-xzqKN(HCM#H^Bm;6Dzziug-&UuhQdNu zI=&7aZZQd&5`6g1VfN$BP9(h|Ma=Ws$(Xzm`GOLCH z4!FUN&7mXx%oCd&zFDu+#zD>aYPlRVAMBY_&_FP%RlF+UdH5)BELyd0$(u3AjjyF$lL8=?Z5&n{J%??zXIitXklbv`Bw*>fu8=4Zu$Rf8NfrP|4z(E zIbjbYPGOGH`0C4*XHy!oTxL5^LMjwkbEZ&-i#vun=?iNrha(XuH0-~<+%4Z~BgAF1 z4}!F(WuO0A)_bJp`|79|I3V}&db)YqD|L8x_2N2s7KpV~!&{^LL3CTQ>)wz3jYdX6 zl*RgoUiq7!lIx8@T6MZ9m-SZl2e0SukVc!Y^$*=_YgIZ`e8{t?U+-t^&jzXv(05_5 z1_{8XIJq@=S-iLxw!AtucyBiHm5_S7%YZ|FcfanguQC@$PpvX?f2+V2qF6dMs<<*ALSG0p zV<%-4I7u`sB$6Cv!puF%R>6(d88|8mUTDe~wD3kZdRgy4~= z&BoU=T7=Z}3ZyE|UfR#5SBjgXbnKO$3n?3le0U-`IHQ@fO5ZPJ4G7CoU3FWQxjFjwVZP~38QTs0Vp~g zM{9|(RPh{ELliw0*vu%q4_nFbMMmBw*u^Iza0CNb&$a=N9G0oPCmCG-N=|4W|7Mo< zHa|k~X3RFxW1Q)*St!x2S7jhhNOQ?CLDm&#$KE|MB5ITS)3Lu7JiZA(cbu3SOt@`A zu_7id&<_{5v_XoHrrQwd!UzXys>oFjtPDTfm~RL+AY!K|={&$lqbxAgh4e=9K{$RI zT62B%{0bc6x6XQl*N_Iz3j9*NCnbI}8E%Pmt!4P*gvH8-xEU8?Zwz<&QHNZ5aTV!? zLRGglq;aU(WZ?q}*7Gj4U|T(iP;D^>>9iVUqz-9xie62oD3}9-^{{b4fX+1-V!1*$ z@?bz^(x=DLzB1wuEkTqo{D$FWbffYiGkS7YuLPdIxjl9qT4R{MXzrw>LEeYJ=$##3 z@UMDw0EXvj*g!oe2JfdewU>+A9@bbpm8mqwAY!;nvT)`@cTt9G>mSNRF;0NLk|)U{ zNRQ!O3|*u0xB_uyk;m}l43(@4S12;3Kr1?=D&-m%J5#1k9Pb9hn?!N+gX`B7-D!x* zOEI>_Vd{w{%Rg&CDCD&1UKYKQtoDbSUOd5g_m4Gdn?q%;;qP&L86_00rl-AR0KtZNspjj>%yqBP3|E8Q~zu!8UQH-Jk|1vc5sbzN5Y!2}N|#es=B_ zdV`y(0%fx6C3!*P1*&Z&gY07vc+QE0aD~jXPg8n}*PXX2lI@ zTzQ8f&3}eqFpWA2`&wgnlq3;la_(@i%7-6Rl*xVr=dqBc>}@5=&%zx+LX^8~L;g`4 zVmsd+;*SSH%03Sq%>;X28+_&gE!9H>n;j7;hKSd+suR?cvTcVrh~vGk)JX$}ZfSJt z<-AiCRLKW_H$LzkipTgpGJw~oOoo&VW3y{S`XK4(?XmzGUb|@>Gf;MFqRJjwPsLbV z)yH36RTHsZ?5mYb-dlQm756>WFGg0TdTk2-B@RRfA%E5%f)sL=%x2$JeQ7&{Wd|&CAz`m(eK%Qx<(P3{TdD8i)d)Z^mR$$r2_s~coYwGPn&rC)i*(bru<}i zsV+h`tRbbO-7VcDGMHycm;F`77VOMtXm1JbC3-V-nmD~}%IQ&3LxX>h6s~P#Ortys zH^ftK)N?p^MN2QP@hYEM_WpzJo=jtf%LLu%wKrW|Nk5(G0bWARvcFPl1Md0mzFia} z)yd{0nECVSs;|3F(6|(x7Zr9^nRm0w4vMDO+y}{dh#f?nM(tpKKL&%DzD;*il3si?@Lc@x0n+V?H`IoxTp7xpDm<`+>L*a0P7b{~GS&lscSuL;n_mIs%oZK0eATT-`( z4>FH4$9REVXHzdc_apIre&D^H^q2bm$G)k2R-ZI|#g<%E?uYt9V5XjwFPqnSfy)h* z%^Y7r{D8t=O2(O?-+)s?27Q#aD6ZnJRjyG+8NXDRn}8>o5&3OpvBabYhR zuMy|DxnAXuv&%b=unix#kGP2+`o~e5Ms?6QIr*<6%37}dXw#u_@r#PPxn*}Qn@4bZqV<;2R+Wr;yu`&f^sXH7hn&VvQt0 zq^g{TF^L;{ht|uikk8s4v>bo?MKK-Jd`(qf`+^&OA^G05{4H7=u2`iSx+C-W6TU1~x7BRlaw@i*kA%bNa zznI{z%GOrpB_H)BG#K3MT=a~&>itT7zpQ$LPNFMus@>7>Q{b6?1M%c$G~yXwf==}l z_(Uy@=-(95KV{EfiNwhKugeJx^bG%gPaW{^zdER1t?~Du`n|{ROy4}Ym$tUyz*HpD^;Z+U^!ncrEWTU>uaNz|9vMrHEYh|#4!*1w)5R44(=0yGM4J*8 zIW(D8s^rm`dU4p`!X;tl8q6|m;k6_;A@5~5W@jXJiSJ89?FUjsq^DRdJv>hZn}R2^ zw>?6e;#~sP4)7t2nvGJe_kTms?c?S{|CFbbYRK?q;Hi;rhNIe+2He@tljaNzB{$u=H zo_sM7!e;uB*#ZW3-i%p`2D3n&)nMxtt$}XtI7G{W&FRp3r;_O{S^CJS?kOz^uz5(7 zv=mQmI9Ii}6ULAPIbB*4NjpWF_F0xHIiObY-?40c(7uH0^M<~B4$)v1sEx4!$H1UTOsE=pZe8FTa!|^PHrY~Xw z$Ee|vu8RwTO*SwP@&}J@7|MIO+dADbGl7ttT;AILE)gAgu5m4w9appQ9A>ZKp~5wk1y2ZQ-vcQV*? zS_J&ayn2hZM^qZ}2}E6uG(zw*4Gz5az>~&0^DNcr(VCcbQ;Uj!v?!2=r#))Q&1U`f`r zA-x(JWVTOo%y@n5uqT1=03&;Y5eEZiQpjINdi{iIL0}PMYK-HXaZIlPECXJd0n%rw zE8{AUht$}>3azA@e_TF7CqoyZ>T`p7?%*%vt`RsK@k0(Nn$@ests6=G(>0*6*}kz> z!%2y1$fnrK)sB)K9YM?}UAVhX%@KUC)yAt)8;)>7?}TC&?KzdlQDrK1PxL#p1Bq9B zcZwn_OlQqtIAKC;cd};-%dI6s99^)b@p$A6hAf0TZ+}Mut+u<>~%rZg20+@iB}P}D?UlCa{zu&QxER`yM97EK8|bc ziD-OYFj|563=%}m+~g#%t0QyJrHBa$Tp=Umd!^${CrV27)^}FBL=z2YH@?^rRIxij zl39m0EGIZ}Tf;Im#rl~_(-U`C+qVaK zzl_pCR2OB`ktzaS*eytSF}e3+Ubsm3gE?JB$+iJqfwM~9-Lo!XmcB~={iLLY;09mVpy)}h?S`&#SkBtA3JhBR0$6Q{Yz(*Oc;mVL8kxKHPk}* zNY$&z07JS4#5tYdhQ*JNgNiBg?;Pj9(&#%~2umM=O>B}+%{5Ed)$>=Gvaap0plTgW zj@%7==<=%4y_W?xaRQ{QO9QCdA6c@dmh0fmYXO&9$5V60Fo9;s)&S1X!Su?gJVC)2 zcyP+DYH@0YvxtPhXkmk>fxL23deGQc7qwy=11#Vm#fBCrBCIJyf@I%5?S&o|ns(ok^r#vnWi|cWc2zKs)xn02pY+mp~{l0d53o zSI!J`iUz%AZZNZ)1uXr=e~rO0DF4GnihuxCsfP+IHz6{U*KAe9n07-?>d9{Rk1wPa zqFI~ITGB@`+Lyp{YMZB*_eIXphcq;nZ|Nn;D$x?nn6ZJACCy6M090JaK^f+wO27#V zhADqh>^Dr7``86rw&wl8QUq;lm9a@T(}AtKRkhin zR81AHgH-O-d58EX)XI>#lbV!z5oy?0%+6fRy6@}A%`v_wNqt>9Ic&GnGF){=T&-eSe<7I1rf^mQrLmfrd}-n!yKyU=ySe$;*LBeY2fY? zu;~y<>8}tP-jE^WD08@7P0~D=+5Fg|qx#9{A^+vzQfQW`GQT&CQ$~BD@rf0cNx7f$Ls{D$5E$uf=S}Y*4(2+_ad)2^gr@ZntfG zHywc;_>|`S_Vk!|UA{l^PN%S20e9&wR!s1DCzP(Ib?{ZU+J>syNRR*w2pHs9MrfKX ziBG>wgZfi6HL|dv1oS+^zC%8CPbw&=RkAU0D%rQVz;>WRWxSqr@4NJ=_3uE5YR@Sw zyRgmAv_HO3!gKBnnRYEhOYSa-!oPeWrSBeDKQ|wjA2nt7@bPGs#G`#b=%D0|i1&Sw zxdEMJ8$5NB|Db#RYMFmnLmdCQU(7(y_($UW-_{T#>wjwv;j|(?cw}pR{LE4eq@)dc z>@UX=4sW0kYaq7W3(N);noF>jlnPJ6eO>Ov2ZCVQC`Mf`UOS}5i}vw)cQLxNl~;s^ z{!H#Mvr~Q4HMa{%U8cgqzq{%OpsrN>iYlzHY)$n2aTAnh2DgAGaJpQWa|qeVvv8Sg zm3Bh}Z)w4w(?{2*=8c{|JlWXoK&$o4Fhj~3rRzkBiB$wyzQ(FO#^l1XUGiyHU3l{x zFLu*ion5VhJ~_SFKN-6?b946yv2gieErHKhqD>+&!Zxbb2FL4G;tVUfH;fH2`yg1k zJBtop$Mf4r51cf^&#Ak=>5`Z8yB#`do!yiLrSNi|i)!W0s4EY^YmWcsp)w?T5rxZi zlHZ9|U%wV?Bkopoj!L2Eh#P992mNTAicU3z<87JkaNyF?FM=Kly(WnX0Sm0XmcX`~ zaQ{{%Ey)3=sadW)=EhBV+=`}}p^K`I&h@kB#e)`FRW zk?&UtFiVhpc*^Of+z@P%W?m2bh}2g@B#Fc5SLQY&TTx_*i>7mu=Uz?c^_-q)4p0$6 z=ICNhMJ|jab5jdD7W5@xoK5V3?lFxa^3y4fS>6>6A*GH0i9lNgOf?5*Wn~OIR)+>Z zz!~-U`DIS@t-^CUVZ^lDWlH6GT383|=muDcf`X^2Id$}CV4SdTtFOX(*!O3l0tR`c zt432_K)F>|$y~8zLagMR?6+{j` zkF$q!%T8v41iZ=acn5m-6HOM#0{F-U&le?6o&zW(fo&ex@1Oz8x_xNF@jx+5O~XK6 zH90mIKB#)a3qnlf3a)M;6OEtqIEh3P3jNf16+d992kqECv9}>bNruGnmg998qW~?^ z=b9LlW02$J8RI(9X{5aaIYrOm%81!`J^J`g@cAb{3fL;6LAu4xH?VOWt6Z4=otH;M zpUc5yP+rj@+S^ILJj??BT6(%`!X~fI)x;cNJjC>h;$o2;n)Zk76tPs;;^xhAt-CA{ zkueB352#trAb4P!LMfeJ(y%z5h?6uDbv8Gj zGn%J5mHu0{EbSASl0nQB#(%F;)gKCv%#e+P7&Ao#5}J_se|K&SIBhc5()kx2`4FO$FYh48-rI z6s1eZ-X~Ta10i1sx#nvdCFk)+Vh~TsmEF~^<|qc-AH`QZe7iGxluS;V3QkDe?NAdU zkF5i*O^2qpHZ<@JAh=zx)r{5|?Vgq91dKKg)^Ai5(4%FIbW7Sah;)4+r0@|j3ANAi_0lX_;$7j=B=l)kZ~Z(Bl3qayRz_Rg|0 zlP7P%bzJce=SJX>EMnDtm%Oe{>$Qbo=G`LnU*6yT*5U-g5t$vuch%qo?pxi-TmJQ9 zW?3}yqb?&3C}M5ohu^?5*E&U;r)Z%y%YA?aOoBiw7UiRhHPG3Q)`EoU=Xb%^8I@v$ zWs7o6oMaP+z7+IAM@1&1UU@rg4La$O?gvy3ChXHZ>sx#)c&iocL(}NDE!`DAqi`ly zHnCXEUMnGGxD#GiHNuHopOz)To{{Y-(8?l?{CM;R!fgWiCt%evCINGUzNXX(ObE)*l#}S zSyctEQA4X%i){{io}T?)&>do>t`DJP9IER)OUB|#q6-%2aBG3TEHFG7Np03at(3c4 zqC-guDU6bxj}}b`N84VygX%TWji(6p#D<>@`Y~gLV)k6AEaN3l$Rib%;*xP@wh{)OX2s0MFeOg{tw$;#&+ZUKpvD@e@ikv zdKSg^>y(z{yTNl$#6Bi@(v35vluT;9W{p^m? ztxe!0%ApLAx+%>mmo%Y$lZ^|YW>uSa7lz|2Wm`ETHmYK>98-SH*D&=|uVi45F{dUc zW9#Smhb-o95*}RN0!Vo<&9Y3MUb=_M4P#SoXr6uMPde=QEYH}4h_uvp!dl@9smME3 zFzJ zq5J&NrM>AvT8*WvQ|s;(*FRm!MwR}F=&@+uwi^r>+#)Z)Vdbka-r8B*0W_yESyL-7 zMfp}0q#w33#a8x&dj4!=t~EXTqlH-D7G@hQ><3EB+CkaA{VEztl-T1#9{xVR7KQDF zD`&;xBP7>|FvqUhxI{U_XX?dUjmtyM!rNQ$&1=(&%7QG$Y0Ski=9VZr9b>pt35AJf znfm-_ie?m=DF3f%WTPslX7|@Ls`{5{L_h<|?d{&x;q>P2{`l~|dOFn_sJ;1&r57r9 zF*|+zzT3Dsdwq3>c6la{p@ChBw&fNdl6dP&1XGPN8(Vr;6#QV|CD$^?O2W+nv_`I1 z+KfwgiYDOGx)sOe?3q9+HoGQ}KvgAE&}^&FMNAfBmiVO+735dK^dGmV)*{3{KUyQ| zZ!pMxQS>>?GE43=*y}+j58;~Ht`4`UxJtxQz)5)5CP~il8~1QwwTox0qz|u!`Uijf}*DWP;s9Uz{@vJurviktveEXXNWDz7RAW zEgFxr+zi)AQ7C%^OIlCk%iu?-=R8LUdwfw0h6{ElJZ8=oKj`PoMgvwG)i60Z0qe2a zHB$-{IQbc*uU~qID-A9`p0H(d=~4Z~3<0bYg-IlXG=RXY;d!vD$+IR+k2IOJ@z%k= zKD6j-;HjS2(^e$ez8Pc?EtAx&fR;EZtsul+?;_xe8W|!k4@i6gDS?x*Z0n^}hYm4R z_1{3xYNFgOpeSG9ERGMMj)QOT+uH>x0LWN=hk)Q1MP_2?n#5*3kaP-Rh~3p_)}=s$ z5JLyNGtGp*sPWjmC|bty&aXd|Xo%VnR9*wbE5Uyq!QTni5KlDS-jk|STfIK`Uv_52erJ_DZSsQ1Om(?PI@uEsUY=)>Q5Eiqr z3Uao;nlzuaw$fRL4qgTS_BJi+`9r*U3eSs`mc1?==4vBUOoZ}Rq2h#FBF<*arbKAe z{kLBfz*%r3WPQ0)j^)-Qmz0}}7{`QpmGihW?0pEI6^jxCutIt$F|r#?$t+>~GMDmS80pX?B~*p*fM@Q<7wSuA2WE?Pp>$I+ z!&(Zd@;AvdQQ)~rp(MXxt2ea3%fhB4{?&5h%~4Xv_V|Lfww3Cq>rEb#cyr!a-_Yh@ zg9}Rs>%4OK*i{rX(F#WLhE7dV*|cx2vh?L39&JPZb@ScHTtj4SZYqeqM(6ks6(z=| zDIZg0mMuAeHe#e&N$UR*wm{Ga2=TPYu?28Ej-ptDIP%bKN?j&f_L(iL#jl4~YA)*g z!h0xomT!D{QTkOqE(8&*((b+Qc$rSfgz(9961CGK{m&4OaB$>B+aqprz*|88W6#4N zZkOh|s^)MIKMoKW)Bzih=MQ7A@IM(I>|#KMhXwa7;OB`T5A-E&!C$ZDZtPOI47=Xe zf0qOipT4}Y-i@sJn8T{e0U(cJgbew*Y@fn-cRj=FH(}|*EwSOtkjiJS1+W162<+lV z53f1Li8xIvMbQvGC?Pz+sbL$JQ~LyuF24WyAEd^=PDU`&v#|cJ)c6mB+zj;p-6HqD zq{hKtsZj&v{7S#$B5`_d7Ii4hL`*)gcAZ5+~R8PlU&Idpp|> z&x@&SGLY`tFNMU>f{anTot zE@WgLO`85EVSa4fwI+vsll7Yx>L!aM!AaVcB+>t8R2i!*IQ)M~D%Tuw-)g36vA_IU`3V3Fd5s>-X z&m4&Coa*rX%EO;r2Bs&*j@?P$$^=;Fj?2?FteXpmkqOO8Z5AxNBw~l24w$DHW0b$z zE=1C|Kh8D{pBAfBHL3jMzgCQikLUpFJ;fqAw1JD)Bc)q^X&rCCAwakJ64%1QukZ+! z0|m@vV9e2?;FGO^{(DY8={`d3F?DPMzUnN<$HVC_?sqBKA~uNh(tR_2FmTt z0t`!af-@{q=e9dG&(bWbS~99i3Oa z=4B^b99j`b6iJBvPF_>g9TM1;#>hN@IeE;yVfG4z+Yq^(pw>&SBHHeF*OtT7jE#6R zVlS;Qi}GrXV$TaCEWrYeKuoZ>jM*$|HU;+`3a<@K9OK+VxA@vj02&pT86{g63?XXV zvf&V7)Nr*JrM5wEzKR-O2p?K2{W(h*{3g1gE*~roJo^wiJWai{k#dKVtCE%n`KmMC zpoIn_iA)*+&6RTt*s@N3JbugNQp7bc#Do~i)uAP|w=>Eg!8sZOZVK+b^Tec#F{ml9 zmQEZMVgb-d^+u3NSwTMDm}HQFtd^Gs3)UV8wBvC7PC&xL0}|a(Omu4^(dFB`(LQmN zKB2oAFrKa?yV@5wjFNBkLfzwaJ{jIgEs&pnr41Xu!V)hlQYX<`8QRZr?Q%5Q%uRfU!94 z!qf$m;VftP9{1yf!Bl-!6UPU?3unYCQ^=LQc9Sz!X55Irr2)p0wjrG)kjLz5%ppj8 zN7-P_)N9xMXbWUMxT}o2X7o(A==c+nf-v|u>d?S)^)WrCZut8Kf?1E2S=kb!KB)|i zK;==yu53Q*Z~Cc)NO11uVsrcZpHI332;W0%Hn#Dgoiv*Qkg2Yfr0w*v<<}I`^!5FtRsa*}GeAjO1L}GriRt_dNie!uiTBbw9 zKZ_2>iVxPjDh3sQNbQ}~Sodx?Hgw%SqE?rsOI3BR7UMaF9@*Kz%G|QBlz>_p6<9Sm zE@HX8KnQE{w0tAFXSwSuwWYjvbeC5_Wdj)-+gP?~cZ!1Ia<-nzTXdv4@H;O!Q!jF3 zZRn!mX1)WYDiJc7{{*+A#(HCuIJIV|>1zh10&b3i05Nu9W9Jzz()}}?U?Hu>e5hM! zt;z^nG63vUp!roUDYE7eDQFHBXXma82QDM?2-ZzVupYM25z&OzwW^lhpQtka;zge| zA!xn55xG;SCiN1n#4XNlvsHn6c#I=!Mo;Dv_+0i-@+Qx-?`X2qz5r!12Hx`xqJa7+ ztRr;8`PCjtL}`r9W8?lCz;^Pw((@+lY#bnKi)|{ajm}C~5D4P8?=YTBuQBo9@W<(r zBpntOoUgEf?I;0Z9CLB#t%^z6rOGbheA|IPVH~7u#6Ou|Ko}>daS(g>BKL^h_@Vzb z82%X9*7XnDK~*^K1MLu{boGi0eYj!w@4T#yP06||N})rU+l%#AhmcCRwmL%3`~)eA z8bkjNg5h6#vNM#+G;?B340h7koukU)t4>5pfp%`-BbQrBs}U& ztqHS-V~CFtpQ20(E>V=l-m_(QV#CkhvY!OKlh@knefhms?2?S-Ok%g^=JD|U^uy_V z^6u1BWIr*-N4;C`k;I2>nbMr`Q z18Kf(keCH~rK#O7Sfa-1!D&jBI|1UO1Z7~m7|~2|pDuL}wB6M(P_NX{W?=b>nW|XF zkHyLg>CJvGSR2xvUX*)KgzV`)uQn*#U7Owj!ATQMBWqLxXSB*x-Bx04GaF_ULZo1i z0gL(8xY4u4laIp=wB0!S7rjXKucVSPB=hu{`Qg&a*HXEXb$EO_wZ~6}lf`!cL3%m? z5TqCTm;TcOXU~T(m+KOps~!5TUHAZibi3^r3;;-j9NZcvMo9R*sw<|-V32vNq%9U_ zgUw*fLDn+3&Z6XDezCG#24_m)rH_darS8*`>P(?n(^mGSZAr9~x)j{7U8w~y5?#TV z{9!J#+M_H#dqvL%TMP-5T@P~pIRf!N+jWW@vdPIaC|u!I#=-{?qTQ5{8v(7vbKlug7wNu~wY7at8z`}l=hZ~yJBXIYzk%{;F&!miQhf(8e z9K33{Rb*)Ss%WSu*P69g^K~Pa1EP$flGT=p9r9CSPhm*}7kield^ts^!ntc%DDMiw zpi&}^bOw@T);@S90nSMV@_sCSOE8B!RMRg$D%t4IcDGdkQgkwHqJx$K0z?NOMb*u@ ziId@}LQh>PN$IXqAA<9;GowkhtPLxYK%u!1I1NFU3i}zG(mGu)G zS4^U3+Y8wYfQiV>0xc6<#peEEqPzj6qWoHpYvi{3-*I|gX`3-hOAubcQzH1rdfr#! zrqPNZnmF_@aU)HV$GB0ob`s!;dF25?{lLKmz>-5s6fy zk6^Q+ZCy!Y#Q5-9Bp0-yamRJDnuj7f1-{tQ`XeL2NzwD9gv{Pfe(}Kvi-~mNC%+&~ z@()Cd183|T=ntJiI(^{(0CyKYE>Ceo(`YbW?a?gIW>8&nt+kzX%1BZwBjpRS$LSA^ zOBzgNf2ij`{}zY<1X#M`v7w*`i$QnfV=3A)Tg(7)Nxo`eouO$OtNwD1U?KIOSn%UwWiMURqhWI+QU`sJx!4j0Hy9n+oUB) z{*4i^iCM-34_(ohRU(av&|V#vpGVqkcwOACtw$l89P`|V}%bibLlmk;ImEkKBL|x^is1I3SrfrcnzuRTC-EjGEG+z$QP45TfkREO6*s_+CWEeeZOT2 zO&c~#t|ilLycS?QQynlB`oiLOzoMbgEBZ3oA8Jb!+%_dOxmQL_aP7~f88sG}fyo7X z-x7Zx^TlJ~2a%b95N_7`TWxbF3r@6SB=5UEnf1^50nAseLb2+d=KRJRNm8!{gd-C+ zEh|E2o`nW^8f%2r@?bgQKTPQUi+Yi6Ytgd=spprS=E5ki5$=VLy(Fo<@&g#M#Brke zAsAJjLx)FnD^R1&?qEQkIIy83GjgH6a*#b~SI-bG7`^=JyLurSEfM4nGAn&B3fU{L^FVpd0KnVTTbM zq&xn}ggW(*M7IS3HMaWsk6O=qfoe@u&b)E(`~XL|wy#F2f977#&eh+&R5d|BtkHUY zB3c*Y1=gxGh}tc>#@QbyxR0haU)Bp z?0Yu-$IxT>s73cHM13chYc(VQDiozwp8ly-LVcm}QbTsr84U6MX&)jfGzZVdf;Tp{ znKaNkOQNcK(L;_O!sXfF6QTd|S!7n33rxm0tofaW*+W)l3-z5P@0cx>gSi9)w{?Q^2O`gE6 zVs3;9Wb=G5UD2-o;CLC0@od<(`=Nnrr#h{632D^4fB%nmH{=?TV48>@mKa&(E16tK zCO{df0+i9n;(P72%iV9ncMcEcH(M7k#y{B_o;a*E_QlGh#T_Czvg$2q%N9jpzMR>_ zKT+TPrV_EjAbfne8PR9X>T`FN_)6`Cu~>BGvCC9H@ZS+5iF&%SQO}ny|4)g)B-_}TQOEkd6vLAhA zFw9R7a*7(oLzxoO0#M&Zad=>m3vi~_A7B#fEVNg2kKr*?8fOi>K<1t6)YFT7)2h<4 zOG;B+qJp&$X(l69*~1(8X7lCRHCb{@`!=;#cqqcRJrbY&S*1P%$XR0OHBDF|I{50hFZKdaf)e~{WdRt&6(6T) zQk}0T8>Tx^_@XZWs(>|Q$>;v|| z&RcaoBDg6;^0QDEjL!if;8$vfYWXuU_Ag& zPGJuPG7^_@K)?cV2X|n3DX36lPFZ|1yiX~0q)nVwoQf~bGD#!F!~`In9FXRsa6yaC ze(G`wWX1Z+Gfo2Si|=3%_d*enLHiZr_kn70`WGQ;7e?*N0T>W`UcSBxm!Eu=S|ZKz z2x>oVvHKxvgsI2}!aR|+#}N!?gg!-BPK_ndb6z8HynD1u$8UK5dplBgZIK4)WOC)? zmC0YDe3A@VP19M1>C#cVxde%xqz_n-kcs#O$q~mzus&6NE1$U~KYdj9wdW1kHb)fr zCy?y*;&G$udhqvO3EHB_1i!ugCe0=ifKf*_Amq5-v7Fn)8Bq|6^(!rFFYj&OK>k!o zJZT`_)dh6B%ae+&^+&!zuOfP5*f_jF7)_dm;pqzs3<3}I;Al>WvOgmUxrFxloB6rTx>3txo|ui3NI4XJ_y0zH1KHwu_6-+#W}V=Opa`RNsMt)CR~v zb_45daDrJCJzr*ND*HP1K->6tI+AX(_RO5OzpK>53o0UkmNcByE zf*j(qH6_{avyglnTGHRPQI~_D^&OXMewjkEF;3gt3jzH3-61wWR+Gm=wJd#MpMUbY zkhf^11m~AGf2KyPB8fvB5Tr-W=t9<;RXai{!03Za&?7Ez)cd4y5mUF+X21$Oa z9S3|p^RhKd!QLDsfz)(xgZQ!!8J}AyJ7myFAUvVWADkhXW9VaiSypq3>F+}OrYUOM z@mQLZZ5II<8}Ta0WuYbCk(2#SNti!KNaTp{ z6pa0&v#c-VmNlEfJlIS(IQ@y@8{jwyOwdg}D&qHptMV^NeDh7oIz9CkMl7jd%crCO z8*O$?h5V2;2Fr1HI9G;8GJ?g}P3ro*=}$rH#2pliZrIIc#nG$}-(xi`s%OnS7Y)+) zH&syxUz0I$T)`Tdp8Vc;w@h+Ab^=mInrFOuWP-qwBq#pqI@FSP=wLAR9d;-DwkD%P z_TgG`L4)5w=)yY@Whn`hE5<2c(GnNgu-02(sxO3*effF1napAZ+XRj0y*EZZ-U!gn zY88*Q>a7&ghI_UI1Z<+lYg!frPkq{4b~V)r8A37! zDhpOTN2yYb?cj1fJ9D;T^aj{MLg3hi37t}q;a?Bw5rV*PwUGHp6RE3SWNZOuPCP>TAkINzqZuz z6_Bq>_&gd=THp6kw0_2?G( zOmzHhXYrJHus-w_xprLq3H$O*I*9)cWuqfc?4)+S1R9hoSQ`SZ5TX^FV;&C@sC$Wt!H+b1!ut!L+uHOf2UB&C&K&_UgBcDzfq^!xa%af*gz_@8!G z;GcHZ7NDI~_RWl93ee6vv(S5B15oqD@r~qVH=sDR{7sU>^CaRNb zN6d!pUt2s3^z47S>i>62nf*^?>;E0I(HM8c(LglWtlNk56j2r_8-IMq2naSA$AeSf z7XyU}39e&qF*0tp9tG`RP9(c*l-zvyi4bF}vMpx1HIYbmo5EK$NW2X4d9%HIsRpkr zS-E6qtH%8!CW`g+Zr}0MR~e2QUXeH*dN>#yVglhCVN-r8)*iSwet>zA$BJg zNP<{mR;-%fF9soM`$MyViv3R1oW0A1EeWoISxPlZP8sMH69eqr{~u%T*q#ZuW?jct z#dcD$ZQHh!itVIg+qP}nwrx8Vr&7s#)xEo)?)T{ZVgHM{<{ERHxP@uv?PfMFZZj;@ zWkLHp)VL2Oou2jYb!=+fuH)o#w%4XvLKQTrqZ=~GPobL#8=6MDBm;iZnS>vh!KsTEPZeZM zUk>o)radB$V6Jmd2oZr3_oz5$c_VhNx#8rOa ztUisR)&oA=)(-CAM=}nPc=CdbV8Dq?+efT%^f z)nHnh#-s4PUloSZw5)-Iq?2ZudbGCM(LFveO$M%hyoqvAeY5;_lWH<6Y3swnDjFg_ zza2fj~f+7wUA%JlBSbUa~<@GLz8pcOJ_?lg~>E#00TR#VG~t? zEc){sJvz^1*l)YNgF^Wl&dF_u8WFg7^+TTks6=ga0;;~KjOc=%f)w}hv{HAg8sMxN zJDdR5_Jq1d#vTlKk@KEQ;2VTtF1ep>%9X(2&*(ouRjl}WYe=;Y1JAxhys`{^cMH*z z`pcNe&9O3m@~$R16&Z()2uJ(ol~FJ!5Y6p7s!z~32^b_1Eo#Yv$-1yI8kfvtT9VU< z*r03!yFrt3=rCWl=qgkQ?d}@1T!$n=0fN|U%bpFj&Uj-v+xvKs6tP|8#gg@$T($E1 z9|1`JiJqE%0GAVOZEBZ#6PQ&+l(+Z~m!t4y*2F7rc*Y)_t*qscctF!RRs>fS{$l0M z=(YRUWGhu4ypdLsQ-p%vpqdN$ZhFAehTrfhDkp!X;BpUqLCFNGSJNdT#~95^HtxTZ>SL=@j{Gk!WX zj!kgH<^qJUZH~ZgIKWCCI2_}N!2cRka>nTYsS+eDyP0T9tpvJ@~5iu`PUGs9ci3KJ|WH}Y25+XPw$pPE^Uy* z&SHv|L^mQkoenIu2zv9~`WOkp+0g!FbiVMhg$=vCv3J7J<%XYNa@y^`BrHb4-gg;6UP-v;k&cIjwN z>p_q&%MU;V1hL6wY`h5qakRzF(b7m~b2RC9XTweP`gf7qKSE{}O2sDTtr_95W%ny3 z;!r7?{o#bgM5p05lI%XF6ba zm3w3}@t5XFzi;2akKgbI8S-U*G9I=QKNP0@U=S=d=db+xI|py(V+dGY(L>;Mov2nn zIUxND<|$Fzb8}y!N!e{YUJ+2-9Hy7bqFXAw`y`WcuWa%fulcYIe`mZz$JG00C{OUb zUxu#h7R^5N_iqj`l()i28YhFr!^?A*RM~VFNR|kWL0p*A!~bso!X8zak{C1Pm@Z`b z!HD$BK$dCJuKtv>)(#o@1*2;#v|gTZ`yO3_0zsO_GkNvG*^U!`nn#+}0V2HW zmfjT_XLvJu%gp77XE?o%&71dT@-xIBwZJpE^Vd5B&@ZZ{&Z4f|Z*mRU&_5_ANk6}n zj+Pt5rv9Q0@Kd$!xZaFic%P0-lS|zX+YCtnPtv6xyPPLZc+BjuicyMc|D<9q{@NRl z)J}1wf3r11Z~B72pn|vJ-&)d$eR-Qq8nU{?rRM%uuf?Owr^)y=yA-+X3v^Yv>hf>W z*gpyDpESnI^1n7?od0e!#`zy@#)>sGolwP*cTU%TZt~B`yQ+h2Fa2~MM1%@be-7X@ zyAFNga}SP!LSlmI8tL76Gu7QL#1dQ+oKmPDp^l~RoyuSj%vvVAul?}#tZ)A#!pY0i zyK(oC7m}LEj-&b+XS! zQG=hj`in4}vl`qz$S9m^V8-Vc#}K^I0H08<@rrmxmV?x63X8t=pYmBgLh68Uh5$O& zjq>IxkwmG@dnXyH>n8l#v!+ES6|?ePv=F%ghtl6Q`emuLN?b9s?{AH+XKMV;#N_PS z*9kbWQ}(+*`F+{oHh+N<~Wbl3rx{ zWEBHx&nU?fr0(nrQcAfe+I49sgc?lF{Su=~crOg$R3AtFrNp?QamL!mdN;?8x|6ue1Wd7Ovjz zWArn#uA`KRzqk z`4H`y%ck8ezsce}-!xvK!)Fr(&@s?}L>1-d6r((KJS^KmJD zjg(QsmNN;i-P=B z?K5_go{$gtqfVOX@VU*{gDA9>pvBRh`JMq*ZA-KRCTg&!ebLL^hnf?@pv)G+;AMwM zcd7SmlYha>^c=<~&@6eln&!3J1=G}LhlAEvugXSp3+2 zaa3f%INl(^;<#+enj$e8YBYd*LcEYqd|?Re97=ek;YSlg^?fW_q=aXgxEp2edl6!2 z0_D~2BZe7%N>=FRk`G2GO;H=B#iWO0beRDIltuiV$`WQ$FVv4cdF?f+)4@C9*LBJ1 zB>OVkIffgcQ%!0x9iq=wiBHv&cKN|cV5NFalhrWrpF!c)il(qj5KrH@%w-H7PK3bG z7)!IVWPkO8nWZ4;Y+{BY4Mu{`z+M<;6!VF9$d4p{7Pc9I{oJ%9F+ML}n?%XKT$P1zVx?ElbPivGM2M~(x>OIwY^A(398rr>}9CC9|qK2Yzo(tGE?|}e0S}4 zBK4lFt2fx#S~zRfPoG2OuoF?viVgfAyD19qO5Nao=fI}E*^COrDjp+mywk-n)cEe8 zKtT;I?NUXb9v!rdbGyb*w{I-m*4`Q2_vrret?X=LI|eBm8vtzJ&GK^d!>1j6$N(Gl zRw@;$xEplT4hM*WD^`(xATFEi&b9#lAM@Ew&tTKcM!Rj`LT?KpAylP0$`{$pDc@e= z@f&j96M0QmwCKmHQ`OuzE;=QZ?BrvaZ zk2Yw`F=b~`bM139A^MOcUO$4fTTMf|C#oW;w&O3#w7SbcMy-Yw+S!phSv`r4WJs|{ zFo`3XRrQfOo+-7Ng|FiByO!6hv5a^40vVNzN(`x@;XN)x`&(lm7kh5R7S!ml*Tqu@ zh>q_aMRy`kaD8&1ArYL#XPfMz;3oTg6& z;7m>EevvDFY&iv$O%dI1e{m*##T2N1w(sjng{I#u1cSPpxvGn`$FqJ*h@=9RVU#s1 zZdQPudbMkk>p_Dm>soIRPx-d0p3Y#gV+W9zhTfiKr-ekV9tDX=esZI98p#pc&lWDW+l z|4|qMz@`7&00BPJ{<8*X-BCvrIr|i!uOK(fi)3rH^_hzNq(2f4MBDuw3qQmINV)|# zC60F7?<r{##>tCoLU zpL~jc#d6MS?e6{>646!8NYt{^uU64RdgRhz2JhU-sr_UQnuqss{@V75CL?;5cFy`P z8`(0-!Wfg8w3U>Ag&&>qIdT^28|}$~jpnn?!h^}~x^{4Bzjd~+Z7KUuRaMG~Q%Lfs zZZOi}usr|i4mAdIU+RAVJh(Y zV*TRJ2G`*_X(r2?i-JXj1Kx>*mYBx-=l;dbe&W;9acJW5_U($L%L}#lw(q;&CoZ4P zmyL^kn~!Vc)3nz5xJE6;%1e01@T=WfklZvS9KXWk6#39TXm)bSIcFSjUNnNsTHC%Z zKDkrtOuEiq0NEs_1!X4Q#g|HJ1Ng_T_0HFtnVJo zoxcg_&YzP5KIwieYEs-qXY5zW~3CFhd9RWT<)ZARglvA=2HEQ~Kh1zXf1&h?e@*xH5`mte>E zLfz>vs72lR672mJv)^R!sM3SzE{S$6LNW}%ox5W_tF_yMl9$c0uGuo^yGe)ksp|J8 zci&0t?)VmeF2_zMkDow!vj}Oj}0fQK5RM7nXKI) z=jS~y2qpK%X}7u6P#p^EJ5*mN&&bvZ@jy}EFN(lINUCs{S4IlxENy5x4=F{@{hQOG zS;3lpxMkNAuNWr8K5NU~@IdPX*(iH_JyY>(BuoT2bJw#{ol*NQk0KSh=O)g$W||PR z{!QBz%x=b91!lT`6g<@?#$`*u>s^&OqfsF7d?%5+ljYI$40-R-n$@u{d@L~I-YoSh-3EP5$Ne*ZtrMO>PH)Uqb zqAP?30Y1>^R|RC30r|n;&od&m1uZnp_ssQ{?JXF`@q*qa=+dWv6k2KzZW%T;HBQ=s z;*b2~5h%?rJghyz+Y{|WyuqH~f#5ACtTRTc@$BXsBShhkOLPGN%nm+kXWIT@(?mCG zVpOvE*1O+cWZ{;ZLQu-UT$;iQc?BpbXY+tn7Z|vL!J=`k{`eW}4yAXYS4llx-B)Va zK)@ke7NdFg98FAkt{$Q08+c~JTtpb}?>ZI3r`>X*YSHrZFH3lfz)fx8fi;Nc=2{9S z?kxx}agt}gB%o6&lvi4GLzJ@^O6H?iiIPCvm}~I7S}ht^w1eR_Vf8o(i|Cu&NU9s0 zv_chVyxDp?dDyw4gHx4X?OU-9Q5eIr1n*5&2C5|P1)}6(qWlxx=tMhLkOQ)B%#rO> zs>xde<7na3Armxsz)#Jw4bibu&dV@mNAClsaQw5wffR$25&KPL@9ylyYG;wkU|U|7 z^4UgixqRaY^pZT6ATx6?V{7`CN>}2W6$^Cb=!3x@>;3ESF0Ih*CkT`@5q09Mp({0o z9|$LQ)72KOwshyo7u1NucCxi!u#YObVl3#mO3uCk!UKwuaVB&%L5gn$ z@{_?n(9&=o!>>l~KyWkIxG+Lg76zT)|8yffhVfrwE zHKqT^nUbSAe475iLHFImV+Kq&S!c^%ldCDAtOo9lGo65^>(YukQS!@X9Mo+Cw9hR| znjL*f?s(~RP0tCA9a4SfoKm_&6pwCV0}Hc#5~_!U(!`ZvPY2)Ml`1C%gG%)$NQMk$ zdyvk|XeGzEZ7fV_0vPlI0nv|MH-f{@|(>l2;a4J+=Sk z+%7nMjX5mvCorW;VMr-<;?PUKfqu7Spy&~VyV#r0if6Ybzl1MHfgM(CFB2QtAFLCfBmlgF9#4KBgenVR*angS+@FbP#mC# zmMcG}Dp>vtiWi8iI}>Xn#~&e`_JuVSF_B5=06=lRzo59E>%m`8y!5ns_xH}_{HdfQ zFXe~&XU|)m=cASvb9cAq{CiR9t$MC{$A^OHs&iL_Cn2QK~eoFo|L;e0;kRc&u`IK%<&s(_**7z==}ne`V+$UXC-k=hd?~j83-; zPL`xB?I)m4me!ob_;W9vWM>isutWD(urI8$Hh~3o!^DJ&)V+Ar*eT8d;zTM{v97pLdABaw`(KOGrX8;rv zn*&N*eiUTIrOnSw>sjvHMN8Ui$=4r{Z7eX128^cYy3Kn>*vQ3AC(W6z>iZZXi^mjB z5f80S7%r0qJ!seayT)sda+Fsu+aeZo6cQaQ=H!|$8XDewj)ZJw-}?4W?2x`uOi$Az z3=cz|y9P9{AyLE8jS&9E4*WrEwS+u(=tl@=-Xw*IH&tU748h*7R7{HowcR0fX9@*; z+Xb{1PqUSkcLIGdqL`O!0M-IhISkfT z`|uG66c_=bA+_TS?zi87# zK-Xk(xeTn^m!4sdJn%<}S$?{RVb9(xrm&6?BVCROVK|34|Lg|-k{fjexLej2Cj97c z<1bpAPq#`~;y@%#;wx!}EW)Q$ln=fzatu=e?;EvrU_n@1P<}(!15tBTSFbz@P#t1? zRcf(FXDz8)f@;qiOaZIT)t0k%*N7x|u3xB*&Ts?)>N&k5&7J77G8hLS1raa_$2tew zJiY#-2nONE;@?I~9Twr0Yn6hkBXqi?6$~`9^sd*VzS+L|M}13w4N9w`^if1wPL!kl zeh{n4EJa{~YF;NW%zf?y|Ey3DF8vADYkw>XSRZ8W5C9}UQepM3P^B-Jpm<_tm=y?G zu=Rt81KLrg)J=x3hEc@G#p)2Z_@wr2GH}%Dn}c7F^pI4W4inER&vb-zYtc$WSGL>ESnfprmbkO%E8(V`RR(P-qYOLI9%MkVwIM@g1T6Q0D48 zWZJl^Hhhz|(9}jB)I4?vd6#evEhAs@MQ2Qo%{dOLxz27R7~vg<^T(#J$BZMc3HFOs zhG4sYvlhfw0le**Oxhd4e)=9o^ou!orXCwOVx6p^zK$i;6C=am_Sjjlmx7||3Cr?? z-?)uUMbeT8)F9O*9ulSHnIAZF_CTF*LGar6(%xQ*L}=Ef8Jcz=w5}oPskAo|d>hfJ zPz~z5?=$?ZC-cFWGlrI7uWm>$eYc@rcN3$>c9y0?_x{((pA|9#rWgepQj#=iMBnI%Y{OU)0n5Aw1EWh zL|d3Dd=7c5<-P|$V5N_Ls7dF!$wYBv;q8Yl<1hQiD%P$Rk?lA+LqyhruB;zc^g->RA?O#u z@WkBRckP5>j&DtgsBGnK)#g5^_A4Ahaa#op_O z!z+DSh<5uy;JbM>_$LJ}SyqgQrf;Ph!uxMjAIK|Z(UD`oZBp&Pq%WLBc)u=aS(fNy z^G@Q@apE}yvRQVZa&DB#+>J*-v9vnyPitA9g=}20)vm<{9Xe)RT4Gb{X{E37BeEEA zZ#?5hppRn*2)DVpOWaD0&&NWWf8truJhA~?KM<;7r9K7mM+L)fEF?nqnd(Oq_iJL> z$n(1!02b*l*G-x5gOJ_B8{1duH|4l_b|ak1=E~~)*SB8=uIwHPkNo4>tC1iub})yF zeJIRPplD%VAXbf%PV9R!%uk0a&-juKjpn z-|gK(f`(_MniwdkF-A8!bc<4Ke=Dt~annWHsB1F2Btz_5UEsbhIUjMx_a6kXjm$2s z-i2#_S}75yd|ng4H;?H4`2d4g+4SgJk}38_bhn_71#KHe8Bweq2Qmv5BBK3ji<>Z_ zW|FVHOJy~CSz4PV_{a5g191JwwLU^gl>r;0cT;)M=4!_TYpaz*&H%+WP0bt#mioXC@xAt4oN87qH za}0sYqc&lDH?{rHV#qvN(jbMzZwC>u^V|((>7)ZK%vdFgrrxPb)%S9YU!?$1^dGTX zmZHC+=={H;Xm3ef$K&D8z+Z-K#zmK<6eV9jJ)7SV4Sp5+{hP4#PXPK?SYrJjQ8Xj- z|2^c)$jJPc^!^V}r2n5Ny5_$`(Ll&WgaG4DJU|rf2OVYtbrc6gq50`~s-(^CNx1IF z062iEt=8=gnBm`B#3f>reolV%`t*9d{%eP?@H;Q$mOYn^>MPD;$-b-5A3CE1@cZSu zYon5b^oUfI9)Rb1%kE1MXm5;qL(o}kFBSF&74NvnaN!07LabhPT$VEZK78)ZH_GQj z?Cf5K;=^?DRl@qZZLn6ke)$kEtdlIS3T4zTB>AX2q^^Iu%X@moh0NYtEo4JBJ8;zd zJu_v2Z<Y_+EmPv)^8L$dJs?{<&ZRzVwlpYXpRQonC$Z0N4FoLnfzOP(Es>38F9y}Vl#7UtL6 zy&$=9)Db6lriCC5pOD4@7Ftjszs~u5R~+?D;2SHRI%lR1#Q;Q|I-uzN@1~97**K_u z2e@{^q2n6|3om|W?v&P9SxM$#E0KV)zmFe2VR*f37qYfN5cEjQ?{%PmE_Uo1RL0J| zBIG8y?rmxtmO$O8)fqBN;v{0zZ#+ut5Om>~MfyNi%gL{Z5Ta|ODjiT}XLb4CJg7c2 z^(2l*v#%k32j(C+N^TO?;_&tZ{w^f<&;J@Se)RqLH|_~dmqtQ$0@YVM^EFn}zT)0E&2TaC3ZQc~a5md1TW>?Pn=ViAW{+9>aS7dd1$b&?p``xp?q zn%|>7om;5|LDl8p4Gh1H(+R9w_QCXv!X;2+@_dubM#qsHb{>!` zWOP6xJ>G(W)SzTlmE?7h1-uoIBdeeUwsB~Inht5bhrgX;CjuAI6*nq6 z`l*2%XzY~~$CNMlV(A0HF`3BKl^XbAKCJ>WnFKkGz@Q)fB;jJ+T+~RO0%p|fo>km7 zewZX;tb{l~9hjGMLh<_td=B-=>`K)QEeAq&7Yy0m=w5;GD^e$5{NKXbHK#2B+lK-# zGFUUT!_pIC0a+&ELlSUkjq5ykKwV5PCvady&*;BubW1h5dA1%xaEECT9w{+CP~Rw1 zrai9#SpxEjiI(`NC#Z<;7@*hoo9yb8RGkxI&9wZOW)yFrWQ7Q!OCkhQIMm!zoZ+sI z0#0{M(2>aDRS;nC+^E9N_)Zd0mMCX=#ap&}hncR{ViNj=sE+{FVwzeF_MCu(;T?rL zSU>8x?1SeNSDW!5i6?vcqk|1CkcU&f-V3YnOL`;-6*Ie02m16% zn8t%_g_T&&C*7X#9ND1-+cG?31#KQ*$5!Hn(rA|r`P%83u&e%OG7{lo{^al0(5>u^ z8l<5FU{o}ntPx8I(4S7*y1G$duh1v%(mP#+bZPGiGfjSm8f%&D#htdcN=u|r@My+r ziet`8Td7M@a?v6za4jj2iscTa$G=r|U+L z3;0`r?JkSSNG9KqE?zWTj%*mG!6BwtLP+ks`aeoQkI(=oJ1FRV%5b(HwqwKaNz~j* zNU%LHr+dHEq*7YH>wY^!k6+*pfQpH{TkZQzTaY&2+TF03U^j1lFjTr1Bx?8cN2J$e zUHHtQ+86lja5Tf%(P#b|RWmFPmGFyRGZ=+V%k3mD(LV?+Hk@CTSW3;bUv%8ubZCOh zBw6x}Sye0jiMoPvO-z1g1;EMcLFLttxV&{5!EJzCWjdnH&+EXQT3G}=gT z6(tMj3i~1BMbz~aPK6&OH^Qq)G&-l89`)*GNo^;N7~Q`rL`H=2`BdulaEYEe>8H}O z^I7DYzfyBT-PQ;uW+Gk#$?72tB$-#NioUb%FPAia5RdL=LM?Vx(Y7N^5LD<=V5mjV zIPNnGq8{Iszfj5mK%}`3QsQo6`w1lxJ~O@H0dGta;l?5TB2{ha~=$A{VSkRk1qFV+f0WQ=f7^W-Kx$s0?F?u%r)t+Gsgk*9o{ z8xa$~4D&8@oug6WyA0LFN&n5B&kZ9w70>uODZUH3It}Jj{#h&bB2t4x>buR zg-;si1F45|VqC2eCI4G%E38VyM=g4jWC&%gVb}WfvoMI=rAN4aL%9XTnBOc~*TE1Dp5_y@rU>fq(kN zhNKj`S+%pwDY(v0ezS{sH1|GDKrK+6;N4O8$pw2#dw@ltPksd+=fQiHI1^pg{S!S| zu466^v#b z1CsZywly#f9aLRf5a_mR?cE^xF4q z%50ndHOBcHtBuWva;2b`ajj9k)=^bYAEfKhO}C~dIq;XQh`Z=-lN^U6%8yF%XXSl- z_+#x~irb5_`aVeub|WHux+Nq#fQubPS5ku5v1G(mpY<~tji{R+2gf=uFNNsE1lokY zS=V`gj!P$5O#av_9uih>!Ap9pX8$}MdIvD!+kY>1gq+tZ(6fC3GiEJ{{+l57Pq_Lo z3W@3et?L+B{>@P{Mwb8ZsF|jd3P5l0Fa%iFy->PzMp$_2XH9?_)gObwNf04A;G>d) zn)U-BbIjDfXnJ<4GdG}=mSJt5Ut90K&74n${R-P!(I2T)pdY|OnDl@hQKu>CEq zmYtoYV42~@s~U3TdUwwn`mMeTXB0Ftb(}w5pAa~q`pgV`Jv?Sk4=zqOPKS6_>d~#pg3%JVhLyQ!@_DOAU=R! zg$bUrQ0EuN%5|=!A?RmpPynMD3^gRm1oVmQxW;jT=3J% zIEhO}dy-o-__qUIkS&yF@}dx;}X|t#Zzhl9jr94Uv^SbPRqumiPOO`k|d(U z#QKbH2*5$`hz@KruLbLBOC%s=h5vg>Ado&-e@`K`aEfwfcluA672gFnKvxaTn+niX z_r8%!0Xzg-|LCf{{?S!)h=%(?vinBn^(}6F905cGakj@v)xi4sPVI6K8f9a|} zkcePPIKenitmLrmgDBWzaDNi;)`3FXYx#Lhk5z&gP+TSpwNRGh6cxr7aF5v&9-DYz z=UDj@94{mx0Hi3;fGd_Y{qWaEAco2e!Vd5esLOOo1!IGO(as>lywb!}Jy(r{v3v*& zg^7C$aj1FoQW|ui<2e9)1b_-lz>W+Bk7i}Wv@JJ~57oRNzPFzq*F(t>VY}p|lj9fB z@NgO%*gTGjKLiOS95iHbaM*t19r~Yh7-P(xC_Ryw$BDfw!JClLp*qKArVrmcN5XQv zP-}UmT40A6v!oAMTHp8OW32voAU5IWl=Av+XIE0)g!G56dYC{C zqxlQ^1Tc;_TKOo{r&gBrZT8I~KI>!6;OK*&C|A%iM(%;ib!(=|eL$0_D}%+PUL;f5 zeq8r?c~nytQc1vZomw)KW#N0llq=K(0~Tf8;LLco8dv~FwSgsry?B)H$aOV|tO4m^ zq%WYkBBW>dZLEKnk(q!gdrza@N19(jk^LPNV7MqI&4cz3s^2EdxK zOsFZ-r?n7bIaBBTQs{)J!^fenSk2JKY(mtPfpN%AP8e3y6gVJZZ^KMZ%)p`!@mwAA zG!?>ct{u}{Q-Czh{Azx#3n^5zoo^wq4ua&^5n4T!CRlpk-H36a4q*-uXCz_SaKaOe$ML=(r9d82Yt(XD5Rl2&##Jq->Hq!i#R&Hu3 zx2Vpi3hAtX?dd)3hfj5>vsh(TasEbgN6d3<9AtCnL}1?6d6x}9taMkxz{kqND9o+k z|4LBcqjL|rZ)6!vpjwA}JqjONc$?QxQ)^22usLktx7twg#D{<=07fxo=YFKN7yD{{ zuHl)frUeRWgVBxfujYzIv#`~&bJR1LU1AQxIW z1F%$^<#R()=z%V~{;Wv*lK@NgeTYNpsR>ZCP<|Y`FRp}X9a(zm>eD1{qnG2= zDm(PlA2fP)LtM@h?u~%&|6{2ZAE5nfsqTxv9v+r^o!`vfLU%ceI)u~6>_z|G&`ZK$ zuR<@azEkt*t{3xtnmynq4#UT-XBG&^5S#$GC4Y zbObn>gIn;ngxSCUZm|ki!iB9=cSN<(+iHCLDSz|=*w6tudKS_@_R5EE({EH{_s7oR z$r!)sCqnmQa%ysk(>_bj*H3;_{K@@yzkL5>p#LhanExj)vHqJ2XMiiQ|4DJRtSxDW zyZWuAHW8@j7;~zgTcLHQhjdIZ!6Gz-#LBP$v^Y>gs>n#ONP<%CQ_#n?;^LZjdyq(I z5CIO}%R{3ts<{_)QI zaq8ize-kYhrAkAaOuTXh^0abr=BdND+sEY&Pp-ZuhZq+JT!xDy-#_rh^HI-r_Yvfi z>qkfLQ-Rl(Q_sHd)&-Zimn@LvnLKQKY zHai|3gehOh?@L)8o82MQ<3%ppKRBpmP^LgY?}lau!hJ5*&5M$CTtHr{s{<;X+{b7S zSH$iux=;E*s|RxiqSz*HX&XXe;iG!{q<g!6fmixesyyiF4;7Ulx+~T zft^Cm*cqY9jRl z!|HS0ISNfRJ$l+2qwcuUdwx64{T1bb1;q_xGEFG()`*J#sI(A38UxBR!}mTw5b)wa zxHT%hFmI-UG7kqr8WLGZ+9j9pTJnPH#+dh&VJ;ss>E1PpVW89ZbccbOkP}Z^fZ{ri zKIoMZ6gYO^j;ihcII9PX>vTq7)~JdhZ>Jr14uDgl{)_QudA6z2bi=SZBO7ZYaA)0!;Qt@ty-muz2QFqtaoqQ9)>)~f*iZn11 zq}vh@A|%g$ahSp+aU^!&xjiksEnz`wiRkmjSBc$m%(E7Gq<~)Hp;I8vD?lW|IJUZM$oqw3_+3ninA92W3puPq1REzFUwjc_kAsMVsNBoH>MFfQ zAMay74nkZ{_0b#Fx)7$1dFbaX=ycsGywzcV7e^Y2+XZ+kLY&2_Ps}=WTbTWCwgTfj z{Ub4Kn`+W5UDz0@Al`JcD@8g7p7U&c%D~Q41+TE^=GT@Bl>I|$QuaBGyPuKyg&7IE z+|(~_enrh%BJ)8F9`5oXy!)#zGV{6yPHV0^Qfw|iNi41FY_XIAE|1nBWmH0zOz02e zC_|(YH|;yYg~QW-+O7qfHIF%qD=@Y~qD`Q)9Z-r_AwDcC?J$KmEt^^7Qpq6_YKA|y zZqR7uN*(t|5sm+1DIbcKG*c-jY~bMMuS6w3%8hGK9ItgST)&s<=4BTZcNCmJ^kC&t zz%-WC1byM4M8LK4O~h5WuB*>D=AEq(g@C2J$Q6_}HA@ENugI5i8Sz5BBu$j$NNtz% z3?`$!W&Pe6)JA7I$7OANbK}zTSocfPC~IP0lH87jL7|zb2UX`+hpMg% z(v0zS)3PY8v~zNVGAyJ(Re}oURPGNaV2(ccZz5XIIr!->4Exg-4$>holJl2u7g%YL zHTLI?aQfYvoAcUn`gin99bxkvb0J{lezOTq+=x;@#%zPkQSgJwX>haTU!o zmZX+XAAu?>Ql?7;i)QCduw6A`D}&~(bdizelgWxUiqj&19G4}jFzMXe&kNrFl0~RI zH9>Nb6*v+=yPegJx41!st12dCJvf=*Y`s$D`XpzPs-txq+YYWViwm`euQIn)l``a&UE^9K618UW!3BJ<{g6#>W9nDBMfXeOXiEpWn;=OhLtR1TDgNY`P~pf#zSzT~I_2o! z&+_M2K>4mAqyPi0YE@eyv&;f%sZ94}XCezlG`~(6s4L!%d5DMUXVe<`Fc0pYLHUgl zO{ZR2zX(oWOvbE1`y%P8B~zf0{8156U*=BqP{NF7wh4}SM06^)r$NYyD!bEPA8~9h zYw3Y+btpuK8FEUFGIb(1x;-wPGT*hCON!z;YS}?lO?~NFExkmENRign?VEJFJ#}%# z{ivw12`hGgb$1232yY2Ju=9(lp0yr>fx^d#j!B%FP1C4ld1cso&lGR^I9~$$&raH9 zT=mjyyg>a^-$({OG20D*i^Y995CmEXBpsAjvO3uNJU+f&w*9p1| zSV%P6v<#Z~{QV{Y9kiC;5}~_6$(gaI$pp#kTc;vLGUnX2lQGqVR@>kO`T^^GN?JRU)#S2zo4P z7$FUs=%w?Au4Of>1wuo0?rS;gO5r9y8}VR>ps^`hRIb=uswPAqBguR+PnHu`1xx82 zE=DWK#P0@{KV(yA+P1b?G#fZ+pB*#Nz0@+;TIY?zRnt5Ea8&jspuCx_zD@OgqsLSCf z+ntP$rnyy>?}jVyCZXRm(Y_nzp(z20>?WxNLGE>TNnSbZwH}oA_joNG~{3jo`;3B?PjdLMnhO&KjFyF zQVl+ktIOF9B={i{Q)b=fJP?mn5E4mJmY{NhB-6upO8P8>O#;DeQim;I$+_&To`mop z#b^E;C|5b1Mf89zwC-tZ9T2!_V^m#*xrmK!NQCjAT{2vV;{u2uTq@Q(H@bMT`VXcUs7E52>61a)Vd&Z$xdY=|fW1~CEwro*-(ndC6re%YY}>YN+qO^Jwr$(C-KTBawr$&ey0_oC5i=XH6S4O-QsuhOEVqAez3t|ANx0EXt}=cC!=R84+W8hm zLgj1!3MU5apAjcnQ`1g8T;^Tf{1-b~7L>vK;?So8jT1moc$5b2cYnWMu!p`a)RNlyur2LHv~%ds?xSIDqJY(@$4&#{`PW zvT3qb21I2P_{Nq_Q?i9;5gy95PgKF3rXdLF*szHm>`{yU+&p8$a z%=~!1!qVBbY5wTIdxeAOGHYS_p$ICU`M_TB0fWQEywi9UGYE zQc2pJ1T1fGZSib&*fuC8$<7D$vB?Mbd=7)fDS0(McD_$$zTKuj-PGvW-E!F+oldPj z+FtF^dtZKIDK;-JS>mhedaO$DQd;R6yI|h9F+a?f=EV>-KC#54$&c5l7mw{kG5oTRLt(r_adI6h~d0ZP;W>%P%Ow1tTz{uU%yL+KO%P=}GsZWhSUVh!t4 z`GQ4y^Mn)O{h-_5bCk*A;d3|f8l)J`Yy1wnMLzbOt4}MQmx^IbKUN;^4bd~^un!AZ z%k`#rGXNLmUGDa_1B=&U4%}!kZX@-?W~FK9 z#K*_MN+1)0G@s6#JtR8Gd)DuNsX_c`|EA)C*a9$N;|&6i#as7w<|xr1cV5J+?39sw z`p8(FIZV_}<}$lRHyyR$&1D_=J}5D)OLvmm@kd9X08=)o%*a&&RVsiE!b`-AJdY%J zE>OuKM-BK7OW>>Z+?*vVZ7BG^tT3vnyIuv+Ni3`@O{vQv^AK@II`+S)=H#AcAZOeZ6B7ry2-mF_Q%F>Lr5Ul}OgQA60#}1q zna#hT+D`62$MJq>$Ix7JVA~vn2#Ec@Hs{Z~ogL!6cg^VU=5^&L(85qEEaK2nK2Av! zqA~Y_@$_m!a+vQ`Na=|GmJ5-fvF)Fbftg;4e4a)pn3naQQL(nn?zn{gY@`y{v(bPf zGHY+78%DHxD~93S%0osviWh4)(h3PjmHr8$g!~7@*|lF30`t9Bx;(U;PQj~ik3flA zy^dX^X$4q$PJZNfepKksfr7Hp8+Po%;ys>^p3O>v{T*lfczO6%ZqsqB9EYl_O0`wU zJ74RIHcoG0&~Wk7DafCPx|{(s_NB@+gjNVJ==vv|Px`?p`q+~G*%Hc&W7-Z*iMw?3 zlR6A?zo?sW7u%7M(h*=N(JQt3J(o*)0LOHQP-Q_H zvlK~2PTiSFbBI=-@NX|FTE`487I&mdfR25_q@ZOk@`_O!&v|OpU5hwGu&^_LikV~~ z7I1*-aQ>4%h+yQkJzF3(&<>UBhj|D@-Pi$@P@~#BYbikGqnyXULkEK)8UzAFBf=3J z;zSO4ANqbAJA-C>pp0Z3PCak2{{&^gvB3Jb*kJiIdlM&to8mvhtA4uyx#0@TZygy0 z^lnZ$a_!9azVm3Krv`P>L%&YWuY>T2q-rXU9-&5uD_*j#50Z&!ukF4pjGGdHVfVin zHIxd*>;~g&n7sntB(oON7SWC4AhxP_biYf&4f^otpjGne?7(hi-0ib_NRl_y1wJ-B zI;76k1QYH~@BmXZyt{Jnb;-LPa@4k0xn<4_t>{SrS*L#_RVT}gxmQ}f{u*|mykCwX zHI~wF>Z38?ka>Z|P8F!=@>F-M3Q(%AordzdFQbtA5Vfdp1l_`@u_d-wRj0grSNmk3 zZdo>VU*olj&r&7&Wk%~~D!-pJLP_v>gbEXFtKU0B?F%DHu!CzpY@jI3n^^dGsDa8@ zC-o0+&Pqa2N2uL%;*g($$0Ch$g7e?eN-e+TiYiS%vy<9;el4nM932XIP9|!q@DLik zp2RNpvY%5LbDd+l{(lv0Q4Pe{gP>lqK8 zE9I)punB}z&QKpJ54Uz0-t>cah~!Ej61$E zon-GWR=5{1gEi}JLCi||AU?JUtm$L3gM`gQjf<9iF|5@uCmI`*mS~BQ1lf@tfli1y z!ZJTN?(kDD%*3{s8SEn`G~qpgNa{t!U6W_@rDs4c{j7mlVJ>Yq++@16@xEgBFfA;d zcj^yL=kO`NB0n@g7$-ILmfifc?|O;8_OGe^wb1D5Ro$m`W0~X=4L5lQfj9$-|8;_0gg#VD*c$#Z5d~e_~#b?{xkd&1naPA2dHlX^!r@DM?@~| zhzJA2mmWnAEn~PCv*hX5l_;S#00!#y_Sw`z(!;R{q5mHS zBTA@lU@Zdb^v<<@g3B|u6eHUF?cX;w&5orpuFxqlx5d0g(|;f`ND?NPAzoNtQE5bn zKTz&X@38ga2q6E7?C2Yj z#fyz9>mve<2BF~xGA_O$P6-lHPDD}KVx*tXuIiRtyhzn(fB=Gqva(b)yZ0TXIJ=g| z;uhxbq+RmUtj%4@vewyMo3nqaHb3nijfxKjsfwGOqbv;lRg}|`HgS12$ujm6a(uQy ztjcwphmX^{p&T9k(KolF@a(T~?7Ox**450pBex4jt%4<#1Ie5t7O@f|+eOpYMdF*2 zt!idjoBYLkK9saQ!*(-Drzp^I_y2EO6Nm@6>!=Ua=i$ZxywX2h_`*#}?D4&?yxeQC(F?sWR+#09h&=EoB!`X~+5VN%mrW@O0P_8oM(H6EH` ztAimj3P>9@o=9zL$g3CZWx5u};!WqBFy?67p!u-&T<-?w+nkb?>Du>a$^#hmhhN*Y zah$jHzx#|#J;=RaPeEKzavP`qED zW5yKZNKlNrbIgfzd&fvcRITq<2{Spy@J9K&VjYD>CGlvda;S4-%*9?MeD`9x2n2~C z3u3e3wOzBU*8$_Gz*(=&&5`@(nK!WIw|iy+JUqK!a4y7mvGg?Ln&$IbYKOxOZ)U5Z z1>AV$dI3NqDfzhc`SMW6v(}GS-{=DS zykYSG!vMBktLTGg(f+HP^wuAoZ1$e|Du3C-8~&D2U_`fPpa3|uR|VRO0>NIj1U~vg zTIJ1eN=xuhnSw`E76dy;&$7V-#Z?HZAIx7DnyY|V8mFXgGV&hF1@<&aMKTOY<3?D! z7Yb?k1Gy29JTS;t)N3$|WeYjTk_DMID!d}}?oYwLLi|m0q>i~{6daiLYDv))|9Yb?N`*8t>mCpS>mY;BnWnOD^}9ba z1oJmjck)ReFTIL1PZ>FIoo5G(ioM*)5+6YFfDXgU1$?0SFo$>I+#}Ea0&o|h;UaG5 zWw8pL7a#!Qt)DLg9IYy*gJ-Nu&z>Z7<2%~rFjwlz<@@a`N5T(Oi~KQ8_4d@r5mpRj z%^Rhu{t#|DJSkgmg(591jG27{jT9!tWQvJt9U%O2?DWPhvaiG?^WZ5tsd`Y~f_h=tRw3mfnlWu0D z;y(u#&#i&>H(#DL>$PYe>FIp`lrd2fdt#%oVlI~z)|5~(f>=!KK*q}G5kA41p)`3V z2cWDJ=Ki(AzJ+d;(;%jN#(^C~H~u`qjy3>&hD0xT)C8UouL5|3EtwA$9AxPr97b~3 zx`|+YHv4v_(JpZR%VdA23Wf@nsd5RtZ#{?)6V`DYOLH?LwaAPnkGED!u+=?^E#7o$ zF~yhb-{X8exQ2i|em*vuu*0!?WGjd^SO1MDza$iZSZX=@Ai9wf1SMf3HfW@tO8-CX zX9VL}Xm*vZo8&?{3ZavnPk;-;Prb>RWC81V{b<{TkwIQFGF{5am6N%Xb@KlaQZ~&rZD#g8+Vcz5;Rq#t}tmaXr zN~2C5@k#`=#=$2>I{mN`DJlr(bO+$$IWB_MGb?Y_LuwV!We~K&RMI1L3@v(gsn+%L zz!}v-XcIl#*q^z@(j&L;sbCJi%4MGdq6a3T!CjTr#YW?O&*a}22KUy0f2lqpa%?Y$ z)$};->0SU)R2cWHVBsaPLbBq8?xIKIm%6w{G>$0 z0qmN_+nyJAhyDzUYNmdIK$e$Q+{GFwq|?fDV@Mqon(%LjT$~1nCp(kLD9^SkQJ=pI zG$>u@tv(AO+`$oMK)tRDgseAcQD1HFCu&Tmq9OZmMmg?e7`5;O4GifzH=;Y8>tZ-^ zNgr2CvgSE0#-u_`q@@M5j?EmDQ>_!okJ5Z$IOxNuH^&K$#NgTs4W~#!C~Uohf>$Mt z@-klz)Auc)y*s8uF&ZV~=Mj7h3z7fsA`l{_du~n+Tjib1?L(v1MuJ6$TvaaLeUaf;|%pqSeVrU^tI5iunX_|uwVxTL~+o+rHnt`pp&zJu2NXE)E{6t z441fogN04G)B&OJRlh@b9RZH-BA7`V^t(sv1d5!rCtgqH3}B8HaDX)HSw3L2v&NNi zs>i^FYTIk)5I3));)T1R`>fIawW&YMNyc*%QoIdYWkx12Wo4d^9k&`TeT8A#G^7Qw zM1KXzx0w>}CRDohuGg7Rdef9{K)H2HEi6H3pwJR#iO$7jF5rD!Cd2!i0#M+6CV!Xk zIBvz`g6Bi0$)JWhhIDStCEZAYdM}Flw6KEY`5b8Zcp}Z0UT&kB%(tA{p(9g8_+>#T zjAEh-00e~!DFgaVb%{i*2L`2Tw@N$&J+24~wDcDZ2%&8r!eb&eh&=S#XHPDrg`j#r#mV1kmN_^u(+dXiF zUwJ>xTMN>x;fh)yFS%)JLz7LjeJ1g~{P&FVBg&5vPO>y;$Kszdqw91U zPBQb@#=DxKb2v}CW*o4lLk%f<7Me{FiOz*DGd~$>b0dea(O7p2EkY1$%8}a(212ev zU+GvFrE~u=^&_4hL+_`U&Ni>AT|q?_w0uM?L*dGn%`nCTvAETBES*vTpd0g|%Ju>2 zuLQ$~M1(ix>TEZ2ep>p*&Y>xpQ`LKf^w34dtqchtOD!9hO>+GyZ40PKb+6O_?G0C` zJ1b62DZ~-tkS6jQX(do9HhfQp*&yi!-2q2nYc|55`@!m3f)7~r0@NB=A8zubvE2i} z>fp2jeUAoLBHfk`7z&6iB19(>B~&9O%lHQdTc(XreQpaa$W#&KV69GS)U8=91Ta(n zQ;JdxC;1JGDpiqhnsjDo#yilY#dNBmPs4fzM4+QFc}!7%PE!u8bF^&JV`A*w2;inj zyGKhrd+}^9R~n3cJ1_ea%rAEbgusR%L<72XOUl_74~OlJf}7j5^l_b-C$p$Pf(z5B zPZkH(rR)${O54POF5^bJfmADlhl`_DHMvLsDG&psrbU-ZU~*Oi>ui1lTQ%dD(w@H_ zdy&A^(0|j4ayC~Ci2~zLrljXrE!aweOImE$Rl-+P@&o>1d-hpWspzr{?Mji|k9`GL zC2PL^L10P2Y5F`<_Kx9@P+qV*sGYyadn7=c#cr}Z6Nb;>o3==LrL76MFV#{>Q-I+3 z)G8Y*y3T}JW;Cww9EoAPiW7axBJRqeocd}st%|jI^FRCJ&UXqsc-(L~Q*{k(3_l$9H3F=ZKFHxZ&@2UuU(b(7_2SsM1W4l(ljE{R`PvrSmnl&WEZkk7rOkRRequvAs$Y}; z6@b>_p$@#hf!)ZTB6ss!z2+@3~T!5{2jdAFQ;JPrhh` zms=O*lEA`|4VTfp+R4{Lr19;CYf6)H=pr4_7NCe1Ph%@vWw=0cmp!%+ydE|SLtLKc z1!mMgT*tU~TTz!ML928&62I+y8aIr`383lgFupzKCZ%*%(~_@$4OM6Pi{n?zRQgL& zSFk03E8FSa?9|+x2YUM~&w`m`w&v0mYp+ofpPaUu8**H=30V{kEGtg_`GWIVK=xka z$B)+%e_E|L!7Gunf(y|EG#P~5qDMZ>(S|9MoO+QdXwvN4EUcbQRt3T)y>I)6+g&H?{i)dT9%w7i!kM z=Cf8QMUV&bOPjG2lb59aK$$N(bIX*Fv6bVGEU7I!Lduk4#*eZaIbQ*kX6MRgpNLJV}T{_ zR^5|xyPLH)E&EereClKzBvKO4UFqhf=&7WprJMfck^|&r{R20eI(_nRGTn;a+pwzyURQGtR4Fg;Fp&^(f?vq{FnXk zAFG0ek?ntWHyQsoJTBw^9UgaCOWFzb*Q(H5FQe-0betyHD%jmNQbY4MA(|MW=hPk2 z@F!8Af&fgk|GIV3{g=tDHa3(}i4uaby}9V~k$vlZI{*85l=&pKkN^I9bg=jBwvjbG zSq1#zUBv#w+t9smCZO3#QA(R}!%4@v_LXxgRy(*Gn0)A2tsoFCNp|?%~d2yKNuMA3IWw*%MkO zNqG$vy{?(GhtBTJZwt(W!R#Fr1b07L#D%mobRGyf%_Pn=cEJ9~!-HYQ+HWsib=|XG zZEY`!!Xp;6$-~3<_Of?9;(;wey6FLxRenlYBC7&fEK`0SCJz1@*R!GB+sVn@_H!tP zzx6}??fy1R{C0ZwIDHET7ss}{Q|QwgWve@1IhiQIqmREV)(_lgkrBz zcbTf-;2j#-vt8^Pf*^>L7~#~6RA>HWghO$Ht)(t@4)@lXoQ z4T=HK#tPN#Gh*Im#z`tXe7BExfqN~y_nH%6-nGEhDp60W&v-(Wvm`4rQ;5t#5~xm6 z92#%jKHPVG3CHH=JlwzUHy5bU2Uxvx!IH_*tL6)RNKe_;*!CauC!1&2(jq5baV5jn z0#A#%mT-|a(y}VT*gUhg&TFXOmt2uAb=j+qA?aHgAQ8k&1;(L-f$tH?8^G6ih^4*a zvEZH6c#K!Zovb)JartWg0oiY_%-1FMhslZOR;&_JBj{uevz_boLLz+; zSSMeCKgOib%%rb_QYIUQ%G`?8U14P@XkJq@BHA%Ji(3fjUnV7WKt$e6V*-4V7KXW1 zpRKuh)2KELTrS*q@f3ZHu2T29wZdZ8+&mdu&yMXd!I&%7Pq8h9WB97kOFN&DS zYzOh{WW7TGp)Rjukm;$*HaHOKZ1;Y}uY3SYU2A;Tzp>umP9eKtItdZgmVg8ed^Apy z7dqonm*Wc1^x>xLKvlXI6i>-EAZ3&RHQ>-L?9GXuPCFZ@r|C%t*mr|a2@p3R&d%is z9E(oZbnIpiic4fb`2EX6rt4qX<&zL7S;q+P}5z>^(FdGFB|M&<(cW?#OtTL5p}Goh`YZwl~&-E=}6f zhxwls{n11ap)n%%Pe1l$otP$P16+a>hNA()!dv}@!N0fwEk*LVQfOBKO5HX3;W!vZ zqWu(4cS2JrO!Wk?#CCyaw5P^5p8N-BiDo+a17{{%_#+IpFo-8T9Pn`n?fwix*oS_= zO*}K1x}jzM9o@pwl>x@IO3gIhne5ThkaE6R?xGEc2Tj2Q^#)&6ni*eEOB`uFpA{;~ zi3AAhJ@~8b{IUia$O5rqZ|hiN`1b)lqBQd69?~-swq84-&XI*@HtI*H528HNE!Oe+ z{ww}!k*D19E1c6eozCR-6I=`Wr}fqbtYy?081*+&$D34Rs)V#eer1oJ; zf0rsr{?b|Wl}|&rmKF3KpS+aRyX|T_%#Kv}=hDu-Ts4u1)VTfH8YPA?XD4Zl3DR0r z-HFv*xd~u)1rkGdg1;5@jkm9)4KVc>fFXd~_kWK_7I`jOLo& z-bp}+wrPVw!Ni?1H;z=^RP*4)!-yG)k((F>4SH=5f2dd}?YkVX4m+*30o6wBhYL*rn1c{znVVNicTSZ!K{3+t=6GPqYmh|BzB?8 z(0t=i0%EbnqhO1F6O;^9*|AW1%R@ie4-l+pk=d2H&IJ_pD8x=u=EqVD^6bA{aI~=p z9<>h=3W3oYlUMx7U|y%e=v{!|hG%K!D=~>+V6&@@Hxqkw9Y`h^D;wdd=K_eQuMqszn>C+sUElR#Z7>A9vQWV0ftQozl(knl7i8_#!DjH0L0dK)RF_T< z-TJ~95mCkT4#lDPg;>tWS`my>{~GPvb)OU9GDjTJ^|e6hKwM7-9r8anSiH0U%mhmC zuVwV?$GZm^j_fX1{QYa@4JHYDyaKD=_R)59(Bzh42oH}bvMp=P z8W`0UO3^Hs3<+7~r^^KwRji@$&|r6KJPSb$86NmR>XPp$4okn6kyw)@n~|LxX5*=O zbmFDwtToz=Y=pOjd$fXcT?t#DI7+(=kpFnr%IL^*`#u=*T5+BL%(}C_yvjN<0j{#vWgAL*9Czh?|#L5fL z=Qz%~@%ei3kVBZUM_P5SPhX?#&duXAp%jujRh4 zD?T_mx(fK%H#5twQ@{y6Ey85?{>RiXk%bM@c67~oY-UfvlWPsJOL9&PGjWHNd`&D*iO2?ou`@qe zYHuQ^u+ejN1DgsV^!7vy%FPMG_HzcM|EBy=U*SON5<={nz-a^i%oG-MSVGHNYh)OA zwU5C4AFNqjy3J~6|PWiMo+4@s5JacCfb-W0Pcv>x9-p| zXos}Ezmf&dy~RnDnJDvc(eg$ImIvK%TiJNXfG<|-&;pVKND&Ywl+hIKF_n3E(Q?jq zlxYgxP7ORNp&NB@_!Iq{+Z>C?QuLD*+O=c$4*x`15|^n{$e#}@vFKZo?GsV&+yEWm zJWZR|D6;&bX~js@*y%ktc6H)^gY?R9Vd6izNDxJS}Vzxl1oZz*jrjH zH1!_;sMF|5zQc4G6&**REwJ^UPs5c@JZmymquA+US4YSJ*_l~aNKMbIRW?R+nW?#4xk6z&64Q7&J9^jk7_1(hL2%WP67_UR z+xR-rpXybG+N}c=?WM$DF6lfoTPk}2GuQN#qbf6VXW6kqMG3AySSA0RZ^+Puvta;k zjLB%CL@!fDP*PISUfA7+wq3Vf7R{*xZFx6AH$1VpG^Gt~@E|pCHO1+>t_yC}Nuqpo zshyv2TZoyKxxHtDx{LxMeTp~zXW~(qk`ykoKB-0l9zP1 zSw+Q9!lYCgZJTz%hdkqhqOF>4*tV$~Y9-Lojaxkn>|NK-AF;lAn^}Dly6u^Cy=!J6 z_W|k*D#~f7JKnl6Tj2rQLb@siGBdPgeUMnpiUx$K2<&}6TJcU zAXuWiPNjqz#z-nT^NwohiIZtYzM_8$GB2kE?GNtpX3!6SCp>V#|Dufl8{*E)&h|gU zF--p(#GUE?65_6(Mi$PtRhfo}6xu zxku4a&Gxi%heK#wsm8RY+sB*8B(QELWwDO4Yox8)$H7q;VT|ux(a-DoDS4~Bd=IBb zv(pY(habPZ0s1o!sk=xCOGU8ZR+pFKznkvuVLLm#9PJ<9GWi<6PZ;BQ&%3loBuY^igx>;T^KJhKUi@PPA8>v)J%HoGzGI5uR>z zenGi&^x&mKEtyrcv_YHyXmaED0MPT%FMpKb9SS`v@GWO$@roC^aPUYVc@cQZ&+I>% z73`nQlO+^i`u_ac!V#*>kNK9>oRP$!G>Qo5;ou#&?m;wGaoBD1{RoWN@k-g@PT&sf zmM4606q^U8l9oE@R%+oPVRdU#jBlHsxLqjEl2;W0k*W2tHJDFqQr7sH2M6gkrpoW& zA9Py*<_%U?bN)3(Xy@UM{LI@rJi8chU;q`~p1sAKOJKWhsi(z+iK>U07w{zrN94@< z2^VI4JM;PxSDUpXc!zq{mL~S_k(gQ1XR<7u8j~MWwbqr53d9934K}X7K#!2s?0SPiVJk*EbBh7$Io{2pYQe z1H9iQShRN;`YL z9t*?;ZM$^_c#+_%fE~l&=DekLtJo0m_bc9W@ZLR$+w5=Di1F?l-6R6Q$x496zAtJX z?ljy*o(iP(G(lgYYZVmh>)0HqhNv*<(cG*EmLt%hcf{(&YK59FBru=3Gdy-m2>*^~ zGK!gGb1Fp?+?g_kYyPs2ht zV*3JuFEvIH)C*1sKuhazi%0&jq>wU{UQS05@UphFGs>gzTI4U=wmI)2fXMEb4%$ai%O~j7W z9P7b6UMoNR18y73#W`0eUhUO2 zI2bt7?Z6@wUkq0tg_yL5>99TkTB)iEHZ|)DA zupL|$#agwPEfUA2pHm_Z74@K|82NP#o)N(<1#XLBw9x>^;wj459_UW)s{IOqWLKg? zI5bmi{zvp8_Z0CQBhbrFVLtOandhs=YssBIU4rV;e){$4ky0NGV~=KZ6e*t3UGtgZ z%t9~&RSlX>=7Bvn2x+>OGX4#QFlte#A4@#o23izt9vbB&F~}cotH9otB>KN9r6Bto zUy4Fnk~s2v2eP7dcb<`Chf_pMsHiIIBfLfj^n)QTQ|-6_`X@SR9n5 zI9SQV!yrxShFl((wvr6qaVV3tO5dG1>OqzGwfG^EyIq74F<6| zHTI#PFE~L=-wu0Vt}q)Hel-^zq^6g(l0rm)KUKj8)E)y_Vau7-m&Cp}1nBk=Wq`@J ze$>?>p2Ts?I;VU5C3Dt_+3>|DC+jo&YUNAGF)nXCb;I}_yC1Ovi!m`}` zk5LgV;1?E)DKtx%%nY|7EyPEiSRFM(DZeQYLioiVuV$xxA#D#)$~D-OO>Uh}@l-mn zHW}p15mbAWk=7;0X(hQh`$RR$1jn?SrUyC1tSx=uVE#G}Q=--E)BndJ{m)uG`cj?vz;@k`-WbTsj zA!>7O6H4+tMvW*Z;T0^DF`xg4P8up@oM;e0pb7DEfTn*A(zBT~KAHhRX;O$h4a7=S zv$)jL?K&fcFOW&wwsuLB$8;T9EFl63IzypKdL0L;nCM%8j1 z(0p4OT`RUm$FZxZW&jqx>i-B(>2AZ~ov?#Wb$@kR<60<$Y#4Cer*(f&Bgc^km*buh zM`2@T4eZgVZv^@ZWH*h58Mj^plyVpOrvFx-^OGFn^HztUs~xN&TiEwON46H0x~w?*9Fk0-Zt20whCUUmjC!KoK`x$=beJ zPJGUks>5wqNq3nIIlATqnHTepoiKAnscL(@7rWChU#{s~+FI=DpklJqZi0heh$Qk3 zKrSgL49O0qUjB=%qZ(oo^Z0k0L8!lKicrDRYrG<#!!k<#N-5o#o1;tufWn*7Z6erk zctaaCoEZtlHVOi1M--WH0Zh&%ZRH}%g)_8;W3*H!UEKV_ZaQtI)JR8o8>M`5MJcrn zQduXAwgJyG)X*pUDY3v9Y9BY_i;;b?{pV<%uOz(1X)WM}7$b{KpYS)$VdbyzsJNq3qKT6X}r8~T_bMK3)7;}K669}9c&Q6!&6pf+$V*P^B z;hH*2qqyu?4d zAs`h7t125+M$_CaiAc8jbYdd!f`5%N7x2m@TXET}-6Jn}BtBeaVjtS*A@CPOE?^d2D8 z`GK^wEgm`j`X04%cQ`FpvBv!6=< zRouVeV2kC6N;#5kmYXRKRbi2c@k*sxayvj4nCsI~vP7=~)9-x2Rk=hTnvi=`EarHd zyVXCtC2hE4OQub^r-%Kd%d>Y&{pt^!`*9R-g$$PNtv<9DfXrCT7F33<)d?2+TqR+j9CAOGGZh}&ZA52daubN}y!N~YyQ=Q#UjW#bYhCpt}Qpc(XlcYcg5y}3rP@j|9 z2{KQ@=g$@bicOXV3KE(%--&9P+jo>%%G;Rxm6+%?D&33W@#MV*4uz$m$R2T`-8@#* z(xas|3A@Bcw11@)wg^7_C-8BMGQY$?6vd6)%zr&&4DHvM>j{@iX6IXAKEwib`UaDar>&6 z2__V*+ zfL7w$VOLh29jgx6T29$G5fxZ>#0s=&F-{PV@8SrWhOUP9@k3K%vDuVx)-U0Jq_*ZC zHX2?Xp^RNFq@8+;R2wfnoJY%<62KIa&kSRoi)kOfW0H)H(}%brJZ}s~>TX1iN)I~1 z8T?xOt>qu8kyIB;HDzs{j+L_}%XD$73WC5UTB|v#Q0M=8Zv5IvxcpWHcrcdsz!$Jm zQfb`m>e>v)_FxSOdya%^5faLGI^9c-e6$}5NDBAvPnlN|PaBoIn?jAbL(7b+Xt}N+R5>l&s#6{nY`(iL&3JI;sF4I=d`TC~M|dFX-_Mbh9EG7&O0a`7VT*>ua7i`f)b^s)<9 zX_-eiGljhj;3r}s3L{$?)Wk1Yr3o9iwA-ACi&9{xjf0Fd@)}Bxv=y!i301>+N4~%1 zb*>HZ&#sf=7YVE)BH5nM@RMZ1N7f+l*vzHo5V$E;=knQBY&%@V#6?cq9HQ=g|KYPk z!B(f8d9&5rF&ce~awqX1n5v9Qhk~(m2q`Pe{xW*ih%$rrkWUn$RYgwDVCU!wMR_N| z5M%Ogmwl67|GJ6Ohqkk0<}pfV0qy4S2pWCb;OKp%fxVq|nDH=z58U5vV1+y~S4lx@ zRXl-1RKT(Z(3NbBqqznST-W4|mYlx|p6ZTI0yZ#np#9S%T{2y&s0ykTE^|Rb?Z;$v~OA9$idO72= zsSZo$b+C1^Y58Wp>kS7SaTz8>+Z`LKV>t}78-2D=i(M%VYwA~~m%bi_SvJMhLs~CB z(!5Rfm#*}=V%D!hlci$fjI1N45ljOm5uZNN*=W-@( z6HIG+B(o;Jj2TeIdj;H6H*P&-ahmjtoZ404$kO*43vYPPS{Mlbde1i_p_S!X-j+bm z2*pHa#6?55U+Ok4Ud~l%e+I=PX{-%EM!qCMR7_2H9a6GrAe6PSvhf1N`!oFubDoJg zsdh1+PJA#5aCzK&H&5kWlC^8tU0Sku^OVW$4^8w|M5e3N$w%5YR(o%{MUl3O^wMX4 zfQ*RximEQfwT|_s9U@5@%RcrrvKAM!ky)f$Sx2kHm|_omUJ;cPno$RG;TwmJE4Xym zFtrfh4?FX4oM`-FdCf}t0fblTmH7YqH~+_z`LARH3(NnE@G<>268--Gc3Wl$_U{6F!MT;0X}$Xb=*?F7@9DOx2AC>tM$|UVXJ}mzM`2 zsB!ic%*)SbCcNKwUVB=NXD(whpT+k59&XR0iY|98?bzgZ@#aslyWdymFNtY;DKMMc zJ%oUny;;mso==X(6aG)I;q;7+oIduuM>c6Ubo}S=h^_}o`6p7+lI?C`920iy`06zK z`ekzbKf#9U!Ex(bc`QFCkI&&Ir%mK92cGMx7c2M7lm)uJ^c+@5Ux&@xQXPMAqZWAk zIh(J0QEW)N1Lyu=+YBR2?>H$+kdCW142JiML%z3rSFOm~ioul|xki!S~8@!9dc0e^6IH@qF4Kiwav zNjF-tuT3ulHO%>q-_lclkgw)`_i0|l-5VxGntZ^$LROh`H0%gAYgR=&;$h#g6GG9}THJ^L03((g3lOiYcVX63_%wa6gyT!UJ{&K> zERDVcfr6zZYvdJ|RAJz=_8Sp5OIjx2gP9u%qLufsme@4YC+kZKEnwI8tV*8PRC{xY zgzNDOdDJ>&mC)o*J}#n+8Zg_=MCUNe=GAQQUZM3}A+xM~RUU}ctyrsl!zp8FoX2DY zv1BXnvRy!D$j`dLigRO_WE>dB%;UY9>q8T?g1^6PVzmK$E*P!MF)RmUAj1MF#)u3k z>_@WJHG`6Kwg)ALYZ~B~-z$lAFjQ^|gv--@RUu1UPCDoHGb_pitl~aAF?KSf>;vvE z*DGK?h$DIxU}l@eN~I6$0xapzE9&=MtiG;?QxqBWeiMPs*i zs6yk-;u%0k)&h1)s6Yq8M-w4D>AAa3r%Pkj5tBnV5q@q6RD3r$<2y0zS z9?y2iMVD9X`P~qKKQmkkIt5 z?cr>YKi~~4M1P4gcDlKLB~U8R>F)X1Z`EUKHXg9Hpzk?J+-5idABcwt=g%=Hv=%+h zT=rvoU6W1X)c^uqtij4vW*df|UPtI7{odB)7bOMVtjEi-I zJ1n*p*-}BMCr|EA1@*T;f}Qm$@4H^s)rjIGv~)P$tDkKJHP-nB7sB(P;0Wzi)v^z? zlTIBJkTKV%aUaPFT!`OobeMUNe|pZ*j&^zBB|wVB3TzEz61z!oM`Zb%bw2$2bct?4 z<5Q|lqS01(jxxoQ!u9xgjG2@t$-4*)ZjlXXgwTVs9|~Io-AirF==B}u0*l8cB%BDH zTof+#RRe~kz8b2I!YB~|5813c=<#Sl8Cc_WU+<{?mi2o*$<~Q72;n_hD}#cT^HoRi z@w13Eb2Sxmkqmi=h^b%6JRcf^YeuovXW{CSs;XkyCR*$gcLLNY<#9+{@~Yg_BbuI> zYo@pX0)+Lp2CP3-8rzj%PiLZjK>rnq0GlqM=IwAUDU{17P?J>GSvXsFq1VoB_)g8@ zPJYn!aq=Nk(T2{R2P!ff4MkP8oO$$ZP}xU>{l`S==pucr+0c#7ys$@$@{4qX5JuPF zrfb{ugstiiSes*h-o-*%V%tW@gl*s@-$3h*CAOVz^t!3X;UrOl1=;!t!?;1G(@ufXA=2*oyTMIQ`Q{s_o3x9h;g@ZFa5G7dGUpk?XZm?1dMGx+8u=vY zJh|m$)>QWYF!oNtl?Ck9ZtRYobZpzUZQHhO+jhscZFFpQY&$32-(UaU=hUt``z9AF zcdIh1GRAz~@m%x88|#e{|I}m=G`8Lt!Xlta)PIPOtp|#WCp@W(OlDS)pgI)^+(VnP z`x3zpxNzT-iBJV5TZ3L4?YvD>+5FRb&UWk)bkv4TBn(dFMZOOxt>?0{<4d~;{2vlx zRRkTAEuOrY*qi&vO-UlLj|aU+EV7k-X)R;hITm=WKlz)4;M(o7yWq-LkN!tOfPa$^ z#|0bA(|ZoXJ7UTxgLt}A9|7qj8ZDLSIR&uT<|eTKgXL2NwzbI+mS(@2U|E=83P$8l z=5I6V?sjU~CchyFm$jS9Ff!G3V%7gQ20=3bZ?v@WjX@Ni;7R`ngMieo`&^tG!xdd^ zeAo0bKv-5 z$etK~S^V)uo({AlF$g@(d#TMd3pfqxQLS5(`oA2++yCJpDAIVWywD0zN36hXh=IGYKRNxIYH2eDdfxY_7dZ{i7f*^IBY!W6?IN@zGFq zzFOUIkcHdY4d-WGu&3(?*#giNttPAtc?q9pDnq4U8`0buRB^81^D=wRgeOF_tE$G?75 zQwD|pqafOI9SS*#6g$wrA&7K3hjUB9(18>&I;UGF*N?8^A^e7FYq#6$`%7cVzcHTy7%r|~q-1!Y zQQ9un2$pRqQi1GVpb%NZk4#~4v9vDnFq`p?mImh}!6UPMRrES2zfI877U>}?#rOd< zL=Y&8W~m|^@i zcgK|cxEa6MR|KG!S0w2WokAv)OF6jN{ibg8!bLMH#Q{W>tT5^EN5on`^120wqSZFU zYa{B>bkpJ7IDTrBsGO;+2ZuH`7|q!gBWeM&u$rw)6Sd&d*=fJexQe~cQu4jc7!_@6 z2*F6LOP3GSx2LT zZq@JjHG>#!-sVX<7tx!!Ri`rZUmZZst5p<;u1t&2ve^~rs2EVqIrsItN(vBHqX)9j zQ9>HZR=FBN>)0%LZxF*Jn&>H+y{NH&oOWJv`Vz!nl2luUo>=%ocC(wBy>@|5k}p&F z5c!B_9>^TU6z#`ve8sW)NM8VEuQXu=i`<`slNPqitptk zC8J1N0L|BElO4(EQ)FC-R3{W7`v!WE|pK?lUMf z-rx+}%RcWT$Aaqv{uc#7Wu-oUNG?&8OApF(p0xT$XMkpnJrDTGDW`)(&2`vGQGptA z40#&g;(;$jkKM#Psj1zg8RVhg&Oy(>wP*!kBKlCmnA1W$V{oh8ce!`4S|m>@%$78o zdL_kPa!CG;oJ6x-vk~SKZyN>J_cwL1P2P@K|DTSbx7dp{b$f0x3=98Nfjjk85e=p9 zqPi9y-7gf=Ec>pyfdk|kcpVq2J*p-7(T2J)=m(T$0p7y#RXb3mgz>3tsYXr)3gc)w zF%m6z$Y*EE78%ev=;U;hmgf*Vv#Qz~US2(SQ+;-IWU$~%?z~YuO+I3*Q%LD5=Y&N` ziE9%!<)W7$9sVEFHqtsZ_34V*k2zxq1x8=9cRL~k#fB%VYFBOcvnQZ3hDjK3nfqEsJRYa7sh zUx@BPa^iXWx_hZlm(E10dAqhfa6~^D1;7$ssX?d2#rX7(^_q zqdF~Zh3-^`6sh1;Z#H9RLQ}fZLNnuG4bPSmT{>tSPvgTfz-h0XYY=(u%(CP58;hSU zl9+Z1fNx!vZv=oH^cKjH2uc$cztyOa98dq41RQ43FziyUd<*?kl@%DJtz>!qom|fh zwnVpIDJz~Veqae?R%evF1vf*tdn5hU5DI#)lI&`xkF#kDlB=xC;T8oxpKFqN+s~Jq zMi~#i`;#%y(WOnXr2)=Os8?Cw3FZLM=u+TB^#nfA?wxqt;bJ9|Y5OsGUe;fl`g(?B zd6D`M$0r=Hj`Xx+Z2~N8thJ?Ap-Rw`H4fVRim+)@SaF-GZ8fpay!89k-+^TIq(HrA ziA66T`U9dK2L>fqMuYu+S=_B$;sfKc_^OnvxjG`!PT$Su=?>1xjGCiWZU`u2fPmA(sVi9|Na}gcT zpK`OeM_YdD`1dFE8(DXl+qWq($W5ijy?P5(|7Lj?qYuBwvFde?p-CNFCPo}i?zHDC z(+xK+COd6b$u4irB8-f*CXq`zf6Jx;8ucdd6hpn;5nMfz8n#$X1|%cmO>s&2-eO3L zHi;swky21_${>wy0sb2ZvUQ3|cA~>EqV6?PMlV1L=dK)@RX%aoNCLNF(-mBKjzhmU zMRug7ha40)nHM*aSLH?wLLV!|i=uaDhV+?nj=N^w!uP{t-gZNamH(mG_*Yi^D>fMD znf~uKHUs0|&9A>7|My~p@$cr`|8KF;q$%#IHH2bP=Gjfx&-2rJl2 zpdLhJH6{YDSzjkC;PX9v?rX*CC{_L-D~L?DXHsM^W683 zsGiG@KZegoeWaOBGCbb3FRx%r=U^+fG-)|aW-RyvBa@48oDFVO4jViHq!m_D>t~xd zf3+f>xVV80^0vAcj}~vl z;mTM_k9vDQvbCKe=xu!0+?zmfCm+YAi$Tpq+}14NjigLG!=2y1TitfouQ3*4f;v>3`9SWTC}G zC#(FjS4|1F2lg`&==Z!x{c9n~le5)VZeEAmog-6<5`IwUsvjBvib*D!s11Tcu6Pen zY=apWvwz!cj&HA)#9dszf`0++v)AVJidGn7FZL_q+Ii~G{LIVa@4_?nf zHb4rbSlb8Y2j5tU3Z44qgyHV@xm*%Xt#`+XF!1ZQ$?baYH9~lrTN2Yxv#=D9%2R zz30`KNt+U}9X2-r=R zt}OgnhoJa(bQd;uypM4{<2WVo35eEA5O)KeWBhG7emFIhvW>aaWOsJYjBnqi3h zt>5s%StBrW&wI?il!A@02$!+w1rMSy_SLQ|A`oYknogsU?%;2X5C!!IWD)Q=V+dgy z$enN?kj%ax$iBFsFulBZAj|Qy0QrFBPyw7mldpUe#3mRDJ3ozDeQsMX*uWM6Vj)Do zcfv4oKzc`*6Sxy$Mr2-Ma->DeygDe`NzTob5C)(KYlmom3@Iy_i@*YI0hohlu!cWG z+-{>iAWc#>Lz1UQ-7*$!D}_OQ_=Dn=br*G^O;Ylj=lt4<#fD{==X*E)^I@T-SqU7w zGna44hCcqUGC6GZbHZj=O?G?%QzHgG{2;bJ}q9}@O2wpZ#uVN>aRcMUQs)c|xI^*t00klX%=Zf%_4In)GQZ7OP zG&iuhv0QYBDQOn~lWE6%ilX0*M?j@cxq2@=fR2r30moPK>(C~_MBXL67g_k%@JNCk z8vatF=XfX1j~%$$t1O;2(Ro`2$#vV6Uq**j)dgyC1nMJ%UI!7oEY%PP0o&7B@!!|N z?)d9+R;x(iM`!S=f>lN8WKQCDQcEDbV5(!CKKk9s1ys@-tI92d0g8B6Tt&b?vc>kgdq|VbHo7$Ty#th7XYyK35%E_Vuuli_31p|Z$;*9Fd8ty(p;cE zS!2GFf1hrH5Dk{sPLefmXg&RvX>;vXhQ*5Kq+{*sk^7z95t%4&ic_+1LAN(Db zPoO&&cIZLJjgv}|CL$UhT((b_vbW&oI(NHx)dxl**?ULV20h?NGuN7 zNPn4YFVh24KcYo9n+q=XVf%}A)-p~J49a|ry7)kWh0hB zo~C&4IC~6K6S`nY1*or&!|Pi-EA>}OPddVksIy6B6C$o$?Tbz%M4^}p0zb4n;rcEr z>O#mTXiN{snVP;`+xYa}#Y`96HA96@2^RAU{~;HhDM3h9;psq00c5%1XQW08Q}U3j zp=VVg2Jk05uSrNQkFXheo8O7IS7R}cn_|I(4Fy0*85nMrZNiRS-I-}vi}Ao`a=W2@ za{{ZLCi+R`&*5`yRZiZNsoJnkUkn}Y$%h}A!3#9fu0ej^sn9%C?g=UCz2a};dn zxIw>Z6R2y}cB@rEeV2cd!D>guG~|!r!KM>NYD!gd@2GO2_j=Q9r@GQ;*qP4>_QM$8 zOFS8SZOCLucM?|oAiDBi0U?}D&C;dbi$N9hQtGrdj80guEAQ^CM?LoPALZeQzHMgT%AO5vyYfrU-g#a9F%vF zb_p0V(MH=|dHYH;%kxU%&X5Qt_lTa#gkhmiK8On%Lq7hgt+=8JwCYD%_qWhTGM1|~ zMPx6e5oC_mT32egUGy-b(xOs(u&B}*yzOW)%{KM7b#meoj;kG|ByL5rIq}>YlIMPU z*S_^|H`4rK5YJDt-d3d;4@p_-Y}fa~1tPw?Jd(btxa;z~UX%Q(1xQXhUBk8ph967A zH~HHmqNlr?$dwbPN5$-(YT_^~+KuY`!VYtbo)|}?p3)N%h+mdGX}!$=f8=dXi(`{+ zt$=X zlJbpTbl=aI7i-kuZ!=LS5@7kPUou=T*N}QUI$n8kZj`gA3KNk(= zki8ps$Z2& z9=%+FO#fL=K(QUsFj~>Q%--DHUUk(JyB(p1QKP>eLo8~`)I7q?_n_+T0OW$X zx}VY;|8TU`20{Rh5=c2vT5+%On6CR=nj>>rcNK=LdyMQe!G6i0h`O-)z z5*PK!>}}*Nbq79l=0u_)Wq>UN>NM{|on;tKFFa#|JjYIdAY3oBINl_3TrTHod^)r> z<=-KBh9h#rHNQ*D(QmVH#~5;gd%cVSTcii9|M#Y&0U12)w>n#W$$(-~hAcCXwh6_; z_l$9@3#3`EXLicBtJUPGq%UNEM7O!3=(2r5poV?%R4cu~8n*lL0Y_*wza&BDx6|X) z&tB*1Xj^emp0;cP^L2_%*J)hr+@Tr5I{1!2M_vIgd^s~Zo-$PgcP@`6m*+v5TZXitiQ?2T~p~_ z2?k;Rh;Cz8sLR^_PVod1^%SZZHoC~wjyqu9vx=`bWYkEGYs1;k(qQhXmsW~|yTu*C zh#vUx>2xHf3!iu`P&!&4&(foEhf~^?6YQ_@c9COw0o|@%xZFj8S9ZY4?nk`Qxp?g9 zn8%IXh7B=*o9J)v1Z9c0tn(-h6;V@Wz_7_>_}KwYn5Zu*tW?GgKjQw|90PLGP_wrR z4w3ta`@)$54T^2ip`<+j@gf3=?XXM){95R7p}6;Y!1R=Z2ktaeDJJZv(rXar z%G@$lxgTM0ax4c!36W~y;U*6W*P((N?OEhcU47(=VV$Hy^F=-8h*Ix{S2&an#FWC| zgd4$3*(y)LO(n-7wK-?yBQ+(p%6Co{Fo~gU)=U^3BUOD&q+x%T?c~OlTuB@5dd)@g zpV-wFU!fMsvkxA1V*Sv}e~!%}+A8#>O)&Ca^T}e&ZkTzP2 z{KX%zsslSN;O8c~z|{obzAhH$4<|%^Z3X9!x3Zjf(0&P$&DgWLQ)4ul_Z4+=K@(Ru z)w@F|+=L=~8~UCWaaNFiCyL;hV?!=W*O3Z>o-=*6Y%(}ETwL~x=T0J{sNY}r?0rQg z{XxQQ928g8P#Qn%%EUQh>Q}rSUO4Y3-hRYNH(DYIyow0;2x)Iy(Ot+~XasC_1u=-5 zDVphOOVPJ3871JrZniTjkyqXZoH>jQRw7Q?v=@F)5q7UV6xzl+a!mJ(2(52rnWaWB z+fzi#pwYJQP(7s?v=D8ex7onsMQH&}eZyoC5_ zO{9zr2+R<#uBO5qrSL44r~O@HWA>;@8zqb6jWNU8r1Huj--VS^yT463zCYn$Td_5J zTKbDR0`p27v?7jD+WbA&friMay;wVi(vWfH&zEhcH{>txhv}-H9352LEc2wQr4^QP z;gl6yjIFFGJI41uoggEW%bQAmrsvro_y!h7PQL zKsZb-ERKE%(Km)NHKRuc_^R>{r}}I5&tbABR!LB)ff74S9B8fC9>>ifeXJ=!YgO z6OcJTpVLZAvl}5ZXDn{5x9cPS2%5CfSlJGPFizScZetaPwLNm(EKP~Jm&phDayZgg z`NI-_d|5}`2VEQ|R|NpHom{|Td^+mRdq#`mseD_sN8d9LVyJMgk)8}uB|I+Iye=YC8ZR}d~D6zTY}xZnK7nx&#jg=O%5&w+*C^kXbo%0 zOI@pa+HFCka>IOsem`-t6NB`Zvwno29|>DUfaUANkSRiO=}qxAX)1gv4SW-j)9K7g zt@Kz$Ql%R)U@pDOULlA**^jO^A{XN`Az9y)de9qKQwhs`jz)88AuszqwdS8P0E37y3>*>Al?SPfolY~eZ^JY3bxeH^?Jx*8n21$Xn4{g2Xd&N=^dNNo(^g) z2dY*R=mS0_p)9v&pt;5hj|)LU(9zv!*1&Uf9kC|$U{09G4+64O>|Ml~ z6ggo)xL8;E;alf^caXmK^QXDW5n;4h76MPFR6%F8CCZQL?67t*{OPc_@DQ@)@T`#j zN=54SN?{G1l#c3GoUxQ%;Xsb!vv60D)QRb!+f~DaXF_Y0D-W~Y$`tkwSM^Y^fi?+P z6?xD*yHdROF`YXe#a3*ZLsGrRdM%ivKqK?a*~6GlRfe<&yDNs@FXEu&WWegK+FfAb zuM|G1v{?fRgyuV0MkzHx?NX#s%UUo=Rk}f9q{CQikngemK{`u&Iz7*RJ-)v|E{y(% z=l$O^{P)3Tr(^%Gw(@^6`7!)&O@8XJ-vcwvw`}gQNiA7M^Uc5R<*^2+Aq9^Zyi6uPj=nCpe8N~)+|$>3%mGxS-u1T{uZ)68AS> zKl0}IcsQKhADkr~aUNOc-Mn=MX)m~o(+L+hmIWDYv^w7QWzV>x(duw>z3g;k^StcT zJf97#;tu$_+FWjNwmF+VJrEbI{*2StrsFoBI~NF9mRgi;Q14V>mwDP5qrjTKx7Zpe zWTcR3xuIvndboGksu=oaqjG8VD!KEGjQ!#duw|2CDbtZpJroZNxZ zwlgksAREZmZ#S!jtNE@>ZB7IkBd3O zoenK|yWhPPcgSNHC5IXU>=XKS2neljKdE&m{rtCnKrSa|7kg!{?F1VCxk8}n{8rn;l(2f4LjLDrZ3mkfYS%#ic!CA z@&^BhwGPv{#>t0W^+10sAeo4S#ML8atBK>@t|^{AbYXq=Cs3>ieqmT9>Wuk!6(%o{ z$e_WtiUSAQ!`F=?bUQFOuQOK4^n}?J93IcJi$W8p$xaHt?d|R!y`-Mx!t|kc(4}vr z?&x^%Q58>n@TY<07R}wg=i+mK%9b}Ff4v_FAHxWr2gHO(ExGuIxJl_Ka4in2cQ{Fq zWIhfqLjHF*Ic5vjTp*ds_UB%uWDD|A*iy|AlTt=5k47>}Oaerf2eib!F3`^Ot zb((1Vb&KZnTNx%>n!iR_C^Qc^~cG%&7FqE{J<5{tW zKY7>$+#^5nzgxcB)wnev7Z|@f)O0Y4*%ZM2p%i(Bz|Paiuc}rtu`pFXUG||bPyQ}o zgzztKdO~wIx-Zyb2JhIOO0R3ffr6_)#n!aGm9#YkG5~jbKylmAjKGrdFQcq_p1WWm zDZt435Fn!ps2@K^Z5zUG9}?N#N{x?>=_{MlmjsqtN{iDFppL~Kr*n89=-1P-5*MZ zV~7WKXSeJJF8pr8BoR=Om1tsZuMW#=$)iyduTd1}AV^)Mt zhMPt})9;?Jtd25|=^Clj>MUb)kaWk7y1q_p ziCL;{q#2Rl5OShH?LqC8Zu%oKOFGDnH_Y zEx(rn=#ja}Ru38DZ#LL~ibe0e`0zOn3OD*I%>8H})Ejo-vwT1zo86}1x;(PsatgKW zfU4@kdS)(^DmQSYvhSL>Ey4VL{)B#>Ah&*eM+C2#3arnPYY19^I#E%T8=o8ioxNa7 zCU+8Jp7a_bc#}--JrAbsX!VY|8APhi1hM8@o_X}(;D0@=g!-}sdo*0 zsHYb)3gzefb3*u@oR=x2$`rD`*-mZqc*^qwqbGp^1lu+q?!DHaFxLi!#OZmpCw3#X zmil^JhNu@ROM0d%WAhIk8-bREeYk0YM)u+S(Bh24(kFv9%zg8Fw}7#PWF#^u}qq;<(_o-o}YH4IwfH@U50>9 z<8R0Ho#fxWWn7C{6~g$E>BR(Rgd+zG&DQD08$e=P#;TwPchA~0{~i~-DM1QnYy{ld z8cA8q^Ng@+=IGvfd{@dGD&VJ_?_|oS6{voJ)D2F&D63hN8K}$a@7`nPA zn-?ykGt0_-3s$tFMsM}oGW`&F=R*g=9TWuz4bd?)xWTU7$-HT_@m6^DZoXZUM}pX;6dyM#0rKl%gOF$ zvclukndFczWDa*-JW*47u_xCW{;PX&sm$DIZq_FP@Z%ZG6GX3w#k{kHO(nYpGk;xr zS@@5bCN5e|-UB5CM51k?UCDSi;61STbT((_fmSkS6n^n^&NEZU&!|;O{Pn$J^z?LF zmj)`q-)Fb|K4U5NJ}brdHqlhYn*)vv-`l$6-3(O@2uLS_R~aL8HQC?Wx~j>#b4>a{ zXwC$zL|SDwt-%>pkbUK~)AkW}Py%j+>~^4!7#%?L3p%`YCjPF7T^yxiP9^U(^g5TxkLF}_jQBt`YPr^5b<uj_?dU>O)LDcIh2r3v}6!76J0UN!2)Q8=YgUkKb z1#}7D4=d+~-@EnyddoM9UU5hVvkEuk+vA;94{b1Cb}$R%R*p8EfF%7^F1or7 zSu2i-CKLV!Ze?O=gFtR89{M^-Br^0pmzFxH^?=I+Co!=hH%V?&%P+Wl?YSq?&4SYs zv~xMOz?K!iH4oT|2mS>-c9Xkl(+70(kzvj z!BDpGg*{geR17VH58WAIq%2{9DgO0$nV8@j%VV~eZg@?g;c}#y35feD^9rL~nN3a; z#xcUtEOI8R!TO7qLOO>#V3p>gQ&SmHIuB!NkWZkI9pBrKc%OXd@T{02V85iZYL(FJc4yX0F>!UEhBg z^rlH2=t>W`Z(}j48OAD02M|_ne0S) z49J?Xi}!T~_PK{Gi=7D+I{YIbY)v(*J(NZWI}X70%cbXb#JO-@Ue>u$bi-{ST`F4d zAbohcU-obfilnAYHmY0G?(F#Dye}1^vwB;R?1#ktiK`j?moQ#An_w-d0M{;wmvk z)T!@r)l3Oq`*$%mGYrli76{TVfQS!hS^-C@Nd2m`wcc@Zt8M<-NPgy(^ux zDg7q*-P^;*?n(2{{o%_ZVApopR1d5UF4+s+MA_7bA!gdnV$xv|%g79Dk`#moQe}F; zCU!3FySG>&*5Ta8{xiM|WL`2wmn49If*2MwUYo@7&dYoaa=$Pw1*zIUdI5-VB-Tgel_XqQzkc{^1HQo(V@h}X} z(h>t*^ixPMtc~lJlQyQ&ngqM}W?YBgGpVfLHLOb*vQ(=jW3~Yjicy(#qInDirB}E= zH@IIN96t^(R{J)uSWkB@b#InGYIuWrMRTorIM}$>yc~g_rbJf9)N0T+o*;D??|g%h zIG9W6vU(HKrNag^*(jyv9no=i3R_6Zb}crh6X(XUShWULR!@=n?Y;#%K%!i{P6Gm$k#*c1%xl;FKrMHeP$#mf)E3lb5n_~I&h|i(MXjTJCJOrhG8D9da0jC^X-8zGnW8{o0UB>$G znX-V;@6dZ<0;{nmD`LBOwyI*UvX{6}yNxki+KU9U0%iz|ek$M*rgSc<2Pd_t2UF1{ zDvS98YO3HP1tOq0%tb)$D(Z;2#I}P5S3%kUF>hh2{ZI}s1K0<#_w{#)=waCW36#!6 zzQTj_d6O3U;sY$VjBeVrO2I0eXuv}{dJ5v(HKYp%|D$(sj0pzYEYj3pS7*459Z;xs zHxw}EVX~omg245dx)OeZ732GrU-8v}G1b&T>eOhW4G}fk(qEqr9@yMnXdTRR5saE? z6KtXgm{l}TGk~`> z4kqf?HgspceNkuuPgVfpIrDl~wD4up9Vs1r`5N>C6g#x-WM{h{ZdX6;A(uJ?qWd0X z>@i{c>e!euUm@oIAZaj`!Aro{2cm~D&QPY#*g+)xkw0fRB(HRU6w=y(RXrz~)!f}U zG*oZMpRd~h)YvI{I5#H4*#ww3&_e@FsGCe0NmiS}QSph}=kOmx1?CxR%qEc3^Qqs& zRx+Ci9rr@sc2VZW!MXk;Rzkb=(C#Knq>hef6SoQ*krpbo&toXs(>mJ&UW-G%u?>6k zq@&%Sf6HcWeuZh(F@K8z0Ar_L0mM6NS0^F;4tS@)6Bm>GBzxM;?f2YvXFsaK<_i{M zu}KU1F-7s<=g^-2X&>%D)+=9RE`+rg+egd1>%WVBf_VXa+?2<{QLm5(->mLBDidKJ zmqA?ry{Y4qOepanY7&Uv4{FKYzBscYpz$Zz83;jyPOq;hAlKvsbsDj1Q1P*VaDS$LAT*f8j#mfl2!^UW~Puo(AvgvjYo zpSh`wJQrOnfLK2f0QBy>Iom>NIEK2fiLcDQ6oI=Qj|Ag z!G_*On~zc2SrW^JDc%Gt*#HEEf~#TYTzJx+C|;dQlzewu;sc?J}|;G zHpvob7g#Uv4~DaQr3@MrClGtui^1|)kZfSxeJ2Jkpwn%ATMcZZ&Hd>!!gi6NRpfqQ z&UDPl?TOLd-=U8!kTd!nG&dP6F{K3)A>4ZUA4ypTg2Gv*8!R%yV{#0C%tV0moTQv_ zHHefQ@on6rqHpK52N z1_Ro3gKSGA6uKGdlYk5mMI|2#T3ZCKAYj4@^}R0}@Wy(IKbnJPQ|7ivE}ShFG|5>Q zN7>I~)MK@J!s2(tmQ5t`wo8k62|!B6RC~Qo6xo~qJPluY`q!ExFZIuw^H!L(CH&^snGb0i~360QLFiZqB{!7AcvLle9#ZTkcZAJyR9v-%mn;yr?g1{u7=&{ilW z<`i&Cw*`0`VMpm+F?FY&p_=%a5kkyN!nsi&mm*>NnSQQb1+0CWbMn0H?cPgsScrY^ zOi6?yGF6_2qDR4z>3x*CWM>kBpT1o_DHnFoz~cqT0;{)`-W;;{TwrLpPM6e&jasJ~ ziBp}ofrIRLGNBmZ>!duDEEc@1gTCrcO%YUH=&O<#RR}vS527_EGaB$JNhh%=Gd2j1 zK4}nsd1k*}QQElF8%Bg%!+A*BnWI_V2V5jp=?Airv)~Wxvb9N@J!2$gG%TZ`zz}Nd zmM@+kn|J6-Rfr9b4fOjS;O>rmNN81?J1avyJIbn2LV^Qc_d0W3_~G#P)BS3*oy4N& zhj@T4?-VbNI?MDn@T-u%L;VAe7Ajc7e%GWY>w4I_Ibxo5$uCwp{58b+)|~YDmPxM) zF8ZDWmr?sU?Oh!lc20+Z()6ntVnlMQ?*8vk-(dRJne)+H+`DBpnEvg|dHCnd>AF$G zM^5!xoEovsJpkB+L92^Ki441_T-s;k#JZi8Wp9Ooc9Ig04?%OI}}RJ)%%A#zl1 z9IQFbcmWi4mTIqaN0nrzLpN&)*{pD3bvVLs5G8fV8y%Y=breeOx$%$z=t0{Sx~aHR zk1K?hf6tM@W!6Ji1HlwKdJlfVN5g-=O`d&Z5U%qt~_G+lqjM9}oQ`Mx}mTbY0ey1GsGyL3Q}WlE^GP9SUFG>V*XKgZ&c2#bKquN#?nv$r&(#;RayGvFk1u23ZYC(lan_Pgu{B5nv3M&IdoKUf;K=A zrA-?)@w9bS6G>rx`_vCH5msnBw6+j=T1cY<^$YBy`2J{DFG!=v=Sv8bAb3f@2TpNV zx*|q9BjHd|+NLeTTc;`V8X8xu<~}K$A8whN;KfV78`Cc(8;Nz&xj5LWRZ{zOAN?^w ztD75Bzoj`D;2ccaL*)%xmNaI~#pOjYR<#{1-y)sgAW$JD1g$mwOL>|JF^CHETfZNQ z{z-FA{<}1%lUv=k#Q1Cgi7(ntSBRp*;vK zM@67Dp^8G1EC~BUJJC?SS?aqfWl-uO09$1S-*20oZT6Z7CYt4r1#C}{Y-lanBeGP5 zBy)^qb}Yp*_0feeLkX`A|20Tfb!hCermnoeq$+OuD+s#)DZ&5H6EQNo*f>=M6hY^wc z0;5+>S1SjsbJcA{t4r)h*hAE`l&c|X$?29Z{BYLlUkgzZ>J>PatXOYEpQ3X=BBgJ^ zv@_sI*9+x|fEtGlh96D7yFviZA2>CQ%|nnh53J{c;nZ{Y1fsR2oxp3a0zV&{q1Nc8 zQvqa7FTW)>(nC5|fD%>6CLHO3zG_>ctI$cFwDA_9)f{tG`Q^8NFxQR@yP1@9=AsGO zx4c?g!do0;SIOI`t8TtHjp}@OOL%x^#+d4{6E$bHp3dkIb&(&+#a@wGG*Pq3UUg|+ zmV|*9wNZ)=M%>XxlCwQ};9T1ht$S%JXOdB!@1+-ws7J^F(}R#+oA<|Rb(64c)SAsm z>AcSn7xRa7GgDoLkmub5F_YFe7(Qa`Fw`QyFvw#zq&8S0Z#2!nQoaW6ruuvVPE75-*1uW$@5lc=V6(FRZvdI9@B1F?7KCZ{PktN6+cO!as$tl{ z8St@s6m}hA3ifY#Y>^Q~iWqf~;n&+jNL5E@LNXVx!W0IRT-obs1?Y9=2iLEUsIRe} z(i)c*T#C{s-mdkzBhRKU_a~FmgIINui>sX3UJzVqa~TWYTd&ds(9-jReI7MN&<EN@5s9kXMX#Z_ZxXP`L8^dY#(|4;6n`BulKk@wE?`@ae-41hw>d0xC<<9aocV1gkn!@5AWYVsnR0MAAXp2=XY(UUUI7#nWkt{%3xL4}B{A4h%eF7P^{T%pz?<%!l1 z=kN^_poo6j!dDJEKk~S3LmmNi^vsAA zmLX~2p6do&AqcXjV7GDRbH0Ob*<~Km8=VD3MkTqOF~EBt{?f^j!2)153V!sb`Fm2q z{CRG#bwq7s&dCXyjeSfWj_Q#=`%V=IPC$9!3(l@t))fq{9YoBKDq(xX5b2pYq7yCM zCyZl`5xI`?58eSt{VzTwJwo|waw#{+E1jM5t64a`TIqY6yCY?s+$Tt1c1ebS+yR=i z?g_b#=G_MzJiR`O6qMUmC@6n_AfX^!?t*6LTSc-h7tL;PJB-}XGIiB@$N1ltvRLly z3A_akO(Z@0n}ufe@`HR3jl9u%6M`js0H#bpHa?UHqHY4i|)>;vZ0f!>*omyRW2GYX0$MSey~TN%{deP4_)n@6hz z1N;Q7;?~dW01q2v#|-P|@(=pO_SHP$|Z;s zi;sCjy|=C}HzZlhUf3Xy%QRUPqGd&Hi@c88kk} z&Ux0N9<&(Z4iZ6sRCBC!hH_Z11G9d6q&EHhlH>nj>>Zc{(Y9^Pv~AnAD{b4hot3Jz zZQHg{Y1_7Kvvcp;@$QT06Vc~KtXOl*F~|6*REu7)&+L&!>H=pnL5)dyM^9E!bRXev z%+y^yy@@0?>FSf@H)@dxI%UR5H%>7|xU+YN$p!EQMRL(Uen*7Ukk&OMSWt(;sX$p-CIt09nsv!S#6yX{86r7Jgj>9s7l-+=XXo0rbNk|}C99JUB7fs5Z zX+*RAglNF{s$g#CPwF2L78LbSmTsc%u%`f8eCJ{=z7JDT;8C0~O~ipR57pd)mMqQv zVLswj#)ilRFvUY-CGjeJ&p4h%NPSuPg!;+mGK*10VBx$?t4mIqg?KANGgqIF1e>ryMN|#WEU`E6)`HoRR&BDpT|QL11un>B+L1o$U9>~C;lwGP@97Tt zLahTs`$AxeXryi;&sCJ2L50Cp2Z8MzlKs+=`hT$Ud|5n)y2Dz?Xv5DG-X$ zP`;Z~&T$v#o1-}%tBD^O-=+dMc8h0SI1xNi`uFgxL=RLN!XTvcRvK_A4Ek&bDT&FR zi}?&+c^3|*^)H|Ay!z2o#de%D*FIY>0=qa6CBQ!^nxlTU;3p^I5B4JGGBRj<@~1gb zEudCb?*}yRHI%&K1E6BLo7sc69j~yZ;WPk{@Z__{rFS+Yoa&HGv^^Q!TCbwY)KS$t zunWaq9;v>Swc*2)w=pa*L@7p47Y|}MdP>uTf}@A}5uivFsn<+Q{*`5<%fhf)TSopO z2!VFGfA}bWPas)f1Eo(Coil%XK@b{8)BK*xd&n18!2m`%e7~D=hoxin5KqmE^j5VY z_0dI2$=9D6r@LR9WXeDcGC9Ll4s0%DfqMzM5qVACbF5qhvDB`mUK=Mi6LY!HSmG`w z)Nwk%h1)Y!6J{y1vujMZ!^X~7%~xp^O1TwRqK>xzw-}_|^QRa@vmptX&8PxBBJ6U4 z^B8JP)&G^!)kZK~FmD?Sl&M-BNF+e!upKC^2RQFfI8<#S2u=eFX}5MHgy@Y!HYDCE zA~M-cvxF^YbjuUE!u!gott*2Zg{c3EJd}#o2Gf}!_z9YW?g@3o@n*4C z9bRavbA^A!op&A^)sl53kEo`D1$S_eaP%5tken7F@x%ZxzIannE-T)A3PBkgCwK1F zdb+6MFx*d*p9PrgQ2KDg#!^JYnuzuoM#tDM`u9KFDYg-ri8@)NXEK{=)EP;_HgY(P zMz@*`r%6Jlde)YL=xSgyY)4hz1WNdSZa1|PdNM20LD2id&_O{D+A%WgkeeO#Y+4)Y zF)N!6WqkZ&7Wz9V)sJUuKtS)?<4^u@X*KwUKjcGsT3ChsWgC}N{6@8t*3a;}D|C6> z5DPCWh%4qmWCWpL&KpQ?KIyC^b=3+mRLC4pO%c2*N}h%h2vFc4Db=8bA#g5;yGx|S zmivhv_hfJbD%!Rb`GjK+MbSK>{}56T{~@I0N@C;f8K6cgb3GNwfk!oOm&UeV+L!Rl zQcZxm)Hwo8gc4y zdr(=F;BYiY3|-v4gKA;Dees(+ksGRp=buCk2MUUq%|D46Tp946L`~8kO7>}zK`0rS zNdz;J2{&B+*qg4Of{-Pr()B59;~mp~C@G5OYoYGJT}EL);8%DH5;|--jlJOFc2zC? zUk{k!4hD)Iak)n*eHu)!_ZzJ}$%#h)Fj7dm!8gGf*s>t7uS79;j$!?dxkE_zFAUc< z&~gX^U^cmJm{T3UmD9=Fl)CBsNPH!8^ALs>OtdFc4=&kHI1YOZp*v_nSwnzHhwBWK zA}@LCp#WJ5zEXJWxlCVGZrk0h|G}h$-igoKmi1_ZvrhU zDyc@p8ZXZD>JFEO72EvVg7&(*gCSj8!sWemzie#C7@)_`xdB_RlZOdM8H$EoZ>R>fjWK=?sv2g-09bVo&2{Q1Lq=a2DzFb3e=ZHQ5WhD> zCt_#+TECHYAkl$yf*wv5r)Jn;`ju8r%$X(>*F?og(-TueIdQJYB+*|9mUbo1v<*P{ z)G6|QnSY{<-es+o|Dt=1{3tqaS1HdUdpRdJS=k0L=l*7S-<9Aw5%J5#t5$@sV3&eQ zNa4_#HW5BBXbpVdQ{8eAFsXv^E#S@Ci=5PqRjCb7!ELMw6wAtd^CT`*$`Sw9Fs-!n zMYX;<{`@U;#Z+b^hplz$bEp?z+Rulc_)2r?CTrnrzOMbpd|@PJjiSnTP2wSGXah|L z_wb>a;HC&A7CF=1$e+yeR8bOadzl-`>L{|C5AD;Y__AwDgv+B%k=r@V`2uP)#i;8> znKyr3-nr?yI6}Ux8z>E%T|Ux{3wyzmiL{;mO7Pd1=5)$%cv@SS0@g2dPO=ez_Ckx` z>*15sg`3z1I||aN>Q*f!Pfi)1>UxSU|5xFBDa6Ygww#plu%dznuR7&j+RjR#xuqJT z)BC^0ncXrZ^g|OOnu4-VraRpBTJn*W<;I!0IR_e>GZkd)+zWUH8lO<~>ENT1rI;6u zd9eFA$C0WfZC+j>*E-@de!yGNiMy>h(udSXjnWo2fRbfIcx*GQ9cjl)uWZAn@h;LqMiil&Cro<1rqZNR3NC4L{m zJjrb9J4=U6oO45eQDj+kyF8w6@YU<5{9+<4Aer$yzs%Q0fbw|}W~7rhQRD5x+d>`oOt%8WyAtzTWE_%r zmH+X=ynHQ9E@>MX%z z2$Tvs=0UmIwsXg?0s+ObjllH|NE4;4^OI+>kFy)djKJ7a_Ou%@H3cpnV@7nkV?3w6 z)uxEc0m2i8k=^^N&%`s|Z<;csfloP*s|APCGPMO;}7jT-~ZiSSA0NbpF;ESsZn z4j6>v4a6oAlI3E1T-vfNVK&YL((q(jrtYg4?5mp&h_;MtPkeB}--KXY96wA~iV_TFTCUc#Z$Quzy}72P5PErd9qA z3+n&gy>b3mySGbCi4+_$#G`>c&O7k8fr`B{C&wD;KXYJ__#??1L*NqzY?Bbv#c7Di z-@ob(GdX*9gEE^4JV#J8g<#m{9zS-DEF0WWnJ}PCSVc48ISCSM{?*Aphgc^~SN$+u6t! zybF>|R8kUqWG@egjTa_3(RY$-D5rn>t7XUzB0NW?Q5y5uf z8?uYz8fwafb`T)&&ytN5-_)RY(_A=quKYLN7I@w+#`c6>Z!WW-jO_|OyR7%6|6B)RA``+LnrciyTVotj2N&~CxKuU%ovF+ zkT9ZF8NC2!1|8UXJpj3~0g7r2!ZvfS0xfV2fIWaO?7@2aj6FQwZsEhTX&N_E^U^4i zgQ=w7o2e>?6N@qSM0}K?LK0r=w?QP;wksrh#?6m5!p%H)Jqrz@^8j zW6mkJV@!I{O?vCE9!XfrL9~UWd@R#u@$7iqHv8AxX8K=^aVGtBJxC(aXK_ zMNpGggYyFI$t(<^n=QdjP4Z!H&o@ zPkU>8-qF#AAP?k0GahfpL#RvEzPDajCH^8~cSD+iUHBJK|F5^19zZv6(#kMdWOFbu$7zq6+8}N!nR!=jOZjIb7$bCvdX!c2j5L8nR;vlI=s^-lsq1U0n} zPCZ85ME+7!ppj@_`VjJVibERCJei2ctoMt`PV|gTh(X3lxTjG1LnBwB2B%f*{O1Cf zP65Oh|8~!8)pk(W1Vk<|b9{6bQ)VqsFw zjD>RE28nr2UHTRYN0Pt6uKRC8?Wc;1-zJ|nRK7;$ztS$?9hejZkjWEp9^go-msd>( z@fGwq(f$ksg>Ok6v7vGHOf#y*m)B1s!MQ9Z(ff z+&YkgNHJ9qrza8<0+QQ@gu38Ygg+?F_gBPWpe}h2M55}Ya+-yBEf5>}mb3hFqSb{h z(U8pDM&s0S&ZW_x6*C1%gq0se=rNOGNH+mrttub?Q;MT41qh>P9Hs-`>re?|IW@C{ zx!J{SJNUlFhDL&nX@spN7xKF(AP0@dp(R^V|D>GihbM6joE{USOfzSG(`L=Ib-3o; zd!ifxzNqyPE=zntrxqGa#XL^Q#N}`O<-6XqO#*hL0}t{c5of?lz2g)Hd7)SCmI#gz zSi8~m3*`?Y|11#cx^)X$6`D4{m`V$Kvd0ND0dH_cqXK+sgFCH+;&YR+faeo$MFwwg z?}{RjAtKLi?WCq%TBDPOp7`xBVrv%0cP_v=`2b!QzYVyk0+ffw@Z|4~uN-Dt2CB6U zmF(H3p& z^B#=FozV#qYw0H`w2HGdgd=tR;`IJmL2&n@GX@gV@@g>(s*yO$tj-%XVp5Ug{I7u3 zP3p|@9lGV3H46IM>hw~zeE1D_B6ayUOFHv}vJjrUW*9CEk zIOly&b)c>>%L;?W!+ox31ymnbe<7ZYg3i~wUxjgWh@&5yC-FxIU~yNK+3C&}1uR%c z%m-ZbWHHXeCkJpo$EvzrghKZ+JP7*0b8I|(#Xqf_? zOe7@tCZo$Q*a1f2M3p+2pd<`W`*(QlRG17Ftu6*d<24l}yNF7qjaNjRwMKR-S<%f> za&HYwBQ5TjHi5`ZAY^1l5r&IuepG_$^sJ9x3{u;rL8GhJCb!wvN>E@P#cO?lM-cSI ztV}I|wxc!4;8%%c_1Nt@R$s*;PYCGz0iq0Ma)siSA99M}m^Tt@ep+BMtkkbQ3}@z* zfezj#T9+P0?Jjaby0BBYLijeq0=*iz+R%Zm$Ov31jQ!03_ zlSkU$Tfa`YrOL7$tdBI#JQ&8&?NgF{B*y7XrI#jYVGTY8%Q{?g@g3TT`A${=svUF!dl9l-$ zK5eL32_HHbSq0a@#ER`Uf+@_fy6}M8#FJ=bE{cuDKaFj;54y@>vl7OtF_M+`ykuq^ z77helehUMuKBCX?1B9h8-2oKNNxXm;}N*9k=c`%#^jp zT(wn~)Q!gpg6Z9Wp*a)X;V%5L;6NzI-bEFluy>AsHTlCAWnV6|s1b7b9?hUocm0_iy;9?4N^m+28w(P1?DGi~LNO*?yOIy3 zMakz)5JZBI@cLktPVw1$@pzPTlAYH2PXgedss0}Uz{JV^zt|Aw|Ac*I{_n7_ms(Oz zKkmCM9jA5lE3ju~*#`B<*UWSFKmBxMZSCT%!2eQn#EdusJ|O14&Z7 zm&91nAq`rLXua{A94`SQ$+by6= z2(yN%LaXt(sh*dc+OC{@6&)ZGe){T+d_UC!Sg z;rMcvau{LroQLTqPmbhK-2)svSOuxM9mR{yV!x@WwUI!db$8iv@G5mHx2mERqm}E! z60|%qOAwZHL1LM5i}A0k@UA{Ry*|H=j2~~-o3wv@kbCoZ|3GFhyqdq}&rY}A25Hxp ztt`lFGSe-#Ma*T#e1N$d6@~e5`V!FALUzHPp!ySU`nzvtsaEdnVY{IV3^8PPM!6y7 z#9DWEni~4o5v>QHPrZ1>t(K7*4Qw=Z21ZjI<2_5^3Scr1khOa$sW)#(rSqC1k{^nC zg&TuR9#M7{4(tJKRQrk0NEi(2fj~$gwe1Z!u-Wz5*Q|gu{6))XGH*=cXZS<7l1fZcmw*&NtBrdjLK3QpPIHOb$2jg}cc0DGT;4t*Sl(%1kS}dyS_#L-+l6YBj%xzO z#3iRRqUrNyO17=e!L?=v0i+h^2E`Rx)v5=K(wb`x7o|_GO@Xxq=AALTF|Q2me+K?g zA^Nlr!{^%@2DS|HbJJ{N_fGl!;(b8LCnAH`PIImIDv_tJ50W6LAkimQFm%gHxerjX zE!6o=L?{gbmS?NMz9eH>oEin>mFKSjKa2K@2fJWE1xGz>P)5C8)W{rJzonm&F6Mp7 zHXN28%YHwK1Y8vigvq?PpWC{lmoUT#Yx>@wQ(+%-3g3e60a_8Uy;C+crolH&h+Ra8 z&VlJFl=fiE52P@ReonHi-{2k8bHC>JMBi`flonrfJ4r;?j+}4V?|`$yDOYaYfH|L6 zWhQh>W0VJ0a@ztC?k2u}#uEk&VU6U~84g?QLwUVgepHQhtPz_Lt|S*Uw?+0v2yr@n zH+8u@VHb|TW3Bt# zibvH)x#SY?#Su?-P*xmjg9u3h^wxyz@bQR$h0=vn7Rk3>L?L*uwMKTC`QJ%9qQu`H?>U->d58D- zCfNBt#ho$~ru}$tq-zNQ3&WD|qU6N{1&H1X#5*CvUT(?V{WKBvqYS4*h=3@H?E2?A zEz<6eEqvE2WmO~w&sQ|1K%>a^G7vczegcFqark|w5v9c90XBe&fi?2iV5&|L@0;R& zK=Cd|m_DoZKip^X{dzKAx^OULbz~=_`Oz=x0#a_M=!=2^b^-bIVYfRNQk}h&DD=WS zyWpA@BN24EKZ-lc7BgDsBjQ zg&*i;FQ6AWT#Xw(2{^6yLilqrsW|+Qv_|sfGA0D);t7<;^&L$v`>pLdu%|?`naxBq zc-simTMyV~dq!;oqy(n`0zn4Z$xMXsW%@X1+9npD6aevekt(qL*4lMr1vG#lARB?b zuNM>gH9Uww97gHE4rob!K3%GqHOUxmp*HBjW7H;*%P&&uFs7w4q&YV6Fz6<8jkWbs zaukJ`e#f(64(u!d#F;8{&n*&=bw*`NsPz}_xa)j>jJvP}mE=iD_n^i*TL$2OI|Je5xQFNRBlBmHH(SKlq`_A0iR(bX`}*vgm=-4OQ)InyW@%Crc*Jo=Y*K8Z z{Ln#Ku?NF+S8kxZ@))|OQp-;t)LGOe>~_cqIk!r7Tjgl((i=+~^GE)~o;?+#AH*ax zypL~}!7)t-DTFZtzI_tPl7j#}5>g({#&vUT5*ng9K;MR(Al)aR%xV3Ee?Y|IoxeF| z`%3(spJ}NBQybA$yx?i1R;O%**>m8OvKl`Pb5pfE*h1iAD_j|ZA2!5`NS&Fz-60X6 zg^hF@Y^40pa;-VoE~5zRw6!*NFQt~k1iu@KMg1<5Modb|+7vJ3(7J|MKG#;l$_x_= zVYM5@9JR`_x3HOm75$YO7RKopwVOhnW?yXMva!vAdxje*AbuWa0&}KE=S#gE#&-koXMBbd?}rB&k_=Eh+w} zjLlqGRAy-rWt7<8EvfRBpSmYM`ovM4>+7Yz%X8N%#SFW+7oQ5<98zq7a8#rt3B!T% zBqr#lPvb%p9Ri)_#|*@9I~kG~pqoQl9{Jn}^uR!eDLCIo4L1WtYR{@n?G_&}l6vl+ zTvz7oYt@B|iYhEq0~aj-W1^vJ#M*(8b{gtDIHX40> zFo+I8-)jK6p0GM5wtM}k$30q8!A-@hoVJj@IG*;o=*;tgWIziFC8UgEFJ1W3kOTlpy+mLhzUq6pbQ>o6No{RH+OsO@27 z2E47?zB8JN>bLF+mgI4@H)hk8*;M4%dB zJ=CAk2WJ0?;c2(Q2PpmOy@;YE|eX`K9qt&rl{PGLEt zDu+;Q_h?`2Zre&AQ|65bsgw$${e!k%W;$!a0`D)Tk@+5iLR98$-BDzsbQT{2F72zJ z;xjrf4Ra~GzxJP{$y8_WNE<8dsusp`fYg}2`>hN!Y?0S4i-h+Q+&U@>a!yo@;ZBdw~9_mJJ zD*H~umXvXYWmuw!V_~v9k+dJhRP0Q?U)E6lPvU1xDPp_8%Hhx}DbgYfTO1s$T}6+D z*(_OzlPuR@CsdttTIwGzf%NHvQe_Z|QJMu`bek*THO0O2yRV?Lm?$Z{k5(`1rKkPh z>f08@#mXKdoUpP-)|9rW#0G3@dv+44P*JXXPe5STw{8cn#$)kITbH?7DKY9;_2K>J zdKmX9)Hyxi>ER{;19*o)nG z=RD_V^ASVtr82PB~O1@RKiv zx-`-2PF}fv0klh;_rT^KiR;{9B*m2OW3K9vwY>+lKi5>;Kjo0MBv>Lz56LM+A!>6> z92D6o@CUUFnekHKYG;S8nRC(2}#}rZJt6 z=Kc2rZv84#jcFj`XM_Q>K1_mLuxkgER7Iw+H1QAQO71L#2a5cC+r{zGhx}V8Ya?}g zd(soh>q`XzutxV<@d9KjGn@IXvZoJ~+s z&jYvi%ZG|y^&7BcA06TUD{=ovw*KolvokXNACrrj@jo1xGc*2|Cf8{EkHmc(4SAa7 zn;{oV3eXwQ^>ra49V_lD7Pch8rNKAdH*^>w^c;%++G+!U%xyR2Q08#1#f54Pr=SU& zNTE;J>!?b9P~G);{VqYzc%N=$Uq^q3jk0@u3YqMPn(|R_UwYa_l#ym&Ax(OCI(Zd6 z2G#AL9Jsu=VClG=9Xz@g!us41`;IA~XN!qulViVbo?7R>ceQ|8*C?UvLqgpzBnrR1 zxjp*Y@3yJg(#x^C@@ZMjc=zee3DNU{`u6--ePYiLi)oRwL!7h~fI0WK5XqQiBf&5& z(~UB{(=2l52qv$%zzI2b0FRj}b$_Ae^+*uJs^0nQNH(~OlYNxCd%D@GM9|18nxbG6 zGVf4Q!m-YuA|mjidQRy+?VrkF(fKlq3321L@j8l`a&be6hX!-O!-KtOY$Lt}qZh*s zZP|!NQmdpqcDhR&>CSz++FwT}tLsIAC3yW^(chdU-QyS)thQ-PY+1ujbhMwi5!qu`NTkqFVY~pr&-w zaC)VjeJ1Mp$DgrQ<9zb?06RNcOqUjRHM51{xrD3rb>TRSWe zXo@tZ3K<#&z|8&YY~xiua4X=0Yw~de20#DzVZ_S!gv0UJd;U7}qF8 z?Cs=}!L{51E%|#<2{&M-Z%odKxUqx_VZ(dLuA{*xk^< zGySVGiEiK%#-v4ULhvK8@O6NaGIkqg^Qeh{E?~}BPCn%dY^Cp$3f_4Iw`3q>GAR?49 zZ+^Ll%;V`s8*Nz!?t#9u&rxM`q|lM12RD>ZH{7p!$^&Mc6kMMvwPs_ zbMBmx;$y9pa*F`=1KV9aOu%Dua5tujacPmy0mPUik&4zG07>VP_i@%h+f++(dUhFY z9YS}`HSrhuf=5PWh-556`4AEy?~^TA?2DEZWWAo6G`YAW67vLlBXF=ZS7X7FV}j+( zEMT^o3oQi)PluJ>H1YHbKjJJD& zA@Pm@)b_I%6d*nj;eA;zoRjrb9td?EJRVTA0F*#A3z{BNpfK-3n9ABZ(f&XX4Q60` zI*A>x&{DNY@_F>d{?I4XFoOX}_`-o3c);S+G{ANk*{+JV2vmWJyukP7nJ6)Rq{J^H zfOO$4Lp~w^rb=V6wORlrf+3Pi@6#|&BhL|ks3_r#R-3(qT=~Q`498#6Fkv}LqyUxO zw;n(oa}=Khl8uE{kDYfO6q=0T5Y^a+lkvVF(tp*r)~Sn$-UtsuUfvan-;O6>*5nH> zWwL9>Bhsk$h@3`XMxCDTWXuu-Mjnl05@9Mj%W&6&#ZmpO7AW48oLNOBn^9d@KIBfz zf&f%?ubh1+@LO)jAe=7x^JL5_9;fOpI$`CIMRP)Ab1CCrouyNd7LAIT4o^mY@Nr3H*9!QkUjNbXM`gVj3hn-)?Pt&SSC-Js}}Tx?U*~Bp*+x zY?fa+U@S@cH+`!v8p^z3odAt8$W>sfZNVYg8@#hnhRxz*lyaUpxI@STK1p3+3Ql%3RPq)vI= z0kEq7C0YwEq%44$Mh3-|fOUza`;jkfGu~HCW$Q|ktZlS4;LmyR0ulBD8AY$o$n$Kr zoq|T>6*nk<=cyPNf8Qn%z+4(WIzW~dSkHP@gpm5sEnOv6IZ$14a%Drs9ztI#FMg{3 zpi6gSxKYum;vlD4T*#?ur@zXKHrch#K3noiBnVnJ{X2!Q$s(k|V4EgI2MU9l(mQ@k zRftivK`FOlLf9`?Lkn0!1K8ziNC z2H?C2Ls&-{xM+t}T=^0eVHTNCkwSWbUdxce#bJ>5-Bf;ySo|*BgmUwrh1p5#b_^XU z;WPe@W(6lNLBd){d07IZntZf%e+wO2>Hx+$t<(tKxG1VeP^HUPKoxJHZmae?R1P9) z_8Qi2`@ZYMGTNO7D)38x6~*3+Gq6IEqW)o5&d#MnhECt6co3>UX=$2N8Myu-BXuoD9~3w$56LPVVNB;R_?ao=CqYv(JuRQ7Xx z`%mFya(TCcG??#kt-}On@{ubV&)nI!_2rz?; zZZ`}LZqzb7YCN!Uqm%%ab8@V{X;22cvE6;9K~Z|5S0GmJEX&wPO;(1VsF-6To#wAQXpq`8>) zx^F&ZTSgIpBaQemxn#^)6qx?5{+Xx~!h@eY^6I_rs09lyDo|?0(6v?7y{I>T5{L8D{fB>lp`oG3uqbAv^#|4H#W8AEDlOob0K# z+Q@oqAU1y91P?N|`=QOH$@D;&YFvG0}ZEQH;I|sg?0hgCuM(q>MowFmdC)x*Jt8S*9gfiVm9I`hl+-z*p!dH}hC^FP6z62p=U?K0wgdd{|@&5ug~?rDN|;q|0DvK{!0-crGz7fwDtGGp!yyBZ3Q>aV)5Nz7%w)mlVeG} zzRoMwrNf6z~}nULWQRXLb&>CJvNl7W%+qr((7SL+M>sNn8I(M@1pC1@x}h@ zB9+b4$M84q)z2=EhWOJE@q%_Sa25u^WekzT&ED}OY2?nc&e;O?&ECT^cYN^mj@~Yg z7qF6-8CeB^NGLK~ocge)v^lW!J>&M|@ z_vZ0lro#>Ksh7OEXZSm9ELybIlFE;ucwYC6*BHqP zI_D_blK^J+NhfPb6F^iY0akw0-vu%P5{C*&aij?xO&W*5cIKVqn(3)Rm=Q;^mWIqD zx$&5hW2ykOi2d*%uuWnTBZA z(1q}him`o1g%Iksq&UK&33CD$3vU6iTxUg0dVeh2iZD>cboA{!CPnW6bD@|G6^w^ z!%T|Q+0)ZRm!MFB(nUapGf;1gLn+E#eTn0{cTlH+OHZfmJ$dSX8-duiVW33)?fX(P zuQWh_1Hq9)M>zNs&3#L`lhIW(o4+j0Hxh8{A_0JN`ci)aGa=+(t7A@!6XSb1YD6r~LV25#3?VQ*H0W*-F*&Gv{UVd$y|26zW9D5n}=Z;xwEtV^}lr;=rys zox_AUeE{8%hrvk>0GT^&*8>&;<0&$K`oOPW6{E5Y2nzjrr>so-`l*k~VTrsd7^-z- zIoL6WNuWHq^o6td<~BXa*$<(E*HwG0SiN+X$wyp7=09G#;4x*3nv& zk@?zgJI=Z)#2exg=UDWhzC7>5S*#TD*585+#aIMA7L>m@CUL7ok^tg+4Nw6&Z9cq# zn~Uvx_ihQ~;$dA;O(q@6R#hzbL}Q^Ra1w6t20mAf(`0eURipZE7MAZn%=%rmnZsUd zE<7_V>O>iTml`EwG8gKB2gw?#e1qf5ivQi=KMhpMr>%BkrI@}7Z`0$)kN6ySgoqDd zyV=gce9AGfW)1YwGIJS5=vkRcJ)&@0D@ zkvuO($)_x10dONk?d6H;bvbWskQjv220v!c1@N_#P$?l3@+h(=lj;=i;4F87T*YX^ zF}p_2T^C2Jj`D}px>rB32cB;Sv2{uP>1hM<4w!xXP0Ui9U^R_|V;V_dZ9@QA+<^RD zFy$;c#JfX>vAkgX#nhSG1tQr>er#j#o8WffA~{0d_&0Swlj=a^Dzh@q*}QC3M*Up= zx3LJ%lJMV`7p2)EArk8?bR8&qA*6O~8I)^3x{)YmJ2v-O5FJWMJ;y2aS%3GW#%F=Z zT~xBr-Yoxae8bwO#Pnp(G-^hl?Zj$gZ3^C?T#m_B!d{0@~ny#j4I8EOFtS#l{?IUyPlGiP7WPiqeR)G*OP zDoF@8OO{d5?1qs7cLCDr`%l>B(ko5w4liuv2{55j{T5u(?U2qw*V>0*Qvt8;)Dr%9 zqzSj;As|88VUe61IhoA_-}~VkkkXTtqdEIQZ%R+NR){r)GfpX4PU%WP7i3*gm7HK0 zNPZ77p|Y&eZ^(Xq|;B zmy_!B{rIxW@4KW}Q{KaDoOCGTKQ}=XEsq+bL^YP%l#%Q#&Jj)X(V3XFp-NX%V{*dM zw<>EQU@D`l)d?9^{p_x*H)^Cw8x#BzH~!I#LQ+g8wyixwBPqan3PIk{NUdjv4Vnm| zA(La=r~x6YD+`e*r0y~B(xVLVw3D6U1J#^zRLQfJ{%RHO%8lVzM#eJZfI+j8PeC5z zfz`SN=NE*QfsSW3wwYHbD)VW|DSj=8=Qdytf`s!<(dX?0kAe_VCLHf9O6g`nGoPWT zfkDr}JcKZbG8t5Pu$?8ZXreNcrb6MkMQs*rRweh%xz{v{&+?WDX-?{{oKh47oKr~( zX7z0k(slKQzTBRiZABpO-)Hs z%S(rA4-#!`)H?5{GC3XhT(q)wT=!9$wKTMwrKmBh6Xnf^N+&E}jlzfs#CTu9i2++y zcz3w!ynmo{7P3A|+AhSYch`pzevNu@0`5xkLZG;372(uYu%3lL864f|-EYL^K|+GTm~a{LTwohB!|*EwoxQ zeFy>6o1<91KzuoaU1j=ZmCREEGZxXDaclmw;U4(Bb|f9Th8a`-*>I=*Y`7=Z`GYXv zOK0j{UF1DxE}YZ1ya8HSNM3)gxOV@}l)X4^Vj41@bzo5#-vHi1`4AE12-uGH>a;t` zntJvy;-ze1Do4M!AMvje?>ewfnVPB&DfPLD3P(YTOwC&c)n2U6%B4;oxwsf$FmI^v z2hFn2lb4KXRVWKbzAUMfp8PxB8qQnYf0L4{eY@UuFO5o3y#A5JTW89sQ;%>Y66*{#dB&tEb zq_*jGYi#-ARIB9Z)SP{2m-%Y8s*K+V=Sm+pfw3@lmrz6!&jV7Z({yX+r0FXE=a_4` z!b}L~a!2g_W9NJ^AYgHSv7@POZT3Ybb7O6s1Jq315?`Hq1<$33P_wx~76&|k|-$#(;FBoH^LpkbXMN@=*Mv(_=`KTn~r#*z4ra69a zg#&PkC?wwpGJRDz9o+S98v|AFE-hcm6pWZfX;>@0_I!0wW`0v=aWiry`4YI6`nmOn zZ*k+YsT;HH0ZONX0mm?9pwbd7x!W>mYg;chZBviSBT68HBL`g!y(lAQNmWDtxkEuz zTH-u~TK0osqoLyxwcBXmDAdY$grf?1`v7$-_`4mQ-foeyYFS#Yrd6Wl3$?apfRH?} zMfFit|JxGjSP2{q|ClU~p2FTd)dIblnfs|nE9~?bR!4d_c$R&V$yTi0N zsN{sSC+%LSnQ$TB9LZ(f!YTt8{#vR*cL{=kfPe{taT0Uf1w+rjs1E^3d^l_;ZeS|~ z8q#)Wd2uz^)6)FepdNz5MZJVG9&Z;ze^$pzYwxwI)`#^UuDa?RbB=i&IoYvM zL%I9!=)YEaNC;s3XO&4t>It_8N_Uv={UV{Lt^@qO!otVZ!7ya~YNMxm^eAA?laBgs zVJtX;mI94>d??VEg4m39;~D)Aq*=h9KvaUXQaN5x4u6Hq`H4xO1#6gkMu8)|vGtFC z6W7D01VHc;sn)}lF=N;hA3{1aT)NVM1WnN0wS0Gfb0$HQJD_VHQ zK=JsDx^H#7TkNdg;q)NlhC4tcuyL&wv-Lc5KuR3*!?5hK>sWlP%FO*6N;xv@8z08& zya)h2LF_0hFp^K_(SAj+yS*w^5Mf+{w!-GM1JeFcL|7Elpy(zpKtgB?gmrcj;SmsZ zv#UKSeA2&SvjHR3cjHF+1X(o`58OE2G=&HZ88k6{{Ur03Va0D0h_Cy(gzI>twX4O! z6U?Jfs1!6!P@&ubff0N`6rRi?QLh;8jwY0?zm{V$h+N!)0GYS@NHmJ1fs$>UuuYYr zUS5UNixkRM`a&(7S@0oprv$S!yp7-$G8EpFLy)nwCR&lPgv& zoVC1on0?z7yV_gjC=R{Sa~?i5j9bn^Vq-Eyk-GE}{WzM*l?eot*mTLQzzJVZTjV1V zcg4iNrW56}j?%;=VY62D3MawdrpVAf=Se7oe*#&QJNlmEoeBV{l z%)>ptC#*0=8b($=f}{x`_bU(WJO$^tGmnx{Q1=Ew%nr7x(hHN+Xi=@kND=a?E|p&d z#H&HBO$nR6v}%d8qD#eISJG^~ItRtz^R#4*g@Bw*01A;jl<36-3zZvg`6vf>Z+UN1 z;obsF#*c?=bBZ*#yl5tJp8%g$kQ*h@64}){SWxT*#WR86hY0IW#F5ZygJ``VYwLn} zTVLe>!$xYV$!AH71JXIP{_APcWFubTBU0_qzzFGr5=lon9R{~)?PJO_6+032V}^#x zPC>~Wv{t2&pbF7wrlV1JMkb85KA@sh$xHSF(#mqg?lfgCDv9ZLxj&i3uXUTFtQeXh zxd`ivyO{8DhbMfMUFC?o_zE0`NQ^W@^>R~E&1oi@WbFrUa`bXTwQ56ami6mYEe=3T zj11?@v?n6?`3^C4jef^Jd$IgG1{n(w%OwMw|AFaPQm57|qnX!z@ z245iin5F2CgMSR_s*szus5B%jX^dD&5L<$4Jh!leh=(98qY!9f_o@>mz{RGOlTDq7 zM(3(7$_&ldUHOfrR?tP)KZY++0{K&AjrChHXkfmM<5U-D@k5d+e&8y`a3BpnwNcbH zUV;8{&+;dthHmHs_IPty?kht=j|*z(dR2QUxfn9e6Swd%eqUab_Ke+Bj5g#L8C0Mh z6vbh^-s;5DWDBhj@HKh|0z=*&R{bEOhrv2@hIG%+VAs9BLE=djim)fPD|!6Xsby+Q ziJo|)J>mpi?{rb7>X`|QpxcZ|q$S(J4MdAb?GDc9IMImxf#j%u>lf>-QHirJ5PCxp z+(E+cSMgnJ9Y(0w3PH^*BQtGppY&nJ1y`JO!Bd=8^}JjWEU_IdtikbLbf7HI;M!-~TkTgyEoqcLtLE;}IP~2erd*Idi9c&*FantOwB&SK1tYB90^xopo3a!!L zuvu<;pd_jBkf$6mkJG$=IigG7KWPV&P(3Wwe5Ug_mv>3Tkjs|6cHTJ0F8BLkQ@3q% z@t&pBFel<`1TxPXXG``leLLr|YzmxkXR@>FBcT?nBEf_xTxt0%ykY0j*RQh-RZj7- z&6#dN!j6;0k%z=yhiXIX3R+yzgF_R|#Taz7 z6FenQ2Kv*xaW&zablV1JR`a`$&&>DC2GWX|-U-^%*|^;qjEi-yPKKB;y%ttitki}P zT_1jOi}-a4eiAljz~x`0_W8K^J|(S`o0rnQ=W%;_*3%=D2Gd22RPSYO4V#X4mkrkf zc1)>C2t>#%kf_aSbmUhDsZHj!j>rghEieLTa;s5ICZvDS!1ZiO%HM&x2_&U1y4YKn zb5%Yo*F3xQ;g59k$BAGI)p}gO80?aRTr+cqSUhV!8Qc$?D+gyqIrj@v?q7FPu3?d_ zS?c`;F+~|fu>%!+E}|QQ3ZjZNyWy-yU^*#lWUkyw{lzyompCKB|L}kVQ;Tm&kplF( zbn~mHLHS>^3bx{(!6nhNYD@85cI5zK(H7suj__#UVAa#(+KIhhS6MLKC;so-9X)<)S@Rok~~uEFcH#GHg4{L#H(-1 zN?Ho;0c=q{4PqO!Qd4e$jJas?W?Zb-t{1KsC;WPiUPgu|gZI)E>{1cV`_ID3;Hb}$hd$D>4c@m$e;89UXDt7i9yQZ9W5<#&(LxiL2(mG_ro+7IZc0&o zW=8ZSxhmKCMN0jqL_kJLS?>2PMp~j0@umPLOG5GYR<(`p^YHfeY}?}d)bxKqfqy;k z|7YIK!}0&5m;Y2d%KqQgj$Z2i>#k#pHoWr)dBXWC7=Sg^!awWtIco_kJ%P?l*e8n+A4T z9ouC`X^XEZa>7Gy6<%FO!HF$lJW`8Q+f^FvET@(Ymg#nl{=Z-9V{>f9kNu5)gwm^* z)t;~*WinMypO~Dy;B2B40=h3a{K9wEyWQIbuQ2>qSGrET*K2N_7yh=tr)u@{(4C(u zIJ)H%x4hS!3omMpHhu@UD9(&pC)Q;EL<`_d7^6s?oBL?Wl{E)=s;~Xj%{F#C~iLvH0mr`@;Z1a`K0#Iw~ zEIck;WNqqB!refTs$F+o%kKD!+&Llox+C|=0Z^s!Ez>kayOM?91~;#kE*mOuaV6JZ z^8YmPvv%xBJ>lOrGFgURyQpUyi%A$n`JAOgBN6Vp9P0JnmkDU4$ZrmQfNHQTXwAWg zzNV6~@86M{yKbto6vMBwj<-`|tgX{nQ(a(yosNV7e2S4r2RFU=O6&4<5jABr$ z#iE2)SuNVr1F)f2=cc``p21(+Hb6^iHne*hLgsWhxO=q!;o{x2wr`wIp;h`$#p|~) zc#1JRdMd$IkK8`BzokN!{7DP_ToEDqe6Vh1GAz)z13$y!tU@=$@SOMCcY+yLB_x!k zqC}gbIFgip4Sz0C=<4>C6D_?#E%96D$-qWe0#FzncM zcM@1Er`CHba)r#AW}P(H<4`d}!Y|UOmY<3^MaUIFWk=}*LJAbb{piucXktNUKqoCP zy*VDRq66;M^~2itPFczc188sjM3qI(#I1PnDdSJHc4BnqE1AZsFAWai!n^ zEMXwrE6}%H^!`fl37wR$U+urtbhlDkSljpmdr~F@e-CV^6!dl-9=<2RljXYCHIxLQ z$c5!lpCfLH!~O)Lyh`2w6ysi*-zMI>6Qy1U+`wdA7R^XlqZ$F-WQZ7iW#J?kPp?tt zUmHi~(Lj?=@<_q9Qy5-+V6V@!MSP00vmw40{K3>{XKv;m#*&1MfJ}~25Z=2+3?fhl z*2osP13+ltEgZYwQ>a(AT0U*R`J~g}*f26&6O=ObwivtFbeEXkDD(A~_p*ug;&Peo zK%)p>6YPz#puA@p%zZ>4s}sF-AWFvbos&YK=;c9xJGGfp)qtWjSpjKRk)=YpXh@jz zJk~L&Q6G5zdc)GMYHqu~vRf^y(-7(rh*MT!P)oWXl);2GdqOb6M}d%DACq@XNA2%s z7$mISM(hnK+G*g}CgVYV`-A#67;x$v_sKGerZEFq3ZbX3S&z0ptmDe4tD*id7#!lB z-Ih6kUnwlc^+NSbwNxG?RmU%z50J#Q>!e;C5n$nUC(z_3bN>dV#Tx8h9I=5h!!ypu zZcqw^A9B0W|5QF{sXqC*pHgbZIYEP>dJK?WuO~|}9N+Y$RQQF#OE%!3d3}pSSTrAwg##HC>m%M7W zn>*{{VjI|TRH^ALdZ%=cc*W>owVi38C1n6IqvA0U~?4@i6tps#6M9n;fR73r}8 zSO4Z}=;r#Z1pUs2d=f9LH~uc4YBk0EH-sREn@yW84!lRq!VjObDg{VF0R}a6t6fh; z_oCMMUo4y-0xh^)c`WfYh-U8tycwDFC}DX-@~T?o3X~}(LRl&$4gRv9=s=y+w>+6u z#9um7ZJi_st~ImPL5gvO80;OApdFa(rER#uYSgRhr9p@oW9(dZM~U7Z+W_6pb*b>| z4~C{nu;L&n%T)6z9}Y{sacSZkk3E_QQnH45dH$T(crp-c4>f$-LaSd(w5wdSld&n~ z&s`EDnq!<@0tYi{Xl@%0u1R*w$Ro~~LAF#>sv3IcXF9HBmXd_`(j5)JE4>}7k zuTTGmhHCjqvW76@Nh^k8%Ok50>PQQ|^7#&B;1qt4n$opyUtkTkMV z2}kLL7qzNXA+vn6VN2Znxaz0%Ibj;Q!c|vrvV^Y3_HV;Q@pp`*p`?^wULG>(=knU*-`(U%?!t1tZ)DL5k&1adHiE-t1xMh7N-!GmS ze~!5QC*S!0HbAqnv;CWD@SiH6+5fu==u2J2e@<#AN5eZ`{^#j6@Cb4%o0Jk#Bhg|$ zB(x&LLP1HFN|P)vH`T4&?En(2%OqPlb{L$jc8L}ZiWht3U;A4+Ehp2h^oIFU(Cas^ z=g-blBYSRv?bEB$$wR4QV!GNhBI4UV33YWf+3(WK+Np?p#{~!T^m@Ur0wm2z-+GU~y7ZvaTI{zh{32ma z5|m>d>*{Lz$0o}e?G)3%2N>B21o4Y@I$|P~bWGJ(n7YoK2(Ka?a9BGy)1Xf1>4UNS zWWzitv_(zyyyD&>;9gRAfsF}HIi_m;KbU|ZN9jbMCA)h{?Ff}AK ze|PwtA)xH+pwU(Zw=qL>sQKq0r5!rx2;*{tsA;1u-TTnZ44t<+T`#-3aCFLJQIqf2 zg{^H2eb-XU%i8*dtwlv`^Kv z*zNO9B{lRfD25Iz-DYg&eG_eJWgON}qsq)4MnlpP=AMp3LPAhG7qFQ%`=VcrwR?!Eqv>0WFqSWBELdCmSDIv06^ zBGNpkPB@02m^r<32A>y9KF=&|gl4f}b})tgT%*|Q1fmp>W&ss)L9;VKCxK896oE;s zK{wnm0wG8l^WfE7)?5%($@%vA0ry_;fuwbebvP|8t{;)?FypzBoy1iHAWu&tCBxHS z?R`6ejYXKUyQocJ>{Y1sJQ(4|CPaP1KVNu}NgkpuhO>7B<6zhVsSo>nRiXGZRw=dE z;7jmL9d93hgO+d(%rRm4+ALLyt@F!tigX>lo*-ybPJHMNKCfLpMD!~oSuUYrKFv z$ea~8v6;Q@F%X`Xv2X~JJ5%T>09Ny=rm<$1d8r@!#qf-M9;qLWGb&|wW z)&tQ{l>%65hi>Z4o8)e&`YOruer~kBFgtdij{X8m81i$#-C%&1pC}k6ie~VTsgqn$ z{rseA5m1-sn&7gr_)GI~l=6--!Ja=2Pyw96av<=iv;VO@m0nX2c9=s?v6F zNQZ~ugUC>WL4>Jg3K!MW{icnKeT=ns5=nGHr0hY!vH<)j!|N6z7yBr)yED}(D?NK= zjKZP2LI7IX*nfm&egBa`QGAzbEm|-lbcQs)M^cuirq6?g6n+uA^qD6jhv2d zn*t}MAgm~ctNG_(mm%pcgI5@{1s0;8a)Wu5MAQ}-%#H$x!_4iKtaIMh-B)(kvAtp&jfwytQH&>-6*cMm)4Btl?Rd+&Dp(o z0};c<&oa{dHLdk9J|t&mx&s0NN1DPI2Q7N_eRP(|rsn`J1zQ|!%OP{78WJ4;cH{!z zSRQSfUSFoh3864ysRoP5Pw){3=P0v@OUj=rbyAZsRJ?I66E_%;H%b%Pz#xP)KBing zREK;OqhF-w*b3)e$$Z|e<4BMnRZWgy#Xq5h7|soj%KF{n(zbRleG6E^%0`rGDcxCx zl6s!i=31nf-R#*`TmXs&)H%}5Z-XGIVc-=xjy5434(ET$LsC=o_g%6?8?uD+hh>p! zB-15S8Iu9-=3K_b(AX{miwd_5OV~39;6yw~2SaI<<{Ew8Y1FYNCye3Rwq7-L$@Y57 z^dy{=wUF@gim+vQ%ryqW9jQv7&TZTEyyF>`Y*{rBTh$u}@+e=%w>Q%})_Dh2NQp>A zXM~9!jXhSdlm0&Da9?=f*CS~`yj6{(J=D~7nw&|_@{)_#^{T9Y-Qmu^^E&Rt4A@vW zFsTCDCpJ3EDPx1b@Ta!pT&9^6p-;E<9I>@25R=`AtbyS4y&pu-b9aJ|l1|u5eg2#} z$-W|{1%+eLDvD-_O~$U@5m%B6CMoT;?^sc4 z!;~^=|KuKt(Z2YyQd9P@kl#n+Oy{8^txR#w*e24j^w-DHBj#hu7GQH6c*gGyI@bQu zWvIESsSL^yS2ci(f{WZ;e&89jt+QYtRLYd=04Gs?Vvu+r!|y3pwLhX?tZ2a_){U=r z8dUT`d#^XZayaq6EN&jbka-B*I$r<&Ug%so;s=$P-1Tf{s$FEkn6fubz(-Uog|MSA zAvYiCMqg;T?IH4INbLAg^Zj;fPGvHyilDIC?+Dx^I9a)ACj+%L3(M1ft z;a8z1bgs8<#FYBS#XJvhS9G4=p9!Qi-U2;@o|LV1F;ncdC`I|+>&$2csxc=7J-o?+=*^^zw|Na{kDjaHDxo}#OUvGEf3M#z=%C~P-+xOIhG%x_838nuWI z8Msl=k)z}^hmsHE)4RzZpv6;C8vkKB^?yq>+1NP#ZBfm|{=Z=)|CT$*{*}`IUo5IS z^<-T!q_G~_en{pKXtKK{zOo?^4;&>9o3Q+u0Of&!MKPraOz3!f^^&hyTmlN zxWj0aqo=Z&+xw5DpHsUx*T^hVkT5fn|A47bQ@;jEa!?@j@CZ)=MM^~it3jY5WH3Iuj)W|h)Rc@6~)mPNW%D+X8H1M3i`)r%@cEX zi~4BKP5cF6=?e&%c1MTv6RAwBZ-yXk5J&`JDZ~pkunxW(ZTBmzoyqc3I2NXb8-eT& z$r7wh{Gk?VH|fB4=v4t<2oLCMN>;^!S;NPisuEe-{9`!%cbmUQf>%%E|E{@5`(}T^D_TZ+kUdjJDgl{Kpz%OGEW?k% z1?X7`(r&+EqAFt2p6;~pKq`C;wg||6uf#CR?^mvs$(gag6>#J(<%SpEHgE+U>DF!H zyxsUR5O&cMrh3)B6(!K(BaX#gP+SGHSnK6NI0xvjNjpBUzs94eAbX4qwvSGPG^mo$ zQ)7(x^niEzu}DQ$^01IZ^EVH8nnlc;F!jSS#djFj75bNHW$enmEMZH ztd=>UoR^cI%YUo;3yn1FY~3<6-(CxUji$LHYTYO9FVX#Jd64phxEbsPA>Ilv-nrQU z^&$Yv9+FW+h=9i~osYvZwofXU$uvU92as@5guE3-7NKmrdw(5}4)|IG{0Km$nE$ao ze4VogQNu$Z$juH(wOCEo1L!%xKYb2tC+=rT$Bxn$#wZHDMWJy?%v$6C5REL{F6GGuY!9n<%clYbq$<^D5Q8Sw48HFzU*Nl zfDGwTihbFWjoO@zXJSETclKFpTLcB+4U3zJo-KhBV3Ma*mDChyY;yUkJ7uB}rbk36 zVG+R9HWAL!rcB3a0wG=x-t?Qvi}hQ`jHHc~MPx0;$_+xdo7Zgt-h1O*neBe`#uIPS zhuV*o!JHD?bN@8RqkVIQ%}?^M;(QPSbdViSX`|5;q>vQ#0n%GR!nDr0mV1^NdMvB} zL`sfs$<9oc+=irNc^=c|RFmc&4{*0s?WaS(;rZMgS=+=~8Tr>mx0}H^LkNpKp zpNDzvj@V?O*EA-!&57h_KrK5cAwiJo8ud{9biJK8AXLA>F3JLn0c(Afu`ex-GwiEl zM7rFpD4cXmzX9JM{AhHnJiNOu{-=<%*_7ebZzdFX*+dz(@?qW8Y5hNi&4kjDJ#}ei z5F?#?`>K6>PA~V^bks55tK{%B(+HaXB}<0^=2*5dDx_0DnYnZdii9xviahIK~bergnj{aN-hL z)%~28f{C0g0i+cfuiT?{()m%MFCe%#z*@pAWd0QM=|R9q*LUJ9foPZ=Nw!e+14d1Isz+Xui0fu>txmMk!-hDC0-yspW%B9&tmX96BFf%<%K33S zAIS-cs{;T0qW6wf1j|y{YY5bkbzFZdb0-((FX7ufRV%j(cT|?YyH9oa3BkwurGb~O<1&{Qq9S+ zgk-WI_kh?k8%(#Rrc%7KD4%saKsvTh3-f7)<7eu6>|XT>d{gqh+Of+?G4Vn>U(%+knSheMoJUYn_fett?NI_Fi9IgYlN zsx<@Xi<%O-*3bU5oe}vBe%i$HKpomS6NI1-m?k!GWjP&sgd>>mxyufzvZf`ytyv1{ z#LsdJ;w8>c%=IMf#$J2!jSB#Xe!J~Wcd#aiacZFcOmF903OhW z?UEQ6@xf-d;zjst_WZog0Up0iV~;;(rUr*=zNO2j>pB!Mi7Jj^jQj{3-vN508L~I7 z_;06SH?wEu6cFfh$zbaO=#{GJlBa9*)b%nsa5a`@XqPkRp-NR=sV)+v};~h3W7Ft@xoLyrTn7bzfIwO57Rew2=P=w?IcHMT-#t+OTQ#A zJti!;DotX~RJdEI`>AY&$N$3^Qo=URwXQeGn^u#4UgeDpJlk%JtR4e;w=Tavof?8idp%)0`oVOf3$o5z_4*o3Vb}jY#C+(zVtf zpb>4n@=E%Jn1#`O(j&cQf_3oCc?M{cbA$(e`S55Uw>Vo(%I2dJO{eeX5@F>Eo*vzPisV{Uv>E7T1PNSEIOAXYT?3Z%Yhm)~tMRWb76a+tduUy_MPpdw z!cxq*yn%oNHq1^+uwPGll>I1kn{2zFhI4JxMe?aOQeCKhWlYn%ky6J**ynw=Wms~_UYzwOGE&o&<{|gw8z?-5w!Ue> zf|mNv)PzcHK=FmZZ=#cwG6qa|J9q1f?0aW{OHmzEA4!ajOCI*&%N~%?;SxH5P2$tS z>*X?33cHeWQU5rqNqeO*oSJ%G$J9xf>S5{abptKRNg;RL6g8e-fph>NMt!*}kCzQx zD4vUHdxr`o%P_%~CR+One#_QnYxTGe-Y&>#Q^fr&x-<|s;_ZjJh;jG@1Wv*}7FnGZ z%7sf_%JvE(L|j~6huL2-&ZvFa9BppA-^p?8DYPBg=^R5sp=nOZq_Xn=j()t^4ctWb z7u>&!T~jL6!e%dKDvbTr(@7XF4fXdpsF=dk*r5T-?uRedFuF_Ws+U|Q{s=8-Ql z7Kz0KBe7&5&gaDsYW_*l1y{+a22r|^tf$>XtZ$Sx(qtE~-?w!TsH`m1Jx?I#eeo+q z5X_B%n2f=K;Cg(j3Rb2q?;o@-_e^n(yN_b8%MR$2j3bK0iWOWm+}fp@S>JzGmBn<+ zfLKYj8Vk92@z_9CD~ru&mIc{SA^Y{D>;2c3Yg@x3p$h(zH*V}F$0=;CSRlMtCS&nr zUXlYLXPXhPPrJC+N|>z=L;rSad~TG|HQNAzlCAxAs&X4)5&cc2w_Lt-$yvuK2Inf5 zVUJ(K3v)(#K+=Bzuzx|-KYGBI9Q*CQz@58M0%Dg_n(mvZ}_0Hy;41wLMR+>|vwtzTpM;89F|Hd?X zXO?C+JiIWyGij-U&1TODsc=rRS|D3)Y6&0kM?I$hjtw0-I%cIB=o(@efm&&48j#kH zZn6VL4PROX4(E+UBFNtnPE8yvRYS!K?P!qSOA?aU!+{`Yk%Gr`?z1ARFK8Q%pycg$ zidpB7Jy1N!^kc6Oe(3iu76WIGKTLlw&*~}-Ji;a}=2cag@$DBPZGIur?G;bPYS@k# zmUJmL<>G}Q7WBC|RLZ?+)J`!w{aKHyS~&KcmHSG<;?J1Tvw)09f0gQ0rL_!RJL*_8 zl%&-shwKffV`?4V9c{~w#_x!hOlA|=pY{{;2HnDCLOVmrO|CPn2f+hj zEuW|}DXzj=>ZF;MCM|ygWld$!qTEe(0=N8yr6M&5ekBej>!Ee9QUIJXcQHl_?V5vw z+b(q8lCT1L3tp`m0m*3q!8(6dI)j0hvk~ZIJiB*freXJ!jv@5TG)a$0`f5gd&w+T> zv)#oJ;6JqVflzBjq@1894MCl6tS<_IG*czo7uF`8wp3>4W*ayE?3&gVrP{m}o?Zwx zei?FT7RGL3N#t0tM{ELldT;!A>r=}Y*ww!%&#k_rMu-U-2+oyPbPS#84_0cTOT+dz zJIG^Wp_g1QV&q(8Hf>Na4?8E@!cpI1Nnglj?GQydYzdxPx?4nPE3rO70Y5aThJbDu z;YSRKff_=^k1;;qI^jxxhJ^_IPbLJ|^{UrT{#s)G48x{a9 zMX60iqrghLpYTEyf36D9_DMg%q=&x=L(AMQFq}+RULB#O$ZpV;ztKba4JtHF|MsT~ zehk|{y}l{HdSR7C+RV5Y(7^#5RJjU3Du! zK^;LYIGhlpaDJ=B$5Fr(c@WmNL+e;Sa}ecTUBjvuy4P?R%porEbZU@8!j4>_(cF{39wf^Q2kt z514@oOl21!bx;;=l18t#JjFlVK8!Q2F|dCg;Dr?cht+3o3D9^#@X`>AEp#y=hoTwO^AB{1;%Few zML?X^G^G?j|6x8wTG zg;_jsk7fUb%=fCriox_QrBL)VY0l!j$B_eh1!Qp@_lbfa%!HDZL6Zi{TRwEVG>ja1c}A6`jJ@|WXC$(6w|PFDE>N)yXicI06WD6ex;Cl*AifB+WgUS9}3-GEZc zYD`equ-_9+_-wS398Vr&0)I1V57;p9NJJAQCdkyfS8dJn zV9aGyG~LGv5wi?uOoJ`OjJb8S^=l1q_dz3k>*V&6v^PAgQTko0<+Hi1E07`yqCOzt z^iyJDSS5%+8p%V^2;FL42Rf-0SpvN*sl1$zhW1L~uO-IjhBAMYmaQWI2Sk zq3(%_-^Up=>9~qFIj>XpO;Jm%D>GWTWgOL`iW^UH_OK<;)|W;NOmUr5bi~bm@`rneP{7s`v!#C(9Rln!I%^IPE;hu=R~#h zE{rX#n?79zWc0EGn(V&;i&iDGlTs!dWHv$-qm12l$O&2KU7C5V`$7KZi3P+b!cGFgUS{irwNEBVHa{-Ts}SR~70j`tVLmaudr-N(PuCA$5=`tcldx0_1#`Q%%r z_UUBYH&Fpi&-18aOW73-@FJY7_M3bDB%xRTNL(6|?$tgOsrU6Xi1Te_<{E?rRGVheQb`ozCqVFq3-|88?RYE8Ij|)Ci8YCz7!3Es3d7qgap4 zDEI@YkE2(5#z(<#XUMgw(Y|-}2#`ZeW=5xIQX<>fCu6DfZ;zMRF z^cseL>KYzqg3$tO>l54OabgWjaO}0giZn*$Gahr{qtE&ub3vK8iKGNE&<|G!d9t!tS(y7 zNF$urkzJptqikVz!F_}mgS*S8`~Y00 zncbfyOHhh)9ooVK{rYKB{;jc4GdVZ55cjwj?4D3nTGX#E0=YSZ>2+6Kc^f0yIt(&y zU~J;1p`)%hr}q2=FFSYkNNI7AZE@ew&^=r_X3`Wv|Guab-d%0{f|0d#9J%UetG$`3 z{A?IklTf)vYXO(>vRA^saIkTYz9OCV35M~Ld-Ffg(7y=hUo^zV!T$ebX`cT?Lp=X2 z4Y}eEqdu_vL*^R%hW*~=Iz4a*eI{4dU_L6f2d#_DK^j>RQGhfT_v!bN?pnV?TCBzp z5ZycBru?{kytD6(H|X8h{q%Y7>;9C?;_`lU7d5o}?frUjI3XZRz64y|-(Z_iW^r8+wPiqmcvAKHKrR#hh|sNN5(L!oxdC5U#k&W}#8v zk8AtKX(JD1pTIn~ldH$zE3T(67HxP%%^d=ut@UM#$|4iHJ-Q0(cqTOXge4R0t-rIO zYwdYxtwl{ZXBXXMp|lqYDUd5@OW1$65Z5J>HQ(Tk9QOUCD`@OzU|Yx#X#rDc$d4*@ zz3lL(r&t=W&2L0VB&=)f-|pSa_h!MU75>@N>N9=S-@Olg?x=+vzdT(#8=wa-NN0bj z0M6CJLchb9JrhCu>k1-wp(y*hW~Zu7K?%t-Pl`H}l`TF9IBlx2l3xUV7&*(s=w|f{ zYmWY1O}2Qb3UUOJi&O|m=%;q-v*Fe-r?X-lo177J`n8jStWBUsDf_$-2{{g}=w}plr8exQvYvk;QF6enS^* z1*&)h1_or{=)H7MTAv7cd_Q))VwikKUvVBIi2&bE4mS!=hZmZr`owoGuhW??NkGZi zF8ixUaz7cXc*(0!W@CJf3EJWk55dOGBWVH*C;T$bUxdH6b-;BWQUfOxhSd4JRYM7jr810h$Gh&I7?t;=G8J%?%{&{-HW`hPs%d< zn#1mG7>5L@3C|KGLMP@MQ z5?7#{wAWTK2}=HaDnVcj>q4Lhw~+HsS`$c56jv!QU(smzZ_mrC(H_}QIc0yW4a*_; z7js$PuAy!&>v|;8I|()I!U}&I@tkKr-1eai6rMcK7-m$njo5*3fkHsPxb>Wvl1!7UAo&l!-_(-yFb)OQQ6xZO9ZW0|A?7W`bmtM4g6 zp$H%Z*(1xkb=3WSoutXcc8*Xebkz`HFPRU{HJ zn&9?M3dozuAY}=neh34`#4F7@>k?QP_h0J`|rISaLqkv%$=&7>C`CSDqymq!dop6VHmdZqYO-$*?FR1h1 zSx#|dl;%g~)0+T0iVWku@efie_^dWjtN{*LW)r1EzXpf=%w8WA5LI{^wf)w8`j=)SRSzQBtreTN+X=F z0b`|3sAAUD#Sya|m>K7xu5}t3!7}+p;)PgsRC_boHnd$>YN%1aOz>!fxeY{)5O`W< zTPZ^SEh{oAejsqus#f160nkAD#eX?FY&xcRJdp4me}74%V})|Rq|U0x+BsW*yrW#D z?;S0dfpLROID4{#a$c0LNx84|>|=m8^C1mvCi7 z_61(6lZ9a^$7Gkv1JqTm2$Z2GInOptt3Bn2L{w6UI{F1ral;d$%0V(5xXLJrb{Lo? z1m+3H%`MJ?MNSykjV!|4P))&-fwDUL_6})zQMR2h2iHK$VSD8ywpjtJ)r6q=TmC!J z+C%UIeP~8>3R2#q%q5DOQ@~dZ7{V+&>Trr3Y|S+e35*$yt4gRH8uE+AZ}Am5damMv z+B46I!QF!cvhHDN$ zs8|(i&F~U+v@WL;c5hAZXsR-vby=$PhWs@I$~AD{ADWHqAhW+DbP~CgjZ8BKO}XOI z^-)V>XQ$9Ws_AB+-%wVcT{5TnnA?a=x8Gl~5ct}1ja!0w{P0eVD_O|De?Q^6`VG8V zL85>Y4;O8DU5E zEyesza6!PJ}PVlFLw5E+>4Ase- zDleRzpA5_2&jVyToV4Z-*zNm!OWr6gn1TTM6T@_p2EcyQzZuA>B~uM**o6=|Itb*& z3l0fPt(!6$Czp_(w*>c7E;J%< zw{U71Y6TjxR4aKFRr7x2NJ%-5BlB~vIlAwG;U-84fb=xfCnQiC`p5zc+}iI0lIMYZ z9+@%(a;I{6u^&n8(Sopw=J+4)4D50Ii6toQ$v-&?$gpjXWlox?ot|bysO;J0!=6O! zIV8`ev6_`(<**_b>>_-UPyr1;=;cp*Tw5s!J-&g*CM7Oh$7FE{N@}XynwB7Qiyx1hul}=1OMs(Zq%qlH;JQbB4rZ{=qKl&M{L- zC|T=YtW_fwapMihZ0^6-SI9b7*2Tg!qqO{@@5JbE9*5Rsw`n&;N%-WcGG`4?t0z2i zjY`qU9?Twb6-&IU24%$C6WG=L&3(mK)J?ja$d-XImy1@S!rDaNQBfghh-*pRCo@f(nQz?^wNPQ*g%QqNoFTB)S{cjdY~r6R~s+}uMXdQGpeFe;GA z6!dfST;D)`#>JC2G9!WD{eT0Fi`;Xh&bL~0)Ut8)u~_f6u?x=FTEkvJeruFRtc}rK4WRbO5RI6nTw5rKv zL>*F4NDtwSk2$Rv$eqrZ*R>T&y1yN|ZMgWjFUvJKl7r8-(fujO5&mX-U_&i+P-9~^ ztG0G#UIY}dVh1-w<17-J(q&vLFJnSpM_{PzEJ7Es&k8YnqyU-i9s1yZ7b%dQ1*$F}ZzzcTuUJaYsnSo^%ldTsw3{#7N{2q|BSJ_ZJ=1|+8LkU8CSv+aD zTVxeEjFh?eGxN8nD`KYF%BBx3>R;uq2_K;2k3Tc>Pv>+#m(?oP*Bf(#C=}1B znFyY&z{;@IL6mnE219^^FmAJaKP%P}6R`I4^jLqzlvl>R``rID*bePMW4G8sOC`W> zY5s3afj~h2>qu;vF8Gmu&E21BcpJb0d{(+U&(uT%Q6frFP`uZAU%vH^fB?n9V6fmq zU-k7SVH-OZK{_0;t>%;^fe$FLlDXPjC2Y6OB2k`VC7yjOXc2nj?gh>sp{Ib#q-Q=6 zE4B*eO`Y~*Re$6A@0v2g5n#ws6sB^O$;p!3svP$It1RQ=4jSLxR%AE-4`c7tBns3e z3zlu$wr$(CZQHhO+qP}H>Xd!T#+0UeSGo)$F%6O>V;at&w)cyBE{(YuaC4&fUE~RSlM3_u9iJVR*iqoja3W#Lue3e*|6( z>p$lk4zIps&mdICG`l;o`8^o%^6v5CoNJ2nV)D=9^ZIUZ@ow>M_Ta{?`yAh#3s1~5 z1TcD`4AB6JSNz*szOV7S+nbZ--CciJC-+zSx31sWv!}B^=)-^A;PK$%>k#GPmu9v& zR-?{V4~SsNC-vm4+WvKD;VskCw!j~qw3O%n%Xsl)jokbvZL2CKiz{cL(p{;VTXORe z?+;OAJP6s?g;SbKEPJ@+nj1?15SO=HXRaa5X^Kl*Z6-)H1XR+1!HT{;!Rc`f1P?|K zODbWZNL97+>D?($ZCP!0OR%bMFYhDuj7`qis(Ij(MOBKOPhV_LMs05H+Xj`!X09$6 zOP&nbgj$-t{PBq6)~aeqs?T}C6w^HiM<=9r$VQ9nqiA5xU$U$FkXB13kz4AoJWZUl z!GJBcVWBU1oi4Fqu6#@rYz^46wm&ln>s4!Z7b@-L&wsJ&d3D$F7*R)Ta|UHh^vAfUM_Qnd5zt3J zNo2W!+a*7X8jO{HWVVW9TzD4sJwIWJI1?>^9-c4%oKO2abG+!^Gk6hA$1k%* zecw!&t4{OK&(PlQa0_$Gdjs#_$}Sv5FJ2 zt;)l&V;2hkVOcn62iNF;7UPRk#77HWLjk7WbX76%^P}o!I#O7~yN0Ffuq0Bm@xF$N z!yzh^@WvIHB5MT=MSw_3Lyz9`4L{(ZjYiEdh(OnBs^_`-phMWs_1n}Sbf~2z7=m3H zv2r{kD-{On~%IYhG2@su)d0OJq#)uDozY4nok5ta!^>c zL4|xs#XV!6OYgl2By9XufgV_X%HS^j7bjNxkk2+WN0fSg_+@v+*@j6 zY4MUwtrH;I)jF%BDX>4gZ8@;|O>~wZsdH7>BO;Ai$wAh3y(kfV&G?-H^(j>X0gEo*&$-Nxz!?` zbLCXIhE!SEz%y0D&MmT2X`fWbVnh$qk}UUpkN&ay9M&S7E1Y;=ok3RYFMkUTMaJA_ zhha-=Z3=YgZ7iBAMP_z@!LnzDHP|iO#igzf0Bn@`AK3CgdSK8R4he9@Qm{(={EdVU@6l6(qWz9#^nAyP*EEA{IRy6W=0 zzS41O%%z~svjd(&&?`aXKAO*u6pCgDD)CyLXE(zos5Gp* z3_7hnXGO1(A!LJs=*EP8%UVIz2sp2TWfEdfpZ00E^==7kklK}HN0g1=nN+{{zcb7PFA$Q2->mwNCp&zI0tyk^;L$cCBDXiL1ON zXlZ$`0_TD~z(*lbGte6gsw_TN( zE!&&sG_o@1v~HbUxiC^nydP9qVI_TEVn{V!*ZPN)EalWy8AX@wL(fs;EU^_@kK- zC;vFsSJT#>d<8@B9%MdqW3(F5cj=l?*LiI^ieU3; zyO0xN;X_gb4T@p@eG;~+#h~J|-UDh@In-pRJqWKIs$GEZYEr+1*=zs4w+9Tr+&bw< zk#GPfVp^(Be%fZh>6#-qL7f~NFZvKZ|Kj_A=by9P>0CK@ zs^_hJ?vpsg?9+;(z5Jh!Wy=Ae&(SQ;#?R%m?tXYLm*Amz++BV-{&GWUi*P{&=7WJ{ z=4+fWN-_3vi!gbyfqufbKlH>f`mtGgHaL7(ysRVcdS2IsY`3d`I77@B4)K%kk~? zw|DzD{l3s5F?idW8}rtX91ycb1LPgT<*GSi;vLWz&me_S?@+@5w-Ve~=?QRym!fw1 zMCzu7Vko$IxkazGy^|tqN&vaq)hAMOfGRguY@$Z?6>z44pE-IlQIH zjZc3nokD*Ro-FF@_!AE3AB;6O<#GGj5wrgECWsY)<)OC6Ll73ps+Tr4-ir7i$Hn)O zhnlxu%Gi4A{Y7lJx)Hq<@!au3kg-M>{@BtV`O@LGCxgsE5u|+4(AgPLU*;a3>H8E8 zC!vg&)&dEL5()8<%P$*srd)z3y99{fSt+3o7g6W}TSDi}I|<*#8k|jJ!xFW?8%nG& zT`|FuxkJ9(jHRHq*%@?#`TTB{i3hSgb+W=iCNTQEH_4oqVdm=#RyHuDxRG{x=sUkK zklkUsZ=ht=rrYKoNTQ6&{4uKSYcvb-m1MW~s0cFCr>}`4iAf(4$B(7IqGWeYG*A-7 zk;P)3Aq6w1>@38v0P;SD$r5m zUB%oh0wQIBC7IDi!rm%a^QOynFUF-3-We^Kx{Oyn;qBI8jnMUi@$-`0p$5bFMw^6opkSd&@swXo$D zDP2?GUx)vgJ0jB3wELt4%SE@I*zkw0>s77F&8hu72P331sT!gG>1x~XChKjzUw)%z z-~daE%sn>(kgU8EU4Jx>!ou>!(hFh&Cp5<*?S+^N;A(e_CRDmMB&#=bjZDKM_j z!^l+yH(D%^%{S*!@C6w`xFsEJuhr+dTj;6KH)0E^TvPA{QrD?9$SRw@Nf&?iCzJR1 zX7*C|dPStuD3eW)M-u5p;k{}ZTw4?N(fRv32~nVK$NP#UygfP!4d8op2iEljf@Ii3 z4U;O$1mXk#d^&FL;~oNqo((VnEC8?*uE`kI43KkYldn<|??xy+qx#ZDGZ1}xKOJRT zq1BWC)@JFVXI(A5jc;v;zFe%IsHMPO5pZWoS} z^2>{#Z&|9em}pjjjPxS$CWOc)Y>i?w;o{IE7LKJXY@t3O*oi=HDl=T0+Q5ocIZZ+%GRAY%g4UJwjDFDC;XL}xzc4?bfGY80??}l-d{M|Ygb6Yn#1v2()NA*) z=DCtGK_0tGL5yZg8xkvzg_xf$^GxTQM+7;mHwhBsnb~4&HG{bJrE%1R_);8lK2%+t zApcid`otto$l==>wKuhOd#oX&BV7sU4%Mj3prv*y%l3#%y<5Eato%qz@sQjkX*eMmWPxbgtKdzt^K z<>HB*ADWQzzHuR4JIID1^TJzVE0H3EX<5{a5xg zj|VQT$55Kh>PUEmlLQV;bOaX}UsYwWdX`EKb@L&6lyn3y$~qd&y+W#?RLXWlS-G!7 z{criTj?>-cZvLy_RJR3Tp=P7vz6#if!E6Ar!se1svbuG6$_djl)Ee2` zIGhOt0LTJJDOZ^;>b37cD%%jd+G5?1Sc^o!awwZXA?z{4(3t`mIHT6u3rZGi5J!D> zw-li_^!UM6z_iAu-ZOvYju5q@p!_ywni7n;8sgnm8_jEpM+Mo66kfOw;*0+3O_Db? zOjy!}*>6g^h=@Di4daOns}a;&Yxlt3RzFb1ZzGUV+@!unhRhm4MsGx zrY2egBy_{ZX8^_{a*2}M4Z|4Q=i^>)QFBbRsQ|Zc@*`Rd!>L9|3qTd-K}rvxep3s-^LFp{z%@q#mdydQe!rI-i$W4a zr(BAJTDK#}v(`xC|Y+>AXEy;D4=*pL?oiNGDhsFMADQkR;{ubIi~D&Dy<$EpszsE)XuxC}bvV@O zT7!eNdv|OlYL!n~?j={b(}E~*1iy?p%bilgsdkqw)1z97LP?d} zh{af5Wxh7s_Cl#KybS`@_cN;Ll&{$TJ;3zL8D~FYSB0;!+vD$Y9)?`C=~-JpdC^;Y zD8h8T`C0_pd=2hjiU^HP!4-Koc&$WKL6gA8QJ5yKqKs%VC8$Kxjt<8Ve}q0Cn4mpM z4=H3{3M}KP2eN5sRrarZD_ukluHpH5xXMaOc~R0OG8WtMIj`Et9##oPy;O^rL!Kwb zOt&2p>BaVQae0)v-D&MAvD#9pY!pn3GZxk^b=45Y3=_Jr5 z<(Mi87MqLPg#OT z@D2z|N!L;4q@z&K-<48NCfEz-)Pd-Db^|-5N@%34K#929!I^@~p9(~CLUAG!h^v5& zzjDu`D+UrZ(J8YZYJ2+80ITe3q~u1kqH}G5+Y-o))bO5)Ngi$>fN#jlwQgOXb`o&A zCcZBzqf1Ivsd`k~VTPbHtEf#SE8p5-wXH+%OT!w0kuJ+l+bQ2VQw|QW^m*N~8ar*o z&ieiwD`;^c*$%%-h}UqvY-I3Ndj~k<`qp4uph<-pW!yz7w+fv=!*6aNc3BdMVPSM> zd}g(tZ;Dq8t79W9&fuixmLWdu$|nP*r?NkP+0==LubNq=lbDfxlKWohE5CeC1R>$r z+>6)6(S--4W~&1`n@UsGQm^t%V5`%&T7;Ot*7?|IEBCEa3`4E2Xf+VH z`sa3oaIy-HkhLaYb8EPfx7C+8K+Gch@lOh5?dXqSXUuie#+7gCA&_+>S2SUL0GVKG zm2m;A-Qz(ebC*-l)JAuocEc3LIh)9I_YVn48q!5`<6vsLu85F8!)$Ai8}P-0La)Ca z2fLi2_>%c?4#BW2&-lvfbQK)>@?m=twVfU+o!x1>p0ylmz^U3Gc}{y(L(A{>DRmoD zUEvQk^?cJ>A0Oq)Ub6UgVDVm8GP5lH0VzQ$;yU94?w(G(QF0r2moUOyVY{cl z32*IQ!!0qy+3C8ozj%LH;vR3azX`ARR`dIIKflt=W4q~J3|~LLo|Aod-XByxxJMG) z>R-U~&GpkPU%C8s47x1cbIYe5#j{BG`F_86_CX%~`uRCJi0d50T?7W3x~GEm&k)_c z`A_~#{@uI%gMM~5#(#$W*I>!V{pqOkkN+(7*uDPnTNA}Ruu#Ms@$O9jV9ikyd6X+2 z*<7V{dkdX`=Y&wCbQ*k9)&<0A;0&gQ;CC5b{zIuJ-MqeM>XXJ{TIr*xp=j>4Ztk&G znCTpFucOfJoi*0dF&&)e7E5d%g`XZ-*!JQ1ec&C#F%}PI-lJ|>>Ke3{TSfr2;VYhm zu0neqYJId_=&JT9ps;v&*8)=t3ZpVWRK*Ac6^K7L9=yKa7QUE9?_&vDXhjvxgQz1{ zSVlh2(Yk%W?fr11!AY|INjkR*EdQA;f+lMK_3I*NiG!FyzXj9 zyA~g;;LVt8LWtW(h|N+(I_ST4)+@n)$51^E-QeZzHsY%V8AF1x7B! zR@^ZtIFn@eykhYfx(xMBLeAE*l%Pef&+g^Mx~if9`}%gGG4o8-W+9B&i*WS1pG98y@tW0@-gNLD zkne}s)c{lV;lc1$1|H+7`Z-|_8_tmQ!CFf}E5*@pOHuU%P%5qc#*OZ}Q;$G7!nj?7_gq-9QL3Wl{ox8nXDr$;*qncmL1_QLL(8A_N%X znr*i3XVgndN1&S-Zn&pWqmFu@x?yw|muurk@-44cwB`aq>8k*6gCsTX-6bj`s?Jq5 zm*G4j7U^l=a9;+tR@`bTzbbG%c4tM%VxWiXEWz^&}&gO7I02&|k9^v?4zpNB`DeJ@~*H&8IM zdFi|g{RGenuO2!K`K5$f`;4QuX%&rwK(S16;_!Rki_8nh8a5iOfRiFL5;v~K8@FMe zLj!}Iltl!OlzvT1Ld+iQofMfxnS48x6cD7kDDEXQOdNnZmU+p30Ve)^XBMDkj{M9hnx3r=i%!lI=l^m%+M&)1QZ;h>t@Dgfsa<|Nxb*M;4$tfeP~8ru>wRs zrvWhR311zQ8Zauf-a-yukTS(*pbacvfh<}MVNDpk!x@sv65~CTunDZhmez1R=nE>w z0d}##Womi0V>319VAgMYO%ScInG_h)W~^6zf(941tkXbge7ED{o0C4MF7&t?e&{zy9uhA=acleyq59CJk4D%k%wc(f# zq29%-DgTHeQo>`T#u(eVt~jJAAr5lC(GgQ??#j=k91-EQ$iaXy>QwXRO^5bZBVt=y zdxcTq2$P6v9tlJW5Uz&$7b=?5?8jS~9QgJykld5K@sKQ$kSZbXoQB&F+myJ~LytsT zaOjD{z=!p71$J$<1S;q=n4~D2A+m-=e}a@_io3X@Bw*Ha zBaTX<^sEc55tl!?(l3gL_}pt{lv4jzv9|Gq?Hzip-;$ORr@q)@MjiQSV}nlQYarK^ zkZezUp_xb=@xN*d#u+dz(R!C-dK+9C6Bl z6|!y=eEAYummwl)Y$UYBLaE53fyiwZQ3*5ZWKV}Fo`~oiOw|(6%1P(!y+G5SOO)SH&*^8k8BP#Zc;84r-U_CtJCGO`JccOe<3Ic z(C9R^kXQ5~x-d~tF%D@}mhNNZMGSL3qHh>68wc!Y<}D#7Qjx z`psV<3Je_JL#(p^;Hf8H(EVRrl*`9nXOr$choV!%!dNyo(s72&{qz z(^;^9fD;oh23*htgczZ_PDKz1X~`ZE+_&l|YWVbE1_^Hn5|M@`ZKv~jH_5E5U^qj` zKZz2)9APbPP|57j8oo`Cj|d|aIP;+p!dS_L%%7Q?%9FM($(<=85w6Yq;0}8(O~GW= z8ZE>otsKUb4>gX2P@H|*WwK0UW_ZRJg*Q!5#m(iGvQ39}56f#%>gp>Y5H=3$iZWdQ zsHXaS7_}Nh3e2RyF5}T0E_MbEY9grVsJuhDZ;4gR@YLwB#6z2~5h3IPdYy-meqXzN z$$y&Th4lLC9aMe9EsEoAP7yg4!*q|c4kb1I3_Ce3<9&sAR>5z#@QJcm<4Bxd@g)H_ zMXJUx7;jNX-}~J?Y6#J=f|F}op{YMy*lU%Y)Dvg*D2Iguy*%0!IP;OL z)@PwVAkz-t_!k)~E;`lUwgDqs=49PYR<>03&I4;B}}CB~!T4E~^Zm z!ntGe{vH=jQte8{F0@wFmEFLS34`D(YbI3D&|)Fu*IPJ3Ya^?RKWg39BI9_+1F>@p zrF<$q;u;+lU*~y zy%d3?Qel(PwF{JqeW?!6OA#Mvg=ezNolD)_U#sP8UK893skzuV(ZJS7k8H|VI~&}8 zl!JI4N%AVoK}&ek*1^3pQ%$!Y(v)h&)*OgpwZwm;P7er0+*Zw0MiIKE`1WNp|M-JE z>Xuoo%ywz(5Z>8)<}yskDfNq2iI}s248ghXfK@)qa}dm+r86Oi(Vd*y3-}==NIL|o z%p)!+F@7WmO9jKKt}+1-*(m2SL=jqzmps?~@1nk6j8qpbmld3-pCcBh!_b(CmFQo{ zt%wJv)~3|ej1RvhBH!j~`}H!+7r3B|%-Cc~fdyd2Uk8-J8A4jFVpk-lSed#f8Du%4!>?qg-3C)?={!ih9<$ z0oj~Wl{!YQ2Jzz8kAeW2I$-dq)3uXJF~5o&PB(k8LfhSkA^&1a7=5YPVM*gr@i zNlY(Ci-*YUZtWv{KpM#*9F-HfA5gf@INe};N(pga4HSbdh;V9O&vbYuiQj+-tg*}5 zM%8G0^c|U{M3GsKyg(_jne?O16I3nu7M-QclcqYXk&&c?YRr?K6c5BU1_^-hHF1JH z;#k!~x|v&qt+cUunDt3&CUjx=$FGY3Het66M3HE)pQ;G6!IzjDuZiEYT=>{^!p%Do z0frC)Oe;cA?9$p(sUeQ1?Owt}{d3nZ=#TZq4@r{016`sC0>2+!B32$5D6~ImyW#@= z>0}CgnavWYp-wOr_HA4lYLa=<{C0X2^w;^>iedx zp_8N>J8CT(fI?aPOFy$ED5FvD+eAwi?zAtu{duQ-C#7H1QztzW$0AH*ycuI9X5yxgOWWEq&VvG4$^)YWLacc_RB-INrecoES?l^~Zid-ehV&=2E_ z_6;N0wD-|9*`e9DH_kmpIlK#XC!?n!*gMTsO>Z4yGh&2dvXy}J$dpUZIOX46ZwW+E zc3`=0RZZozHmx~{T9C>7%!tH$^DGj05?GjhHQPyc_qNDMFX^|vb040}6fxz!C$i>p zYO&Os4sfzi%Ucp!6kh!Ooze*HHgn>+zaCKyO}=+>>)O@bs->)Oxn3PmQP~@RHTzb~o5lt=4K_a%<20&0!UkYL0ACHAb<8?SiW{Pt@fg4>uM)!<>bmZ> zgbsjbtNPjENPN4x@$*HW!efkVp+61>9`ZT+4jlaa zfuaE8fp3gHPU&O9h8yXXTWHy>oMy~@vX|0$!}fa4$GJhW%>xEd!CZ>McmK5*H?#dD zI@+2U589b2LYZ&0PhzvWY33>OYGEt8tmq^TY9kJ>mVP8f#-2X8VD5`@*~ZZ)S-%JQ z5HGblOJ^l)du3+_B@-`qNd=6@6r@mKugw(kLZva^WcJ5}%Kju_b7-&-j);)OA{lPp z`Vu?H)r&AV+zq~6!a;W%9_g7%BD^&UO=h$sLPss_p;C&cQP$93^ zIfF5c;Q+n?u#LQ*x9Yv8Wm1=q9!R-7vpb_9hs)r1i5q+HN=1-@7m*)OQy^}iM3NGl zAI@2eJ!=^!N7cm_?=bVWGR%=7cH0g3jq}MWT1tus6<+z}OGkQL_ zE_w|#nRQfQ1y7hXxoH+S#|GigSQr`XAL;61N6MU#gcYxP^dghQQlB>=B)x>!TT)Lp zTI=U85LP)lF5(4bdhz;=r(*rm1(tE!PZICW599B*0{lJAX%~Y_8+0XaxoCFvf@2-t z<5TNLgk+N%+H__G?(x!Wi37J~4C!d662z1>#EeEmS$C< zn?b;v53S_Z0~BIIG_{I3*1&R*x05VNtYCr&(Z74+c2kSGoKv&&Y~K3lPP1|J@VkB7 zpv*$85S7rEe$gdoA3>?ys#Q>v#Ahp()}$L{EMxR1nQXMA+rj^_F%&f@23$ZK47q&x_Ur2oeQj_cgq4|;XV*%Rl@CfN8ZEQZob$NG ztmAd@IQM}qc|CrD=U)Y^8v*dIElO{SVq^3x!F1-9RQs2B>+r{Jw6jCLoU}@U9PFm^ zz4t2ncO6WjImq=!=~w#gNN*@kMNaRuKnx(M+3(Pp-*)OO z^LMj~bI`e#y=L=oDVtu7s68@QP)P3KTVlZwF0cyBCe_(4>7A6QWWmOSOFnkRiL6>MSpIUB{`zy zf`pEvSQ&0B|0#5(_!|nvzEnpUWg|2vyWiNfx_b9e9X|ymOX#HCmga?nE+p=`sq7NF zhlAB|(H?4{=6K<#r1NK=A(miU!m0g%3e8V(veLaIwS(`NJI(hu)zXxEg~*7Wws3!M zQ4Ecc&AZvRcCMBY>MN`5)FMdh+aP;1L|g;}6+73egmW!%Nc_){40!?Ft2Bij zT%s{%ve!BO-umLj{1Cd#rE&imJk%q|!sOw3E3q3)_{Wv+aM_YOF-x%Dw=S-gx9r=* zZ^>Mm`k6WGuvGR?SfNnX6-#eTUvk1W#fmQL-OEE-9xn9SbrB=QA?fP2o z+nq<=n|ELT#lKru$G@~!Grw1F;a9s}uV$~_#WN#n<=a6x2&1f=*Q{r+SL33IFw4co zE!w_kqb?6#`^7L!PVqZ_N=Fx6sc*K#gQ?Ns2{t4d%lS!Z&b^}q_EU}$Ha-OdpE5?C z9*%A0G7Q!qw_*{tZ@@C!>;`BeW{t$t@kb*T5Nr$vUh$mFZ`UHJ0cjN!xyv>#Dq)nJ z6CRvu9yvmL%hvtG$UIoP=nrF-(~QZ7ah%WG;s@m@&U;6Eitsj$2BQ|<Iz*h9N8&D^sk>{%jfwG3XV+tm<$~F6Phq%U}iHZd@}j`rm~mZFl0~P2<(2~j02#& zeM;m3kaZaR6x{j%QT-z6u&xf*V5KA7t!ikoN%qjgP9^AkkXFw6um(7G>Oj{qtfb$_ zsy{Wh$EEm*5fN}+aQ4*RD`}7e8!}529DiYL1LTI2v?+rZT;9B^5Lm#LvI3zuif(%~ z=I*8pAcLPn%<|?S9Uy^{;(OkZu|c_lF`@a@j;3PdCH%mx=Zo0zAtJ9%yy6Msq%#Tp zLzS~B(A3Bu<{^Yrpt{-slkC@F_<^&546E$a*`yev*c@5!z_Mi&*Ev-{E<(l_qqF?V zgLxpjLbw<%IXv}6tmcq?UY=*^225i~I*-ztQ-SomAVyd#_moP*K~JqXr+EfH4ubw( zHCxu=nCQ@&n9?p9fk3kysF{JdvJq0PJCVY;MN1i{;5Vl+gg&evhB4`wL|b$iECzE9 zm0VJdDk4(TFnOAM>ktxd;arK;ZGcq1g>Hp+{zA}Bg0K%=of~oFl+u+04_Sj`@*@B? zw}--dEd{)D|8oW~A2E1sOsjyf=^IT8o) zB;5hBjY5O`Ru1T6t6{HfUOQSjVlmLE(i@ct^@Jjdb~~(2t{yo{ zi=r@UWatG}2mu5EQ?W))y>nPr+89!QMRJQkKtT*kcQnUyYf1WAXEM?T04UooI_i3K zD8@2to0xCSnTN!yC=L=(%t%!7V)~XQ+YW+6y~0ITNd5oTvhnkif;QYsyfq6bRrOuH zN$6{TaShg|GiBXf6+;wfpLbvYST3)^c`56XCFh$wIA`aWG~oufolLIhdTL;~j5Mrw zM*DL6DXC27lJ!6C?0}rvH9_g6cP^88#9@Xf8kc=~37}jzmPL(v^-G!x<7>5tIMy%JA-mVr@+>1I(i6cOJ3#l zGH7uOJ}xn5wMzZ4+2r|KHbIKFz#v^N{gK%A1|IMz?S4G!b2S=?zrdv~g)M&5ut7YY zOld)*Y6njC;A&)1t;kRE%tA*opykG*N2V{Z)^R+&0tJ6=ON_(6j_2kEmvkIa0Oi7n zVdYKtS}q1@5owTB5_tY~1P!Sc+y}K_wdP|(Inf9pSQ}w7_*(_=t-|pe9)eV?ln7&( zulG@j@>;Ux6<+Qc2h?>fc)85lyOye zRXd%WN!Gkk-?n7ghWt(T$IrF5+hHHH%kSG;cw4jS-|yMNcxRl{-PR^|F%Bzal;5eyDUfs#3F z6MNssdxAad+_9cQd;^QwOe5qt!%%YPb&`_j7j%zD6q|@=AQqW|e&C~^D+dRvmEAbY zSB52{Y!W*G6D$^X?UwHH*{n1^ycgQ-Y3}wG?vud_+h8?2*tIy??bW>FdUpq$Jc^)p$}KKlF8peKc_c{dwCZAQ|))7=6;eA}U+ zmN&zm>7QnNFuu}f0BnJl4B2h}=Ab**t=yDv_p@V${q4~>699vURvoVZ%L$Bm0SC`V z2iz9Zrp#XjO#UjDe)`~w>+Nf6xw?V=il7E%Aly02eINEDY(E`)P1gKuk!yic012Ra zs+W^PJf568uRsi7((jdZ2vc1c2ba-0qF8^!#h%$1ST>_4=(swNA!18JIpK)VYp@pR zLwST&Ch}|YXpTtAP>~D1AE-OYSX498@xvXOe3qbQJ6D}FaCj@^ReXiqYU%IXL8LL@ zKIsP}s82p@8tOwj_nW5*I)T8*rgTK`@QZxrfbk&eiy0nZPMke|sBME5%^=LtTUE5k zThwK)3*N?6QODRYP#Cl5M^%IKzxx3dc?UBKuK=K6Xj0EuK7w>J>AGX!6SP_MxwhYH zJz$G;njrFRc+`@_qd&lx0!ir~L?9igJKn|h%|)vtMp8@3LMnHc1MAb@TUtOcGMJFZ{5v5= z;VdMk_W?EH@gauQC@ke#V6tfi|oFWe?1S*rC z2y{e;{WJnX)JT7kmw)y*k?Z+JKv&fD1IZtgj5Hw~f5n{6>e$LE@gA^AoQ`{{v4M&Q z{Jy}mTHxW=S*``!q#Zbw67HPySY?Ns`{+ahfQH+Lz52Lgpe6QcLII&uI*$EfG>DgQ z;PO*!@>Wyeoq_?Lk^E+usf99uj&D^nNatA^LpN1dW>W_DR|n(XC)?SrX=dmo)#_6- z#?o?%?|pjRW;-xU+1^4 zjeVpIdpM|O(x>$!AS4QE7BE@C#E3LO z5e_bZy29Jw9DU_KSQnvzBF+!*CnyCR!^3e#3BI-qL#-iS^tO53^Ozc)=aJT##-uI- zCA?XH_|v(`a+7oyDvUCCA*{3D7^X>9wgyXUiXX3K2AI#lE3S(w!l&F`w?IP!l2)&` z=&kAfIj*8cTf4H5OJpN1Hl1vlJnJ4(0xN_$pwbAvVV&CP%J@Bh(5;X47fYbg zZA^F36er68g4Ql;gtmi}mhcwcutXgrwIpYg3ras|Cp|lP|D_4@UERN#K>gWy;j>ZaR?B+!8^Dvte&E)=d>y>ZFqz+qWIcecrp4y*6 z2jI^&Pocy3OgJt(cDdM_H)(-N^6X#omnAW4pb+7&4c4y~mhv@EptAT9lCz=ivZu$q zOdp6Rh7i>87+LNDbBj5!7!qp-_m37gDbJiSHbP;HMTcBd0?qA_(FIYoC$BgooGh-= zURpr(@c9;@&_Cy`;V7q% z3oSDBqPTPKV|lsXD?6+CG3DcK59OfDX{i%R5WAEJu@-o*1=P6supn_M+!N#QD!x-Pmh^nQ9{|#sExC7u-Mdg zReuVqTP1>!93AL>63_G8w&~=s3U+TX?|t}V3x2|ePHM? zCK4(q_1nn9l?e%6`*|@Ww5%zLQUO>sQC$yC>lv%tL_ccKhb0$;Of@4tr zB=Aei>eJV`fO9lA0PvFjy(%>&(Pw$#V`%(q4EYSDlR&yW2&1ylYHL?-qescgbuCwi z>q0AfBW-MXnBpcoEs*6yamIwdP)=5dpq~0BccYj9lDKH3orxnY&PYqn6Q6;_EM2YK zxXH%DxwgPY3)=THR9P~=!$_P~1DW78fBzPCIaU_PKKm>lZmCg}g`e(`TH>ym4Qabk z{Z|xwh6Vm7gxTy;$^~r_SyKcv1*?RdoZ|rkn-V88h2+Gk#24W)qF;na$Z$}fB%}`+ zOv1?*qGEVe%Ft73dX+kqU_nbJT8)wpl%>w;XiUfVw5qW^2}QiN0u3C!X!ts9HfyBC zp0|7|3#U?JjxT$08V*ZFV&QKkAr;tZU zVjtJmlvbg#?G)Ob7Nz)_RCJ$k1Ut5$QEgTQAe4S^BWZ`W)adLr*s`oZgT}`|l3>(~ zu#T0Tn@&BeystK}rLHY$60Lqmf{9H*QX_N-`VW<&Y_c%=G0B4dU(r~N=z}AORZ?`= z`70t6_as`N75TMZe1WSOYe1LAR&n7g5ve$3C^^!oa~pD=)J^ z(;s>e;FlP7nv@$^B#LkflQ4s9U-^>4{`6< zB*?oiD%qb%sEFcWp>Zp zpv7vB%>8)-5CTBOeza_4mY97^U4hTCNKCSu{|yS7&u}L8F9uTq{lSbI&Ezt}V!0QK zy~(C{V6uE%lA9;;;&x)iR1Ln|CY3=KSya=yfF5A5%^o$9hB>0BEwti}K&Kv+FctM& z)B>pk*E8+P^Ib!km!sh5BZsqvXKE7W^JFDLW1?ssa}=gix?1KW0#W%?#pMj88z)MO z6gyn!RoV>bLvXMr8vD+|_R3h{*dABHC~0rc7;i=01#yFQwFPk_qlTv(eWqYCej47L zW8w1{`Cx;YUw%3m>gOt!XF`SAmyQp#4Q_!CEdiF3Hp50Ym4<+U<}4!I8BNvXB|;ca z-Nfb&yQXS<$NLR6(1+1@Mbhr&mOqGe@CeEE+A7!P;5>5jnzPNOC4;jug8kGut5r(r zv!YP_#x#h@$BE?Krn#+aY4m%Q<9VSu79n_STD$;5W1ONL&>RJSXON;bZo^2seF))2DIDb~{ySoehb z)mwjARd!CqW2GA}H9B9eq*co+_NserOS0o+A8q%y!S@s5Y0_@I1Gnbv+5_Q=@l@~k z_o}xVDtQj%PkWgin=fb{Wm(Su@YenJ{rYdXmYs?5zrwXF|LLvE`agQ>HtT3Qiz)=c0VPmK6!>;iGgCJ*by}MN ztYJeTGXK$a$J6&o=iSMM?dHbb?Y(;*J{RwO9U}F8I-4f$@;RF6@px+AK|LU8o_ucq-S6j#J+U>oq)6e&7?(*|W{#BVDhA!qc-TTJ* z3&}m#?VZv0#^;%l=Yj9z-p-q;HRwu=zryfK0T0T-T+=PK)AZziA5eU=g@xD?1Br}J zwuff%YGzw}XZC)bugE7SC42?@e&nHj55Zx&t%^FM6Z`1TMkw`6h4h=Sn@(u z>qoB6_RgJ^px=YF@!)G4KTPK&CR8T^Z|0pc!Vjr;|FX%=EONYI$-G>D#l(`$6#kVE z3@}6z`-OF|*GKn8$uf)PhN>F+WLhhCF2(jn`@nfvxqr1fx7^?;^ zcQFRyRG)SlLd5Lj|61~%Ri=-o;~k$9A3J$$D)+hp63ej_OnfX-diBO}U%v03eSa0x zX>ZEN&}Ylr$lgYhwOY*Mta&|Xay}+CH(5Bx;4b;IYUYO=YnZ+)lZTr{WINE>rO@_~ zdjslLWs!s_yn?tNm3h+wO=12j*#u4yWq+2A8Ew+IM^4Mgau(Z;k3`lMu?g{Z2>u3x zzSAVKmnnx!*5n|agO2-*z6OZJ2JSAPTChT-LD+w16L2+- zc8~+!VtOM5um$JH-$-f26c+e=>U@U2h&gvKrLG1=el9Ma!*pEZ3^MBUWJGLhY`&0% z*PL?mM$!KO!lC-4K{xV*&+P0J?)SK7QB~MJB3KlGxULWMtYwaT02KKRp02 z$@PM0cXau%$f=H8q_y_aSh}zGT3VKU@>W6SRht{NfD3bXb?!rRtvhE7!#b|aU&zkB z7Ljn)fmJu8uXJn3?QX)}+$UjC8!HK>^q}Yt;Y(2OWV~qVkZH!{X@zghtV)^>yot#^Pir0~CO@fC%#Nq_ zk!{Vxg-T%50)2(hHu!9;A-f%}jG_m_B8utEH8NAE)^7tMgEBF4u)Q7r{#1e8&)G~Y zpI89PG?87#Vm~wp?=Q{ey-Iqd0?KKAF)NfF@J7)-l2@k=e9*3IJ9xZZf#nIW_*OnP ze*^i{vi8u^YF~0;WD;$Og*wbfcCjp0sG1*MM}0i}^YcB?n)#6#)-ZQe@ks-}7w3`+ z9OG^Q@OXyUbBC#9XDY~r#)H;w^%zoGjsVbO@!4TdcIP{^{d$nnHz;K|-LhSLUhnIr znZ@c3i0uv{rXULNSDT@V5S|~&6ktO(!e(e^3|RpD=sk9;8gf#<+DZk6 z@_U3megOOhr2>9HQh^DwK_Fn$$pPm*vUW2?!Y0fQ={m+;g4gNaLl(sk(=%?sLkOK$ zKzW_4P{rY&(yWvuAlN%b8}*vScs9$1Rhlfv?6u#(B~FZF#QHbLCTls6EJ9;HrJgs6*R#0OMUtxg;i(ed`A>WUf%gLW1m+SwS`&%l_4Q__L#y8fkt z+zE%xU@8$)grHA93`hG-Y!4kYw1HQ$j99O-yMY*VHuV^~2^VB7tnL8j4@k#NvW+5qR>~a|Le(E<9EB|E`%od-h@sO>KphOq!(l_;%ILUayNU}& zKCc6=9QSYIv)|=gG1ggeifYz!lwwe{;4UJ=8D^5!wOB;FE5`BPdZ=-M1o1%2MDE{hWy4gedcqtJB3->uH3?OhDA3n(i zhaH>!FPH;z5&5o!_}Vot7E6J{(nxPXd_GM$_?J5?Tz}+mvGemvI?dZQTIQ1V-SX-- z68RdDEd&VIB@sJO_INyuLJ?V}}~UDLTh{JUSJ|HkJ1chJQ2F^1rpA zfrmzPA?G=z^y+VmW0QFtEiTb+RiF%Qu=?Wv1`64-VHm~}qO0Xxn4(V~B`%nM8%TUV zQTplBC8<4sp-$784Ov;BTryuIcoN2o#>>Q;r@+^y$_I?044bpb~Wch zdorQpTV2mWzyW^2f&q_6AQX>~oQfLBBHny#D^k$yP_L?rmgN@1GtLF6@TSz|ug&zJ zM$cV}d>qf$!-)}F;{?fOB{O-o1i#(}nE{YvQHFjfbOT1afB#-La zHGwNu(7Z`V7A&CI8{LL4-kx#*fq7ml8;f9v6W#;BSQO@Mo1zCiS3>F3V!4M&{YxpV zZ*iM|yRDgAVTPR0Ax0bAz~~h0F%#;W_(dYU89b1Lxjwlx13gNAlaowJvOFU-aJ&SD zSt5eET_0$1Aw5CRqNTMaw4YoW^u$6;=$rV#c3iq&r3yykO?=Nl3_B~wh-jP85MpEk z7IDNLlR7#=Psjz8p@XX={T<~Pd?>*_Z;wC~9Of2i7%Bx+B4=(?3n4-{Sn~)_gSI_Z z)yOT1jB)bk{;mR4CVd@z761kbuiSX1effBhtzKD<{mv}I_smoy8<8ErMpsUtkQDQ!+B|R1sBVK45^=46iibczxqWy6XzkBCrQKMex?9Hm9!XszB0-J3 z7y{0x%HiSea8vbo0Pp0OAYZs;XAZ5yPwg@wiLsAlH!%XY*nbdBcCi}e2>~H@jf7hp z?!+9v)D;tupVq|6$o0tB5;ZF*V778Bgmkr`H#L~o z`4$coML7vPxWbwg_&3pTvQ6qhqR28Vyd?Ak2!#AHO7SJ)Ly;ACJTvHCd42Qz;7%7Qm zlaGebkOVVJJ7M6c>tpCNM$CaX{8KwDw>b>=VqUP^dK8+VFOjvdheRn%ffT4tWn@`( zoEhk0GsxWI%5HvLhhu=1l64cwx>`6k5qni1khrk8J`l1PpU@b}{TIRRVCg;F!#*`6 z%q%86EiZyTGkPZwjxv$-?CY?KHJqQ3hJa=2^m+m$PMN^3WJ}Gm6S0xjs-5Ry7t-W! z&-MCmMNYJG(DYdHtuvVcD!4}0NFj>wV~DZn(!lDZ#|G4(;ULoSTg>t}D>OH;I5s_t z0Jq9Kwu&$UTub3H6mChE#zrrA_3M=`nMa?gKP`|MCs!~oU!p!E4Ft#8_HrkHW#@!R zGCkns9bozg`3dHU??+rr*(YqAol+2L$5-UB;*azj?AaXb48aglufOK+&_3Sl^u*+vQ!(7I`ZK(1Bjue`V*XNJO4Eiz%B^7YK~mw9ir4 z8|i1(EacM%@I_E%W({)}hpCa5iqdDKQ;jJUc?OpzH|^}KajTtYT6PaE-eAX3;FQTl zBaA4TFe<`1Ap;~GhGkxNO#X`X#nlS!e>`ExWjWVrVxP7|o0 z7Y_jFA-YOkD$&eL0eLq8LOrH;|MAg#Zbjj!Q}n*g*JV_q6 z6j7tT>Qil7X>*))xb zpfyFBJw!{4m z^}~{XZD_B!P>|`1K%eR3_zu?8{?TWfcGaeX7>xs_@Dix+Yn{ql+FmiM%r0z-EJa1eI7TSck>;)E@HE&A zJX__GkmSj(luEuNr0$)ax<`9cxk#6o9bkC-GmLf(1+?aRiVBK-lSiY57y*18$i5|K zVsjp+;vUF*ipm#J@hL}nH}0nb>a@ZR9_2MLd>~P~nz^QY-gv$>+ui|p#0T0GaD$-b zd38v&C;$_084L8(fjQmauRnW{kNuI~aQ;w%hXO-xH`-Bj5RmBO`(Wiyt3@0qe5Auo%jXUv$&zpyCJvnF`afcKOm1A?Lo)(ij#@>~hDCb*w3 z2>RgJyyu-u)fNqjMAdp{Z&BwgO{^nP*=L#*wKF5`av?lD1PIAeH%eA<>cna*ovD<1 zyicM&{Oaosx>o1O%cOV@l79~&C;+l5s%?<);FF)Kr}mWvqp9AOGMi}V3LL)PdeUh= zjn`RtZC|8k&vifiV__Z!V;cQHO-r-V!Q~vRRwIoibtXa5Jz23tC!Ci3JGfg7y-cc` z-0AlEv4EZD<&0Rw_^iU}$@0^}8n8W`7L13?>V7UZLVDaS5xb$w&plgx0ja8q=UnLh zS$ax7bqZN}##7Ykgr2Ym({}-cs)o>n7uO|4^Y5fHVrCBG?GSy!; zB=WJKv&vjci;(nhsEVkQfam)phfh~QOl8ru>(eR?M(U?jDYbf0Q+N*{y8))t(a?zq zEV4Q@asQ4(XTe1@I4uS*`Jvj$-D9tg@qa5f&u)M=Z`6@oz z?|L=;lu{N#=npK2HuCZ<;7F&US{T$Uw!Tu7Zm>|+Ooj}3cA35^`P~j*i_8w!Vkwum z!#eHYKKasJ5D|P?Fh4SC4^!enzeUcMp%CoM)^7Y4VWRE$x7C23S-n#b%<2X5Q_~ z`>k(2Z8#z+*-3Rm)GDms0L$C!)7ALHsnV=l^+o^d`C|C!D|I9DapTCh>Jprsg|UAwOJ!j*u@pNS|AuOs%Ld*2c-U56&*rOnF>#0TMKbaGd3-ceoII1B zjlOkeQ(*RD5$4`C!+491YD7~MSRn{$w91eJdA4<>KqWDRci4zj8;@b%rf zspWCOR|fu7YNA-sn{{*~Trg0Xu#Ce1YrY-1sM+wYU+A{9?@rHV?Hpa)o}Kxn@z`&2 zVH3FiiEG!{#(b&C+68lY=hNBs$msYAVA3L0uEH|EK6qmKly4DmnO9hTMh&&v4?E>o zxDK;n#{8l&Ww7OsSrFgT(HbdAzp1Sf!9+7OXo>Fz&*#s6aifmddG7>0Q>{$p^leDB zDD(|f=Mg1k|GW`+t4y=GrOi?~?5(l3iZ`U7b)Q>%n>wIRI6J7Jv~k_D(ci4tdH=>U z-CZ_o{c*471Az0~waqCST#RCzXa4J^05*e*!|S7C+DjEYw^h&!f{0!8HBRHJ1FnZ^ z)3LL*gzIgT%hiUWacYFDNd+MVXtjZaBK-n{9lqzvEw^xR-|B=}oaSWkLhWc1JBUW3 zt98Zr0pwS5;H5_l&g2^-=G??Aa2x6_>bMX|M&G@?0vm)51E44?7w1sbs6n$G;ow)8 z(mn?m2ju}~&v2s9ZM(D10rn}m2}E=!3B?4v9!s*m44t%pPrp-3I)X@!>%L15_@FaUoIgJ|?v~97q&aNi|c2z)09o7i7K#nZj&c226>ltbf zQ6)hdK{J*C)b3v%+{oX@46Khm52@pI_aFO+Uwmim2K9b9Z82WJirXGlKqSCHYs7tf zptAhnkean21HjII5jf|f71&gBfOmQ-!fuOx510b_<<~_X*NsNz&QrX{d+feua!!BPAZ^?4=z zC+f4B|8>uJc2&Z)N-7ab2cGa(yP()Xthl`C-NDKGLC2x2FadDze%D+Xa;Gw|J$?)c zfCN6~6JscYwhZ3pNaKxuZ#Xt0p6~)EI*QqJ5dfRp1%=h00n5TBdAe2=)X)>~J=mJr-mrRq$B^hp@QFV`|kGw$d; z5QqRYF3W8}N7a1(POM1rxzGK6G0$R9v4TKBT&679?bVtZ(xNDV zgnOSD&od$?^0{HBF1y}5+tw8hyq-0iNSn@8m0Q#%BVgN$AO{@kh~!GQFEx~JOg zB>L9Qv{ec0uk7?j}&1?eK^#u85v&2=x+NLwshR%Jg7 z4VMsX3UFezddzZi#wJfWWvJ?dRPan@&kME{>5#7-#xVryL}Cy+R%;8)6T~{0K41to z$A;~9JZkYQb=k|04j{|c&r}UIkaP4Mi$)ynK5uixU+bo~qJidW>(sVY{dClk!lFaG zZ$L$2;0ZCpD5JE+N3z%4hdl)NltMd5B$WTUPnxsnM?ZF!iVsi>tx74g_(~3$%3P@R;Y~CU{xl0$ zCteL@Ec}t%ew`D2e3p5=OEE&zM%@uD3>7-}SIgw`qP4k2w_l=`A&;NT$?Sa0)3s8b zjlB2Vbn$iPjvYEd8qfT#MD)PaDXj;*05_jNV(y$LJC*&_^#uwVZCS&#^il7<1`L^I z>@UCd&N~3S^E?4?<%K@1j{*n$KsqQlrTBCxtpsus!q*}c#k9%fEV8Fx_2GY^ev(=ryhZ&vi5Qe*IglO7VN70-K3+4{s3#Y9fv8wLSOXbICqX0KmxQ!46whS9--K0g&?Dq=T|W@c2XKcvESe&d zLlT7ov}qtI8Z+89%QQoCSB>)^Uha2P=hj~fF?yTh`0585PlEHV$>d~&dhQ#^G3|la z%EwHm>8SXBVIT9N=VOUFG&rPG!yR$L#9zX0QU7ibyX^Gh%7-R%2sD~SIX@gX2B0Q$ zs#E9eS2_SD4mR}(s@uhbpgP`Yeh|*%UaI{Y-Z`q_oegyq)viEPoan(3F=2Q53GYN# zCVhK)!P1?^4*!IA_MbbpEfP5|V3yak7<5&N?RlEpWll3D6|iVCfGd8T=)g(cf&HGt zC_>2!J9~F&V69FwnNS?eT#P_0)>-!c8?j5!nl_dgdb&a)E#Dn`ujK2-DA796jk+%= zu5*%A?9uqE9AcAokd9kqrxcXaWT;r-$C(+%(Q5}*;I8l3;NMkjRVj2)JTwC(qEw)O z6(CbHNa(xL@MYvcri=}erKtg6beQb+K)Q%Et{&a(E_3m&kl({WHT>;Wa3|y^_Vh#{5s*XZ-O0e262m|%$`hq9Fx9@S z>7~rZgK2G%8RA#l>zK1>ewKzPO$N{~^|KXMW_N+jL3@>pTe27RlQ`KgG6#Ns?2t>8 z2PMN8y~C?Ie()1kst)e)8vWVu-7o!#J zOq*Y~;cL{(ofd1ha!#^HFt3f5^NLVLx-q~21>^xOWvViy;>TA&Fp1#ojy#$Z_qa~Y zzJ2dv;aT>(i|1O>jENjbtRu~t<)bHe;uAhj*}uoUVQ4KXu5zN^4+CvtIX^P3<(G$o z&$!zW4oX^>nyyO#jt+57Vjptc=N0{BUHMJ_HZWeP1*@xOpSk0u0r;MX->|j+W_<~( z0lZq!;9m~c7#>s{shFZ(*J^BOBzMDtkD9EFTDNMEvBvAG>wTMCM{2glI1{4kAIFQX z;H!{+gyV^UBlkM*ju&&%;&Z-F^`cP4=Ke(4kfXf7smH@cA>~A=a6cWfqBr-2w3g? zZC>EDQ-yVS4^G@;*zdT5TZ)l;a6wFjY9Be2G)m+i*C&=U%yc3P1N=f?rSj1M#>ek~|%eT3yyJz&!eEVPKy4ImP zKFT&(Fj7^oTQ{`&ZE>Xv0tE+9E2uo&qYvbzomU;31%AUz^JD_6^LTIprL$ z7khv^3RKP0)mPXy?(UV~ycJTn=2bk>-!=5S8Uui0Ga02d`o)}SdE|wR6;p88Da*Uu zfPV=CCo%JR02!LBD!pw_#Cj4i3F33DBmylQZnB%hzj1>~fR!CC>-HFQK`V!>uNgd) z3wm4nRBCHUT*}NGeUSBRbzXJCZh;y9l1$N7n~i{LBMr-;;ya^}9eqb_ z)OjM^V;o?q%#h)d8!=jkzbvYmj?K#UMuAfiiF5;HQfgrGIHbDc&X`gDg}gsei}z<` zvb1>j9dVRu&>~3WMb*9TeAPCs(MUQ=&3Qasq$~zB*)5T06Sd0sQ<1D0V9v@ID4_W{ z&M(QN>339b*KSXM)t~4MWQVQ!%iHoe7&kQf-yq$hG49x>-^i~<_xk$HeHQ=Wt@!Wz z@82}b|7Z04|F}Q@d(n~oe>N5O|6kFO$J^}idu?mjl<{#=CW9OpntfJ)qny#4|Ij8> zd!p|1aiINEM)cQqbs`UX3y#AAidZ^}Y80Gu7ClCiHZZI2M@&rmJ4 zERtG5hk;P*v?5}|3)%6Wz@Z0_qjcwGjn0LQgER||m~u?IjPF$ZETBO@ZY<%XDN+`kWn<*WY_Y5N6B*#OC+Nn^4&Rwe8Ab#Af^N z+vUap6g;7*OkxYp-B=5`GYxMRz(+ZaQKK}4C!_^pd?y6_&)%=;G)V~G}mdyDHg`oo6s$| zWEGEfQ1g(H1}WUW(xJX+c9G8d%JvT&QL7oHU;Yd#_kv_HrW^#QPgudZK+Oq!iASL1B$7Xl+0d+?%Ks98km>DRk~pnPJz3jlfRL*;-HPnc7~UI zSOhhtU}IK6*gTlv42;R~-zq>4{l7xtj0utuwWZ_MNyn}Rg`&V#YVV2ERZN=$ArSdf&BB*OTL(AG#pMV39p(Z1 zEWMw_ONZ2vv^#14y~(Q7QI96wO~WM==!0}Xz=hmT9^*%n@M~GP>p{esyXvy^Uol$! z_~Q!hC1B}I(ZUhq;eybI^6utMC)=JrBM~T80!uu7JT$?0qG39B+ns8DGL!QT#~wXT za;0DV6qO<+PCz5^hn}t?tbgJGNCX!M0Y#x)(57cpQrH$+`Bi?2Qc6JpL2V-2b!%Pf zul8h=B_vFoQD)5f#AL8h);bmUz7HF*S5X8IoTQn(hK}%@K3w4@&FI@5 z*H1bhyyKCPm!mMXEFM2rDVRvuJIYGOr`_kmp-=+`)}2$e*yM{R)M}lsuM@+pv3u8LJqvx>f0QbnyZ4;G>Bz41wCcaNPN@IShgcZ$(Y} zBZ`8rdP+EG(&hD=dRJCi68P2s*jp80W!5O~tSwdTQv?e+(In!nL?D;TK)nO{hPaT9 ze&pbs4}`EYo3%?gL*dw(?0Tu~2EfsGGQ{94LJvntMh-?jw086$WQnG{?WwC!PG1Dn zD|UO+&1tdBCpzsjwG$h>BjRvWSd41^90d%^c|O%m@%HNv1sr>I`UQ!v+j zfl-KC+FbP>9AC1>rWB{r#?zyt;an4nb-h1;4lR0Xg;FO;3iD}_;*Nbux2@uby7;=Y zDA%xuZr^}{07T?&w2O6Q>k41g1 zL?`tTIMt!F#cLcih{cmF%Bxpt$Ia+l4KJ(~`AnFZZz}+>+?@ZF?ggy9A49K5$(Pj} z?eL}Jv9ZZ56+`Stu`p~Ucmxvax1~r7L|dQ%+6l9vv-Y8(xSWmAO4pA{sI4Y&yo4RDMC2d{zK1^gZ+Qh zbJUVfL>Wa)sdc{9PeY!!U6fT_DXhG>0R(AKN0SIk_OA01=#-GQNY&MA`MA!G{r&U+ zfdD7U5te>gUL&q{l&Wv0cKiQ2LU=nj{=8~&uYKSA9=-JJ{&swJDqVz6{(X6!?KB!D z>#U-9E#JFy%Fzm`#|n)JVuJOG zfxs9w=kI1EoBJj>Q!9NAOmcQDyACUz#A)llFnan|+44Xq)->>iy;Tkw?TZ$PDC9?E zu@Ns%0VF+J$|OBI^LeafCl<*lXM?MF>NGt7wG3p*PCiWx^tymFUltwj2LI4ItoZjd zl;PsR4k(PKnSKtYb-wzzu_!}8sn6NLk%e?MkH?Y1jN3WTBV$Qf((>=jspruzp=a2? zxb^ksh1@emb@EUTvV3+;XV)9<#oQfHo|26q@WjTCnE!8ihngi%Ew8=Q{`tmB7j_Jh z9b9$5_R`2|lU^Ub+lw0w?w1CajW%=&rbINvD5gYx)of=WBMoQfRZ^2bL-Sy2kZMNs zjnh!V%&eQ~2xOQE0-QG4A``1i zH03PKP27S6VW6e&GJJ?6#SBszK|q{v0?ig?;J)z`J8e*zc39Mce&c;Z)eoYKPct*A zJG|h$I5P5VddWy)sT01Wt)psjDj52x zhzq+S20^}oPQ(C#qr{Y?V&%hk|)69kC@S)MylZ%->84sH=6n1Ye&y z`5}0SnFTN3rOn?EjlSe%**Vp74_Hg=Fr=~ze?xNAuU}DZo{T`~5vH3GCA$@^g#}EY zhS=D<%hGynD6C!#lb%g^VhHq`cr$p1Jp zOp%8_LmSxc?TpXP2z!fRqO;wdg)LCFVm~DkpB`>GLdf^s zy0{NOCssHd@x>aE#js6DcmPQ-o={Md+A<qXkQSM<+k%T@ z&L3HZTwwv}tPlb~X%(d>0W@|{b4wRZFysvo>C}A{>KP>_$*ovYQVd%n59;WONzlfr zFt>6>Dgl75Nk9x2ZKjH-*G!G?vR38@uwr|oYI^Nz&mUt&<%Uhh?e}B^(AdpjBniNz z651+(t9nW>3(6!u4Y(IgPK91ux&tDH1b%E{%;`=TzDgA8G?y3TTPjJfocU!vh6*a4cpB7_kR7$c(;Rbu3VcbZ8g-Kh+_0W8%grmO7RV-n*N2H z@9Jd9;?9RQh-7eVa1RPRldRLCyh0PPCdA=Majx8=uvSb8gN0&scq?C*gs$fhgfi?V$h~0vr zrUCZt|P?qw71tZkW$LqI4Eg5&Ee2y0x36s0Ms)B zQfe)xk_$vMWkWVAG8qJ?u1cYdE%oN+y*5{8@*8&z*&l|@&>Fu3V8OLUIaGQiEZ{SQ6r0sNQA5k8N*_gc#=VK(cAS=8tr%GJ;`@P!4SNW5 z%AtXD&v!&hKII?AUNqD2@9iY?=EgQ$2mk6!mQkMh^P?v5LAnQDvT6A6-JwXlo`hVC^PI7d()st3hUL@;icRm z!XnMlX)Wx~Y`5I9^^S3oo)%TX+GXz7%JOSXvG{w-!TvValCBwSDII1NtV=&-qlOQS z)ig;ml|ziaXj;9!Iqka$5Jf`FB}(YiSEqZq);-7jd*210F*_)xjG;5UyB1`}2Fz&mADaTlEz!ZgtQifY0Cf}C|@zAC;__Pp_RZpyjb%>m?C&(!1 zY)!bu9NBqz9kuXS>h1tD-83U*B3lu zS^i~~?|JcZXfohx+jHUig94A1~9ukgU zFAB!n8l`hkmop+xSmf%)$|XzBOiiM8=$c7%AsYo~5%EgN%tbOYPXobGX&SUf4$KC* zj49tFR-7)RUznFm8caYu7K2nB{c7vm}-=g`!?KH4Jl20RlJZbJDwh%0HJooh*pLhEc-F$HF z`ah8Kzcl<0IWw`d|CgYd<^MSM{`;MY^BZxnC5Ds~a-{ z8G?UfhbCkd=}ZQS=Xw9A!o2G3sC0pir0BJXDl=l7Gnr@KGPjnkLD zwueVg{HIROqnNB#3px2#wS+U4fOv@|RRz;NQAT|>xNlmXZ=w{nn&9}dCh z!=?l{cXVdp3m6oI6o=ATR4gF;S^LhGfk2@f@r{mHro?}~nUL+h%A63Wi)o32*}!z~Xxb*{pLfY3tjIwofyixBybX zS2w~Gz!ilS0qX|QR_iGOMw6jRpsMZ$xoCpsxhnbJYJ%cvRc0i)Hr8u5g{^A>#>0xV z;$C^l3zSNmbuk;Gno$amWqlh@E!xNf%pP~gZAxaWSMJ^m7V4p7i_}XdM324PC(u=K z$)lqX1_0Vl!SurZf;ZxzJ@>e3Y|vYn)wTp2cxvL|B#ReC?x6{sJtIi!H+$`5`lV-% zm)bwc6_&?r(c0g+*IF<0QX!*(&fkV9K>@LbDIr6X&0VM@lY?4cNQ@g#{!aJ?cMS;* z{t&=cj4qW9;3_&niVKqHdNYkdqF8Ui9U^C?airB)G_MrGOeEi+iUx1i$T}R_1pp|` zR+w}kn^XEY_I8eFp*U1wIw)<$@CZ&@>S|KI!T9G`)GeGkxF8=kcAxh31KqgjW3&w5 zb56(%cN1li8^=i(e`cCQML<#y!QLCXlpj3kql~#o&EoD0Ek#PJJez zyb@I>;;4UT&o}-a%qY|@{nh#!7e}H*h^%mO-B7rRjQGJXy5z_!som2 zATAdkp&sRqlmRj59kdH{Wg|^u@{nR#cO;7L=}dexZ#mrWNPsBgnt>+O|Ue5<89kDxZTfEl=r(ZEtUwtNMPh>O(6DB>Q;5CGyB3$C>G<!rNgBsdGgbdl5%kn}M! zMMb=RFpq7k%oXD;w1E?ZFI5a=`$iJWjwJCjKVZ&W}bhLN{mm4Bw$(x|Oqv^|Dv zR@P-*Wg*#evUCqtUCueT3~%sQd|;04i?jXoGQALB;N1PvvY*zjs&AVr=g6bn8r293 z>PcpCvFd+Y!A+N%c+Jmw-c@)>l9d^?B+4?F3sz$StplUxQfwutD@zh!i{zL#*33n< z|AxU`rut27UApsk%e}n#FSDMCS!Y$g!jUlBJ1!Lvqt37C$Iw{DZs#>?RvZeN>~Hm( z?39Ujh&%ueE>!*!LP6mo$8{4`$W~kLrH*(#10C+6v6Vxu;c@TY_0Q^K*^=uIZl(k# z6ldwQ@Bd_b12kUNBC%=N~%YE(U-+BD;Ny#FaE3_Rm&BiGWsPOlxh;J zMY+%ELeRkcblJ?)-%^4(UZ^-L-*+^+| z8R!|YnxtBSE?&lr?Q)IsB@b8JxSQ6Ce)7z0GXN`sgomgzqMy6<&Lw?h425EOu4)NBJFJ^Scc$I1DbFzv(Br+7!W&C*u5p!b!r{SEU z%A(hPB9MzS;|H{9e?VKr@*mJn)Yob*X=<@#`iHZB)`$Urm)0XGSrCO^@0I;%6``TesLVm{u|=s-kRM_J94t`cPYLBs0p-L`-m7Ej7F zXIxa9nv&x+kNrN?$G86XhqL2T`*2;V@|vM*jtW-UYn`lIUZ%rRy4W-=Hv1_A8}B(t zsm@J<+j7|iz2->qPyICGE2jl@wOl*ON596ZRZuU`h#Q5qwpKE5)nPu&P;PU(dy1Q3 zXvOU@D3Jr!p-aQ-(&vRk9#^rlY}_)vbt_SOPb!Ddv1G9q8{FWXGNq?-v|FH}QpL!& ztH{=g1(K6K8lX7Y`B>eP8g<`=huLIW_tp2`_Q)t{dKE?2OOoDZdACk7+AMdT%VeU` zvI1oawMewc$7zr3b}HuPdXug$42zZi)~Y2_Wp6K1O_WI4=~ix$-F7EAl^7W#DG?b* znwlD|=}4cBnUu8`nmT_xx@?U+o%JMJ?1+PvIIA8`bN3dnj4kU$QRpr&6&yA#3l=2t znzIM$Ah8z-jcd}bThcrmFIO*6o4?|T6N{9rt!WE!E+x#Fw)k~;QafZOXBm`o=)LUIg zk#&!8JJCjUhmA(W$-5WSBMKo_QWj`Kr@Fe03;cwFkGrsp@T-MSzP2W=1TSfe#m~zc zX&7$iK#Jmz8#=B8ylN$kgtaNrsJa#Wtc%ZulFd=Er^l@!co+Ccmnaw8r@`N3Q!obm zFO=b%S4SgnfLnxv%bCl^nY@pKwz9d63-8N?%SX0nho>Nq_iz0DTDk0*`MiPMJ?UV~ zV~zZMW4hYb-KS8S#1o+^V{n;yosfBd-d5(dEhRL!{$~q*?pUH^#7SvGqK?4V{05=~VUa+AwBzrB~n%^1{Qc62+=Cs)UC*ZJj!|@u)^z*xN zHj@puX812e8Us+50XI^OeMo&n9t^K_(k@>KZmQKNz*wDrD{q8dl@qzu*VBFnA?lLxzAC;TgA2a;6I6t(8^w6Tv*p#{1 zZI?gb&o2!vx{9EO`RvWG#%PxF#O#?rPd6*@t%CI#w6^a54x^fDC`~ z4W|H_$4Rdhs|Qx8R#3e!XnaiePI7X~&SSFGxDYS#V2C_NbVnlh#(@L*`ig@vYY#=y zJi@Ri3{&L@#4(hH0SxWUFwBmzB;r<=gb%(7LTQFT37kZ&XQn9y#1W(H1sT_G zJB$O>TFFTp^GeN%rFmUl2 zAske7A{5XbF#Ts95uWB{1rDR&9q4WUIr!5qFO(%HsMZKL49b`T#)$fGbG>BdttH(} zPngMU_|gG4T|i+HfEyJio$}R#oB$MUv6GnK=TsXc$s|&^#sJW>dobXGSy5I}KQY)b z6$w1uO0iZXZU{7?QKr;=5`Fie6JClP8n0>2I@H2Z zv#}a@-AD;WkzwQ0oa0!OL%qw1zup&gMDGDe)PdD+N?K{B=j*Q`0ia-wEyV#jyu}Mq z@DBzEB6%;E#N8dTelGLR-{QrB*V}Q>5ndrubU7&FX3s`ShESI|>Ka4`$ELcz;lZ1R zZ4ZNS$=Op5yA9p?^8(Y~x}Ej(@Vz!}tBj$;t>g-r6AbMNm_wjS8-c_&!*s2O-Zg`h zsV5ed5_OlW$eGE*y;f{=RfRJ9-V32sTugk%LG*%q5HLp&v~9klz`FUeJH^iI?m43N z?kgW`n~?g=FhsV$`C!aGYal61&w6R-DpWnma}|63LLv$YLph5C4so33<=V!Lp5}`3 z>tt8nFNz12`Nc3^Jo=YoGwRhs#`btTlT67mrBygBbJiloUl$J=XQ|eqFW|SYa-2`w z&pXQm%e52rH@0eP4-{(gr-Vu9<*P+!H>BZjpvbN#w&=2AaAaQW&3vN(q{7(YM@ zr<4@Xq^d|Vvl=W$@O|-~EiV$VPf|#!BwoSSoi;1H@~x6WXiNmNnaUmL-EBv>E6Y&M)1$wjrg+^D)6$oZnn-p#$Qeo`D;2{9?ss046F}%B`Kf+J)?9F3 z=~%}BODC+rX%sGUNul`78gA1m{G!S-osl|e=ih^B4wy_z=`3}N4lg(@%hygN4LRok zFJ0y-_p{W2Px$FT1rewdtz^bMI?M3PQJ} zWh|2>$15HHZO13X%BqXYMPi&mgf}KMhVJ^FU)8a_l>;ZKL?C2R35@oS!p2ca%xG1) zdsNkZV$)1H&41FwWYfcC4u}b}*{`|-W_;3}gM*{)+_)bF({zb1$;gn}ptQLoj3sNo z;MVjdJcg_CYIDCjDcBN6W-i1_EmaPh}u1r;K3LMHx^Edm*E^zr$J z{Ng>r#qb?xII86GHv5}6s>PJMp_d>Bg-+O7!$Tu!HHm^&PTrAj1ZrUrMi<7slp8<@ zW@NOQ)7sXWEf<_klVqTeN=(?aN;;~)&7o69r?#lUV>_mdss(JPm8({Nx0!lXi4%hY z3S?p>P}zs36sPIf*fc>HYK4I`ku1UrSmK&8243L7AA3+sr@Bov{?;G1c(NXV{pe_N z0GqTG=^7;lxfGG=R=W{xm_0Uv}~|t-6>0i;A@D{DLK#?ov@ZDJ)6$g zah^rpyz?OKuR&;t=RtfIa7L{T7Gin6-SRMP?dBja7qK&h3~%AM^NWwDIyK;aF)sLvZ$DzgA&H3jZ*Q*Hy2d%Rcy_CegmM(*oK#Fy@$~Qtn$`gFYlwU| zS2HVzk58i~7i0e@#ibWhX-(LuUEzRlrIRzL5qPQFRkuOF z3-_9F*_l^lfRm76J~?SFr)Tw4z9n;??eqj1ce%Hxn<7C~vyopEIxdiId`;?qDT_bo zTZmog{KrH{!;csv%PhiZlW(1SqkTiuj1+B*7G};_)!^ETD=M@3KKgOPZ{osFY;DX% zjVx{LYqRuQGv402jPtlZ+D^MbPkVz{D`GS6wo1Sa&$t%^QOY(@=%(V#Q8G$yJGwU( zWqP{|os=BAXWzrv+ipv-_P7KnF)IySMiKS<2RT zJh*+jl*G&qVS9M#;yyd*F}Fb|C=0)6UOWM-%BAU8v?S~~Yplv;bm;3S^O*7ic`%bS z#K2dW$M$!r-eg$xoia=o)W#{cDb*^rDMefScJNwpbCS$$PKo%`>4KeW?c1+6hWs^4a>gcL?HAo}^kGOJLA21v2;DR1>M9=jb%w-7&$dSaOOm4)XN z(Vc#}x`zW+)_fb|=MmF%kuNoDzPS6D*SYZuK-ZaKuvV(F_!h3ob>s&!=cM1%*!UQ? zI?Ymjur|$e%UjJ9@@FDhd6?3aF&ogWBe5zcYu2NzEliwQ58mGy5T7ZR-OJ4Rd)KV= z4d&&5XqQxDcoTub9+DK^(-nPa^wp-|-m%k^2NI`VS065ia<`)Itf{sMU5A_f`-VU?ea?`( zzbQk=Eg;GbO+YxxS6OYMPb4Zfs{vhcp%%^hDMH zLHB$sSNrM(>1;|~Cmg)4i_+;gq*+I(eU6wzrTRO{yH^B32Hg&9S^e?kQq|6g z5Zh-0yRRYqveNpJ!ki&cAhN8Kq%->r0wT2v%5*2b9iQcktcyyr^pTbJ53ye5La4E| zr1zfMy(t#}o{hy=(IIOl%5EOjm1)V@3%Ns~tzn3fCb(c)^TvIMKR&ahN#RqGMuR)PQcdL~bRA?f$1<1@WKCq%Pg-Q}l1&-KD;tzoa zVT__LO;-i9OgkDb7O|t!+&#rwuvGr~R?Hk$uc{OEI5-`%hRBSR$$tAZnu*b+F;y=D zQ$eBv;)~$H@U_ea$rMuz-*!67Z2_+SXRx9TQcJRAGh_qGx2@k1$_RT8taP3h@ONSU0Yp z;apJT?y-Ct%9P5Lp%a3U%dF)8;)U0W_r}R}CXtdIziSe1T0}~y*rOW3u_cz`Nw-F+Pe53Itl3az$Avt)C#P*cJFDSh!>ZEly-~PNEQ+7J0KPq>>FvAwq zWLv`VIBJV9it|0xA(mS4Mo|wn;b1y`70EshYe`*mmHvyy?Ug7usk8Xd9=|}wCVK_( ztRrHhb2F`5vc$7XNSY#d=?7I`t?rZNb>1a3NY}2f&@BM#AuM2XxVT3Ms4Yh_8?N(p zfamFC=~dGhs1aYyG@mCwkuxRdSdrWc_T5Zr;kIyFlaQFz=Qu{kRS6tsNl~paJvn66 z{d5k?8;tyF-$%oa@Awg(@>j!3$M%E^G-yuNWY)0j?V3J&+)>DgaR}P_n zeDqAB(s!ABQ2N4DqtgKC4PY;@66Nw7%(aIP$x;ZbhyH1R(re&0UyyVz82uNFb(V4z zTKDszJ>;IGgN+2llMYKTKg<_wNi-8rFI{R;NL)itumZ=Uae4|PsiZ0= zgch#F&sIxgu;m8nH0jt_?oKm@)Ho2eY=s+D7K-R^d?O9lTvr^tO(@>on8{OZY%bsU zh9}m!@7X{5di(X3s0J*bqGSgwYYV&Hr~?|*W;rM>2_BtEoxJKxPFJ@Rwez@7T7-V1 zpi6#%x`@|AH}&JSyu*VVQ5I%DF}0*1Zz@U`y!9i5)o7m}WIVKy+UJ!T4H>>v9K}l_ z`s-CQ6|O5jtG!@JuIfkxnWwbI5clXtU-hjU#>K^!WiI@AV}34_C)27C#rhP4`$Of$ zeZdi`uAS%cE(Oe{pYJq^y!l|0NQLg(_bmBWC=|Bp*9_6O^Te}g43iV|@2}54A^?-B zT;Q{D23vBAyG$+xo)g0+1t5Q8-&sGf+pk|Dv+<0CB#rWHNsgsIb2Iw6Qp})6EY0z6 z6O`eES_qtzg!*Mi;bwNG&OWNG=ER(QZ1WIoHQeE7zYeh#{6-ZtKL=zn-OIeKN?}-D z*}lG}<|e*=xbYrn{0DIV7smeucMf{S|1TDog^}_9wnnos{zLQsPjH{mlyK1&L!Ati zvE8mV0+|>*;<4jf;_fyu7y{o%=5jXI_th{DH4Y|Ri6ywHI@;8_J3CFRAjXZ1%wJki zaVolkb2{tLs12dR{Otc4LJxz`v!h8gTY|>YyFKVaw?*Uj(g!Tw&ZLsMW2AE5dA5Ao z_v`^ry!TJcQgUcCXzNjbGF&UnRpCAGEy|*A9VI4murUOc zb91V5v%5C7yS-gH-fUksPg7L)C`a61x=78}<#+C6zl<8X9?s9E**g78-UWM$1*(q5baEQ@wm@|5|-N$GOB zXZ(o89`Sa6fa5FesLT=oeQOGJBj!ZJ(bAse-@yXKUlKf&q^AC?eHxpOWdJbMIMq_#inr#3WRz=r`pWx!|3`OM_Mgjm zuAfw%G&JIe5DMfqmw6OX3zbD0i)<;MZ3?n5*?E>Pl#f&jUA`Ih$?bK03Y#TJtw;s( zoFiLgS}ey1s&e`b=4C!VFNK8zkf2c3i@)Qc2}$dvk`X8k1Wh?*=VfbSGi63;)Ovvr zLzav7zB}jmzBBdS1(+Z>S^CO=GD)mXNq*B*wujX1N=D*e?Gf^cJj@Eyhq+Xb$Yi={f{Wml zt8Si6w2%5NnM7acda0P|9`!7lT-!a}jxpX5!mA=}L}A^QYC6svxiv!WVhJ|19Z$$g z0;8+E6%CQc$HFBNAWYxs0E>CQ%nZslx2wnv@O$=8sP(2uP;|$q*FVzAwu)y3$X3YBRN8$kOO`pVQh@a5XAO!y7B&@yEA0s)V1?GG_n&pJN|M>z*OE zrS7KQ(^ic_Fe0jUtg-N|sE_PJ6i_A@3qev(Zk&Sr2b9f4NMLc&-_JNqKQ9XdkJfTC zz}qJTHzf5HfPi3$(v&D_JGzU%XP18QD318gyk9%;p!RlFxV3pX*UlKchJy3aKSeZr zF(n~#;IEm2e?YCDB;O*$!x>^E0`Dw!(-pADaqWpFPt%WL5z08yik(dN#v-BT^A8T= zf>3?;_TrDuy&~ge*}G<)a9A{}JY@MGojlsgU0ORjn`a7x5{C!=^xKCRF&(gW z%|0RPre^dMq6B%kmLIn!Cg>A9HL$=<{$wP}$_qcPQUpC=gnm(19Bt9T<3#W|LUpAB%N*EtZ2E<-$Ob)ZV zeaB$%Xm3=RCyAdcig6BtxtyBMj{~vU^`llUHl$|*CE{0X-?b4&;4iZradkl}xY*H4kL97O_9*@L@3CRr^9y+kJH0%17 z`6djACIkJz)kk_o_fMm%Q=+9xD+MeK5V5}teH_}rW`D|(Bp=ntKeFO#{dG(hN5FhT z2BcW|8YNhv(Et%P)biw0ALO&H`N!$ABTbqHi7;!2+jrT2U~Mm=j>{XSVP6P=8ab5V zis%~}&i?MY?Z8+-yYWF|b3uqg8;FxZk&}`x!MeM!Q9tcnej?f&gPpR>cia{n_iRT* z#qcI2Y2EzXxI}L|@GDOe_}y`XPniWN7Q7hB;QomqcsZHChv~8wy#-bBJJune71OZF zd3_w=@(~8m7EU5!jCo@RVHSxGQr^`HTYf34PlLz;{o=Lt=&^+&&(xER)e`r>?rJMW zFL)wT4E02HFqNt*1W|CA7cpc8oU0u?i7z*tB{UE^rmQFaXUMLPt#4w%{Q8IGxtGK4 zf(@0SCFQRpZnYNqsTE_bKFr=yDBr#v z<*=j3dbK94GdzS8Z1hS<<$SH9O)c?_t?Wjh~)JKB!V_{=$C^zzT-YggP?r1=33_zXxmGq>sN+D^{^ z?{Zj~>ON0JH61062FzibHlJ;`>n4+H<8rK)w27@*QM5X8wz*Ki0Q0h53%CK!V?MV{ zxV@p-jZiAXs1U+Y;ZnH5{GdwYU`brS#nW_<#hZr8*JT77E!o8=ilpgay0?Vkl_n8T&HJ5w zescFmh_^KFDhAw-zGe)pDF5pyD@z>*7-&X+sc&qF>;?sJE;bAAO2!rGofa_1VsAbi(>54>4ULFCM0Kq88+VEmA z*OpL#l2JUQ3b98;)R7OobhPi8Z>Zdm&*sYy12(=Mi+SBFE(;&N+h3dj1Kt?ldmNzB zq$?}hTL`#!pgKqfs3u#twx=*cXXv=?q)R*m65Ot{8r#B{n?|N`K;DgqU<7T_mJH zuL-k#7+XfAQ%4`&G6wx}2f=PnTb!^|=h?eEwhcz<3 z&`$RuB;wBPpY_YekOmCu&kD6mgPxJ382+@a!RyTqd>c2Ckc%99v`4|^1Fc2K!0PB2 zV|a?Db-J^*&R_~jl3!*fiRg|M%^&T_MX;X_9mTrr zevl~UqO&)r`cGUvMVHcVJ3#JpTxA@MD<`Nk%<04ZeVN}Tw*~62PejFGTsO(pi3zbN z^tvFrnFpUrACtEr_&Cyzj;FJ7cN^aKcnRLXnHiJr?vt2(Tfty7(s7mOA@3@Z9_}lX za0;!kB~lQq6|X`PZPPc&xE9w6LUGmZ;I~^SAF_=)T?GsMCGrPN?Yj+VTp5>KA*{F5 zo+4$p5E9i{IVk_>I+h3fjl==ndv^z^erIbUbgy~N>DUEGEtN7PRJ%Pt(mzrRIOq=6 zc$T%!og8u=-1^?jSfNEZ&o}`R6$c>2L+A(xFoF70#aAgC^nHOXIssX5yyq5*+G0Pc z$}OPS>>F&8+AH9&P6%h;-_!6cRZbP#xS7t(KU)dB+vka4My&W4?06m~E9^|vyp7v9 zO7f*e?5A~V?S&hU`u;@etw0LVgzPwYs8SGCI$t156D^>|*vniwzsAg|EO;ERI~M}{ zi(lDGrYKI)jt0Mw;{y8S=-(zBsD8Ky6l!_7lRG zC$_zUuVmC1a|ps-o)jpk+J;7m&~PQEEBz zFjjE*axz^u2lRFQg)S%e`J7|_dVhmXcK@!N;pKe$E_?$I62~Id9G5IqiPO3+E2~ z<;E1{&j#SE>QFz_!85*2bK6`$JIo2%2~^eU)F>|pNUT4z|K>H7$f#&+%_^L$_}(l} z8nIV__ugOc>K~6gmXjG={Z3|8qrXD0CNg8o>h(@*dtZR{T-SDVzRP7|zCEdW}}j-scB3B-|R*vYmh#A~?2_>A8*O z^@al;RA9$fKWJ@M$lq55P^{w^DuUnH_MC=vWXsh~7gsv0lf;2Xk@r zIS~pW@mz3G9W!n^5UHIeLD||YkfG%~_mBo2x6hKeJ;byA_SMzj$L@AJuV_LO_ag}0 zK)$eZ62%;O`Vq%xvCtrF0dCRQpQJGn^^R#t8_eL&9f<5aOd_-(Ogie6AyWJ4xDuL^ zToJuT%+kW^x}ynDvl6Y&RZOffUl>8~F_#Md3LM~{XMVZrCBz1T>(yH5SV801Cmw|e zvokP_S%eKCq9J4bJbuddj=OEdkb(gWnt7xBJ2aCB zX=)%a-|s8I_KPnDNz?x-Q&nl_w3E<~24u=pJOx2Xlufg{p`4IC_*DUgF{pJlrC!cGqLTu#AI&C7 zti^!UJMC;y^MP6KrwCcd6rE(#cUe*v8MYmH(B{?oPd`(L&Nr^;L-N4edJ+fPTp+R| zGX(Sq-jS!g`o7y=UgY5v*;zmqMfdaTX=Eg_+h84ZKgjk^e9yVw5l%RuMp4g>O(Jxu zoGFjoc~mIHVE%Nb<(xwr`&aJAbJUfZPZxcHwnu@?347Mfq?|ILJAkGhdo8 zvMe0x@VWaG#ooBDPB=c%VB+m1`7K|{*rtA-{LaFYqP{KLu!@@X&hNN*_XNJ zNb5NlP2LYF74&6j!{$R}gfHT6SDK~!w>Rj!MBsIUZrBj)>n+k*ny!d0_FEzx6dVGZ|BO;p{t-X`b zkT&!7CE!(_`g+#ipqf(JyYl@s45PM>D~;hK@MAb;wPT+7LP&)>vm5S z2QVfuDNOb3C;x>xKH)djR`=Doe1uI7oEui7RyXE;GL{s}HOqjVdY4-vC-VxF9o#Z& zc+%kuI|eRXpLnh(xWOk88)tlyyDv%v_DGZWf1h_+GI<*XsuYPFeetjAgZyO)L z$0Whe^=~Ct#LWt_xubUdF=`i~?BrD?)$oW*5=Rpa0)rs$d1_rswvce!d@({pwZ-k9 zNjBt!smmYhxx!Jt*`izlOBRkQoOTDr?Zl`Acz2pyA`ME0%rIo-^u`C3nh;o@{PePa ze3L8o-DZ_%j^FAtE|H`fla8Y+ZMwL3K-xzi*;Wy>KoIA0k^J)8%bl?)`Z2g{qSdaH z0!6$g=P(P?)nN$Kob!5J4lMt;tYe@^ksxr(xN9aP-*V{>Mv?~Jb&g;s15B}ec^oAu zH;EIJxlJS@IKbuR;rL^HZ?4*n8eh?NtWVvPF8*b?(|@L+tVb7jJ+3=PwGu)sQ_`9x zhf*3A-p^d4XEJs~RcrEv-V_cPq^R0oJ-)YRR>mn#2#8z(NdBgHia%~UUp8n6(~F8W zQX4!$grT(mB13j}#!})YW579J9ko9JQJ=8Jr%)u+++s;Z!hEyG{UM`bSk?ESmY<@# znY0IO4pl}(j0Mr>Y^lN-4Ht_L&Vn%d;JAVGuY3k*-&6*&Y|&y!d?P+J6pFJ9%nGQU zOKUk(kS(${;5)8rwD30C@znR;y1`NyHh~}%T>T~7Z+HS#!sOhphuCypwSNK;f2>K_E4ZvB6E*5V8au`j?#Jwm zIUna#>(U~F+BPD2Bk8pFj_tV;q&*K6e4Zp8ZB2tM|dD^LiVy6Cg-~@gcG$Lsq@M@y>F%hX{#MCE+E6JYZ5W7_K?Xq6?OF8JL1qG0Sjf|QW#kn^Byv;@u%+myFSwTU$nzDizW`>bAs`-=~T z1+jpO`1qquAaMAn@5zhQ(k0@IAs?q!YcKI2|0@?_S(FA%<|P~-*oqk>fasz-LKs0Mqh2*cKl05Cc8H7-v$`79 zI}9{W|3xVOK`h6ATAC||W?4yF{s(U@oF146;;zE`I_pEhbmc0?B(s}Ag?%9Tk!U{I zJS-+{tw8VmVE*rv=Q$v*@eN+>YaplS^vO2fwF8%pt$p5b420KrQJ?g-#7sVp#xs z#*P+>T<+IyAPUw2@U-!k@d{faZ#iOXFi#*hjOMYO$zzv&zwtpG~>w|S&axm3K#xLchO0DqgbBN0dRkACMh8*YxSqV+9ySnl_ln`&Ge?t=i-u?S*?bI{Ff+x2 zLLU?T=|vTwIxG4u$xQyKRy}Q5q2K!cEwM1cDY&wxRYW5c>IrmQMCXg4JQ#w66rn5A zz;WDL!19A!mVLw+$qiCt!m|G3=d&Qg;pgvaWWL$~EL8Cpfi1(am;9-@V3?4+)Yt@Q z3DhL}Y(&-)LV1Cm#p;!+KLT6E;nxS}Ev3RZD%ydGG!j)Qlm8rJ#j+v9JtF$KkS1`P zXoLQ!$xDx9n0ZQ=!0U~a6!M-x@(}JmtS% ziw&tIc0ajqO$E^p1TgpBc0WIYUM7`0r?$o`t%^9-87ZwNKj1vTebV<1r*L&ma{M<| zaY5Z=N*o90Q+ZXll}Vv{|Io~8C|l6_C-vwuH-#~xCpBS9fzz0u=z_|QjfaDs9@ajp zkfrhvg>j*fcPa7O@%tXXW{V_!(9v)7~ZI;-K3&414=)CB)#+b8g zyK}*thg=TRS^<{iC1%+741l6oLF$Yw$Tn1@<#A;2LfVVmfv%QSh=AKfHBpOu$KOfPg%EVZ;mvYDhs)1&AXCH|0=)C z+rO<9wQQ~_aW*3@d9T$F8*9=r0C*HoIGTd<#2O1ZxEc`$`h^*)oP`iWGC;?$KxBz> zA&429K<61){`=>ODgohJz&c@V9%c{vtQa{goFmobl2y~L(50-QNR^86G2y)qI8~cr z;53|JudPK%b(Ov2y69BgkD>_)iJ)cvp>cKM>{!tw)`DN>x9DY{z@xKhF4hT8AYiUC zf5weqB+%kXh&B7$6~@TbGG@`N^o*d;G~QT#>cmuqUO0tB5s(sUgEcmqoY$&lN*X=U zvb~wNt1_gad>9JmpZCjv=TILf>EIouP?pze*3%KfTGI!Q>{^BSON5u%sUtu9t~-X& zb~WT4udHwLH(cFmQJPAvypmfw!;3v8AmWJRX}(`qLcK+DmM)P=JpriguY{I+#@nTA zhXn19;%#Hd>3ddm5S?RNF+BpZIo(=t$aod38p<&e9x_d27?zdcHS;XfR(~IgciuK4 zgGzS^nOoKS(V`S5?An^#SV*!e-bCso>X<6vLj$=+H%-d&`tW^0fc^4P{SRy2f2E#( z^dDvxrvI_#W&Th8OlIc)jV$y>S;iKX0jB+`Y8Z+{5!vu4P0N>184A>d1TGlF9i=!s zK#}&{gL~zCmW;+6m8Z%mYUuI2O=UCY)^+e|$KBmkAY|dFt>g{0q-yR$cyAzz{K56o zS4O+?MfCS4^NhH7C&y@M|98pB-NU_XoWuu8+~(Agc!ek5!k~P#k&t~ueePjYtdl`5 zFB9vj*%*f1^baDopHLLaIl!uFc9D> z8S~G#n~Yk=FAmkG6wpitQ@pbM45h0os7r=+*jzv+w_Vs%4P^~$LlxRcfK^c|Zb02O z4%a=*$nR^1!~|_k6(m6~t5wz(RGr!}V&FlqRWmw5m}aC{L8~@8V>shQlRQ89F4N-; z7dWv`AxNw{kr=(P;ljZUQgvBv>AK`zgk@#SsiYo8ntt9`<8;0@#HP%JBZX;kQX$+f zX*Ti0Qy^|_`)(9>ypa>Y9a;YLJ|N~gsu*hQwHn*ftM~j`n42{I^~wC%Fep2Dc+$Y_ z{iE{$@#{Z4$$y{OKTnc{mHxkt2Q2?+lK+39lI0&a!vE8Fu<(yiIe>V`t&Q{k*M(4b z?NoJ1*E$GZa9ABQ*xCwia3@(r95hu#yzlWWBSl3cVPT9K$+u6yys$`*Mx*6O?ZveP z8=?XGrtAG}|9ty1Y4l{HP7UJTtH^l^znxqDC5jvc>RmZnH8J6+(v@^s`Bg`Q)1em73xkdpWs>~u~la5>Ys+hax67BjDD|(XS z4DepD_^Lj;_(bsLzI5;Sg2@a7C@=OUZyrN>FMp`%TG7 zx}`&4z8j}L!na!B=r`wVBr>ICu-Jt72W8(RN5R2&vb(m_O}ZLN@xgkb&olQoLmPoo z64}4`4M9BNd$)Rg^exQ!z3E-e_k48iMZxoWLw4bLH+vjy&+KiWFNt@b$K!@SxRV0$ z^_&s=Ty6WyMkp=g_rzh!1iw+SQ%TPm@q?H2q)4=V0KA~J@qD*v)lHrU2`Jmd0GUhw;% zJ54wsL^Aj(fD?1V$*vWXv4>%bVv{v^&pc$Skz$NtFK_$CZayPo;QIpE)9{4ra&>vD z25ZnxE4so%{Xhd#1Z7jdAcY9c^(C(oQ1CF?(_PXTToBX4ODT%LXz=?8l_0(;DXx1i zH$9>Fw#UrWUSFFaWrk66TWh!~NX?zWk{hl+toFgp#Xo{TU%x?QWixEU7gjSkF~R;M zGe-JazoFl%gbzj9D|YU%7pl)YM1BAlF}VH(9;H7WiGtVjD+|VcI0BH|P2IK9SBE)5 zmY$eWbu%=_sI-&yWH-y4?RCT7c(G)%KliGblw^4L7K?@Va<+QkTDW|ShwQZ{*-nnHLeWpic+cp*A&cY+ zO`s^#$|B&-FQY`bN;~1j3GBNFGb@ziu};F&gOdPNF16Sp1nS& z1|30eyMTo@VxX&MeB-km2R~_UyUT!cvUg$@!A@*g^xD2UX<)iL=AaZb0v)%7CS9M! zj)7CZR?3mv58@MtttOQBD74>bWyW5NLsmG=MT_aoT5JsxKeG?E8H>p@HiD~IH?kmgjZ8sFyj2#<ycST4M+!$YNj>#YmVCl}G#pCMp~SBD2_C?RHgRJYsDZRAeH^6U`LMjP5%H z00QXPRV$IOwK-48weJih>*WRNbg}$O3n`wlhDZZmL3t_9;-qM^%?d~$T>2|pjv13f zLL<2edBKIsV6~(btHUxa2L6h?J{cWg^##pU3OEFXUKI{wff#OPw6{iH$ z_$F)P^3!79JCUGX!rp=3P3WFynC%EtV`L0Z<(D;#A#D#WXn|C5vcOj zl*~uBug2f`DxS^c?<6nt-^L-4$F9v>Q7|UdC#Qt8pbF!MujQw~I$)OsZztW6i+`r& zn@JX?vAyopF4mdHdNtl z8a*qDd4+L@XZz}Zi{^!AVL zk68d(X)7(6DU4P9eJYdeM@jdktd}WCY@o5Vl&hzQuk#DB379q4ose_1Cu){sCU2co zss{AWYXkLweNVs@#X#O`<>Gc3T0ciq1Tv=HlHCXBN zMe?YGhHI)s1MLeY_5;g-_W)C^gWiHjz_a8YGy3%W!)tTo-HHF!fk~7<`a_wq&xy!f zYX8OY^wMn3-mf}awt{8#vh#9Jw6lfrzO0#ziJw>C_ANm^$RYG8{Xw`MqQhNog9Z;t zyJ$b4<=8n?`QEyAjq=-Z^TGqXX_rclJ+3oGSS74x*dW zpFj>@w~3S_e`RKqZ-PMrMp4TmVx&+e2M71HJX?5c`^g1DcM`4I1SKmCF>d+_7u`4- zzDz1eNmq5}+#CQDLK)!Y;kAecm5YN8@Mq(6xiYXXRbDb?s(csP#X%?n*)>et?SuYx zAtvx%G?1el6Tn8~L7T?{ysqedpZYn>Tto=1k+M1UOa8C>Z*g1S@g_wcM}qfOQ`SD@ zn6l)MzbnHrrT@|6T6)e10$r+yS?&PXm6YGLwhu=fv7TaX_$Nn%k!IjKM*Y?3oCL)1;GdL>4TjPAu%%S3b>ytCqe+Vvm1hM-HwRu%0!P$DMfF^$^b=bK; zLL2@@G(ZSQam8D-A7mfjOLgP|zvaxK8n>THXwgscdK?VexKH%v)Q~08&xqo2@759y7@n&s7em0P3;-pz!hR-eogw`9mC$UInpu1CS$t2U0WXLFJ} zcKcil_%{*UpInKyzXLOo8x>_NJwko`Q%b!$#Dp&zLc%hf!sc)JiX~xF)olSiC&v=6 zy_B}0mCSVYL_?&gm+La-ld8_^G|y?R#a!P7^^cbD#Ta~%Ey;G5UW+{&UD2W>%9XrZ zFc&VDp-^>#Rz2Ltaf^o;|9Vaow2B2-peT#dBTZZM%yJV=5I4P&#%vxM;jl+-`y9Fd-B6=)e}|!m`nNZ=WQeVV*g$DU5kgfxqubSJVpHI*u6JRVpG~zb%(r zo0Y2j?&qon8-0~TC)6T`EJJ_vmOWX=n!qh$5ydSkBHNGSYP1WI5w0y+H@1O{9kn)9 z$P}HeQi80TFjV7kA`-bRtzaV8$E!4rqCnY`DO9M7)Y-OaFE-Qp1$Gb@zD8hX<76FS z3TRoW@o%T=wpQqJHNv#0m>2&P9GMzWOyZvWM2m~Xz}Vqp{XKF)u177HEuXLqgrIVv zV?G7gs2dy%MmofXx=l0ob_VrY;(*}23F4J5WqDG#>bW*1RMW{oV5AyO!g;j001DnJ zm?pGoutA-U3ys<^ex@MYqDnz{%(x$I!@Aiq5yvbwV@XuX$Hij>5dvQh66i1PH0RQ| zGP7CQ6LkWla1Tsx95G(9;R2eCi_pH$2)pb+`$yESc|#yG8}2nXpTcFQzucUG>PzNa zp!!X+Cs6!j6vjvJ4h60qp@mT~V)YTHQvM-lS-8J^$OhbCWLc<96m^^2r-1Lj%g5g5Z@>omDZXtXKMccOG zApE9V_DQ*lt^7@?Mjgj=Jo4cz<4srOF~F zwRfSDkk3y|7))vzr0hZ%Ivc*|CHEPswD@1D%M&(pcN?`&vz;QBu_VooGT+9=CGum=+z?3zZ4pZay- zb{IE`J)3RYTd^UKVT+6B6ZDdEWVO2la*bb6Cr2<-0aqKuIlj~RpP1Y| zTUK>nwW^#6W~(Ukn<ymLe;dD2X0V z6fs@R2AIVCfdDbLhU*WTo9xwR%rFI*_#X_W0~dk>)N}MbLF?wwK4uA*sr`^CX|2VVDZ>9aeK8UJ^&*AB(Y()Vx4N| z=GpmNo#?ym!Jp)Z>)FD=vBk5|by=sFuoC0n^FAX#Y1iOjhZHZ|Y;S3Exbb~CzP~y< z9!`|Awe=RJZ^7FhZt-$!r)L9yX&1jCkatm(m(nU7%gk%Q3j;Qx2TO}a@x6|{m4syN z_`YJ;F92hFfe%xV6Z2sBY7ms^@3ofsq2|*(DrD`#xc$(O-r9H+!I?iRPISB<4qiz9 zhe7}tM(%#TWw4lt*8fC|n_Gy~?Z*@?)ix%*WM{EBwch^i$l#uqp2v^dm>Dfl{`X;l zQnnH9q{~za)IpKAJ69YMEVqZk>pPG<&oyaz)P)x+u~y&uhsW;25kq0XQq}XT@}d!y zfZoZ^4r8jY&wXJB2cV^8_9wxk9hwh=}MuQEk%;y>~00v>l=Fh9!_;s}$o z=1H!JAo^$8EzUO0?|0%9H5%K8-HT9c;#usj>wj<_{dy0%I=+2lR zfXJOYayjXTv4^){I=JId_f{Zyh@V*DpfS=i&K3#9!W#qtFh6KNm@qsy-fp)@Cj>&> zMPGhmVKDO1xT6ivg)S4y*(-+Z;lCI>`8cfiZ~FH2_c6B z0uI(Q8dW5yi7Rh`roBpu$B6)nCWKN?=0av_!Gw3y!DGsf7bO1MpqOU?+i7s$80=cW z&o6)7mvh}2K<5+;pjHJV7oa+XI@2U4_uVsc2}6>ss%)ZLDliRi5+@`J-1QUD;hcSO zdgS6tB<@W8cZXEr{b(6n*`1DbNViUd5t93sn7yrL<)orKF#5C(bm78&Hj4lj3`htHloiN20C7DM09gLbtakl5qSJ&JpV5+E-G?)Kl?QzE z(`n2q$7IGN0;TXlijVTSAC4Vazc4CQ2$Nu20^GO_A&w+ zC!;D^XHulX2c#?{G$3e_n!=T`PA*KSJu=M%6k(`FL7^S*F%Ywf)|I__nsJgo?Eah3 zSBe=bVL!T19PX?CG%qsLDMOXOF9o}z7`ty|yptqzO}-TJk_x`kbj@qa>8}hJ=435+ zA4{d-nyI=so`9AQ$D27L@IjxBPz6?w$5{Fa`z4VEk;2#%+H8`_zOD3178*?rV)hvO z>VlMv9W;(x5d>fXYR?YwB(hYN(#(3(EK%zRQ5pmkq)NzsPb0xh4mPS(P}%Uth@v}$ zmL9A@DN{I0MCl&aM~RBcO&1M&RM}|8h7=-*p&NATa=iAVk){N83zk zAUkYa?i}J(7{^_dEtB%qPSr|*kGD)`#DF&+DjJI&EMVySB<=N-9cn8_ZTwjlWHO@F z2i`gDZ?w4S{%$ss|_1QF+zA`z6S7& zr0pDU*0SRnb1`8MyMYWt2du0cRuCLwaZ1MqECNK(`4i$u-KI}9V95@04}N};XP@3{ zmKR5?VG_k7ZL5>~SdzCRzJXq2-c_07o9zWDO{rSGu99=zJ~^}FbR=_ZbewkD9xfh z@0i;Ar@3zIE&mUgkWqeq_PJDBpTYAKU1GhQ0mqH}o(Hof%pC_e?@ziSk}`TN(tYktuHe2^#fBna{M@!*sJXKf-qVA)tm9P zh$&|QCSuf%_Q96Nt(5=fk(u;~wm|%7>ElSss-zDgv>dHd)NoGvRtsXu2u(y$;FAJT zKioewD**N8?O)?B88f|88q?2m*g@fIi>AuXk0%(0H zq=9B1ZiRk!d7g%$U0&%b!_w59PK*Ib3-W~nm~d-g+Ll##Ymf6Wa)O$cnqFP5odZvZ zw|tfY)Th8Z#1F)@*#%eWq7=hn98-DJQ;0rZlE{0%On8f{HuY}PkkkEDHm%O^G-nKN zuD_>*~X&<0K8kAAqd(1{nvy)ThMM^d_Ryg%IER&r>-#JMUOg}un#pn9iG zN)GcR81pIo86?$1@85WN@ZWq`f_96*pyE+OD5m{FYy>hL=9Z^p8o*=MN;?_*tQ+P? z@j^p-F2oC3?eJa@F7o$OXBZoc=QkGw)!QAL@BA)ePJDlAD~+QT5-Fwn1w*E@@*>xw zCfOBw-Qht2Xe?^N5VC~VYj~FuqVB7CMBq7UpKWfV3t zGWC!f8sRQS#{$*Z@M)^$y)KPjueuRb$QTl&k!>DLN}9yZPWEI6V^usej}Mb>e*f(n zPUHz1*t|m(etf7zs*V@)*d3bm+GjJAVO_hE~T5U*wo3;J1a+dH;F&vzmgUFW^%&~i$!F0K&78)8Q0`s zn|`JODZxb8G#7pNR_;P3y)p7Desx`tYJCS@q`*wC3gLa>Gg5zNhES-!9Gj*}R96LK z#<9HZ+NmQahzW`xfXLve`DvRQ^&2-JZR_J2u4~Af+2E?5U=0F(UuPk${65~VJkGbk zzNn&cP3vd7f<-+qzewK{0tN*||C?t;%1Y!`-t5_)dO_ai{CFePbUhm8<1Ld2gT3nI+KEfHW%wjLYg)2n!`d2 z?^$iDhMQ8E{4VilrbhK2zp9+ujIA2WPTBR#(naz(I+L`E+cF7;fs_cQN{es1qDNnD zM;{jBs;y7cdj#cmT4>GT^~sa4He0Z3I-H`pdTTepUhfA+cKBTFhxULUM9$YJtJff^ z?%L?}{dPU;H_vXD=}y0dL|G+x`t~URddgR?7d&v)nj3{Pyx;ZTgj%E}k1K3u`1-g$ zZpL~gydnSx;pJvETlHmgqyYG!Xh`g!XL?#83_rKUfg4ULlK7Gsg>${%T|W z)Kf%r*uOe`aoGW{*tV;%GzL9^b3OXYRGQLGshjn`JX zA? z7B(?Z4eu|c0(dU_EB3QG#zt`=`>=;|2xu$NKpl_u?E?h0PR&e;;&%Qx(i34=bIFMH5ts&dqT;LiZ9Q^ot_YRP&=#9ZY>cDBz`v}z&Y?; z+Oo5VMqyH?&FYysUA#gFMP*5xmCDstm-tLj1y&UCZ21FBn|Tjnjt>@0B7#2PHR5mQ z7AJ3RpKotbf*(e2#7EAy?AR_O+Z&+So?ErcY%wEK2b}^KNytV3>Od?fPJ?xM*bhq`_cOoRcU?dsu@EDD#T$xlM_mI6Hx=Vf=yFSgWd+*T5yN!F2`tSV)n_V};DB5H5u($ne<3(^ zhOWrX^kt=h&TZ#N>+wx9X&Mpqtx>T*@Vs+F+g9U#CMrX5=o4qGX8vsbvs2XtAQE}9 zEFSB9b9y9z80?rcFsKQ9n^O?vZC=AziG3cNCvIMPe2l%(wB8DSMH{XESgo2bmE#?! z_vO)<#y@Ftnf{W!ag2GoRsSoGady43c7skyY(yqMJ1~lu-vy;LplbO-aagp5p9%r( zbU@OD+DDPATc|X+H0a|L&S{rJ=k|%mF1sKksu)$QE^X*~Mxke;CbK`q2bi)tV@X zeiz3ZmG?Ss%*gSCL;b za|4Pf(zA!5-yjd>R)>tjOH?R)Zg{IM!gRY>DZKqOU^FNk!Rh-i(XLWj?dfcfXc)}F zG~>M8)HnUjWSM72I`0|jXZ+qn&YFyQNdPkl%{>`sc%{=2@+HS79<^47(;nKJ#X zq|N2E)nyf}5l-mfGngum5D{&#X$?a+!o)Xl3wizWk(MBA?ecMo5tW1fQtBHVmR`g& zxHYk2zZ+I%UIV8R=6PtRCqJ1V!pT_RFReIMin9Vp^wweCsmOC4a$ZiMKsm$aGYa=e zR;*cQdDyIvmuLy`fMmS zs{$FZU1X8%^wCjC+!=0$VY?Q);VS0sM%28R)wUL12dd-&8S0wgB$o%E2@M(d7i^|z zY=bv||mo%3QRQ&8NMo@gOmo-85Iw?FaTNPb5EfFnIn7oxp+!@I5IfOJ%;0@9wo(LxrJ1 z(F%jdSctnPNTCU?cyFh9^?@&N@4-1F8#}f(TMyF&q?~I4Fz8r^&}3S)LMz$nvdNU zIK7z^rXNFeDYTZm@j0g4jEQ1`*5AqY+gf$QF}%MAaZwI(!Xak%N=w^|v7wbUV4r?| z@sXHM#_R53pUTfV#?<1ojjcN-GS*`iaiiB|?vl!T@q5b%UrJ(zG-+`Q_Rnd-c(ZOq zJ`#3CM;BkvPwP~W1?y~lOGt_@b0dO9l5U#>*jx*(F>}`S^oH&|Q-(mKGg$2PBrXT~ zF5cSdswnTcY4K>(Y>JJ<1hsc?T#yayVqvQ6s%Yk#0DK2KBGD4oPaO-KcR5cNPQIJP zq7@g5)X+#s2LMno0rs9fGTAUE;?~aa!YT=*iSNXMda+}nX(Mxz6G2bwVI}usGli|u z{_LM{n5uyXp6n)Z6ov)-(}6uKHiiAGq1mIBbYQ9Gta&3s(Vj_9^O4d)mK*_qv!*m) z*v#ar!5-GOK|EqC1(Kac`L$Q! z`KQFCz^Ei7zulD-Qyoxz)TGcDOu;`|5Bi}O2QUb|Y4!Z3zIw-_py+$Qi0Zi|#9NUf z)atxkDC2aw>A$bYJf@~FBW7nasJ0qbsG&Y_IY3jn%tLr}yqX6Za!NuJzO;xKvg78~ zYa{+*`&nCgTHYF@Btsyw#kxx%)T9?ve+KZPLy{iA@QoG0HCRRX%1yUG%OA3Ojoyc- z#HcSig32-*mlYo{;ZvvJ9Ez(Z!!D1xQy7$5!&8u3(;$a;Yg_Jhew_>xyI$(lH?;o0 zMuxIi)(n!2T!*Ehy+ExLB>Nsm;(}g|lCgN3@ad^BpC<0Nk5+b-?u(xXF({2%Pnj&E zoZ_@I@Wv)t0}(kjO@5VPdRAWDz_e7wtiGz5_UTQ5P>RT(GADc<*lCrd?WvWAi5PzC z>A7R)xYbR@r##o9u1mHb7bl9S@&11s&zj;|*!HP+1ueG=3t1uks0=>pNNs#&VKW#P zP&c5wt+l3U-O@zjp{9*NyAq;s7xTSp&rYBjV}<;i9N!W%;-~e76=;E zruOpR7`a)8P4F2!=+l>Ayv2fMPNlHDkLZ)zN;{iVwLecQsGsaR-^anNRvKuG9_~_d zl@yUHL3lAtLf~Rf8%lStP(AL@9`TxL7w;;NOcDG`d#=wJW82#$5$)mZ&|R)<(~*q0 z9KA}tu&NqBnILFKzR@7cZ(a1;vX&?SBhYu*+`1o0cpB%iUNO48mQ5NDcXbB{v^AK7 zy{{7URBJZ!`(~ldU51F|vk!JGQbG8zhYzm4a#|69>wAF#D>0#=HP*MK9c5|b5Gph) z78cWW-Hxh7{{?-Qx1)P0rljINUCWt)iOT>RpR-UiCBd_Z zDXH@}n;Vf*$das^3iAkwHClb!VD{f^b;LVoP-2_MM>nVZe3ZUNie+Y^Da?bYB($el zxPS{+4{@90fg9b8Xtj8+`#Poo{Ckc={P&^MaY)P>Rm!QyNVJSSKx&z1bMQf53zI4s zyXJzX+Pq_SH8jtenSBhR<-&rV?+h)eLjbIFzYbsgTSLfL8u>?o`soOuU||)4@)Y9E zhc^>VwN)f%GIJpE`o5LyBWWQ(x=wUt(}Q{WJc%BRPozf~`9D2`>u&kn0EVL>x1qUTy1R-JK*JhvBVR@|caVlr-9pPeT<_F@Lvd zFf(sVB14{0qtRHvV;A!4bJZ5D_{Q4raMMg_{bTOJwGprcEWjuN#))ROv+O5 zRK`H|)-41=-lP%ScJ<4iU&4ZFU|055WTKCF;XMO^3w*6-boi9TifW8~@St&V9`_6< zBM;Azlpazr_6fFxOFeo*e|0tm{}=(l6b0L-P5rtp&`Q*;d@>EC9ZLbb#40jaUjAx6 zxppX5wTdC3SE-sQe(FI-1f@n@g8`9Gk{Cwd& zC#azV4OSJZY5@=5s#8qj+L;BmIeq`A+N~Mh zJGJew!hKOIk_xN1HtW>>YS%r=Z+A2^@<0WmrpTsP%eO*0v>l*)RyALT{iR>(mH`7{u8X zyUhpvDv@TGhXR4f!*~=-(2YQQBZY+qom_&@WG5^Yz469q% z=iZ2pms2gVs4Snd51C=`;U{0Cz?n8-Zu-uH{UZFq5>`^13ivv>M@Av`Mt;3A88ImU zr=u-h+*3a6N0=;CJp!B2vijwf`fKE&>)M%Cz68sQHxkEed8Hmj8_r%x95)+-EBO$oep z3@i*&<5M!exUVQ`ZZm1k{|qnua(wLA`T_9fhDiS}Lg#b{|X%rj{hcf z{-b{WuR>=_Q_=}X6zzDEkw0HvWC=!P+9zOFKj;cE2o|GG1OQwsf!5Ia5Ow&+cRRs~ zaw7$nF$^-Ky`sX=XX2&%r9S6si0TFCw|-_UajVH|zWl2Iox8m!^~3Kb=gRnf(5Zy8H8>Ej@bJDtnD=|!w&`!e?5rEkWeHTlp_4~}2JmbZCF8G$M&ZmfKsLs}}v z6;?rx?G#kEu>FEtL&o(ql3zN94;#HH*Kllshr)uIeG?R6Ob}a?Dxh!L*@lOMecs|D zD_eU6{=cP^S>!OMan=Q#A~CFggB&{l3e@x3ir45~E=^TANa;4cLN+>o>FA~})^?Sy zBq^lTwl^l)!mD10`pJMrJ_qJ*SEtk8M-OUd9aj98N7w88cL&2O|N2(uPCnpW*<+t~ zIt76}>8HwLl(1o2AzCy5d-~z3Q0C-c_N1V%1|FfFp|+B4DG1s$ag(!iCiNlcELAcr zxx0d?4V-5a0dUpr3e&Z_rLdY@=>=()@0n5J-f7o)h2?Q$8a)M#00{N`$J?@x~^R{)j?3=HeA$m^__ z$Nk)e4z?ZNf*O3k%0#%Rr-vecVP4~U^{0(<*k zR)+67yS{q_T9FnnbgyZg(chhjmjS2ESa>+%laBIz)o=1tu&cDKIs56_@|Du|xzfJU z^v}&WS=>rmFr?JqSM-0;V|fFSiU+pxS;;cTPsTbtiH95NG1`L6Zf^-w)!MRRztKZ2 z?gtY&h#hTSCg$cPGAp&0$Uxs6p6^Dr$v(QZ66+)r2BB4&*62J$^>M{%xEf>tHu#hxQ z{dRXV_$y|eKWE`7y0?N06A(NIu@D0Cc1gVGPk%hsrz5gd8ztaIYKXSvGnMzq`3(#i zMk#Ik1DtZwZkP!!^ByAvKoH|@9}55<>+3t(A!;ihVo=WaOsq2&;$jF{2}h0Gn#wZk zWdkPHqn&Je@)2RC8QLYbm<@@&e#w6FnEMUaz|nd_143hc-yepf7$pH*3%o zIv0WnLpTJ|Y8?9Nr=f##;h_M#XT|Hcs@tu7%~Om-(Ca4wc$gtCWZ0nOiEdbv!twUY z_)QX=V$ghyCsdtKTH<{qf}#~@_IU?}TnMD~>9dZl-VJNE24u-h$PXT#?rbwtOYCy!wznSk+7MO(ZMJ zzZXUa?_2igO{uNyVoL9Rs-pB2q5ru##x`omeAR>DxaM;vn7>5wj;Zz|4n2!|%x3q3FH?oZTtpBtIz%1`W z9!a^lz2IT>f#oWGIBi`l(PSi;uvU_UEH_9emSC!#2wN4$jKsk9%(%!41|2X0@#!|{ zHlqRtu!8yqgk?NbAn8s9G1b(XwYL}q62myco!vyxm^OYxKrW{6x%lJ_^k3~Z96*6o zFPs%3QKbxldKhkUf^QW1bWGw~%-5C(tz*wzwJCnpX67)rxu6k%wspa-OA-`F$qDg4)(Ly*A6`FgV4j1IoX%4TEy$ZEQ z-DNiM;_3rcX;5aor6E^`;z^lI>tXIB2H{qSP^8vg#46xRh3<+*XutF~I;|s}zCTI# zt<;{;Eg;)MF%x8P#%k z3~guNwT*cUKto5B}55aY|gS+_XW(E%9 z(At}XPX>EZoO3kaa)3$YOh3L8+vnzu0A6dpi=)1p8A_DeOvUg@L@Q)Z;g~);d-Cac zLaV)u;3TrtQTj~v?%Cwl9Z8tXouquhxuFNvb;gacQ8_&Y2h4GdTrQ4YDh%j${AAk1 z3)V(tRUr|w;ua{1SifH12^6wK^f4!H!Kc{f-UN2>20MNAwG?xUfsG0Wauae6bD z1}eQ)z6dBlJ)pSMRySQDCE+^7!afX;D;1>#PCF@b$zGg2y8F#37RpJMPuDT4a}V_h z6ABi%A5t{qJ!*MJ&Zz(((wyJL*wY5``A@l(#Mo^Isjenu2hPne9QauChA4QF+OwZFq2PMVdI68^m?cIen|B5!Et8*KU9*)vX^cbYN|qS5c1yVZ2Y&tZt5pPJE)=Bne)86yIhMN$k?n16;@73EmFF_N{QmfDJzsJFYGfTWa#^&k*73f z?F!{+wceneLQ2cSk~Q7?bftaXeD?6qn$U`Nr9Ad2tTBROEn(!%bfvU<9+k(U9Xxfp zwVM73Xoz5iZL7zSKBsU`-i^xpVt>M&EVa$dtrt3E0x-V5& z!30Zc492^2@!dm-ir^VdKp^a3m8bRECF#dBn1~^X8djjp_yD1AN@F)44hjTE{VmXY z?|g}j7Re6E-nX&7d*` zZG+^F$wu)rml)q7NF#m#DVK7IYbwmDabw5nNnN}pZ1mEAuH3pRCjpG-W@;=`GpH6& znEX^-`pm$^mQ~O*sX_-3@8C6BR7@Y(JgK&B&K2)(zrKi3Aw@3@GS+ z^F3C2*ocbAeQiYG9~9(o8 zDWykeH7JpTK2eHAs7CV@MvSB-*`Pi+WRm$ zycSw}6d5@T0@Kb6WJ`!dPrDDh{&Alo!Vs<|hScsknwYgm=4qM2ct&gQ6}d{^JulbDz`lVbb%K|3i9 zhPU#Y^e)?D2}&`$IP*^;mPewxcxA^~U|$J(-9|fTby50(xeX~pCAa;9ssTFybxu#} zqO7cKsuHcE<*i4dEU$wywaXdKhdy*;250s6;UM~XTfTb9*MFBuw(NE(hqH0dzNxyd zyDwj9CCBx%@J`A)iU|#?n;TBq-xuj}c`OdN#SB&nRi?wsJ@E!-@dixZK6p6c&!O5- z!yM2$nyncP=Rv1JuFA*$O;NGND)ol$#hv|N9XP--gSGlc zsYMh_Hx}|74j_D8{I5@+y00?zHZg(TLd7p#6Rew5+OpJZ$5U-Lk@gmK)+(-1_#}tF zaaVg-ep`8GfWm$J{->vZ;Wft{%RqxL`!CIuc{71czmjLrXXch4U?VP+-hY#P|L+rv znT7p-c>rt-{{<7t#_<0O6WOJu@hka|j{oPkg}Bv`GWzjT+BFJT`TpDV6C*2d7uhyj>1lqWv<@1zf!0aSdxJZ3^6*22*Z8c zOMI*RW;)noegij)>Q#do5F#OEc!lk%ZotdxxD98RRH+0wA8-%#51d> z6tS01fBs^gm){V`e^iTHE$dO_L^>>9pThIDQOderJ3!bz{d;8Ic1zB0{V3>Veclo~ zJ0l7ugWx?45U1wR$rncQ#q6uJbW_z~bQXQpUmF3M+KC^Fu?lvo8P~0P)t1iUHNABV zaVbaL4%&A%R^Ua@H5dEPfmKoT3BnsN;}_cW2NZVE{WY-_f3vh9e5Sc1s;m@3z4pn> zfx>@@pjC9gE4nZJ$M~{J!^P+cMP^X(t!BmNf{s_i=~(vq-Q`4(+3#@K0#K=Yj=3qE zx#AeQ$(w#H%1tM}*fz9+YhuHqub4N&7d-f^p{iz~{PxjBj3uP*x-P=LxRfFy3&ATV zM?CW4TU{d>5w{E!fQ~gHh)E0r02tyMR9QC~$pqh8(s{j{cP6Ju;X&SMI7#}puu>;$ zws*!2`Lurm=+XcgbdGG8D{^{)rSh8$b83KvBl;)LK~-H80E?xwnL9A&Rm8JVdXa!G zJ=VmDWLRQVm>La@J*>DM6}bF+Y-F4z6UqFT$WSue^1WSiBKk&!AH78GOu#2GBTQIB zS)fEm$sFuN(D(Y(dq>7#9!1`0+e0f=!q4{(lR~}yW8?EF-+7?<>3}!L&dB4SF{77U z$31KcHo91I7`x#KKbkpr#X>_k1A9iRhQw&5pq)glem>6ZH8w2P23tcZ0AiP_lq_ry}eRC zZ+p^OErKCE^+>z9Nsny_NH@Z{7qW5BV+~bhyk;h+s3$elFNZyD=3fR6Xrd=ag?;>% zqt4{8CI6)Mq{qP^RbDSlje<|I{h!3Ggg{lal7~lj%K$BaAZ5|41^vwWNerppr_#x` zN7`glIP2OZHNQj_@V;|ee5>&O0>|JC?42H(ouVk(H_n;0ysj&>=L#89_hYLQre<_1&$HJd#^hkClfGz29$&;!$>pr zTE`k0cpBK+b#O6WKr%(B%t5bSzCVK=`2IwCFhm)Q4%>C-Ul1P->OH zf77^<<4w>c!r>Ratp6u_D@Yzfx?WF+CqT50`lDJhdvfgxfvai=Je4)KJpT`UpBl=P zPLXGz${sL#N_kT-)f^FY=wMg-lW?9kyICiTL!e}>P=3 zp#}6(?|@BtmdAKylBRhF{V0elZAwnbwF)abs?r%XPc>Qa_etee+}Lc+Mlm-ldA{)m z(6yirNy&k*_Hy*wxjQE*&3ojoJ|~N$=KhZZeKm@f>wb4hy&^GB<7U5=WNp7soqI#8 z4_A3`cT6OTjXjgiv}17DQE2f?dr2(O0uP(*F+#@ZgudM0k=*}3I&1yYYMQ9I!JddR zp0bK7Ju5)?lLpe~%f5)EH$DXNw4&3ezVY$UXN~rAsJHuJXenwRh&H0)q0VCRv_-WV z1gonFKasYPRxc@c%_9pb`HG2mGfdXA244w|B2c^PL!)e=jK$>phss1h@e{4z(Lbg% zmlaeBz1D=vA~R?Il4w{Kp;mzkz{0m)0o1rWvzNX2$rSQZ+@XNxSx{DKKR=@%^hgnF zt54B+T{x+npsQ(2oIxq)m9xD{AMolz=*s(&vIf^%?aMyxXT+xE7ijiQ=w=CrJSl#y z7${uex1ofm#S=&>F{@TyIo;H?WsYWk!SW$i_EN>f&_)@G5*#3YSh2U+l2p@jk!%SY zX`=Ne1&gAE1Rx}3Z0)jUxIw?BA`wOwl#E-EkvQO(lVY{kn&k3aIcVAPxVq*uI{bQ0 zx-7bVh!I~=+lk^i|10oKG^5X#hpkiUo!Nn?tJV>^Cuf%or&!j7>#~vvLVyBem(|xS z`raKhh;ySS^J`mc#2O91S#eq6hR*{y!?taL2%j5;n-QchC_ z*2>9%y1PTr3~_Ge*Qf6>OtfU8iMJXc>d9J(F&6Oh1X&v!3)A?9$;h^NX{`K8|_ z!PIdV8z2J`&w8mEnlN8F8ZDl8kBDBZ>m%s0t(C=rI|c(>&JIO6KNKHrRR?bu>c+aN z&)1aELcPCX=z%!ztZBEWBeKe+X=-bYy=&~%s+E%na$XqPL_~t8io)q9o!Wq(F2W;h zA6cWkGcsW!!IM0_$e>6A+TUA~WJDrbG5)SoPK>HxL?7B*)M2^*o3ctYGW$ouHWV)7 zHVuZw_`(GOmRU+{@cJz`1&(>lEb8Mt&R0ee7;Y7CcT})>Vtu9U-tK2IdIZtj%0$A` z?c(>3OsdQxof8UE-V5}tNP%KiWJfu)e!91p8ayv|P5StUf8acPxfa-mm2xE>eT0$hG1OdaFSJPBFpu z-3uHELn%}EXk5r7qxA^KkS^YtrC%9l#wkzfXnbNsW#D>Y7jFKxPvwes&8UIV`gnEk zZg51iK8pkrpv`o3wr?BsVhM2BYeol2`U#4-Q?0?Io7-gB%SKYbmfh*blI&py>F1LR zoa!Vay2Kz$!>pqg26|Zsj6j@@tf6%zGq7z_I?nRi&eBy*2sVqrE#k^wAx0shx+aUR;m*xfXj*x;%iH z5x{d^RAdb_ho+vn@2Ug?^E9LGV(2=`r~fVT_{Ar3)S)y^#TgOb@jA++w3oNYu|m+W zSeqo{toHmM4WMy62?sxqUHSv1Qu;m7z6soVn04L$^2Hh?fyb8J0_y6T6N~ z2W_9IsnJc1Lx)!hRiz+dO{okhII@IkO${$;8`pL#w-6rEe?vnq*!~Yf#Bcm&f*XPR znIup6-on6xJpm*Y6=q5O(f|+X-`qfk5b@T5HeVBc$c~RIdbv#!*T7ITl=CS-gX>_jT}3PjJ+)}(A?z3 z%9Qgt=YzZBv|vk{sAo(ogMx8T_%AVXE3P0+KvGHt`P2NLfpGdmEn-lZA0ZQ*Hi8H( zbz3)u2b);LPM=JPA{mVw)rfOC3mO6v3ClRL~XZq%kHvm+qP}nwr$(C*;UnL+qP}n)w||gC-zzq z=Z{$XHt#dP9M3!8e?8Nwmd|BB)7*BZSofaqe3m8tO2cv+cH|mod&3EaOXA0xwQ^l6 zZ&t}V>xR*@_6b*6iy8a>X9)kr1^zi3Gt;yF_tXR{!+%H(v;I2-{lA`#m$ZJ)#w{qW zwN7Jt=}DHH3N4scz_Lg9YYjqaBonMj*w#4W38)$g!j=X5pC6r|a8hz`9LdINZOYka z0!AM0I~#yqx^Y38aj$efd|qwsFF}r;U!PZz>noODc|REhNxq+6)34olPEm8ree|XG z+q4u(VA8JKY7Ej2UhlSdiz3dJxmz=?m&aQyY}OFZbl8J@gWWwyXILG)A}mAZtUAtL zI|Q#&d|X`~n-rfW2ggyhEm=aJ?5CbxZ?OM1xC!O`L=pHdk4I`>Zu6gxAzeMg@$`~& z=@H8w*3~Aki)F!f23y;9h8+B_Lsd6$*ZvuoAok8=wtd*!JO5a^XmS}w(t2lqeJb9E z@At$6mdA+SfP+1yND+4^|VthxRI=ELQF1L}tD*7j@mbpQSRjR`WTxz?v% zX9n>KF$L4haXDMTAe%+x&RCSufBbVl9(ZIY2wL2gUbKCnYywIX+il6JZaAVSIN8($ zgw8%7VZqPY>lke7H}+ZWJlkY^O_$G$~VUu_%elK-}9epI~!Uv3@hTwsNB11o;__w_IOp~2pZfb-X>FFS>(TOo35 z>)?nWMFyydJh%C&mWQC=5c*1&x=r}YauYF_$i5i#%|HQAWe{w}Fy2k{P>A=>2e8~J z@!><_IPWmLGLPc^JU0hUBJ>cqwi64B#Wn}lL@YX~nU=P@PUdYHW>KwQm8CtC zF?ML+TWemk3PR<$0`4Vy?yN4=+d9oRy_N)UXd}AQs`#p%6gPS{awvvdd#yr{^wYnZ zQ2JVy<3-1d`P@uqckT~p??7}K@$+zDQbtd{rqMGaK%U?Oc=_4xajO#%53k$wVdLXw7A(`YgP!(o<3Qx?h>^%i_409t(% zLf%DoAzKdt5#eaT1_7auj>W#g!9a>pYTP(VW-SbnW$&wbs^j`(p^EX0%}FKH4(d;m7yH3uINn4Z zW{WqHs=Im+0s*45J)lf0g`-X&G}sgRQvlIGmJMXzaVo7Z`W2}oPa0dVrHd_wq+1R& zOsIx5GH-QkX1@ttW(PuF6sq-(CtHBHEb&Jc@zh}dloDJO^dPekh!~6B#-d!Fd4xk6 zbf^o0m?Hf%U&a+#$Q9X125(BgY_u{r<<=@a%=tqP?#`)9bHn2HwCDI*Jm{iA4G`&Y z*5=7_AN<@G=u%&W1fDsxJ?eTgPI`mr6o?W6Pp{Yiteb87367%)<@u%vt)>zCN%VL`?x zV%Qw%Hee68N%|^BH-#e!efhrYtpptqRtA%pFUzx$8$fN86x|Yf(3-Hkw(mZ;zbQ9B ziJ>>)$2am!VYmHtYLsO3lV)H&wrH%_KoTnVB>4bqY*0&M>fIb`X zAu2jN z`-v|yxLFThS~W~fk!l$^ADFFwg$}gH8JDpAob$)%a#59i$74#Fc~gdc@V`lB;+x6@ zaF~ag#!pC4hk+nl3){_%c+Dv<|5}OqmU0l_<6^vl=je#aHICX_!0XE~K@&7zm0+r~Y=*Gj; z@nJVqG6qkBaQF7PBtE`QEtmOV?+4H zbX6&1#H)z!raU1F>4Y>{aCC-C9&6>#jujb|@pp3zC~p-5u^vwNEEn#LQ(7ZOQKLBj zs@J0JvcqprgXk%JjRbErX*4i>iT9~JQC}v({{^oC`{2rbPPb-x;L9@f3Q_n7?xY-8`*cYo6U%j#zO(yLHXQ_O3 zpai$>-gmk}S$VyJ)0UwOfFR!qkiv+dUy*Z&8+gPEl?18cd&fP|s8-zQ=_5HRHg_bo za@FF#xwTPY4w0PStZ-hT#004-SL)0&l?HH0eZ*eH;^9i$MoUB4J$!bxk6Qj??4W^R zRwhve&HIZGV|OjcLglCJ|FOy0oSTMPgaeI5;$BThc(xO1uTfvYaGwBWz>H(8q&Qn5 zx`q%!gQWZN@DMjTH=186S+h#Xo4R;ldW`ok4jypI!#oQpl=vO8NG&aTg8-(sfn5{M zyn-vqMh$B&GaI01c=GI>E?G>n#gR-4pf3k!q9@nM@D-ySE!J*CuP zM)^~GLW*VVE7+?ft91m)pz`NhW4o}T8q@_Xuz zv^dmxjcpwJj~Suj%#43M77-gY-;pn+bj5;08)%=d1bO}HO}Ay5ylwMC;NzMH=D2Vb zk@cV-5AnpGooBDfKj(Ij2j*%d@>OgtA9=JCj>s!^4iV5+%l9$ybJ0K+ay^ND%OFRN zjDM(P#*!P4$kV((((u>|6IviMTb@?DGXeC1z(a(=jsjP(DD+{{W^A6<^klmH)p~T5 zlf`>tWaUhlEw7ReC(%$*H;frm2$LouC=I@pbA6BqYboO zpx`pUEIa8$G6zT~_iI~&CYB)Fw5j0ad|yqp2T_lJkztAocNeNz6tf;jypGQx zX&TX79nQ6naMch&C3M==p_2{ER3At>ZEkgTlCc`;7$6|eeO8_dvms+id7LlN5*}#n zU~k>UNW=`pu;Zf?GabBRV`ws~eN=2aCA4(f1UT&R&*B|_DdBevQg zl>Fs<7e!}uG!psChEwV6%>ZB+`#*y-eCkikGU(x7g^$hxLiD)jcSh7E%BaC(Hiv{T&6wlUdCMCvl6uXu1Md zqMv!gxcxXZGo!I~?T!D)jo+ZnQ%Uw)ald9jy(9+>XA3O2^@xYm`y_iIHOeY|RRE$( zOTktP3T+DMn~j1`i-o225;Ut&S%;vqcFVGz7*i**Emb-%95r))%;o~!MpT;XOIS*8 z$8;}4a+IJ-Sq)LH8O@jpd~M>hb~lk>-Df_RxSZ3DEDrs(`E4`>fq?hy?bix%sYODl zP3`M`K4uouqMYE|4toSbEEg|UD zlw7uZ8k;w%>E>}ho3LX&=p`#JWfhF$lB&cL^ljq2)xDoI2aeoH@_BWv9o5HN*+oC1 zmug@_{jh8D9lE0^k;_hlMm_(;(vEkSs0^`cV->JAn+Sg+)XdS*a+y&Pfh84%WcOUk z$0(Ty&4wrD`l1smh}_>3(!4p6fgJ7u7R^j#{1Xj8q+cC}#l%0jGYomjzviC3yEiK2 z>Z*ujAQ(l#{Yp79+MS9kJGV9F1xI91la0y=+b+ocBXI7MwAP>gZ~#OPHeA!BhBkdV z@y@yDqv4mFY3^CO&>U7|D#sSxOG=)zyE5V@F>J;+^zuv9Utnt0GL-)yGyj#2|GJY| z*xCQDJDHX7Kg8Tw|D7%WUuEW&hLjyP8%#GH)Fa)b1K1O}r#xmw3$b_6bnTT)0FcPE=cGM0xeyepNmy}&zO9!zxnL) zY(S<*) z+g0wXYcqs8ItaMTIktKP7izZHz?_ZEa-_{A_RWD15h2C8JTik$Z)aGY&$ zy9!wmYh}mYjgg9}9ORG5D#w-1aW?x4B?-LI80h;}KE^XF6k`;Oa~2>Jj6+<^eq6eQ z&av2n#3UsV1&fq-#rZCW?=a&qR12Pp)_}NI?0dK3?4g4*v(+NASrS%TQ`T8U zOLG$4&H-GI&-a^T6h2f3MqlsH!>&;r!l$-okD%LT!rc5thY5>vP?J|6O(Yx`83IZ#Cs7WH)TYQ(US0R{=81p9sZE%KGg?;Kk652A zzXyRwaSp9cY!si|`K=N3=V20ZwJ2FoADI!gVTQuHG4P@fp0C$l+(UITN*B6_=-gUd z+b?6bngSXloFM-fLKI^P1YfYAq_RohLNv`bPH8LS!j)(cxmL-0Me z)M~cjrwMkA*UZDVX|+A6suJ!&^9t=oDdfnb^_ph8N+Nr3B^|w(HE-lfFO}F9fVZ>Bvht@T2CD9XpI< z1I;a0HW*hDAiXUA+WJny?BA+r;qoC`qb5GjM*&yL!q|jcQH{TZCiW zoX^CojvlQGef)z%3Ly9U$J=HnhiJd4fCxgZ2|SKG)ig|~htI=;1Nogo3#inmgBThF zY{OoX^rZvDzd^vydC>Inoqh`j$u^RW+jqsm6WFzo@F;&=KR6WMmX2!r8w4k-xf!@z zW4xQ>k$j>#g_2VbV-GMFiztzHQ7Zd8c)xsEIJ zNiB%!BpqKWHgXxm-)Ge{%3vx81_VhGFEZjgoJuH{k_mwTkw}g0{AITFC0~nl+%Ai{ zrY4zR-qniu(N>wEEkX^G1p>2>AHyb(jBzZBABo<{BtEOoPHT=YmCQ%wHU(gL+b9x10yO1M37Yo|n6 zQ;<+mIUsqn`!Vu&Yo$M^yxi}T#Q=i45Go52JU2tDNNxC}r`h0<_Pl9d!56}3&PxC*|I0HM! z|8Sf!{WCW6&&U5`n3$D`<^LsQw1lPMggmn5u_dYU-Ot-*YG``u)qXV&jBY()Vg%!O zum2$+2&4c=088@RGvoHi!9+y^R5mVB&$Y2I;+9vlqQx*?)9ZKlF*Y%EB{pAq)!2fC zxify%!&b+}_zmx{{CrIy14GXYhH&_NdnP&znzSw}8ke+&+r9a@IkxQz_1&@k?fFVW zo8{dl?ZH5)?(Pnh-1}Vb9nHys&*AlC5X1=8l(5@$q5E0=TZE)?mK?&d)aWaqm^T8`P-C|wXw51 zvK6M+ztY!rMV9pezJXV_>%T3@WO=X{4NTih&$P>-Z(ahSXgq(IUC}!1y7;Zp=2RoWEI0C)7C^!7}GrT%mV%`Onw zu(pe2I7uAyYCb4jWGZP$j7a6%iwqxmod(;Taw>b@;P&c}nI`e+5k(qDUPAUZg^(C} zHPpfFt_h~{(_iVA2`)E28O8nD48v=e3LIV~1)Yy(a(lHzmZ$43zw+ zFfZDv2AuDfD;k-4do}0pnAgzPscbvpVbsH-CtoWp*70feU2!VJF}Rh|Gxbiua}&Ql z-nS;YvWpE7Zr%e|QU+;-P#G(h;=LsSj5u1V>S468CS6j86mVq{fu^ zL+}`Lxd%6^{aensVD8YuT^=?z4Uh!a1OYUoT89g540YB>#0~Nk9lwx7$q1!G(|M-w z-49$BgV86#Ss!bxQ5N=S7QvZrH+$xzk7}998I=CPq%K}cpA&*UJD4;n7=!@posc2+ z1b>_Tm?gqgzbuNp)5I>y_Ahdrf5|*!&g~P)M8s?n5+g!8#})SoAb^AOvUs8dy$)UD z0;#(@CD2}mxH}ZiOD!Fx$T-xD!jfI1$-CnZ4u0dOr%qy2CcIVxlXp#2{W z>Rx$^!Y8ZMpa>NMk`QnJK;^;}J9bc!1N5?^1qYUT7#2VkD1wrleXHL~s0l|Jtv*Cy z8QI|rH?1MW861*`q0I^hut;I19F$bmwFH!(#I1iA|1b+E*JtfzG7f(LhA%4Tk4l=E zF+O)_qrh)T8VCMqupHDRN*Nj@w z$Q>uuH*?_zvjM_E;s?5Ri8|A^>Os5s2?}ii+w-UEdt5@VpzXRE~={UBymsS3kM z>(UEZH{L@|@e)wX;ff+882=VN=g)Zh=B?pQMG-sZV)KM60-yD3x1EMKI>%`L%wkr5 zE!-jP;Fg(#>@;2fNoRkwQ`MW9q%3>ade*3d08|3NdkCPmnHrG6u)2bX|HImROeOf6 z&hBMT7lkiZluP~Y)F+)#?TsE|8r01mhyd_hn%~B8F54Re@fm%K5bA>X`he!C-Y7GQQIEp z=x-xhJ~{%1R8{(eDpOV{8Lhp~9mW$g*cq=wvE$FJ?P@2v`Xo*Aoh5H3uiIaf-L6br z5#AlI>ICC>t)&aj&{rT|ivkJP+AY)t$?$P;EQ;CWkr`VSxCP?|prKD#VB zot$E20&uiJcKep*VB(iH`MJt`unl@sN9XfNuRfFPZ!dy5mjrPQ#2?s~FWtEpN+k-l zVs)0shQKL{g&LZnJaE!nq~>^9rH4TY&8o#+aksaC^7|#F+pBva?u%sh-|_=D(@w&hW(a5)` zj?gQMgI@6#7W?gX3zkcjN(CJ$Zq2;PqrL2Ar{nzwTtt7unrZ4&Wbj#%ev^|sqI7j~ z5T$tKy-{J3eR2$n0EGZ_fl?HK=E$xrPq*In94RcW0G(@3GOATDqWMg|h>KlG1zNLk zZVS)YZD)s?)tJA)Klq75%)FOBHYP*n58nsYRA$?qv~P?T4mJxK!8Gz;k;Pr03b16T z>U_9V>HB-Vw5vpX?aHh513uPVII)r^9@f44OFOYb<^eV$68@^7<&~1ARouoHS`{}W zs2c3z-2woZNK?%xi7Z;O0jRD3J~l4?8xWUE>6IR1glJ&IN1_ujYaE39I?zYXG%V}> z|M6oeFnW_yA2Z&D1X0Nr#(A4$y-bOU$7#stPIbj9gX&kJ6pY?7ZAMW|lL&4pOCG8n zu@jY_pO6MmPE;=Ebf*f+J`;Vckt8`%;;Jv#rno*GccCdZy|=8Y^*L<^7rS> zLUQ2{c$f{SBHIv)OH7X<2QQrUyNL7BC$*x(X3O_@owOQ4N2-xxB4L~lOnC{rE+$l9QBwu7FRN->DqwK&!mZ}Q;5ahyt z2r@o`o{Vssw;3P>u1Skz&BA0mWViVTez;`3pIk0{4aSaRy%YFrWOL5Roy$3_ci$-I z7?I5s?X85$pEmVHz}Smb&_Mj4djO!+l#p<0X&dr33fpm>31c>+7oJ2RE2X=}Jv~FW zIWmjWRWM&Z=-30t9CZOAlVpa+2kNy*$20;5ggRFRJOvRJnSU5E#6Jw#rZcgi zn!x&EDgr3@suywQ!9W{ca*77m8!sjNRdj!UsazWN?QS|{h~|p6%ha&`JGF!PstcnV z8~IN)p$>5gje{jZhOQ5VKkst{q&Voo)IKLIMsy39Y@V(E@#igpUe8sj;la_)C zWts&ZJCXV;>XFBNWrs?D9h*<&gWx!ZTf3IQHr2j>KsI)TdFt``tfb8ef@?p#37;)^kjH2f8`%bV?$inZ>F-Rqa(=xe;#OH z`Z}}~iiOR@ne#fl(^c>^86QM#f0Cc8op_;3v-SD(x7hCai!$t6f8)3RSWTt5~EKq+N>t8|^K_@~A1=?SB?}?wQJ!c8?e ztMOlzuz8MAU8bG2-Ez`|Ppcz237MKhU^Etst5qxBtBb`(gjLqnGSGbVN7!_QJ%x{ZQ^eb?jIr zlHUg{az-J##OblA-xII!pSori@_;%unEo;oE^Ap z4c+tB-jINx_`LPjwlXQ*ow~*K+GB$8i}rk#@38+M;eD8BWarl%<<%+<1=Ubm{Y(%4vIGrLu#`yZbT$GfQgfg6JL2-WgpD(%ukA#!Z_ z4F4dIlW-k6DxZbyk4Ib4EXol0<(IIqu>2G0^OUf4)5$t=&-V&!8E9z*-V6m}6#d0F zm(?3vmLGK=_B;$|XEd2y7{6DpUrbnJ?)m#q&SO=x&K#x%o$Ao*AQJEf#4pYd!mncs`Ife7&2 zo}tZyJhYZrpqf<7OTYYLGk^9?>F&sb%F9@o^*je^9^VP45d_h@#|EyG&|)F(;@DHK zf=QHj6v}v`4<(28n7f-E-o&??T7|`!wuBR2MdliW8HH8sWl8L2xc!}XpXA!n^Gulg zQza-sGzr!4KeGGP$lRGM(8e#;PQ!j7xK)Q7B<~a8hF8ztP)73Gjm;dN2lq z@e<(@!y8s_69>Wnfz+5!QHWTm%veuh!*d&<)u7X-${77Hv!;CcHoIzUV2_6qwuvve zqC>iZE*n?Rz0K5^D*&wFz27@Pwql0OSheL{99YVu%h|jCfNIiT#3Os`H3S>Lg1@cU z>c^Z$ef)O-C9WtAR%79!EdnyC^*IB=r7NXKtmX+3mVUO61J{F-IZ3xOqnGPnk(i1F;(EX_y<Rsb`o4pSp3L~ql{k;$sCmR>dLYCb~wk@LOvb^&eTcp;XgDpS(h zXLH#v>-5&8mGl;b9++uuat=$RjyuC@wsdy{LkFdUVjr2-Z@|~yYs%@;M&~t+l)Jfg z89$NrCB`!WF%G>_dilN{BBSLJ0O>Tv%!HO=>hfNE*<{dso8Q>Q+fIf1nann2REwd% z>P?l?0UHk1z+(uqxYHgq@BGqKTNqy(q$g3+d~*n5tPcmClL&f>T|6#Lw(mWwPf75q z_}}Qlf=E4c7HixWe(4Fz#cwVGn_RoK!FQ3ql4St5`YC$RDMaN)ANi<2_By>(^WT2B z0NJ`_21A-I0Y-?pmC+}`7?%?ce5VKkF70w=8W@O?$VN7F$pf55fryWEZePPeI>zTa zWdRef(twN8uW+VZBjO1;!(_x-7z|6v*V|r1`KOj&Y6-?MceW&oU-@Pd=B70T0#=(p zHW8o45UF(y3adLxPhUZCPRCGeUnAiQ!}J_v!FtAMdSWKf@3!7ZwrZ46Qw&%wOjq269brgpjxHGtf$1Rmq|3^@v~63TPdc{y?O3Y5J;?b zskd@DH#T@z7AqN=7{`=cmm;1Mq0_^Pjt9iZCF1m;L^Y%}8TiIMtJJaQP?ar|&MfZw z@eO(TqaLf2Gxwtvs67dau&2?U!q|DX&g&MKN@Zb^P7A>pWSl8W4T%{z9zFWzrRU;w zrq`^m5QRINuC%xJEd0h(V4-`mNOhvSZ2f)NOC5CyP_k^Bhfh%gOe+Drw)x6btnD&y z!r!{XPb{{sHs;+mu<+7ERj~3>hu<|9S1xFbPRY!BPQkE9+ngH=1+pTNsNEby^52Py zFXH08>jv}?vaiaQ;F+L(4;L-`Qf0*su0;jK9#bY2W}ga>B^=PvAhf7h)0D$Y;8n?)FBiG7}GRTp?n+oNp zzj4_ci?2^?GIV%no4jW7+&JNi9jW~Kp}Jvzl3wF?U1oVid=nv}s@KQtO=k#3|qTcH)r9ik4QyMyx#L6=Z1-}AN`T9tvG?W!!^?~Pe0}E&E6amG@pjg zCI%}TLKW|V@Ow-Urcl(^rQUrqkbPNd*Z9qp@Z49qz# zRt3Okj^pF8Ua)B+R;2GqhIqMM^75z}GIv{a3o81xBPlU5nl<{hA5@nuKcq(@^x$yZ zM{f9s1z5Vnn&2>eG|BXuVI0##yF+B5VH58@isdQFjDNOG6+auF1RVt7-RRxzR)3Bh)QdXe7nSOpedgRz?bG>--#2)k_aJ?;~(~Tx5Qoi+b8yNC^ifZOi?GN!sHM;N+l$G)j#bY&u{){BXk@g}!Gnb@nly63#Ov{^|_Do1z@^0s?V+s>Oq z{&l3 zRMvEK5R0nqH0Ko<(|je_+ZhZ_O_8r%Mj}G8YTSuC@_anCUJ6IX;+&)r8;@p+d{LcN z9T!Wq>7%KWh+L8z)W^)h+$jWw;mcZy$N3yXk8kwfIxUpMC-3XEpqQ@uV_c543wZY6y%lq7(r+D!4u?OS3f%o>^N*? zAAVDLXCD~=@$v0V0|R(v?qCN1_PJ{x4L8n{I~lQj7Hzs~dg>kzx0Kv>Lgs%p=`M+!*}cp+@+D`!yp|@9vAm<`y)JEGj!uu>ET5aGY3a z%vBF9GoF2&2RNUbDY$t@BRacH#qA)vJmx9+E79M*6?)nJ)rUNU_B+YY# zgUuA|T?`4b-99n-l$%k#`8(KKDN2O_~@>*8`B%ow=FzmXq4S*8%sRj;I@Vb{>2|fUuEJ{83)3fLW`UM8T8J`;>m@DfUob`uhg)1NXJ%f`;8gEeG;G;V|^Gy zgKG7l5@M`kpvwXI_~L*NCG_O!k11TkLZoU!OhnG`fxp37-ex2&X@4zLM;h@@WOjjH zl*s+xvBJ=E-PO-06nD3r8c=;V+(#ZvMi4xGOcCrnB>p0w>1%Za`(9&mH*;!?nW~!Z z*hWgl?b%isV?rx=h#r06@W#%78;dJ3iD~0!mKN??351pUgKqCCiPNT?e=?kpFykK(uf5?8ipMuxCnT~tjh@P32Gb)g~{^v|1 zdXQlxsR5~eTCl|yjTSPLqsUMa5WFglHDOk-weMP_U*h~;#KVGrA*ZGBD2MASNJ;2C zjgv_c+PDI1@%THM$VXTb**0!jILM8ro2E4OXO=<>v=Z{KH>+ojC@jK)S>H#m$UiJ_ zZYb3ZzzXy0tD3d>`g&{EL|v4z+)=K-6X!Z0M5xCN<_X9)2_WSKH#5RFE^F6@jQ%2D zCXJWU<1urZTsDX*F4tL{Or`t$YFTI9)M6BfHZo)MKniSyGiLj-h6^2`^&nS#CS$2s ze3GzS6YZCIghro;o(CIX6?^Ln8Y*iEw#%CopnSMfKK^Bq@;$!I4&rV&#B=u4@ML7K zpgHQ$u=Rv%OITBLH6yC9Ir6jm-%vo=qM$5USn^d7jK7jj$zg)geQ>sfb6lwn4dPrKn0R@)FO8ffkuAm)?JjD^zQ{gJw8$ z1vNG1TPLoKGXkYZ)#1?iD$uI!vp%V0r;N|el;kMS&LoV&m9K)P;6dZhP2>ptc+2ux2pK(l|Bb+_6CsrW3ZGHesz~ZBgnQ{;k9Tt4ko2FW)QLCnUGV2WrF2YeH zh>NI~D@OTPWMIyVS})-YJvOAYctIfh@?qDzbs2Ns&|g!2S(siK;?X2K2JZu)6#iNd zS=X;f@3w6JEIV*iv3IH$qj=ACYp^(JZxb~Xz~4m*Ql1M8R{Bw#Yh^lIJ3!ZE^6smf9H%I*c(rXI#NX(g3+6jk|;} zZL~ZR(lm;jX!_+q5p?DK2U;Cy{E0NtUc{m0^GE>8^FL0k^L`^m2jjR64#WtgxmCqp z2$44N#D1$*6=Ck|x&|Ff!wbim0&=A=+iu51Sj>*?DQsJ!Z%6VJDceGUJanmxmgrR9 zyN>v`7UUQ~Y8VMKNt!d`FLNF!HRes#*Rh6S_f8ZlB(2ic2k!Udonw~WIwPZpwAsf( z>}qdWS+PMS4c9?^EiXT0A6&jT`!|(uOeunlx2!71ak$noqCFoI5zWA>G+iDfiX&5X zw=T|iO^M9l%_A2)B9Rx(#(*3eEBex-obW$n|9rSDFMMI56+1N_Um60igJ;Le%MoLL zcW%pOr>mr|AhnA)%VCc%oJlx4+dj2b$-8xl;7T3guM8`>i1EVKXzql01VCd9UR!V; z=Ojgf7s!H`z{!Duyu(?e;LHa<9I3Sc16tr8XZ1FJ_Y~CXutSt2kElENXw2h`jl>e4 zN!g-;*S>hri^W?SJj;;_7%`;v}_9x#g8&5Ffd*i|J_s1Ll$b2iXsHYloezGLtZTx#OjCzc& z#H28*Vt<2oZjsXb*+gH{{_h$Z@$p2&TjC9^{{cdWie--Ha@elc2rs@uXch1nQh#R1 z2CeBefZpAo2kvg!EeYE2Y9w5b^Iagh%EGB5Rh-?{SRHbR`JZ}kYAR?ZkHw|}n6UkJ z?QUsTrrd5ZSMm}n57v9BecE?oX1a~p8`D0A>#BT*VjmEm zY=Sa#PMb!v;)=UpmJ8(hz~#5S2o;~IwfRDZJBW7S(1Qyyly$HE~T1f5LN3{`PRkpws71! zG5MGE3QFYj=V|KMz|p}aiXG2Hnm0tJ3fk1|X#Z7J&9qQpx!<^KbV?in#FYD#Nkq|d zG0ody^-zxs?0l5QBQho7Q_jrTt&9`b@w%|rNh7UkIiwm!*}CZ9N?&Ot1D=mQWeFL-f9WE1HQ)rM>@|*IubH{95G2pgwiP>Z6m>#vDT**1DcktQ zqBi6y$=j~VwPXvAn0xYRK+<4o*sQ?TIT=w^tgb?xhXxWVMh$JS4`H#W6`%MK=2w$z z2r9|o47>aJ!`Zj|GEL^^h}MXl)(TP(gV!d1VGE72UZ|qH<;JR(b3X40+3W4Uyw?Zv zEH-mJCteRoRywk-l1rtWD~gQkbNyBnQ5tg`qL2McdE2q{7vM^Sn(;pfIlXV*Q0_DiJZT9GI?aULo%>C01P^4 z)&K$IU*7-X`!<9kk?}+SgYP$`A8P)~_aByOj4T%4kB%ZYRvf=R&bK5>!4o`dZnEu1 z{AHBj1#0DVtBo=Bh0}|5xMq`rp2ptJ_wdD-$UmWrJiPC>EQ^HFxvSaMrME#_csYh- zF}b7yzLWU-#Zx=fJ3!1q9L;Ip`ERBm{Ty8uTj~#&A1)8b5f2S7wgm`z*|V2 zINd`yyR6Ld43@7E+aUkA)|2`Eu)(@x8I>Z3z=(kopor{^E{l8BQx22a zamcd7MD~&3cv^QUI0DfbKcZm|r;>{E2SfD*{~q!$O!=n0OVe$db0B$k6IGAR%e1~$ zI`*Cik@`i44%k;@W-hgP(Alhz-z2ECb$e32rht8i7{?gysVVeO!nP?{H*_%h@I#a#dN07cu^st2a83>x2*kKTHAvJ3!@f{!-mPnE4SLa|T=#=PJfx}}nfmHw#r%EV2@E;Bs zbF9~;CO{sK#H_=v4~6CCz^o6n#bz)Ftc{Zj*T$m{+lvG2(lJ16*AQ6 zb^~Wkh+Or8HV7hz=^SzEl*Y>mOw1Z|4;3*mdch_s)~q3qpA&_<33X8sJASAv!b7{N zl>f1O;f~+x`?-Z=;CzgTs+{H&Y2=NlMVV4%M>C z4t#kbv;C!(KJC0%L8gQX6Ox)I^GOaX%ti&Jbf$Rju*tQOc2mS=%UueWxVQLSEA8D} zH>uXQKbIaW3h6?+=Rq}8>j{;q3X(>XwCAkCbQ%SW^6kx7x(fxsLP@ge;V%kkO8Rgl z6F_q;YVeAe?DAGpnT<23CIg{r3=~uUOZR61qfyqGqfXV&osy*-m~L{U#-S2DGjSrU zx8GmpqjVNJxLye@ofuS}VmwY|1U)Q{<>EFPm&e`j%y*B%}))IhtNPwkYuPvJO)yf){mxR`g zdJxe{CUOU!xir;EEQ2Qzy&bX7Y3U@5VR^E{FVBN5Cxtyqr&UqSx(MU0G<(6TOI12^ zZwavSV9QP1Hv>&U&pJUGYFS*FD`dOkZ~rMA@Cl=uNqJsh)%7(9@pc!M(?=X;s<)bp zGI(P*b)(-b`tjW7vjaIwK?2v>I1QiqQ&g`Mb}Aah0k4gF0U2c~17S7*d8``re3KT9 zVxCkdA~yqLwT*ae(VPEz4w>BAfNCuR$oBabrpxFXNq}r${e$hNz2xtUN>UBQ0@=Q% zoCY)FaFHB!GhdZ9(-{pv{W_Xh4YVb(U%Iu*Zzc_q8&&u{`>tHUUrR?E{z*B^Wuh_ij4U+bce!EC%Two+@navB@yhvBfwi424@S5A)86PsAgj!=-+b!AUawyJ!>e}jjSx-!b#eLTN&I_s zA>PK9`_`*^JtM%LeXR0|z?$VJVLJy9;ifdIdQaZ97U%&8! z)K*u~^dE!SwpprlFejU8!s50!D*3S{}!<&#{Y#26*UAEOOPGiq+S)@A1qRm)qV}<3~JX1`6WAXVDd^~uZipZ+Q}0lv8&XYng`C4Ovxp7GWSnN z?~2=*$VpwAUW(htyma`Z(y^{q5=g6C;5@KO!VZ+?QR)rbA$(GeW9tIKYkX^k!4&*& zKg|`4eqWKZR&-zI)qack^A0LKdLZ;4USs~gntZ&*{7=6BuR|gKF6(psukx_}Gwo8& zJJnFbxv7S@d^%}1Qa45hy#%dXAf`c!)UH z=fkTt6`{G8g?qnaolS%r?$j(T^d@5_1qFr=OfJP`BA=oK5p?09`*>f3`Nvv&@X5TI z{kk+-{kDZHh}a*4(-mAS4P%9OyY!*!WBcK8A`&Fy3YL(7Dk^A%` zMab4V)^CV4_R1#yI&JN(M5#wU+SUF1-nobJW*gH+(k9zqyYuz%Ne?I59=X$`%@>3f z=LA0O@0aJ-0Jnz?o7T1$q}P@|yP!V!d>>U8S76lz7UEVXLmIc32SP8v9BLEZ9jNQy zT*BuxOx6=J7*{jNeZ|Hmqbv`u>&;w*)x+p^;Kj9qO3NYfny(_S>DDn&0iDL~g3B72 z=zrQ;v+UbFtq4n+dK`k)I`;JA>4_Z|{rS+)A#`0f!1`h92OO9w{7~dFTdV2Opl^h6 zJJ~CtG#0Pvh4#n@UT8VuBf#a42w&y@2{kmgj8whloBV`3V|WLHi9K}Ia)rhPt1W+o7Gw3t&v7d=hNj8?aH6rkK}^zVf<8a zu-#5R9}knwc9yxh=L-kDdF7)7BYW^G;d8FOKsCY$qK3xAOd2P05hXtMeQRrV_lsw` z2-R~a$nHR)Ig1dUYC(z7oh%7R3=kEt+Kor|gUy`~M7XSg#7^4by9W2m+D$<9U+)n% z7U_}0Pf~u2_s&U{NWpDSSoKi$>Y9kLD7;cAVE$&U#Qr93@AH%E@TL=*-v&k#}T(dksY8LW0&-}8^THx1!2q9mzIK$Ck}B}^B41{;g~^NbeM8@=E; zs^TO&_;smgzjyvT+oz#JViTVLf?eLGrIMz&FJCL%l8$!W@`a-DrN|>K9Hse&=DO$U zGWZ%`ZetuTp{dBUa9QdtyV>}tphrdmuA}S1en>WzpGD30O1mr7po8-@*s`$=6W}0T zSKl5?rgBXOEQFdG?G3VzBbtq)m{l9aFa{uaQTQlpvAwJ>B*{VCXSIYroU%-P$zP|=EEt+TX>r>vzc$a%H~Z=FB6X5|xKdbt&^{`V zMr9lqH{xxMGOh^cJ7^#96a11?|E0BrWv z=|7IJ*tM}g-0*}SSfMqzi)gSG(9nsN+^I!HKa2B^`!P_RixWxroKh6l$9=1dJ513# z92(8De9~lsEWP_luyvpi!*R3gda0`*71&#f3DRpirERx6iZuI%#nq!D^Qwup$-u)* zxyTX0W*__syj>QIW_$_V&0R9-UxK5PxMlUy%)t@Ji z&+C5>*Ls3sb&}Ty#nl%r73s?*)2MngK4Lh1DK&?B0k`(hrE{&65HEfzTqJFRBOg?B8a2dLTGjPooxg z>fA*Ssc3W1YNSS;J};q~(Mt8RwPL}1CXif?S{b~ouZPsam1&j>Pl78+WDv9bv!rb93=91Lnok`{O!3d!3UpAxUBLZjxLr<3eB^Ab5D0HzumLpcSnVdC_e zJ3eZ1A}pyLf0L9PWDp)CsW}HeP*Iy*>nqw6X^eqxvn>RXn;;G{IFD+b9f3*i&TNwG! zH~+E0FULFl+X)Fj1vAWU(V|{cy9{G8m%uqM*_Pe5V7J|`N=cG8(123D6}|blubeUT zUzqdS*#R!9wVsJj4UpRMhh6bYzC`u8ro3urNI|;Q(qGB#=nM)c@jFWYFvKshY!CpQ zd@A$8R9+{II+So!N9Oq6YZ{Dw;uPnjX8t>X3ogCVpBsZXuvTtgk*42Xyj>+x89#sFIul zjqs!5gTudk2`H(N#Ht7-5{xu3-AHbEt}8mN zYUiv1v+Vp@loZgmZ){<&{Vviqv(gip3_qjQ%1j6`y*q|pxbq{Gt%{#pdMdy|0uUip z*x^tV`cy~R96L<8rvoGZ#7Of1wWIl;iY=#y9=6o6*<$`tyq^SY_)cB!5GXuB9XwqkjvkYBTvx@k7X<&;~Bmz%kLp{qKa%vVc! zWvPu>7^0n_D1UOthYGIFCEbj&WDrV!y6`2h4nnrz%;3wg6DI2 zhjX&-w#pZsFD&;;Q&0K=ur#~oqz_}qmyGmwEPlnnxC{JAj5QKBzXQfB*tLZC%|{K;m{Xgq~_&BtCVV3X{yB z_@nL82Us`Z3z0xLIQnS2v?W=n`EUSivvIoiz)wAjGAHKJVx^hst3`1_iDP6Ef@O*2 z+*;ync;Sa!v&DDE^!+_D#&1^Y4-PR7pF`M^GF&urY}`=cJ@37X_h#Eew5Dcqk%HdK zXrjNHH>YA(T<0lV%UY!$nwLGgCs|sfv%RnYaN7Tz!lB-vZvaOXwD=um_wo*&yNZdf z=GgRjG4jEml!{d1t^SkT-7XnTirXh0_>OAq=$#3IW9T z%-Y|Um9Dj0s2@xc*P_GE6YzC1VJDz|LVSq%mP=uN8;}D|6e6(Vnp%-$WqUd7lvERv z|A_fBu2;woB{5^lFA0CeeC>Y|^O3zA959M|o7NS zl4+N%PS>vZxd$chtsBM&4oP1wg{f^No24U0p`Y?!_+DD1*e5RRzwkYNg6~EwPdhrg z8jZW*nTFa&-39t@-R1hD?oyU(HG8ngSdisZ+>X94fr13PeJUkh&!!orVZ9=`XcbQN za&?SpI4~TCj=StyG<_2Vrqod-J`VMoI`~m{k^aI%iVF5oclr81>n=iuE)}Xp>xp0b z7UEn_asP_>9ikFnLTiMoLKwCV=k91>ZY`^pdBocDLWe){E~|Dd2CkxGquQEZM3kQJ zm9(nXlk0ze^PpucYq;?#cnLsmehvDxfql@hcZ@^fjx2Jak(`Oqo3u~Hp?k z&R1#Lh;eMAfq550RC>0)`n7rHWjU6!+t2jAzNMiSG{llRg>A_m9i2p(K+pVHb&%Y& z;iZCKM#*hkfne%J-K8fbLCk0N#>QTD^o9gsMbD{En4M!_q_2eLYiYtx-e_U~L*3=WTc=}t+(284rs7&R-8B^4}% zBTX#oKS8S1ykg$ts2$!mtnfE9?oB^4!WS>rqee%wH|0k|e`n25d!Wyh$FOXD&a9pW zZsV4<^L4waLa>!PGBR=s5Pr@msVty+me92)BgAa9J+ZP>ozOzYdkfF>k-6^Po7BbiK!=r^oNFaxp$F13xR`&VZ)a6L3$MrMrV;_`plcN>C;ez zB>DQ7EMmH6Vf9^Ksa!&O5d4u_nE+CrtI{K?qu+J8%JlN^oxZ>7FifF?pDOHuRln<9 zDk`>}B$j+kp^Q()sf0A2cYmM1pkg%p_=;DastOui^?==LWdU3a(|8xl$ z`rgUmH2QgWZeKO({i%JfNxU+SuAfIj^87JCyd}xF5bmJC!oZY|IbB6LX%cj|^>i#w z={;lhy1AhluBZ`wZ@{I6v<$=fWaaA-lmtQ<;m4GZv3_!1Lzv5Z0!`bm99zYE23<+X zEOR)1W%DIu#=&dN_c!@kyMdekT`<{E$v4$TlO&N&kEn3|-`K2kDK%CKsnWQ5o9}CG zf+gn&?;@R9^=sr^o7e|trx^{ZCC9UGOE#g)A`du%R57<{K(nzSY`2e-56Gy4;V*n2 z^mXndDlXv_=lP49n=rU6YkuwQD_SOsd@{X5u}nlcz|uVNTuySMw?~O94zw+kHco_V zdI@OX(ll#VEWsYnp+K+XuMglb{sW)}{sVqiL0jNnBuUoGEkwge1m2|4K(f6}g( z^;8#%Q57k_BWh%FS2I3xs+Rhc-}du}sRy!P620}jZ1cc(LKU!H;T;8s#_yC z6|WI4VhsLj2H_yO8+zC6<|m%*Uvmsi;NuFW1Jo!082iylBay9>wj8tP<8K3<05kR` zNoN1$sXMAIhap8DO+_%9@&rYw(ddfXZBu~GC809}Ea%pHoNYg`oOH8M(uQQ3!?8~5 z-ldcEtn5-%a+l;Z6h&`B>sXl6%_NFS^wzDtZevG>h7dlFJeD7d(K61Iy1R^=@1WT2{^3J?r-9p=RuDfR{n+6I)XIm3gl*ScIWb9`Z1h@)Y4s|5V{EXOBd8Wi7%Q2 zYpIMm&MsTsXm}$ohiVFDh7`d9`FWBd5NA(>Za1X8AnQA8p65rZ|9VA1`dL8_qiW@S z@f+6TRF^{Ib425)_ayNT#(FHaQ@IQ?T96q)iuE49Hrz04EU69XAr>CW_9?fflOpO$ z2nJ4Xpb`g-9N5sMZLmy&eA$R+>*LRn3SDWR1jzb+PlJ3ZbZ!w+qqa1CFX@--iV9YMgHr51Ry`rR?W8FG`l`X?ZC!2J)TEAzD)`m2yWu7C( zGNo`F0A_4k>hP6$=pssbsuEcGv(E;T%h&Z6KjE(Ho%I#HoLqCDN=k5;9=v#C5z2B@ zCn70k5&^f#Fh#c=Wx;$wHc43Bbz78^$R+V4xWy6Scuv3ebQJc5Hj>TSG7`f@QP>Il z#3;YdvmFxL{_;x&;?o+7T+^H&_+j*q%vW8k-x=49T;k z8EabScHs8RHi9rnYdFsGLM^fxj}6-DuLKqj!)k(Dk2Y)kZB_~yJ(fBf6?rgXMmA&F z&^qXP;Y=7hX;=>1#L<1rB$Qw5cBbc0qAxBLSv8~WHmTx2Ps;EG4^6MCkT2)hbgR5J zP>jSt7pz|JzSLG)E6Ayz{b80I*>PSj=krj8GTaqbhcevjx%Q%~4yU&{q)oJ(f}e+L zot0q*m}e)Cra5p^HS+Jw-bec+R2yGULdL3WYTs+T@2c)y%m!Nj!(u$O;zB;35n(2OhS+O5ItdFM1XRaR zr6!`;cc#}C4wk!QPMDbU1(7TB_mPF0GCrF7*;45jCY45vh`TvAOMqhN$CHF>*A+ zuz>-|dJlBkn8!hNI1m(P9tQa|^E9q;lNR0Zc<2d*d2*I8O8OY05;`EwX%9FnTSd_lf!(FE}08sKRE# z-+ir3t`$uwVkP+r39I~mefI~E|7i~L9}xH7C;rFV0W&uz_rJ1ooJ_3$@0WT`rjJO? z|MyEh5OF5~754rGM9D|S+pi@o$13M3pSFS_z`{U?zxD`#gfBIO6i!)Uf)yX?FXL?@6uZo`*8g8>{z#0=p(HwtvK;jqgJ| z50qs_5R9|$qX+p;fOe%te(_QTl3|4(_O2x~!k;-yf8JNb@Ubp}qK6);KDo3_&rAO7gXWIuaJ$|o-(wUav`L5n0fdO6eLbeTJQ z3BtS98^od9S(LB*(HWULbGX_$4`$pt*(|@KEcb>! z3D=YosxC}#aIz)_#mr5Iy!;1pJAO22mXOkFG_i_)N5dy3%?U4U@il>^L0+zmOJwxy z6?5rPa_h9GcEj6vIxS{NJ9l(Tzu9IH8pLVHjq|W)#q=v`bZ30{>%2TjZ|lhTU`G`M z-?#GBFvy=5)ht3*YyRiwVnfLPm zjeE|rWpfLACU zgUK^d2K>`rKo}Xi1TaezIb8w)aU=%@rsQXUgAF}TiAQC6z1fnh*~sJ2kaiLyksi`L z5~R?&HU3ay@R)FD8y$|A^cyr`dSYO9tg#+^vjejxs3D0{q%fv7p6y(6M}f_{h)kGd zgUva*4TLJp5c*NWglnvKeS1Kgfa2Y?Yg?LFz%Fjegx(r}@A;#4mnfHPUu zfT5LEcJUPPYXJ&grisc*gRtuRU6zL=@1q+Xf7f6fZ#*yWq$Wu9KDlr`o4g2!fS4R! z?#5FBJ^%6Jo4!X=6;?0IehgSNZvdSMXG@5_vr-Lt)IG`=v~ND(5j+_~?lZPUgF6mE za`2v+Pz@b!gax^c{!zU9pDxw-3F)Vix8|g=(VGdK!s2zb82iuzrCG5qGZH)Dr zeDOH{Fj-(kCSCFIIgyy;b~i*W+FpZqf*3>z?~SbvfHAr-a$5bB;5<^y!yL6rWTX>6 z%6+=QYVk8fHCda&HEPQVX^~-}yir4dsVw8^72husI}>p425bzYe737+^wFNtGIwB^ z1}so*d*NacGS4Y`?fRH2Lo7@t0Jy3+EqBEpB8$N}(&_jN6`r2mQY`2QEB%dI21c~L z#3?L2zYZ@RT^UHeJyG>_uyHb|%6^Zzj(HBephT>y<@U;02(rYqcc3w?jpk9ka56z! zJqTU^(RbfJ=sQ*>5aI-~`(4Y`5|{f1+)WTtp{5S?54yyFzT^Q!CQL%Vof3UwFz>kg zgQv5ezKKQD=-_XH{z>g%ebIY~R?CBzdg5E9m>3XH);|Wvr1tyHVGEY!4Fx z_QHHYJw4C2s#b&XxiB=QaxW6?ly=3pKr=MfVhT}%#S1fUunNz-7kd*?nuxqR8@omR z+>3?mlT075O9O~w^Rm-7Bqgqu3|@|2T5vqE>+K}}4DYZivSHxzdLMYYe+l;iz?(@@ z44v~CVty9(`-;7CO~hZVO5rn|Y7I}wuth_nkKUB!#E8tOE&h3+dkXEnA=pbG_y5A? zdqnN7qC5Phadniy85~I0Mbeb)F$rnJo=QyGrLZ+QXXHAp;LAy6p9x4ZGwa5KM~mqb z=0eVCS=!?U=?)hW)nAeZ?MgooIFmu)G~89udwa-e>eIeRDv8lrLCKy1H|{bWg#ey~pDpj#}QNq{+ z`<(HcE!NqjU1@7acv?LaLtO{wHHfQ|>g>7O!avgHyU~4vJ-zL^LTZP<3s(9th5Z_& z^)3dsl`9%l>Yis7t3Tv*4<=yAM152C5xr>g^ZX&#_u}J$85O~QA#l9(;-F(~AOe5% zWQEk-{f>xQ#fK9Q6auCfv*-X?t~77f+8y@V+die7q#Qyl{iXzHjwY*=`)Ds{%<$P> zZ3Za4N}%X!FA*&72!!MzZE9_Hm3n0l*o4PF2r51&fj9Z#i2CicQfSc>GG;RT!7kP4 z6JWTf3SGCzw_Yw)uxBa;wRZAXU)Pt0zHDX~U&@6UGK>Qa-M0n%4w{Kdf>cV-HTai*8{3k71@iB5 zX8h;iC0Wu*c%Z%x1~NZwd;rM%2-6IEeTy`OGTzaS+{HyoMo_3ZhG(T>?d!dO{V1Dr zq``0?)8?J%i*X>}P%jK;+KawAM~_(RVkk@uvIU0O$M*z<;{!r`|L2{7LvA z;Mzn^?Z3l0Ig>x5UkL(&Rm3y&x9tUP}l*>NFu|D01KH#s`vsbs9|doQFVy zjG9;zcc8;AwItl305>ms9XZs|=K&LgGhW|7-swxHkgI&P6kqFR{g{eWw^Pcn%pPQZ zk%cyM%~PO^HC=+n-GcT@4X9r?^~TFBXp60{-W3@G>Da-Uy`uPQneZRs>!Yh)QZkYio&>HX(|FG0V3*gqRy>qG8( z{I*ZgEY7*xdYDf~N-TkRdf5Fmm2uUF(e4_+XtivHYItx)gc%K#*sZMH11Z(}_D#xR z9Q6hmkRh;tgM<8wf*ZF`YtkmIMHm02;4(QeuZh6KxwI%SasDFih-X0}P3#(4DD^|< zyo7t43;PqE09(BD4Ba;H$~tal{ypi}{$echdNFK`-}qM%bxXffh;P@sbpIyKCB~^t z4-aMlw8QveWa1rT;^7fAWmYWE@@?X1fT&>89d&p!gtMj`;03_;HKy%W!3N-+br)~w z4M}p6RunzHf^mxQSC6sb?PT{f1J-&i{}KF*`!0AxSXdp61ctil)V~sYYN>iDrmjKn~pktARPDSzBv95N+xO|u zgaG1$g0uc@oa;*fDR{)2$6Hjj*}od+;wVZTP5(~8F(k+!R0^y9n}TP9fqG+57-@e{ z@IrD!v=4{fL676^Q;U#n?udvMk)}wRq+ch|8~pD`}pKAVXvbbJtpIWbnA zI$O>;g)|glH9@=dr|(y!G{#jjc#Rm92OohNW-qkAff|@uO+E`*%%RFdy$dxTTt^H$ zZW_kHFfk-kUmsVWEzV>urp9YM` zfb*X|&7s&+&e8cssjY+RF_Y@-bUtroc84Wy)fM}M-np!C{=w!h+Y74(+jX1K)-ZV< ziN~amq_}K)q&~V~T}%{hX(;x1pr?;6O$mS6vIJlSkz?I}f=72FLuQO*R|Vl|f@(oc zw3_)E(v{O^?}hpMvg4b=aHY{GjQ)9rIfh|+5w>wgK%4w{4P=9bxv(j^(u)CHGe6vz{u84Ks`@Fb#b7YDBm9M2I zt&SABh8LZt#-{!km9~)}cLS|@@4stU#iJf#4XC9hQMXcgTvr8n(8$2lN98ZUv2_46iI6ikv>L>pwm^^MBvy;`~=r{oh0`PUipBl)I+A=77hJ>@RpFx%zn-UAw+% zzyLQ#M-ACms1R>E|4ekcL0x|(Fa)OJ|bfF+yM7{WY!hm)bqb==G*s96p9h0R(C}D&WtLZ=GOiE+lV{n++p*?1yaVV*>HglaBFeN@ z`L-K$w!UNks1DqAv<|B;mKL{}pv#qC6x5E?C_PU`>vKbNhatzbqz(-QxHuc4I4;>p z`puuJ7@#ZdBu`rNOVLN;s{=R8X;preoICKyIf7EVidVJMJbEtNprv!3tZ#xr!gE|p zTs?cK|NzKq;VoR?26AzQBHjkBq7THF1=!QGG8OS zrG}M70QNsBH!ogF(-yd?7n{lGw^$;Qlwl3!%ob^(J3uI0F2^CALAyuSC=b)v5bRdb z(y!=S4POfBOAc-s8^p5WN@~)_!1;9Sk%ry)sTy0spB_-A#K2Sw%R3Fv)bNOF+1qLz zbZcRUIo*1SE^5+(mPK^-t4jX2veG5{2abB=UTl(IR*pgefLc2aMmMk*anY``pa zKEqVZdL6rk<8Ni58GB0Lvkho-lP@U}Wnafiuv!lx4Q|g2@>Nm(AYIl=X^!RwY!C1J zoFM*95?Qu{4`Il0C%$#l>A?!ZHGk-x@kMlc&>i&A%A&f-z34dzMa8|7Oeu7-yQ}(d zuw_cFEHNF5JBIGY_$=&9Z7-A}alq~C%dVy!$%9KC7yhn*SlVjJONmJelYe(FqYd0I zwdHl*S}=l_)UR_8CiFK1t`UbLbWjN1N#;wi-E7*0I-ZL2LD$hcgE}BQP?8~B-s9@4 zNxwPrLi-(wl4D?#gjo1ia#aAC$Ib=}?-wj53aEyFo(iX&1u7Ns*h!dg=bmW>(_J0+ zB>0|(a9%_G!>X`y=S0F6CIP^&0&R>zwWU{OjRMxiU#Xe9v1!ZE$d)9`Q)SbDb#eJ2L&<`|QOKpd0Ms`wQMn4U zG8p;K(oy>IPK)>Fg;5-23-oAl{Z3l)DDw66y(b)M$;CQVZa&4RNF&n#exTQl8+s1T znwn0TAlER%lPiR!d#r0BcO7n`;!4{T5~ExBt;~5xvmu9+S8iRPJBnwN9_AdypNgEjKBa1{LZ1FpO5Oz1D zlArUdhAv7!5I$8q?Sy1f1mnAGZ@m!9%ynP~h1%m%tQ-ptIQt8=RN`NWRT?G>PRBGWC8=_% z^ur&cr9ZE+aTo;0lV%_n1yM4yHc0m*78ngsY}v+fED`H1aZos1x^is{f0FHLH`lxE ztP1d(9S|`v#;7V<+Rkr=z)=RdFY}FUU({es63CZSJ z{g)sxlh40`#5;~M{meC$1_LV*VOy`hbf=Rm2$sX0=GNFuDENjXlr;)fG**eK2Dc}Z z+ocs!bluwKPg;}?OC_{h7c|+mnT_*5r4+yOX(}h# zx}=+4Ekr+)Ku~cl`P}cwci6WuPbL&Y`r9x0`K0w){XoX0*5h18$-qTf>Bk6JeZRY0 zMLC_}uGUhi{hwz(RfrQJexgc_>}_vxDQ73-(Uwcc@dX)jA+?p277HA9EmerpV?Vxr zZ@J4KJC=NXf)3c`QT-3k_rK5Ve<(KdfA{1#S^mSm87IsCYTv9=N81HY9ChE*ua6I9 zEvi`mp%wy(1xteti!g{B%%g_flp90)nmE?~r|0aFDk-j_rYAT1!j<_;b=UhlI^!@9eDs@UX(;PmA!KU$}|O8Yuf zd^0Xb`RK%VF?)-^NB@^!E0lu>j^0|Xb9*RRx5Z_jZx0kVQbzwi%5olK87NKa=VVrp zbU}l2U1(T-AG9|Ml_l9)2RhnoNn^odBbBwwD7x-WPP&XcsK4f;K-8di@3VKt&UUJs z9SrmZ*H+&rH09V*!-othR4M11M?Av9I-=PT9?B`Y ztUCK;xx1#$_g zAQzjn{jxT-zaCXY`v(&$j(B_(bSMPPg|XNhGu_2%kK-)7va(Yvti^sWV-qOluhy{+ z#5sQ2(bExR&>!H_^iv-E1n?3gK$R7eWg8P)73}fF%RhMy%T@zfFkH+kK5yj^yqc2r%X z0n=la>q^=rO_^MMgO31yk=zwPW=GKf9xTZwlrV6mkTl}0GJBtP+7tHMYeZMRK8s8$ zG>`%6dtn~?aWF|*33hTI53iad>l+7YrV@cAao=K99ovvr)IDP^bWb90w`8?d(;jjX zS;Y?xueyQ1WLfe~q3!yP{QA7DM8H~$g-Vay5(@c|L*e_F`37~sHc?W!YKhW=bF~8z z7sCEfjHx(O9R|WFcxaWtGjWA4=Loj#pwdWZNG!r6#eh!$*1JYwlQT139KX#M9Tmkd z0kT+MtxA7N8_Xa*=8Z&sFFSe3V>@1cRJHfP6#h=ZIpraS)<-j(MIj9)KfDFk>v#I} zKDf>{Ntb9+L9!H>g4oB}F!LqKVpyEy@`p3o(v)9^lyb}SDgRlbvU+HX>W^Q(->z~U z)DpIIa3ITa(z?cFLx?3SVd~dyas-z?OJu1}Thw5Z$)YH3Vj5 zgA*SF2ysQ}XhoMA0 zeC5C0J<2NNGHv&H)!YIcg&kpqV;P}*Ri}ikFyA@u*7{OtJ)y;whyM#=ihLb`a-irW zXDD3la3kgKr7GVZoX?y5prlSW?Ln+@v5|D2pTyxDO|;A>Bp>xAt2>`-i9Uq9yWtX z>WSKI#22ZPz({j*X?Pw+pj`o@xAX93KWB5pMGH+eSMHj1_^N(*NzQeR`Y>*@R3cJ= zX2k?0>_0~aaX?;y4&@TkK5D}`QouB`xuRcG8s|fvN<72$nx++>Ud?w^s1_H$BmE^a znf3vm1M^so8lkCMmR9(RUsB}OT=@%e)7XpbokK{7GO)u@FEBle2d0==ac#{g=re7C z2_oF@6w`$D;qlHZtC&r5Qt~W0&`2!m`!bKzCmCXVY5dT5W8Z7Q2COI&(aNf7LdY`q zp4skQDfVD$Rnz&#V1XAJy^3Szve-sIUq;mR_00kC;iIF=%kg3G(kfKaB+)KaQpZrpL#4304jtfG zfp-SMi+r4C^yNQ6)lgF_KyW~yEtB4Zy&$!K@U9hyJm-UN*3uqOCN%l^&80thOXHhh zsD}~?|6EoX2WJ$AdAr1-XL!j=DN!873?GN>;Y@n}cy(ET<(VuZ2XeC*wK|*kP*c4# ziAOTo-QrLIAKtcw^vMbEl2QOE+~-N?Q~@&`@9XiexPNj2vk_zEuJ@=XW_;WO58%tP zI?I~pt6A81e3&c%+~3-dqp-*=-3f}t%<2_TAB>Z>G4UUza7TmiQvb-6&QnWlHLMuA zQ0q!IhYp?^)0f#Qiz9WutBj+~qJ|(~@d)?p$RN$O_CXvaRJ(&dU=4`NV=u8L4+)eG z4VM9ETB!`8idyw(_`@?q(ZGABxj6|6qT=HUh%RBP>2i)E$+^OH{=|PP&T5_^UDk*w z?fB7oa!iynLc5klII*KIf{1!KE;F&UagR1wft+<_qwxvTuu$Y4)-9WYFumMgl%c;X z`t|{K37fYH`;)*0Lz3C=#MpkB5L-7M+-sQSyd$IRfkE>Fwe#*HiJI5k#$?QfaW`Xj zO$A4HzOp^cY`0Vr8-Yq87#rtVO9e>lxa}Odp6UoW2vbnR3Vs|~g_}u)SeVx3b(9Tx zOeTR}al)8onRqm2<=`ojG{ggMB4{1R;_^@OaQ2Z^_gQ!}wwF=%G%w-k7)hFMIUHU7 z+a_M%hAG$Kk(ue&=aFz6V!0jat3G0mAjey!Ajp?}T}8>H-ZnUNH4MF`SAMyL#aQcP z6Hu#m-t@E*DI+kaJJ&JjCnDfAC6pvbPN?A;K- zHc6!WLZr>OhPT}Q`G zSnrRHYQ?**)yMvfO7Tdq;3x>4?(0XRtIa|pzT8jdZj>dfg^wM0%xOj5M;NvF-*>j} z)*E?fZ{|oZmtL(W5U39I83eLNg>Rxvuwx#G6X;nt!k{YiTUF9~mezk|8e`vo$r^eD zIYG^}mUJ<#YAjhINnp9H6HL%v%iP2k-Px3JS2b@D_x{$EnNL+ZtI{+4V0QT6BP%Pc zDGu_o(-YeElCmv!7%StmS!CU!-69lq&Wt(OE|hAMoBzn(FjG|UO;!;@Xs@lwF*#{o zC4JWmdbmaH?ERZ);#TD_BppARr3=r=tf^~VlP0RpV@=m5dUd=%5^e^Mj%UO{$d+NY zn~u)BHRVNGu_~n&tZvZCZq<0v-k1ya&CAoadDLB~ma5?m$x;#|i=!`q=y zNr6a7N;N88`AQ_=aS_AzMBTq-b@Vk;T=-ODm|ABfh>8^(ybcd95X7QI%csG_ zdA@vW$?_L)2y@iR$uXA1%-zsMmC2nP+mQus@Y1kn&2vjz1MhA1BI-8Ik~CFbNb-N; zV&UxwrX&oOP*1*E#0p_@_Vue|ry38|aQE^&RHB|#Yu&IF;#-PHyjU$5rRsI?k=$fpH8<0 z?*V-7mS6#8ESR9kmE!<~W6YXam& zmRzvI5LW%}A3PV%1xAp249D&42GvRC-I!|>tJUxQ**#lu)JIrPAmUG;-a?uf(}@1? zmleMq)%t(-5>5q?(GXb&gVb~TgZ4g;CNVF`(RJ^{4pK^?ql&dv$HGx*+fB?Ev@_#+zUv* z!{D``bcAD)%Dx?xe44SWm<6avwx~1<)qB=7o2#SVJBr`p}Z zzFmD66J-43$sas#HVHH#6f`-QH{Oh(77|D0L@i)X#o+d>WYNyAJw{NIA1c+I%L~yE zHn&Vy9E7NMm-mR$(QRxk&IsI=C6WljvybGJ+e3^J%@gl}t!I74q^+7Ik{u~^(ZKiVtm<}Unkc`h(p0ax4;2U$fU2ZCs8BRdAA0=a!Wg?!? zlK6FjvtqucOmu(4EGAF&7RvkNUf&L^f1FHyRZN`Ajv3-JQ;%41qz78Pl*=~-RDcSi zAy$7~+6$@of>5(m7;}_4Ep25V+wIIqAKM#6 z{(^a2;~dAp$Z7&A8=ZNd`U0kC;eWJ228oD7%YTTTm4K>)G$CLUD=J`qxEk}DZT7`Z zCiXaPj4@(pHzlVqrN=68kwlq75O?!i6l8!{6F1*B_WmT=@e~J9^qzkMuh`MJpX7fK zwV;vR=W1;vD?2^a_t(d%&2AnypktJ?fBXJq1y&qL4tBuvW&rgBe@D5C1lM30i3Xl) z%*O-eva7{&kWA7wg)A3|UXFVI-Q6l*?&;wM^dC^vl6z=52b+r9lH+dwe9&uYaa0R=PI&jbaE3B0l0?y)rT;2(4P)>%e3rv~5#mc&DC1-;9@`SX-R1 zpG)DcaKho~xv1Ed&9^ut(gPJ@LqFw8bL^&*2B_GeqGP4T7@cj!Bb|2X5hh4bff}LV zX6l){12Z(1FPKE&D4^m3gBTQht&sw>>RI2J5%QZ-Y0{K%H?MkbE0EndC8f(^Fg_1TP*soq&3%yE^yrUUj%0nwK-JG5wWL}h0^g5l$AC$j_qHp$ghbhx0Ih&Yd#pP zcpTdq2gpFO8K@ca394(9$#dSJ1u}?81wK1gH;=?eT->hA45)3%A0*?E%6Nez<&dw2oxH7jM z=#cG|ae}NYPN^0jzS{V*AfTx#qz<#s8|styCK@pHp+ z$zf6QQr2%KsgvlGDOlsSe5Gd7+PN#!^Ji?>8f_Fh8#hljTh=yQUg%%8i&vFF3U!iQ zS&%PSjJG|lQ28HN9Q}etNY_xl>HiChH=FwD|H5L?!oRSXR^O4WRwY$&Yt|({k>(4P z6XRZ$3az^bOe=iJCnG7=Ueb@WzyDML)ie3&#W+^eEbtF3B7MQ4-4`rwxL^@~!D3z; zHyn+2CMIz-G6D3ZtIH{CwE`B#`J=-Q)yEF z;{QX7*@n$cYk{*9F&kOi3d->ecx5qFEotQ%DdWo*D{1MJ@`z~+ZWEpaU$huRABuhv zdDg{u_75$#!uu<0Da+Gpx)Je^t;I0VIvo!?#VotyKXN?9@L1|0wEy%&-4_viP;;$X z*`nX*xXd*^CMdov59a?NcfVFqq-cpNBvcJ8Zd>5e5Y(aW$eYt+_A4vsn*kM|2cDG% zDdI(Y;qC29*4UpE26+N5TfjP<)D7;uFT~ccc$fsx%D>~E_Qdjlms|h_#<2G>SZq5r$T}BxQHePj%HHUX1l_ zt_FA+U)o;j{sc`Qguktp!WJXDc81L|-7oYQO_nw1%*JMQpA0rEPv)gezGE|MhuKNH zeAlen7WAh!HR59{WzA$v%6x7FHTT%-7r7Gz+}o%OhL7oY!7JW|YSU?GxdipLuM)?3 zz_Dycy2PK^_#D}~K^rCgDKzgGSy4ue{XwmkrjYEby?c>~)tCCW`VS~0TrZ|YaLe*5 zGV3*SpOspT)l| zfO1=8*`we!_%8z-CRr7#6m{WRiV=>KfzN@(( zi)0qQc0Vu_uR5)U`rwX_oba9fhQGP1xONo-nTMXratMx^xk9g9?Nu-`xON`h)0W5l zIwqob25^=i_~(lkiGG8=?LTXUQy5VH{fb-aDDW zPZZxKuEufcb#-lFu+|jq zwlW4Hf4gL8lx;<%QD^uzju)dUV^}8TY5@k3?t$hG*mX|%-&I!w?cGFKRId?W!;>-m zDSW*egOPh-L&BhPIiYNZp|2O$t-nvm=Og!L*b)Ej$Ew%?%p82Ezrf$E5YyF_=3BM1 zN5Hm-+BV&&GDK1JUzgM32DRS!z=l_%Ei1Hv|A2n~;@rRJ$Ii|CKj_E)pU{u}zeK

o#`icB530Kr;%meCU|g~c5wT67dieBm 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%0DG0y)0yMb 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

RM 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ⅈv6{xid4vun-tq?sR5nn9MV;#W6U{!(JYy@+DjS*Oq5 zsyd*2{xjQ0HA_m{yLU*!t;++4ejRf2`I)}2XZD#p`BU$#Mt{Fp@o9Thr&if}FK2am zwUKiRU8vD@t=;__8sdiG%M9{YQun_WnuPrWid{J>W;WLW=xy>^)}6^ zcehvd-HYCoEwH=C)wVX>Kh52;YgmN1TwMOyni@ksm6bN@p(r=Srihu3P3gYAcY|*3 zI=d^_spam~&xX9LCM-`*=cddZj#x05y(9653K^z$Cc0gbmvw;b@h75Hpzj9)*0 z$9nHp_w?`K|IqKugsB6+ws%@zdq?)Bn}f3(P1=4dd*++zPZn?JkoEb>%N_G~3|N^} zAZ*ih8S8YRV5wZq%Qc@~Ej`==QOAMM7G~G43?_-pjK#oWA>1LiFTqhwy3PcP6F@fN z4WbHIIl#SKtPp8;>d0|Ua@4hSVVpT6C42&|7O+3COe{iYCMYq#M0G-Z75B90F@}+nCX{@Co9?m`R>i62fMM z;4^-e!2!8gDpJH$mm2r*%e6kzvR)pT#s*5A(qt0u$7ApTKstq$URa@A0+ z-~OcCwWpI5{tx%y{b6)Tjlyd*)WW7VXR4lMVod!XSkvN(S%S?%JgpVb$~nl(4Rcp) zM}~=$aC5;DcW!f`2yb09CkpHMmDZ9$5Vah_{LwGMqxUjcq(uKg^U-98_(fNc@6l^~ zrM7Hse?|QhdW;GNPZb2jDZyvLX#ikFQw85?xfpaOH8AVw6O|IJccSuDuquF_1Y^-R z@T-A-h_8az_zAUtQU8U~(YhyI`^Aa2z>|FQ*MKHeMq=}6Kfm4+`px;8-NP&*N5~I{ZT3*kHRwG z9Z0y;&OWr)eZ;_~Bkx%M*mc9sC*D$C$Ek3Cyw^RZey!4b@m}}xo)2EGf3oMs%YP;p zKN^~LdC!wq^SYeamijpK=J7}0cRfOT-S_%N2274i`=M_9{^&;kJy}OX24@9%PE3;C z`hMY!cVCB2HxvV|+}`~zq5jN1nW2?teDBAP`pyTQLX*^!9D3!__=Zy zD_z{v#_DCNvX+JN!VKGtvOy0mk5`_hsUGe7IP+x5l8d{#9vSnc$Hjg%_E&=2*H~A} z;&O=P;N_jWZLmqR$QTn`zFWo6%Aq#y8xza6Ydv-1RLhu}PBj+Zva|R!sqEUCooj4J zymYA7L&eR>&n8Xi*WF2VuhLt~r!@!FNGot_tkxAeiWQ(2uP_BNlt_8a`-`>x2)U4K8@cCq85ggQfij{mrK z^O{ksqr1*NJBsxMaxz5IUbLrg^VV+OdIE-LX%qEfio?XZBH&${PQd8

{?^&!M#6 z=ZxWGuhm)z&T=O7H|VPfp(9$fL=2t}5sR77r-5uiHUe2XBMX_BYtb!F8ePgnH%7k* zg(`s_iYyEs#PBo+Tn~0gZ08%`7Krve`}*<>iO84<$bp>Ykm;nfoAh*T&wZEkDKi%8 zt`_>9xeNA-=&2NSRZc0|PxaryE5c5ixy2JtkWud|n*2ikZE@tcgRE72YxA&}sP z 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�HE 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 Tc>msAXg;agSG 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

ES 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 diff --git a/deps/sofa/20231011/c/doc/sofa_vm_c.pdf b/deps/sofa/20231011/c/doc/sofa_vm_c.pdf deleted file mode 100644 index 0051f2257f54580a8c171bd52e50d2871b84520b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368981 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

q#d#8OV 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�xTs};PVhp% z1QP>Ca=m<=kB-?SWy6m*Qp6@2WF4hgl3QSiVxqZ8Mr6i}_HjcK;2J?qrXe(7|2}Bo>Uc)}M*k($D=~osAFfAio;8*^`b)L5GJ(a)tgor`ab#JT93p?!v zZ{a6pi@`=dxbPz&T#QwC*^(hk2NS(L$2QD_$C$HV5cqAG)Sn|2bArP8_B??xx=6_q znKyZu_S4a)bZmeLC>ZD{!%jz2f-`;hc_i%PZw@8gE9BePPD6Wrem>1M64)9ywuZSB z7@^t*Xz(cty3WIbvC*e&bd+r+aD+iDyO7mBc2ET{O~ZWKGf#7~mpR!}T1m7Y@lq`j zgPw8qVv4fpH`T~=+ZvK}1b~yh;i7S>7NI%Y%Zd`M6cHB0zqf6`tGK<*KA$hmuWx=_-qb4r3c2|rj(xVnya80L12sh)Ob8l_IH(YO zp9aG&KJU-WW9S>|24@I!%X75)!0GB#czQuenc)u>4UP#3jhKkjAvlL@(3KP?;8bH^ z!jw>1Xqa3k$A@rvSah&V9w3ti;AXQ*a{q%xhR#r=4K%o(Aw{|}+(%VzC@9efzD|Nq zHKC#5NfFWV=!Ezf6;21KLZcP`* - -int iauAf2a(char s, int ideg, int iamin, double asec, double *rad) -/* -** - - - - - - - - -** i a u A f 2 a -** - - - - - - - - -** -** Convert degrees, arcminutes, arcseconds to radians. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** s char sign: '-' = negative, otherwise positive -** ideg int degrees -** iamin int arcminutes -** asec double arcseconds -** -** Returned: -** rad double angle in radians -** -** Returned (function value): -** int status: 0 = OK -** 1 = ideg outside range 0-359 -** 2 = iamin outside range 0-59 -** 3 = asec outside range 0-59.999... -** -** Notes: -** -** 1) The result is computed even if any of the range checks fail. -** -** 2) Negative ideg, iamin and/or asec produce a warning status, but -** the absolute value is used in the conversion. -** -** 3) If there are multiple errors, the status value reflects only the -** first, the smallest taking precedence. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Compute the interval. */ - *rad = ( s == '-' ? -1.0 : 1.0 ) * - ( 60.0 * ( 60.0 * ( (double) abs(ideg) ) + - ( (double) abs(iamin) ) ) + - fabs(asec) ) * DAS2R; - -/* Validate arguments and return status. */ - if ( ideg < 0 || ideg > 359 ) return 1; - if ( iamin < 0 || iamin > 59 ) return 2; - if ( asec < 0.0 || asec >= 60.0 ) return 3; - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/anp.c b/deps/sofa/20231011/c/src/anp.c deleted file mode 100644 index 13a80e0..0000000 --- a/deps/sofa/20231011/c/src/anp.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauAnp(double a) -/* -** - - - - - - - -** i a u A n p -** - - - - - - - -** -** Normalize angle into the range 0 <= a < 2pi. -** -** 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 angle (radians) -** -** Returned (function value): -** double angle in range 0-2pi -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double w; - - - w = fmod(a, D2PI); - if (w < 0) w += D2PI; - - return w; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/anpm.c b/deps/sofa/20231011/c/src/anpm.c deleted file mode 100644 index 96dc85e..0000000 --- a/deps/sofa/20231011/c/src/anpm.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauAnpm(double a) -/* -** - - - - - - - - -** i a u A n p m -** - - - - - - - - -** -** Normalize angle into the range -pi <= a < +pi. -** -** 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 angle (radians) -** -** Returned (function value): -** double angle in range +/-pi -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double w; - - - w = fmod(a, D2PI); - if (fabs(w) >= DPI) w -= dsign(D2PI, a); - - return w; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apcg.c b/deps/sofa/20231011/c/src/apcg.c deleted file mode 100644 index daefa96..0000000 --- a/deps/sofa/20231011/c/src/apcg.c +++ /dev/null @@ -1,222 +0,0 @@ -#include "sofa.h" - -void iauApcg(double date1, double date2, - double ebpv[2][3], double ehp[3], - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p c g -** - - - - - - - - -** -** For a geocentric observer, prepare star-independent astrometry -** parameters for transformations between ICRS and GCRS coordinates. -** The Earth ephemeris is supplied by the caller. -** -** The parameters produced by this function are required in the -** parallax, light deflection and aberration parts of the astrometric -** transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** ebpv double[2][3] Earth barycentric pos/vel (au, au/day) -** ehp double[3] Earth heliocentric position (au) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 4) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauApcs astrometry parameters, ICRS-GCRS, space observer -** -** This revision: 2013 October 9 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Geocentric observer */ - double pv[2][3] = { { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 } }; - - -/* Compute the star-independent astrometry parameters. */ - iauApcs(date1, date2, pv, ebpv, ehp, astrom); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apcg13.c b/deps/sofa/20231011/c/src/apcg13.c deleted file mode 100644 index 0910e43..0000000 --- a/deps/sofa/20231011/c/src/apcg13.c +++ /dev/null @@ -1,225 +0,0 @@ -#include "sofa.h" - -void iauApcg13(double date1, double date2, iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p c g 1 3 -** - - - - - - - - - - -** -** For a geocentric observer, prepare star-independent astrometry -** parameters for transformations between ICRS and GCRS coordinates. -** The caller supplies the date, and SOFA models are used to predict -** the Earth ephemeris. -** -** The parameters produced by this function are required in the -** parallax, light deflection and aberration parts of the astrometric -** transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) In cases where the caller wishes to supply his own Earth -** ephemeris, the function iauApcg can be used instead of the present -** function. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 5) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauEpv00 Earth position and velocity -** iauApcg astrometry parameters, ICRS-GCRS, geocenter -** -** This revision: 2013 October 9 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double ehpv[2][3], ebpv[2][3]; - - -/* Earth barycentric & heliocentric position/velocity (au, au/d). */ - (void) iauEpv00(date1, date2, ehpv, ebpv); - -/* Compute the star-independent astrometry parameters. */ - iauApcg(date1, date2, ebpv, ehpv[0], astrom); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apci.c b/deps/sofa/20231011/c/src/apci.c deleted file mode 100644 index 122ff7e..0000000 --- a/deps/sofa/20231011/c/src/apci.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "sofa.h" - -void iauApci(double date1, double date2, - double ebpv[2][3], double ehp[3], - double x, double y, double s, - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p c i -** - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and geocentric CIRS -** coordinates. The Earth ephemeris and CIP/CIO are supplied by the -** caller. -** -** The parameters produced by this function are required in the -** parallax, light deflection, aberration, and bias-precession-nutation -** parts of the astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** ebpv double[2][3] Earth barycentric position/velocity (au, au/day) -** ehp double[3] Earth heliocentric position (au) -** x,y double CIP X,Y (components of unit vector) -** s double the CIO locator s (radians) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) In cases where the caller does not wish to provide the Earth -** ephemeris and CIP/CIO, the function iauApci13 can be used instead -** of the present function. This computes the required quantities -** using other SOFA functions. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 5) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauApcg astrometry parameters, ICRS-GCRS, geocenter -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** -** This revision: 2013 September 25 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Star-independent astrometry parameters for geocenter. */ - iauApcg(date1, date2, ebpv, ehp, astrom); - -/* CIO based BPN matrix. */ - iauC2ixys(x, y, s, astrom->bpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apci13.c b/deps/sofa/20231011/c/src/apci13.c deleted file mode 100644 index e32e370..0000000 --- a/deps/sofa/20231011/c/src/apci13.c +++ /dev/null @@ -1,243 +0,0 @@ -#include "sofa.h" - -void iauApci13(double date1, double date2, - iauASTROM *astrom, double *eo) -/* -** - - - - - - - - - - -** i a u A p c i 1 3 -** - - - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and geocentric CIRS -** coordinates. The caller supplies the date, and SOFA models are used -** to predict the Earth ephemeris and CIP/CIO. -** -** The parameters produced by this function are required in the -** parallax, light deflection, aberration, and bias-precession-nutation -** parts of the astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** eo double* equation of the origins (ERA-GST, radians) -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) In cases where the caller wishes to supply his own Earth -** ephemeris and CIP/CIO, the function iauApci can be used instead -** of the present function. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 5) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauEpv00 Earth position and velocity -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauApci astrometry parameters, ICRS-CIRS -** iauEors equation of the origins, given NPB matrix and s -** -** This revision: 2022 May 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double ehpv[2][3], ebpv[2][3], r[3][3], x, y, s; - - -/* Earth barycentric & heliocentric position/velocity (au, au/d). */ - (void) iauEpv00(date1, date2, ehpv, ebpv); - -/* Form the equinox based BPN matrix, IAU 2006/2000A. */ - iauPnm06a(date1, date2, r); - -/* Extract CIP X,Y. */ - iauBpn2xy(r, &x, &y); - -/* Obtain CIO locator s. */ - s = iauS06(date1, date2, x, y); - -/* Compute the star-independent astrometry parameters. */ - iauApci(date1, date2, ebpv, ehpv[0], x, y, s, astrom); - -/* Equation of the origins. */ - *eo = iauEors(r, s); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apco.c b/deps/sofa/20231011/c/src/apco.c deleted file mode 100644 index 00f0bae..0000000 --- a/deps/sofa/20231011/c/src/apco.c +++ /dev/null @@ -1,325 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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) -/* -** - - - - - - - - -** i a u A p c o -** - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and observed -** coordinates. The caller supplies the Earth ephemeris, the Earth -** rotation information and the refraction constants as well as the -** site coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** ebpv double[2][3] Earth barycentric PV (au, au/day, Note 2) -** ehp double[3] Earth heliocentric P (au, Note 2) -** x,y double CIP X,Y (components of unit vector) -** s double the CIO locator s (radians) -** theta double Earth rotation angle (radians) -** elong double longitude (radians, east +ve, Note 3) -** phi double latitude (geodetic, radians, Note 3) -** hm double height above ellipsoid (m, geodetic, Note 3) -** xp,yp double polar motion coordinates (radians, Note 4) -** sp double the TIO locator s' (radians, Note 4) -** refa double refraction constant A (radians, Note 5) -** refb double refraction constant B (radians, Note 5) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double adjusted longitude (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) The vectors eb, eh, and all the astrom vectors, are with respect -** to BCRS axes. -** -** 3) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN -** CONVENTION: the longitude required by the present function is -** right-handed, i.e. east-positive, in accordance with geographical -** convention. -** -** The adjusted longitude stored in the astrom array takes into -** account the TIO locator and polar motion. -** -** 4) xp and yp are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions), measured along the -** meridians 0 and 90 deg west respectively. sp is the TIO locator -** s', in radians, which positions the Terrestrial Intermediate -** Origin on the equator. For many applications, xp, yp and -** (especially) sp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto the -** local meridian. -** -** 5) The refraction constants refa and refb are for use in a -** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed -** (i.e. refracted) zenith distance and dZ is the amount of -** refraction. -** -** 6) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 7) In cases where the caller does not wish to provide the Earth -** Ephemeris, the Earth rotation information and refraction -** constants, the function iauApco13 can be used instead of the -** present function. This starts from UTC and weather readings etc. -** and computes suitable values using other SOFA functions. -** -** 8) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 9) The context structure astrom produced by this function is used by -** iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauRx rotate around X-axis -** iauAnpm normalize angle into range +/- pi -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** iauPvtob position/velocity of terrestrial station -** iauTrxpv product of transpose of r-matrix and pv-vector -** iauApcs astrometry parameters, ICRS-GCRS, space observer -** iauCr copy r-matrix -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3], a, b, eral, c, pvc[2][3], pv[2][3]; - - -/* Form the rotation matrix, CIRS to apparent [HA,Dec]. */ - iauIr(r); - iauRz(theta+sp, r); - iauRy(-xp, r); - iauRx(-yp, r); - iauRz(elong, r); - -/* Solve for local Earth rotation angle. */ - a = r[0][0]; - b = r[0][1]; - eral = ( a != 0.0 || b != 0.0 ) ? atan2(b, a) : 0.0; - astrom->eral = eral; - -/* Solve for polar motion [X,Y] with respect to local meridian. */ - a = r[0][0]; - c = r[0][2]; - astrom->xpl = atan2(c, sqrt(a*a+b*b)); - a = r[1][2]; - b = r[2][2]; - astrom->ypl = ( a != 0.0 || b != 0.0 ) ? -atan2(a, b) : 0.0; - -/* Adjusted longitude. */ - astrom->along = iauAnpm(eral - theta); - -/* Functions of latitude. */ - astrom->sphi = sin(phi); - astrom->cphi = cos(phi); - -/* Refraction constants. */ - astrom->refa = refa; - astrom->refb = refb; - -/* Disable the (redundant) diurnal aberration step. */ - astrom->diurab = 0.0; - -/* CIO based BPN matrix. */ - iauC2ixys(x, y, s, r); - -/* Observer's geocentric position and velocity (m, m/s, CIRS). */ - iauPvtob(elong, phi, hm, xp, yp, sp, theta, pvc); - -/* Rotate into GCRS. */ - iauTrxpv(r, pvc, pv); - -/* ICRS <-> GCRS parameters. */ - iauApcs(date1, date2, pv, ebpv, ehp, astrom); - -/* Store the CIO based BPN matrix. */ - iauCr(r, astrom->bpn ); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apco13.c b/deps/sofa/20231011/c/src/apco13.c deleted file mode 100644 index 6874919..0000000 --- a/deps/sofa/20231011/c/src/apco13.c +++ /dev/null @@ -1,329 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauApco13(double utc1, double utc2, double dut1, - double elong, double phi, double hm, double xp, double yp, - double phpa, double tc, double rh, double wl, - iauASTROM *astrom, double *eo) -/* -** - - - - - - - - - - -** i a u A p c o 1 3 -** - - - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between ICRS and observed -** coordinates. The caller supplies UTC, site coordinates, ambient air -** conditions and observing wavelength, and SOFA models are used to -** obtain the Earth ephemeris, CIP/CIO and refraction constants. -** -** The parameters produced by this function are required in the -** parallax, light deflection, aberration, and bias-precession-nutation -** parts of the ICRS/CIRS transformations. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 1,2) -** dut1 double UT1-UTC (seconds, Note 3) -** elong double longitude (radians, east +ve, Note 4) -** phi double latitude (geodetic, radians, Note 4) -** hm double height above ellipsoid (m, geodetic, Notes 4,6) -** xp,yp double polar motion coordinates (radians, Note 5) -** phpa double pressure at the observer (hPa = mB, Note 6) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 7) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** eo double* equation of the origins (ERA-GST, radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 2) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 4) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 5) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto -** the local meridian. -** -** 6) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 7) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 8) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 9) In cases where the caller wishes to supply his own Earth -** ephemeris, Earth rotation information and refraction constants, -** the function iauApco can be used instead of the present function. -** -** 10) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 11) The context structure astrom produced by this function is used -** by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. -** -** Called: -** iauUtctai UTC to TAI -** iauTaitt TAI to TT -** iauUtcut1 UTC to UT1 -** iauEpv00 Earth position and velocity -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauRefco refraction constants for given ambient conditions -** iauApco astrometry parameters, ICRS-observed -** iauEors equation of the origins, given NPB matrix and s -** -** This revision: 2022 May 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - double tai1, tai2, tt1, tt2, ut11, ut12, ehpv[2][3], ebpv[2][3], - r[3][3], x, y, s, theta, sp, refa, refb; - - -/* UTC to other time scales. */ - j = iauUtctai(utc1, utc2, &tai1, &tai2); - if ( j < 0 ) return -1; - j = iauTaitt(tai1, tai2, &tt1, &tt2); - j = iauUtcut1(utc1, utc2, dut1, &ut11, &ut12); - if ( j < 0 ) return -1; - -/* Earth barycentric & heliocentric position/velocity (au, au/d). */ - (void) iauEpv00(tt1, tt2, ehpv, ebpv); - -/* Form the equinox based BPN matrix, IAU 2006/2000A. */ - iauPnm06a(tt1, tt2, r); - -/* Extract CIP X,Y. */ - iauBpn2xy(r, &x, &y); - -/* Obtain CIO locator s. */ - s = iauS06(tt1, tt2, x, y); - -/* Earth rotation angle. */ - theta = iauEra00(ut11, ut12); - -/* TIO locator s'. */ - sp = iauSp00(tt1, tt2); - -/* Refraction constants A and B. */ - iauRefco(phpa, tc, rh, wl, &refa, &refb); - -/* Compute the star-independent astrometry parameters. */ - iauApco(tt1, tt2, ebpv, ehpv[0], x, y, s, theta, - elong, phi, hm, xp, yp, sp, refa, refb, astrom); - -/* Equation of the origins. */ - *eo = iauEors(r, s); - -/* Return any warning status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apcs.c b/deps/sofa/20231011/c/src/apcs.c deleted file mode 100644 index e80dcc7..0000000 --- a/deps/sofa/20231011/c/src/apcs.c +++ /dev/null @@ -1,275 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauApcs(double date1, double date2, double pv[2][3], - double ebpv[2][3], double ehp[3], - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p c s -** - - - - - - - - -** -** For an observer whose geocentric position and velocity are known, -** prepare star-independent astrometry parameters for transformations -** between ICRS and GCRS. The Earth ephemeris is supplied by the -** caller. -** -** The parameters produced by this function are required in the space -** motion, parallax, light deflection and aberration parts of the -** astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** pv double[2][3] observer's geocentric pos/vel (m, m/s) -** ebpv double[2][3] Earth barycentric PV (au, au/day) -** ehp double[3] Earth heliocentric P (au) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) Providing separate arguments for (i) the observer's geocentric -** position and velocity and (ii) the Earth ephemeris is done for -** convenience in the geocentric, terrestrial and Earth orbit cases. -** For deep space applications it maybe more convenient to specify -** zero geocentric position and velocity and to supply the -** observer's position and velocity information directly instead of -** with respect to the Earth. However, note the different units: -** m and m/s for the geocentric vectors, au and au/day for the -** heliocentric and barycentric vectors. -** -** 4) In cases where the caller does not wish to provide the Earth -** ephemeris, the function iauApcs13 can be used instead of the -** present function. This computes the Earth ephemeris using the -** SOFA function iauEpv00. -** -** 5) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 6) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauCp copy p-vector -** iauPm modulus of p-vector -** iauPn decompose p-vector into modulus and direction -** iauIr initialize r-matrix to identity -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* au/d to m/s */ - const double AUDMS = DAU/DAYSEC; - -/* Light time for 1 au (day) */ - const double CR = AULT/DAYSEC; - - int i; - double dp, dv, pb[3], vb[3], ph[3], v2, w; - - -/* Time since reference epoch, years (for proper motion calculation). */ - astrom->pmt = ( (date1 - DJ00) + date2 ) / DJY; - -/* Adjust Earth ephemeris to observer. */ - for (i = 0; i < 3; i++) { - dp = pv[0][i] / DAU; - dv = pv[1][i] / AUDMS; - pb[i] = ebpv[0][i] + dp; - vb[i] = ebpv[1][i] + dv; - ph[i] = ehp[i] + dp; - } - -/* Barycentric position of observer (au). */ - iauCp(pb, astrom->eb); - -/* Heliocentric direction and distance (unit vector and au). */ - iauPn(ph, &astrom->em, astrom->eh); - -/* Barycentric vel. in units of c, and reciprocal of Lorenz factor. */ - v2 = 0.0; - for (i = 0; i < 3; i++) { - w = vb[i] * CR; - astrom->v[i] = w; - v2 += w*w; - } - astrom->bm1 = sqrt(1.0 - v2); - -/* Reset the NPB matrix. */ - iauIr(astrom->bpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apcs13.c b/deps/sofa/20231011/c/src/apcs13.c deleted file mode 100644 index 9b4d51b..0000000 --- a/deps/sofa/20231011/c/src/apcs13.c +++ /dev/null @@ -1,232 +0,0 @@ -#include "sofa.h" - -void iauApcs13(double date1, double date2, double pv[2][3], - iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p c s 1 3 -** - - - - - - - - - - -** -** For an observer whose geocentric position and velocity are known, -** prepare star-independent astrometry parameters for transformations -** between ICRS and GCRS. The Earth ephemeris is from SOFA models. -** -** The parameters produced by this function are required in the space -** motion, parallax, light deflection and aberration parts of the -** astrometric transformation chain. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** pv double[2][3] observer's geocentric pos/vel (Note 3) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double unchanged -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) All the vectors are with respect to BCRS axes. -** -** 3) The observer's position and velocity pv are geocentric but with -** respect to BCRS axes, and in units of m and m/s. No assumptions -** are made about proximity to the Earth, and the function can be -** used for deep space applications as well as Earth orbit and -** terrestrial. -** -** 4) In cases where the caller wishes to supply his own Earth -** ephemeris, the function iauApcs can be used instead of the present -** function. -** -** 5) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 6) The context structure astrom produced by this function is used by -** iauAtciq* and iauAticq*. -** -** Called: -** iauEpv00 Earth position and velocity -** iauApcs astrometry parameters, ICRS-GCRS, space observer -** -** This revision: 2013 October 9 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double ehpv[2][3], ebpv[2][3]; - - -/* Earth barycentric & heliocentric position/velocity (au, au/d). */ - (void) iauEpv00(date1, date2, ehpv, ebpv); - -/* Compute the star-independent astrometry parameters. */ - iauApcs(date1, date2, pv, ebpv, ehpv[0], astrom); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/aper.c b/deps/sofa/20231011/c/src/aper.c deleted file mode 100644 index 05e31aa..0000000 --- a/deps/sofa/20231011/c/src/aper.c +++ /dev/null @@ -1,203 +0,0 @@ -#include "sofa.h" - -void iauAper(double theta, iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p e r -** - - - - - - - - -** -** In the star-independent astrometry parameters, update only the -** Earth rotation angle, supplied by the caller explicitly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** theta double Earth rotation angle (radians, Note 2) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double not used -** eb double[3] not used -** eh double[3] not used -** em double not used -** v double[3] not used -** bm1 double not used -** bpn double[3][3] not used -** along double longitude + s' (radians) -** xpl double not used -** ypl double not used -** sphi double not used -** cphi double not used -** diurab double not used -** eral double not used -** refa double not used -** refb double not used -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double "local" Earth rotation angle (radians) -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) This function exists to enable sidereal-tracking applications to -** avoid wasteful recomputation of the bulk of the astrometry -** parameters: only the Earth rotation is updated. -** -** 2) For targets expressed as equinox based positions, such as -** classical geocentric apparent (RA,Dec), the supplied theta can be -** Greenwich apparent sidereal time rather than Earth rotation -** angle. -** -** 3) The function iauAper13 can be used instead of the present -** function, and starts from UT1 rather than ERA itself. -** -** 4) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** This revision: 2013 September 25 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - astrom->eral = theta + astrom->along; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/aper13.c b/deps/sofa/20231011/c/src/aper13.c deleted file mode 100644 index 5be6694..0000000 --- a/deps/sofa/20231011/c/src/aper13.c +++ /dev/null @@ -1,222 +0,0 @@ -#include "sofa.h" - -void iauAper13(double ut11, double ut12, iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p e r 1 3 -** - - - - - - - - - - -** -** In the star-independent astrometry parameters, update only the -** Earth rotation angle. The caller provides UT1, (n.b. not UTC). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ut11 double UT1 as a 2-part... -** ut12 double ...Julian Date (Note 1) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double not used -** eb double[3] not used -** eh double[3] not used -** em double not used -** v double[3] not used -** bm1 double not used -** bpn double[3][3] not used -** along double longitude + s' (radians) -** xpl double not used -** ypl double not used -** sphi double not used -** cphi double not used -** diurab double not used -** eral double not used -** refa double not used -** refb double not used -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double unchanged -** xpl double unchanged -** ypl double unchanged -** sphi double unchanged -** cphi double unchanged -** diurab double unchanged -** eral double "local" Earth rotation angle (radians) -** refa double unchanged -** refb double unchanged -** -** Notes: -** -** 1) The UT1 date (n.b. not UTC) ut11+ut12 is a Julian Date, -** apportioned in any convenient way between the arguments ut11 and -** ut12. For example, JD(UT1)=2450123.7 could be expressed in any -** of these ways, among others: -** -** ut11 ut12 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. The date & time method is -** best matched to the algorithm used: maximum precision is -** delivered when the ut11 argument is for 0hrs UT1 on the day in -** question and the ut12 argument lies in the range 0 to 1, or vice -** versa. -** -** 2) If the caller wishes to provide the Earth rotation angle itself, -** the function iauAper can be used instead. One use of this -** technique is to substitute Greenwich apparent sidereal time and -** thereby to support equinox based transformations directly. -** -** 3) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** Called: -** iauAper astrometry parameters: update ERA -** iauEra00 Earth rotation angle, IAU 2000 -** -** This revision: 2013 September 25 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauAper(iauEra00(ut11,ut12), astrom); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apio.c b/deps/sofa/20231011/c/src/apio.c deleted file mode 100644 index 8107d9c..0000000 --- a/deps/sofa/20231011/c/src/apio.c +++ /dev/null @@ -1,271 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauApio(double sp, double theta, - double elong, double phi, double hm, double xp, double yp, - double refa, double refb, - iauASTROM *astrom) -/* -** - - - - - - - - -** i a u A p i o -** - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between CIRS and observed -** coordinates. The caller supplies the Earth orientation information -** and the refraction constants as well as the site coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** sp double the TIO locator s' (radians, Note 1) -** theta double Earth rotation angle (radians) -** elong double longitude (radians, east +ve, Note 2) -** phi double geodetic latitude (radians, Note 2) -** hm double height above ellipsoid (m, geodetic Note 2) -** xp,yp double polar motion coordinates (radians, Note 3) -** refa double refraction constant A (radians, Note 4) -** refb double refraction constant B (radians, Note 4) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double adjusted longitude (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Notes: -** -** 1) sp, the TIO locator s', is a tiny quantity needed only by the -** most precise applications. It can either be set to zero or -** predicted using the SOFA function iauSp00. -** -** 2) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 3) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many applications, -** xp and yp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto the -** local meridian. -** -** 4) The refraction constants refa and refb are for use in a -** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed -** (i.e. refracted) zenith distance and dZ is the amount of -** refraction. -** -** 5) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 6) In cases where the caller does not wish to provide the Earth -** rotation information and refraction constants, the function -** iauApio13 can be used instead of the present function. This -** starts from UTC and weather readings etc. and computes suitable -** values using other SOFA functions. -** -** 7) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 8) The context structure astrom produced by this function is used by -** iauAtioq and iauAtoiq. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauRx rotate around X-axis -** iauAnpm normalize angle into range +/- pi -** iauPvtob position/velocity of terrestrial station -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3], a, b, eral, c, pv[2][3]; - - -/* Form the rotation matrix, CIRS to apparent [HA,Dec]. */ - iauIr(r); - iauRz(theta+sp, r); - iauRy(-xp, r); - iauRx(-yp, r); - iauRz(elong, r); - -/* Solve for local Earth rotation angle. */ - a = r[0][0]; - b = r[0][1]; - eral = ( a != 0.0 || b != 0.0 ) ? atan2(b, a) : 0.0; - astrom->eral = eral; - -/* Solve for polar motion [X,Y] with respect to local meridian. */ - a = r[0][0]; - c = r[0][2]; - astrom->xpl = atan2(c, sqrt(a*a+b*b)); - a = r[1][2]; - b = r[2][2]; - astrom->ypl = ( a != 0.0 || b != 0.0 ) ? -atan2(a, b) : 0.0; - -/* Adjusted longitude. */ - astrom->along = iauAnpm(eral - theta); - -/* Functions of latitude. */ - astrom->sphi = sin(phi); - astrom->cphi = cos(phi); - -/* Observer's geocentric position and velocity (m, m/s, CIRS). */ - iauPvtob(elong, phi, hm, xp, yp, sp, theta, pv); - -/* Magnitude of diurnal aberration vector. */ - astrom->diurab = sqrt(pv[1][0]*pv[1][0]+pv[1][1]*pv[1][1]) / CMPS; - -/* Refraction constants. */ - astrom->refa = refa; - astrom->refb = refb; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/apio13.c b/deps/sofa/20231011/c/src/apio13.c deleted file mode 100644 index 79a0a0a..0000000 --- a/deps/sofa/20231011/c/src/apio13.c +++ /dev/null @@ -1,301 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauApio13(double utc1, double utc2, double dut1, - double elong, double phi, double hm, double xp, double yp, - double phpa, double tc, double rh, double wl, - iauASTROM *astrom) -/* -** - - - - - - - - - - -** i a u A p i o 1 3 -** - - - - - - - - - - -** -** For a terrestrial observer, prepare star-independent astrometry -** parameters for transformations between CIRS and observed -** coordinates. The caller supplies UTC, site coordinates, ambient air -** conditions and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 1,2) -** dut1 double UT1-UTC (seconds) -** elong double longitude (radians, east +ve, Note 3) -** phi double geodetic latitude (radians, Note 3) -** hm double height above ellipsoid (m, geodetic Notes 4,6) -** xp,yp double polar motion coordinates (radians, Note 5) -** phpa double pressure at the observer (hPa = mB, Note 6) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 7) -** -** Returned: -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double unchanged -** eb double[3] unchanged -** eh double[3] unchanged -** em double unchanged -** v double[3] unchanged -** bm1 double unchanged -** bpn double[3][3] unchanged -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 2) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 4) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 5) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many applications, -** xp and yp can be set to zero. -** -** Internally, the polar motion is stored in a form rotated onto -** the local meridian. -** -** 6) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to the -** pressure and that an accurate phpa value is important for -** precise work. -** -** 7) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 8) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 9) In cases where the caller wishes to supply his own Earth -** rotation information and refraction constants, the function -** iauApc can be used instead of the present function. -** -** 10) This is one of several functions that inserts into the astrom -** structure star-independent parameters needed for the chain of -** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. -** -** The various functions support different classes of observer and -** portions of the transformation chain: -** -** functions observer transformation -** -** iauApcg iauApcg13 geocentric ICRS <-> GCRS -** iauApci iauApci13 terrestrial ICRS <-> CIRS -** iauApco iauApco13 terrestrial ICRS <-> observed -** iauApcs iauApcs13 space ICRS <-> GCRS -** iauAper iauAper13 terrestrial update Earth rotation -** iauApio iauApio13 terrestrial CIRS <-> observed -** -** Those with names ending in "13" use contemporary SOFA models to -** compute the various ephemerides. The others accept ephemerides -** supplied by the caller. -** -** The transformation from ICRS to GCRS covers space motion, -** parallax, light deflection, and aberration. From GCRS to CIRS -** comprises frame bias and precession-nutation. From CIRS to -** observed takes account of Earth rotation, polar motion, diurnal -** aberration and parallax (unless subsumed into the ICRS <-> GCRS -** transformation), and atmospheric refraction. -** -** 11) The context structure astrom produced by this function is used -** by iauAtioq and iauAtoiq. -** -** Called: -** iauUtctai UTC to TAI -** iauTaitt TAI to TT -** iauUtcut1 UTC to UT1 -** iauSp00 the TIO locator s', IERS 2000 -** iauEra00 Earth rotation angle, IAU 2000 -** iauRefco refraction constants for given ambient conditions -** iauApio astrometry parameters, CIRS-observed -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - double tai1, tai2, tt1, tt2, ut11, ut12, sp, theta, refa, refb; - - -/* UTC to other time scales. */ - j = iauUtctai(utc1, utc2, &tai1, &tai2); - if ( j < 0 ) return -1; - j = iauTaitt(tai1, tai2, &tt1, &tt2); - j = iauUtcut1(utc1, utc2, dut1, &ut11, &ut12); - if ( j < 0 ) return -1; - -/* TIO locator s'. */ - sp = iauSp00(tt1, tt2); - -/* Earth rotation angle. */ - theta = iauEra00(ut11, ut12); - -/* Refraction constants A and B. */ - iauRefco(phpa, tc, rh, wl, &refa, &refb); - -/* CIRS <-> observed astrometry parameters. */ - iauApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, astrom); - -/* Return any warning status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atcc13.c b/deps/sofa/20231011/c/src/atcc13.c deleted file mode 100644 index c125441..0000000 --- a/deps/sofa/20231011/c/src/atcc13.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "sofa.h" - -void iauAtcc13(double rc, double dc, - double pr, double pd, double px, double rv, - double date1, double date2, - double *ra, double *da) -/* -** - - - - - - - - - - -** i a u A t c c 1 3 -** - - - - - - - - - - -** -** Transform a star's ICRS catalog entry (epoch J2000.0) into ICRS -** astrometric place. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc double ICRS right ascension at J2000.0 (radians, Note 1) -** dc double ICRS declination at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 3) -** -** Returned: -** ra,da double* ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** Called: -** iauApci13 astrometry parameters, ICRS-CIRS, 2013 -** iauAtccq quick catalog ICRS to astrometric -** -** This revision: 2021 April 18 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Star-independent astrometry parameters */ - iauASTROM astrom; - - double w; - - -/* The transformation parameters. */ - iauApci13(date1, date2, &astrom, &w); - -/* Catalog ICRS (epoch J2000.0) to astrometric. */ - iauAtccq(rc, dc, pr, pd, px, rv, &astrom, ra, da); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atccq.c b/deps/sofa/20231011/c/src/atccq.c deleted file mode 100644 index 3d0341d..0000000 --- a/deps/sofa/20231011/c/src/atccq.c +++ /dev/null @@ -1,184 +0,0 @@ -#include "sofa.h" - -void iauAtccq(double rc, double dc, - double pr, double pd, double px, double rv, - iauASTROM *astrom, double *ra, double *da) -/* -** - - - - - - - - - -** i a u A t c c q -** - - - - - - - - - -** -** Quick transformation of a star's ICRS catalog entry (epoch J2000.0) -** into ICRS astrometric place, given precomputed star-independent -** astrometry parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** If the parallax and proper motions are zero the transformation has -** no effect. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at J2000.0 (radians) -** pr double RA proper motion (radians/year, Note 3) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ra,da double* ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) All the vectors are with respect to BCRS axes. -** -** 2) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 3) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** Called: -** iauPmpx proper motion and parallax -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** This revision: 2021 April 18 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double p[3], w; - - -/* Proper motion and parallax, giving BCRS coordinate direction. */ - iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, p); - -/* ICRS astrometric RA,Dec. */ - iauC2s(p, &w, da); - *ra = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atci13.c b/deps/sofa/20231011/c/src/atci13.c deleted file mode 100644 index 860e1dd..0000000 --- a/deps/sofa/20231011/c/src/atci13.c +++ /dev/null @@ -1,200 +0,0 @@ -#include "sofa.h" - -void iauAtci13(double rc, double dc, - double pr, double pd, double px, double rv, - double date1, double date2, - double *ri, double *di, double *eo) -/* -** - - - - - - - - - - -** i a u A t c i 1 3 -** - - - - - - - - - - -** -** Transform ICRS star data, epoch J2000.0, to CIRS. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc double ICRS right ascension at J2000.0 (radians, Note 1) -** dc double ICRS declination at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 3) -** -** Returned: -** ri,di double* CIRS geocentric RA,Dec (radians) -** eo double* equation of the origins (ERA-GST, radians, Note 5) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 4) The available accuracy is better than 1 milliarcsecond, limited -** mainly by the precession-nutation model that is used, namely -** IAU 2000A/2006. Very close to solar system bodies, additional -** errors of up to several milliarcseconds can occur because of -** unmodeled light deflection; however, the Sun's contribution is -** taken into account, to first order. The accuracy limitations of -** the SOFA function iauEpv00 (used to compute Earth position and -** velocity) can contribute aberration errors of up to -** 5 microarcseconds. Light deflection at the Sun's limb is -** uncertain at the 0.4 mas level. -** -** 5) Should the transformation to (equinox based) apparent place be -** required rather than (CIO based) intermediate place, subtract the -** equation of the origins from the returned right ascension: -** RA = RI - EO. (The iauAnp function can then be applied, as -** required, to keep the result in the conventional 0-2pi range.) -** -** Called: -** iauApci13 astrometry parameters, ICRS-CIRS, 2013 -** iauAtciq quick ICRS to CIRS -** -** This revision: 2022 May 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Star-independent astrometry parameters */ - iauASTROM astrom; - - -/* The transformation parameters. */ - iauApci13(date1, date2, &astrom, eo); - -/* ICRS (epoch J2000.0) to CIRS. */ - iauAtciq(rc, dc, pr, pd, px, rv, &astrom, ri, di); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atciq.c b/deps/sofa/20231011/c/src/atciq.c deleted file mode 100644 index fc12b8a..0000000 --- a/deps/sofa/20231011/c/src/atciq.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "sofa.h" - -void iauAtciq(double rc, double dc, - double pr, double pd, double px, double rv, - iauASTROM *astrom, double *ri, double *di) -/* -** - - - - - - - - - -** i a u A t c i q -** - - - - - - - - - -** -** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed -** star-independent astrometry parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** If the parallax and proper motions are zero the iauAtciqz function -** can be used instead. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ri,di double CIRS RA,Dec (radians) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** Called: -** iauPmpx proper motion and parallax -** iauLdsun light deflection by the Sun -** iauAb stellar aberration -** iauRxp product of r-matrix and pv-vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** This revision: 2021 April 19 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double pco[3], pnat[3], ppr[3], pi[3], w; - - -/* Proper motion and parallax, giving BCRS coordinate direction. */ - iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco); - -/* Light deflection by the Sun, giving BCRS natural direction. */ - iauLdsun(pco, astrom->eh, astrom->em, pnat); - -/* Aberration, giving GCRS proper direction. */ - iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr); - -/* Bias-precession-nutation, giving CIRS proper direction. */ - iauRxp(astrom->bpn, ppr, pi); - -/* CIRS RA,Dec. */ - iauC2s(pi, &w, di); - *ri = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atciqn.c b/deps/sofa/20231011/c/src/atciqn.c deleted file mode 100644 index b59a842..0000000 --- a/deps/sofa/20231011/c/src/atciqn.c +++ /dev/null @@ -1,232 +0,0 @@ -#include "sofa.h" - -void iauAtciqn(double rc, double dc, double pr, double pd, - double px, double rv, iauASTROM *astrom, - int n, iauLDBODY b[], double *ri, double *di) -/* -** - - - - - - - - - - -** i a u A t c i q n -** - - - - - - - - - - -** -** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed -** star-independent astrometry parameters plus a list of light- -** deflecting bodies. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** -** If the only light-deflecting body to be taken into account is the -** Sun, the iauAtciq function can be used instead. If in addition the -** parallax and proper motions are zero, the iauAtciqz function can be -** used. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at J2000.0 (radians) -** pr double RA proper motion (radians/year, Note 3) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** n int number of bodies (Note 3) -** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): -** bm double mass of the body (solar masses, Note 5) -** dl double deflection limiter (Note 6) -** pv [2][3] barycentric PV of the body (au, au/day) -** -** Returned: -** ri,di double CIRS RA,Dec (radians) -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require a -** preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The struct b contains n entries, one for each body to be -** considered. If n = 0, no gravitational light deflection will be -** applied, not even for the Sun. -** -** 4) The struct b should include an entry for the Sun as well as for -** any planet or other body to be taken into account. The entries -** should be in the order in which the light passes the body. -** -** 5) In the entry in the b struct for body i, the mass parameter -** b[i].bm can, as required, be adjusted in order to allow for such -** effects as quadrupole field. -** -** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is -** the angular separation (in radians) between star and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. Example values suitable for a terrestrial -** observer, together with masses, are as follows: -** -** body i b[i].bm b[i].dl -** -** Sun 1.0 6e-6 -** Jupiter 0.00095435 3e-9 -** Saturn 0.00028574 3e-10 -** -** 7) For efficiency, validation of the contents of the b array is -** omitted. The supplied masses must be greater than zero, the -** position and velocity vectors must be right, and the deflection -** limiter greater than zero. -** -** Called: -** iauPmpx proper motion and parallax -** iauLdn light deflection by n bodies -** iauAb stellar aberration -** iauRxp product of r-matrix and pv-vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** This revision: 2021 April 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double pco[3], pnat[3], ppr[3], pi[3], w; - - -/* Proper motion and parallax, giving BCRS coordinate direction. */ - iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco); - -/* Light deflection, giving BCRS natural direction. */ - iauLdn(n, b, astrom->eb, pco, pnat); - -/* Aberration, giving GCRS proper direction. */ - iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr); - -/* Bias-precession-nutation, giving CIRS proper direction. */ - iauRxp(astrom->bpn, ppr, pi); - -/* CIRS RA,Dec. */ - iauC2s(pi, &w, di); - *ri = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atciqz.c b/deps/sofa/20231011/c/src/atciqz.c deleted file mode 100644 index 6d044fc..0000000 --- a/deps/sofa/20231011/c/src/atciqz.c +++ /dev/null @@ -1,194 +0,0 @@ -#include "sofa.h" - -void iauAtciqz(double rc, double dc, iauASTROM *astrom, - double *ri, double *di) -/* -** - - - - - - - - - - -** i a u A t c i q z -** - - - - - - - - - - -** -** Quick ICRS to CIRS transformation, given precomputed star- -** independent astrometry parameters, and assuming zero parallax and -** proper motion. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are to be transformed for one date. The -** star-independent parameters can be obtained by calling one of the -** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. -** -** The corresponding function for the case of non-zero parallax and -** proper motion is iauAtciq. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS astrometric RA,Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ri,di double CIRS RA,Dec (radians) -** -** Note: -** -** All the vectors are with respect to BCRS axes. -** -** References: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013). -** -** Klioner, Sergei A., "A practical relativistic model for micro- -** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauLdsun light deflection due to Sun -** iauAb stellar aberration -** iauRxp product of r-matrix and p-vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range +/- pi -** -** This revision: 2013 October 9 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double pco[3], pnat[3], ppr[3], pi[3], w; - - -/* BCRS coordinate direction (unit vector). */ - iauS2c(rc, dc, pco); - -/* Light deflection by the Sun, giving BCRS natural direction. */ - iauLdsun(pco, astrom->eh, astrom->em, pnat); - -/* Aberration, giving GCRS proper direction. */ - iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr); - -/* Bias-precession-nutation, giving CIRS proper direction. */ - iauRxp(astrom->bpn, ppr, pi); - -/* CIRS RA,Dec. */ - iauC2s(pi, &w, di); - *ri = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atco13.c b/deps/sofa/20231011/c/src/atco13.c deleted file mode 100644 index 02d9afe..0000000 --- a/deps/sofa/20231011/c/src/atco13.c +++ /dev/null @@ -1,285 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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 tc, double rh, double wl, - double *aob, double *zob, double *hob, - double *dob, double *rob, double *eo) -/* -** - - - - - - - - - - -** i a u A t c o 1 3 -** - - - - - - - - - - -** -** ICRS RA,Dec to observed place. The caller supplies UTC, site -** coordinates, ambient air conditions and observing wavelength. -** -** SOFA models are used for the Earth ephemeris, bias-precession- -** nutation, Earth orientation and refraction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS right ascension at J2000.0 (radians, Note 1) -** pr double RA proper motion (radians/year, Note 2) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 3-4) -** dut1 double UT1-UTC (seconds, Note 5) -** elong double longitude (radians, east +ve, Note 6) -** phi double latitude (geodetic, radians, Note 6) -** hm double height above ellipsoid (m, geodetic, Notes 6,8) -** xp,yp double polar motion coordinates (radians, Note 7) -** phpa double pressure at the observer (hPa = mB, Note 8) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 9) -** -** Returned: -** aob double* observed azimuth (radians: N=0,E=90) -** zob double* observed zenith distance (radians) -** hob double* observed hour angle (radians) -** dob double* observed declination (radians) -** rob double* observed right ascension (CIO-based, radians) -** eo double* equation of the origins (ERA-GST, radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 4) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) Star data for an epoch other than J2000.0 (for example from the -** Hipparcos catalog, which has an epoch of J1991.25) will require -** a preliminary call to iauPmsafe before use. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 6) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 7) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 8) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), -** is available, an adequate estimate of hm can be obtained from -** the expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 9) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 10) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted observed -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtco13 and -** iauAtoc13 are self-consistent to better than 1 microarcsecond -** all over the celestial sphere. With refraction included, -** consistency falls off at high zenith distances, but is still -** better than 0.05 arcsec at 85 degrees. -** -** 11) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and RA are related simply through the Earth rotation -** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus -** means the position that would be seen by a perfect equatorial -** with its polar axis aligned to the Earth's axis of rotation. -** -** 12) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApco13 astrometry parameters, ICRS-observed, 2013 -** iauAtciq quick ICRS to CIRS -** iauAtioq quick CIRS to observed -** -** This revision: 2022 May 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - iauASTROM astrom; - double ri, di; - - -/* Star-independent astrometry parameters. */ - j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom, eo); - -/* Abort if bad UTC. */ - if ( j < 0 ) return j; - -/* Transform ICRS to CIRS. */ - iauAtciq(rc, dc, pr, pd, px, rv, &astrom, &ri, &di); - -/* Transform CIRS to observed. */ - iauAtioq(ri, di, &astrom, aob, zob, hob, dob, rob); - -/* Return OK/warning status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atic13.c b/deps/sofa/20231011/c/src/atic13.c deleted file mode 100644 index 6f74535..0000000 --- a/deps/sofa/20231011/c/src/atic13.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "sofa.h" - -void iauAtic13(double ri, double di, double date1, double date2, - double *rc, double *dc, double *eo) -/* -** - - - - - - - - - - -** i a u A t i c 1 3 -** - - - - - - - - - - -** -** Transform star RA,Dec from geocentric CIRS to ICRS astrometric. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri,di double CIRS geocentric RA,Dec (radians) -** date1 double TDB as a 2-part... -** date2 double ...Julian Date (Note 1) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** eo double equation of the origins (ERA-GST, radians, Note 4) -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. For most -** applications of this function the choice will not be at all -** critical. -** -** TT can be used instead of TDB without any significant impact on -** accuracy. -** -** 2) Iterative techniques are used for the aberration and light -** deflection corrections so that the functions iauAtic13 (or -** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; -** even at the edge of the Sun's disk the discrepancy is only about -** 1 nanoarcsecond. -** -** 3) The available accuracy is better than 1 milliarcsecond, limited -** mainly by the precession-nutation model that is used, namely -** IAU 2000A/2006. Very close to solar system bodies, additional -** errors of up to several milliarcseconds can occur because of -** unmodeled light deflection; however, the Sun's contribution is -** taken into account, to first order. The accuracy limitations of -** the SOFA function iauEpv00 (used to compute Earth position and -** velocity) can contribute aberration errors of up to -** 5 microarcseconds. Light deflection at the Sun's limb is -** uncertain at the 0.4 mas level. -** -** 4) Should the transformation to (equinox based) J2000.0 mean place -** be required rather than (CIO based) ICRS coordinates, subtract the -** equation of the origins from the returned right ascension: -** RA = RI - EO. (The iauAnp function can then be applied, as -** required, to keep the result in the conventional 0-2pi range.) -** -** Called: -** iauApci13 astrometry parameters, ICRS-CIRS, 2013 -** iauAticq quick CIRS to ICRS astrometric -** -** This revision: 2022 May 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Star-independent astrometry parameters */ - iauASTROM astrom; - - -/* Star-independent astrometry parameters. */ - iauApci13(date1, date2, &astrom, eo); - -/* CIRS to ICRS astrometric. */ - iauAticq(ri, di, &astrom, rc, dc); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/aticq.c b/deps/sofa/20231011/c/src/aticq.c deleted file mode 100644 index 1fac8a2..0000000 --- a/deps/sofa/20231011/c/src/aticq.c +++ /dev/null @@ -1,240 +0,0 @@ -#include "sofa.h" - -void iauAticq(double ri, double di, iauASTROM *astrom, - double *rc, double *dc) -/* -** - - - - - - - - - -** i a u A t i c q -** - - - - - - - - - -** -** Quick CIRS RA,Dec to ICRS astrometric place, given the star- -** independent astrometry parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] -** or iauApcs[13]. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri,di double CIRS RA,Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) Only the Sun is taken into account in the light deflection -** correction. -** -** 2) Iterative techniques are used for the aberration and light -** deflection corrections so that the functions iauAtic13 (or -** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; -** even at the edge of the Sun's disk the discrepancy is only about -** 1 nanoarcsecond. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauZp zero p-vector -** iauAb stellar aberration -** iauLdsun light deflection by the Sun -** iauC2s p-vector to spherical -** iauAnp normalize angle into range +/- pi -** -** This revision: 2013 October 9 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j, i; - double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r, - after[3]; - - -/* CIRS RA,Dec to Cartesian. */ - iauS2c(ri, di, pi); - -/* Bias-precession-nutation, giving GCRS proper direction. */ - iauTrxp(astrom->bpn, pi, ppr); - -/* Aberration, giving GCRS natural direction. */ - iauZp(d); - for (j = 0; j < 2; j++) { - r2 = 0.0; - for (i = 0; i < 3; i++) { - w = ppr[i] - d[i]; - before[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - before[i] /= r; - } - iauAb(before, astrom->v, astrom->em, astrom->bm1, after); - r2 = 0.0; - for (i = 0; i < 3; i++) { - d[i] = after[i] - before[i]; - w = ppr[i] - d[i]; - pnat[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - pnat[i] /= r; - } - } - -/* Light deflection by the Sun, giving BCRS coordinate direction. */ - iauZp(d); - for (j = 0; j < 5; j++) { - r2 = 0.0; - for (i = 0; i < 3; i++) { - w = pnat[i] - d[i]; - before[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - before[i] /= r; - } - iauLdsun(before, astrom->eh, astrom->em, after); - r2 = 0.0; - for (i = 0; i < 3; i++) { - d[i] = after[i] - before[i]; - w = pnat[i] - d[i]; - pco[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - pco[i] /= r; - } - } - -/* ICRS astrometric RA,Dec. */ - iauC2s(pco, &w, dc); - *rc = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/aticqn.c b/deps/sofa/20231011/c/src/aticqn.c deleted file mode 100644 index 18e59be..0000000 --- a/deps/sofa/20231011/c/src/aticqn.c +++ /dev/null @@ -1,278 +0,0 @@ -#include "sofa.h" - -void iauAticqn(double ri, double di, iauASTROM *astrom, - int n, iauLDBODY b[], double *rc, double *dc) -/* -** - - - - - - - - - - -** i a u A t i c q n -** - - - - - - - - - - -** -** Quick CIRS to ICRS astrometric place transformation, given the star- -** independent astrometry parameters plus a list of light-deflecting -** bodies. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] -** or iauApcs[13]. -* -* If the only light-deflecting body to be taken into account is the -* Sun, the iauAticq function can be used instead. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri,di double CIRS RA,Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** n int number of bodies (Note 3) -** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): -** bm double mass of the body (solar masses, Note 5) -** dl double deflection limiter (Note 6) -** pv [2][3] barycentric PV of the body (au, au/day) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** -** Notes: -** -** 1) Iterative techniques are used for the aberration and light -** deflection corrections so that the functions iauAticqn and -** iauAtciqn are accurate inverses; even at the edge of the Sun's -** disk the discrepancy is only about 1 nanoarcsecond. -** -** 2) If the only light-deflecting body to be taken into account is the -** Sun, the iauAticq function can be used instead. -** -** 3) The struct b contains n entries, one for each body to be -** considered. If n = 0, no gravitational light deflection will be -** applied, not even for the Sun. -** -** 4) The struct b should include an entry for the Sun as well as for -** any planet or other body to be taken into account. The entries -** should be in the order in which the light passes the body. -** -** 5) In the entry in the b struct for body i, the mass parameter -** b[i].bm can, as required, be adjusted in order to allow for such -** effects as quadrupole field. -** -** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is -** the angular separation (in radians) between star and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. Example values suitable for a terrestrial -** observer, together with masses, are as follows: -** -** body i b[i].bm b[i].dl -** -** Sun 1.0 6e-6 -** Jupiter 0.00095435 3e-9 -** Saturn 0.00028574 3e-10 -** -** 7) For efficiency, validation of the contents of the b array is -** omitted. The supplied masses must be greater than zero, the -** position and velocity vectors must be right, and the deflection -** limiter greater than zero. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauZp zero p-vector -** iauAb stellar aberration -** iauLdn light deflection by n bodies -** iauC2s p-vector to spherical -** iauAnp normalize angle into range +/- pi -** -** This revision: 2021 January 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j, i; - double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r, - after[3]; - - -/* CIRS RA,Dec to Cartesian. */ - iauS2c(ri, di, pi); - -/* Bias-precession-nutation, giving GCRS proper direction. */ - iauTrxp(astrom->bpn, pi, ppr); - -/* Aberration, giving GCRS natural direction. */ - iauZp(d); - for (j = 0; j < 2; j++) { - r2 = 0.0; - for (i = 0; i < 3; i++) { - w = ppr[i] - d[i]; - before[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - before[i] /= r; - } - iauAb(before, astrom->v, astrom->em, astrom->bm1, after); - r2 = 0.0; - for (i = 0; i < 3; i++) { - d[i] = after[i] - before[i]; - w = ppr[i] - d[i]; - pnat[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - pnat[i] /= r; - } - } - -/* Light deflection, giving BCRS coordinate direction. */ - iauZp(d); - for (j = 0; j < 5; j++) { - r2 = 0.0; - for (i = 0; i < 3; i++) { - w = pnat[i] - d[i]; - before[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - before[i] /= r; - } - iauLdn(n, b, astrom->eb, before, after); - r2 = 0.0; - for (i = 0; i < 3; i++) { - d[i] = after[i] - before[i]; - w = pnat[i] - d[i]; - pco[i] = w; - r2 += w*w; - } - r = sqrt(r2); - for (i = 0; i < 3; i++) { - pco[i] /= r; - } - } - -/* ICRS astrometric RA,Dec. */ - iauC2s(pco, &w, dc); - *rc = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atio13.c b/deps/sofa/20231011/c/src/atio13.c deleted file mode 100644 index c052c6f..0000000 --- a/deps/sofa/20231011/c/src/atio13.c +++ /dev/null @@ -1,264 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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 tc, double rh, double wl, - double *aob, double *zob, double *hob, - double *dob, double *rob) -/* -** - - - - - - - - - - -** i a u A t i o 1 3 -** - - - - - - - - - - -** -** CIRS RA,Dec to observed place. The caller supplies UTC, site -** coordinates, ambient air conditions and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri double CIRS right ascension (CIO-based, radians) -** di double CIRS declination (radians) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 1,2) -** dut1 double UT1-UTC (seconds, Note 3) -** elong double longitude (radians, east +ve, Note 4) -** phi double geodetic latitude (radians, Note 4) -** hm double height above ellipsoid (m, geodetic Notes 4,6) -** xp,yp double polar motion coordinates (radians, Note 5) -** phpa double pressure at the observer (hPa = mB, Note 6) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 7) -** -** Returned: -** aob double* observed azimuth (radians: N=0,E=90) -** zob double* observed zenith distance (radians) -** hob double* observed hour angle (radians) -** dob double* observed declination (radians) -** rob double* observed right ascension (CIO-based, radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 2) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 4) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 5) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 6) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 7) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 8) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and RA are related simply through the Earth rotation -** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus -** means the position that would be seen by a perfect equatorial -** with its polar axis aligned to the Earth's axis of rotation. -** -** 9) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted astrometric -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** 10) The complementary functions iauAtio13 and iauAtoi13 are self- -** consistent to better than 1 microarcsecond all over the -** celestial sphere. -** -** 11) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApio13 astrometry parameters, CIRS-observed, 2013 -** iauAtioq quick CIRS to observed -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - iauASTROM astrom; - - -/* Star-independent astrometry parameters for CIRS->observed. */ - j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom); - -/* Abort if bad UTC. */ - if ( j < 0 ) return j; - -/* Transform CIRS to observed. */ - iauAtioq(ri, di, &astrom, aob, zob, hob, dob, rob); - -/* Return OK/warning status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atioq.c b/deps/sofa/20231011/c/src/atioq.c deleted file mode 100644 index 505a96b..0000000 --- a/deps/sofa/20231011/c/src/atioq.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "sofa.h" - -void iauAtioq(double ri, double di, iauASTROM *astrom, - double *aob, double *zob, - double *hob, double *dob, double *rob) -/* -** - - - - - - - - - -** i a u A t i o q -** - - - - - - - - - -** -** Quick CIRS to observed place transformation. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling iauApio[13] or iauApco[13]. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ri double CIRS right ascension -** di double CIRS declination -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** aob double* observed azimuth (radians: N=0,E=90) -** zob double* observed zenith distance (radians) -** hob double* observed hour angle (radians) -** dob double* observed declination (radians) -** rob double* observed right ascension (CIO-based, radians) -** -** Notes: -** -** 1) This function returns zenith distance rather than altitude in -** order to reflect the fact that no allowance is made for -** depression of the horizon. -** -** 2) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted observed -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtioq and -** iauAtoiq are self-consistent to better than 1 microarcsecond all -** over the celestial sphere. With refraction included, consistency -** falls off at high zenith distances, but is still better than -** 0.05 arcsec at 85 degrees. -** -** 3) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** 4) The CIRS RA,Dec is obtained from a star catalog mean place by -** allowing for space motion, parallax, the Sun's gravitational lens -** effect, annual aberration and precession-nutation. For star -** positions in the ICRS, these effects can be applied by means of -** the iauAtci13 (etc.) functions. Starting from classical "mean -** place" systems, additional transformations will be needed first. -** -** 5) "Observed" Az,El means the position that would be seen by a -** perfect geodetically aligned theodolite. This is obtained from -** the CIRS RA,Dec by allowing for Earth orientation and diurnal -** aberration, rotating from equator to horizon coordinates, and -** then adjusting for refraction. The HA,Dec is obtained by -** rotating back into equatorial coordinates, and is the position -** that would be seen by a perfect equatorial with its polar axis -** aligned to the Earth's axis of rotation. Finally, the -** (CIO-based) RA is obtained by subtracting the HA from the local -** ERA. -** -** 6) The star-independent CIRS-to-observed-place parameters in ASTROM -** may be computed with iauApio[13] or iauApco[13]. If nothing has -** changed significantly except the time, iauAper[13] may be used to -** perform the requisite adjustment to the astrom structure. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** This revision: 2022 August 30 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Minimum cos(alt) and sin(alt) for refraction purposes */ - const double CELMIN = 1e-6; - const double SELMIN = 0.05; - - double v[3], x, y, z, sx, cx, sy, cy, xhd, yhd, zhd, f, - xhdt, yhdt, zhdt, xaet, yaet, zaet, azobs, r, tz, w, del, - cosdel, xaeo, yaeo, zaeo, zdobs, hmobs, dcobs, raobs; - - -/* CIRS RA,Dec to Cartesian -HA,Dec. */ - iauS2c(ri-astrom->eral, di, v); - x = v[0]; - y = v[1]; - z = v[2]; - -/* Polar motion. */ - sx = sin(astrom->xpl); - cx = cos(astrom->xpl); - sy = sin(astrom->ypl); - cy = cos(astrom->ypl); - xhd = cx*x + sx*z; - yhd = sx*sy*x + cy*y - cx*sy*z; - zhd = -sx*cy*x + sy*y + cx*cy*z; - -/* Diurnal aberration. */ - f = ( 1.0 - astrom->diurab*yhd ); - xhdt = f * xhd; - yhdt = f * ( yhd + astrom->diurab ); - zhdt = f * zhd; - -/* Cartesian -HA,Dec to Cartesian Az,El (S=0,E=90). */ - xaet = astrom->sphi*xhdt - astrom->cphi*zhdt; - yaet = yhdt; - zaet = astrom->cphi*xhdt + astrom->sphi*zhdt; - -/* Azimuth (N=0,E=90). */ - azobs = ( xaet != 0.0 || yaet != 0.0 ) ? atan2(yaet,-xaet) : 0.0; - -/* ---------- */ -/* Refraction */ -/* ---------- */ - -/* Cosine and sine of altitude, with precautions. */ - r = sqrt(xaet*xaet + yaet*yaet); - r = r > CELMIN ? r : CELMIN; - z = zaet > SELMIN ? zaet : SELMIN; - -/* A*tan(z)+B*tan^3(z) model, with Newton-Raphson correction. */ - tz = r/z; - w = astrom->refb*tz*tz; - del = ( astrom->refa + w ) * tz / - ( 1.0 + ( astrom->refa + 3.0*w ) / ( z*z ) ); - -/* Apply the change, giving observed vector. */ - cosdel = 1.0 - del*del/2.0; - f = cosdel - del*z/r; - xaeo = xaet*f; - yaeo = yaet*f; - zaeo = cosdel*zaet + del*r; - -/* Observed ZD. */ - zdobs = atan2(sqrt(xaeo*xaeo+yaeo*yaeo), zaeo); - -/* Az/El vector to HA,Dec vector (both right-handed). */ - v[0] = astrom->sphi*xaeo + astrom->cphi*zaeo; - v[1] = yaeo; - v[2] = - astrom->cphi*xaeo + astrom->sphi*zaeo; - -/* To spherical -HA,Dec. */ - iauC2s ( v, &hmobs, &dcobs ); - -/* Right ascension (with respect to CIO). */ - raobs = astrom->eral + hmobs; - -/* Return the results. */ - *aob = iauAnp(azobs); - *zob = zdobs; - *hob = -hmobs; - *dob = dcobs; - *rob = iauAnp(raobs); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atoc13.c b/deps/sofa/20231011/c/src/atoc13.c deleted file mode 100644 index ee11b8a..0000000 --- a/deps/sofa/20231011/c/src/atoc13.c +++ /dev/null @@ -1,276 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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 tc, double rh, double wl, - double *rc, double *dc) -/* -** - - - - - - - - - - -** i a u A t o c 1 3 -** - - - - - - - - - - -** -** Observed place at a groundbased site to to ICRS astrometric RA,Dec. -** The caller supplies UTC, site coordinates, ambient air conditions -** and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) -** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) -** ob2 double observed ZD or Dec (radians) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 3,4) -** dut1 double UT1-UTC (seconds, Note 5) -** elong double longitude (radians, east +ve, Note 6) -** phi double geodetic latitude (radians, Note 6) -** hm double height above ellipsoid (m, geodetic Notes 6,8) -** xp,yp double polar motion coordinates (radians, Note 7) -** phpa double pressure at the observer (hPa = mB, Note 8) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 9) -** -** Returned: -** rc,dc double ICRS astrometric RA,Dec (radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 4) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and (CIO-based) RA are related simply through the -** Earth rotation angle and the site longitude. "Observed" RA,Dec -** or HA,Dec thus means the position that would be seen by a -** perfect equatorial with its polar axis aligned to the Earth's -** axis of rotation. -** -** 2) Only the first character of the type argument is significant. -** "R" or "r" indicates that ob1 and ob2 are the observed right -** ascension (CIO-based) and declination; "H" or "h" indicates -** that they are hour angle (west +ve) and declination; anything -** else ("A" or "a" is recommended) indicates that ob1 and ob2 are -** azimuth (north zero, east 90 deg) and zenith distance. -** -** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 6) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 7) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 8) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 9) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 10) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted astrometric -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtco13 and -** iauAtoc13 are self-consistent to better than 1 microarcsecond -** all over the celestial sphere. With refraction included, -** consistency falls off at high zenith distances, but is still -** better than 0.05 arcsec at 85 degrees. -** -** 11) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApco13 astrometry parameters, ICRS-observed -** iauAtoiq quick observed to CIRS -** iauAticq quick CIRS to ICRS -** -** This revision: 2022 August 30 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - iauASTROM astrom; - double eo, ri, di; - - -/* Star-independent astrometry parameters. */ - j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom, &eo); - -/* Abort if bad UTC. */ - if ( j < 0 ) return j; - -/* Transform observed to CIRS. */ - iauAtoiq(type, ob1, ob2, &astrom, &ri, &di); - -/* Transform CIRS to ICRS. */ - iauAticq(ri, di, &astrom, rc, dc); - -/* Return OK/warning status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atoi13.c b/deps/sofa/20231011/c/src/atoi13.c deleted file mode 100644 index 12e7e83..0000000 --- a/deps/sofa/20231011/c/src/atoi13.c +++ /dev/null @@ -1,271 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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 tc, double rh, double wl, - double *ri, double *di) -/* -** - - - - - - - - - - -** i a u A t o i 1 3 -** - - - - - - - - - - -** -** Observed place to CIRS. The caller supplies UTC, site coordinates, -** ambient air conditions and observing wavelength. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) -** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) -** ob2 double observed ZD or Dec (radians) -** utc1 double UTC as a 2-part... -** utc2 double ...quasi Julian Date (Notes 3,4) -** dut1 double UT1-UTC (seconds, Note 5) -** elong double longitude (radians, east +ve, Note 6) -** phi double geodetic latitude (radians, Note 6) -** hm double height above the ellipsoid (meters, Notes 6,8) -** xp,yp double polar motion coordinates (radians, Note 7) -** phpa double pressure at the observer (hPa = mB, Note 8) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers, Note 9) -** -** Returned: -** ri double* CIRS right ascension (CIO-based, radians) -** di double* CIRS declination (radians) -** -** Returned (function value): -** int status: +1 = dubious year (Note 2) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. (Zenith distance is -** used rather than altitude in order to reflect the fact that no -** allowance is made for depression of the horizon.) This is -** related to the observed HA,Dec via the standard rotation, using -** the geodetic latitude (corrected for polar motion), while the -** observed HA and (CIO-based) RA are related simply through the -** Earth rotation angle and the site longitude. "Observed" RA,Dec -** or HA,Dec thus means the position that would be seen by a -** perfect equatorial with its polar axis aligned to the Earth's -** axis of rotation. -** -** 2) Only the first character of the type argument is significant. -** "R" or "r" indicates that ob1 and ob2 are the observed right -** ascension and declination; "H" or "h" indicates that they are -** hour angle (west +ve) and declination; anything else ("A" or -** "a" is recommended) indicates that ob1 and ob2 are azimuth -** (north zero, east 90 deg) and zenith distance. -** -** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** However, JD cannot unambiguously represent UTC during a leap -** second unless special measures are taken. The convention in the -** present function is that the JD day represents UTC days whether -** the length is 86399, 86400 or 86401 SI seconds. -** -** Applications should use the function iauDtf2d to convert from -** calendar date and time of day into 2-part quasi Julian Date, as -** it implements the leap-second-ambiguity convention just -** described. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the -** future to be trusted. See iauDat for further details. -** -** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly -** one second at the end of each positive UTC leap second, -** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This -** practice is under review, and in the future UT1-UTC may grow -** essentially without limit. -** -** 6) The geographical coordinates are with respect to the WGS84 -** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the -** longitude required by the present function is east-positive -** (i.e. right-handed), in accordance with geographical convention. -** -** 7) The polar motion xp,yp can be obtained from IERS bulletins. The -** values are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions 2003), measured along the -** meridians 0 and 90 deg west respectively. For many -** applications, xp and yp can be set to zero. -** -** 8) If hm, the height above the ellipsoid of the observing station -** in meters, is not known but phpa, the pressure in hPa (=mB), is -** available, an adequate estimate of hm can be obtained from the -** expression -** -** hm = -29.3 * tsl * log ( phpa / 1013.25 ); -** -** where tsl is the approximate sea-level air temperature in K -** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section -** 52). Similarly, if the pressure phpa is not known, it can be -** estimated from the height of the observing station, hm, as -** follows: -** -** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); -** -** Note, however, that the refraction is nearly proportional to -** the pressure and that an accurate phpa value is important for -** precise work. -** -** 9) The argument wl specifies the observing wavelength in -** micrometers. The transition from optical to radio is assumed to -** occur at 100 micrometers (about 3000 GHz). -** -** 10) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted astrometric -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better -** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtio13 and -** iauAtoi13 are self-consistent to better than 1 microarcsecond -** all over the celestial sphere. With refraction included, -** consistency falls off at high zenith distances, but is still -** better than 0.05 arcsec at 85 degrees. -** -** 12) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauApio13 astrometry parameters, CIRS-observed, 2013 -** iauAtoiq quick observed to CIRS -** -** This revision: 2022 August 30 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - iauASTROM astrom; - - -/* Star-independent astrometry parameters for CIRS->observed. */ - j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom); - -/* Abort if bad UTC. */ - if ( j < 0 ) return j; - -/* Transform observed to CIRS. */ - iauAtoiq(type, ob1, ob2, &astrom, ri, di); - -/* Return OK/warning status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/atoiq.c b/deps/sofa/20231011/c/src/atoiq.c deleted file mode 100644 index e853bca..0000000 --- a/deps/sofa/20231011/c/src/atoiq.c +++ /dev/null @@ -1,300 +0,0 @@ -#include "sofa.h" - -void iauAtoiq(const char *type, - double ob1, double ob2, iauASTROM *astrom, - double *ri, double *di) -/* -** - - - - - - - - - -** i a u A t o i q -** - - - - - - - - - -** -** Quick observed place to CIRS, given the star-independent astrometry -** parameters. -** -** Use of this function is appropriate when efficiency is important and -** where many star positions are all to be transformed for one date. -** The star-independent astrometry parameters can be obtained by -** calling iauApio[13] or iauApco[13]. -** -** Status: support function. -** -** Given: -** type char[] type of coordinates: "R", "H" or "A" (Note 1) -** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) -** ob2 double observed ZD or Dec (radians) -** astrom iauASTROM* star-independent astrometry parameters: -** pmt double PM time interval (SSB, Julian years) -** eb double[3] SSB to observer (vector, au) -** eh double[3] Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** v double[3] barycentric observer velocity (vector, c) -** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor -** bpn double[3][3] bias-precession-nutation matrix -** along double longitude + s' (radians) -** xpl double polar motion xp wrt local meridian (radians) -** ypl double polar motion yp wrt local meridian (radians) -** sphi double sine of geodetic latitude -** cphi double cosine of geodetic latitude -** diurab double magnitude of diurnal aberration vector -** eral double "local" Earth rotation angle (radians) -** refa double refraction constant A (radians) -** refb double refraction constant B (radians) -** -** Returned: -** ri double* CIRS right ascension (CIO-based, radians) -** di double* CIRS declination (radians) -** -** Notes: -** -** 1) "Observed" Az,ZD means the position that would be seen by a -** perfect geodetically aligned theodolite. This is related to -** the observed HA,Dec via the standard rotation, using the geodetic -** latitude (corrected for polar motion), while the observed HA and -** (CIO-based) RA are related simply through the Earth rotation -** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus -** means the position that would be seen by a perfect equatorial -** with its polar axis aligned to the Earth's axis of rotation. -** -** 2) Only the first character of the type argument is significant. -** "R" or "r" indicates that ob1 and ob2 are the observed right -** ascension (CIO-based) and declination; "H" or "h" indicates that -** they are hour angle (west +ve) and declination; anything else -** ("A" or "a" is recommended) indicates that ob1 and ob2 are -** azimuth (north zero, east 90 deg) and zenith distance. (Zenith -** distance is used rather than altitude in order to reflect the -** fact that no allowance is made for depression of the horizon.) -** -** 3) The accuracy of the result is limited by the corrections for -** refraction, which use a simple A*tan(z) + B*tan^3(z) model. -** Providing the meteorological parameters are known accurately and -** there are no gross local effects, the predicted intermediate -** coordinates should be within 0.05 arcsec (optical) or 1 arcsec -** (radio) for a zenith distance of less than 70 degrees, better -** than 30 arcsec (optical or radio) at 85 degrees and better than -** 20 arcmin (optical) or 25 arcmin (radio) at the horizon. -** -** Without refraction, the complementary functions iauAtioq and -** iauAtoiq are self-consistent to better than 1 microarcsecond all -** over the celestial sphere. With refraction included, consistency -** falls off at high zenith distances, but is still better than -** 0.05 arcsec at 85 degrees. -** -** 4) It is advisable to take great care with units, as even unlikely -** values of the input parameters are accepted and processed in -** accordance with the models used. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** This revision: 2022 August 30 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Minimum sin(alt) for refraction purposes */ - const double SELMIN = 0.05; - - int c; - double c1, c2, sphi, cphi, ce, xaeo, yaeo, zaeo, v[3], - xmhdo, ymhdo, zmhdo, az, sz, zdo, refa, refb, tz, dref, - zdt, xaet, yaet, zaet, xmhda, ymhda, zmhda, - f, xhd, yhd, zhd, sx, cx, sy, cy, hma; - - -/* Coordinate type. */ - c = (int) type[0]; - -/* Coordinates. */ - c1 = ob1; - c2 = ob2; - -/* Sin, cos of latitude. */ - sphi = astrom->sphi; - cphi = astrom->cphi; - -/* Standardize coordinate type. */ - if ( c == 'r' || c == 'R' ) { - c = 'R'; - } else if ( c == 'h' || c == 'H' ) { - c = 'H'; - } else { - c = 'A'; - } - -/* If Az,ZD, convert to Cartesian (S=0,E=90). */ - if ( c == 'A' ) { - ce = sin(c2); - xaeo = - cos(c1) * ce; - yaeo = sin(c1) * ce; - zaeo = cos(c2); - - } else { - - /* If RA,Dec, convert to HA,Dec. */ - if ( c == 'R' ) c1 = astrom->eral - c1; - - /* To Cartesian -HA,Dec. */ - iauS2c ( -c1, c2, v ); - xmhdo = v[0]; - ymhdo = v[1]; - zmhdo = v[2]; - - /* To Cartesian Az,El (S=0,E=90). */ - xaeo = sphi*xmhdo - cphi*zmhdo; - yaeo = ymhdo; - zaeo = cphi*xmhdo + sphi*zmhdo; - } - -/* Azimuth (S=0,E=90). */ - az = ( xaeo != 0.0 || yaeo != 0.0 ) ? atan2(yaeo,xaeo) : 0.0; - -/* Sine of observed ZD, and observed ZD. */ - sz = sqrt ( xaeo*xaeo + yaeo*yaeo ); - zdo = atan2 ( sz, zaeo ); - -/* -** Refraction -** ---------- -*/ - -/* Fast algorithm using two constant model. */ - refa = astrom->refa; - refb = astrom->refb; - tz = sz / ( zaeo > SELMIN ? zaeo : SELMIN ); - dref = ( refa + refb*tz*tz ) * tz; - zdt = zdo + dref; - -/* To Cartesian Az,ZD. */ - ce = sin(zdt); - xaet = cos(az) * ce; - yaet = sin(az) * ce; - zaet = cos(zdt); - -/* Cartesian Az,ZD to Cartesian -HA,Dec. */ - xmhda = sphi*xaet + cphi*zaet; - ymhda = yaet; - zmhda = - cphi*xaet + sphi*zaet; - -/* Diurnal aberration. */ - f = ( 1.0 + astrom->diurab*ymhda ); - xhd = f * xmhda; - yhd = f * ( ymhda - astrom->diurab ); - zhd = f * zmhda; - -/* Polar motion. */ - sx = sin(astrom->xpl); - cx = cos(astrom->xpl); - sy = sin(astrom->ypl); - cy = cos(astrom->ypl); - v[0] = cx*xhd + sx*sy*yhd - sx*cy*zhd; - v[1] = cy*yhd + sy*zhd; - v[2] = sx*xhd - cx*sy*yhd + cx*cy*zhd; - -/* To spherical -HA,Dec. */ - iauC2s(v, &hma, di); - -/* Right ascension. */ - *ri = iauAnp(astrom->eral + hma); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/bi00.c b/deps/sofa/20231011/c/src/bi00.c deleted file mode 100644 index fa9f67a..0000000 --- a/deps/sofa/20231011/c/src/bi00.c +++ /dev/null @@ -1,168 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauBi00(double *dpsibi, double *depsbi, double *dra) -/* -** - - - - - - - - -** i a u B i 0 0 -** - - - - - - - - -** -** Frame bias components of IAU 2000 precession-nutation models; part -** of the Mathews-Herring-Buffett (MHB2000) nutation series, with -** additions. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Returned: -** dpsibi,depsbi double longitude and obliquity corrections -** dra double the ICRS RA of the J2000.0 mean equinox -** -** Notes: -** -** 1) The frame bias corrections in longitude and obliquity (radians) -** are required in order to correct for the offset between the GCRS -** pole and the mean J2000.0 pole. They define, with respect to the -** GCRS frame, a J2000.0 mean pole that is consistent with the rest -** of the IAU 2000A precession-nutation model. -** -** 2) In addition to the displacement of the pole, the complete -** description of the frame bias requires also an offset in right -** ascension. This is not part of the IAU 2000A model, and is from -** Chapront et al. (2002). It is returned in radians. -** -** 3) This is a supplemented implementation of one aspect of the IAU -** 2000A nutation model, formally adopted by the IAU General -** Assembly in 2000, namely MHB2000 (Mathews et al. 2002). -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G., Astron. -** Astrophys., 387, 700, 2002. -** -** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation -** and precession: New nutation series for nonrigid Earth and -** insights into the Earth's interior", J.Geophys.Res., 107, B4, -** 2002. The MHB2000 code itself was obtained on 2002 September 9 -** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* The frame bias corrections in longitude and obliquity */ - const double DPBIAS = -0.041775 * DAS2R, - DEBIAS = -0.0068192 * DAS2R; - -/* The ICRS RA of the J2000.0 equinox (Chapront et al., 2002) */ - const double DRA0 = -0.0146 * DAS2R; - - -/* Return the results (which are fixed). */ - *dpsibi = DPBIAS; - *depsbi = DEBIAS; - *dra = DRA0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/bp00.c b/deps/sofa/20231011/c/src/bp00.c deleted file mode 100644 index 5c7b796..0000000 --- a/deps/sofa/20231011/c/src/bp00.c +++ /dev/null @@ -1,223 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauBp00(double date1, double date2, - double rb[3][3], double rp[3][3], double rbp[3][3]) -/* -** - - - - - - - - -** i a u B p 0 0 -** - - - - - - - - -** -** Frame bias and precession, IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rb double[3][3] frame bias matrix (Note 2) -** rp double[3][3] precession matrix (Note 3) -** rbp double[3][3] bias-precession matrix (Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by -** applying frame bias. -** -** 3) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 4) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 5) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the order given. -** -** Called: -** iauBi00 frame bias components, IAU 2000 -** iauPr00 IAU 2000 precession adjustments -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRy rotate around Y-axis -** iauRz rotate around Z-axis -** iauCr copy r-matrix -** iauRxr product of two r-matrices -** -** Reference: -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* J2000.0 obliquity (Lieske et al. 1977) */ - const double EPS0 = 84381.448 * DAS2R; - - double t, dpsibi, depsbi, dra0, psia77, oma77, chia, - dpsipr, depspr, psia, oma, rbw[3][3]; - - -/* Interval between fundamental epoch J2000.0 and current date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Frame bias. */ - iauBi00(&dpsibi, &depsbi, &dra0); - -/* Precession angles (Lieske et al. 1977) */ - psia77 = (5038.7784 + (-1.07259 + (-0.001147) * t) * t) * t * DAS2R; - oma77 = EPS0 + ((0.05127 + (-0.007726) * t) * t) * t * DAS2R; - chia = ( 10.5526 + (-2.38064 + (-0.001125) * t) * t) * t * DAS2R; - -/* Apply IAU 2000 precession corrections. */ - iauPr00(date1, date2, &dpsipr, &depspr); - psia = psia77 + dpsipr; - oma = oma77 + depspr; - -/* Frame bias matrix: GCRS to J2000.0. */ - iauIr(rbw); - iauRz(dra0, rbw); - iauRy(dpsibi*sin(EPS0), rbw); - iauRx(-depsbi, rbw); - iauCr(rbw, rb); - -/* Precession matrix: J2000.0 to mean of date. */ - iauIr(rp); - iauRx(EPS0, rp); - iauRz(-psia, rp); - iauRx(-oma, rp); - iauRz(chia, rp); - -/* Bias-precession matrix: GCRS to mean of date. */ - iauRxr(rp, rbw, rbp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/bp06.c b/deps/sofa/20231011/c/src/bp06.c deleted file mode 100644 index 9e53d95..0000000 --- a/deps/sofa/20231011/c/src/bp06.c +++ /dev/null @@ -1,194 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauBp06(double date1, double date2, - double rb[3][3], double rp[3][3], double rbp[3][3]) -/* -** - - - - - - - - -** i a u B p 0 6 -** - - - - - - - - -** -** Frame bias and precession, IAU 2006. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rb double[3][3] frame bias matrix (Note 2) -** rp double[3][3] precession matrix (Note 3) -** rbp double[3][3] bias-precession matrix (Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by -** applying frame bias. -** -** 3) The matrix rp transforms vectors from mean J2000.0 to mean of -** date by applying precession. -** -** 4) The matrix rbp transforms vectors from GCRS to mean of date by -** applying frame bias then precession. It is the product rp x rb. -** -** 5) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the order given. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix -** iauPmat06 PB matrix, IAU 2006 -** iauTr transpose r-matrix -** iauRxr product of two r-matrices -** iauCr copy r-matrix -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gamb, phib, psib, epsa, rbpw[3][3], rbt[3][3]; - - -/* B matrix. */ - iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &epsa); - iauFw2m(gamb, phib, psib, epsa, rb); - -/* PxB matrix (temporary). */ - iauPmat06(date1, date2, rbpw); - -/* P matrix. */ - iauTr(rb, rbt); - iauRxr(rbpw, rbt, rp); - -/* PxB matrix. */ - iauCr(rbpw, rbp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/bpn2xy.c b/deps/sofa/20231011/c/src/bpn2xy.c deleted file mode 100644 index 81b196c..0000000 --- a/deps/sofa/20231011/c/src/bpn2xy.c +++ /dev/null @@ -1,150 +0,0 @@ -#include "sofa.h" - -void iauBpn2xy(double rbpn[3][3], double *x, double *y) -/* -** - - - - - - - - - - -** i a u B p n 2 x y -** - - - - - - - - - - -** -** Extract from the bias-precession-nutation matrix the X,Y coordinates -** of the Celestial Intermediate Pole. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rbpn double[3][3] celestial-to-true matrix (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** -** Notes: -** -** 1) The matrix rbpn transforms vectors from GCRS to true equator (and -** CIO or equinox) of date, and therefore the Celestial Intermediate -** Pole unit vector is the bottom row of the matrix. -** -** 2) The arguments x,y are components of the Celestial Intermediate -** Pole unit vector in the Geocentric Celestial Reference System. -** -** Reference: -** -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 -** (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Extract the X,Y coordinates. */ - *x = rbpn[2][0]; - *y = rbpn[2][1]; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2i00a.c b/deps/sofa/20231011/c/src/c2i00a.c deleted file mode 100644 index 3ed8de8..0000000 --- a/deps/sofa/20231011/c/src/c2i00a.c +++ /dev/null @@ -1,189 +0,0 @@ -#include "sofa.h" - -void iauC2i00a(double date1, double date2, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i 0 0 a -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date using the -** IAU 2000A precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 3) A faster, but slightly less accurate, result (about 1 mas) can be -** obtained by using instead the iauC2i00b function. -** -** Called: -** iauPnm00a classical NPB matrix, IAU 2000A -** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix -** -** References: -** -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 -** (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3]; - - -/* Obtain the celestial-to-true matrix (IAU 2000A). */ - iauPnm00a(date1, date2, rbpn); - -/* Form the celestial-to-intermediate matrix. */ - iauC2ibpn(date1, date2, rbpn, rc2i); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2i00b.c b/deps/sofa/20231011/c/src/c2i00b.c deleted file mode 100644 index 2489cc8..0000000 --- a/deps/sofa/20231011/c/src/c2i00b.c +++ /dev/null @@ -1,189 +0,0 @@ -#include "sofa.h" - -void iauC2i00b(double date1, double date2, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i 0 0 b -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date using the -** IAU 2000B precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauC2i00a function. -** -** Called: -** iauPnm00b classical NPB matrix, IAU 2000B -** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix -** -** References: -** -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 -** (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3]; - - -/* Obtain the celestial-to-true matrix (IAU 2000B). */ - iauPnm00b(date1, date2, rbpn); - -/* Form the celestial-to-intermediate matrix. */ - iauC2ibpn(date1, date2, rbpn, rc2i); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2i06a.c b/deps/sofa/20231011/c/src/c2i06a.c deleted file mode 100644 index 07d3647..0000000 --- a/deps/sofa/20231011/c/src/c2i06a.c +++ /dev/null @@ -1,186 +0,0 @@ -#include "sofa.h" - -void iauC2i06a(double date1, double date2, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i 0 6 a -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date using the -** IAU 2006 precession and IAU 2000A nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3], x, y, s; - - -/* Obtain the celestial-to-true matrix (IAU 2006/2000A). */ - iauPnm06a(date1, date2, rbpn); - -/* Extract the X,Y coordinates. */ - iauBpn2xy(rbpn, &x, &y); - -/* Obtain the CIO locator. */ - s = iauS06(date1, date2, x, y); - -/* Form the celestial-to-intermediate matrix. */ - iauC2ixys(x, y, s, rc2i); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2ibpn.c b/deps/sofa/20231011/c/src/c2ibpn.c deleted file mode 100644 index ee99cbf..0000000 --- a/deps/sofa/20231011/c/src/c2ibpn.c +++ /dev/null @@ -1,192 +0,0 @@ -#include "sofa.h" - -void iauC2ibpn(double date1, double date2, double rbpn[3][3], - double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i b p n -** - - - - - - - - - - -** -** Form the celestial-to-intermediate matrix for a given date given -** the bias-precession-nutation matrix. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** rbpn double[3][3] celestial-to-true matrix (Note 2) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix rbpn transforms vectors from GCRS to true equator (and -** CIO or equinox) of date. Only the CIP (bottom row) is used. -** -** 3) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 4) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauC2ixy celestial-to-intermediate matrix, given X,Y -** -** References: -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y; - - -/* Extract the X,Y coordinates. */ - iauBpn2xy(rbpn, &x, &y); - -/* Form the celestial-to-intermediate matrix (n.b. IAU 2000 specific). */ - iauC2ixy(date1, date2, x, y, rc2i); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2ixy.c b/deps/sofa/20231011/c/src/c2ixy.c deleted file mode 100644 index 833d8c7..0000000 --- a/deps/sofa/20231011/c/src/c2ixy.c +++ /dev/null @@ -1,181 +0,0 @@ -#include "sofa.h" - -void iauC2ixy(double date1, double date2, double x, double y, - double rc2i[3][3]) -/* -** - - - - - - - - - -** i a u C 2 i x y -** - - - - - - - - - -** -** Form the celestial to intermediate-frame-of-date matrix for a given -** date when the CIP X,Y coordinates are known. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** x,y double Celestial Intermediate Pole (Note 2) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y components -** of the unit vector in the Geocentric Celestial Reference System. -** -** 3) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 4) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauC2ixys celestial-to-intermediate matrix, given X,Y and s -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ - -{ -/* Compute s and then the matrix. */ - iauC2ixys(x, y, iauS00(date1, date2, x, y), rc2i); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2ixys.c b/deps/sofa/20231011/c/src/c2ixys.c deleted file mode 100644 index fdded53..0000000 --- a/deps/sofa/20231011/c/src/c2ixys.c +++ /dev/null @@ -1,173 +0,0 @@ -#include "sofa.h" - -void iauC2ixys(double x, double y, double s, double rc2i[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 i x y s -** - - - - - - - - - - -** -** Form the celestial to intermediate-frame-of-date matrix given the CIP -** X,Y and the CIO locator s. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** x,y double Celestial Intermediate Pole (Note 1) -** s double the CIO locator s (Note 2) -** -** Returned: -** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) -** -** Notes: -** -** 1) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 2) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 3) The matrix rc2i is the first stage in the transformation from -** celestial to terrestrial coordinates: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = RC2T * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r2, e, d; - - -/* Obtain the spherical angles E and d. */ - r2 = x*x + y*y; - e = (r2 > 0.0) ? atan2(y, x) : 0.0; - d = atan(sqrt(r2 / (1.0 - r2))); - -/* Form the matrix. */ - iauIr(rc2i); - iauRz(e, rc2i); - iauRy(d, rc2i); - iauRz(-(e+s), rc2i); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2s.c b/deps/sofa/20231011/c/src/c2s.c deleted file mode 100644 index 6bdccf1..0000000 --- a/deps/sofa/20231011/c/src/c2s.c +++ /dev/null @@ -1,146 +0,0 @@ -#include "sofa.h" - -void iauC2s(double p[3], double *theta, double *phi) -/* -** - - - - - - - -** i a u C 2 s -** - - - - - - - -** -** P-vector to spherical coordinates. -** -** 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: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** -** Notes: -** -** 1) The vector p can have any magnitude; only its direction is used. -** -** 2) If p is null, zero theta and phi are returned. -** -** 3) At either pole, zero theta is returned. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, z, d2; - - - x = p[0]; - y = p[1]; - z = p[2]; - d2 = x*x + y*y; - - *theta = (d2 == 0.0) ? 0.0 : atan2(y, x); - *phi = (z == 0.0) ? 0.0 : atan2(z, sqrt(d2)); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2t00a.c b/deps/sofa/20231011/c/src/c2t00a.c deleted file mode 100644 index 6efe4e6..0000000 --- a/deps/sofa/20231011/c/src/c2t00a.c +++ /dev/null @@ -1,204 +0,0 @@ -#include "sofa.h" - -void iauC2t00a(double tta, double ttb, double uta, double utb, - double xp, double yp, double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t 0 0 a -** - - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1 and -** the polar motion, using the IAU 2000A precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** xp,yp double CIP coordinates (radians, Note 2) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 3) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RC2I is the -** celestial-to-intermediate matrix, ERA is the Earth rotation -** angle and RPOM is the polar motion matrix. -** -** 4) A faster, but slightly less accurate, result (about 1 mas) can -** be obtained by using instead the iauC2t00b function. -** -** Called: -** iauC2i00a celestial-to-intermediate matrix, IAU 2000A -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rc2i[3][3], era, sp, rpom[3][3]; - - -/* Form the celestial-to-intermediate matrix for this TT (IAU 2000A). */ - iauC2i00a(tta, ttb, rc2i ); - -/* Predict the Earth rotation angle for this UT1. */ - era = iauEra00(uta, utb); - -/* Estimate s'. */ - sp = iauSp00(tta, ttb); - -/* Form the polar motion matrix. */ - iauPom00(xp, yp, sp, rpom); - -/* Combine to form the celestial-to-terrestrial matrix. */ - iauC2tcio(rc2i, era, rpom, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2t00b.c b/deps/sofa/20231011/c/src/c2t00b.c deleted file mode 100644 index 5233976..0000000 --- a/deps/sofa/20231011/c/src/c2t00b.c +++ /dev/null @@ -1,200 +0,0 @@ -#include "sofa.h" - -void iauC2t00b(double tta, double ttb, double uta, double utb, - double xp, double yp, double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t 0 0 b -** - - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1 and -** the polar motion, using the IAU 2000B precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** xp,yp double coordinates of the pole (radians, Note 2) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 3) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RC2I is the -** celestial-to-intermediate matrix, ERA is the Earth rotation -** angle and RPOM is the polar motion matrix. -** -** 4) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauC2t00a function. -** -** Called: -** iauC2i00b celestial-to-intermediate matrix, IAU 2000B -** iauEra00 Earth rotation angle, IAU 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rc2i[3][3], era, rpom[3][3]; - - -/* Form the celestial-to-intermediate matrix for this TT (IAU 2000B). */ - iauC2i00b(tta, ttb, rc2i); - -/* Predict the Earth rotation angle for this UT1. */ - era = iauEra00(uta, utb); - -/* Form the polar motion matrix (neglecting s'). */ - iauPom00(xp, yp, 0.0, rpom); - -/* Combine to form the celestial-to-terrestrial matrix. */ - iauC2tcio(rc2i, era, rpom, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2t06a.c b/deps/sofa/20231011/c/src/c2t06a.c deleted file mode 100644 index 31b98ea..0000000 --- a/deps/sofa/20231011/c/src/c2t06a.c +++ /dev/null @@ -1,202 +0,0 @@ -#include "sofa.h" - -void iauC2t06a(double tta, double ttb, double uta, double utb, - double xp, double yp, double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t 0 6 a -** - - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1 and -** the polar motion, using the IAU 2006/2000A precession-nutation -** model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** xp,yp double coordinates of the pole (radians, Note 2) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the two arguments. For -** example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 3) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RC2I is the -** celestial-to-intermediate matrix, ERA is the Earth rotation -** angle and RPOM is the polar motion matrix. -** -** Called: -** iauC2i06a celestial-to-intermediate matrix, IAU 2006/2000A -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** This revision: 2023 January 18 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rc2i[3][3], era, sp, rpom[3][3]; - - -/* Form the celestial-to-intermediate matrix for this TT. */ - iauC2i06a(tta, ttb, rc2i); - -/* Predict the Earth rotation angle for this UT1. */ - era = iauEra00(uta, utb); - -/* Estimate s'. */ - sp = iauSp00(tta, ttb); - -/* Form the polar motion matrix. */ - iauPom00(xp, yp, sp, rpom); - -/* Combine to form the celestial-to-terrestrial matrix. */ - iauC2tcio(rc2i, era, rpom, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2tcio.c b/deps/sofa/20231011/c/src/c2tcio.c deleted file mode 100644 index 542d821..0000000 --- a/deps/sofa/20231011/c/src/c2tcio.c +++ /dev/null @@ -1,172 +0,0 @@ -#include "sofa.h" - -void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], - double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t c i o -** - - - - - - - - - - -** -** Assemble the celestial to terrestrial matrix from CIO-based -** components (the celestial-to-intermediate matrix, the Earth Rotation -** Angle and the polar motion matrix). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc2i double[3][3] celestial-to-intermediate matrix -** era double Earth rotation angle (radians) -** rpom double[3][3] polar-motion matrix -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix -** -** Notes: -** -** 1) This function constructs the rotation matrix that transforms -** vectors in the celestial system into vectors in the terrestrial -** system. It does so starting from precomputed components, namely -** the matrix which rotates from celestial coordinates to the -** intermediate frame, the Earth rotation angle and the polar motion -** matrix. One use of the present function is when generating a -** series of celestial-to-terrestrial matrices where only the Earth -** Rotation Angle changes, avoiding the considerable overhead of -** recomputing the precession-nutation more often than necessary to -** achieve given accuracy objectives. -** -** 2) The relationship between the arguments is as follows: -** -** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003). -** -** Called: -** iauCr copy r-matrix -** iauRz rotate around Z-axis -** iauRxr product of two r-matrices -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3]; - - -/* Construct the matrix. */ - iauCr(rc2i, r); - iauRz(era, r); - iauRxr(rpom, r, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2teqx.c b/deps/sofa/20231011/c/src/c2teqx.c deleted file mode 100644 index 35c6c51..0000000 --- a/deps/sofa/20231011/c/src/c2teqx.c +++ /dev/null @@ -1,172 +0,0 @@ -#include "sofa.h" - -void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], - double rc2t[3][3]) -/* -** - - - - - - - - - - -** i a u C 2 t e q x -** - - - - - - - - - - -** -** Assemble the celestial to terrestrial matrix from equinox-based -** components (the celestial-to-true matrix, the Greenwich Apparent -** Sidereal Time and the polar motion matrix). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rbpn double[3][3] celestial-to-true matrix -** gst double Greenwich (apparent) Sidereal Time (radians) -** rpom double[3][3] polar-motion matrix -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 2) -** -** Notes: -** -** 1) This function constructs the rotation matrix that transforms -** vectors in the celestial system into vectors in the terrestrial -** system. It does so starting from precomputed components, namely -** the matrix which rotates from celestial coordinates to the -** true equator and equinox of date, the Greenwich Apparent Sidereal -** Time and the polar motion matrix. One use of the present function -** is when generating a series of celestial-to-terrestrial matrices -** where only the Sidereal Time changes, avoiding the considerable -** overhead of recomputing the precession-nutation more often than -** necessary to achieve given accuracy objectives. -** -** 2) The relationship between the arguments is as follows: -** -** [TRS] = rpom * R_3(gst) * rbpn * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003). -** -** Called: -** iauCr copy r-matrix -** iauRz rotate around Z-axis -** iauRxr product of two r-matrices -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3]; - - -/* Construct the matrix. */ - iauCr(rbpn, r); - iauRz(gst, r); - iauRxr(rpom, r, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2tpe.c b/deps/sofa/20231011/c/src/c2tpe.c deleted file mode 100644 index bcc1e1b..0000000 --- a/deps/sofa/20231011/c/src/c2tpe.c +++ /dev/null @@ -1,217 +0,0 @@ -#include "sofa.h" - -void iauC2tpe(double tta, double ttb, double uta, double utb, - double dpsi, double deps, double xp, double yp, - double rc2t[3][3]) -/* -** - - - - - - - - - -** i a u C 2 t p e -** - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1, -** the nutation and the polar motion. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** dpsi,deps double nutation (Note 2) -** xp,yp double coordinates of the pole (radians, Note 3) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any of -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. For high-accuracy -** applications, free core nutation should be included as well as -** any other relevant corrections to the position of the CIP. -** -** 3) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 4) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(GST) * RBPN * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), RBPN is the -** bias-precession-nutation matrix, GST is the Greenwich (apparent) -** Sidereal Time and RPOM is the polar motion matrix. -** -** 5) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauPn00 bias/precession/nutation results, IAU 2000 -** iauGmst00 Greenwich mean sidereal time, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauEe00 equation of the equinoxes, IAU 2000 -** iauPom00 polar motion matrix -** iauC2teqx form equinox-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3], - rbpn[3][3], gmst, ee, sp, rpom[3][3]; - - -/* Form the celestial-to-true matrix for this TT. */ - iauPn00(tta, ttb, dpsi, deps, &epsa, rb, rp, rbp, rn, rbpn); - -/* Predict the Greenwich Mean Sidereal Time for this UT1 and TT. */ - gmst = iauGmst00(uta, utb, tta, ttb); - -/* Predict the equation of the equinoxes given TT and nutation. */ - ee = iauEe00(tta, ttb, epsa, dpsi); - -/* Estimate s'. */ - sp = iauSp00(tta, ttb); - -/* Form the polar motion matrix. */ - iauPom00(xp, yp, sp, rpom); - -/* Combine to form the celestial-to-terrestrial matrix. */ - iauC2teqx(rbpn, gmst + ee, rpom, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/c2txy.c b/deps/sofa/20231011/c/src/c2txy.c deleted file mode 100644 index 51c2a09..0000000 --- a/deps/sofa/20231011/c/src/c2txy.c +++ /dev/null @@ -1,209 +0,0 @@ -#include "sofa.h" - -void iauC2txy(double tta, double ttb, double uta, double utb, - double x, double y, double xp, double yp, - double rc2t[3][3]) -/* -** - - - - - - - - - -** i a u C 2 t x y -** - - - - - - - - - -** -** Form the celestial to terrestrial matrix given the date, the UT1, -** the CIP coordinates and the polar motion. IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** tta,ttb double TT as a 2-part Julian Date (Note 1) -** uta,utb double UT1 as a 2-part Julian Date (Note 1) -** x,y double Celestial Intermediate Pole (Note 2) -** xp,yp double coordinates of the pole (radians, Note 3) -** -** Returned: -** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) -** -** Notes: -** -** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, -** apportioned in any convenient way between the arguments uta and -** utb. For example, JD(UT1)=2450123.7 could be expressed in any o -** these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. In the case of uta,utb, the -** date & time method is best matched to the Earth rotation angle -** algorithm used: maximum precision is delivered when the uta -** argument is for 0hrs UT1 on the day in question and the utb -** argument lies in the range 0 to 1, or vice versa. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 3) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 4) The matrix rc2t transforms from celestial to terrestrial -** coordinates: -** -** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] -** -** = rc2t * [CRS] -** -** where [CRS] is a vector in the Geocentric Celestial Reference -** System and [TRS] is a vector in the International Terrestrial -** Reference System (see IERS Conventions 2003), ERA is the Earth -** Rotation Angle and RPOM is the polar motion matrix. -** -** 5) Although its name does not include "00", This function is in fact -** specific to the IAU 2000 models. -** -** Called: -** iauC2ixy celestial-to-intermediate matrix, given X,Y -** iauEra00 Earth rotation angle, IAU 2000 -** iauSp00 the TIO locator s', IERS 2000 -** iauPom00 polar motion matrix -** iauC2tcio form CIO-based celestial-to-terrestrial matrix -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rc2i[3][3], era, sp, rpom[3][3]; - - -/* Form the celestial-to-intermediate matrix for this TT. */ - iauC2ixy(tta, ttb, x, y, rc2i); - -/* Predict the Earth rotation angle for this UT1. */ - era = iauEra00(uta, utb); - -/* Estimate s'. */ - sp = iauSp00(tta, ttb); - -/* Form the polar motion matrix. */ - iauPom00(xp, yp, sp, rpom); - -/* Combine to form the celestial-to-terrestrial matrix. */ - iauC2tcio(rc2i, era, rpom, rc2t); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/cal2jd.c b/deps/sofa/20231011/c/src/cal2jd.c deleted file mode 100644 index a041180..0000000 --- a/deps/sofa/20231011/c/src/cal2jd.c +++ /dev/null @@ -1,192 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) -/* -** - - - - - - - - - - -** i a u C a l 2 j d -** - - - - - - - - - - -** -** Gregorian Calendar to Julian Date. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** iy,im,id int year, month, day in Gregorian calendar (Note 1) -** -** Returned: -** djm0 double MJD zero-point: always 2400000.5 -** djm double Modified Julian Date for 0 hrs -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = bad year (Note 3: JD not computed) -** -2 = bad month (JD not computed) -** -3 = bad day (JD computed) -** -** Notes: -** -** 1) The algorithm used is valid from -4800 March 1, but this -** implementation rejects dates before -4799 January 1. -** -** 2) The Julian Date is returned in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding djm0 and -** djm. -** -** 3) In early eras the conversion is from the "Proleptic Gregorian -** Calendar"; no account is taken of the date(s) of adoption of -** the Gregorian Calendar, nor is the AD/BC numbering convention -** observed. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 12.92 (p604). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j, ly, my; - long iypmy; - -/* Earliest year allowed (4800BC) */ - const int IYMIN = -4799; - -/* Month lengths in days */ - static const int mtab[] - = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - - -/* Preset status. */ - j = 0; - -/* Validate year and month. */ - if (iy < IYMIN) return -1; - if (im < 1 || im > 12) return -2; - -/* If February in a leap year, 1, otherwise 0. */ - ly = ((im == 2) && !(iy%4) && (iy%100 || !(iy%400))); - -/* Validate day, taking into account leap years. */ - if ( (id < 1) || (id > (mtab[im-1] + ly))) j = -3; - -/* Return result. */ - my = (im - 14) / 12; - iypmy = (long) (iy + my); - *djm0 = DJM0; - *djm = (double)((1461L * (iypmy + 4800L)) / 4L - + (367L * (long) (im - 2 - 12 * my)) / 12L - - (3L * ((iypmy + 4900L) / 100L)) / 4L - + (long) id - 2432076L); - -/* Return status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/cp.c b/deps/sofa/20231011/c/src/cp.c deleted file mode 100644 index 7a525dd..0000000 --- a/deps/sofa/20231011/c/src/cp.c +++ /dev/null @@ -1,130 +0,0 @@ -#include "sofa.h" - -void iauCp(double p[3], double c[3]) -/* -** - - - - - - -** i a u C p -** - - - - - - -** -** Copy a p-vector. -** -** 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 to be copied -** -** Returned: -** c double[3] copy -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - c[0] = p[0]; - c[1] = p[1]; - c[2] = p[2]; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/cpv.c b/deps/sofa/20231011/c/src/cpv.c deleted file mode 100644 index 9d5ee71..0000000 --- a/deps/sofa/20231011/c/src/cpv.c +++ /dev/null @@ -1,132 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauCp(pv[0], c[0]); - iauCp(pv[1], c[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/cr.c b/deps/sofa/20231011/c/src/cr.c deleted file mode 100644 index 87c4ee1..0000000 --- a/deps/sofa/20231011/c/src/cr.c +++ /dev/null @@ -1,133 +0,0 @@ -#include "sofa.h" - -void iauCr(double r[3][3], double c[3][3]) -/* -** - - - - - - -** i a u C r -** - - - - - - -** -** Copy 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 to be copied -** -** Returned: -** c double[3][3] copy -** -** Called: -** iauCp copy p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauCp(r[0], c[0]); - iauCp(r[1], c[1]); - iauCp(r[2], c[2]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/d2dtf.c b/deps/sofa/20231011/c/src/d2dtf.c deleted file mode 100644 index 1bc6dcd..0000000 --- a/deps/sofa/20231011/c/src/d2dtf.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "sofa.h" -#include "sofam.h" -#include - -int iauD2dtf(const char *scale, int ndp, double d1, double d2, - int *iy, int *im, int *id, int ihmsf[4]) -/* -** - - - - - - - - - -** i a u D 2 d t f -** - - - - - - - - - -** -** Format for output a 2-part Julian Date (or in the case of UTC a -** quasi-JD form that includes special provision for leap seconds). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** scale char[] time scale ID (Note 1) -** ndp int resolution (Note 2) -** d1,d2 double time as a 2-part Julian Date (Notes 3,4) -** -** Returned: -** iy,im,id int year, month, day in Gregorian calendar (Note 5) -** ihmsf int[4] hours, minutes, seconds, fraction (Note 1) -** -** Returned (function value): -** int status: +1 = dubious year (Note 5) -** 0 = OK -** -1 = unacceptable date (Note 6) -** -** Notes: -** -** 1) scale identifies the time scale. Only the value "UTC" (in upper -** case) is significant, and enables handling of leap seconds (see -** Note 4). -** -** 2) ndp is the number of decimal places in the seconds field, and can -** have negative as well as positive values, such as: -** -** ndp resolution -** -4 1 00 00 -** -3 0 10 00 -** -2 0 01 00 -** -1 0 00 10 -** 0 0 00 01 -** 1 0 00 00.1 -** 2 0 00 00.01 -** 3 0 00 00.001 -** -** The limits are platform dependent, but a safe range is -5 to +9. -** -** 3) d1+d2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where d1 is the Julian Day Number -** and d2 is the fraction of a day. In the case of UTC, where the -** use of JD is problematical, special conventions apply: see the -** next note. -** -** 4) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The SOFA internal convention is that -** the quasi-JD day represents UTC days whether the length is 86399, -** 86400 or 86401 SI seconds. In the 1960-1972 era there were -** smaller jumps (in either direction) each time the linear UTC(TAI) -** expression was changed, and these "mini-leaps" are also included -** in the SOFA convention. -** -** 5) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 6) For calendar conventions and limitations, see iauCal2jd. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauD2tf decompose days to hms -** iauDat delta(AT) = TAI-UTC -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int leap; - char s; - int iy1, im1, id1, js, iy2, im2, id2, ihmsf1[4], i; - double a1, b1, fd, dat0, dat12, w, dat24, dleap; - - -/* The two-part JD. */ - a1 = d1; - b1 = d2; - -/* Provisional calendar date. */ - js = iauJd2cal(a1, b1, &iy1, &im1, &id1, &fd); - if ( js ) return -1; - -/* Is this a leap second day? */ - leap = 0; - if ( ! strcmp(scale,"UTC") ) { - - /* TAI-UTC at 0h today. */ - js = iauDat(iy1, im1, id1, 0.0, &dat0); - if ( js < 0 ) return -1; - - /* TAI-UTC at 12h today (to detect drift). */ - js = iauDat(iy1, im1, id1, 0.5, &dat12); - if ( js < 0 ) return -1; - - /* TAI-UTC at 0h tomorrow (to detect jumps). */ - js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w); - if ( js ) return -1; - js = iauDat(iy2, im2, id2, 0.0, &dat24); - if ( js < 0 ) return -1; - - /* Any sudden change in TAI-UTC (seconds). */ - dleap = dat24 - (2.0*dat12 - dat0); - - /* If leap second day, scale the fraction of a day into SI. */ - leap = (fabs(dleap) > 0.5); - if (leap) fd += fd * dleap/DAYSEC; - } - -/* Provisional time of day. */ - iauD2tf ( ndp, fd, &s, ihmsf1 ); - -/* Has the (rounded) time gone past 24h? */ - if ( ihmsf1[0] > 23 ) { - - /* Yes. We probably need tomorrow's calendar date. */ - js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w); - if ( js ) return -1; - - /* Is today a leap second day? */ - if ( ! leap ) { - - /* No. Use 0h tomorrow. */ - iy1 = iy2; - im1 = im2; - id1 = id2; - ihmsf1[0] = 0; - ihmsf1[1] = 0; - ihmsf1[2] = 0; - - } else { - - /* Yes. Are we past the leap second itself? */ - if ( ihmsf1[2] > 0 ) { - - /* Yes. Use tomorrow but allow for the leap second. */ - iy1 = iy2; - im1 = im2; - id1 = id2; - ihmsf1[0] = 0; - ihmsf1[1] = 0; - ihmsf1[2] = 0; - - } else { - - /* No. Use 23 59 60... today. */ - ihmsf1[0] = 23; - ihmsf1[1] = 59; - ihmsf1[2] = 60; - } - - /* If rounding to 10s or coarser always go up to new day. */ - if ( ndp < 0 && ihmsf1[2] == 60 ) { - iy1 = iy2; - im1 = im2; - id1 = id2; - ihmsf1[0] = 0; - ihmsf1[1] = 0; - ihmsf1[2] = 0; - } - } - } - -/* Results. */ - *iy = iy1; - *im = im1; - *id = id1; - for ( i = 0; i < 4; i++ ) { - ihmsf[i] = ihmsf1[i]; - } - -/* Status. */ - return js; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/d2tf.c b/deps/sofa/20231011/c/src/d2tf.c deleted file mode 100644 index 673f222..0000000 --- a/deps/sofa/20231011/c/src/d2tf.c +++ /dev/null @@ -1,211 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]) -/* -** - - - - - - - - -** i a u D 2 t f -** - - - - - - - - -** -** Decompose days to hours, minutes, seconds, fraction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** ndp int resolution (Note 1) -** days double interval in days -** -** Returned: -** sign char* '+' or '-' -** ihmsf int[4] hours, minutes, seconds, fraction -** -** Notes: -** -** 1) The argument ndp is interpreted as follows: -** -** ndp resolution -** : ...0000 00 00 -** -7 1000 00 00 -** -6 100 00 00 -** -5 10 00 00 -** -4 1 00 00 -** -3 0 10 00 -** -2 0 01 00 -** -1 0 00 10 -** 0 0 00 01 -** 1 0 00 00.1 -** 2 0 00 00.01 -** 3 0 00 00.001 -** : 0 00 00.000... -** -** 2) The largest positive useful value for ndp is determined by the -** size of days, the format of double on the target platform, and -** the risk of overflowing ihmsf[3]. On a typical platform, for -** days up to 1.0, the available floating-point precision might -** correspond to ndp=12. However, the practical limit is typically -** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is -** only 16 bits. -** -** 3) The absolute value of days may exceed 1.0. In cases where it -** does not, it is up to the caller to test for and handle the -** case where days is very nearly 1.0 and rounds up to 24 hours, -** by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int nrs, n; - double rs, rm, rh, a, w, ah, am, as, af; - - -/* Handle sign. */ - *sign = (char) ( ( days >= 0.0 ) ? '+' : '-' ); - -/* Interval in seconds. */ - a = DAYSEC * fabs(days); - -/* Pre-round if resolution coarser than 1s (then pretend ndp=1). */ - if (ndp < 0) { - nrs = 1; - for (n = 1; n <= -ndp; n++) { - nrs *= (n == 2 || n == 4) ? 6 : 10; - } - rs = (double) nrs; - w = a / rs; - a = rs * dnint(w); - } - -/* Express the unit of each field in resolution units. */ - nrs = 1; - for (n = 1; n <= ndp; n++) { - nrs *= 10; - } - rs = (double) nrs; - rm = rs * 60.0; - rh = rm * 60.0; - -/* Round the interval and express in resolution units. */ - a = dnint(rs * a); - -/* Break into fields. */ - ah = a / rh; - ah = dint(ah); - a -= ah * rh; - am = a / rm; - am = dint(am); - a -= am * rm; - as = a / rs; - as = dint(as); - af = a - as * rs; - -/* Return results. */ - ihmsf[0] = (int) ah; - ihmsf[1] = (int) am; - ihmsf[2] = (int) as; - ihmsf[3] = (int) af; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/dat.c b/deps/sofa/20231011/c/src/dat.c deleted file mode 100644 index 6934410..0000000 --- a/deps/sofa/20231011/c/src/dat.c +++ /dev/null @@ -1,353 +0,0 @@ -#include "sofa.h" - -int iauDat(int iy, int im, int id, double fd, double *deltat) -/* -** - - - - - - - -** i a u D a t -** - - - - - - - -** -** For a given UTC date, calculate Delta(AT) = TAI-UTC. -** -** :------------------------------------------: -** : : -** : IMPORTANT : -** : : -** : A new version of this function must be : -** : produced whenever a new leap second is : -** : announced. There are four items to : -** : change on each such occasion: : -** : : -** : 1) A new line must be added to the set : -** : of statements that initialize the : -** : array "changes". : -** : : -** : 2) The constant IYV must be set to the : -** : current year. : -** : : -** : 3) The "Latest leap second" comment : -** : below must be set to the new leap : -** : second date. : -** : : -** : 4) The "This revision" comment, later, : -** : must be set to the current date. : -** : : -** : Change (2) must also be carried out : -** : whenever the function is re-issued, : -** : even if no leap seconds have been : -** : added. : -** : : -** : Latest leap second: 2016 December 31 : -** : : -** :__________________________________________: -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: user-replaceable support function. -** -** Given: -** iy int UTC: year (Notes 1 and 2) -** im int month (Note 2) -** id int day (Notes 2 and 3) -** fd double fraction of day (Note 4) -** -** Returned: -** deltat double TAI minus UTC, seconds -** -** Returned (function value): -** int status (Note 5): -** 1 = dubious year (Note 1) -** 0 = OK -** -1 = bad year -** -2 = bad month -** -3 = bad day (Note 3) -** -4 = bad fraction (Note 4) -** -5 = internal error (Note 5) -** -** Notes: -** -** 1) UTC began at 1960 January 1.0 (JD 2436934.5) and it is improper -** to call the function with an earlier date. If this is attempted, -** zero is returned together with a warning status. -** -** Because leap seconds cannot, in principle, be predicted in -** advance, a reliable check for dates beyond the valid range is -** impossible. To guard against gross errors, a year five or more -** after the release year of the present function (see the constant -** IYV) is considered dubious. In this case a warning status is -** returned but the result is computed in the normal way. -** -** For both too-early and too-late years, the warning status is +1. -** This is distinct from the error status -1, which signifies a year -** so early that JD could not be computed. -** -** 2) If the specified date is for a day which ends with a leap second, -** the TAI-UTC value returned is for the period leading up to the -** leap second. If the date is for a day which begins as a leap -** second ends, the TAI-UTC returned is for the period following the -** leap second. -** -** 3) The day number must be in the normal calendar range, for example -** 1 through 30 for April. The "almanac" convention of allowing -** such dates as January 0 and December 32 is not supported in this -** function, in order to avoid confusion near leap seconds. -** -** 4) The fraction of day is used only for dates before the -** introduction of leap seconds, the first of which occurred at the -** end of 1971. It is tested for validity (0 to 1 is the valid -** range) even if not used; if invalid, zero is used and status -4 -** is returned. For many applications, setting fd to zero is -** acceptable; the resulting error is always less than 3 ms (and -** occurs only pre-1972). -** -** 5) The status value returned in the case where there are multiple -** errors refers to the first error detected. For example, if the -** month and day are 13 and 32 respectively, status -2 (bad month) -** will be returned. The "internal error" status refers to a -** case that is impossible but causes some compilers to issue a -** warning. -** -** 6) In cases where a valid result is not available, zero is returned. -** -** References: -** -** 1) For dates from 1961 January 1 onwards, the expressions from the -** file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used. -** -** 2) The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of -** the 1992 Explanatory Supplement. -** -** Called: -** iauCal2jd Gregorian calendar to JD -** -** This revision: 2023 January 17 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Release year for this version of iauDat */ - enum { IYV = 2023}; - -/* Reference dates (MJD) and drift rates (s/day), pre leap seconds */ - static const double drift[][2] = { - { 37300.0, 0.0012960 }, - { 37300.0, 0.0012960 }, - { 37300.0, 0.0012960 }, - { 37665.0, 0.0011232 }, - { 37665.0, 0.0011232 }, - { 38761.0, 0.0012960 }, - { 38761.0, 0.0012960 }, - { 38761.0, 0.0012960 }, - { 38761.0, 0.0012960 }, - { 38761.0, 0.0012960 }, - { 38761.0, 0.0012960 }, - { 38761.0, 0.0012960 }, - { 39126.0, 0.0025920 }, - { 39126.0, 0.0025920 } - }; - -/* Number of Delta(AT) expressions before leap seconds were introduced */ - enum { NERA1 = (int) (sizeof drift / sizeof (double) / 2) }; - -/* Dates and Delta(AT)s */ - static const struct { - int iyear, month; - double delat; - } changes[] = { - { 1960, 1, 1.4178180 }, - { 1961, 1, 1.4228180 }, - { 1961, 8, 1.3728180 }, - { 1962, 1, 1.8458580 }, - { 1963, 11, 1.9458580 }, - { 1964, 1, 3.2401300 }, - { 1964, 4, 3.3401300 }, - { 1964, 9, 3.4401300 }, - { 1965, 1, 3.5401300 }, - { 1965, 3, 3.6401300 }, - { 1965, 7, 3.7401300 }, - { 1965, 9, 3.8401300 }, - { 1966, 1, 4.3131700 }, - { 1968, 2, 4.2131700 }, - { 1972, 1, 10.0 }, - { 1972, 7, 11.0 }, - { 1973, 1, 12.0 }, - { 1974, 1, 13.0 }, - { 1975, 1, 14.0 }, - { 1976, 1, 15.0 }, - { 1977, 1, 16.0 }, - { 1978, 1, 17.0 }, - { 1979, 1, 18.0 }, - { 1980, 1, 19.0 }, - { 1981, 7, 20.0 }, - { 1982, 7, 21.0 }, - { 1983, 7, 22.0 }, - { 1985, 7, 23.0 }, - { 1988, 1, 24.0 }, - { 1990, 1, 25.0 }, - { 1991, 1, 26.0 }, - { 1992, 7, 27.0 }, - { 1993, 7, 28.0 }, - { 1994, 7, 29.0 }, - { 1996, 1, 30.0 }, - { 1997, 7, 31.0 }, - { 1999, 1, 32.0 }, - { 2006, 1, 33.0 }, - { 2009, 1, 34.0 }, - { 2012, 7, 35.0 }, - { 2015, 7, 36.0 }, - { 2017, 1, 37.0 } - }; - -/* Number of Delta(AT) changes */ - enum { NDAT = (int) (sizeof changes / sizeof changes[0]) }; - -/* Miscellaneous local variables */ - int j, i, m; - double da, djm0, djm; - - -/* Initialize the result to zero. */ - *deltat = da = 0.0; - -/* If invalid fraction of a day, set error status and give up. */ - if (fd < 0.0 || fd > 1.0) return -4; - -/* Convert the date into an MJD. */ - j = iauCal2jd(iy, im, id, &djm0, &djm); - -/* If invalid year, month, or day, give up. */ - if (j < 0) return j; - -/* If pre-UTC year, set warning status and give up. */ - if (iy < changes[0].iyear) return 1; - -/* If suspiciously late year, set warning status but proceed. */ - if (iy > IYV + 5) j = 1; - -/* Combine year and month to form a date-ordered integer... */ - m = 12*iy + im; - -/* ...and use it to find the preceding table entry. */ - for (i = NDAT-1; i >=0; i--) { - if (m >= (12 * changes[i].iyear + changes[i].month)) break; - } - -/* Prevent underflow warnings. */ - if (i < 0) return -5; - -/* Get the Delta(AT). */ - da = changes[i].delat; - -/* If pre-1972, adjust for drift. */ - if (i < NERA1) da += (djm + fd - drift[i][0]) * drift[i][1]; - -/* Return the Delta(AT) value. */ - *deltat = da; - -/* Return the status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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) UNLIKE OTHER SOFA SOFTWARE, WHICH IS STRICTLY "READ ONLY", -** USERS ARE PERMITTED TO REPLACE THIS FUNCTION WITH ONE USING -** THE SAME NAME BUT DIFFERENT CODE. This is to allow use of -** locally supported mechanisms for keeping track of leap -** seconds, perhaps file or network based. It avoids the need -** for applications to be relinked periodically in order to pick -** up SOFA updates. -** -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/dtdb.c b/deps/sofa/20231011/c/src/dtdb.c deleted file mode 100644 index 07ce7ff..0000000 --- a/deps/sofa/20231011/c/src/dtdb.c +++ /dev/null @@ -1,1266 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauDtdb(double date1, double date2, - double ut, double elong, double u, double v) -/* -** - - - - - - - - -** i a u D t d b -** - - - - - - - - -** -** An approximation to TDB-TT, the difference between barycentric -** dynamical time and terrestrial time, for an observer on the Earth. -** -** The different time scales - proper, coordinate and realized - are -** related to each other: -** -** TAI <- physically realized -** : -** offset <- observed (nominally +32.184s) -** : -** TT <- terrestrial time -** : -** rate adjustment (L_G) <- definition of TT -** : -** TCG <- time scale for GCRS -** : -** "periodic" terms <- iauDtdb is an implementation -** : -** rate adjustment (L_C) <- function of solar-system ephemeris -** : -** TCB <- time scale for BCRS -** : -** rate adjustment (-L_B) <- definition of TDB -** : -** TDB <- TCB scaled to track TT -** : -** "periodic" terms <- -iauDtdb is an approximation -** : -** TT <- terrestrial time -** -** Adopted values for the various constants can be found in the IERS -** Conventions (McCarthy & Petit 2003). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double date, TDB (Notes 1-3) -** ut double universal time (UT1, fraction of one day) -** elong double longitude (east positive, radians) -** u double distance from Earth spin axis (km) -** v double distance north of equatorial plane (km) -** -** Returned (function value): -** double TDB-TT (seconds) -** -** Notes: -** -** 1) The date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** Although the date is, formally, barycentric dynamical time (TDB), -** the terrestrial dynamical time (TT) can be used with no practical -** effect on the accuracy of the prediction. -** -** 2) TT can be regarded as a coordinate time that is realized as an -** offset of 32.184s from International Atomic Time, TAI. TT is a -** specific linear transformation of geocentric coordinate time TCG, -** which is the time scale for the Geocentric Celestial Reference -** System, GCRS. -** -** 3) TDB is a coordinate time, and is a specific linear transformation -** of barycentric coordinate time TCB, which is the time scale for -** the Barycentric Celestial Reference System, BCRS. -** -** 4) The difference TCG-TCB depends on the masses and positions of the -** bodies of the solar system and the velocity of the Earth. It is -** dominated by a rate difference, the residual being of a periodic -** character. The latter, which is modeled by the present function, -** comprises a main (annual) sinusoidal term of amplitude -** approximately 0.00166 seconds, plus planetary terms up to about -** 20 microseconds, and lunar and diurnal terms up to 2 microseconds. -** These effects come from the changing transverse Doppler effect -** and gravitational red-shift as the observer (on the Earth's -** surface) experiences variations in speed (with respect to the -** BCRS) and gravitational potential. -** -** 5) TDB can be regarded as the same as TCB but with a rate adjustment -** to keep it close to TT, which is convenient for many applications. -** The history of successive attempts to define TDB is set out in -** Resolution 3 adopted by the IAU General Assembly in 2006, which -** defines a fixed TDB(TCB) transformation that is consistent with -** contemporary solar-system ephemerides. Future ephemerides will -** imply slightly changed transformations between TCG and TCB, which -** could introduce a linear drift between TDB and TT; however, any -** such drift is unlikely to exceed 1 nanosecond per century. -** -** 6) The geocentric TDB-TT model used in the present function is that of -** Fairhead & Bretagnon (1990), in its full form. It was originally -** supplied by Fairhead (private communications with P.T.Wallace, -** 1990) as a Fortran subroutine. The present C function contains an -** adaptation of the Fairhead code. The numerical results are -** essentially unaffected by the changes, the differences with -** respect to the Fairhead & Bretagnon original being at the 1e-20 s -** level. -** -** The topocentric part of the model is from Moyer (1981) and -** Murray (1983), with fundamental arguments adapted from -** Simon et al. 1994. It is an approximation to the expression -** ( v / c ) . ( r / c ), where v is the barycentric velocity of -** the Earth, r is the geocentric position of the observer and -** c is the speed of light. -** -** By supplying zeroes for u and v, the topocentric part of the -** model can be nullified, and the function will return the Fairhead -** & Bretagnon result alone. -** -** 7) During the interval 1950-2050, the absolute accuracy is better -** than +/- 3 nanoseconds relative to time ephemerides obtained by -** direct numerical integrations based on the JPL DE405 solar system -** ephemeris. -** -** 8) It must be stressed that the present function is merely a model, -** and that numerical integration of solar-system ephemerides is the -** definitive method for predicting the relationship between TCG and -** TCB and hence between TT and TDB. -** -** References: -** -** Fairhead, L., & Bretagnon, P., Astron.Astrophys., 229, 240-247 -** (1990). -** -** IAU 2006 Resolution 3. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Moyer, T.D., Cel.Mech., 23, 33 (1981). -** -** Murray, C.A., Vectorial Astrometry, Adam Hilger (1983). -** -** Seidelmann, P.K. et al., Explanatory Supplement to the -** Astronomical Almanac, Chapter 2, University Science Books (1992). -** -** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G. & Laskar, J., Astron.Astrophys., 282, 663-683 (1994). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, tsol, w, elsun, emsun, d, elj, els, wt, w0, w1, w2, w3, w4, - wf, wj; - int j; - -/* -** ===================== -** Fairhead et al. model -** ===================== -** -** 787 sets of three coefficients. -** -** Each set is -** amplitude (microseconds) -** frequency (radians per Julian millennium since J2000.0) -** phase (radians) -** -** Sets 1-474 are the T**0 terms -** " 475-679 " " T**1 -** " 680-764 " " T**2 -** " 765-784 " " T**3 -** " 785-787 " " T**4 -*/ - - static const double fairhd[787][3] = { - /* 1, 10 */ - { 1656.674564e-6, 6283.075849991, 6.240054195 }, - { 22.417471e-6, 5753.384884897, 4.296977442 }, - { 13.839792e-6, 12566.151699983, 6.196904410 }, - { 4.770086e-6, 529.690965095, 0.444401603 }, - { 4.676740e-6, 6069.776754553, 4.021195093 }, - { 2.256707e-6, 213.299095438, 5.543113262 }, - { 1.694205e-6, -3.523118349, 5.025132748 }, - { 1.554905e-6, 77713.771467920, 5.198467090 }, - { 1.276839e-6, 7860.419392439, 5.988822341 }, - { 1.193379e-6, 5223.693919802, 3.649823730 }, - /* 11, 20 */ - { 1.115322e-6, 3930.209696220, 1.422745069 }, - { 0.794185e-6, 11506.769769794, 2.322313077 }, - { 0.447061e-6, 26.298319800, 3.615796498 }, - { 0.435206e-6, -398.149003408, 4.349338347 }, - { 0.600309e-6, 1577.343542448, 2.678271909 }, - { 0.496817e-6, 6208.294251424, 5.696701824 }, - { 0.486306e-6, 5884.926846583, 0.520007179 }, - { 0.432392e-6, 74.781598567, 2.435898309 }, - { 0.468597e-6, 6244.942814354, 5.866398759 }, - { 0.375510e-6, 5507.553238667, 4.103476804 }, - /* 21, 30 */ - { 0.243085e-6, -775.522611324, 3.651837925 }, - { 0.173435e-6, 18849.227549974, 6.153743485 }, - { 0.230685e-6, 5856.477659115, 4.773852582 }, - { 0.203747e-6, 12036.460734888, 4.333987818 }, - { 0.143935e-6, -796.298006816, 5.957517795 }, - { 0.159080e-6, 10977.078804699, 1.890075226 }, - { 0.119979e-6, 38.133035638, 4.551585768 }, - { 0.118971e-6, 5486.777843175, 1.914547226 }, - { 0.116120e-6, 1059.381930189, 0.873504123 }, - { 0.137927e-6, 11790.629088659, 1.135934669 }, - /* 31, 40 */ - { 0.098358e-6, 2544.314419883, 0.092793886 }, - { 0.101868e-6, -5573.142801634, 5.984503847 }, - { 0.080164e-6, 206.185548437, 2.095377709 }, - { 0.079645e-6, 4694.002954708, 2.949233637 }, - { 0.062617e-6, 20.775395492, 2.654394814 }, - { 0.075019e-6, 2942.463423292, 4.980931759 }, - { 0.064397e-6, 5746.271337896, 1.280308748 }, - { 0.063814e-6, 5760.498431898, 4.167901731 }, - { 0.048042e-6, 2146.165416475, 1.495846011 }, - { 0.048373e-6, 155.420399434, 2.251573730 }, - /* 41, 50 */ - { 0.058844e-6, 426.598190876, 4.839650148 }, - { 0.046551e-6, -0.980321068, 0.921573539 }, - { 0.054139e-6, 17260.154654690, 3.411091093 }, - { 0.042411e-6, 6275.962302991, 2.869567043 }, - { 0.040184e-6, -7.113547001, 3.565975565 }, - { 0.036564e-6, 5088.628839767, 3.324679049 }, - { 0.040759e-6, 12352.852604545, 3.981496998 }, - { 0.036507e-6, 801.820931124, 6.248866009 }, - { 0.036955e-6, 3154.687084896, 5.071801441 }, - { 0.042732e-6, 632.783739313, 5.720622217 }, - /* 51, 60 */ - { 0.042560e-6, 161000.685737473, 1.270837679 }, - { 0.040480e-6, 15720.838784878, 2.546610123 }, - { 0.028244e-6, -6286.598968340, 5.069663519 }, - { 0.033477e-6, 6062.663207553, 4.144987272 }, - { 0.034867e-6, 522.577418094, 5.210064075 }, - { 0.032438e-6, 6076.890301554, 0.749317412 }, - { 0.030215e-6, 7084.896781115, 3.389610345 }, - { 0.029247e-6, -71430.695617928, 4.183178762 }, - { 0.033529e-6, 9437.762934887, 2.404714239 }, - { 0.032423e-6, 8827.390269875, 5.541473556 }, - /* 61, 70 */ - { 0.027567e-6, 6279.552731642, 5.040846034 }, - { 0.029862e-6, 12139.553509107, 1.770181024 }, - { 0.022509e-6, 10447.387839604, 1.460726241 }, - { 0.020937e-6, 8429.241266467, 0.652303414 }, - { 0.020322e-6, 419.484643875, 3.735430632 }, - { 0.024816e-6, -1194.447010225, 1.087136918 }, - { 0.025196e-6, 1748.016413067, 2.901883301 }, - { 0.021691e-6, 14143.495242431, 5.952658009 }, - { 0.017673e-6, 6812.766815086, 3.186129845 }, - { 0.022567e-6, 6133.512652857, 3.307984806 }, - /* 71, 80 */ - { 0.016155e-6, 10213.285546211, 1.331103168 }, - { 0.014751e-6, 1349.867409659, 4.308933301 }, - { 0.015949e-6, -220.412642439, 4.005298270 }, - { 0.015974e-6, -2352.866153772, 6.145309371 }, - { 0.014223e-6, 17789.845619785, 2.104551349 }, - { 0.017806e-6, 73.297125859, 3.475975097 }, - { 0.013671e-6, -536.804512095, 5.971672571 }, - { 0.011942e-6, 8031.092263058, 2.053414715 }, - { 0.014318e-6, 16730.463689596, 3.016058075 }, - { 0.012462e-6, 103.092774219, 1.737438797 }, - /* 81, 90 */ - { 0.010962e-6, 3.590428652, 2.196567739 }, - { 0.015078e-6, 19651.048481098, 3.969480770 }, - { 0.010396e-6, 951.718406251, 5.717799605 }, - { 0.011707e-6, -4705.732307544, 2.654125618 }, - { 0.010453e-6, 5863.591206116, 1.913704550 }, - { 0.012420e-6, 4690.479836359, 4.734090399 }, - { 0.011847e-6, 5643.178563677, 5.489005403 }, - { 0.008610e-6, 3340.612426700, 3.661698944 }, - { 0.011622e-6, 5120.601145584, 4.863931876 }, - { 0.010825e-6, 553.569402842, 0.842715011 }, - /* 91, 100 */ - { 0.008666e-6, -135.065080035, 3.293406547 }, - { 0.009963e-6, 149.563197135, 4.870690598 }, - { 0.009858e-6, 6309.374169791, 1.061816410 }, - { 0.007959e-6, 316.391869657, 2.465042647 }, - { 0.010099e-6, 283.859318865, 1.942176992 }, - { 0.007147e-6, -242.728603974, 3.661486981 }, - { 0.007505e-6, 5230.807466803, 4.920937029 }, - { 0.008323e-6, 11769.853693166, 1.229392026 }, - { 0.007490e-6, -6256.777530192, 3.658444681 }, - { 0.009370e-6, 149854.400134205, 0.673880395 }, - /* 101, 110 */ - { 0.007117e-6, 38.027672636, 5.294249518 }, - { 0.007857e-6, 12168.002696575, 0.525733528 }, - { 0.007019e-6, 6206.809778716, 0.837688810 }, - { 0.006056e-6, 955.599741609, 4.194535082 }, - { 0.008107e-6, 13367.972631107, 3.793235253 }, - { 0.006731e-6, 5650.292110678, 5.639906583 }, - { 0.007332e-6, 36.648562930, 0.114858677 }, - { 0.006366e-6, 4164.311989613, 2.262081818 }, - { 0.006858e-6, 5216.580372801, 0.642063318 }, - { 0.006919e-6, 6681.224853400, 6.018501522 }, - /* 111, 120 */ - { 0.006826e-6, 7632.943259650, 3.458654112 }, - { 0.005308e-6, -1592.596013633, 2.500382359 }, - { 0.005096e-6, 11371.704689758, 2.547107806 }, - { 0.004841e-6, 5333.900241022, 0.437078094 }, - { 0.005582e-6, 5966.683980335, 2.246174308 }, - { 0.006304e-6, 11926.254413669, 2.512929171 }, - { 0.006603e-6, 23581.258177318, 5.393136889 }, - { 0.005123e-6, -1.484472708, 2.999641028 }, - { 0.004648e-6, 1589.072895284, 1.275847090 }, - { 0.005119e-6, 6438.496249426, 1.486539246 }, - /* 121, 130 */ - { 0.004521e-6, 4292.330832950, 6.140635794 }, - { 0.005680e-6, 23013.539539587, 4.557814849 }, - { 0.005488e-6, -3.455808046, 0.090675389 }, - { 0.004193e-6, 7234.794256242, 4.869091389 }, - { 0.003742e-6, 7238.675591600, 4.691976180 }, - { 0.004148e-6, -110.206321219, 3.016173439 }, - { 0.004553e-6, 11499.656222793, 5.554998314 }, - { 0.004892e-6, 5436.993015240, 1.475415597 }, - { 0.004044e-6, 4732.030627343, 1.398784824 }, - { 0.004164e-6, 12491.370101415, 5.650931916 }, - /* 131, 140 */ - { 0.004349e-6, 11513.883316794, 2.181745369 }, - { 0.003919e-6, 12528.018664345, 5.823319737 }, - { 0.003129e-6, 6836.645252834, 0.003844094 }, - { 0.004080e-6, -7058.598461315, 3.690360123 }, - { 0.003270e-6, 76.266071276, 1.517189902 }, - { 0.002954e-6, 6283.143160294, 4.447203799 }, - { 0.002872e-6, 28.449187468, 1.158692983 }, - { 0.002881e-6, 735.876513532, 0.349250250 }, - { 0.003279e-6, 5849.364112115, 4.893384368 }, - { 0.003625e-6, 6209.778724132, 1.473760578 }, - /* 141, 150 */ - { 0.003074e-6, 949.175608970, 5.185878737 }, - { 0.002775e-6, 9917.696874510, 1.030026325 }, - { 0.002646e-6, 10973.555686350, 3.918259169 }, - { 0.002575e-6, 25132.303399966, 6.109659023 }, - { 0.003500e-6, 263.083923373, 1.892100742 }, - { 0.002740e-6, 18319.536584880, 4.320519510 }, - { 0.002464e-6, 202.253395174, 4.698203059 }, - { 0.002409e-6, 2.542797281, 5.325009315 }, - { 0.003354e-6, -90955.551694697, 1.942656623 }, - { 0.002296e-6, 6496.374945429, 5.061810696 }, - /* 151, 160 */ - { 0.003002e-6, 6172.869528772, 2.797822767 }, - { 0.003202e-6, 27511.467873537, 0.531673101 }, - { 0.002954e-6, -6283.008539689, 4.533471191 }, - { 0.002353e-6, 639.897286314, 3.734548088 }, - { 0.002401e-6, 16200.772724501, 2.605547070 }, - { 0.003053e-6, 233141.314403759, 3.029030662 }, - { 0.003024e-6, 83286.914269554, 2.355556099 }, - { 0.002863e-6, 17298.182327326, 5.240963796 }, - { 0.002103e-6, -7079.373856808, 5.756641637 }, - { 0.002303e-6, 83996.847317911, 2.013686814 }, - /* 161, 170 */ - { 0.002303e-6, 18073.704938650, 1.089100410 }, - { 0.002381e-6, 63.735898303, 0.759188178 }, - { 0.002493e-6, 6386.168624210, 0.645026535 }, - { 0.002366e-6, 3.932153263, 6.215885448 }, - { 0.002169e-6, 11015.106477335, 4.845297676 }, - { 0.002397e-6, 6243.458341645, 3.809290043 }, - { 0.002183e-6, 1162.474704408, 6.179611691 }, - { 0.002353e-6, 6246.427287062, 4.781719760 }, - { 0.002199e-6, -245.831646229, 5.956152284 }, - { 0.001729e-6, 3894.181829542, 1.264976635 }, - /* 171, 180 */ - { 0.001896e-6, -3128.388765096, 4.914231596 }, - { 0.002085e-6, 35.164090221, 1.405158503 }, - { 0.002024e-6, 14712.317116458, 2.752035928 }, - { 0.001737e-6, 6290.189396992, 5.280820144 }, - { 0.002229e-6, 491.557929457, 1.571007057 }, - { 0.001602e-6, 14314.168113050, 4.203664806 }, - { 0.002186e-6, 454.909366527, 1.402101526 }, - { 0.001897e-6, 22483.848574493, 4.167932508 }, - { 0.001825e-6, -3738.761430108, 0.545828785 }, - { 0.001894e-6, 1052.268383188, 5.817167450 }, - /* 181, 190 */ - { 0.001421e-6, 20.355319399, 2.419886601 }, - { 0.001408e-6, 10984.192351700, 2.732084787 }, - { 0.001847e-6, 10873.986030480, 2.903477885 }, - { 0.001391e-6, -8635.942003763, 0.593891500 }, - { 0.001388e-6, -7.046236698, 1.166145902 }, - { 0.001810e-6, -88860.057071188, 0.487355242 }, - { 0.001288e-6, -1990.745017041, 3.913022880 }, - { 0.001297e-6, 23543.230504682, 3.063805171 }, - { 0.001335e-6, -266.607041722, 3.995764039 }, - { 0.001376e-6, 10969.965257698, 5.152914309 }, - /* 191, 200 */ - { 0.001745e-6, 244287.600007027, 3.626395673 }, - { 0.001649e-6, 31441.677569757, 1.952049260 }, - { 0.001416e-6, 9225.539273283, 4.996408389 }, - { 0.001238e-6, 4804.209275927, 5.503379738 }, - { 0.001472e-6, 4590.910180489, 4.164913291 }, - { 0.001169e-6, 6040.347246017, 5.841719038 }, - { 0.001039e-6, 5540.085789459, 2.769753519 }, - { 0.001004e-6, -170.672870619, 0.755008103 }, - { 0.001284e-6, 10575.406682942, 5.306538209 }, - { 0.001278e-6, 71.812653151, 4.713486491 }, - /* 201, 210 */ - { 0.001321e-6, 18209.330263660, 2.624866359 }, - { 0.001297e-6, 21228.392023546, 0.382603541 }, - { 0.000954e-6, 6282.095528923, 0.882213514 }, - { 0.001145e-6, 6058.731054289, 1.169483931 }, - { 0.000979e-6, 5547.199336460, 5.448375984 }, - { 0.000987e-6, -6262.300454499, 2.656486959 }, - { 0.001070e-6, -154717.609887482, 1.827624012 }, - { 0.000991e-6, 4701.116501708, 4.387001801 }, - { 0.001155e-6, -14.227094002, 3.042700750 }, - { 0.001176e-6, 277.034993741, 3.335519004 }, - /* 211, 220 */ - { 0.000890e-6, 13916.019109642, 5.601498297 }, - { 0.000884e-6, -1551.045222648, 1.088831705 }, - { 0.000876e-6, 5017.508371365, 3.969902609 }, - { 0.000806e-6, 15110.466119866, 5.142876744 }, - { 0.000773e-6, -4136.910433516, 0.022067765 }, - { 0.001077e-6, 175.166059800, 1.844913056 }, - { 0.000954e-6, -6284.056171060, 0.968480906 }, - { 0.000737e-6, 5326.786694021, 4.923831588 }, - { 0.000845e-6, -433.711737877, 4.749245231 }, - { 0.000819e-6, 8662.240323563, 5.991247817 }, - /* 221, 230 */ - { 0.000852e-6, 199.072001436, 2.189604979 }, - { 0.000723e-6, 17256.631536341, 6.068719637 }, - { 0.000940e-6, 6037.244203762, 6.197428148 }, - { 0.000885e-6, 11712.955318231, 3.280414875 }, - { 0.000706e-6, 12559.038152982, 2.824848947 }, - { 0.000732e-6, 2379.164473572, 2.501813417 }, - { 0.000764e-6, -6127.655450557, 2.236346329 }, - { 0.000908e-6, 131.541961686, 2.521257490 }, - { 0.000907e-6, 35371.887265976, 3.370195967 }, - { 0.000673e-6, 1066.495477190, 3.876512374 }, - /* 231, 240 */ - { 0.000814e-6, 17654.780539750, 4.627122566 }, - { 0.000630e-6, 36.027866677, 0.156368499 }, - { 0.000798e-6, 515.463871093, 5.151962502 }, - { 0.000798e-6, 148.078724426, 5.909225055 }, - { 0.000806e-6, 309.278322656, 6.054064447 }, - { 0.000607e-6, -39.617508346, 2.839021623 }, - { 0.000601e-6, 412.371096874, 3.984225404 }, - { 0.000646e-6, 11403.676995575, 3.852959484 }, - { 0.000704e-6, 13521.751441591, 2.300991267 }, - { 0.000603e-6, -65147.619767937, 4.140083146 }, - /* 241, 250 */ - { 0.000609e-6, 10177.257679534, 0.437122327 }, - { 0.000631e-6, 5767.611978898, 4.026532329 }, - { 0.000576e-6, 11087.285125918, 4.760293101 }, - { 0.000674e-6, 14945.316173554, 6.270510511 }, - { 0.000726e-6, 5429.879468239, 6.039606892 }, - { 0.000710e-6, 28766.924424484, 5.672617711 }, - { 0.000647e-6, 11856.218651625, 3.397132627 }, - { 0.000678e-6, -5481.254918868, 6.249666675 }, - { 0.000618e-6, 22003.914634870, 2.466427018 }, - { 0.000738e-6, 6134.997125565, 2.242668890 }, - /* 251, 260 */ - { 0.000660e-6, 625.670192312, 5.864091907 }, - { 0.000694e-6, 3496.032826134, 2.668309141 }, - { 0.000531e-6, 6489.261398429, 1.681888780 }, - { 0.000611e-6, -143571.324284214, 2.424978312 }, - { 0.000575e-6, 12043.574281889, 4.216492400 }, - { 0.000553e-6, 12416.588502848, 4.772158039 }, - { 0.000689e-6, 4686.889407707, 6.224271088 }, - { 0.000495e-6, 7342.457780181, 3.817285811 }, - { 0.000567e-6, 3634.621024518, 1.649264690 }, - { 0.000515e-6, 18635.928454536, 3.945345892 }, - /* 261, 270 */ - { 0.000486e-6, -323.505416657, 4.061673868 }, - { 0.000662e-6, 25158.601719765, 1.794058369 }, - { 0.000509e-6, 846.082834751, 3.053874588 }, - { 0.000472e-6, -12569.674818332, 5.112133338 }, - { 0.000461e-6, 6179.983075773, 0.513669325 }, - { 0.000641e-6, 83467.156352816, 3.210727723 }, - { 0.000520e-6, 10344.295065386, 2.445597761 }, - { 0.000493e-6, 18422.629359098, 1.676939306 }, - { 0.000478e-6, 1265.567478626, 5.487314569 }, - { 0.000472e-6, -18.159247265, 1.999707589 }, - /* 271, 280 */ - { 0.000559e-6, 11190.377900137, 5.783236356 }, - { 0.000494e-6, 9623.688276691, 3.022645053 }, - { 0.000463e-6, 5739.157790895, 1.411223013 }, - { 0.000432e-6, 16858.482532933, 1.179256434 }, - { 0.000574e-6, 72140.628666286, 1.758191830 }, - { 0.000484e-6, 17267.268201691, 3.290589143 }, - { 0.000550e-6, 4907.302050146, 0.864024298 }, - { 0.000399e-6, 14.977853527, 2.094441910 }, - { 0.000491e-6, 224.344795702, 0.878372791 }, - { 0.000432e-6, 20426.571092422, 6.003829241 }, - /* 281, 290 */ - { 0.000481e-6, 5749.452731634, 4.309591964 }, - { 0.000480e-6, 5757.317038160, 1.142348571 }, - { 0.000485e-6, 6702.560493867, 0.210580917 }, - { 0.000426e-6, 6055.549660552, 4.274476529 }, - { 0.000480e-6, 5959.570433334, 5.031351030 }, - { 0.000466e-6, 12562.628581634, 4.959581597 }, - { 0.000520e-6, 39302.096962196, 4.788002889 }, - { 0.000458e-6, 12132.439962106, 1.880103788 }, - { 0.000470e-6, 12029.347187887, 1.405611197 }, - { 0.000416e-6, -7477.522860216, 1.082356330 }, - /* 291, 300 */ - { 0.000449e-6, 11609.862544012, 4.179989585 }, - { 0.000465e-6, 17253.041107690, 0.353496295 }, - { 0.000362e-6, -4535.059436924, 1.583849576 }, - { 0.000383e-6, 21954.157609398, 3.747376371 }, - { 0.000389e-6, 17.252277143, 1.395753179 }, - { 0.000331e-6, 18052.929543158, 0.566790582 }, - { 0.000430e-6, 13517.870106233, 0.685827538 }, - { 0.000368e-6, -5756.908003246, 0.731374317 }, - { 0.000330e-6, 10557.594160824, 3.710043680 }, - { 0.000332e-6, 20199.094959633, 1.652901407 }, - /* 301, 310 */ - { 0.000384e-6, 11933.367960670, 5.827781531 }, - { 0.000387e-6, 10454.501386605, 2.541182564 }, - { 0.000325e-6, 15671.081759407, 2.178850542 }, - { 0.000318e-6, 138.517496871, 2.253253037 }, - { 0.000305e-6, 9388.005909415, 0.578340206 }, - { 0.000352e-6, 5749.861766548, 3.000297967 }, - { 0.000311e-6, 6915.859589305, 1.693574249 }, - { 0.000297e-6, 24072.921469776, 1.997249392 }, - { 0.000363e-6, -640.877607382, 5.071820966 }, - { 0.000323e-6, 12592.450019783, 1.072262823 }, - /* 311, 320 */ - { 0.000341e-6, 12146.667056108, 4.700657997 }, - { 0.000290e-6, 9779.108676125, 1.812320441 }, - { 0.000342e-6, 6132.028180148, 4.322238614 }, - { 0.000329e-6, 6268.848755990, 3.033827743 }, - { 0.000374e-6, 17996.031168222, 3.388716544 }, - { 0.000285e-6, -533.214083444, 4.687313233 }, - { 0.000338e-6, 6065.844601290, 0.877776108 }, - { 0.000276e-6, 24.298513841, 0.770299429 }, - { 0.000336e-6, -2388.894020449, 5.353796034 }, - { 0.000290e-6, 3097.883822726, 4.075291557 }, - /* 321, 330 */ - { 0.000318e-6, 709.933048357, 5.941207518 }, - { 0.000271e-6, 13095.842665077, 3.208912203 }, - { 0.000331e-6, 6073.708907816, 4.007881169 }, - { 0.000292e-6, 742.990060533, 2.714333592 }, - { 0.000362e-6, 29088.811415985, 3.215977013 }, - { 0.000280e-6, 12359.966151546, 0.710872502 }, - { 0.000267e-6, 10440.274292604, 4.730108488 }, - { 0.000262e-6, 838.969287750, 1.327720272 }, - { 0.000250e-6, 16496.361396202, 0.898769761 }, - { 0.000325e-6, 20597.243963041, 0.180044365 }, - /* 331, 340 */ - { 0.000268e-6, 6148.010769956, 5.152666276 }, - { 0.000284e-6, 5636.065016677, 5.655385808 }, - { 0.000301e-6, 6080.822454817, 2.135396205 }, - { 0.000294e-6, -377.373607916, 3.708784168 }, - { 0.000236e-6, 2118.763860378, 1.733578756 }, - { 0.000234e-6, 5867.523359379, 5.575209112 }, - { 0.000268e-6, -226858.238553767, 0.069432392 }, - { 0.000265e-6, 167283.761587465, 4.369302826 }, - { 0.000280e-6, 28237.233459389, 5.304829118 }, - { 0.000292e-6, 12345.739057544, 4.096094132 }, - /* 341, 350 */ - { 0.000223e-6, 19800.945956225, 3.069327406 }, - { 0.000301e-6, 43232.306658416, 6.205311188 }, - { 0.000264e-6, 18875.525869774, 1.417263408 }, - { 0.000304e-6, -1823.175188677, 3.409035232 }, - { 0.000301e-6, 109.945688789, 0.510922054 }, - { 0.000260e-6, 813.550283960, 2.389438934 }, - { 0.000299e-6, 316428.228673312, 5.384595078 }, - { 0.000211e-6, 5756.566278634, 3.789392838 }, - { 0.000209e-6, 5750.203491159, 1.661943545 }, - { 0.000240e-6, 12489.885628707, 5.684549045 }, - /* 351, 360 */ - { 0.000216e-6, 6303.851245484, 3.862942261 }, - { 0.000203e-6, 1581.959348283, 5.549853589 }, - { 0.000200e-6, 5642.198242609, 1.016115785 }, - { 0.000197e-6, -70.849445304, 4.690702525 }, - { 0.000227e-6, 6287.008003254, 2.911891613 }, - { 0.000197e-6, 533.623118358, 1.048982898 }, - { 0.000205e-6, -6279.485421340, 1.829362730 }, - { 0.000209e-6, -10988.808157535, 2.636140084 }, - { 0.000208e-6, -227.526189440, 4.127883842 }, - { 0.000191e-6, 415.552490612, 4.401165650 }, - /* 361, 370 */ - { 0.000190e-6, 29296.615389579, 4.175658539 }, - { 0.000264e-6, 66567.485864652, 4.601102551 }, - { 0.000256e-6, -3646.350377354, 0.506364778 }, - { 0.000188e-6, 13119.721102825, 2.032195842 }, - { 0.000185e-6, -209.366942175, 4.694756586 }, - { 0.000198e-6, 25934.124331089, 3.832703118 }, - { 0.000195e-6, 4061.219215394, 3.308463427 }, - { 0.000234e-6, 5113.487598583, 1.716090661 }, - { 0.000188e-6, 1478.866574064, 5.686865780 }, - { 0.000222e-6, 11823.161639450, 1.942386641 }, - /* 371, 380 */ - { 0.000181e-6, 10770.893256262, 1.999482059 }, - { 0.000171e-6, 6546.159773364, 1.182807992 }, - { 0.000206e-6, 70.328180442, 5.934076062 }, - { 0.000169e-6, 20995.392966449, 2.169080622 }, - { 0.000191e-6, 10660.686935042, 5.405515999 }, - { 0.000228e-6, 33019.021112205, 4.656985514 }, - { 0.000184e-6, -4933.208440333, 3.327476868 }, - { 0.000220e-6, -135.625325010, 1.765430262 }, - { 0.000166e-6, 23141.558382925, 3.454132746 }, - { 0.000191e-6, 6144.558353121, 5.020393445 }, - /* 381, 390 */ - { 0.000180e-6, 6084.003848555, 0.602182191 }, - { 0.000163e-6, 17782.732072784, 4.960593133 }, - { 0.000225e-6, 16460.333529525, 2.596451817 }, - { 0.000222e-6, 5905.702242076, 3.731990323 }, - { 0.000204e-6, 227.476132789, 5.636192701 }, - { 0.000159e-6, 16737.577236597, 3.600691544 }, - { 0.000200e-6, 6805.653268085, 0.868220961 }, - { 0.000187e-6, 11919.140866668, 2.629456641 }, - { 0.000161e-6, 127.471796607, 2.862574720 }, - { 0.000205e-6, 6286.666278643, 1.742882331 }, - /* 391, 400 */ - { 0.000189e-6, 153.778810485, 4.812372643 }, - { 0.000168e-6, 16723.350142595, 0.027860588 }, - { 0.000149e-6, 11720.068865232, 0.659721876 }, - { 0.000189e-6, 5237.921013804, 5.245313000 }, - { 0.000143e-6, 6709.674040867, 4.317625647 }, - { 0.000146e-6, 4487.817406270, 4.815297007 }, - { 0.000144e-6, -664.756045130, 5.381366880 }, - { 0.000175e-6, 5127.714692584, 4.728443327 }, - { 0.000162e-6, 6254.626662524, 1.435132069 }, - { 0.000187e-6, 47162.516354635, 1.354371923 }, - /* 401, 410 */ - { 0.000146e-6, 11080.171578918, 3.369695406 }, - { 0.000180e-6, -348.924420448, 2.490902145 }, - { 0.000148e-6, 151.047669843, 3.799109588 }, - { 0.000157e-6, 6197.248551160, 1.284375887 }, - { 0.000167e-6, 146.594251718, 0.759969109 }, - { 0.000133e-6, -5331.357443741, 5.409701889 }, - { 0.000154e-6, 95.979227218, 3.366890614 }, - { 0.000148e-6, -6418.140930027, 3.384104996 }, - { 0.000128e-6, -6525.804453965, 3.803419985 }, - { 0.000130e-6, 11293.470674356, 0.939039445 }, - /* 411, 420 */ - { 0.000152e-6, -5729.506447149, 0.734117523 }, - { 0.000138e-6, 210.117701700, 2.564216078 }, - { 0.000123e-6, 6066.595360816, 4.517099537 }, - { 0.000140e-6, 18451.078546566, 0.642049130 }, - { 0.000126e-6, 11300.584221356, 3.485280663 }, - { 0.000119e-6, 10027.903195729, 3.217431161 }, - { 0.000151e-6, 4274.518310832, 4.404359108 }, - { 0.000117e-6, 6072.958148291, 0.366324650 }, - { 0.000165e-6, -7668.637425143, 4.298212528 }, - { 0.000117e-6, -6245.048177356, 5.379518958 }, - /* 421, 430 */ - { 0.000130e-6, -5888.449964932, 4.527681115 }, - { 0.000121e-6, -543.918059096, 6.109429504 }, - { 0.000162e-6, 9683.594581116, 5.720092446 }, - { 0.000141e-6, 6219.339951688, 0.679068671 }, - { 0.000118e-6, 22743.409379516, 4.881123092 }, - { 0.000129e-6, 1692.165669502, 0.351407289 }, - { 0.000126e-6, 5657.405657679, 5.146592349 }, - { 0.000114e-6, 728.762966531, 0.520791814 }, - { 0.000120e-6, 52.596639600, 0.948516300 }, - { 0.000115e-6, 65.220371012, 3.504914846 }, - /* 431, 440 */ - { 0.000126e-6, 5881.403728234, 5.577502482 }, - { 0.000158e-6, 163096.180360983, 2.957128968 }, - { 0.000134e-6, 12341.806904281, 2.598576764 }, - { 0.000151e-6, 16627.370915377, 3.985702050 }, - { 0.000109e-6, 1368.660252845, 0.014730471 }, - { 0.000131e-6, 6211.263196841, 0.085077024 }, - { 0.000146e-6, 5792.741760812, 0.708426604 }, - { 0.000146e-6, -77.750543984, 3.121576600 }, - { 0.000107e-6, 5341.013788022, 0.288231904 }, - { 0.000138e-6, 6281.591377283, 2.797450317 }, - /* 441, 450 */ - { 0.000113e-6, -6277.552925684, 2.788904128 }, - { 0.000115e-6, -525.758811831, 5.895222200 }, - { 0.000138e-6, 6016.468808270, 6.096188999 }, - { 0.000139e-6, 23539.707386333, 2.028195445 }, - { 0.000146e-6, -4176.041342449, 4.660008502 }, - { 0.000107e-6, 16062.184526117, 4.066520001 }, - { 0.000142e-6, 83783.548222473, 2.936315115 }, - { 0.000128e-6, 9380.959672717, 3.223844306 }, - { 0.000135e-6, 6205.325306007, 1.638054048 }, - { 0.000101e-6, 2699.734819318, 5.481603249 }, - /* 451, 460 */ - { 0.000104e-6, -568.821874027, 2.205734493 }, - { 0.000103e-6, 6321.103522627, 2.440421099 }, - { 0.000119e-6, 6321.208885629, 2.547496264 }, - { 0.000138e-6, 1975.492545856, 2.314608466 }, - { 0.000121e-6, 137.033024162, 4.539108237 }, - { 0.000123e-6, 19402.796952817, 4.538074405 }, - { 0.000119e-6, 22805.735565994, 2.869040566 }, - { 0.000133e-6, 64471.991241142, 6.056405489 }, - { 0.000129e-6, -85.827298831, 2.540635083 }, - { 0.000131e-6, 13613.804277336, 4.005732868 }, - /* 461, 470 */ - { 0.000104e-6, 9814.604100291, 1.959967212 }, - { 0.000112e-6, 16097.679950283, 3.589026260 }, - { 0.000123e-6, 2107.034507542, 1.728627253 }, - { 0.000121e-6, 36949.230808424, 6.072332087 }, - { 0.000108e-6, -12539.853380183, 3.716133846 }, - { 0.000113e-6, -7875.671863624, 2.725771122 }, - { 0.000109e-6, 4171.425536614, 4.033338079 }, - { 0.000101e-6, 6247.911759770, 3.441347021 }, - { 0.000113e-6, 7330.728427345, 0.656372122 }, - { 0.000113e-6, 51092.726050855, 2.791483066 }, - /* 471, 480 */ - { 0.000106e-6, 5621.842923210, 1.815323326 }, - { 0.000101e-6, 111.430161497, 5.711033677 }, - { 0.000103e-6, 909.818733055, 2.812745443 }, - { 0.000101e-6, 1790.642637886, 1.965746028 }, - - /* T */ - { 102.156724e-6, 6283.075849991, 4.249032005 }, - { 1.706807e-6, 12566.151699983, 4.205904248 }, - { 0.269668e-6, 213.299095438, 3.400290479 }, - { 0.265919e-6, 529.690965095, 5.836047367 }, - { 0.210568e-6, -3.523118349, 6.262738348 }, - { 0.077996e-6, 5223.693919802, 4.670344204 }, - /* 481, 490 */ - { 0.054764e-6, 1577.343542448, 4.534800170 }, - { 0.059146e-6, 26.298319800, 1.083044735 }, - { 0.034420e-6, -398.149003408, 5.980077351 }, - { 0.032088e-6, 18849.227549974, 4.162913471 }, - { 0.033595e-6, 5507.553238667, 5.980162321 }, - { 0.029198e-6, 5856.477659115, 0.623811863 }, - { 0.027764e-6, 155.420399434, 3.745318113 }, - { 0.025190e-6, 5746.271337896, 2.980330535 }, - { 0.022997e-6, -796.298006816, 1.174411803 }, - { 0.024976e-6, 5760.498431898, 2.467913690 }, - /* 491, 500 */ - { 0.021774e-6, 206.185548437, 3.854787540 }, - { 0.017925e-6, -775.522611324, 1.092065955 }, - { 0.013794e-6, 426.598190876, 2.699831988 }, - { 0.013276e-6, 6062.663207553, 5.845801920 }, - { 0.011774e-6, 12036.460734888, 2.292832062 }, - { 0.012869e-6, 6076.890301554, 5.333425680 }, - { 0.012152e-6, 1059.381930189, 6.222874454 }, - { 0.011081e-6, -7.113547001, 5.154724984 }, - { 0.010143e-6, 4694.002954708, 4.044013795 }, - { 0.009357e-6, 5486.777843175, 3.416081409 }, - /* 501, 510 */ - { 0.010084e-6, 522.577418094, 0.749320262 }, - { 0.008587e-6, 10977.078804699, 2.777152598 }, - { 0.008628e-6, 6275.962302991, 4.562060226 }, - { 0.008158e-6, -220.412642439, 5.806891533 }, - { 0.007746e-6, 2544.314419883, 1.603197066 }, - { 0.007670e-6, 2146.165416475, 3.000200440 }, - { 0.007098e-6, 74.781598567, 0.443725817 }, - { 0.006180e-6, -536.804512095, 1.302642751 }, - { 0.005818e-6, 5088.628839767, 4.827723531 }, - { 0.004945e-6, -6286.598968340, 0.268305170 }, - /* 511, 520 */ - { 0.004774e-6, 1349.867409659, 5.808636673 }, - { 0.004687e-6, -242.728603974, 5.154890570 }, - { 0.006089e-6, 1748.016413067, 4.403765209 }, - { 0.005975e-6, -1194.447010225, 2.583472591 }, - { 0.004229e-6, 951.718406251, 0.931172179 }, - { 0.005264e-6, 553.569402842, 2.336107252 }, - { 0.003049e-6, 5643.178563677, 1.362634430 }, - { 0.002974e-6, 6812.766815086, 1.583012668 }, - { 0.003403e-6, -2352.866153772, 2.552189886 }, - { 0.003030e-6, 419.484643875, 5.286473844 }, - /* 521, 530 */ - { 0.003210e-6, -7.046236698, 1.863796539 }, - { 0.003058e-6, 9437.762934887, 4.226420633 }, - { 0.002589e-6, 12352.852604545, 1.991935820 }, - { 0.002927e-6, 5216.580372801, 2.319951253 }, - { 0.002425e-6, 5230.807466803, 3.084752833 }, - { 0.002656e-6, 3154.687084896, 2.487447866 }, - { 0.002445e-6, 10447.387839604, 2.347139160 }, - { 0.002990e-6, 4690.479836359, 6.235872050 }, - { 0.002890e-6, 5863.591206116, 0.095197563 }, - { 0.002498e-6, 6438.496249426, 2.994779800 }, - /* 531, 540 */ - { 0.001889e-6, 8031.092263058, 3.569003717 }, - { 0.002567e-6, 801.820931124, 3.425611498 }, - { 0.001803e-6, -71430.695617928, 2.192295512 }, - { 0.001782e-6, 3.932153263, 5.180433689 }, - { 0.001694e-6, -4705.732307544, 4.641779174 }, - { 0.001704e-6, -1592.596013633, 3.997097652 }, - { 0.001735e-6, 5849.364112115, 0.417558428 }, - { 0.001643e-6, 8429.241266467, 2.180619584 }, - { 0.001680e-6, 38.133035638, 4.164529426 }, - { 0.002045e-6, 7084.896781115, 0.526323854 }, - /* 541, 550 */ - { 0.001458e-6, 4292.330832950, 1.356098141 }, - { 0.001437e-6, 20.355319399, 3.895439360 }, - { 0.001738e-6, 6279.552731642, 0.087484036 }, - { 0.001367e-6, 14143.495242431, 3.987576591 }, - { 0.001344e-6, 7234.794256242, 0.090454338 }, - { 0.001438e-6, 11499.656222793, 0.974387904 }, - { 0.001257e-6, 6836.645252834, 1.509069366 }, - { 0.001358e-6, 11513.883316794, 0.495572260 }, - { 0.001628e-6, 7632.943259650, 4.968445721 }, - { 0.001169e-6, 103.092774219, 2.838496795 }, - /* 551, 560 */ - { 0.001162e-6, 4164.311989613, 3.408387778 }, - { 0.001092e-6, 6069.776754553, 3.617942651 }, - { 0.001008e-6, 17789.845619785, 0.286350174 }, - { 0.001008e-6, 639.897286314, 1.610762073 }, - { 0.000918e-6, 10213.285546211, 5.532798067 }, - { 0.001011e-6, -6256.777530192, 0.661826484 }, - { 0.000753e-6, 16730.463689596, 3.905030235 }, - { 0.000737e-6, 11926.254413669, 4.641956361 }, - { 0.000694e-6, 3340.612426700, 2.111120332 }, - { 0.000701e-6, 3894.181829542, 2.760823491 }, - /* 561, 570 */ - { 0.000689e-6, -135.065080035, 4.768800780 }, - { 0.000700e-6, 13367.972631107, 5.760439898 }, - { 0.000664e-6, 6040.347246017, 1.051215840 }, - { 0.000654e-6, 5650.292110678, 4.911332503 }, - { 0.000788e-6, 6681.224853400, 4.699648011 }, - { 0.000628e-6, 5333.900241022, 5.024608847 }, - { 0.000755e-6, -110.206321219, 4.370971253 }, - { 0.000628e-6, 6290.189396992, 3.660478857 }, - { 0.000635e-6, 25132.303399966, 4.121051532 }, - { 0.000534e-6, 5966.683980335, 1.173284524 }, - /* 571, 580 */ - { 0.000543e-6, -433.711737877, 0.345585464 }, - { 0.000517e-6, -1990.745017041, 5.414571768 }, - { 0.000504e-6, 5767.611978898, 2.328281115 }, - { 0.000485e-6, 5753.384884897, 1.685874771 }, - { 0.000463e-6, 7860.419392439, 5.297703006 }, - { 0.000604e-6, 515.463871093, 0.591998446 }, - { 0.000443e-6, 12168.002696575, 4.830881244 }, - { 0.000570e-6, 199.072001436, 3.899190272 }, - { 0.000465e-6, 10969.965257698, 0.476681802 }, - { 0.000424e-6, -7079.373856808, 1.112242763 }, - /* 581, 590 */ - { 0.000427e-6, 735.876513532, 1.994214480 }, - { 0.000478e-6, -6127.655450557, 3.778025483 }, - { 0.000414e-6, 10973.555686350, 5.441088327 }, - { 0.000512e-6, 1589.072895284, 0.107123853 }, - { 0.000378e-6, 10984.192351700, 0.915087231 }, - { 0.000402e-6, 11371.704689758, 4.107281715 }, - { 0.000453e-6, 9917.696874510, 1.917490952 }, - { 0.000395e-6, 149.563197135, 2.763124165 }, - { 0.000371e-6, 5739.157790895, 3.112111866 }, - { 0.000350e-6, 11790.629088659, 0.440639857 }, - /* 591, 600 */ - { 0.000356e-6, 6133.512652857, 5.444568842 }, - { 0.000344e-6, 412.371096874, 5.676832684 }, - { 0.000383e-6, 955.599741609, 5.559734846 }, - { 0.000333e-6, 6496.374945429, 0.261537984 }, - { 0.000340e-6, 6055.549660552, 5.975534987 }, - { 0.000334e-6, 1066.495477190, 2.335063907 }, - { 0.000399e-6, 11506.769769794, 5.321230910 }, - { 0.000314e-6, 18319.536584880, 2.313312404 }, - { 0.000424e-6, 1052.268383188, 1.211961766 }, - { 0.000307e-6, 63.735898303, 3.169551388 }, - /* 601, 610 */ - { 0.000329e-6, 29.821438149, 6.106912080 }, - { 0.000357e-6, 6309.374169791, 4.223760346 }, - { 0.000312e-6, -3738.761430108, 2.180556645 }, - { 0.000301e-6, 309.278322656, 1.499984572 }, - { 0.000268e-6, 12043.574281889, 2.447520648 }, - { 0.000257e-6, 12491.370101415, 3.662331761 }, - { 0.000290e-6, 625.670192312, 1.272834584 }, - { 0.000256e-6, 5429.879468239, 1.913426912 }, - { 0.000339e-6, 3496.032826134, 4.165930011 }, - { 0.000283e-6, 3930.209696220, 4.325565754 }, - /* 611, 620 */ - { 0.000241e-6, 12528.018664345, 3.832324536 }, - { 0.000304e-6, 4686.889407707, 1.612348468 }, - { 0.000259e-6, 16200.772724501, 3.470173146 }, - { 0.000238e-6, 12139.553509107, 1.147977842 }, - { 0.000236e-6, 6172.869528772, 3.776271728 }, - { 0.000296e-6, -7058.598461315, 0.460368852 }, - { 0.000306e-6, 10575.406682942, 0.554749016 }, - { 0.000251e-6, 17298.182327326, 0.834332510 }, - { 0.000290e-6, 4732.030627343, 4.759564091 }, - { 0.000261e-6, 5884.926846583, 0.298259862 }, - /* 621, 630 */ - { 0.000249e-6, 5547.199336460, 3.749366406 }, - { 0.000213e-6, 11712.955318231, 5.415666119 }, - { 0.000223e-6, 4701.116501708, 2.703203558 }, - { 0.000268e-6, -640.877607382, 0.283670793 }, - { 0.000209e-6, 5636.065016677, 1.238477199 }, - { 0.000193e-6, 10177.257679534, 1.943251340 }, - { 0.000182e-6, 6283.143160294, 2.456157599 }, - { 0.000184e-6, -227.526189440, 5.888038582 }, - { 0.000182e-6, -6283.008539689, 0.241332086 }, - { 0.000228e-6, -6284.056171060, 2.657323816 }, - /* 631, 640 */ - { 0.000166e-6, 7238.675591600, 5.930629110 }, - { 0.000167e-6, 3097.883822726, 5.570955333 }, - { 0.000159e-6, -323.505416657, 5.786670700 }, - { 0.000154e-6, -4136.910433516, 1.517805532 }, - { 0.000176e-6, 12029.347187887, 3.139266834 }, - { 0.000167e-6, 12132.439962106, 3.556352289 }, - { 0.000153e-6, 202.253395174, 1.463313961 }, - { 0.000157e-6, 17267.268201691, 1.586837396 }, - { 0.000142e-6, 83996.847317911, 0.022670115 }, - { 0.000152e-6, 17260.154654690, 0.708528947 }, - /* 641, 650 */ - { 0.000144e-6, 6084.003848555, 5.187075177 }, - { 0.000135e-6, 5756.566278634, 1.993229262 }, - { 0.000134e-6, 5750.203491159, 3.457197134 }, - { 0.000144e-6, 5326.786694021, 6.066193291 }, - { 0.000160e-6, 11015.106477335, 1.710431974 }, - { 0.000133e-6, 3634.621024518, 2.836451652 }, - { 0.000134e-6, 18073.704938650, 5.453106665 }, - { 0.000134e-6, 1162.474704408, 5.326898811 }, - { 0.000128e-6, 5642.198242609, 2.511652591 }, - { 0.000160e-6, 632.783739313, 5.628785365 }, - /* 651, 660 */ - { 0.000132e-6, 13916.019109642, 0.819294053 }, - { 0.000122e-6, 14314.168113050, 5.677408071 }, - { 0.000125e-6, 12359.966151546, 5.251984735 }, - { 0.000121e-6, 5749.452731634, 2.210924603 }, - { 0.000136e-6, -245.831646229, 1.646502367 }, - { 0.000120e-6, 5757.317038160, 3.240883049 }, - { 0.000134e-6, 12146.667056108, 3.059480037 }, - { 0.000137e-6, 6206.809778716, 1.867105418 }, - { 0.000141e-6, 17253.041107690, 2.069217456 }, - { 0.000129e-6, -7477.522860216, 2.781469314 }, - /* 661, 670 */ - { 0.000116e-6, 5540.085789459, 4.281176991 }, - { 0.000116e-6, 9779.108676125, 3.320925381 }, - { 0.000129e-6, 5237.921013804, 3.497704076 }, - { 0.000113e-6, 5959.570433334, 0.983210840 }, - { 0.000122e-6, 6282.095528923, 2.674938860 }, - { 0.000140e-6, -11.045700264, 4.957936982 }, - { 0.000108e-6, 23543.230504682, 1.390113589 }, - { 0.000106e-6, -12569.674818332, 0.429631317 }, - { 0.000110e-6, -266.607041722, 5.501340197 }, - { 0.000115e-6, 12559.038152982, 4.691456618 }, - /* 671, 680 */ - { 0.000134e-6, -2388.894020449, 0.577313584 }, - { 0.000109e-6, 10440.274292604, 6.218148717 }, - { 0.000102e-6, -543.918059096, 1.477842615 }, - { 0.000108e-6, 21228.392023546, 2.237753948 }, - { 0.000101e-6, -4535.059436924, 3.100492232 }, - { 0.000103e-6, 76.266071276, 5.594294322 }, - { 0.000104e-6, 949.175608970, 5.674287810 }, - { 0.000101e-6, 13517.870106233, 2.196632348 }, - { 0.000100e-6, 11933.367960670, 4.056084160 }, - - /* T^2 */ - { 4.322990e-6, 6283.075849991, 2.642893748 }, - /* 681, 690 */ - { 0.406495e-6, 0.000000000, 4.712388980 }, - { 0.122605e-6, 12566.151699983, 2.438140634 }, - { 0.019476e-6, 213.299095438, 1.642186981 }, - { 0.016916e-6, 529.690965095, 4.510959344 }, - { 0.013374e-6, -3.523118349, 1.502210314 }, - { 0.008042e-6, 26.298319800, 0.478549024 }, - { 0.007824e-6, 155.420399434, 5.254710405 }, - { 0.004894e-6, 5746.271337896, 4.683210850 }, - { 0.004875e-6, 5760.498431898, 0.759507698 }, - { 0.004416e-6, 5223.693919802, 6.028853166 }, - /* 691, 700 */ - { 0.004088e-6, -7.113547001, 0.060926389 }, - { 0.004433e-6, 77713.771467920, 3.627734103 }, - { 0.003277e-6, 18849.227549974, 2.327912542 }, - { 0.002703e-6, 6062.663207553, 1.271941729 }, - { 0.003435e-6, -775.522611324, 0.747446224 }, - { 0.002618e-6, 6076.890301554, 3.633715689 }, - { 0.003146e-6, 206.185548437, 5.647874613 }, - { 0.002544e-6, 1577.343542448, 6.232904270 }, - { 0.002218e-6, -220.412642439, 1.309509946 }, - { 0.002197e-6, 5856.477659115, 2.407212349 }, - /* 701, 710 */ - { 0.002897e-6, 5753.384884897, 5.863842246 }, - { 0.001766e-6, 426.598190876, 0.754113147 }, - { 0.001738e-6, -796.298006816, 2.714942671 }, - { 0.001695e-6, 522.577418094, 2.629369842 }, - { 0.001584e-6, 5507.553238667, 1.341138229 }, - { 0.001503e-6, -242.728603974, 0.377699736 }, - { 0.001552e-6, -536.804512095, 2.904684667 }, - { 0.001370e-6, -398.149003408, 1.265599125 }, - { 0.001889e-6, -5573.142801634, 4.413514859 }, - { 0.001722e-6, 6069.776754553, 2.445966339 }, - /* 711, 720 */ - { 0.001124e-6, 1059.381930189, 5.041799657 }, - { 0.001258e-6, 553.569402842, 3.849557278 }, - { 0.000831e-6, 951.718406251, 2.471094709 }, - { 0.000767e-6, 4694.002954708, 5.363125422 }, - { 0.000756e-6, 1349.867409659, 1.046195744 }, - { 0.000775e-6, -11.045700264, 0.245548001 }, - { 0.000597e-6, 2146.165416475, 4.543268798 }, - { 0.000568e-6, 5216.580372801, 4.178853144 }, - { 0.000711e-6, 1748.016413067, 5.934271972 }, - { 0.000499e-6, 12036.460734888, 0.624434410 }, - /* 721, 730 */ - { 0.000671e-6, -1194.447010225, 4.136047594 }, - { 0.000488e-6, 5849.364112115, 2.209679987 }, - { 0.000621e-6, 6438.496249426, 4.518860804 }, - { 0.000495e-6, -6286.598968340, 1.868201275 }, - { 0.000456e-6, 5230.807466803, 1.271231591 }, - { 0.000451e-6, 5088.628839767, 0.084060889 }, - { 0.000435e-6, 5643.178563677, 3.324456609 }, - { 0.000387e-6, 10977.078804699, 4.052488477 }, - { 0.000547e-6, 161000.685737473, 2.841633844 }, - { 0.000522e-6, 3154.687084896, 2.171979966 }, - /* 731, 740 */ - { 0.000375e-6, 5486.777843175, 4.983027306 }, - { 0.000421e-6, 5863.591206116, 4.546432249 }, - { 0.000439e-6, 7084.896781115, 0.522967921 }, - { 0.000309e-6, 2544.314419883, 3.172606705 }, - { 0.000347e-6, 4690.479836359, 1.479586566 }, - { 0.000317e-6, 801.820931124, 3.553088096 }, - { 0.000262e-6, 419.484643875, 0.606635550 }, - { 0.000248e-6, 6836.645252834, 3.014082064 }, - { 0.000245e-6, -1592.596013633, 5.519526220 }, - { 0.000225e-6, 4292.330832950, 2.877956536 }, - /* 741, 750 */ - { 0.000214e-6, 7234.794256242, 1.605227587 }, - { 0.000205e-6, 5767.611978898, 0.625804796 }, - { 0.000180e-6, 10447.387839604, 3.499954526 }, - { 0.000229e-6, 199.072001436, 5.632304604 }, - { 0.000214e-6, 639.897286314, 5.960227667 }, - { 0.000175e-6, -433.711737877, 2.162417992 }, - { 0.000209e-6, 515.463871093, 2.322150893 }, - { 0.000173e-6, 6040.347246017, 2.556183691 }, - { 0.000184e-6, 6309.374169791, 4.732296790 }, - { 0.000227e-6, 149854.400134205, 5.385812217 }, - /* 751, 760 */ - { 0.000154e-6, 8031.092263058, 5.120720920 }, - { 0.000151e-6, 5739.157790895, 4.815000443 }, - { 0.000197e-6, 7632.943259650, 0.222827271 }, - { 0.000197e-6, 74.781598567, 3.910456770 }, - { 0.000138e-6, 6055.549660552, 1.397484253 }, - { 0.000149e-6, -6127.655450557, 5.333727496 }, - { 0.000137e-6, 3894.181829542, 4.281749907 }, - { 0.000135e-6, 9437.762934887, 5.979971885 }, - { 0.000139e-6, -2352.866153772, 4.715630782 }, - { 0.000142e-6, 6812.766815086, 0.513330157 }, - /* 761, 770 */ - { 0.000120e-6, -4705.732307544, 0.194160689 }, - { 0.000131e-6, -71430.695617928, 0.000379226 }, - { 0.000124e-6, 6279.552731642, 2.122264908 }, - { 0.000108e-6, -6256.777530192, 0.883445696 }, - - /* T^3 */ - { 0.143388e-6, 6283.075849991, 1.131453581 }, - { 0.006671e-6, 12566.151699983, 0.775148887 }, - { 0.001480e-6, 155.420399434, 0.480016880 }, - { 0.000934e-6, 213.299095438, 6.144453084 }, - { 0.000795e-6, 529.690965095, 2.941595619 }, - { 0.000673e-6, 5746.271337896, 0.120415406 }, - /* 771, 780 */ - { 0.000672e-6, 5760.498431898, 5.317009738 }, - { 0.000389e-6, -220.412642439, 3.090323467 }, - { 0.000373e-6, 6062.663207553, 3.003551964 }, - { 0.000360e-6, 6076.890301554, 1.918913041 }, - { 0.000316e-6, -21.340641002, 5.545798121 }, - { 0.000315e-6, -242.728603974, 1.884932563 }, - { 0.000278e-6, 206.185548437, 1.266254859 }, - { 0.000238e-6, -536.804512095, 4.532664830 }, - { 0.000185e-6, 522.577418094, 4.578313856 }, - { 0.000245e-6, 18849.227549974, 0.587467082 }, - /* 781, 787 */ - { 0.000180e-6, 426.598190876, 5.151178553 }, - { 0.000200e-6, 553.569402842, 5.355983739 }, - { 0.000141e-6, 5223.693919802, 1.336556009 }, - { 0.000104e-6, 5856.477659115, 4.239842759 }, - - /* T^4 */ - { 0.003826e-6, 6283.075849991, 5.705257275 }, - { 0.000303e-6, 12566.151699983, 5.407132842 }, - { 0.000209e-6, 155.420399434, 1.989815753 } - }; - - -/* Time since J2000.0 in Julian millennia. */ - t = ((date1 - DJ00) + date2) / DJM; - -/* ================= */ -/* Topocentric terms */ -/* ================= */ - -/* Convert UT to local solar time in radians. */ - tsol = fmod(ut, 1.0) * D2PI + elong; - -/* FUNDAMENTAL ARGUMENTS: Simon et al. 1994. */ - -/* Combine time argument (millennia) with deg/arcsec factor. */ - w = t / 3600.0; - -/* Sun Mean Longitude. */ - elsun = fmod(280.46645683 + 1296027711.03429 * w, 360.0) * DD2R; - -/* Sun Mean Anomaly. */ - emsun = fmod(357.52910918 + 1295965810.481 * w, 360.0) * DD2R; - -/* Mean Elongation of Moon from Sun. */ - d = fmod(297.85019547 + 16029616012.090 * w, 360.0) * DD2R; - -/* Mean Longitude of Jupiter. */ - elj = fmod(34.35151874 + 109306899.89453 * w, 360.0) * DD2R; - -/* Mean Longitude of Saturn. */ - els = fmod(50.07744430 + 44046398.47038 * w, 360.0) * DD2R; - -/* TOPOCENTRIC TERMS: Moyer 1981 and Murray 1983. */ - wt = + 0.00029e-10 * u * sin(tsol + elsun - els) - + 0.00100e-10 * u * sin(tsol - 2.0 * emsun) - + 0.00133e-10 * u * sin(tsol - d) - + 0.00133e-10 * u * sin(tsol + elsun - elj) - - 0.00229e-10 * u * sin(tsol + 2.0 * elsun + emsun) - - 0.02200e-10 * v * cos(elsun + emsun) - + 0.05312e-10 * u * sin(tsol - emsun) - - 0.13677e-10 * u * sin(tsol + 2.0 * elsun) - - 1.31840e-10 * v * cos(elsun) - + 3.17679e-10 * u * sin(tsol); - -/* ===================== */ -/* Fairhead et al. model */ -/* ===================== */ - -/* T**0 */ - w0 = 0; - for (j = 473; j >= 0; j--) { - w0 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); - } - -/* T**1 */ - w1 = 0; - for (j = 678; j >= 474; j--) { - w1 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); - } - -/* T**2 */ - w2 = 0; - for (j = 763; j >= 679; j--) { - w2 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); - } - -/* T**3 */ - w3 = 0; - for (j = 783; j >= 764; j--) { - w3 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); - } - -/* T**4 */ - w4 = 0; - for (j = 786; j >= 784; j--) { - w4 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); - } - -/* Multiply by powers of T and combine. */ - wf = t * (t * (t * (t * w4 + w3) + w2) + w1) + w0; - -/* Adjustments to use JPL planetary masses instead of IAU. */ - wj = 0.00065e-6 * sin(6069.776754 * t + 4.021194) + - 0.00033e-6 * sin( 213.299095 * t + 5.543132) + - (-0.00196e-6 * sin(6208.294251 * t + 5.696701)) + - (-0.00173e-6 * sin( 74.781599 * t + 2.435900)) + - 0.03638e-6 * t * t; - -/* ============ */ -/* Final result */ -/* ============ */ - -/* TDB-TT in seconds. */ - w = wt + wf + wj; - - return w; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/dtf2d.c b/deps/sofa/20231011/c/src/dtf2d.c deleted file mode 100644 index d662d65..0000000 --- a/deps/sofa/20231011/c/src/dtf2d.c +++ /dev/null @@ -1,256 +0,0 @@ -#include "sofa.h" -#include "sofam.h" -#include - -int iauDtf2d(const char *scale, int iy, int im, int id, - int ihr, int imn, double sec, double *d1, double *d2) -/* -** - - - - - - - - - -** i a u D t f 2 d -** - - - - - - - - - -** -** Encode date and time fields into 2-part Julian Date (or in the case -** of UTC a quasi-JD form that includes special provision for leap -** seconds). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** scale char[] time scale ID (Note 1) -** iy,im,id int year, month, day in Gregorian calendar (Note 2) -** ihr,imn int hour, minute -** sec double seconds -** -** Returned: -** d1,d2 double 2-part Julian Date (Notes 3,4) -** -** Returned (function value): -** int status: +3 = both of next two -** +2 = time is after end of day (Note 5) -** +1 = dubious year (Note 6) -** 0 = OK -** -1 = bad year -** -2 = bad month -** -3 = bad day -** -4 = bad hour -** -5 = bad minute -** -6 = bad second (<0) -** -** Notes: -** -** 1) scale identifies the time scale. Only the value "UTC" (in upper -** case) is significant, and enables handling of leap seconds (see -** Note 4). -** -** 2) For calendar conventions and limitations, see iauCal2jd. -** -** 3) The sum of the results, d1+d2, is Julian Date, where normally d1 -** is the Julian Day Number and d2 is the fraction of a day. In the -** case of UTC, where the use of JD is problematical, special -** conventions apply: see the next note. -** -** 4) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The SOFA internal convention is that -** the quasi-JD day represents UTC days whether the length is 86399, -** 86400 or 86401 SI seconds. In the 1960-1972 era there were -** smaller jumps (in either direction) each time the linear UTC(TAI) -** expression was changed, and these "mini-leaps" are also included -** in the SOFA convention. -** -** 5) The warning status "time is after end of day" usually means that -** the sec argument is greater than 60.0. However, in a day ending -** in a leap second the limit changes to 61.0 (or 59.0 in the case -** of a negative leap second). -** -** 6) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 7) Only in the case of continuous and regular time scales (TAI, TT, -** TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly -** speaking. In the other cases (UT1 and UTC) the result must be -** used with circumspection; in particular the difference between -** two such results cannot be interpreted as a precise time -** interval. -** -** Called: -** iauCal2jd Gregorian calendar to JD -** iauDat delta(AT) = TAI-UTC -** iauJd2cal JD to Gregorian calendar -** -** This revision: 2023 May 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int js, iy2, im2, id2; - double dj, w, day, seclim, dat0, dat12, dat24, dleap, time; - - -/* Today's Julian Day Number. */ - js = iauCal2jd(iy, im, id, &dj, &w); - if ( js ) return js; - dj += w; - -/* Day length and final minute length in seconds (provisional). */ - day = DAYSEC; - seclim = 60.0; - -/* Deal with the UTC leap second case. */ - if ( ! strcmp(scale,"UTC") ) { - - /* TAI-UTC at 0h today. */ - js = iauDat(iy, im, id, 0.0, &dat0); - if ( js < 0 ) return js; - - /* TAI-UTC at 12h today (to detect drift). */ - js = iauDat(iy, im, id, 0.5, &dat12); - if ( js < 0 ) return js; - - /* TAI-UTC at 0h tomorrow (to detect jumps). */ - js = iauJd2cal ( dj, 1.5, &iy2, &im2, &id2, &w); - if ( js ) return js; - js = iauDat(iy2, im2, id2, 0.0, &dat24); - if ( js < 0 ) return js; - - /* Any sudden change in TAI-UTC between today and tomorrow. */ - dleap = dat24 - (2.0*dat12 - dat0); - - /* If leap second day, correct the day and final minute lengths. */ - day += dleap; - if ( ihr == 23 && imn == 59 ) seclim += dleap; - - /* End of UTC-specific actions. */ - } - -/* Validate the time. */ - if ( ihr >= 0 && ihr <= 23 ) { - if ( imn >= 0 && imn <= 59 ) { - if ( sec >= 0.0 ) { - if ( sec >= seclim ) { - js += 2; - } - } else { - js = -6; - } - } else { - js = -5; - } - } else { - js = -4; - } - if ( js < 0 ) return js; - -/* The time in days. */ - time = ( 60.0 * ( (double) ( 60 * ihr + imn ) ) + sec ) / day; - -/* Return the date and time. */ - *d1 = dj; - *d2 = time; - -/* Status. */ - return js; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eceq06.c b/deps/sofa/20231011/c/src/eceq06.c deleted file mode 100644 index c0505ea..0000000 --- a/deps/sofa/20231011/c/src/eceq06.c +++ /dev/null @@ -1,184 +0,0 @@ -#include "sofa.h" - -void iauEceq06(double date1, double date2, double dl, double db, - double *dr, double *dd) -/* -** - - - - - - - - - - -** i a u E c e q 0 6 -** - - - - - - - - - - -** -** Transformation from ecliptic coordinates (mean equinox and ecliptic -** of date) to ICRS RA,Dec, using the IAU 2006 precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian date (Note 1) -** dl,db double ecliptic longitude and latitude (radians) -** -** Returned: -** dr,dd double ICRS right ascension and declination (radians) -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) No assumptions are made about whether the coordinates represent -** starlight and embody astrometric effects such as parallax or -** aberration. -** -** 3) The transformation is approximately that from ecliptic longitude -** and latitude (mean equinox and ecliptic of date) to mean J2000.0 -** right ascension and declination, with only frame bias (always -** less than 25 mas) to disturb this classical picture. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 -** iauTrxp product of transpose of r-matrix and p-vector -** iauC2s unit vector to spherical coordinates -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rm[3][3], v1[3], v2[3], a, b; - - -/* Spherical to Cartesian. */ - iauS2c(dl, db, v1); - -/* Rotation matrix, ICRS equatorial to ecliptic. */ - iauEcm06(date1, date2, rm); - -/* The transformation from ecliptic to ICRS. */ - iauTrxp(rm, v1, v2); - -/* Cartesian to spherical. */ - iauC2s(v2, &a, &b); - -/* Express in conventional ranges. */ - *dr = iauAnp(a); - *dd = iauAnpm(b); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ecm06.c b/deps/sofa/20231011/c/src/ecm06.c deleted file mode 100644 index e17754e..0000000 --- a/deps/sofa/20231011/c/src/ecm06.c +++ /dev/null @@ -1,187 +0,0 @@ -#include "sofa.h" - -void iauEcm06(double date1, double date2, double rm[3][3]) -/* -** - - - - - - - - - -** i a u E c m 0 6 -** - - - - - - - - - -** -** ICRS equatorial to ecliptic rotation matrix, IAU 2006. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian date (Note 1) -** -** Returned: -** rm double[3][3] ICRS to ecliptic rotation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix is in the sense -** -** E_ep = rm x P_ICRS, -** -** where P_ICRS is a vector with respect to ICRS right ascension -** and declination axes and E_ep is the same vector with respect to -** the (inertial) ecliptic and equinox of date. -** -** P_ICRS is a free vector, merely a direction, typically of unit -** magnitude, and not bound to any particular spatial origin, such -** as the Earth, Sun or SSB. No assumptions are made about whether -** it represents starlight and embodies astrometric effects such as -** parallax or aberration. The transformation is approximately that -** between mean J2000.0 right ascension and declination and ecliptic -** longitude and latitude, with only frame bias (always less than -** 25 mas) to disturb this classical picture. -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** iauPmat06 PB matrix, IAU 2006 -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRxr product of two r-matrices -** -** This revision: 2023 February 26 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double ob, bp[3][3], e[3][3]; - - -/* Obliquity, IAU 2006. */ - ob = iauObl06(date1, date2); - -/* Precession-bias matrix, IAU 2006. */ - iauPmat06(date1, date2, bp); - -/* Equatorial of date to ecliptic matrix. */ - iauIr(e); - iauRx(ob, e); - -/* ICRS to ecliptic coordinates rotation matrix, IAU 2006. */ - iauRxr(e, bp, rm); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ee00.c b/deps/sofa/20231011/c/src/ee00.c deleted file mode 100644 index 22b285a..0000000 --- a/deps/sofa/20231011/c/src/ee00.c +++ /dev/null @@ -1,180 +0,0 @@ -#include "sofa.h" - -double iauEe00(double date1, double date2, double epsa, double dpsi) -/* -** - - - - - - - - -** i a u E e 0 0 -** - - - - - - - - -** -** The equation of the equinoxes, compatible with IAU 2000 resolutions, -** given the nutation in longitude and the mean obliquity. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** epsa double mean obliquity (Note 2) -** dpsi double nutation in longitude (Note 3) -** -** Returned (function value): -** double equation of the equinoxes (Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The obliquity, in radians, is mean of date. -** -** 3) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** 4) The result is compatible with the IAU 2000 resolutions. For -** further details, see IERS Conventions 2003 and Capitaine et al. -** (2002). -** -** Called: -** iauEect00 equation of the equinoxes complementary terms -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double ee; - - -/* Equation of the equinoxes. */ - ee = dpsi * cos(epsa) + iauEect00(date1, date2); - - return ee; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ee00a.c b/deps/sofa/20231011/c/src/ee00a.c deleted file mode 100644 index bce1c47..0000000 --- a/deps/sofa/20231011/c/src/ee00a.c +++ /dev/null @@ -1,187 +0,0 @@ -#include "sofa.h" - -double iauEe00a(double date1, double date2) -/* -** - - - - - - - - - -** i a u E e 0 0 a -** - - - - - - - - - -** -** Equation of the equinoxes, compatible with IAU 2000 resolutions. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** 3) The result is compatible with the IAU 2000 resolutions. For -** further details, see IERS Conventions 2003 and Capitaine et al. -** (2002). -** -** Called: -** iauPr00 IAU 2000 precession adjustments -** iauObl80 mean obliquity, IAU 1980 -** iauNut00a nutation, IAU 2000A -** iauEe00 equation of the equinoxes, IAU 2000 -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003). -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsipr, depspr, epsa, dpsi, deps, ee; - - -/* IAU 2000 precession-rate adjustments. */ - iauPr00(date1, date2, &dpsipr, &depspr); - -/* Mean obliquity, consistent with IAU 2000 precession-nutation. */ - epsa = iauObl80(date1, date2) + depspr; - -/* Nutation in longitude. */ - iauNut00a(date1, date2, &dpsi, &deps); - -/* Equation of the equinoxes. */ - ee = iauEe00(date1, date2, epsa, dpsi); - - return ee; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ee00b.c b/deps/sofa/20231011/c/src/ee00b.c deleted file mode 100644 index 49e61e7..0000000 --- a/deps/sofa/20231011/c/src/ee00b.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "sofa.h" - -double iauEe00b(double date1, double date2) -/* -** - - - - - - - - - -** i a u E e 0 0 b -** - - - - - - - - - -** -** Equation of the equinoxes, compatible with IAU 2000 resolutions but -** using the truncated nutation model IAU 2000B. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** 3) The result is compatible with the IAU 2000 resolutions except -** that accuracy has been compromised (1 mas) for the sake of speed. -** For further details, see McCarthy & Luzum (2003), IERS -** Conventions 2003 and Capitaine et al. (2003). -** -** Called: -** iauPr00 IAU 2000 precession adjustments -** iauObl80 mean obliquity, IAU 1980 -** iauNut00b nutation, IAU 2000B -** iauEe00 equation of the equinoxes, IAU 2000 -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Celestial Mechanics & -** Dynamical Astronomy, 85, 37-49 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsipr, depspr, epsa, dpsi, deps, ee; - - -/* IAU 2000 precession-rate adjustments. */ - iauPr00(date1, date2, &dpsipr, &depspr); - -/* Mean obliquity, consistent with IAU 2000 precession-nutation. */ - epsa = iauObl80(date1, date2) + depspr; - -/* Nutation in longitude. */ - iauNut00b(date1, date2, &dpsi, &deps); - -/* Equation of the equinoxes. */ - ee = iauEe00(date1, date2, epsa, dpsi); - - return ee; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ee06a.c b/deps/sofa/20231011/c/src/ee06a.c deleted file mode 100644 index c78b77a..0000000 --- a/deps/sofa/20231011/c/src/ee06a.c +++ /dev/null @@ -1,174 +0,0 @@ -#include "sofa.h" - -double iauEe06a(double date1, double date2) -/* -** - - - - - - - - - -** i a u E e 0 6 a -** - - - - - - - - - -** -** Equation of the equinoxes, compatible with IAU 2000 resolutions and -** IAU 2006/2000A precession-nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** Called: -** iauAnpm normalize angle into range +/- pi -** iauGst06a Greenwich apparent sidereal time, IAU 2006/2000A -** iauGmst06 Greenwich mean sidereal time, IAU 2006 -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gst06a, gmst06, ee; - - -/* Apparent and mean sidereal times. */ - gst06a = iauGst06a(0.0, 0.0, date1, date2); - gmst06 = iauGmst06(0.0, 0.0, date1, date2); - -/* Equation of the equinoxes. */ - ee = iauAnpm(gst06a - gmst06); - - return ee; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eect00.c b/deps/sofa/20231011/c/src/eect00.c deleted file mode 100644 index dbf7edf..0000000 --- a/deps/sofa/20231011/c/src/eect00.c +++ /dev/null @@ -1,335 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauEect00(double date1, double date2) -/* -** - - - - - - - - - - -** i a u E e c t 0 0 -** - - - - - - - - - - -** -** Equation of the equinoxes complementary terms, consistent with -** IAU 2000 resolutions. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double complementary terms (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The "complementary terms" are part of the equation of the -** equinoxes (EE), classically the difference between apparent and -** mean Sidereal Time: -** -** GAST = GMST + EE -** -** with: -** -** EE = dpsi * cos(eps) -** -** where dpsi is the nutation in longitude and eps is the obliquity -** of date. However, if the rotation of the Earth were constant in -** an inertial frame the classical formulation would lead to -** apparent irregularities in the UT1 timescale traceable to side- -** effects of precession-nutation. In order to eliminate these -** effects from UT1, "complementary terms" were introduced in 1994 -** (IAU, 1994) and took effect from 1997 (Capitaine and Gontier, -** 1993): -** -** GAST = GMST + CT + EE -** -** By convention, the complementary terms are included as part of -** the equation of the equinoxes rather than as part of the mean -** Sidereal Time. This slightly compromises the "geometrical" -** interpretation of mean sidereal time but is otherwise -** inconsequential. -** -** The present function computes CT in the above expression, -** compatible with IAU 2000 resolutions (Capitaine et al., 2002, and -** IERS Conventions 2003). -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N. & Gontier, A.-M., Astron.Astrophys., 275, -** 645-650 (1993) -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astron.Astrophys., 406, -** 1135-1149 (2003) -** -** IAU Resolution C7, Recommendation 3 (1994) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Time since J2000.0, in Julian centuries */ - double t; - -/* Miscellaneous */ - int i, j; - double a, s0, s1; - -/* Fundamental arguments */ - double fa[14]; - -/* Returned value. */ - double eect; - -/* ----------------------------------------- */ -/* The series for the EE complementary terms */ -/* ----------------------------------------- */ - - typedef struct { - int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */ - double s, c; /* sine and cosine coefficients */ - } TERM; - -/* Terms of order t^0 */ - static const TERM e0[] = { - - /* 1-10 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 2640.96e-6, -0.39e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, 63.52e-6, -0.02e-6 }, - {{ 0, 0, 2, -2, 3, 0, 0, 0}, 11.75e-6, 0.01e-6 }, - {{ 0, 0, 2, -2, 1, 0, 0, 0}, 11.21e-6, 0.01e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, -4.55e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 3, 0, 0, 0}, 2.02e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.98e-6, 0.00e-6 }, - {{ 0, 0, 0, 0, 3, 0, 0, 0}, -1.72e-6, 0.00e-6 }, - {{ 0, 1, 0, 0, 1, 0, 0, 0}, -1.41e-6, -0.01e-6 }, - {{ 0, 1, 0, 0, -1, 0, 0, 0}, -1.26e-6, -0.01e-6 }, - - /* 11-20 */ - {{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.63e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.63e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 3, 0, 0, 0}, 0.46e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 1, 0, 0, 0}, 0.45e-6, 0.00e-6 }, - {{ 0, 0, 4, -4, 4, 0, 0, 0}, 0.36e-6, 0.00e-6 }, - {{ 0, 0, 1, -1, 1, -8, 12, 0}, -0.24e-6, -0.12e-6 }, - {{ 0, 0, 2, 0, 0, 0, 0, 0}, 0.32e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, 0.28e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 3, 0, 0, 0}, 0.27e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.26e-6, 0.00e-6 }, - - /* 21-30 */ - {{ 0, 0, 2, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -3, 0, 0, 0}, 0.19e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -1, 0, 0, 0}, 0.18e-6, 0.00e-6 }, - {{ 0, 0, 0, 0, 0, 8,-13, -1}, -0.10e-6, 0.05e-6 }, - {{ 0, 0, 0, 2, 0, 0, 0, 0}, 0.15e-6, 0.00e-6 }, - {{ 2, 0, -2, 0, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, - {{ 1, 0, 0, -2, 1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 2, 0, 0, 0}, -0.14e-6, 0.00e-6 }, - {{ 1, 0, 0, -2, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, - {{ 0, 0, 4, -2, 4, 0, 0, 0}, 0.13e-6, 0.00e-6 }, - - /* 31-33 */ - {{ 0, 0, 2, -2, 4, 0, 0, 0}, -0.11e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -3, 0, 0, 0}, 0.11e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -1, 0, 0, 0}, 0.11e-6, 0.00e-6 } - }; - -/* Terms of order t^1 */ - static const TERM e1[] = { - {{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.87e-6, 0.00e-6 } - }; - -/* Number of terms in the series */ - const int NE0 = (int) (sizeof e0 / sizeof (TERM)); - const int NE1 = (int) (sizeof e1 / sizeof (TERM)); - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental epoch J2000.0 and current date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Fundamental Arguments (from IERS Conventions 2003) */ - -/* Mean anomaly of the Moon. */ - fa[0] = iauFal03(t); - -/* Mean anomaly of the Sun. */ - fa[1] = iauFalp03(t); - -/* Mean longitude of the Moon minus that of the ascending node. */ - fa[2] = iauFaf03(t); - -/* Mean elongation of the Moon from the Sun. */ - fa[3] = iauFad03(t); - -/* Mean longitude of the ascending node of the Moon. */ - fa[4] = iauFaom03(t); - -/* Mean longitude of Venus. */ - fa[5] = iauFave03(t); - -/* Mean longitude of Earth. */ - fa[6] = iauFae03(t); - -/* General precession in longitude. */ - fa[7] = iauFapa03(t); - -/* Evaluate the EE complementary terms. */ - s0 = 0.0; - s1 = 0.0; - - for (i = NE0-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)(e0[i].nfa[j]) * fa[j]; - } - s0 += e0[i].s * sin(a) + e0[i].c * cos(a); - } - - for (i = NE1-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)(e1[i].nfa[j]) * fa[j]; - } - s1 += e1[i].s * sin(a) + e1[i].c * cos(a); - } - - eect = (s0 + s1 * t ) * DAS2R; - - return eect; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eform.c b/deps/sofa/20231011/c/src/eform.c deleted file mode 100644 index 376c961..0000000 --- a/deps/sofa/20231011/c/src/eform.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauEform ( int n, double *a, double *f ) -/* -** - - - - - - - - - -** i a u E f o r m -** - - - - - - - - - -** -** Earth reference ellipsoids. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** n int ellipsoid identifier (Note 1) -** -** Returned: -** a double equatorial radius (meters, Note 2) -** f double flattening (Note 2) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal identifier (Note 3) -** -** Notes: -** -** 1) The identifier n is a number that specifies the choice of -** reference ellipsoid. The following are supported: -** -** n ellipsoid -** -** 1 WGS84 -** 2 GRS80 -** 3 WGS72 -** -** The n value has no significance outside the SOFA software. For -** convenience, symbols WGS84 etc. are defined in sofam.h. -** -** 2) The ellipsoid parameters are returned in the form of equatorial -** radius in meters (a) and flattening (f). The latter is a number -** around 0.00335, i.e. around 1/298. -** -** 3) For the case where an unsupported n value is supplied, zero a and -** f are returned, as well as error status. -** -** References: -** -** Department of Defense World Geodetic System 1984, National -** Imagery and Mapping Agency Technical Report 8350.2, Third -** Edition, p3-2. -** -** Moritz, H., Bull. Geodesique 66-2, 187 (1992). -** -** The Department of Defense World Geodetic System 1972, World -** Geodetic System Committee, May 1974. -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** p220. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Look up a and f for the specified reference ellipsoid. */ - switch ( n ) { - - case WGS84: - *a = 6378137.0; - *f = 1.0 / 298.257223563; - break; - - case GRS80: - *a = 6378137.0; - *f = 1.0 / 298.257222101; - break; - - case WGS72: - *a = 6378135.0; - *f = 1.0 / 298.26; - break; - - default: - - /* Invalid identifier. */ - *a = 0.0; - *f = 0.0; - return -1; - - } - -/* OK status. */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eo06a.c b/deps/sofa/20231011/c/src/eo06a.c deleted file mode 100644 index 771be27..0000000 --- a/deps/sofa/20231011/c/src/eo06a.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "sofa.h" - -double iauEo06a(double date1, double date2) -/* -** - - - - - - - - - -** i a u E o 0 6 a -** - - - - - - - - - -** -** Equation of the origins, IAU 2006 precession and IAU 2000A nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the equation of the origins in radians -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The equation of the origins is the distance between the true -** equinox and the celestial intermediate origin and, equivalently, -** the difference between Earth rotation angle and Greenwich -** apparent sidereal time (ERA-GST). It comprises the precession -** (since J2000.0) in right ascension plus the equation of the -** equinoxes (including the small correction terms). -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauEors equation of the origins, given NPB matrix and s -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3], x, y, s, eo; - - -/* Classical nutation x precession x bias matrix. */ - iauPnm06a(date1, date2, r); - -/* Extract CIP coordinates. */ - iauBpn2xy(r, &x, &y); - -/* The CIO locator, s. */ - s = iauS06(date1, date2, x, y); - -/* Solve for the EO. */ - eo = iauEors(r, s); - - return eo; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eors.c b/deps/sofa/20231011/c/src/eors.c deleted file mode 100644 index d6aae5c..0000000 --- a/deps/sofa/20231011/c/src/eors.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" - -double iauEors(double rnpb[3][3], double s) -/* -** - - - - - - - - -** i a u E o r s -** - - - - - - - - -** -** Equation of the origins, given the classical NPB matrix and the -** quantity s. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rnpb double[3][3] classical nutation x precession x bias matrix -** s double the quantity s (the CIO locator) in radians -** -** Returned (function value): -** double the equation of the origins in radians -** -** Notes: -** -** 1) The equation of the origins is the distance between the true -** equinox and the celestial intermediate origin and, equivalently, -** the difference between Earth rotation angle and Greenwich -** apparent sidereal time (ERA-GST). It comprises the precession -** (since J2000.0) in right ascension plus the equation of the -** equinoxes (including the small correction terms). -** -** 2) The algorithm is from Wallace & Capitaine (2006). -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2023 May 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, ax, xs, ys, zs, p, q, eo; - - -/* Evaluate Wallace & Capitaine (2006) expression (16). */ - x = rnpb[2][0]; - ax = x / (1.0 + rnpb[2][2]); - xs = 1.0 - ax * x; - ys = -ax * rnpb[2][1]; - zs = -x; - p = rnpb[0][0] * xs + rnpb[0][1] * ys + rnpb[0][2] * zs; - q = rnpb[1][0] * xs + rnpb[1][1] * ys + rnpb[1][2] * zs; - eo = ((p != 0.0) || (q != 0.0)) ? s - atan2(q, p) : s; - - return eo; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/epb.c b/deps/sofa/20231011/c/src/epb.c deleted file mode 100644 index 4256fa4..0000000 --- a/deps/sofa/20231011/c/src/epb.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauEpb(double dj1, double dj2) -/* -** - - - - - - - -** i a u E p b -** - - - - - - - -** -** Julian Date to Besselian Epoch. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dj1,dj2 double Julian Date (Notes 3,4) -** -** Returned (function value): -** double Besselian Epoch. -** -** Notes: -** -** 1) Besselian Epoch is a method of expressing a moment in time as a -** year plus fraction. It was superseded by Julian Year (see the -** function iauEpj). -** -** 2) The start of a Besselian year is when the right ascension of -** the fictitious mean Sun is 18h 40m, and the unit is the tropical -** year. The conventional definition (see Lieske 1979) is that -** Besselian Epoch B1900.0 is JD 2415020.31352 and the length of the -** year is 365.242198781 days. -** -** 3) The time scale for the JD, originally Ephemeris Time, is TDB, -** which for all practical purposes in the present context is -** indistinguishable from TT. -** -** 4) The Julian Date is supplied in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding dj1 and -** dj2. The maximum resolution is achieved if dj1 is 2451545.0 -** (J2000.0). -** -** Reference: -** -** Lieske, J.H., 1979. Astron.Astrophys., 73, 282. -** -** This revision: 2023 May 5 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* J2000.0-B1900.0 (2415019.81352) in days */ - const double D1900 = 36524.68648; - - return 1900.0 + ((dj1 - DJ00) + (dj2 + D1900)) / DTY; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/epb2jd.c b/deps/sofa/20231011/c/src/epb2jd.c deleted file mode 100644 index c9caf1d..0000000 --- a/deps/sofa/20231011/c/src/epb2jd.c +++ /dev/null @@ -1,142 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauEpb2jd(double epb, double *djm0, double *djm) -/* -** - - - - - - - - - - -** i a u E p b 2 j d -** - - - - - - - - - - -** -** Besselian Epoch to Julian Date. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epb double Besselian Epoch (e.g. 1957.3) -** -** Returned: -** djm0 double MJD zero-point: always 2400000.5 -** djm double Modified Julian Date -** -** Note: -** -** The Julian Date is returned in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding djm0 and -** djm. -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - *djm0 = DJM0; - *djm = 15019.81352 + (epb - 1900.0) * DTY; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/epj.c b/deps/sofa/20231011/c/src/epj.c deleted file mode 100644 index d42befb..0000000 --- a/deps/sofa/20231011/c/src/epj.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauEpj(double dj1, double dj2) -/* -** - - - - - - - -** i a u E p j -** - - - - - - - -** -** Julian Date to Julian Epoch. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dj1,dj2 double Julian Date (Note 4) -** -** Returned (function value): -** double Julian Epoch -** -** Notes: -** -** 1) Julian Epoch is a method of expressing a moment in time as a -** year plus fraction. -** -** 2) Julian Epoch J2000.0 is 2000 Jan 1.5, and the length of the year -** is 365.25 days. -** -** 3) For historical reasons, the time scale formally associated with -** Julian Epoch is TDB (or TT, near enough). However, Julian Epoch -** can be used more generally as a calendrical convention to -** represent other time scales such as TAI and TCB. This is -** analogous to Julian Date, which was originally defined -** specifically as a way of representing Universal Times but is now -** routinely used for any of the regular time scales. -** -** 4) The Julian Date is supplied in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding dj1 and -** dj2. The maximum resolution is achieved if dj1 is 2451545.0 -** (J2000.0). -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** -** This revision: 2022 May 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double epj; - - - epj = 2000.0 + ((dj1 - DJ00) + dj2) / DJY; - - return epj; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/epj2jd.c b/deps/sofa/20231011/c/src/epj2jd.c deleted file mode 100644 index 3b373e1..0000000 --- a/deps/sofa/20231011/c/src/epj2jd.c +++ /dev/null @@ -1,142 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauEpj2jd(double epj, double *djm0, double *djm) -/* -** - - - - - - - - - - -** i a u E p j 2 j d -** - - - - - - - - - - -** -** Julian Epoch to Julian Date. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epj double Julian Epoch (e.g. 1996.8) -** -** Returned: -** djm0 double MJD zero-point: always 2400000.5 -** djm double Modified Julian Date -** -** Note: -** -** The Julian Date is returned in two pieces, in the usual SOFA -** manner, which is designed to preserve time resolution. The -** Julian Date is available as a single number by adding djm0 and -** djm. -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - *djm0 = DJM0; - *djm = DJM00 + (epj - 2000.0) * 365.25; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/epv00.c b/deps/sofa/20231011/c/src/epv00.c deleted file mode 100644 index 8640dce..0000000 --- a/deps/sofa/20231011/c/src/epv00.c +++ /dev/null @@ -1,2642 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauEpv00(double date1, double date2, - double pvh[2][3], double pvb[2][3]) -/* -** - - - - - - - - - -** i a u E p v 0 0 -** - - - - - - - - - -** -** Earth position and velocity, heliocentric and barycentric, with -** respect to the Barycentric Celestial Reference System. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TDB date (Note 1) -** -** Returned: -** pvh double[2][3] heliocentric Earth position/velocity -** pvb double[2][3] barycentric Earth position/velocity -** -** Returned (function value): -** int status: 0 = OK -** +1 = warning: date outside -** the range 1900-2100 AD -** -** Notes: -** -** 1) The TDB date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TDB)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. However, -** the accuracy of the result is more likely to be limited by the -** algorithm itself than the way the date has been expressed. -** -** n.b. TT can be used instead of TDB in most applications. -** -** 2) On return, the arrays pvh and pvb contain the following: -** -** pvh[0][0] x } -** pvh[0][1] y } heliocentric position, au -** pvh[0][2] z } -** -** pvh[1][0] xdot } -** pvh[1][1] ydot } heliocentric velocity, au/d -** pvh[1][2] zdot } -** -** pvb[0][0] x } -** pvb[0][1] y } barycentric position, au -** pvb[0][2] z } -** -** pvb[1][0] xdot } -** pvb[1][1] ydot } barycentric velocity, au/d -** pvb[1][2] zdot } -** -** The vectors are oriented with respect to the BCRS. The time unit -** is one day in TDB. -** -** 3) The function is a SIMPLIFIED SOLUTION from the planetary theory -** VSOP2000 (X. Moisson, P. Bretagnon, 2001, Celes. Mechanics & -** Dyn. Astron., 80, 3/4, 205-213) and is an adaptation of original -** Fortran code supplied by P. Bretagnon (private comm., 2000). -** -** 4) Comparisons over the time span 1900-2100 with this simplified -** solution and the JPL DE405 ephemeris give the following results: -** -** RMS max -** Heliocentric: -** position error 3.7 11.2 km -** velocity error 1.4 5.0 mm/s -** -** Barycentric: -** position error 4.6 13.4 km -** velocity error 1.4 4.9 mm/s -** -** Comparisons with the JPL DE406 ephemeris show that by 1800 and -** 2200 the position errors are approximately double their 1900-2100 -** size. By 1500 and 2500 the deterioration is a factor of 10 and -** by 1000 and 3000 a factor of 60. The velocity accuracy falls off -** at about half that rate. -** -** 5) It is permissible to use the same array for pvh and pvb, which -** will receive the barycentric values. -** -** This revision: 2023 March 1 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* -** Matrix elements for orienting the analytical model to DE405. -** -** The corresponding Euler angles are: -** -** d ' " -** 1st rotation - 23 26 21.4091 about the x-axis (obliquity) -** 2nd rotation + 0.0475 about the z-axis (RA offset) -** -** These were obtained empirically, by comparisons with DE405 over -** 1900-2100. -*/ - static const double am12 = 0.000000211284, - am13 = -0.000000091603, - am21 = -0.000000230286, - am22 = 0.917482137087, - am23 = -0.397776982902, - am32 = 0.397776982902, - am33 = 0.917482137087; - -/* -** ---------------------- -** Ephemeris Coefficients -** ---------------------- -** -** The ephemeris consists of harmonic terms for predicting (i) the Sun -** to Earth vector and (ii) the Solar-System-barycenter to Sun vector -** respectively. The coefficients are stored in arrays which, although -** 1-demensional, contain groups of three. Each triplet of -** coefficients is the amplitude, phase and frequency for one term in -** the model, and each array contains the number of terms called for by -** the model. -** -** There are eighteen such arrays, named as follows: -** -** array model power of T component -** -** e0x Sun-to-Earth 0 x -** e0y Sun-to-Earth 0 y -** e0z Sun-to-Earth 0 z -** -** e1x Sun-to-Earth 1 x -** e1y Sun-to-Earth 1 y -** e1z Sun-to-Earth 1 z -** -** e2x Sun-to-Earth 2 x -** e2y Sun-to-Earth 2 y -** e2z Sun-to-Earth 2 z -** -** s0x SSB-to-Sun 0 x -** s0y SSB-to-Sun 0 y -** s0z SSB-to-Sun 0 z -** -** s1x SSB-to-Sun 1 x -** s1y SSB-to-Sun 1 y -** s1z SSB-to-Sun 1 z -** -** s2x SSB-to-Sun 2 x -** s2y SSB-to-Sun 2 y -** s2z SSB-to-Sun 2 z -*/ - -/* Sun-to-Earth, T^0, X */ - static const double e0x[] = { - 0.9998292878132e+00, 0.1753485171504e+01, 0.6283075850446e+01, - 0.8352579567414e-02, 0.1710344404582e+01, 0.1256615170089e+02, - 0.5611445335148e-02, 0.0000000000000e+00, 0.0000000000000e+00, - 0.1046664295572e-03, 0.1667225416770e+01, 0.1884922755134e+02, - 0.3110842534677e-04, 0.6687513390251e+00, 0.8399684731857e+02, - 0.2552413503550e-04, 0.5830637358413e+00, 0.5296909721118e+00, - 0.2137207845781e-04, 0.1092330954011e+01, 0.1577343543434e+01, - 0.1680240182951e-04, 0.4955366134987e+00, 0.6279552690824e+01, - 0.1679012370795e-04, 0.6153014091901e+01, 0.6286599010068e+01, - 0.1445526946777e-04, 0.3472744100492e+01, 0.2352866153506e+01, - - 0.1091038246184e-04, 0.3689845786119e+01, 0.5223693906222e+01, - 0.9344399733932e-05, 0.6073934645672e+01, 0.1203646072878e+02, - 0.8993182910652e-05, 0.3175705249069e+01, 0.1021328554739e+02, - 0.5665546034116e-05, 0.2152484672246e+01, 0.1059381944224e+01, - 0.6844146703035e-05, 0.1306964099750e+01, 0.5753384878334e+01, - 0.7346610905565e-05, 0.4354980070466e+01, 0.3981490189893e+00, - 0.6815396474414e-05, 0.2218229211267e+01, 0.4705732307012e+01, - 0.6112787253053e-05, 0.5384788425458e+01, 0.6812766822558e+01, - 0.4518120711239e-05, 0.6087604012291e+01, 0.5884926831456e+01, - 0.4521963430706e-05, 0.1279424524906e+01, 0.6256777527156e+01, - - 0.4497426764085e-05, 0.5369129144266e+01, 0.6309374173736e+01, - 0.4062190566959e-05, 0.5436473303367e+00, 0.6681224869435e+01, - 0.5412193480192e-05, 0.7867838528395e+00, 0.7755226100720e+00, - 0.5469839049386e-05, 0.1461440311134e+01, 0.1414349524433e+02, - 0.5205264083477e-05, 0.4432944696116e+01, 0.7860419393880e+01, - 0.2149759935455e-05, 0.4502237496846e+01, 0.1150676975667e+02, - 0.2279109618501e-05, 0.1239441308815e+01, 0.7058598460518e+01, - 0.2259282939683e-05, 0.3272430985331e+01, 0.4694002934110e+01, - 0.2558950271319e-05, 0.2265471086404e+01, 0.1216800268190e+02, - 0.2561581447555e-05, 0.1454740653245e+01, 0.7099330490126e+00, - - 0.1781441115440e-05, 0.2962068630206e+01, 0.7962980379786e+00, - 0.1612005874644e-05, 0.1473255041006e+01, 0.5486777812467e+01, - 0.1818630667105e-05, 0.3743903293447e+00, 0.6283008715021e+01, - 0.1818601377529e-05, 0.6274174354554e+01, 0.6283142985870e+01, - 0.1554475925257e-05, 0.1624110906816e+01, 0.2513230340178e+02, - 0.2090948029241e-05, 0.5852052276256e+01, 0.1179062909082e+02, - 0.2000176345460e-05, 0.4072093298513e+01, 0.1778984560711e+02, - 0.1289535917759e-05, 0.5217019331069e+01, 0.7079373888424e+01, - 0.1281135307881e-05, 0.4802054538934e+01, 0.3738761453707e+01, - 0.1518229005692e-05, 0.8691914742502e+00, 0.2132990797783e+00, - - 0.9450128579027e-06, 0.4601859529950e+01, 0.1097707878456e+02, - 0.7781119494996e-06, 0.1844352816694e+01, 0.8827390247185e+01, - 0.7733407759912e-06, 0.3582790154750e+01, 0.5507553240374e+01, - 0.7350644318120e-06, 0.2695277788230e+01, 0.1589072916335e+01, - 0.6535928827023e-06, 0.3651327986142e+01, 0.1176985366291e+02, - 0.6324624183656e-06, 0.2241302375862e+01, 0.6262300422539e+01, - 0.6298565300557e-06, 0.4407122406081e+01, 0.6303851278352e+01, - 0.8587037089179e-06, 0.3024307223119e+01, 0.1672837615881e+03, - 0.8299954491035e-06, 0.6192539428237e+01, 0.3340612434717e+01, - 0.6311263503401e-06, 0.2014758795416e+01, 0.7113454667900e-02, - - 0.6005646745452e-06, 0.3399500503397e+01, 0.4136910472696e+01, - 0.7917715109929e-06, 0.2493386877837e+01, 0.6069776770667e+01, - 0.7556958099685e-06, 0.4159491740143e+01, 0.6496374930224e+01, - 0.6773228244949e-06, 0.4034162934230e+01, 0.9437762937313e+01, - 0.5370708577847e-06, 0.1562219163734e+01, 0.1194447056968e+01, - 0.5710804266203e-06, 0.2662730803386e+01, 0.6282095334605e+01, - 0.5709824583726e-06, 0.3985828430833e+01, 0.6284056366286e+01, - 0.5143950896447e-06, 0.1308144688689e+01, 0.6290189305114e+01, - 0.5088010604546e-06, 0.5352817214804e+01, 0.6275962395778e+01, - 0.4960369085172e-06, 0.2644267922349e+01, 0.6127655567643e+01, - - 0.4803137891183e-06, 0.4008844192080e+01, 0.6438496133249e+01, - 0.5731747768225e-06, 0.3794550174597e+01, 0.3154687086868e+01, - 0.4735947960579e-06, 0.6107118308982e+01, 0.3128388763578e+01, - 0.4808348796625e-06, 0.4771458618163e+01, 0.8018209333619e+00, - 0.4115073743137e-06, 0.3327111335159e+01, 0.8429241228195e+01, - 0.5230575889287e-06, 0.5305708551694e+01, 0.1336797263425e+02, - 0.5133977889215e-06, 0.5784230738814e+01, 0.1235285262111e+02, - 0.5065815825327e-06, 0.2052064793679e+01, 0.1185621865188e+02, - 0.4339831593868e-06, 0.3644994195830e+01, 0.1726015463500e+02, - 0.3952928638953e-06, 0.4930376436758e+01, 0.5481254917084e+01, - - 0.4898498111942e-06, 0.4542084219731e+00, 0.9225539266174e+01, - 0.4757490209328e-06, 0.3161126388878e+01, 0.5856477690889e+01, - 0.4727701669749e-06, 0.6214993845446e+00, 0.2544314396739e+01, - 0.3800966681863e-06, 0.3040132339297e+01, 0.4265981595566e+00, - 0.3257301077939e-06, 0.8064977360087e+00, 0.3930209696940e+01, - 0.3255810528674e-06, 0.1974147981034e+01, 0.2146165377750e+01, - 0.3252029748187e-06, 0.2845924913135e+01, 0.4164311961999e+01, - 0.3255505635308e-06, 0.3017900824120e+01, 0.5088628793478e+01, - 0.2801345211990e-06, 0.6109717793179e+01, 0.1256967486051e+02, - 0.3688987740970e-06, 0.2911550235289e+01, 0.1807370494127e+02, - - 0.2475153429458e-06, 0.2179146025856e+01, 0.2629832328990e-01, - 0.3033457749150e-06, 0.1994161050744e+01, 0.4535059491685e+01, - 0.2186743763110e-06, 0.5125687237936e+01, 0.1137170464392e+02, - 0.2764777032774e-06, 0.4822646860252e+00, 0.1256262854127e+02, - 0.2199028768592e-06, 0.4637633293831e+01, 0.1255903824622e+02, - 0.2046482824760e-06, 0.1467038733093e+01, 0.7084896783808e+01, - 0.2611209147507e-06, 0.3044718783485e+00, 0.7143069561767e+02, - 0.2286079656818e-06, 0.4764220356805e+01, 0.8031092209206e+01, - 0.1855071202587e-06, 0.3383637774428e+01, 0.1748016358760e+01, - 0.2324669506784e-06, 0.6189088449251e+01, 0.1831953657923e+02, - - 0.1709528015688e-06, 0.5874966729774e+00, 0.4933208510675e+01, - 0.2168156875828e-06, 0.4302994009132e+01, 0.1044738781244e+02, - 0.2106675556535e-06, 0.3800475419891e+01, 0.7477522907414e+01, - 0.1430213830465e-06, 0.1294660846502e+01, 0.2942463415728e+01, - 0.1388396901944e-06, 0.4594797202114e+01, 0.8635942003952e+01, - 0.1922258844190e-06, 0.4943044543591e+00, 0.1729818233119e+02, - 0.1888460058292e-06, 0.2426943912028e+01, 0.1561374759853e+03, - 0.1789449386107e-06, 0.1582973303499e+00, 0.1592596075957e+01, - 0.1360803685374e-06, 0.5197240440504e+01, 0.1309584267300e+02, - 0.1504038014709e-06, 0.3120360916217e+01, 0.1649636139783e+02, - - 0.1382769533389e-06, 0.6164702888205e+01, 0.7632943190217e+01, - 0.1438059769079e-06, 0.1437423770979e+01, 0.2042657109477e+02, - 0.1326303260037e-06, 0.3609688799679e+01, 0.1213955354133e+02, - 0.1159244950540e-06, 0.5463018167225e+01, 0.5331357529664e+01, - 0.1433118149136e-06, 0.6028909912097e+01, 0.7342457794669e+01, - 0.1234623148594e-06, 0.3109645574997e+01, 0.6279485555400e+01, - 0.1233949875344e-06, 0.3539359332866e+01, 0.6286666145492e+01, - 0.9927196061299e-07, 0.1259321569772e+01, 0.7234794171227e+01, - 0.1242302191316e-06, 0.1065949392609e+01, 0.1511046609763e+02, - 0.1098402195201e-06, 0.2192508743837e+01, 0.1098880815746e+02, - - 0.1158191395315e-06, 0.4054411278650e+01, 0.5729506548653e+01, - 0.9048475596241e-07, 0.5429764748518e+01, 0.9623688285163e+01, - 0.8889853269023e-07, 0.5046586206575e+01, 0.6148010737701e+01, - 0.1048694242164e-06, 0.2628858030806e+01, 0.6836645152238e+01, - 0.1112308378646e-06, 0.4177292719907e+01, 0.1572083878776e+02, - 0.8631729709901e-07, 0.1601345232557e+01, 0.6418140963190e+01, - 0.8527816951664e-07, 0.2463888997513e+01, 0.1471231707864e+02, - 0.7892139456991e-07, 0.3154022088718e+01, 0.2118763888447e+01, - 0.1051782905236e-06, 0.4795035816088e+01, 0.1349867339771e+01, - 0.1048219943164e-06, 0.2952983395230e+01, 0.5999216516294e+01, - - 0.7435760775143e-07, 0.5420547991464e+01, 0.6040347114260e+01, - 0.9869574106949e-07, 0.3695646753667e+01, 0.6566935184597e+01, - 0.9156886364226e-07, 0.3922675306609e+01, 0.5643178611111e+01, - 0.7006834356188e-07, 0.1233968624861e+01, 0.6525804586632e+01, - 0.9806170182601e-07, 0.1919542280684e+01, 0.2122839202813e+02, - 0.9052289673607e-07, 0.4615902724369e+01, 0.4690479774488e+01, - 0.7554200867893e-07, 0.1236863719072e+01, 0.1253985337760e+02, - 0.8215741286498e-07, 0.3286800101559e+00, 0.1097355562493e+02, - 0.7185178575397e-07, 0.5880942158367e+01, 0.6245048154254e+01, - 0.7130726476180e-07, 0.7674871987661e+00, 0.6321103546637e+01, - - 0.6650894461162e-07, 0.6987129150116e+00, 0.5327476111629e+01, - 0.7396888823688e-07, 0.3576824794443e+01, 0.5368044267797e+00, - 0.7420588884775e-07, 0.5033615245369e+01, 0.2354323048545e+02, - 0.6141181642908e-07, 0.9449927045673e+00, 0.1296430071988e+02, - 0.6373557924058e-07, 0.6206342280341e+01, 0.9517183207817e+00, - 0.6359474329261e-07, 0.5036079095757e+01, 0.1990745094947e+01, - 0.5740173582646e-07, 0.6105106371350e+01, 0.9555997388169e+00, - 0.7019864084602e-07, 0.7237747359018e+00, 0.5225775174439e+00, - 0.6398054487042e-07, 0.3976367969666e+01, 0.2407292145756e+02, - 0.7797092650498e-07, 0.4305423910623e+01, 0.2200391463820e+02, - - 0.6466760000900e-07, 0.3500136825200e+01, 0.5230807360890e+01, - 0.7529417043890e-07, 0.3514779246100e+01, 0.1842262939178e+02, - 0.6924571140892e-07, 0.2743457928679e+01, 0.1554202828031e+00, - 0.6220798650222e-07, 0.2242598118209e+01, 0.1845107853235e+02, - 0.5870209391853e-07, 0.2332832707527e+01, 0.6398972393349e+00, - 0.6263953473888e-07, 0.2191105358956e+01, 0.6277552955062e+01, - 0.6257781390012e-07, 0.4457559396698e+01, 0.6288598745829e+01, - 0.5697304945123e-07, 0.3499234761404e+01, 0.1551045220144e+01, - 0.6335438746791e-07, 0.6441691079251e+00, 0.5216580451554e+01, - 0.6377258441152e-07, 0.2252599151092e+01, 0.5650292065779e+01, - - 0.6484841818165e-07, 0.1992812417646e+01, 0.1030928125552e+00, - 0.4735551485250e-07, 0.3744672082942e+01, 0.1431416805965e+02, - 0.4628595996170e-07, 0.1334226211745e+01, 0.5535693017924e+00, - 0.6258152336933e-07, 0.4395836159154e+01, 0.2608790314060e+02, - 0.6196171366594e-07, 0.2587043007997e+01, 0.8467247584405e+02, - 0.6159556952126e-07, 0.4782499769128e+01, 0.2394243902548e+03, - 0.4987741172394e-07, 0.7312257619924e+00, 0.7771377146812e+02, - 0.5459280703142e-07, 0.3001376372532e+01, 0.6179983037890e+01, - 0.4863461189999e-07, 0.3767222128541e+01, 0.9027992316901e+02, - 0.5349912093158e-07, 0.3663594450273e+01, 0.6386168663001e+01, - - 0.5673725607806e-07, 0.4331187919049e+01, 0.6915859635113e+01, - 0.4745485060512e-07, 0.5816195745518e+01, 0.6282970628506e+01, - 0.4745379005326e-07, 0.8323672435672e+00, 0.6283181072386e+01, - 0.4049002796321e-07, 0.3785023976293e+01, 0.6254626709878e+01, - 0.4247084014515e-07, 0.2378220728783e+01, 0.7875671926403e+01, - 0.4026912363055e-07, 0.2864103423269e+01, 0.6311524991013e+01, - 0.4062935011774e-07, 0.2415408595975e+01, 0.3634620989887e+01, - 0.5347771048509e-07, 0.3343479309801e+01, 0.2515860172507e+02, - 0.4829494136505e-07, 0.2821742398262e+01, 0.5760498333002e+01, - 0.4342554404599e-07, 0.5624662458712e+01, 0.7238675589263e+01, - - 0.4021599184361e-07, 0.5557250275009e+00, 0.1101510648075e+02, - 0.4104900474558e-07, 0.3296691780005e+01, 0.6709674010002e+01, - 0.4376532905131e-07, 0.3814443999443e+01, 0.6805653367890e+01, - 0.3314590480650e-07, 0.3560229189250e+01, 0.1259245002418e+02, - 0.3232421839643e-07, 0.5185389180568e+01, 0.1066495398892e+01, - 0.3541176318876e-07, 0.3921381909679e+01, 0.9917696840332e+01, - 0.3689831242681e-07, 0.4190658955386e+01, 0.1192625446156e+02, - 0.3890605376774e-07, 0.5546023371097e+01, 0.7478166569050e-01, - 0.3038559339780e-07, 0.6231032794494e+01, 0.1256621883632e+02, - 0.3137083969782e-07, 0.6207063419190e+01, 0.4292330755499e+01, - - 0.4024004081854e-07, 0.1195257375713e+01, 0.1334167431096e+02, - 0.3300234879283e-07, 0.1804694240998e+01, 0.1057540660594e+02, - 0.3635399155575e-07, 0.5597811343500e+01, 0.6208294184755e+01, - 0.3032668691356e-07, 0.3191059366530e+01, 0.1805292951336e+02, - 0.2809652069058e-07, 0.4094348032570e+01, 0.3523159621801e-02, - 0.3696955383823e-07, 0.5219282738794e+01, 0.5966683958112e+01, - 0.3562894142503e-07, 0.1037247544554e+01, 0.6357857516136e+01, - 0.3510598524148e-07, 0.1430020816116e+01, 0.6599467742779e+01, - 0.3617736142953e-07, 0.3002911403677e+01, 0.6019991944201e+01, - 0.2624524910730e-07, 0.2437046757292e+01, 0.6702560555334e+01, - - 0.2535824204490e-07, 0.1581594689647e+01, 0.3141537925223e+02, - 0.3519787226257e-07, 0.5379863121521e+01, 0.2505706758577e+03, - 0.2578406709982e-07, 0.4904222639329e+01, 0.1673046366289e+02, - 0.3423887981473e-07, 0.3646448997315e+01, 0.6546159756691e+01, - 0.2776083886467e-07, 0.3307829300144e+01, 0.1272157198369e+02, - 0.3379592818379e-07, 0.1747541251125e+01, 0.1494531617769e+02, - 0.3050255426284e-07, 0.1784689432607e-01, 0.4732030630302e+01, - 0.2652378350236e-07, 0.4420055276260e+01, 0.5863591145557e+01, - 0.2374498173768e-07, 0.3629773929208e+01, 0.2388894113936e+01, - 0.2716451255140e-07, 0.3079623706780e+01, 0.1202934727411e+02, - - 0.3038583699229e-07, 0.3312487903507e+00, 0.1256608456547e+02, - 0.2220681228760e-07, 0.5265520401774e+01, 0.1336244973887e+02, - 0.3044156540912e-07, 0.4766664081250e+01, 0.2908881142201e+02, - 0.2731859923561e-07, 0.5069146530691e+01, 0.1391601904066e+02, - 0.2285603018171e-07, 0.5954935112271e+01, 0.6076890225335e+01, - 0.2025006454555e-07, 0.4061789589267e+01, 0.4701116388778e+01, - 0.2012597519804e-07, 0.2485047705241e+01, 0.6262720680387e+01, - 0.2003406962258e-07, 0.4163779209320e+01, 0.6303431020504e+01, - 0.2207863441371e-07, 0.6923839133828e+00, 0.6489261475556e+01, - 0.2481374305624e-07, 0.5944173595676e+01, 0.1204357418345e+02, - - 0.2130923288870e-07, 0.4641013671967e+01, 0.5746271423666e+01, - 0.2446370543391e-07, 0.6125796518757e+01, 0.1495633313810e+00, - 0.1932492759052e-07, 0.2234572324504e+00, 0.1352175143971e+02, - 0.2600122568049e-07, 0.4281012405440e+01, 0.4590910121555e+01, - 0.2431754047488e-07, 0.1429943874870e+00, 0.1162474756779e+01, - 0.1875902869209e-07, 0.9781803816948e+00, 0.6279194432410e+01, - 0.1874381139426e-07, 0.5670368130173e+01, 0.6286957268481e+01, - 0.2156696047173e-07, 0.2008985006833e+01, 0.1813929450232e+02, - 0.1965076182484e-07, 0.2566186202453e+00, 0.4686889479442e+01, - 0.2334816372359e-07, 0.4408121891493e+01, 0.1002183730415e+02, - - 0.1869937408802e-07, 0.5272745038656e+01, 0.2427287361862e+00, - 0.2436236460883e-07, 0.4407720479029e+01, 0.9514313292143e+02, - 0.1761365216611e-07, 0.1943892315074e+00, 0.1351787002167e+02, - 0.2156289480503e-07, 0.1418570924545e+01, 0.6037244212485e+01, - 0.2164748979255e-07, 0.4724603439430e+01, 0.2301353951334e+02, - 0.2222286670853e-07, 0.2400266874598e+01, 0.1266924451345e+02, - 0.2070901414929e-07, 0.5230348028732e+01, 0.6528907488406e+01, - 0.1792745177020e-07, 0.2099190328945e+01, 0.6819880277225e+01, - 0.1841802068445e-07, 0.3467527844848e+00, 0.6514761976723e+02, - 0.1578401631718e-07, 0.7098642356340e+00, 0.2077542790660e-01, - - 0.1561690152531e-07, 0.5943349620372e+01, 0.6272439236156e+01, - 0.1558591045463e-07, 0.7040653478980e+00, 0.6293712464735e+01, - 0.1737356469576e-07, 0.4487064760345e+01, 0.1765478049437e+02, - 0.1434755619991e-07, 0.2993391570995e+01, 0.1102062672231e+00, - 0.1482187806654e-07, 0.2278049198251e+01, 0.1052268489556e+01, - 0.1424812827089e-07, 0.1682114725827e+01, 0.1311972100268e+02, - 0.1380282448623e-07, 0.3262668602579e+01, 0.1017725758696e+02, - 0.1811481244566e-07, 0.3187771221777e+01, 0.1887552587463e+02, - 0.1504446185696e-07, 0.5650162308647e+01, 0.7626583626240e-01, - 0.1740776154137e-07, 0.5487068607507e+01, 0.1965104848470e+02, - - 0.1374339536251e-07, 0.5745688172201e+01, 0.6016468784579e+01, - 0.1761377477704e-07, 0.5748060203659e+01, 0.2593412433514e+02, - 0.1535138225795e-07, 0.6226848505790e+01, 0.9411464614024e+01, - 0.1788140543676e-07, 0.6189318878563e+01, 0.3301902111895e+02, - 0.1375002807996e-07, 0.5371812884394e+01, 0.6327837846670e+00, - 0.1242115758632e-07, 0.1471687569712e+01, 0.3894181736510e+01, - 0.1450977333938e-07, 0.4143836662127e+01, 0.1277945078067e+02, - 0.1297579575023e-07, 0.9003477661957e+00, 0.6549682916313e+01, - 0.1462667934821e-07, 0.5760505536428e+01, 0.1863592847156e+02, - 0.1381774374799e-07, 0.1085471729463e+01, 0.2379164476796e+01, - - 0.1682333169307e-07, 0.5409870870133e+01, 0.1620077269078e+02, - 0.1190812918837e-07, 0.1397205174601e+01, 0.1149965630200e+02, - 0.1221434762106e-07, 0.9001804809095e+00, 0.1257326515556e+02, - 0.1549934644860e-07, 0.4262528275544e+01, 0.1820933031200e+02, - 0.1252138953050e-07, 0.1411642012027e+01, 0.6993008899458e+01, - 0.1237078905387e-07, 0.2844472403615e+01, 0.2435678079171e+02, - 0.1446953389615e-07, 0.5295835522223e+01, 0.3813291813120e-01, - 0.1388446457170e-07, 0.4969428135497e+01, 0.2458316379602e+00, - 0.1019339179228e-07, 0.2491369561806e+01, 0.6112403035119e+01, - 0.1258880815343e-07, 0.4679426248976e+01, 0.5429879531333e+01, - - 0.1297768238261e-07, 0.1074509953328e+01, 0.1249137003520e+02, - 0.9913505718094e-08, 0.4735097918224e+01, 0.6247047890016e+01, - 0.9830453155969e-08, 0.4158649187338e+01, 0.6453748665772e+01, - 0.1192615865309e-07, 0.3438208613699e+01, 0.6290122169689e+01, - 0.9835874798277e-08, 0.1913300781229e+01, 0.6319103810876e+01, - 0.9639087569277e-08, 0.9487683644125e+00, 0.8273820945392e+01, - 0.1175716107001e-07, 0.3228141664287e+01, 0.6276029531202e+01, - 0.1018926508678e-07, 0.2216607854300e+01, 0.1254537627298e+02, - 0.9500087869225e-08, 0.2625116459733e+01, 0.1256517118505e+02, - 0.9664192916575e-08, 0.5860562449214e+01, 0.6259197520765e+01, - - 0.9612858712203e-08, 0.7885682917381e+00, 0.6306954180126e+01, - 0.1117645675413e-07, 0.3932148831189e+01, 0.1779695906178e+02, - 0.1158864052160e-07, 0.9995605521691e+00, 0.1778273215245e+02, - 0.9021043467028e-08, 0.5263769742673e+01, 0.6172869583223e+01, - 0.8836134773563e-08, 0.1496843220365e+01, 0.1692165728891e+01, - 0.1045872200691e-07, 0.7009039517214e+00, 0.2204125344462e+00, - 0.1211463487798e-07, 0.4041544938511e+01, 0.8257698122054e+02, - 0.8541990804094e-08, 0.1447586692316e+01, 0.6393282117669e+01, - 0.1038720703636e-07, 0.4594249718112e+00, 0.1550861511662e+02, - 0.1126722351445e-07, 0.3925550579036e+01, 0.2061856251104e+00, - - 0.8697373859631e-08, 0.4411341856037e+01, 0.9491756770005e+00, - 0.8869380028441e-08, 0.2402659724813e+01, 0.3903911373650e+01, - 0.9247014693258e-08, 0.1401579743423e+01, 0.6267823317922e+01, - 0.9205062930950e-08, 0.5245978000814e+01, 0.6298328382969e+01, - 0.8000745038049e-08, 0.3590803356945e+01, 0.2648454860559e+01, - 0.9168973650819e-08, 0.2470150501679e+01, 0.1498544001348e+03, - 0.1075444949238e-07, 0.1328606161230e+01, 0.3694923081589e+02, - 0.7817298525817e-08, 0.6162256225998e+01, 0.4804209201333e+01, - 0.9541469226356e-08, 0.3942568967039e+01, 0.1256713221673e+02, - 0.9821910122027e-08, 0.2360246287233e+00, 0.1140367694411e+02, - - 0.9897822023777e-08, 0.4619805634280e+01, 0.2280573557157e+02, - 0.7737289283765e-08, 0.3784727847451e+01, 0.7834121070590e+01, - 0.9260204034710e-08, 0.2223352487601e+01, 0.2787043132925e+01, - 0.7320252888486e-08, 0.1288694636874e+01, 0.6282655592598e+01, - 0.7319785780946e-08, 0.5359869567774e+01, 0.6283496108294e+01, - 0.7147219933778e-08, 0.5516616675856e+01, 0.1725663147538e+02, - 0.7946502829878e-08, 0.2630459984567e+01, 0.1241073141809e+02, - 0.9001711808932e-08, 0.2849815827227e+01, 0.6281591679874e+01, - 0.8994041507257e-08, 0.3795244450750e+01, 0.6284560021018e+01, - 0.8298582787358e-08, 0.5236413127363e+00, 0.1241658836951e+02, - - 0.8526596520710e-08, 0.4794605424426e+01, 0.1098419223922e+02, - 0.8209822103197e-08, 0.1578752370328e+01, 0.1096996532989e+02, - 0.6357049861094e-08, 0.5708926113761e+01, 0.1596186371003e+01, - 0.7370473179049e-08, 0.3842402530241e+01, 0.4061219149443e+01, - 0.7232154664726e-08, 0.3067548981535e+01, 0.1610006857377e+03, - 0.6328765494903e-08, 0.1313930030069e+01, 0.1193336791622e+02, - 0.8030064908595e-08, 0.3488500408886e+01, 0.8460828644453e+00, - 0.6275464259232e-08, 0.1532061626198e+01, 0.8531963191132e+00, - 0.7051897446325e-08, 0.3285859929993e+01, 0.5849364236221e+01, - 0.6161593705428e-08, 0.1477341999464e+01, 0.5573142801433e+01, - - 0.7754683957278e-08, 0.1586118663096e+01, 0.8662240327241e+01, - 0.5889928990701e-08, 0.1304887868803e+01, 0.1232342296471e+02, - 0.5705756047075e-08, 0.4555333589350e+01, 0.1258692712880e+02, - 0.5964178808332e-08, 0.3001762842062e+01, 0.5333900173445e+01, - 0.6712446027467e-08, 0.4886780007595e+01, 0.1171295538178e+02, - 0.5941809275464e-08, 0.4701509603824e+01, 0.9779108567966e+01, - 0.5466993627395e-08, 0.4588357817278e+01, 0.1884211409667e+02, - 0.6340512090980e-08, 0.1164543038893e+01, 0.5217580628120e+02, - 0.6325505710045e-08, 0.3919171259645e+01, 0.1041998632314e+02, - 0.6164789509685e-08, 0.2143828253542e+01, 0.6151533897323e+01, - - 0.5263330812430e-08, 0.6066564434241e+01, 0.1885275071096e+02, - 0.5597087780221e-08, 0.2926316429472e+01, 0.4337116142245e+00, - 0.5396556236817e-08, 0.3244303591505e+01, 0.6286362197481e+01, - 0.5396615148223e-08, 0.3404304703662e+01, 0.6279789503410e+01, - 0.7091832443341e-08, 0.8532377803192e+00, 0.4907302013889e+01, - 0.6572352589782e-08, 0.4901966774419e+01, 0.1176433076753e+02, - 0.5960236060795e-08, 0.1874672315797e+01, 0.1422690933580e-01, - 0.5125480043511e-08, 0.3735726064334e+01, 0.1245594543367e+02, - 0.5928241866410e-08, 0.4502033899935e+01, 0.6414617803568e+01, - 0.5249600357424e-08, 0.4372334799878e+01, 0.1151388321134e+02, - - 0.6059171276087e-08, 0.2581617302908e+01, 0.6062663316000e+01, - 0.5295235081662e-08, 0.2974811513158e+01, 0.3496032717521e+01, - 0.5820561875933e-08, 0.1796073748244e+00, 0.2838593341516e+00, - 0.4754696606440e-08, 0.1981998136973e+01, 0.3104930017775e+01, - 0.6385053548955e-08, 0.2559174171605e+00, 0.6133512519065e+01, - 0.6589828273941e-08, 0.2750967106776e+01, 0.4087944051283e+02, - 0.5383376567189e-08, 0.6325947523578e+00, 0.2248384854122e+02, - 0.5928941683538e-08, 0.1672304519067e+01, 0.1581959461667e+01, - 0.4816060709794e-08, 0.3512566172575e+01, 0.9388005868221e+01, - 0.6003381586512e-08, 0.5610932219189e+01, 0.5326786718777e+01, - - 0.5504225393105e-08, 0.4037501131256e+01, 0.6503488384892e+01, - 0.5353772620129e-08, 0.6122774968240e+01, 0.1735668374386e+03, - 0.5786253768544e-08, 0.5527984999515e+01, 0.1350651127443e+00, - 0.5065706702002e-08, 0.9980765573624e+00, 0.1248988586463e+02, - 0.5972838885276e-08, 0.6044489493203e+01, 0.2673594526851e+02, - 0.5323585877961e-08, 0.3924265998147e+01, 0.4171425416666e+01, - 0.5210772682858e-08, 0.6220111376901e+01, 0.2460261242967e+02, - 0.4726549040535e-08, 0.3716043206862e+01, 0.7232251527446e+01, - 0.6029425105059e-08, 0.8548704071116e+00, 0.3227113045244e+03, - 0.4481542826513e-08, 0.1426925072829e+01, 0.5547199253223e+01, - - 0.5836024505068e-08, 0.7135651752625e-01, 0.7285056171570e+02, - 0.4137046613272e-08, 0.5330767643283e+01, 0.1087398597200e+02, - 0.5171977473924e-08, 0.4494262335353e+00, 0.1884570439172e+02, - 0.5694429833732e-08, 0.2952369582215e+01, 0.9723862754494e+02, - 0.4009158925298e-08, 0.3500003416535e+01, 0.6244942932314e+01, - 0.4784939596873e-08, 0.6196709413181e+01, 0.2929661536378e+02, - 0.3983725022610e-08, 0.5103690031897e+01, 0.4274518229222e+01, - 0.3870535232462e-08, 0.3187569587401e+01, 0.6321208768577e+01, - 0.5140501213951e-08, 0.1668924357457e+01, 0.1232032006293e+02, - 0.3849034819355e-08, 0.4445722510309e+01, 0.1726726808967e+02, - - 0.4002383075060e-08, 0.5226224152423e+01, 0.7018952447668e+01, - 0.3890719543549e-08, 0.4371166550274e+01, 0.1491901785440e+02, - 0.4887084607881e-08, 0.5973556689693e+01, 0.1478866649112e+01, - 0.3739939287592e-08, 0.2089084714600e+01, 0.6922973089781e+01, - 0.5031925918209e-08, 0.4658371936827e+01, 0.1715706182245e+02, - 0.4387748764954e-08, 0.4825580552819e+01, 0.2331413144044e+03, - 0.4147398098865e-08, 0.3739003524998e+01, 0.1376059875786e+02, - 0.3719089993586e-08, 0.1148941386536e+01, 0.6297302759782e+01, - 0.3934238461056e-08, 0.1559893008343e+01, 0.7872148766781e+01, - 0.3672471375622e-08, 0.5516145383612e+01, 0.6268848941110e+01, - - 0.3768911277583e-08, 0.6116053700563e+01, 0.4157198507331e+01, - 0.4033388417295e-08, 0.5076821746017e+01, 0.1567108171867e+02, - 0.3764194617832e-08, 0.8164676232075e+00, 0.3185192151914e+01, - 0.4840628226284e-08, 0.1360479453671e+01, 0.1252801878276e+02, - 0.4949443923785e-08, 0.2725622229926e+01, 0.1617106187867e+03, - 0.4117393089971e-08, 0.6054459628492e+00, 0.5642198095270e+01, - 0.3925754020428e-08, 0.8570462135210e+00, 0.2139354194808e+02, - 0.3630551757923e-08, 0.3552067338279e+01, 0.6294805223347e+01, - 0.3627274802357e-08, 0.3096565085313e+01, 0.6271346477544e+01, - 0.3806143885093e-08, 0.6367751709777e+00, 0.1725304118033e+02, - - 0.4433254641565e-08, 0.4848461503937e+01, 0.7445550607224e+01, - 0.3712319846576e-08, 0.1331950643655e+01, 0.4194847048887e+00, - 0.3849847534783e-08, 0.4958368297746e+00, 0.9562891316684e+00, - 0.3483955430165e-08, 0.2237215515707e+01, 0.1161697602389e+02, - 0.3961912730982e-08, 0.3332402188575e+01, 0.2277943724828e+02, - 0.3419978244481e-08, 0.5785600576016e+01, 0.1362553364512e+02, - 0.3329417758177e-08, 0.9812676559709e-01, 0.1685848245639e+02, - 0.4207206893193e-08, 0.9494780468236e+00, 0.2986433403208e+02, - 0.3268548976410e-08, 0.1739332095686e+00, 0.5749861718712e+01, - 0.3321880082685e-08, 0.1423354800666e+01, 0.6279143387820e+01, - - 0.4503173010852e-08, 0.2314972675293e+00, 0.1385561574497e+01, - 0.4316599090954e-08, 0.1012646782616e+00, 0.4176041334900e+01, - 0.3283493323850e-08, 0.5233306881265e+01, 0.6287008313071e+01, - 0.3164033542343e-08, 0.4005597257511e+01, 0.2099539292909e+02, - 0.4159720956725e-08, 0.5365676242020e+01, 0.5905702259363e+01, - 0.3565176892217e-08, 0.4284440620612e+01, 0.3932462625300e-02, - 0.3514440950221e-08, 0.4270562636575e+01, 0.7335344340001e+01, - 0.3540596871909e-08, 0.5953553201060e+01, 0.1234573916645e+02, - 0.2960769905118e-08, 0.1115180417718e+01, 0.2670964694522e+02, - 0.2962213739684e-08, 0.3863811918186e+01, 0.6408777551755e+00, - - 0.3883556700251e-08, 0.1268617928302e+01, 0.6660449441528e+01, - 0.2919225516346e-08, 0.4908605223265e+01, 0.1375773836557e+01, - 0.3115158863370e-08, 0.3744519976885e+01, 0.3802769619140e-01, - 0.4099438144212e-08, 0.4173244670532e+01, 0.4480965020977e+02, - 0.2899531858964e-08, 0.5910601428850e+01, 0.2059724391010e+02, - 0.3289733429855e-08, 0.2488050078239e+01, 0.1081813534213e+02, - 0.3933075612875e-08, 0.1122363652883e+01, 0.3773735910827e+00, - 0.3021403764467e-08, 0.4951973724904e+01, 0.2982630633589e+02, - 0.2798598949757e-08, 0.5117057845513e+01, 0.1937891852345e+02, - 0.3397421302707e-08, 0.6104159180476e+01, 0.6923953605621e+01, - - 0.3720398002179e-08, 0.1184933429829e+01, 0.3066615496545e+02, - 0.3598484186267e-08, 0.3505282086105e+01, 0.6147450479709e+01, - 0.3694594027310e-08, 0.2286651088141e+01, 0.2636725487657e+01, - 0.2680444152969e-08, 0.1871816775482e+00, 0.6816289982179e+01, - 0.3497574865641e-08, 0.3143251755431e+01, 0.6418701221183e+01, - 0.3130274129494e-08, 0.2462167316018e+01, 0.1235996607578e+02, - 0.3241119069551e-08, 0.4256374004686e+01, 0.1652265972112e+02, - 0.2601960842061e-08, 0.4970362941425e+01, 0.1045450126711e+02, - 0.2690601527504e-08, 0.2372657824898e+01, 0.3163918923335e+00, - 0.2908688152664e-08, 0.4232652627721e+01, 0.2828699048865e+02, - - 0.3120456131875e-08, 0.3925747001137e+00, 0.2195415756911e+02, - 0.3148855423384e-08, 0.3093478330445e+01, 0.1172006883645e+02, - 0.3051044261017e-08, 0.5560948248212e+01, 0.6055599646783e+01, - 0.2826006876660e-08, 0.5072790310072e+01, 0.5120601093667e+01, - 0.3100034191711e-08, 0.4998530231096e+01, 0.1799603123222e+02, - 0.2398771640101e-08, 0.2561739802176e+01, 0.6255674361143e+01, - 0.2384002842728e-08, 0.4087420284111e+01, 0.6310477339748e+01, - 0.2842146517568e-08, 0.2515048217955e+01, 0.5469525544182e+01, - 0.2847674371340e-08, 0.5235326497443e+01, 0.1034429499989e+02, - 0.2903722140764e-08, 0.1088200795797e+01, 0.6510552054109e+01, - - 0.3187610710605e-08, 0.4710624424816e+01, 0.1693792562116e+03, - 0.3048869992813e-08, 0.2857975896445e+00, 0.8390110365991e+01, - 0.2860216950984e-08, 0.2241619020815e+01, 0.2243449970715e+00, - 0.2701117683113e-08, 0.6651573305272e-01, 0.6129297044991e+01, - 0.2509891590152e-08, 0.1285135324585e+01, 0.1044027435778e+02, - 0.2623200252223e-08, 0.2981229834530e+00, 0.6436854655901e+01, - 0.2622541669202e-08, 0.6122470726189e+01, 0.9380959548977e+01, - 0.2818435667099e-08, 0.4251087148947e+01, 0.5934151399930e+01, - 0.2365196797465e-08, 0.3465070460790e+01, 0.2470570524223e+02, - 0.2358704646143e-08, 0.5791603815350e+01, 0.8671969964381e+01, - - 0.2388299481390e-08, 0.4142483772941e+01, 0.7096626156709e+01, - 0.1996041217224e-08, 0.2101901889496e+01, 0.1727188400790e+02, - 0.2687593060336e-08, 0.1526689456959e+01, 0.7075506709219e+02, - 0.2618913670810e-08, 0.2397684236095e+01, 0.6632000300961e+01, - 0.2571523050364e-08, 0.5751929456787e+00, 0.6206810014183e+01, - 0.2582135006946e-08, 0.5595464352926e+01, 0.4873985990671e+02, - 0.2372530190361e-08, 0.5092689490655e+01, 0.1590676413561e+02, - 0.2357178484712e-08, 0.4444363527851e+01, 0.3097883698531e+01, - 0.2451590394723e-08, 0.3108251687661e+01, 0.6612329252343e+00, - 0.2370045949608e-08, 0.2608133861079e+01, 0.3459636466239e+02, - - 0.2268997267358e-08, 0.3639717753384e+01, 0.2844914056730e-01, - 0.1731432137906e-08, 0.1741898445707e+00, 0.2019909489111e+02, - 0.1629869741622e-08, 0.3902225646724e+01, 0.3035599730800e+02, - 0.2206215801974e-08, 0.4971131250731e+01, 0.6281667977667e+01, - 0.2205469554680e-08, 0.1677462357110e+01, 0.6284483723224e+01, - 0.2148792362509e-08, 0.4236259604006e+01, 0.1980482729015e+02, - 0.1873733657847e-08, 0.5926814998687e+01, 0.2876692439167e+02, - 0.2026573758959e-08, 0.4349643351962e+01, 0.2449240616245e+02, - 0.1807770325110e-08, 0.5700940482701e+01, 0.2045286941806e+02, - 0.1881174408581e-08, 0.6601286363430e+00, 0.2358125818164e+02, - - 0.1368023671690e-08, 0.2211098592752e+01, 0.2473415438279e+02, - 0.1720017916280e-08, 0.4942488551129e+01, 0.1679593901136e+03, - 0.1702427665131e-08, 0.1452233856386e+01, 0.3338575901272e+03, - 0.1414032510054e-08, 0.5525357721439e+01, 0.1624205518357e+03, - 0.1652626045364e-08, 0.4108794283624e+01, 0.8956999012000e+02, - 0.1642957769686e-08, 0.7344335209984e+00, 0.5267006960365e+02, - 0.1614952403624e-08, 0.3541213951363e+01, 0.3332657872986e+02, - 0.1535988291188e-08, 0.4031094072151e+01, 0.3852657435933e+02, - 0.1593193738177e-08, 0.4185136203609e+01, 0.2282781046519e+03, - 0.1074569126382e-08, 0.1720485636868e+01, 0.8397383534231e+02, - - 0.1074408214509e-08, 0.2758613420318e+01, 0.8401985929482e+02, - 0.9700199670465e-09, 0.4216686842097e+01, 0.7826370942180e+02, - 0.1258433517061e-08, 0.2575068876639e+00, 0.3115650189215e+03, - 0.1240303229539e-08, 0.4800844956756e+00, 0.1784300471910e+03, - 0.9018345948127e-09, 0.3896756361552e+00, 0.5886454391678e+02, - 0.1135301432805e-08, 0.3700805023550e+00, 0.7842370451713e+02, - 0.9215887951370e-09, 0.4364579276638e+01, 0.1014262087719e+03, - 0.1055401054147e-08, 0.2156564222111e+01, 0.5660027930059e+02, - 0.1008725979831e-08, 0.5454015785234e+01, 0.4245678405627e+02, - 0.7217398104321e-09, 0.1597772562175e+01, 0.2457074661053e+03, - - 0.6912033134447e-09, 0.5824090621461e+01, 0.1679936946371e+03, - 0.6833881523549e-09, 0.3578778482835e+01, 0.6053048899753e+02, - 0.4887304205142e-09, 0.3724362812423e+01, 0.9656299901946e+02, - 0.5173709754788e-09, 0.5422427507933e+01, 0.2442876000072e+03, - 0.4671353097145e-09, 0.2396106924439e+01, 0.1435713242844e+03, - 0.5652608439480e-09, 0.2804028838685e+01, 0.8365903305582e+02, - 0.5604061331253e-09, 0.1638816006247e+01, 0.8433466158131e+02, - 0.4712723365400e-09, 0.8979003224474e+00, 0.3164282286739e+03, - 0.4909967465112e-09, 0.3210426725516e+01, 0.4059982187939e+03, - 0.4771358267658e-09, 0.5308027211629e+01, 0.1805255418145e+03, - - 0.3943451445989e-09, 0.2195145341074e+01, 0.2568537517081e+03, - 0.3952109120244e-09, 0.5081189491586e+01, 0.2449975330562e+03, - 0.3788134594789e-09, 0.4345171264441e+01, 0.1568131045107e+03, - 0.3738330190479e-09, 0.2613062847997e+01, 0.3948519331910e+03, - 0.3099866678136e-09, 0.2846760817689e+01, 0.1547176098872e+03, - 0.2002962716768e-09, 0.4921360989412e+01, 0.2268582385539e+03, - 0.2198291338754e-09, 0.1130360117454e+00, 0.1658638954901e+03, - 0.1491958330784e-09, 0.4228195232278e+01, 0.2219950288015e+03, - 0.1475384076173e-09, 0.3005721811604e+00, 0.3052819430710e+03, - 0.1661626624624e-09, 0.7830125621203e+00, 0.2526661704812e+03, - - 0.9015823460025e-10, 0.3807792942715e+01, 0.4171445043968e+03 }; - -/* Sun-to-Earth, T^0, Y */ - static const double e0y[] = { - 0.9998921098898e+00, 0.1826583913846e+00, 0.6283075850446e+01, - -0.2442700893735e-01, 0.0000000000000e+00, 0.0000000000000e+00, - 0.8352929742915e-02, 0.1395277998680e+00, 0.1256615170089e+02, - 0.1046697300177e-03, 0.9641423109763e-01, 0.1884922755134e+02, - 0.3110841876663e-04, 0.5381140401712e+01, 0.8399684731857e+02, - 0.2570269094593e-04, 0.5301016407128e+01, 0.5296909721118e+00, - 0.2147389623610e-04, 0.2662510869850e+01, 0.1577343543434e+01, - 0.1680344384050e-04, 0.5207904119704e+01, 0.6279552690824e+01, - 0.1679117312193e-04, 0.4582187486968e+01, 0.6286599010068e+01, - 0.1440512068440e-04, 0.1900688517726e+01, 0.2352866153506e+01, - - 0.1135139664999e-04, 0.5273108538556e+01, 0.5223693906222e+01, - 0.9345482571018e-05, 0.4503047687738e+01, 0.1203646072878e+02, - 0.9007418719568e-05, 0.1605621059637e+01, 0.1021328554739e+02, - 0.5671536712314e-05, 0.5812849070861e+00, 0.1059381944224e+01, - 0.7451401861666e-05, 0.2807346794836e+01, 0.3981490189893e+00, - 0.6393470057114e-05, 0.6029224133855e+01, 0.5753384878334e+01, - 0.6814275881697e-05, 0.6472990145974e+00, 0.4705732307012e+01, - 0.6113705628887e-05, 0.3813843419700e+01, 0.6812766822558e+01, - 0.4503851367273e-05, 0.4527804370996e+01, 0.5884926831456e+01, - 0.4522249141926e-05, 0.5991783029224e+01, 0.6256777527156e+01, - - 0.4501794307018e-05, 0.3798703844397e+01, 0.6309374173736e+01, - 0.5514927480180e-05, 0.3961257833388e+01, 0.5507553240374e+01, - 0.4062862799995e-05, 0.5256247296369e+01, 0.6681224869435e+01, - 0.5414900429712e-05, 0.5499032014097e+01, 0.7755226100720e+00, - 0.5463153987424e-05, 0.6173092454097e+01, 0.1414349524433e+02, - 0.5071611859329e-05, 0.2870244247651e+01, 0.7860419393880e+01, - 0.2195112094455e-05, 0.2952338617201e+01, 0.1150676975667e+02, - 0.2279139233919e-05, 0.5951775132933e+01, 0.7058598460518e+01, - 0.2278386100876e-05, 0.4845456398785e+01, 0.4694002934110e+01, - 0.2559088003308e-05, 0.6945321117311e+00, 0.1216800268190e+02, - - 0.2561079286856e-05, 0.6167224608301e+01, 0.7099330490126e+00, - 0.1792755796387e-05, 0.1400122509632e+01, 0.7962980379786e+00, - 0.1818715656502e-05, 0.4703347611830e+01, 0.6283142985870e+01, - 0.1818744924791e-05, 0.5086748900237e+01, 0.6283008715021e+01, - 0.1554518791390e-05, 0.5331008042713e-01, 0.2513230340178e+02, - 0.2063265737239e-05, 0.4283680484178e+01, 0.1179062909082e+02, - 0.1497613520041e-05, 0.6074207826073e+01, 0.5486777812467e+01, - 0.2000617940427e-05, 0.2501426281450e+01, 0.1778984560711e+02, - 0.1289731195580e-05, 0.3646340599536e+01, 0.7079373888424e+01, - 0.1282657998934e-05, 0.3232864804902e+01, 0.3738761453707e+01, - - 0.1528915968658e-05, 0.5581433416669e+01, 0.2132990797783e+00, - 0.1187304098432e-05, 0.5453576453694e+01, 0.9437762937313e+01, - 0.7842782928118e-06, 0.2823953922273e+00, 0.8827390247185e+01, - 0.7352892280868e-06, 0.1124369580175e+01, 0.1589072916335e+01, - 0.6570189360797e-06, 0.2089154042840e+01, 0.1176985366291e+02, - 0.6324967590410e-06, 0.6704855581230e+00, 0.6262300422539e+01, - 0.6298289872283e-06, 0.2836414855840e+01, 0.6303851278352e+01, - 0.6476686465855e-06, 0.4852433866467e+00, 0.7113454667900e-02, - 0.8587034651234e-06, 0.1453511005668e+01, 0.1672837615881e+03, - 0.8068948788113e-06, 0.9224087798609e+00, 0.6069776770667e+01, - - 0.8353786011661e-06, 0.4631707184895e+01, 0.3340612434717e+01, - 0.6009324532132e-06, 0.1829498827726e+01, 0.4136910472696e+01, - 0.7558158559566e-06, 0.2588596800317e+01, 0.6496374930224e+01, - 0.5809279504503e-06, 0.5516818853476e+00, 0.1097707878456e+02, - 0.5374131950254e-06, 0.6275674734960e+01, 0.1194447056968e+01, - 0.5711160507326e-06, 0.1091905956872e+01, 0.6282095334605e+01, - 0.5710183170746e-06, 0.2415001635090e+01, 0.6284056366286e+01, - 0.5144373590610e-06, 0.6020336443438e+01, 0.6290189305114e+01, - 0.5103108927267e-06, 0.3775634564605e+01, 0.6275962395778e+01, - 0.4960654697891e-06, 0.1073450946756e+01, 0.6127655567643e+01, - - 0.4786385689280e-06, 0.2431178012310e+01, 0.6438496133249e+01, - 0.6109911263665e-06, 0.5343356157914e+01, 0.3154687086868e+01, - 0.4839898944024e-06, 0.5830833594047e-01, 0.8018209333619e+00, - 0.4734822623919e-06, 0.4536080134821e+01, 0.3128388763578e+01, - 0.4834741473290e-06, 0.2585090489754e+00, 0.7084896783808e+01, - 0.5134858581156e-06, 0.4213317172603e+01, 0.1235285262111e+02, - 0.5064004264978e-06, 0.4814418806478e+00, 0.1185621865188e+02, - 0.3753476772761e-06, 0.1599953399788e+01, 0.8429241228195e+01, - 0.4935264014283e-06, 0.2157417556873e+01, 0.2544314396739e+01, - 0.3950929600897e-06, 0.3359394184254e+01, 0.5481254917084e+01, - - 0.4895849789777e-06, 0.5165704376558e+01, 0.9225539266174e+01, - 0.4215241688886e-06, 0.2065368800993e+01, 0.1726015463500e+02, - 0.3796773731132e-06, 0.1468606346612e+01, 0.4265981595566e+00, - 0.3114178142515e-06, 0.3615638079474e+01, 0.2146165377750e+01, - 0.3260664220838e-06, 0.4417134922435e+01, 0.4164311961999e+01, - 0.3976996123008e-06, 0.4700866883004e+01, 0.5856477690889e+01, - 0.2801459672924e-06, 0.4538902060922e+01, 0.1256967486051e+02, - 0.3638931868861e-06, 0.1334197991475e+01, 0.1807370494127e+02, - 0.2487013269476e-06, 0.3749275558275e+01, 0.2629832328990e-01, - 0.3034165481994e-06, 0.4236622030873e+00, 0.4535059491685e+01, - - 0.2676278825586e-06, 0.5970848007811e+01, 0.3930209696940e+01, - 0.2764903818918e-06, 0.5194636754501e+01, 0.1256262854127e+02, - 0.2485149930507e-06, 0.1002434207846e+01, 0.5088628793478e+01, - 0.2199305540941e-06, 0.3066773098403e+01, 0.1255903824622e+02, - 0.2571106500435e-06, 0.7588312459063e+00, 0.1336797263425e+02, - 0.2049751817158e-06, 0.3444977434856e+01, 0.1137170464392e+02, - 0.2599707296297e-06, 0.1873128542205e+01, 0.7143069561767e+02, - 0.1785018072217e-06, 0.5015891306615e+01, 0.1748016358760e+01, - 0.2324833891115e-06, 0.4618271239730e+01, 0.1831953657923e+02, - 0.1709711119545e-06, 0.5300003455669e+01, 0.4933208510675e+01, - - 0.2107159351716e-06, 0.2229819815115e+01, 0.7477522907414e+01, - 0.1750333080295e-06, 0.6161485880008e+01, 0.1044738781244e+02, - 0.2000598210339e-06, 0.2967357299999e+01, 0.8031092209206e+01, - 0.1380920248681e-06, 0.3027007923917e+01, 0.8635942003952e+01, - 0.1412460470299e-06, 0.6037597163798e+01, 0.2942463415728e+01, - 0.1888459803001e-06, 0.8561476243374e+00, 0.1561374759853e+03, - 0.1788370542585e-06, 0.4869736290209e+01, 0.1592596075957e+01, - 0.1360893296167e-06, 0.3626411886436e+01, 0.1309584267300e+02, - 0.1506846530160e-06, 0.1550975377427e+01, 0.1649636139783e+02, - 0.1800913376176e-06, 0.2075826033190e+01, 0.1729818233119e+02, - - 0.1436261390649e-06, 0.6148876420255e+01, 0.2042657109477e+02, - 0.1220227114151e-06, 0.4382583879906e+01, 0.7632943190217e+01, - 0.1337883603592e-06, 0.2036644327361e+01, 0.1213955354133e+02, - 0.1159326650738e-06, 0.3892276994687e+01, 0.5331357529664e+01, - 0.1352853128569e-06, 0.1447950649744e+01, 0.1673046366289e+02, - 0.1433408296083e-06, 0.4457854692961e+01, 0.7342457794669e+01, - 0.1234701666518e-06, 0.1538818147151e+01, 0.6279485555400e+01, - 0.1234027192007e-06, 0.1968523220760e+01, 0.6286666145492e+01, - 0.1244024091797e-06, 0.5779803499985e+01, 0.1511046609763e+02, - 0.1097934945516e-06, 0.6210975221388e+00, 0.1098880815746e+02, - - 0.1254611329856e-06, 0.2591963807998e+01, 0.1572083878776e+02, - 0.1158247286784e-06, 0.2483612812670e+01, 0.5729506548653e+01, - 0.9039078252960e-07, 0.3857554579796e+01, 0.9623688285163e+01, - 0.9108024978836e-07, 0.5826368512984e+01, 0.7234794171227e+01, - 0.8887068108436e-07, 0.3475694573987e+01, 0.6148010737701e+01, - 0.8632374035438e-07, 0.3059070488983e-01, 0.6418140963190e+01, - 0.7893186992967e-07, 0.1583194837728e+01, 0.2118763888447e+01, - 0.8297650201172e-07, 0.8519770534637e+00, 0.1471231707864e+02, - 0.1019759578988e-06, 0.1319598738732e+00, 0.1349867339771e+01, - 0.1010037696236e-06, 0.9937860115618e+00, 0.6836645152238e+01, - - 0.1047727548266e-06, 0.1382138405399e+01, 0.5999216516294e+01, - 0.7351993881086e-07, 0.3833397851735e+01, 0.6040347114260e+01, - 0.9868771092341e-07, 0.2124913814390e+01, 0.6566935184597e+01, - 0.7007321959390e-07, 0.5946305343763e+01, 0.6525804586632e+01, - 0.6861411679709e-07, 0.4574654977089e+01, 0.7238675589263e+01, - 0.7554519809614e-07, 0.5949232686844e+01, 0.1253985337760e+02, - 0.9541880448335e-07, 0.3495242990564e+01, 0.2122839202813e+02, - 0.7185606722155e-07, 0.4310113471661e+01, 0.6245048154254e+01, - 0.7131360871710e-07, 0.5480309323650e+01, 0.6321103546637e+01, - 0.6651142021039e-07, 0.5411097713654e+01, 0.5327476111629e+01, - - 0.8538618213667e-07, 0.1827849973951e+01, 0.1101510648075e+02, - 0.8634954288044e-07, 0.5443584943349e+01, 0.5643178611111e+01, - 0.7449415051484e-07, 0.2011535459060e+01, 0.5368044267797e+00, - 0.7421047599169e-07, 0.3464562529249e+01, 0.2354323048545e+02, - 0.6140694354424e-07, 0.5657556228815e+01, 0.1296430071988e+02, - 0.6353525143033e-07, 0.3463816593821e+01, 0.1990745094947e+01, - 0.6221964013447e-07, 0.1532259498697e+01, 0.9517183207817e+00, - 0.5852480257244e-07, 0.1375396598875e+01, 0.9555997388169e+00, - 0.6398637498911e-07, 0.2405645801972e+01, 0.2407292145756e+02, - 0.7039744069878e-07, 0.5397541799027e+01, 0.5225775174439e+00, - - 0.6977997694382e-07, 0.4762347105419e+01, 0.1097355562493e+02, - 0.7460629558396e-07, 0.2711944692164e+01, 0.2200391463820e+02, - 0.5376577536101e-07, 0.2352980430239e+01, 0.1431416805965e+02, - 0.7530607893556e-07, 0.1943940180699e+01, 0.1842262939178e+02, - 0.6822928971605e-07, 0.4337651846959e+01, 0.1554202828031e+00, - 0.6220772380094e-07, 0.6716871369278e+00, 0.1845107853235e+02, - 0.6586950799043e-07, 0.2229714460505e+01, 0.5216580451554e+01, - 0.5873800565771e-07, 0.7627013920580e+00, 0.6398972393349e+00, - 0.6264346929745e-07, 0.6202785478961e+00, 0.6277552955062e+01, - 0.6257929115669e-07, 0.2886775596668e+01, 0.6288598745829e+01, - - 0.5343536033409e-07, 0.1977241012051e+01, 0.4690479774488e+01, - 0.5587849781714e-07, 0.1922923484825e+01, 0.1551045220144e+01, - 0.6905100845603e-07, 0.3570757164631e+01, 0.1030928125552e+00, - 0.6178957066649e-07, 0.5197558947765e+01, 0.5230807360890e+01, - 0.6187270224331e-07, 0.8193497368922e+00, 0.5650292065779e+01, - 0.5385664291426e-07, 0.5406336665586e+01, 0.7771377146812e+02, - 0.6329363917926e-07, 0.2837760654536e+01, 0.2608790314060e+02, - 0.4546018761604e-07, 0.2933580297050e+01, 0.5535693017924e+00, - 0.6196091049375e-07, 0.4157871494377e+01, 0.8467247584405e+02, - 0.6159555108218e-07, 0.3211703561703e+01, 0.2394243902548e+03, - - 0.4995340539317e-07, 0.1459098102922e+01, 0.4732030630302e+01, - 0.5457031243572e-07, 0.1430457676136e+01, 0.6179983037890e+01, - 0.4863461418397e-07, 0.2196425916730e+01, 0.9027992316901e+02, - 0.5342947626870e-07, 0.2086612890268e+01, 0.6386168663001e+01, - 0.5674296648439e-07, 0.2760204966535e+01, 0.6915859635113e+01, - 0.4745783120161e-07, 0.4245368971862e+01, 0.6282970628506e+01, - 0.4745676961198e-07, 0.5544725787016e+01, 0.6283181072386e+01, - 0.4049796869973e-07, 0.2213984363586e+01, 0.6254626709878e+01, - 0.4248333596940e-07, 0.8075781952896e+00, 0.7875671926403e+01, - 0.4027178070205e-07, 0.1293268540378e+01, 0.6311524991013e+01, - - 0.4066543943476e-07, 0.3986141175804e+01, 0.3634620989887e+01, - 0.4858863787880e-07, 0.1276112738231e+01, 0.5760498333002e+01, - 0.5277398263530e-07, 0.4916111741527e+01, 0.2515860172507e+02, - 0.4105635656559e-07, 0.1725805864426e+01, 0.6709674010002e+01, - 0.4376781925772e-07, 0.2243642442106e+01, 0.6805653367890e+01, - 0.3235827894693e-07, 0.3614135118271e+01, 0.1066495398892e+01, - 0.3073244740308e-07, 0.2460873393460e+01, 0.5863591145557e+01, - 0.3088609271373e-07, 0.5678431771790e+01, 0.9917696840332e+01, - 0.3393022279836e-07, 0.3814017477291e+01, 0.1391601904066e+02, - 0.3038686508802e-07, 0.4660216229171e+01, 0.1256621883632e+02, - - 0.4019677752497e-07, 0.5906906243735e+01, 0.1334167431096e+02, - 0.3288834998232e-07, 0.9536146445882e+00, 0.1620077269078e+02, - 0.3889973794631e-07, 0.3942205097644e+01, 0.7478166569050e-01, - 0.3050438987141e-07, 0.1624810271286e+01, 0.1805292951336e+02, - 0.3601142564638e-07, 0.4030467142575e+01, 0.6208294184755e+01, - 0.3689015557141e-07, 0.3648878818694e+01, 0.5966683958112e+01, - 0.3563471893565e-07, 0.5749584017096e+01, 0.6357857516136e+01, - 0.2776183170667e-07, 0.2630124187070e+01, 0.3523159621801e-02, - 0.2922350530341e-07, 0.1790346403629e+01, 0.1272157198369e+02, - 0.3511076917302e-07, 0.6142198301611e+01, 0.6599467742779e+01, - - 0.3619351007632e-07, 0.1432421386492e+01, 0.6019991944201e+01, - 0.2561254711098e-07, 0.2302822475792e+01, 0.1259245002418e+02, - 0.2626903942920e-07, 0.8660470994571e+00, 0.6702560555334e+01, - 0.2550187397083e-07, 0.6069721995383e+01, 0.1057540660594e+02, - 0.2535873526138e-07, 0.1079020331795e-01, 0.3141537925223e+02, - 0.3519786153847e-07, 0.3809066902283e+01, 0.2505706758577e+03, - 0.3424651492873e-07, 0.2075435114417e+01, 0.6546159756691e+01, - 0.2372676630861e-07, 0.2057803120154e+01, 0.2388894113936e+01, - 0.2710980779541e-07, 0.1510068488010e+01, 0.1202934727411e+02, - 0.3038710889704e-07, 0.5043617528901e+01, 0.1256608456547e+02, - - 0.2220364130585e-07, 0.3694793218205e+01, 0.1336244973887e+02, - 0.3025880825460e-07, 0.5450618999049e-01, 0.2908881142201e+02, - 0.2784493486864e-07, 0.3381164084502e+01, 0.1494531617769e+02, - 0.2294414142438e-07, 0.4382309025210e+01, 0.6076890225335e+01, - 0.2012723294724e-07, 0.9142212256518e+00, 0.6262720680387e+01, - 0.2036357831958e-07, 0.5676172293154e+01, 0.4701116388778e+01, - 0.2003474823288e-07, 0.2592767977625e+01, 0.6303431020504e+01, - 0.2207144900109e-07, 0.5404976271180e+01, 0.6489261475556e+01, - 0.2481664905135e-07, 0.4373284587027e+01, 0.1204357418345e+02, - 0.2674949182295e-07, 0.5859182188482e+01, 0.4590910121555e+01, - - 0.2450554720322e-07, 0.4555381557451e+01, 0.1495633313810e+00, - 0.2601975986457e-07, 0.3933165584959e+01, 0.1965104848470e+02, - 0.2199860022848e-07, 0.5227977189087e+01, 0.1351787002167e+02, - 0.2448121172316e-07, 0.4858060353949e+01, 0.1162474756779e+01, - 0.1876014864049e-07, 0.5690546553605e+01, 0.6279194432410e+01, - 0.1874513219396e-07, 0.4099539297446e+01, 0.6286957268481e+01, - 0.2156380842559e-07, 0.4382594769913e+00, 0.1813929450232e+02, - 0.1981691240061e-07, 0.1829784152444e+01, 0.4686889479442e+01, - 0.2329992648539e-07, 0.2836254278973e+01, 0.1002183730415e+02, - 0.1765184135302e-07, 0.2803494925833e+01, 0.4292330755499e+01, - - 0.2436368366085e-07, 0.2836897959677e+01, 0.9514313292143e+02, - 0.2164089203889e-07, 0.6127522446024e+01, 0.6037244212485e+01, - 0.1847755034221e-07, 0.3683163635008e+01, 0.2427287361862e+00, - 0.1674798769966e-07, 0.3316993867246e+00, 0.1311972100268e+02, - 0.2222542124356e-07, 0.8294097805480e+00, 0.1266924451345e+02, - 0.2071074505925e-07, 0.3659492220261e+01, 0.6528907488406e+01, - 0.1608224471835e-07, 0.4774492067182e+01, 0.1352175143971e+02, - 0.1857583439071e-07, 0.2873120597682e+01, 0.8662240327241e+01, - 0.1793018836159e-07, 0.5282441177929e+00, 0.6819880277225e+01, - 0.1575391221692e-07, 0.1320789654258e+01, 0.1102062672231e+00, - - 0.1840132009557e-07, 0.1917110916256e+01, 0.6514761976723e+02, - 0.1760917288281e-07, 0.2972635937132e+01, 0.5746271423666e+01, - 0.1561779518516e-07, 0.4372569261981e+01, 0.6272439236156e+01, - 0.1558687885205e-07, 0.5416424926425e+01, 0.6293712464735e+01, - 0.1951359382579e-07, 0.3094448898752e+01, 0.2301353951334e+02, - 0.1569144275614e-07, 0.2802103689808e+01, 0.1765478049437e+02, - 0.1479130389462e-07, 0.2136435020467e+01, 0.2077542790660e-01, - 0.1467828510764e-07, 0.7072627435674e+00, 0.1052268489556e+01, - 0.1627627337440e-07, 0.3947607143237e+01, 0.6327837846670e+00, - 0.1503498479758e-07, 0.4079248909190e+01, 0.7626583626240e-01, - - 0.1297967708237e-07, 0.6269637122840e+01, 0.1149965630200e+02, - 0.1374416896634e-07, 0.4175657970702e+01, 0.6016468784579e+01, - 0.1783812325219e-07, 0.1476540547560e+01, 0.3301902111895e+02, - 0.1525884228756e-07, 0.4653477715241e+01, 0.9411464614024e+01, - 0.1451067396763e-07, 0.2573001128225e+01, 0.1277945078067e+02, - 0.1297713111950e-07, 0.5612799618771e+01, 0.6549682916313e+01, - 0.1462784012820e-07, 0.4189661623870e+01, 0.1863592847156e+02, - 0.1384185980007e-07, 0.2656915472196e+01, 0.2379164476796e+01, - 0.1221497599801e-07, 0.5612515760138e+01, 0.1257326515556e+02, - 0.1560574525896e-07, 0.4783414317919e+01, 0.1887552587463e+02, - - 0.1544598372036e-07, 0.2694431138063e+01, 0.1820933031200e+02, - 0.1531678928696e-07, 0.4105103489666e+01, 0.2593412433514e+02, - 0.1349321503795e-07, 0.3082437194015e+00, 0.5120601093667e+01, - 0.1252030290917e-07, 0.6124072334087e+01, 0.6993008899458e+01, - 0.1459243816687e-07, 0.3733103981697e+01, 0.3813291813120e-01, - 0.1226103625262e-07, 0.1267127706817e+01, 0.2435678079171e+02, - 0.1019449641504e-07, 0.4367790112269e+01, 0.1725663147538e+02, - 0.1380789433607e-07, 0.3387201768700e+01, 0.2458316379602e+00, - 0.1019453421658e-07, 0.9204143073737e+00, 0.6112403035119e+01, - 0.1297929434405e-07, 0.5786874896426e+01, 0.1249137003520e+02, - - 0.9912677786097e-08, 0.3164232870746e+01, 0.6247047890016e+01, - 0.9829386098599e-08, 0.2586762413351e+01, 0.6453748665772e+01, - 0.1226807746104e-07, 0.6239068436607e+01, 0.5429879531333e+01, - 0.1192691755997e-07, 0.1867380051424e+01, 0.6290122169689e+01, - 0.9836499227081e-08, 0.3424716293727e+00, 0.6319103810876e+01, - 0.9642862564285e-08, 0.5661372990657e+01, 0.8273820945392e+01, - 0.1165184404862e-07, 0.5768367239093e+01, 0.1778273215245e+02, - 0.1175794418818e-07, 0.1657351222943e+01, 0.6276029531202e+01, - 0.1018948635601e-07, 0.6458292350865e+00, 0.1254537627298e+02, - 0.9500383606676e-08, 0.1054306140741e+01, 0.1256517118505e+02, - - 0.1227512202906e-07, 0.2505278379114e+01, 0.2248384854122e+02, - 0.9664792009993e-08, 0.4289737277000e+01, 0.6259197520765e+01, - 0.9613285666331e-08, 0.5500597673141e+01, 0.6306954180126e+01, - 0.1117906736211e-07, 0.2361405953468e+01, 0.1779695906178e+02, - 0.9611378640782e-08, 0.2851310576269e+01, 0.2061856251104e+00, - 0.8845354852370e-08, 0.6208777705343e+01, 0.1692165728891e+01, - 0.1054046966600e-07, 0.5413091423934e+01, 0.2204125344462e+00, - 0.1215539124483e-07, 0.5613969479755e+01, 0.8257698122054e+02, - 0.9932460955209e-08, 0.1106124877015e+01, 0.1017725758696e+02, - 0.8785804715043e-08, 0.2869224476477e+01, 0.9491756770005e+00, - - 0.8538084097562e-08, 0.6159640899344e+01, 0.6393282117669e+01, - 0.8648994369529e-08, 0.1374901198784e+01, 0.4804209201333e+01, - 0.1039063219067e-07, 0.5171080641327e+01, 0.1550861511662e+02, - 0.8867983926439e-08, 0.8317320304902e+00, 0.3903911373650e+01, - 0.8327495955244e-08, 0.3605591969180e+01, 0.6172869583223e+01, - 0.9243088356133e-08, 0.6114299196843e+01, 0.6267823317922e+01, - 0.9205657357835e-08, 0.3675153683737e+01, 0.6298328382969e+01, - 0.1033269714606e-07, 0.3313328813024e+01, 0.5573142801433e+01, - 0.8001706275552e-08, 0.2019980960053e+01, 0.2648454860559e+01, - 0.9171858254191e-08, 0.8992015524177e+00, 0.1498544001348e+03, - - 0.1075327150242e-07, 0.2898669963648e+01, 0.3694923081589e+02, - 0.9884866689828e-08, 0.4946715904478e+01, 0.1140367694411e+02, - 0.9541835576677e-08, 0.2371787888469e+01, 0.1256713221673e+02, - 0.7739903376237e-08, 0.2213775190612e+01, 0.7834121070590e+01, - 0.7311962684106e-08, 0.3429378787739e+01, 0.1192625446156e+02, - 0.9724904869624e-08, 0.6195878564404e+01, 0.2280573557157e+02, - 0.9251628983612e-08, 0.6511509527390e+00, 0.2787043132925e+01, - 0.7320763787842e-08, 0.6001083639421e+01, 0.6282655592598e+01, - 0.7320296650962e-08, 0.3789073265087e+01, 0.6283496108294e+01, - 0.7947032271039e-08, 0.1059659582204e+01, 0.1241073141809e+02, - - 0.9005277053115e-08, 0.1280315624361e+01, 0.6281591679874e+01, - 0.8995601652048e-08, 0.2224439106766e+01, 0.6284560021018e+01, - 0.8288040568796e-08, 0.5234914433867e+01, 0.1241658836951e+02, - 0.6359381347255e-08, 0.4137989441490e+01, 0.1596186371003e+01, - 0.8699572228626e-08, 0.1758411009497e+01, 0.6133512519065e+01, - 0.6456797542736e-08, 0.5919285089994e+01, 0.1685848245639e+02, - 0.7424573475452e-08, 0.5414616938827e+01, 0.4061219149443e+01, - 0.7235671196168e-08, 0.1496516557134e+01, 0.1610006857377e+03, - 0.8104015182733e-08, 0.1919918242764e+01, 0.8460828644453e+00, - 0.8098576535937e-08, 0.3819615855458e+01, 0.3894181736510e+01, - - 0.6275292346625e-08, 0.6244264115141e+01, 0.8531963191132e+00, - 0.6052432989112e-08, 0.5037731872610e+00, 0.1567108171867e+02, - 0.5705651535817e-08, 0.2984557271995e+01, 0.1258692712880e+02, - 0.5789650115138e-08, 0.6087038140697e+01, 0.1193336791622e+02, - 0.5512132153377e-08, 0.5855668994076e+01, 0.1232342296471e+02, - 0.7388890819102e-08, 0.2443128574740e+01, 0.4907302013889e+01, - 0.5467593991798e-08, 0.3017561234194e+01, 0.1884211409667e+02, - 0.6388519802999e-08, 0.5887386712935e+01, 0.5217580628120e+02, - 0.6106777149944e-08, 0.3483461059895e+00, 0.1422690933580e-01, - 0.7383420275489e-08, 0.5417387056707e+01, 0.2358125818164e+02, - - 0.5505208141738e-08, 0.2848193644783e+01, 0.1151388321134e+02, - 0.6310757462877e-08, 0.2349882520828e+01, 0.1041998632314e+02, - 0.6166904929691e-08, 0.5728575944077e+00, 0.6151533897323e+01, - 0.5263442042754e-08, 0.4495796125937e+01, 0.1885275071096e+02, - 0.5591828082629e-08, 0.1355441967677e+01, 0.4337116142245e+00, - 0.5397051680497e-08, 0.1673422864307e+01, 0.6286362197481e+01, - 0.5396992745159e-08, 0.1833502206373e+01, 0.6279789503410e+01, - 0.6572913000726e-08, 0.3331122065824e+01, 0.1176433076753e+02, - 0.5123421866413e-08, 0.2165327142679e+01, 0.1245594543367e+02, - 0.5930495725999e-08, 0.2931146089284e+01, 0.6414617803568e+01, - - 0.6431797403933e-08, 0.4134407994088e+01, 0.1350651127443e+00, - 0.5003182207604e-08, 0.3805420303749e+01, 0.1096996532989e+02, - 0.5587731032504e-08, 0.1082469260599e+01, 0.6062663316000e+01, - 0.5935263407816e-08, 0.8384333678401e+00, 0.5326786718777e+01, - 0.4756019827760e-08, 0.3552588749309e+01, 0.3104930017775e+01, - 0.6599951172637e-08, 0.4320826409528e+01, 0.4087944051283e+02, - 0.5902606868464e-08, 0.4811879454445e+01, 0.5849364236221e+01, - 0.5921147809031e-08, 0.9942628922396e-01, 0.1581959461667e+01, - 0.5505382581266e-08, 0.2466557607764e+01, 0.6503488384892e+01, - 0.5353771071862e-08, 0.4551978748683e+01, 0.1735668374386e+03, - - 0.5063282210946e-08, 0.5710812312425e+01, 0.1248988586463e+02, - 0.5926120403383e-08, 0.1333998428358e+01, 0.2673594526851e+02, - 0.5211016176149e-08, 0.4649315360760e+01, 0.2460261242967e+02, - 0.5347075084894e-08, 0.5512754081205e+01, 0.4171425416666e+01, - 0.4872609773574e-08, 0.1308025299938e+01, 0.5333900173445e+01, - 0.4727711321420e-08, 0.2144908368062e+01, 0.7232251527446e+01, - 0.6029426018652e-08, 0.5567259412084e+01, 0.3227113045244e+03, - 0.4321485284369e-08, 0.5230667156451e+01, 0.9388005868221e+01, - 0.4476406760553e-08, 0.6134081115303e+01, 0.5547199253223e+01, - 0.5835268277420e-08, 0.4783808492071e+01, 0.7285056171570e+02, - - 0.5172183602748e-08, 0.5161817911099e+01, 0.1884570439172e+02, - 0.5693571465184e-08, 0.1381646203111e+01, 0.9723862754494e+02, - 0.4060634965349e-08, 0.3876705259495e+00, 0.4274518229222e+01, - 0.3967398770473e-08, 0.5029491776223e+01, 0.3496032717521e+01, - 0.3943754005255e-08, 0.1923162955490e+01, 0.6244942932314e+01, - 0.4781323427824e-08, 0.4633332586423e+01, 0.2929661536378e+02, - 0.3871483781204e-08, 0.1616650009743e+01, 0.6321208768577e+01, - 0.5141741733997e-08, 0.9817316704659e-01, 0.1232032006293e+02, - 0.4002385978497e-08, 0.3656161212139e+01, 0.7018952447668e+01, - 0.4901092604097e-08, 0.4404098713092e+01, 0.1478866649112e+01, - - 0.3740932630345e-08, 0.5181188732639e+00, 0.6922973089781e+01, - 0.4387283718538e-08, 0.3254859566869e+01, 0.2331413144044e+03, - 0.5019197802033e-08, 0.3086773224677e+01, 0.1715706182245e+02, - 0.3834931695175e-08, 0.2797882673542e+01, 0.1491901785440e+02, - 0.3760413942497e-08, 0.2892676280217e+01, 0.1726726808967e+02, - 0.3719717204628e-08, 0.5861046025739e+01, 0.6297302759782e+01, - 0.4145623530149e-08, 0.2168239627033e+01, 0.1376059875786e+02, - 0.3932788425380e-08, 0.6271811124181e+01, 0.7872148766781e+01, - 0.3686377476857e-08, 0.3936853151404e+01, 0.6268848941110e+01, - 0.3779077950339e-08, 0.1404148734043e+01, 0.4157198507331e+01, - - 0.4091334550598e-08, 0.2452436180854e+01, 0.9779108567966e+01, - 0.3926694536146e-08, 0.6102292739040e+01, 0.1098419223922e+02, - 0.4841000253289e-08, 0.6072760457276e+01, 0.1252801878276e+02, - 0.4949340130240e-08, 0.1154832815171e+01, 0.1617106187867e+03, - 0.3761557737360e-08, 0.5527545321897e+01, 0.3185192151914e+01, - 0.3647396268188e-08, 0.1525035688629e+01, 0.6271346477544e+01, - 0.3932405074189e-08, 0.5570681040569e+01, 0.2139354194808e+02, - 0.3631322501141e-08, 0.1981240601160e+01, 0.6294805223347e+01, - 0.4130007425139e-08, 0.2050060880201e+01, 0.2195415756911e+02, - 0.4433905965176e-08, 0.3277477970321e+01, 0.7445550607224e+01, - - 0.3851814176947e-08, 0.5210690074886e+01, 0.9562891316684e+00, - 0.3485807052785e-08, 0.6653274904611e+00, 0.1161697602389e+02, - 0.3979772816991e-08, 0.1767941436148e+01, 0.2277943724828e+02, - 0.3402607460500e-08, 0.3421746306465e+01, 0.1087398597200e+02, - 0.4049993000926e-08, 0.1127144787547e+01, 0.3163918923335e+00, - 0.3420511182382e-08, 0.4214794779161e+01, 0.1362553364512e+02, - 0.3640772365012e-08, 0.5324905497687e+01, 0.1725304118033e+02, - 0.3323037987501e-08, 0.6135761838271e+01, 0.6279143387820e+01, - 0.4503141663637e-08, 0.1802305450666e+01, 0.1385561574497e+01, - 0.4314560055588e-08, 0.4812299731574e+01, 0.4176041334900e+01, - - 0.3294226949110e-08, 0.3657547059723e+01, 0.6287008313071e+01, - 0.3215657197281e-08, 0.4866676894425e+01, 0.5749861718712e+01, - 0.4129362656266e-08, 0.3809342558906e+01, 0.5905702259363e+01, - 0.3137762976388e-08, 0.2494635174443e+01, 0.2099539292909e+02, - 0.3514010952384e-08, 0.2699961831678e+01, 0.7335344340001e+01, - 0.3327607571530e-08, 0.3318457714816e+01, 0.5436992986000e+01, - 0.3541066946675e-08, 0.4382703582466e+01, 0.1234573916645e+02, - 0.3216179847052e-08, 0.5271066317054e+01, 0.3802769619140e-01, - 0.2959045059570e-08, 0.5819591585302e+01, 0.2670964694522e+02, - 0.3884040326665e-08, 0.5980934960428e+01, 0.6660449441528e+01, - - 0.2922027539886e-08, 0.3337290282483e+01, 0.1375773836557e+01, - 0.4110846382042e-08, 0.5742978187327e+01, 0.4480965020977e+02, - 0.2934508411032e-08, 0.2278075804200e+01, 0.6408777551755e+00, - 0.3966896193000e-08, 0.5835747858477e+01, 0.3773735910827e+00, - 0.3286695827610e-08, 0.5838898193902e+01, 0.3932462625300e-02, - 0.3720643094196e-08, 0.1122212337858e+01, 0.1646033343740e+02, - 0.3285508906174e-08, 0.9182250996416e+00, 0.1081813534213e+02, - 0.3753880575973e-08, 0.5174761973266e+01, 0.5642198095270e+01, - 0.3022129385587e-08, 0.3381611020639e+01, 0.2982630633589e+02, - 0.2798569205621e-08, 0.3546193723922e+01, 0.1937891852345e+02, - - 0.3397872070505e-08, 0.4533203197934e+01, 0.6923953605621e+01, - 0.3708099772977e-08, 0.2756168198616e+01, 0.3066615496545e+02, - 0.3599283541510e-08, 0.1934395469918e+01, 0.6147450479709e+01, - 0.3688702753059e-08, 0.7149920971109e+00, 0.2636725487657e+01, - 0.2681084724003e-08, 0.4899819493154e+01, 0.6816289982179e+01, - 0.3495993460759e-08, 0.1572418915115e+01, 0.6418701221183e+01, - 0.3130770324995e-08, 0.8912190180489e+00, 0.1235996607578e+02, - 0.2744353821941e-08, 0.3800821940055e+01, 0.2059724391010e+02, - 0.2842732906341e-08, 0.2644717440029e+01, 0.2828699048865e+02, - 0.3046882682154e-08, 0.3987793020179e+01, 0.6055599646783e+01, - - 0.2399072455143e-08, 0.9908826440764e+00, 0.6255674361143e+01, - 0.2384306274204e-08, 0.2516149752220e+01, 0.6310477339748e+01, - 0.2977324500559e-08, 0.5849195642118e+01, 0.1652265972112e+02, - 0.3062835258972e-08, 0.1681660100162e+01, 0.1172006883645e+02, - 0.3109682589231e-08, 0.5804143987737e+00, 0.2751146787858e+02, - 0.2903920355299e-08, 0.5800768280123e+01, 0.6510552054109e+01, - 0.2823221989212e-08, 0.9241118370216e+00, 0.5469525544182e+01, - 0.3187949696649e-08, 0.3139776445735e+01, 0.1693792562116e+03, - 0.2922559771655e-08, 0.3549440782984e+01, 0.2630839062450e+00, - 0.2436302066603e-08, 0.4735540696319e+01, 0.3946258593675e+00, - - 0.3049473043606e-08, 0.4998289124561e+01, 0.8390110365991e+01, - 0.2863682575784e-08, 0.6709515671102e+00, 0.2243449970715e+00, - 0.2641750517966e-08, 0.5410978257284e+01, 0.2986433403208e+02, - 0.2704093466243e-08, 0.4778317207821e+01, 0.6129297044991e+01, - 0.2445522177011e-08, 0.6009020662222e+01, 0.1171295538178e+02, - 0.2623608810230e-08, 0.5010449777147e+01, 0.6436854655901e+01, - 0.2079259704053e-08, 0.5980943768809e+01, 0.2019909489111e+02, - 0.2820225596771e-08, 0.2679965110468e+01, 0.5934151399930e+01, - 0.2365221950927e-08, 0.1894231148810e+01, 0.2470570524223e+02, - 0.2359682077149e-08, 0.4220752950780e+01, 0.8671969964381e+01, - - 0.2387577137206e-08, 0.2571783940617e+01, 0.7096626156709e+01, - 0.1982102089816e-08, 0.5169765997119e+00, 0.1727188400790e+02, - 0.2687502389925e-08, 0.6239078264579e+01, 0.7075506709219e+02, - 0.2207751669135e-08, 0.2031184412677e+01, 0.4377611041777e+01, - 0.2618370214274e-08, 0.8266079985979e+00, 0.6632000300961e+01, - 0.2591951887361e-08, 0.8819350522008e+00, 0.4873985990671e+02, - 0.2375055656248e-08, 0.3520944177789e+01, 0.1590676413561e+02, - 0.2472019978911e-08, 0.1551431908671e+01, 0.6612329252343e+00, - 0.2368157127199e-08, 0.4178610147412e+01, 0.3459636466239e+02, - 0.1764846605693e-08, 0.1506764000157e+01, 0.1980094587212e+02, - - 0.2291769608798e-08, 0.2118250611782e+01, 0.2844914056730e-01, - 0.2209997316943e-08, 0.3363255261678e+01, 0.2666070658668e+00, - 0.2292699097923e-08, 0.4200423956460e+00, 0.1484170571900e-02, - 0.1629683015329e-08, 0.2331362582487e+01, 0.3035599730800e+02, - 0.2206492862426e-08, 0.3400274026992e+01, 0.6281667977667e+01, - 0.2205746568257e-08, 0.1066051230724e+00, 0.6284483723224e+01, - 0.2026310767991e-08, 0.2779066487979e+01, 0.2449240616245e+02, - 0.1762977622163e-08, 0.9951450691840e+00, 0.2045286941806e+02, - 0.1368535049606e-08, 0.6402447365817e+00, 0.2473415438279e+02, - 0.1720598775450e-08, 0.2303524214705e+00, 0.1679593901136e+03, - - 0.1702429015449e-08, 0.6164622655048e+01, 0.3338575901272e+03, - 0.1414033197685e-08, 0.3954561185580e+01, 0.1624205518357e+03, - 0.1573768958043e-08, 0.2028286308984e+01, 0.3144167757552e+02, - 0.1650705184447e-08, 0.2304040666128e+01, 0.5267006960365e+02, - 0.1651087618855e-08, 0.2538461057280e+01, 0.8956999012000e+02, - 0.1616409518983e-08, 0.5111054348152e+01, 0.3332657872986e+02, - 0.1537175173581e-08, 0.5601130666603e+01, 0.3852657435933e+02, - 0.1593191980553e-08, 0.2614340453411e+01, 0.2282781046519e+03, - 0.1499480170643e-08, 0.3624721577264e+01, 0.2823723341956e+02, - 0.1493807843235e-08, 0.4214569879008e+01, 0.2876692439167e+02, - - 0.1074571199328e-08, 0.1496911744704e+00, 0.8397383534231e+02, - 0.1074406983417e-08, 0.1187817671922e+01, 0.8401985929482e+02, - 0.9757576855851e-09, 0.2655703035858e+01, 0.7826370942180e+02, - 0.1258432887565e-08, 0.4969896184844e+01, 0.3115650189215e+03, - 0.1240336343282e-08, 0.5192460776926e+01, 0.1784300471910e+03, - 0.9016107005164e-09, 0.1960356923057e+01, 0.5886454391678e+02, - 0.1135392360918e-08, 0.5082427809068e+01, 0.7842370451713e+02, - 0.9216046089565e-09, 0.2793775037273e+01, 0.1014262087719e+03, - 0.1061276615030e-08, 0.3726144311409e+01, 0.5660027930059e+02, - 0.1010110596263e-08, 0.7404080708937e+00, 0.4245678405627e+02, - - 0.7217424756199e-09, 0.2697449980577e-01, 0.2457074661053e+03, - 0.6912003846756e-09, 0.4253296276335e+01, 0.1679936946371e+03, - 0.6871814664847e-09, 0.5148072412354e+01, 0.6053048899753e+02, - 0.4887158016343e-09, 0.2153581148294e+01, 0.9656299901946e+02, - 0.5161802866314e-09, 0.3852750634351e+01, 0.2442876000072e+03, - 0.5652599559057e-09, 0.1233233356270e+01, 0.8365903305582e+02, - 0.4710812608586e-09, 0.5610486976767e+01, 0.3164282286739e+03, - 0.4909977500324e-09, 0.1639629524123e+01, 0.4059982187939e+03, - 0.4772641839378e-09, 0.3737100368583e+01, 0.1805255418145e+03, - 0.4487562567153e-09, 0.1158417054478e+00, 0.8433466158131e+02, - - 0.3943441230497e-09, 0.6243502862796e+00, 0.2568537517081e+03, - 0.3952236913598e-09, 0.3510377382385e+01, 0.2449975330562e+03, - 0.3788898363417e-09, 0.5916128302299e+01, 0.1568131045107e+03, - 0.3738329328831e-09, 0.1042266763456e+01, 0.3948519331910e+03, - 0.2451199165151e-09, 0.1166788435700e+01, 0.1435713242844e+03, - 0.2436734402904e-09, 0.3254726114901e+01, 0.2268582385539e+03, - 0.2213605274325e-09, 0.1687210598530e+01, 0.1658638954901e+03, - 0.1491521204829e-09, 0.2657541786794e+01, 0.2219950288015e+03, - 0.1474995329744e-09, 0.5013089805819e+01, 0.3052819430710e+03, - 0.1661939475656e-09, 0.5495315428418e+01, 0.2526661704812e+03, - - 0.9015946748003e-10, 0.2236989966505e+01, 0.4171445043968e+03 }; - -/* Sun-to-Earth, T^0, Z */ - static const double e0z[] = { - 0.2796207639075e-05, 0.3198701560209e+01, 0.8433466158131e+02, - 0.1016042198142e-05, 0.5422360395913e+01, 0.5507553240374e+01, - 0.8044305033647e-06, 0.3880222866652e+01, 0.5223693906222e+01, - 0.4385347909274e-06, 0.3704369937468e+01, 0.2352866153506e+01, - 0.3186156414906e-06, 0.3999639363235e+01, 0.1577343543434e+01, - 0.2272412285792e-06, 0.3984738315952e+01, 0.1047747311755e+01, - 0.1645620103007e-06, 0.3565412516841e+01, 0.5856477690889e+01, - 0.1815836921166e-06, 0.4984507059020e+01, 0.6283075850446e+01, - 0.1447461676364e-06, 0.3702753570108e+01, 0.9437762937313e+01, - 0.1430760876382e-06, 0.3409658712357e+01, 0.1021328554739e+02, - - 0.1120445753226e-06, 0.4829561570246e+01, 0.1414349524433e+02, - 0.1090232840797e-06, 0.2080729178066e+01, 0.6812766822558e+01, - 0.9715727346551e-07, 0.3476295881948e+01, 0.4694002934110e+01, - 0.1036267136217e-06, 0.4056639536648e+01, 0.7109288135493e+02, - 0.8752665271340e-07, 0.4448159519911e+01, 0.5753384878334e+01, - 0.8331864956004e-07, 0.4991704044208e+01, 0.7084896783808e+01, - 0.6901658670245e-07, 0.4325358994219e+01, 0.6275962395778e+01, - 0.9144536848998e-07, 0.1141826375363e+01, 0.6620890113188e+01, - 0.7205085037435e-07, 0.3624344170143e+01, 0.5296909721118e+00, - 0.7697874654176e-07, 0.5554257458998e+01, 0.1676215758509e+03, - - 0.5197545738384e-07, 0.6251760961735e+01, 0.1807370494127e+02, - 0.5031345378608e-07, 0.2497341091913e+01, 0.4705732307012e+01, - 0.4527110205840e-07, 0.2335079920992e+01, 0.6309374173736e+01, - 0.4753355798089e-07, 0.7094148987474e+00, 0.5884926831456e+01, - 0.4296951977516e-07, 0.1101916352091e+01, 0.6681224869435e+01, - 0.3855341568387e-07, 0.1825495405486e+01, 0.5486777812467e+01, - 0.5253930970990e-07, 0.4424740687208e+01, 0.7860419393880e+01, - 0.4024630496471e-07, 0.5120498157053e+01, 0.1336797263425e+02, - 0.4061069791453e-07, 0.6029771435451e+01, 0.3930209696940e+01, - 0.3797883804205e-07, 0.4435193600836e+00, 0.3154687086868e+01, - - 0.2933033225587e-07, 0.5124157356507e+01, 0.1059381944224e+01, - 0.3503000930426e-07, 0.5421830162065e+01, 0.6069776770667e+01, - 0.3670096214050e-07, 0.4582101667297e+01, 0.1219403291462e+02, - 0.2905609437008e-07, 0.1926566420072e+01, 0.1097707878456e+02, - 0.2466827821713e-07, 0.6090174539834e+00, 0.6496374930224e+01, - 0.2691647295332e-07, 0.1393432595077e+01, 0.2200391463820e+02, - 0.2150554667946e-07, 0.4308671715951e+01, 0.5643178611111e+01, - 0.2237481922680e-07, 0.8133968269414e+00, 0.8635942003952e+01, - 0.1817741038157e-07, 0.3755205127454e+01, 0.3340612434717e+01, - 0.2227820762132e-07, 0.2759558596664e+01, 0.1203646072878e+02, - - 0.1944713772307e-07, 0.5699645869121e+01, 0.1179062909082e+02, - 0.1527340520662e-07, 0.1986749091746e+01, 0.3981490189893e+00, - 0.1577282574914e-07, 0.3205017217983e+01, 0.5088628793478e+01, - 0.1424738825424e-07, 0.6256747903666e+01, 0.2544314396739e+01, - 0.1616563121701e-07, 0.2601671259394e+00, 0.1729818233119e+02, - 0.1401210391692e-07, 0.4686939173506e+01, 0.7058598460518e+01, - 0.1488726974214e-07, 0.2815862451372e+01, 0.2593412433514e+02, - 0.1692626442388e-07, 0.4956894109797e+01, 0.1564752902480e+03, - 0.1123571582910e-07, 0.2381192697696e+01, 0.3738761453707e+01, - 0.9903308606317e-08, 0.4294851657684e+01, 0.9225539266174e+01, - - 0.9174533187191e-08, 0.3075171510642e+01, 0.4164311961999e+01, - 0.8645985631457e-08, 0.5477534821633e+00, 0.8429241228195e+01, - -0.1085876492688e-07, 0.0000000000000e+00, 0.0000000000000e+00, - 0.9264309077815e-08, 0.5968571670097e+01, 0.7079373888424e+01, - 0.8243116984954e-08, 0.1489098777643e+01, 0.1044738781244e+02, - 0.8268102113708e-08, 0.3512977691983e+01, 0.1150676975667e+02, - 0.9043613988227e-08, 0.1290704408221e+00, 0.1101510648075e+02, - 0.7432912038789e-08, 0.1991086893337e+01, 0.2608790314060e+02, - 0.8586233727285e-08, 0.4238357924414e+01, 0.2986433403208e+02, - 0.7612230060131e-08, 0.2911090150166e+01, 0.4732030630302e+01, - - 0.7097787751408e-08, 0.1908938392390e+01, 0.8031092209206e+01, - 0.7640237040175e-08, 0.6129219000168e+00, 0.7962980379786e+00, - 0.7070445688081e-08, 0.1380417036651e+01, 0.2146165377750e+01, - 0.7690770957702e-08, 0.1680504249084e+01, 0.2122839202813e+02, - 0.8051292542594e-08, 0.5127423484511e+01, 0.2942463415728e+01, - 0.5902709104515e-08, 0.2020274190917e+01, 0.7755226100720e+00, - 0.5134567496462e-08, 0.2606778676418e+01, 0.1256615170089e+02, - 0.5525802046102e-08, 0.1613011769663e+01, 0.8018209333619e+00, - 0.5880724784221e-08, 0.4604483417236e+01, 0.4690479774488e+01, - 0.5211699081370e-08, 0.5718964114193e+01, 0.8827390247185e+01, - - 0.4891849573562e-08, 0.3689658932196e+01, 0.2132990797783e+00, - 0.5150246069997e-08, 0.4099769855122e+01, 0.6480980550449e+02, - 0.5102434319633e-08, 0.5660834602509e+01, 0.3379454372902e+02, - 0.5083405254252e-08, 0.9842221218974e+00, 0.4136910472696e+01, - 0.4206562585682e-08, 0.1341363634163e+00, 0.3128388763578e+01, - 0.4663249683579e-08, 0.8130132735866e+00, 0.5216580451554e+01, - 0.4099474416530e-08, 0.5791497770644e+01, 0.4265981595566e+00, - 0.4628251220767e-08, 0.1249802769331e+01, 0.1572083878776e+02, - 0.5024068728142e-08, 0.4795684802743e+01, 0.6290189305114e+01, - 0.5120234327758e-08, 0.3810420387208e+01, 0.5230807360890e+01, - - 0.5524029815280e-08, 0.1029264714351e+01, 0.2397622045175e+03, - 0.4757415718860e-08, 0.3528044781779e+01, 0.1649636139783e+02, - 0.3915786131127e-08, 0.5593889282646e+01, 0.1589072916335e+01, - 0.4869053149991e-08, 0.3299636454433e+01, 0.7632943190217e+01, - 0.3649365703729e-08, 0.1286049002584e+01, 0.6206810014183e+01, - 0.3992493949002e-08, 0.3100307589464e+01, 0.2515860172507e+02, - 0.3320247477418e-08, 0.6212683940807e+01, 0.1216800268190e+02, - 0.3287123739696e-08, 0.4699118445928e+01, 0.7234794171227e+01, - 0.3472776811103e-08, 0.2630507142004e+01, 0.7342457794669e+01, - 0.3423253294767e-08, 0.2946432844305e+01, 0.9623688285163e+01, - - 0.3896173898244e-08, 0.1224834179264e+01, 0.6438496133249e+01, - 0.3388455337924e-08, 0.1543807616351e+01, 0.1494531617769e+02, - 0.3062704716523e-08, 0.1191777572310e+01, 0.8662240327241e+01, - 0.3270075600400e-08, 0.5483498767737e+01, 0.1194447056968e+01, - 0.3101209215259e-08, 0.8000833804348e+00, 0.3772475342596e+02, - 0.2780883347311e-08, 0.4077980721888e+00, 0.5863591145557e+01, - 0.2903605931824e-08, 0.2617490302147e+01, 0.1965104848470e+02, - 0.2682014743119e-08, 0.2634703158290e+01, 0.7238675589263e+01, - 0.2534360108492e-08, 0.6102446114873e+01, 0.6836645152238e+01, - 0.2392564882509e-08, 0.3681820208691e+01, 0.5849364236221e+01, - - 0.2656667254856e-08, 0.6216045388886e+01, 0.6133512519065e+01, - 0.2331242096773e-08, 0.5864949777744e+01, 0.4535059491685e+01, - 0.2287898363668e-08, 0.4566628532802e+01, 0.7477522907414e+01, - 0.2336944521306e-08, 0.2442722126930e+01, 0.1137170464392e+02, - 0.3156632236269e-08, 0.1626628050682e+01, 0.2509084901204e+03, - 0.2982612402766e-08, 0.2803604512609e+01, 0.1748016358760e+01, - 0.2774031674807e-08, 0.4654002897158e+01, 0.8223916695780e+02, - 0.2295236548638e-08, 0.4326518333253e+01, 0.3378142627421e+00, - 0.2190714699873e-08, 0.4519614578328e+01, 0.2908881142201e+02, - 0.2191495845045e-08, 0.3012626912549e+01, 0.1673046366289e+02, - - 0.2492901628386e-08, 0.1290101424052e+00, 0.1543797956245e+03, - 0.1993778064319e-08, 0.3864046799414e+01, 0.1778984560711e+02, - 0.1898146479022e-08, 0.5053777235891e+01, 0.2042657109477e+02, - 0.1918280127634e-08, 0.2222470192548e+01, 0.4165496312290e+02, - 0.1916351061607e-08, 0.8719067257774e+00, 0.7737595720538e+02, - 0.1834720181466e-08, 0.4031491098040e+01, 0.2358125818164e+02, - 0.1249201523806e-08, 0.5938379466835e+01, 0.3301902111895e+02, - 0.1477304050539e-08, 0.6544722606797e+00, 0.9548094718417e+02, - 0.1264316431249e-08, 0.2059072853236e+01, 0.8399684731857e+02, - 0.1203526495039e-08, 0.3644813532605e+01, 0.4558517281984e+02, - - 0.9221681059831e-09, 0.3241815055602e+01, 0.7805158573086e+02, - 0.7849278367646e-09, 0.5043812342457e+01, 0.5217580628120e+02, - 0.7983392077387e-09, 0.5000024502753e+01, 0.1501922143975e+03, - 0.7925395431654e-09, 0.1398734871821e-01, 0.9061773743175e+02, - 0.7640473285886e-09, 0.5067111723130e+01, 0.4951538251678e+02, - 0.5398937754482e-09, 0.5597382200075e+01, 0.1613385000004e+03, - 0.5626247550193e-09, 0.2601338209422e+01, 0.7318837597844e+02, - 0.5525197197855e-09, 0.5814832109256e+01, 0.1432335100216e+03, - 0.5407629837898e-09, 0.3384820609076e+01, 0.3230491187871e+03, - 0.3856739119801e-09, 0.1072391840473e+01, 0.2334791286671e+03, - - 0.3856425239987e-09, 0.2369540393327e+01, 0.1739046517013e+03, - 0.4350867755983e-09, 0.5255575751082e+01, 0.1620484330494e+03, - 0.3844113924996e-09, 0.5482356246182e+01, 0.9757644180768e+02, - 0.2854869155431e-09, 0.9573634763143e+00, 0.1697170704744e+03, - 0.1719227671416e-09, 0.1887203025202e+01, 0.2265204242912e+03, - 0.1527846879755e-09, 0.3982183931157e+01, 0.3341954043900e+03, - 0.1128229264847e-09, 0.2787457156298e+01, 0.3119028331842e+03 }; - -/* Sun-to-Earth, T^1, X */ - static const double e1x[] = { - 0.1234046326004e-05, 0.0000000000000e+00, 0.0000000000000e+00, - 0.5150068824701e-06, 0.6002664557501e+01, 0.1256615170089e+02, - 0.1290743923245e-07, 0.5959437664199e+01, 0.1884922755134e+02, - 0.1068615564952e-07, 0.2015529654209e+01, 0.6283075850446e+01, - 0.2079619142538e-08, 0.1732960531432e+01, 0.6279552690824e+01, - 0.2078009243969e-08, 0.4915604476996e+01, 0.6286599010068e+01, - 0.6206330058856e-09, 0.3616457953824e+00, 0.4705732307012e+01, - 0.5989335313746e-09, 0.3802607304474e+01, 0.6256777527156e+01, - 0.5958495663840e-09, 0.2845866560031e+01, 0.6309374173736e+01, - 0.4866923261539e-09, 0.5213203771824e+01, 0.7755226100720e+00, - - 0.4267785823142e-09, 0.4368189727818e+00, 0.1059381944224e+01, - 0.4610675141648e-09, 0.1837249181372e-01, 0.7860419393880e+01, - 0.3626989993973e-09, 0.2161590545326e+01, 0.5753384878334e+01, - 0.3563071194389e-09, 0.1452631954746e+01, 0.5884926831456e+01, - 0.3557015642807e-09, 0.4470593393054e+01, 0.6812766822558e+01, - 0.3210412089122e-09, 0.5195926078314e+01, 0.6681224869435e+01, - 0.2875473577986e-09, 0.5916256610193e+01, 0.2513230340178e+02, - 0.2842913681629e-09, 0.1149902426047e+01, 0.6127655567643e+01, - 0.2751248215916e-09, 0.5502088574662e+01, 0.6438496133249e+01, - 0.2481432881127e-09, 0.2921989846637e+01, 0.5486777812467e+01, - - 0.2059885976560e-09, 0.3718070376585e+01, 0.7079373888424e+01, - 0.2015522342591e-09, 0.5979395259740e+01, 0.6290189305114e+01, - 0.1995364084253e-09, 0.6772087985494e+00, 0.6275962395778e+01, - 0.1957436436943e-09, 0.2899210654665e+01, 0.5507553240374e+01, - 0.1651609818948e-09, 0.6228206482192e+01, 0.1150676975667e+02, - 0.1822980550699e-09, 0.1469348746179e+01, 0.1179062909082e+02, - 0.1675223159760e-09, 0.3813910555688e+01, 0.7058598460518e+01, - 0.1706491764745e-09, 0.3004380506684e+00, 0.7113454667900e-02, - 0.1392952362615e-09, 0.1440393973406e+01, 0.7962980379786e+00, - 0.1209868266342e-09, 0.4150425791727e+01, 0.4694002934110e+01, - - 0.1009827202611e-09, 0.3290040429843e+01, 0.3738761453707e+01, - 0.1047261388602e-09, 0.4229590090227e+01, 0.6282095334605e+01, - 0.1047006652004e-09, 0.2418967680575e+01, 0.6284056366286e+01, - 0.9609993143095e-10, 0.4627943659201e+01, 0.6069776770667e+01, - 0.9590900593873e-10, 0.1894393939924e+01, 0.4136910472696e+01, - 0.9146249188071e-10, 0.2010647519562e+01, 0.6496374930224e+01, - 0.8545274480290e-10, 0.5529846956226e-01, 0.1194447056968e+01, - 0.8224377881194e-10, 0.1254304102174e+01, 0.1589072916335e+01, - 0.6183529510410e-10, 0.3360862168815e+01, 0.8827390247185e+01, - 0.6259255147141e-10, 0.4755628243179e+01, 0.8429241228195e+01, - - 0.5539291694151e-10, 0.5371746955142e+01, 0.4933208510675e+01, - 0.7328259466314e-10, 0.4927699613906e+00, 0.4535059491685e+01, - 0.6017835843560e-10, 0.5776682001734e-01, 0.1255903824622e+02, - 0.7079827775243e-10, 0.4395059432251e+01, 0.5088628793478e+01, - 0.5170358878213e-10, 0.5154062619954e+01, 0.1176985366291e+02, - 0.4872301838682e-10, 0.6289611648973e+00, 0.6040347114260e+01, - 0.5249869411058e-10, 0.5617272046949e+01, 0.3154687086868e+01, - 0.4716172354411e-10, 0.3965901800877e+01, 0.5331357529664e+01, - 0.4871214940964e-10, 0.4627507050093e+01, 0.1256967486051e+02, - 0.4598076850751e-10, 0.6023631226459e+01, 0.6525804586632e+01, - - 0.4562196089485e-10, 0.4138562084068e+01, 0.3930209696940e+01, - 0.4325493872224e-10, 0.1330845906564e+01, 0.7632943190217e+01, - 0.5673781176748e-10, 0.2558752615657e+01, 0.5729506548653e+01, - 0.3961436642503e-10, 0.2728071734630e+01, 0.7234794171227e+01, - 0.5101868209058e-10, 0.4113444965144e+01, 0.6836645152238e+01, - 0.5257043167676e-10, 0.6195089830590e+01, 0.8031092209206e+01, - 0.5076613989393e-10, 0.2305124132918e+01, 0.7477522907414e+01, - 0.3342169352778e-10, 0.5415998155071e+01, 0.1097707878456e+02, - 0.3545881983591e-10, 0.3727160564574e+01, 0.4164311961999e+01, - 0.3364063738599e-10, 0.2901121049204e+00, 0.1137170464392e+02, - - 0.3357039670776e-10, 0.1652229354331e+01, 0.5223693906222e+01, - 0.4307412268687e-10, 0.4938909587445e+01, 0.1592596075957e+01, - 0.3405769115435e-10, 0.2408890766511e+01, 0.3128388763578e+01, - 0.3001926198480e-10, 0.4862239006386e+01, 0.1748016358760e+01, - 0.2778264787325e-10, 0.5241168661353e+01, 0.7342457794669e+01, - 0.2676159480666e-10, 0.3423593942199e+01, 0.2146165377750e+01, - 0.2954273399939e-10, 0.1881721265406e+01, 0.5368044267797e+00, - 0.3309362888795e-10, 0.1931525677349e+01, 0.8018209333619e+00, - 0.2810283608438e-10, 0.2414659495050e+01, 0.5225775174439e+00, - 0.3378045637764e-10, 0.4238019163430e+01, 0.1554202828031e+00, - - 0.2558134979840e-10, 0.1828225235805e+01, 0.5230807360890e+01, - 0.2273755578447e-10, 0.5858184283998e+01, 0.7084896783808e+01, - 0.2294176037690e-10, 0.4514589779057e+01, 0.1726015463500e+02, - 0.2533506099435e-10, 0.2355717851551e+01, 0.5216580451554e+01, - 0.2716685375812e-10, 0.2221003625100e+01, 0.8635942003952e+01, - 0.2419043435198e-10, 0.5955704951635e+01, 0.4690479774488e+01, - 0.2521232544812e-10, 0.1395676848521e+01, 0.5481254917084e+01, - 0.2630195021491e-10, 0.5727468918743e+01, 0.2629832328990e-01, - 0.2548395840944e-10, 0.2628351859400e-03, 0.1349867339771e+01 }; - -/* Sun-to-Earth, T^1, Y */ - static const double e1y[] = { - 0.9304690546528e-06, 0.0000000000000e+00, 0.0000000000000e+00, - 0.5150715570663e-06, 0.4431807116294e+01, 0.1256615170089e+02, - 0.1290825411056e-07, 0.4388610039678e+01, 0.1884922755134e+02, - 0.4645466665386e-08, 0.5827263376034e+01, 0.6283075850446e+01, - 0.2079625310718e-08, 0.1621698662282e+00, 0.6279552690824e+01, - 0.2078189850907e-08, 0.3344713435140e+01, 0.6286599010068e+01, - 0.6207190138027e-09, 0.5074049319576e+01, 0.4705732307012e+01, - 0.5989826532569e-09, 0.2231842216620e+01, 0.6256777527156e+01, - 0.5961360812618e-09, 0.1274975769045e+01, 0.6309374173736e+01, - 0.4874165471016e-09, 0.3642277426779e+01, 0.7755226100720e+00, - - 0.4283834034360e-09, 0.5148765510106e+01, 0.1059381944224e+01, - 0.4652389287529e-09, 0.4715794792175e+01, 0.7860419393880e+01, - 0.3751707476401e-09, 0.6617207370325e+00, 0.5753384878334e+01, - 0.3559998806198e-09, 0.6155548875404e+01, 0.5884926831456e+01, - 0.3558447558857e-09, 0.2898827297664e+01, 0.6812766822558e+01, - 0.3211116927106e-09, 0.3625813502509e+01, 0.6681224869435e+01, - 0.2875609914672e-09, 0.4345435813134e+01, 0.2513230340178e+02, - 0.2843109704069e-09, 0.5862263940038e+01, 0.6127655567643e+01, - 0.2744676468427e-09, 0.3926419475089e+01, 0.6438496133249e+01, - 0.2481285237789e-09, 0.1351976572828e+01, 0.5486777812467e+01, - - 0.2060338481033e-09, 0.2147556998591e+01, 0.7079373888424e+01, - 0.2015822358331e-09, 0.4408358972216e+01, 0.6290189305114e+01, - 0.2001195944195e-09, 0.5385829822531e+01, 0.6275962395778e+01, - 0.1953667642377e-09, 0.1304933746120e+01, 0.5507553240374e+01, - 0.1839744078713e-09, 0.6173567228835e+01, 0.1179062909082e+02, - 0.1643334294845e-09, 0.4635942997523e+01, 0.1150676975667e+02, - 0.1768051018652e-09, 0.5086283558874e+01, 0.7113454667900e-02, - 0.1674874205489e-09, 0.2243332137241e+01, 0.7058598460518e+01, - 0.1421445397609e-09, 0.6186899771515e+01, 0.7962980379786e+00, - 0.1255163958267e-09, 0.5730238465658e+01, 0.4694002934110e+01, - - 0.1013945281961e-09, 0.1726055228402e+01, 0.3738761453707e+01, - 0.1047294335852e-09, 0.2658801228129e+01, 0.6282095334605e+01, - 0.1047103879392e-09, 0.8481047835035e+00, 0.6284056366286e+01, - 0.9530343962826e-10, 0.3079267149859e+01, 0.6069776770667e+01, - 0.9604637611690e-10, 0.3258679792918e+00, 0.4136910472696e+01, - 0.9153518537177e-10, 0.4398599886584e+00, 0.6496374930224e+01, - 0.8562458214922e-10, 0.4772686794145e+01, 0.1194447056968e+01, - 0.8232525360654e-10, 0.5966220721679e+01, 0.1589072916335e+01, - 0.6150223411438e-10, 0.1780985591923e+01, 0.8827390247185e+01, - 0.6272087858000e-10, 0.3184305429012e+01, 0.8429241228195e+01, - - 0.5540476311040e-10, 0.3801260595433e+01, 0.4933208510675e+01, - 0.7331901699361e-10, 0.5205948591865e+01, 0.4535059491685e+01, - 0.6018528702791e-10, 0.4770139083623e+01, 0.1255903824622e+02, - 0.5150530724804e-10, 0.3574796899585e+01, 0.1176985366291e+02, - 0.6471933741811e-10, 0.2679787266521e+01, 0.5088628793478e+01, - 0.5317460644174e-10, 0.9528763345494e+00, 0.3154687086868e+01, - 0.4832187748783e-10, 0.5329322498232e+01, 0.6040347114260e+01, - 0.4716763555110e-10, 0.2395235316466e+01, 0.5331357529664e+01, - 0.4871509139861e-10, 0.3056663648823e+01, 0.1256967486051e+02, - 0.4598417696768e-10, 0.4452762609019e+01, 0.6525804586632e+01, - - 0.5674189533175e-10, 0.9879680872193e+00, 0.5729506548653e+01, - 0.4073560328195e-10, 0.5939127696986e+01, 0.7632943190217e+01, - 0.5040994945359e-10, 0.4549875824510e+01, 0.8031092209206e+01, - 0.5078185134679e-10, 0.7346659893982e+00, 0.7477522907414e+01, - 0.3769343537061e-10, 0.1071317188367e+01, 0.7234794171227e+01, - 0.4980331365299e-10, 0.2500345341784e+01, 0.6836645152238e+01, - 0.3458236594757e-10, 0.3825159450711e+01, 0.1097707878456e+02, - 0.3578859493602e-10, 0.5299664791549e+01, 0.4164311961999e+01, - 0.3370504646419e-10, 0.5002316301593e+01, 0.1137170464392e+02, - 0.3299873338428e-10, 0.2526123275282e+01, 0.3930209696940e+01, - - 0.4304917318409e-10, 0.3368078557132e+01, 0.1592596075957e+01, - 0.3402418753455e-10, 0.8385495425800e+00, 0.3128388763578e+01, - 0.2778460572146e-10, 0.3669905203240e+01, 0.7342457794669e+01, - 0.2782710128902e-10, 0.2691664812170e+00, 0.1748016358760e+01, - 0.2711725179646e-10, 0.4707487217718e+01, 0.5296909721118e+00, - 0.2981760946340e-10, 0.3190260867816e+00, 0.5368044267797e+00, - 0.2811672977772e-10, 0.3196532315372e+01, 0.7084896783808e+01, - 0.2863454474467e-10, 0.2263240324780e+00, 0.5223693906222e+01, - 0.3333464634051e-10, 0.3498451685065e+01, 0.8018209333619e+00, - 0.3312991747609e-10, 0.5839154477412e+01, 0.1554202828031e+00, - - 0.2813255564006e-10, 0.8268044346621e+00, 0.5225775174439e+00, - 0.2665098083966e-10, 0.3934021725360e+01, 0.5216580451554e+01, - 0.2349795705216e-10, 0.5197620913779e+01, 0.2146165377750e+01, - 0.2330352293961e-10, 0.2984999231807e+01, 0.1726015463500e+02, - 0.2728001683419e-10, 0.6521679638544e+00, 0.8635942003952e+01, - 0.2484061007669e-10, 0.3468955561097e+01, 0.5230807360890e+01, - 0.2646328768427e-10, 0.1013724533516e+01, 0.2629832328990e-01, - 0.2518630264831e-10, 0.6108081057122e+01, 0.5481254917084e+01, - 0.2421901455384e-10, 0.1651097776260e+01, 0.1349867339771e+01, - 0.6348533267831e-11, 0.3220226560321e+01, 0.8433466158131e+02 }; - -/* Sun-to-Earth, T^1, Z */ - static const double e1z[] = { - 0.2278290449966e-05, 0.3413716033863e+01, 0.6283075850446e+01, - 0.5429458209830e-07, 0.0000000000000e+00, 0.0000000000000e+00, - 0.1903240492525e-07, 0.3370592358297e+01, 0.1256615170089e+02, - 0.2385409276743e-09, 0.3327914718416e+01, 0.1884922755134e+02, - 0.8676928342573e-10, 0.1824006811264e+01, 0.5223693906222e+01, - 0.7765442593544e-10, 0.3888564279247e+01, 0.5507553240374e+01, - 0.7066158332715e-10, 0.5194267231944e+01, 0.2352866153506e+01, - 0.7092175288657e-10, 0.2333246960021e+01, 0.8399684731857e+02, - 0.5357582213535e-10, 0.2224031176619e+01, 0.5296909721118e+00, - 0.3828035865021e-10, 0.2156710933584e+01, 0.6279552690824e+01, - - 0.3824857220427e-10, 0.1529755219915e+01, 0.6286599010068e+01, - 0.3286995181628e-10, 0.4879512900483e+01, 0.1021328554739e+02 }; - -/* Sun-to-Earth, T^2, X */ - static const double e2x[] = { - -0.4143818297913e-10, 0.0000000000000e+00, 0.0000000000000e+00, - 0.2171497694435e-10, 0.4398225628264e+01, 0.1256615170089e+02, - 0.9845398442516e-11, 0.2079720838384e+00, 0.6283075850446e+01, - 0.9256833552682e-12, 0.4191264694361e+01, 0.1884922755134e+02, - 0.1022049384115e-12, 0.5381133195658e+01, 0.8399684731857e+02 }; - -/* Sun-to-Earth, T^2, Y */ - static const double e2y[] = { - 0.5063375872532e-10, 0.0000000000000e+00, 0.0000000000000e+00, - 0.2173815785980e-10, 0.2827805833053e+01, 0.1256615170089e+02, - 0.1010231999920e-10, 0.4634612377133e+01, 0.6283075850446e+01, - 0.9259745317636e-12, 0.2620612076189e+01, 0.1884922755134e+02, - 0.1022202095812e-12, 0.3809562326066e+01, 0.8399684731857e+02 }; - -/* Sun-to-Earth, T^2, Z */ - static const double e2z[] = { - 0.9722666114891e-10, 0.5152219582658e+01, 0.6283075850446e+01, - -0.3494819171909e-11, 0.0000000000000e+00, 0.0000000000000e+00, - 0.6713034376076e-12, 0.6440188750495e+00, 0.1256615170089e+02 }; - -/* SSB-to-Sun, T^0, X */ - static const double s0x[] = { - 0.4956757536410e-02, 0.3741073751789e+01, 0.5296909721118e+00, - 0.2718490072522e-02, 0.4016011511425e+01, 0.2132990797783e+00, - 0.1546493974344e-02, 0.2170528330642e+01, 0.3813291813120e-01, - 0.8366855276341e-03, 0.2339614075294e+01, 0.7478166569050e-01, - 0.2936777942117e-03, 0.0000000000000e+00, 0.0000000000000e+00, - 0.1201317439469e-03, 0.4090736353305e+01, 0.1059381944224e+01, - 0.7578550887230e-04, 0.3241518088140e+01, 0.4265981595566e+00, - 0.1941787367773e-04, 0.1012202064330e+01, 0.2061856251104e+00, - 0.1889227765991e-04, 0.3892520416440e+01, 0.2204125344462e+00, - 0.1937896968613e-04, 0.4797779441161e+01, 0.1495633313810e+00, - - 0.1434506110873e-04, 0.3868960697933e+01, 0.5225775174439e+00, - 0.1406659911580e-04, 0.4759766557397e+00, 0.5368044267797e+00, - 0.1179022300202e-04, 0.7774961520598e+00, 0.7626583626240e-01, - 0.8085864460959e-05, 0.3254654471465e+01, 0.3664874755930e-01, - 0.7622752967615e-05, 0.4227633103489e+01, 0.3961708870310e-01, - 0.6209171139066e-05, 0.2791828325711e+00, 0.7329749511860e-01, - 0.4366435633970e-05, 0.4440454875925e+01, 0.1589072916335e+01, - 0.3792124889348e-05, 0.5156393842356e+01, 0.7113454667900e-02, - 0.3154548963402e-05, 0.6157005730093e+01, 0.4194847048887e+00, - 0.3088359882942e-05, 0.2494567553163e+01, 0.6398972393349e+00, - - 0.2788440902136e-05, 0.4934318747989e+01, 0.1102062672231e+00, - 0.3039928456376e-05, 0.4895077702640e+01, 0.6283075850446e+01, - 0.2272258457679e-05, 0.5278394064764e+01, 0.1030928125552e+00, - 0.2162007057957e-05, 0.5802978019099e+01, 0.3163918923335e+00, - 0.1767632855737e-05, 0.3415346595193e-01, 0.1021328554739e+02, - 0.1349413459362e-05, 0.2001643230755e+01, 0.1484170571900e-02, - 0.1170141900476e-05, 0.2424750491620e+01, 0.6327837846670e+00, - 0.1054355266820e-05, 0.3123311487576e+01, 0.4337116142245e+00, - 0.9800822461610e-06, 0.3026258088130e+01, 0.1052268489556e+01, - 0.1091203749931e-05, 0.3157811670347e+01, 0.1162474756779e+01, - - 0.6960236715913e-06, 0.8219570542313e+00, 0.1066495398892e+01, - 0.5689257296909e-06, 0.1323052375236e+01, 0.9491756770005e+00, - 0.6613172135802e-06, 0.2765348881598e+00, 0.8460828644453e+00, - 0.6277702517571e-06, 0.5794064466382e+01, 0.1480791608091e+00, - 0.6304884066699e-06, 0.7323555380787e+00, 0.2243449970715e+00, - 0.4897850467382e-06, 0.3062464235399e+01, 0.3340612434717e+01, - 0.3759148598786e-06, 0.4588290469664e+01, 0.3516457698740e-01, - 0.3110520548195e-06, 0.1374299536572e+01, 0.6373574839730e-01, - 0.3064708359780e-06, 0.4222267485047e+01, 0.1104591729320e-01, - 0.2856347168241e-06, 0.3714202944973e+01, 0.1510475019529e+00, - - 0.2840945514288e-06, 0.2847972875882e+01, 0.4110125927500e-01, - 0.2378951599405e-06, 0.3762072563388e+01, 0.2275259891141e+00, - 0.2714229481417e-06, 0.1036049980031e+01, 0.2535050500000e-01, - 0.2323551717307e-06, 0.4682388599076e+00, 0.8582758298370e-01, - 0.1881790512219e-06, 0.4790565425418e+01, 0.2118763888447e+01, - 0.2261353968371e-06, 0.1669144912212e+01, 0.7181332454670e-01, - 0.2214546389848e-06, 0.3937717281614e+01, 0.2968341143800e-02, - 0.2184915594933e-06, 0.1129169845099e+00, 0.7775000683430e-01, - 0.2000164937936e-06, 0.4030009638488e+01, 0.2093666171530e+00, - 0.1966105136719e-06, 0.8745955786834e+00, 0.2172315424036e+00, - - 0.1904742332624e-06, 0.5919743598964e+01, 0.2022531624851e+00, - 0.1657399705031e-06, 0.2549141484884e+01, 0.7358765972222e+00, - 0.1574070533987e-06, 0.5277533020230e+01, 0.7429900518901e+00, - 0.1832261651039e-06, 0.3064688127777e+01, 0.3235053470014e+00, - 0.1733615346569e-06, 0.3011432799094e+01, 0.1385174140878e+00, - 0.1549124014496e-06, 0.4005569132359e+01, 0.5154640627760e+00, - 0.1637044713838e-06, 0.1831375966632e+01, 0.8531963191132e+00, - 0.1123420082383e-06, 0.1180270407578e+01, 0.1990721704425e+00, - 0.1083754165740e-06, 0.3414101320863e+00, 0.5439178814476e+00, - 0.1156638012655e-06, 0.6130479452594e+00, 0.5257585094865e+00, - - 0.1142548785134e-06, 0.3724761948846e+01, 0.5336234347371e+00, - 0.7921463895965e-07, 0.2435425589361e+01, 0.1478866649112e+01, - 0.7428600285231e-07, 0.3542144398753e+01, 0.2164800718209e+00, - 0.8323211246747e-07, 0.3525058072354e+01, 0.1692165728891e+01, - 0.7257595116312e-07, 0.1364299431982e+01, 0.2101180877357e+00, - 0.7111185833236e-07, 0.2460478875808e+01, 0.4155522422634e+00, - 0.6868090383716e-07, 0.4397327670704e+01, 0.1173197218910e+00, - 0.7226419974175e-07, 0.4042647308905e+01, 0.1265567569334e+01, - 0.6955642383177e-07, 0.2865047906085e+01, 0.9562891316684e+00, - 0.7492139296331e-07, 0.5014278994215e+01, 0.1422690933580e-01, - - 0.6598363128857e-07, 0.2376730020492e+01, 0.6470106940028e+00, - 0.7381147293385e-07, 0.3272990384244e+01, 0.1581959461667e+01, - 0.6402909624032e-07, 0.5302290955138e+01, 0.9597935788730e-01, - 0.6237454263857e-07, 0.5444144425332e+01, 0.7084920306520e-01, - 0.5241198544016e-07, 0.4215359579205e+01, 0.5265099800692e+00, - 0.5144463853918e-07, 0.1218916689916e+00, 0.5328719641544e+00, - 0.5868164772299e-07, 0.2369402002213e+01, 0.7871412831580e-01, - 0.6233195669151e-07, 0.1254922242403e+01, 0.2608790314060e+02, - 0.6068463791422e-07, 0.5679713760431e+01, 0.1114304132498e+00, - 0.4359361135065e-07, 0.6097219641646e+00, 0.1375773836557e+01, - - 0.4686510366826e-07, 0.4786231041431e+01, 0.1143987543936e+00, - 0.3758977287225e-07, 0.1167368068139e+01, 0.1596186371003e+01, - 0.4282051974778e-07, 0.1519471064319e+01, 0.2770348281756e+00, - 0.5153765386113e-07, 0.1860532322984e+01, 0.2228608264996e+00, - 0.4575129387188e-07, 0.7632857887158e+00, 0.1465949902372e+00, - 0.3326844933286e-07, 0.1298219485285e+01, 0.5070101000000e-01, - 0.3748617450984e-07, 0.1046510321062e+01, 0.4903339079539e+00, - 0.2816756661499e-07, 0.3434522346190e+01, 0.2991266627620e+00, - 0.3412750405039e-07, 0.2523766270318e+01, 0.3518164938661e+00, - 0.2655796761776e-07, 0.2904422260194e+01, 0.6256703299991e+00, - - 0.2963597929458e-07, 0.5923900431149e+00, 0.1099462426779e+00, - 0.2539523734781e-07, 0.4851947722567e+01, 0.1256615170089e+02, - 0.2283087914139e-07, 0.3400498595496e+01, 0.6681224869435e+01, - 0.2321309799331e-07, 0.5789099148673e+01, 0.3368040641550e-01, - 0.2549657649750e-07, 0.3991856479792e-01, 0.1169588211447e+01, - 0.2290462303977e-07, 0.2788567577052e+01, 0.1045155034888e+01, - 0.1945398522914e-07, 0.3290896998176e+01, 0.1155361302111e+01, - 0.1849171512638e-07, 0.2698060129367e+01, 0.4452511715700e-02, - 0.1647199834254e-07, 0.3016735644085e+01, 0.4408250688924e+00, - 0.1529530765273e-07, 0.5573043116178e+01, 0.6521991896920e-01, - - 0.1433199339978e-07, 0.1481192356147e+01, 0.9420622223326e+00, - 0.1729134193602e-07, 0.1422817538933e+01, 0.2108507877249e+00, - 0.1716463931346e-07, 0.3469468901855e+01, 0.2157473718317e+00, - 0.1391206061378e-07, 0.6122436220547e+01, 0.4123712502208e+00, - 0.1404746661924e-07, 0.1647765641936e+01, 0.4258542984690e-01, - 0.1410452399455e-07, 0.5989729161964e+01, 0.2258291676434e+00, - 0.1089828772168e-07, 0.2833705509371e+01, 0.4226656969313e+00, - 0.1047374564948e-07, 0.5090690007331e+00, 0.3092784376656e+00, - 0.1358279126532e-07, 0.5128990262836e+01, 0.7923417740620e-01, - 0.1020456476148e-07, 0.9632772880808e+00, 0.1456308687557e+00, - - 0.1033428735328e-07, 0.3223779318418e+01, 0.1795258541446e+01, - 0.1412435841540e-07, 0.2410271572721e+01, 0.1525316725248e+00, - 0.9722759371574e-08, 0.2333531395690e+01, 0.8434341241180e-01, - 0.9657334084704e-08, 0.6199270974168e+01, 0.1272681024002e+01, - 0.1083641148690e-07, 0.2864222292929e+01, 0.7032915397480e-01, - 0.1067318403838e-07, 0.5833458866568e+00, 0.2123349582968e+00, - 0.1062366201976e-07, 0.4307753989494e+01, 0.2142632012598e+00, - 0.1236364149266e-07, 0.2873917870593e+01, 0.1847279083684e+00, - 0.1092759489593e-07, 0.2959887266733e+01, 0.1370332435159e+00, - 0.8912069362899e-08, 0.5141213702562e+01, 0.2648454860559e+01, - - 0.9656467707970e-08, 0.4532182462323e+01, 0.4376440768498e+00, - 0.8098386150135e-08, 0.2268906338379e+01, 0.2880807454688e+00, - 0.7857714675000e-08, 0.4055544260745e+01, 0.2037373330570e+00, - 0.7288455940646e-08, 0.5357901655142e+01, 0.1129145838217e+00, - 0.9450595950552e-08, 0.4264926963939e+01, 0.5272426800584e+00, - 0.9381718247537e-08, 0.7489366976576e-01, 0.5321392641652e+00, - 0.7079052646038e-08, 0.1923311052874e+01, 0.6288513220417e+00, - 0.9259004415344e-08, 0.2970256853438e+01, 0.1606092486742e+00, - 0.8259801499742e-08, 0.3327056314697e+01, 0.8389694097774e+00, - 0.6476334355779e-08, 0.2954925505727e+01, 0.2008557621224e+01, - - 0.5984021492007e-08, 0.9138753105829e+00, 0.2042657109477e+02, - 0.5989546863181e-08, 0.3244464082031e+01, 0.2111650433779e+01, - 0.6233108606023e-08, 0.4995232638403e+00, 0.4305306221819e+00, - 0.6877299149965e-08, 0.2834987233449e+01, 0.9561746721300e-02, - 0.8311234227190e-08, 0.2202951835758e+01, 0.3801276407308e+00, - 0.6599472832414e-08, 0.4478581462618e+01, 0.1063314406849e+01, - 0.6160491096549e-08, 0.5145858696411e+01, 0.1368660381889e+01, - 0.6164772043891e-08, 0.3762976697911e+00, 0.4234171675140e+00, - 0.6363248684450e-08, 0.3162246718685e+01, 0.1253008786510e-01, - 0.6448587520999e-08, 0.3442693302119e+01, 0.5287268506303e+00, - - 0.6431662283977e-08, 0.8977549136606e+00, 0.5306550935933e+00, - 0.6351223158474e-08, 0.4306447410369e+01, 0.5217580628120e+02, - 0.5476721393451e-08, 0.3888529177855e+01, 0.2221856701002e+01, - 0.5341772572619e-08, 0.2655560662512e+01, 0.7466759693650e-01, - 0.5337055758302e-08, 0.5164990735946e+01, 0.7489573444450e-01, - 0.5373120816787e-08, 0.6041214553456e+01, 0.1274714967946e+00, - 0.5392351705426e-08, 0.9177763485932e+00, 0.1055449481598e+01, - 0.6688495850205e-08, 0.3089608126937e+01, 0.2213766559277e+00, - 0.5072003660362e-08, 0.4311316541553e+01, 0.2132517061319e+00, - 0.5070726650455e-08, 0.5790675464444e+00, 0.2133464534247e+00, - - 0.5658012950032e-08, 0.2703945510675e+01, 0.7287631425543e+00, - 0.4835509924854e-08, 0.2975422976065e+01, 0.7160067364790e-01, - 0.6479821978012e-08, 0.1324168733114e+01, 0.2209183458640e-01, - 0.6230636494980e-08, 0.2860103632836e+01, 0.3306188016693e+00, - 0.4649239516213e-08, 0.4832259763403e+01, 0.7796265773310e-01, - 0.6487325792700e-08, 0.2726165825042e+01, 0.3884652414254e+00, - 0.4682823682770e-08, 0.6966602455408e+00, 0.1073608853559e+01, - 0.5704230804976e-08, 0.5669634104606e+01, 0.8731175355560e-01, - 0.6125413585489e-08, 0.1513386538915e+01, 0.7605151500000e-01, - 0.6035825038187e-08, 0.1983509168227e+01, 0.9846002785331e+00, - - 0.4331123462303e-08, 0.2782892992807e+01, 0.4297791515992e+00, - 0.4681107685143e-08, 0.5337232886836e+01, 0.2127790306879e+00, - 0.4669105829655e-08, 0.5837133792160e+01, 0.2138191288687e+00, - 0.5138823602365e-08, 0.3080560200507e+01, 0.7233337363710e-01, - 0.4615856664534e-08, 0.1661747897471e+01, 0.8603097737811e+00, - 0.4496916702197e-08, 0.2112508027068e+01, 0.7381754420900e-01, - 0.4278479042945e-08, 0.5716528462627e+01, 0.7574578717200e-01, - 0.3840525503932e-08, 0.6424172726492e+00, 0.3407705765729e+00, - 0.4866636509685e-08, 0.4919244697715e+01, 0.7722995774390e-01, - 0.3526100639296e-08, 0.2550821052734e+01, 0.6225157782540e-01, - - 0.3939558488075e-08, 0.3939331491710e+01, 0.5268983110410e-01, - 0.4041268772576e-08, 0.2275337571218e+01, 0.3503323232942e+00, - 0.3948761842853e-08, 0.1999324200790e+01, 0.1451108196653e+00, - 0.3258394550029e-08, 0.9121001378200e+00, 0.5296435984654e+00, - 0.3257897048761e-08, 0.3428428660869e+01, 0.5297383457582e+00, - 0.3842559031298e-08, 0.6132927720035e+01, 0.9098186128426e+00, - 0.3109920095448e-08, 0.7693650193003e+00, 0.3932462625300e-02, - 0.3132237775119e-08, 0.3621293854908e+01, 0.2346394437820e+00, - 0.3942189421510e-08, 0.4841863659733e+01, 0.3180992042600e-02, - 0.3796972285340e-08, 0.1814174994268e+01, 0.1862120789403e+00, - - 0.3995640233688e-08, 0.1386990406091e+01, 0.4549093064213e+00, - 0.2875013727414e-08, 0.9178318587177e+00, 0.1905464808669e+01, - 0.3073719932844e-08, 0.2688923811835e+01, 0.3628624111593e+00, - 0.2731016580075e-08, 0.1188259127584e+01, 0.2131850110243e+00, - 0.2729549896546e-08, 0.3702160634273e+01, 0.2134131485323e+00, - 0.3339372892449e-08, 0.7199163960331e+00, 0.2007689919132e+00, - 0.2898833764204e-08, 0.1916709364999e+01, 0.5291709230214e+00, - 0.2894536549362e-08, 0.2424043195547e+01, 0.5302110212022e+00, - 0.3096872473843e-08, 0.4445894977497e+01, 0.2976424921901e+00, - 0.2635672326810e-08, 0.3814366984117e+01, 0.1485980103780e+01, - - 0.3649302697001e-08, 0.2924200596084e+01, 0.6044726378023e+00, - 0.3127954585895e-08, 0.1842251648327e+01, 0.1084620721060e+00, - 0.2616040173947e-08, 0.4155841921984e+01, 0.1258454114666e+01, - 0.2597395859860e-08, 0.1158045978874e+00, 0.2103781122809e+00, - 0.2593286172210e-08, 0.4771850408691e+01, 0.2162200472757e+00, - 0.2481823585747e-08, 0.4608842558889e+00, 0.1062562936266e+01, - 0.2742219550725e-08, 0.1538781127028e+01, 0.5651155736444e+00, - 0.3199558469610e-08, 0.3226647822878e+00, 0.7036329877322e+00, - 0.2666088542957e-08, 0.1967991731219e+00, 0.1400015846597e+00, - 0.2397067430580e-08, 0.3707036669873e+01, 0.2125476091956e+00, - - 0.2376570772738e-08, 0.1182086628042e+01, 0.2140505503610e+00, - 0.2547228007887e-08, 0.4906256820629e+01, 0.1534957940063e+00, - 0.2265575594114e-08, 0.3414949866857e+01, 0.2235935264888e+00, - 0.2464381430585e-08, 0.4599122275378e+01, 0.2091065926078e+00, - 0.2433408527044e-08, 0.2830751145445e+00, 0.2174915669488e+00, - 0.2443605509076e-08, 0.4212046432538e+01, 0.1739420156204e+00, - 0.2319779262465e-08, 0.9881978408630e+00, 0.7530171478090e-01, - 0.2284622835465e-08, 0.5565347331588e+00, 0.7426161660010e-01, - 0.2467268750783e-08, 0.5655708150766e+00, 0.2526561439362e+00, - 0.2808513492782e-08, 0.1418405053408e+01, 0.5636314030725e+00, - - 0.2329528932532e-08, 0.4069557545675e+01, 0.1056200952181e+01, - 0.9698639532817e-09, 0.1074134313634e+01, 0.7826370942180e+02 }; - -/* SSB-to-Sun, T^0, Y */ - static const double s0y[] = { - 0.4955392320126e-02, 0.2170467313679e+01, 0.5296909721118e+00, - 0.2722325167392e-02, 0.2444433682196e+01, 0.2132990797783e+00, - 0.1546579925346e-02, 0.5992779281546e+00, 0.3813291813120e-01, - 0.8363140252966e-03, 0.7687356310801e+00, 0.7478166569050e-01, - 0.3385792683603e-03, 0.0000000000000e+00, 0.0000000000000e+00, - 0.1201192221613e-03, 0.2520035601514e+01, 0.1059381944224e+01, - 0.7587125720554e-04, 0.1669954006449e+01, 0.4265981595566e+00, - 0.1964155361250e-04, 0.5707743963343e+01, 0.2061856251104e+00, - 0.1891900364909e-04, 0.2320960679937e+01, 0.2204125344462e+00, - 0.1937373433356e-04, 0.3226940689555e+01, 0.1495633313810e+00, - - 0.1437139941351e-04, 0.2301626908096e+01, 0.5225775174439e+00, - 0.1406267683099e-04, 0.5188579265542e+01, 0.5368044267797e+00, - 0.1178703080346e-04, 0.5489483248476e+01, 0.7626583626240e-01, - 0.8079835186041e-05, 0.1683751835264e+01, 0.3664874755930e-01, - 0.7623253594652e-05, 0.2656400462961e+01, 0.3961708870310e-01, - 0.6248667483971e-05, 0.4992775362055e+01, 0.7329749511860e-01, - 0.4366353695038e-05, 0.2869706279678e+01, 0.1589072916335e+01, - 0.3829101568895e-05, 0.3572131359950e+01, 0.7113454667900e-02, - 0.3175733773908e-05, 0.4535372530045e+01, 0.4194847048887e+00, - 0.3092437902159e-05, 0.9230153317909e+00, 0.6398972393349e+00, - - 0.2874168812154e-05, 0.3363143761101e+01, 0.1102062672231e+00, - 0.3040119321826e-05, 0.3324250895675e+01, 0.6283075850446e+01, - 0.2699723308006e-05, 0.2917882441928e+00, 0.1030928125552e+00, - 0.2134832683534e-05, 0.4220997202487e+01, 0.3163918923335e+00, - 0.1770412139433e-05, 0.4747318496462e+01, 0.1021328554739e+02, - 0.1377264209373e-05, 0.4305058462401e+00, 0.1484170571900e-02, - 0.1127814538960e-05, 0.8538177240740e+00, 0.6327837846670e+00, - 0.1055608090130e-05, 0.1551800742580e+01, 0.4337116142245e+00, - 0.9802673861420e-06, 0.1459646735377e+01, 0.1052268489556e+01, - 0.1090329461951e-05, 0.1587351228711e+01, 0.1162474756779e+01, - - 0.6959590025090e-06, 0.5534442628766e+01, 0.1066495398892e+01, - 0.5664914529542e-06, 0.6030673003297e+01, 0.9491756770005e+00, - 0.6607787763599e-06, 0.4989507233927e+01, 0.8460828644453e+00, - 0.6269725742838e-06, 0.4222951804572e+01, 0.1480791608091e+00, - 0.6301889697863e-06, 0.5444316669126e+01, 0.2243449970715e+00, - 0.4891042662861e-06, 0.1490552839784e+01, 0.3340612434717e+01, - 0.3457083123290e-06, 0.3030475486049e+01, 0.3516457698740e-01, - 0.3032559967314e-06, 0.2652038793632e+01, 0.1104591729320e-01, - 0.2841133988903e-06, 0.1276744786829e+01, 0.4110125927500e-01, - 0.2855564444432e-06, 0.2143368674733e+01, 0.1510475019529e+00, - - 0.2765157135038e-06, 0.5444186109077e+01, 0.6373574839730e-01, - 0.2382312465034e-06, 0.2190521137593e+01, 0.2275259891141e+00, - 0.2808060365077e-06, 0.5735195064841e+01, 0.2535050500000e-01, - 0.2332175234405e-06, 0.9481985524859e-01, 0.7181332454670e-01, - 0.2322488199659e-06, 0.5180499361533e+01, 0.8582758298370e-01, - 0.1881850258423e-06, 0.3219788273885e+01, 0.2118763888447e+01, - 0.2196111392808e-06, 0.2366941159761e+01, 0.2968341143800e-02, - 0.2183810335519e-06, 0.4825445110915e+01, 0.7775000683430e-01, - 0.2002733093326e-06, 0.2457148995307e+01, 0.2093666171530e+00, - 0.1967111767229e-06, 0.5586291545459e+01, 0.2172315424036e+00, - - 0.1568473250543e-06, 0.3708003123320e+01, 0.7429900518901e+00, - 0.1852528314300e-06, 0.4310638151560e+01, 0.2022531624851e+00, - 0.1832111226447e-06, 0.1494665322656e+01, 0.3235053470014e+00, - 0.1746805502310e-06, 0.1451378500784e+01, 0.1385174140878e+00, - 0.1555730966650e-06, 0.1068040418198e+01, 0.7358765972222e+00, - 0.1554883462559e-06, 0.2442579035461e+01, 0.5154640627760e+00, - 0.1638380568746e-06, 0.2597913420625e+00, 0.8531963191132e+00, - 0.1159938593640e-06, 0.5834512021280e+01, 0.1990721704425e+00, - 0.1083427965695e-06, 0.5054033177950e+01, 0.5439178814476e+00, - 0.1156480369431e-06, 0.5325677432457e+01, 0.5257585094865e+00, - - 0.1141308860095e-06, 0.2153403923857e+01, 0.5336234347371e+00, - 0.7913146470946e-07, 0.8642846847027e+00, 0.1478866649112e+01, - 0.7439752463733e-07, 0.1970628496213e+01, 0.2164800718209e+00, - 0.7280277104079e-07, 0.6073307250609e+01, 0.2101180877357e+00, - 0.8319567719136e-07, 0.1954371928334e+01, 0.1692165728891e+01, - 0.7137705549290e-07, 0.8904989440909e+00, 0.4155522422634e+00, - 0.6900825396225e-07, 0.2825717714977e+01, 0.1173197218910e+00, - 0.7245757216635e-07, 0.2481677513331e+01, 0.1265567569334e+01, - 0.6961165696255e-07, 0.1292955312978e+01, 0.9562891316684e+00, - 0.7571804456890e-07, 0.3427517575069e+01, 0.1422690933580e-01, - - 0.6605425721904e-07, 0.8052192701492e+00, 0.6470106940028e+00, - 0.7375477357248e-07, 0.1705076390088e+01, 0.1581959461667e+01, - 0.7041664951470e-07, 0.4848356967891e+00, 0.9597935788730e-01, - 0.6322199535763e-07, 0.3878069473909e+01, 0.7084920306520e-01, - 0.5244380279191e-07, 0.2645560544125e+01, 0.5265099800692e+00, - 0.5143125704988e-07, 0.4834486101370e+01, 0.5328719641544e+00, - 0.5871866319373e-07, 0.7981472548900e+00, 0.7871412831580e-01, - 0.6300822573871e-07, 0.5979398788281e+01, 0.2608790314060e+02, - 0.6062154271548e-07, 0.4108655402756e+01, 0.1114304132498e+00, - 0.4361912339976e-07, 0.5322624319280e+01, 0.1375773836557e+01, - - 0.4417005920067e-07, 0.6240817359284e+01, 0.2770348281756e+00, - 0.4686806749936e-07, 0.3214977301156e+01, 0.1143987543936e+00, - 0.3758892132305e-07, 0.5879809634765e+01, 0.1596186371003e+01, - 0.5151351332319e-07, 0.2893377688007e+00, 0.2228608264996e+00, - 0.4554683578572e-07, 0.5475427144122e+01, 0.1465949902372e+00, - 0.3442381385338e-07, 0.5992034796640e+01, 0.5070101000000e-01, - 0.2831093954933e-07, 0.5367350273914e+01, 0.3092784376656e+00, - 0.3756267090084e-07, 0.5758171285420e+01, 0.4903339079539e+00, - 0.2816374679892e-07, 0.1863718700923e+01, 0.2991266627620e+00, - 0.3419307025569e-07, 0.9524347534130e+00, 0.3518164938661e+00, - - 0.2904250494239e-07, 0.5304471615602e+01, 0.1099462426779e+00, - 0.2471734511206e-07, 0.1297069793530e+01, 0.6256703299991e+00, - 0.2539620831872e-07, 0.3281126083375e+01, 0.1256615170089e+02, - 0.2281017868007e-07, 0.1829122133165e+01, 0.6681224869435e+01, - 0.2275319473335e-07, 0.5797198160181e+01, 0.3932462625300e-02, - 0.2547755368442e-07, 0.4752697708330e+01, 0.1169588211447e+01, - 0.2285979669317e-07, 0.1223205292886e+01, 0.1045155034888e+01, - 0.1913386560994e-07, 0.1757532993389e+01, 0.1155361302111e+01, - 0.1809020525147e-07, 0.4246116108791e+01, 0.3368040641550e-01, - 0.1649213300201e-07, 0.1445162890627e+01, 0.4408250688924e+00, - - 0.1834972793932e-07, 0.1126917567225e+01, 0.4452511715700e-02, - 0.1439550648138e-07, 0.6160756834764e+01, 0.9420622223326e+00, - 0.1487645457041e-07, 0.4358761931792e+01, 0.4123712502208e+00, - 0.1731729516660e-07, 0.6134456753344e+01, 0.2108507877249e+00, - 0.1717747163567e-07, 0.1898186084455e+01, 0.2157473718317e+00, - 0.1418190430374e-07, 0.4180286741266e+01, 0.6521991896920e-01, - 0.1404844134873e-07, 0.7654053565412e-01, 0.4258542984690e-01, - 0.1409842846538e-07, 0.4418612420312e+01, 0.2258291676434e+00, - 0.1090948346291e-07, 0.1260615686131e+01, 0.4226656969313e+00, - 0.1357577323612e-07, 0.3558248818690e+01, 0.7923417740620e-01, - - 0.1018154061960e-07, 0.5676087241256e+01, 0.1456308687557e+00, - 0.1412073972109e-07, 0.8394392632422e+00, 0.1525316725248e+00, - 0.1030938326496e-07, 0.1653593274064e+01, 0.1795258541446e+01, - 0.1180081567104e-07, 0.1285802592036e+01, 0.7032915397480e-01, - 0.9708510575650e-08, 0.7631889488106e+00, 0.8434341241180e-01, - 0.9637689663447e-08, 0.4630642649176e+01, 0.1272681024002e+01, - 0.1068910429389e-07, 0.5294934032165e+01, 0.2123349582968e+00, - 0.1063716179336e-07, 0.2736266800832e+01, 0.2142632012598e+00, - 0.1234858713814e-07, 0.1302891146570e+01, 0.1847279083684e+00, - 0.8912631189738e-08, 0.3570415993621e+01, 0.2648454860559e+01, - - 0.1036378285534e-07, 0.4236693440949e+01, 0.1370332435159e+00, - 0.9667798501561e-08, 0.2960768892398e+01, 0.4376440768498e+00, - 0.8108314201902e-08, 0.6987781646841e+00, 0.2880807454688e+00, - 0.7648364324628e-08, 0.2499017863863e+01, 0.2037373330570e+00, - 0.7286136828406e-08, 0.3787426951665e+01, 0.1129145838217e+00, - 0.9448237743913e-08, 0.2694354332983e+01, 0.5272426800584e+00, - 0.9374276106428e-08, 0.4787121277064e+01, 0.5321392641652e+00, - 0.7100226287462e-08, 0.3530238792101e+00, 0.6288513220417e+00, - 0.9253056659571e-08, 0.1399478925664e+01, 0.1606092486742e+00, - 0.6636432145504e-08, 0.3479575438447e+01, 0.1368660381889e+01, - - 0.6469975312932e-08, 0.1383669964800e+01, 0.2008557621224e+01, - 0.7335849729765e-08, 0.1243698166898e+01, 0.9561746721300e-02, - 0.8743421205855e-08, 0.3776164289301e+01, 0.3801276407308e+00, - 0.5993635744494e-08, 0.5627122113596e+01, 0.2042657109477e+02, - 0.5981008479693e-08, 0.1674336636752e+01, 0.2111650433779e+01, - 0.6188535145838e-08, 0.5214925208672e+01, 0.4305306221819e+00, - 0.6596074017566e-08, 0.2907653268124e+01, 0.1063314406849e+01, - 0.6630815126226e-08, 0.2127643669658e+01, 0.8389694097774e+00, - 0.6156772830040e-08, 0.5082160803295e+01, 0.4234171675140e+00, - 0.6446960563014e-08, 0.1872100916905e+01, 0.5287268506303e+00, - - 0.6429324424668e-08, 0.5610276103577e+01, 0.5306550935933e+00, - 0.6302232396465e-08, 0.1592152049607e+01, 0.1253008786510e-01, - 0.6399244436159e-08, 0.2746214421532e+01, 0.5217580628120e+02, - 0.5474965172558e-08, 0.2317666374383e+01, 0.2221856701002e+01, - 0.5339293190692e-08, 0.1084724961156e+01, 0.7466759693650e-01, - 0.5334733683389e-08, 0.3594106067745e+01, 0.7489573444450e-01, - 0.5392665782110e-08, 0.5630254365606e+01, 0.1055449481598e+01, - 0.6682075673789e-08, 0.1518480041732e+01, 0.2213766559277e+00, - 0.5079130495960e-08, 0.2739765115711e+01, 0.2132517061319e+00, - 0.5077759793261e-08, 0.5290711290094e+01, 0.2133464534247e+00, - - 0.4832037368310e-08, 0.1404473217200e+01, 0.7160067364790e-01, - 0.6463279674802e-08, 0.6038381695210e+01, 0.2209183458640e-01, - 0.6240592771560e-08, 0.1290170653666e+01, 0.3306188016693e+00, - 0.4672013521493e-08, 0.3261895939677e+01, 0.7796265773310e-01, - 0.6500650750348e-08, 0.1154522312095e+01, 0.3884652414254e+00, - 0.6344161389053e-08, 0.6206111545062e+01, 0.7605151500000e-01, - 0.4682518370646e-08, 0.5409118796685e+01, 0.1073608853559e+01, - 0.5329460015591e-08, 0.1202985784864e+01, 0.7287631425543e+00, - 0.5701588675898e-08, 0.4098715257064e+01, 0.8731175355560e-01, - 0.6030690867211e-08, 0.4132033218460e+00, 0.9846002785331e+00, - - 0.4336256312655e-08, 0.1211415991827e+01, 0.4297791515992e+00, - 0.4688498808975e-08, 0.3765479072409e+01, 0.2127790306879e+00, - 0.4675578609335e-08, 0.4265540037226e+01, 0.2138191288687e+00, - 0.4225578112158e-08, 0.5237566010676e+01, 0.3407705765729e+00, - 0.5139422230028e-08, 0.1507173079513e+01, 0.7233337363710e-01, - 0.4619995093571e-08, 0.9023957449848e-01, 0.8603097737811e+00, - 0.4494776255461e-08, 0.5414930552139e+00, 0.7381754420900e-01, - 0.4274026276788e-08, 0.4145735303659e+01, 0.7574578717200e-01, - 0.5018141789353e-08, 0.3344408829055e+01, 0.3180992042600e-02, - 0.4866163952181e-08, 0.3348534657607e+01, 0.7722995774390e-01, - - 0.4111986020501e-08, 0.4198823597220e+00, 0.1451108196653e+00, - 0.3356142784950e-08, 0.5609144747180e+01, 0.1274714967946e+00, - 0.4070575554551e-08, 0.7028411059224e+00, 0.3503323232942e+00, - 0.3257451857278e-08, 0.5624697983086e+01, 0.5296435984654e+00, - 0.3256973703026e-08, 0.1857842076707e+01, 0.5297383457582e+00, - 0.3830771508640e-08, 0.4562887279931e+01, 0.9098186128426e+00, - 0.3725024005962e-08, 0.2358058692652e+00, 0.1084620721060e+00, - 0.3136763921756e-08, 0.2049731526845e+01, 0.2346394437820e+00, - 0.3795147256194e-08, 0.2432356296933e+00, 0.1862120789403e+00, - 0.2877342229911e-08, 0.5631101279387e+01, 0.1905464808669e+01, - - 0.3076931798805e-08, 0.1117615737392e+01, 0.3628624111593e+00, - 0.2734765945273e-08, 0.5899826516955e+01, 0.2131850110243e+00, - 0.2733405296885e-08, 0.2130562964070e+01, 0.2134131485323e+00, - 0.2898552353410e-08, 0.3462387048225e+00, 0.5291709230214e+00, - 0.2893736103681e-08, 0.8534352781543e+00, 0.5302110212022e+00, - 0.3095717734137e-08, 0.2875061429041e+01, 0.2976424921901e+00, - 0.2636190425832e-08, 0.2242512846659e+01, 0.1485980103780e+01, - 0.3645512095537e-08, 0.1354016903958e+01, 0.6044726378023e+00, - 0.2808173547723e-08, 0.6705114365631e-01, 0.6225157782540e-01, - 0.2625012866888e-08, 0.4775705748482e+01, 0.5268983110410e-01, - - 0.2572233995651e-08, 0.2638924216139e+01, 0.1258454114666e+01, - 0.2604238824792e-08, 0.4826358927373e+01, 0.2103781122809e+00, - 0.2596886385239e-08, 0.3200388483118e+01, 0.2162200472757e+00, - 0.3228057304264e-08, 0.5384848409563e+01, 0.2007689919132e+00, - 0.2481601798252e-08, 0.5173373487744e+01, 0.1062562936266e+01, - 0.2745977498864e-08, 0.6250966149853e+01, 0.5651155736444e+00, - 0.2669878833811e-08, 0.4906001352499e+01, 0.1400015846597e+00, - 0.3203986611711e-08, 0.5034333010005e+01, 0.7036329877322e+00, - 0.3354961227212e-08, 0.6108262423137e+01, 0.4549093064213e+00, - 0.2400407324558e-08, 0.2135399294955e+01, 0.2125476091956e+00, - - 0.2379905859802e-08, 0.5893721933961e+01, 0.2140505503610e+00, - 0.2550844302187e-08, 0.3331940762063e+01, 0.1534957940063e+00, - 0.2268824211001e-08, 0.1843418461035e+01, 0.2235935264888e+00, - 0.2464700891204e-08, 0.3029548547230e+01, 0.2091065926078e+00, - 0.2436814726024e-08, 0.4994717970364e+01, 0.2174915669488e+00, - 0.2443623894745e-08, 0.2645102591375e+01, 0.1739420156204e+00, - 0.2318701783838e-08, 0.5700547397897e+01, 0.7530171478090e-01, - 0.2284448700256e-08, 0.5268898905872e+01, 0.7426161660010e-01, - 0.2468848123510e-08, 0.5276280575078e+01, 0.2526561439362e+00, - 0.2814052350303e-08, 0.6130168623475e+01, 0.5636314030725e+00, - - 0.2243662755220e-08, 0.6631692457995e+00, 0.8886590321940e-01, - 0.2330795855941e-08, 0.2499435487702e+01, 0.1056200952181e+01, - 0.9757679038404e-09, 0.5796846023126e+01, 0.7826370942180e+02 }; - -/* SSB-to-Sun, T^0, Z */ - static const double s0z[] = { - 0.1181255122986e-03, 0.4607918989164e+00, 0.2132990797783e+00, - 0.1127777651095e-03, 0.4169146331296e+00, 0.5296909721118e+00, - 0.4777754401806e-04, 0.4582657007130e+01, 0.3813291813120e-01, - 0.1129354285772e-04, 0.5758735142480e+01, 0.7478166569050e-01, - -0.1149543637123e-04, 0.0000000000000e+00, 0.0000000000000e+00, - 0.3298730512306e-05, 0.5978801994625e+01, 0.4265981595566e+00, - 0.2733376706079e-05, 0.7665413691040e+00, 0.1059381944224e+01, - 0.9426389657270e-06, 0.3710201265838e+01, 0.2061856251104e+00, - 0.8187517749552e-06, 0.3390675605802e+00, 0.2204125344462e+00, - 0.4080447871819e-06, 0.4552296640088e+00, 0.5225775174439e+00, - - 0.3169973017028e-06, 0.3445455899321e+01, 0.5368044267797e+00, - 0.2438098615549e-06, 0.5664675150648e+01, 0.3664874755930e-01, - 0.2601897517235e-06, 0.1931894095697e+01, 0.1495633313810e+00, - 0.2314558080079e-06, 0.3666319115574e+00, 0.3961708870310e-01, - 0.1962549548002e-06, 0.3167411699020e+01, 0.7626583626240e-01, - 0.2180518287925e-06, 0.1544420746580e+01, 0.7113454667900e-02, - 0.1451382442868e-06, 0.1583756740070e+01, 0.1102062672231e+00, - 0.1358439007389e-06, 0.5239941758280e+01, 0.6398972393349e+00, - 0.1050585898028e-06, 0.2266958352859e+01, 0.3163918923335e+00, - 0.1050029870186e-06, 0.2711495250354e+01, 0.4194847048887e+00, - - 0.9934920679800e-07, 0.1116208151396e+01, 0.1589072916335e+01, - 0.1048395331560e-06, 0.3408619600206e+01, 0.1021328554739e+02, - 0.8370147196668e-07, 0.3810459401087e+01, 0.2535050500000e-01, - 0.7989856510998e-07, 0.3769910473647e+01, 0.7329749511860e-01, - 0.5441221655233e-07, 0.2416994903374e+01, 0.1030928125552e+00, - 0.4610812906784e-07, 0.5858503336994e+01, 0.4337116142245e+00, - 0.3923022803444e-07, 0.3354170010125e+00, 0.1484170571900e-02, - 0.2610725582128e-07, 0.5410600646324e+01, 0.6327837846670e+00, - 0.2455279767721e-07, 0.6120216681403e+01, 0.1162474756779e+01, - 0.2375530706525e-07, 0.6055443426143e+01, 0.1052268489556e+01, - - 0.1782967577553e-07, 0.3146108708004e+01, 0.8460828644453e+00, - 0.1581687095238e-07, 0.6255496089819e+00, 0.3340612434717e+01, - 0.1594657672461e-07, 0.3782604300261e+01, 0.1066495398892e+01, - 0.1563448615040e-07, 0.1997775733196e+01, 0.2022531624851e+00, - 0.1463624258525e-07, 0.1736316792088e+00, 0.3516457698740e-01, - 0.1331585056673e-07, 0.4331941830747e+01, 0.9491756770005e+00, - 0.1130634557637e-07, 0.6152017751825e+01, 0.2968341143800e-02, - 0.1028949607145e-07, 0.2101792614637e+00, 0.2275259891141e+00, - 0.1024074971618e-07, 0.4071833211074e+01, 0.5070101000000e-01, - 0.8826956060303e-08, 0.4861633688145e+00, 0.2093666171530e+00, - - 0.8572230171541e-08, 0.5268190724302e+01, 0.4110125927500e-01, - 0.7649332643544e-08, 0.5134543417106e+01, 0.2608790314060e+02, - 0.8581673291033e-08, 0.2920218146681e+01, 0.1480791608091e+00, - 0.8430589300938e-08, 0.3604576619108e+01, 0.2172315424036e+00, - 0.7776165501012e-08, 0.3772942249792e+01, 0.6373574839730e-01, - 0.8311070234408e-08, 0.6200412329888e+01, 0.3235053470014e+00, - 0.6927365212582e-08, 0.4543353113437e+01, 0.8531963191132e+00, - 0.6791574208598e-08, 0.2882188406238e+01, 0.7181332454670e-01, - 0.5593100811839e-08, 0.1776646892780e+01, 0.7429900518901e+00, - 0.4553381853021e-08, 0.3949617611240e+01, 0.7775000683430e-01, - - 0.5758000450068e-08, 0.3859251775075e+01, 0.1990721704425e+00, - 0.4281283457133e-08, 0.1466294631206e+01, 0.2118763888447e+01, - 0.4206935661097e-08, 0.5421776011706e+01, 0.1104591729320e-01, - 0.4213751641837e-08, 0.3412048993322e+01, 0.2243449970715e+00, - 0.5310506239878e-08, 0.5421641370995e+00, 0.5154640627760e+00, - 0.3827450341320e-08, 0.8887314524995e+00, 0.1510475019529e+00, - 0.4292435241187e-08, 0.1405043757194e+01, 0.1422690933580e-01, - 0.3189780702289e-08, 0.1060049293445e+01, 0.1173197218910e+00, - 0.3226611928069e-08, 0.6270858897442e+01, 0.2164800718209e+00, - 0.2893897608830e-08, 0.5117563223301e+01, 0.6470106940028e+00, - - 0.3239852024578e-08, 0.4079092237983e+01, 0.2101180877357e+00, - 0.2956892222200e-08, 0.1594917021704e+01, 0.3092784376656e+00, - 0.2980177912437e-08, 0.5258787667564e+01, 0.4155522422634e+00, - 0.3163725690776e-08, 0.3854589225479e+01, 0.8582758298370e-01, - 0.2662262399118e-08, 0.3561326430187e+01, 0.5257585094865e+00, - 0.2766689135729e-08, 0.3180732086830e+00, 0.1385174140878e+00, - 0.2411600278464e-08, 0.3324798335058e+01, 0.5439178814476e+00, - 0.2483527695131e-08, 0.4169069291947e+00, 0.5336234347371e+00, - 0.7788777276590e-09, 0.1900569908215e+01, 0.5217580628120e+02 }; - -/* SSB-to-Sun, T^1, X */ - static const double s1x[] = { - -0.1296310361520e-07, 0.0000000000000e+00, 0.0000000000000e+00, - 0.8975769009438e-08, 0.1128891609250e+01, 0.4265981595566e+00, - 0.7771113441307e-08, 0.2706039877077e+01, 0.2061856251104e+00, - 0.7538303866642e-08, 0.2191281289498e+01, 0.2204125344462e+00, - 0.6061384579336e-08, 0.3248167319958e+01, 0.1059381944224e+01, - 0.5726994235594e-08, 0.5569981398610e+01, 0.5225775174439e+00, - 0.5616492836424e-08, 0.5057386614909e+01, 0.5368044267797e+00, - 0.1010881584769e-08, 0.3473577116095e+01, 0.7113454667900e-02, - 0.7259606157626e-09, 0.3651858593665e+00, 0.6398972393349e+00, - 0.8755095026935e-09, 0.1662835408338e+01, 0.4194847048887e+00, - - 0.5370491182812e-09, 0.1327673878077e+01, 0.4337116142245e+00, - 0.5743773887665e-09, 0.4250200846687e+01, 0.2132990797783e+00, - 0.4408103140300e-09, 0.3598752574277e+01, 0.1589072916335e+01, - 0.3101892374445e-09, 0.4887822983319e+01, 0.1052268489556e+01, - 0.3209453713578e-09, 0.9702272295114e+00, 0.5296909721118e+00, - 0.3017228286064e-09, 0.5484462275949e+01, 0.1066495398892e+01, - 0.3200700038601e-09, 0.2846613338643e+01, 0.1495633313810e+00, - 0.2137637279911e-09, 0.5692163292729e+00, 0.3163918923335e+00, - 0.1899686386727e-09, 0.2061077157189e+01, 0.2275259891141e+00, - 0.1401994545308e-09, 0.4177771136967e+01, 0.1102062672231e+00, - - 0.1578057810499e-09, 0.5782460597335e+01, 0.7626583626240e-01, - 0.1237713253351e-09, 0.5705900866881e+01, 0.5154640627760e+00, - 0.1313076837395e-09, 0.5163438179576e+01, 0.3664874755930e-01, - 0.1184963304860e-09, 0.3054804427242e+01, 0.6327837846670e+00, - 0.1238130878565e-09, 0.2317292575962e+01, 0.3961708870310e-01, - 0.1015959527736e-09, 0.2194643645526e+01, 0.7329749511860e-01, - 0.9017954423714e-10, 0.2868603545435e+01, 0.1990721704425e+00, - 0.8668024955603e-10, 0.4923849675082e+01, 0.5439178814476e+00, - 0.7756083930103e-10, 0.3014334135200e+01, 0.9491756770005e+00, - 0.7536503401741e-10, 0.2704886279769e+01, 0.1030928125552e+00, - - 0.5483308679332e-10, 0.6010983673799e+01, 0.8531963191132e+00, - 0.5184339620428e-10, 0.1952704573291e+01, 0.2093666171530e+00, - 0.5108658712030e-10, 0.2958575786649e+01, 0.2172315424036e+00, - 0.5019424524650e-10, 0.1736317621318e+01, 0.2164800718209e+00, - 0.4909312625978e-10, 0.3167216416257e+01, 0.2101180877357e+00, - 0.4456638901107e-10, 0.7697579923471e+00, 0.3235053470014e+00, - 0.4227030350925e-10, 0.3490910137928e+01, 0.6373574839730e-01, - 0.4095456040093e-10, 0.5178888984491e+00, 0.6470106940028e+00, - 0.4990537041422e-10, 0.3323887668974e+01, 0.1422690933580e-01, - 0.4321170010845e-10, 0.4288484987118e+01, 0.7358765972222e+00, - - 0.3544072091802e-10, 0.6021051579251e+01, 0.5265099800692e+00, - 0.3480198638687e-10, 0.4600027054714e+01, 0.5328719641544e+00, - 0.3440287244435e-10, 0.4349525970742e+01, 0.8582758298370e-01, - 0.3330628322713e-10, 0.2347391505082e+01, 0.1104591729320e-01, - 0.2973060707184e-10, 0.4789409286400e+01, 0.5257585094865e+00, - 0.2932606766089e-10, 0.5831693799927e+01, 0.5336234347371e+00, - 0.2876972310953e-10, 0.2692638514771e+01, 0.1173197218910e+00, - 0.2827488278556e-10, 0.2056052487960e+01, 0.2022531624851e+00, - 0.2515028239756e-10, 0.7411863262449e+00, 0.9597935788730e-01, - 0.2853033744415e-10, 0.3948481024894e+01, 0.2118763888447e+01 }; - -/* SSB-to-Sun, T^1, Y */ - static const double s1y[] = { - 0.8989047573576e-08, 0.5840593672122e+01, 0.4265981595566e+00, - 0.7815938401048e-08, 0.1129664707133e+01, 0.2061856251104e+00, - 0.7550926713280e-08, 0.6196589104845e+00, 0.2204125344462e+00, - 0.6056556925895e-08, 0.1677494667846e+01, 0.1059381944224e+01, - 0.5734142698204e-08, 0.4000920852962e+01, 0.5225775174439e+00, - 0.5614341822459e-08, 0.3486722577328e+01, 0.5368044267797e+00, - 0.1028678147656e-08, 0.1877141024787e+01, 0.7113454667900e-02, - 0.7270792075266e-09, 0.5077167301739e+01, 0.6398972393349e+00, - 0.8734141726040e-09, 0.9069550282609e-01, 0.4194847048887e+00, - 0.5377371402113e-09, 0.6039381844671e+01, 0.4337116142245e+00, - - 0.4729719431571e-09, 0.2153086311760e+01, 0.2132990797783e+00, - 0.4458052820973e-09, 0.5059830025565e+01, 0.5296909721118e+00, - 0.4406855467908e-09, 0.2027971692630e+01, 0.1589072916335e+01, - 0.3101659310977e-09, 0.3317677981860e+01, 0.1052268489556e+01, - 0.3016749232545e-09, 0.3913703482532e+01, 0.1066495398892e+01, - 0.3198541352656e-09, 0.1275513098525e+01, 0.1495633313810e+00, - 0.2142065389871e-09, 0.5301351614597e+01, 0.3163918923335e+00, - 0.1902615247592e-09, 0.4894943352736e+00, 0.2275259891141e+00, - 0.1613410990871e-09, 0.2449891130437e+01, 0.1102062672231e+00, - 0.1576992165097e-09, 0.4211421447633e+01, 0.7626583626240e-01, - - 0.1241637259894e-09, 0.4140803368133e+01, 0.5154640627760e+00, - 0.1313974830355e-09, 0.3591920305503e+01, 0.3664874755930e-01, - 0.1181697118258e-09, 0.1506314382788e+01, 0.6327837846670e+00, - 0.1238239742779e-09, 0.7461405378404e+00, 0.3961708870310e-01, - 0.1010107068241e-09, 0.6271010795475e+00, 0.7329749511860e-01, - 0.9226316616509e-10, 0.1259158839583e+01, 0.1990721704425e+00, - 0.8664946419555e-10, 0.3353244696934e+01, 0.5439178814476e+00, - 0.7757230468978e-10, 0.1447677295196e+01, 0.9491756770005e+00, - 0.7693168628139e-10, 0.1120509896721e+01, 0.1030928125552e+00, - 0.5487897454612e-10, 0.4439380426795e+01, 0.8531963191132e+00, - - 0.5196118677218e-10, 0.3788856619137e+00, 0.2093666171530e+00, - 0.5110853339935e-10, 0.1386879372016e+01, 0.2172315424036e+00, - 0.5027804534813e-10, 0.1647881805466e+00, 0.2164800718209e+00, - 0.4922485922674e-10, 0.1594315079862e+01, 0.2101180877357e+00, - 0.6155599524400e-10, 0.0000000000000e+00, 0.0000000000000e+00, - 0.4447147832161e-10, 0.5480720918976e+01, 0.3235053470014e+00, - 0.4144691276422e-10, 0.1931371033660e+01, 0.6373574839730e-01, - 0.4099950625452e-10, 0.5229611294335e+01, 0.6470106940028e+00, - 0.5060541682953e-10, 0.1731112486298e+01, 0.1422690933580e-01, - 0.4293615946300e-10, 0.2714571038925e+01, 0.7358765972222e+00, - - 0.3545659845763e-10, 0.4451041444634e+01, 0.5265099800692e+00, - 0.3479112041196e-10, 0.3029385448081e+01, 0.5328719641544e+00, - 0.3438516493570e-10, 0.2778507143731e+01, 0.8582758298370e-01, - 0.3297341285033e-10, 0.7898709807584e+00, 0.1104591729320e-01, - 0.2972585818015e-10, 0.3218785316973e+01, 0.5257585094865e+00, - 0.2931707295017e-10, 0.4260731012098e+01, 0.5336234347371e+00, - 0.2897198149403e-10, 0.1120753978101e+01, 0.1173197218910e+00, - 0.2832293240878e-10, 0.4597682717827e+00, 0.2022531624851e+00, - 0.2864348326612e-10, 0.2169939928448e+01, 0.9597935788730e-01, - 0.2852714675471e-10, 0.2377659870578e+01, 0.2118763888447e+01 }; - -/* SSB-to-Sun, T^1, Z */ - static const double s1z[] = { - 0.5444220475678e-08, 0.1803825509310e+01, 0.2132990797783e+00, - 0.3883412695596e-08, 0.4668616389392e+01, 0.5296909721118e+00, - 0.1334341434551e-08, 0.0000000000000e+00, 0.0000000000000e+00, - 0.3730001266883e-09, 0.5401405918943e+01, 0.2061856251104e+00, - 0.2894929197956e-09, 0.4932415609852e+01, 0.2204125344462e+00, - 0.2857950357701e-09, 0.3154625362131e+01, 0.7478166569050e-01, - 0.2499226432292e-09, 0.3657486128988e+01, 0.4265981595566e+00, - 0.1937705443593e-09, 0.5740434679002e+01, 0.1059381944224e+01, - 0.1374894396320e-09, 0.1712857366891e+01, 0.5368044267797e+00, - 0.1217248678408e-09, 0.2312090870932e+01, 0.5225775174439e+00, - - 0.7961052740870e-10, 0.5283368554163e+01, 0.3813291813120e-01, - 0.4979225949689e-10, 0.4298290471860e+01, 0.4194847048887e+00, - 0.4388552286597e-10, 0.6145515047406e+01, 0.7113454667900e-02, - 0.2586835212560e-10, 0.3019448001809e+01, 0.6398972393349e+00 }; - -/* SSB-to-Sun, T^2, X */ - static const double s2x[] = { - 0.1603551636587e-11, 0.4404109410481e+01, 0.2061856251104e+00, - 0.1556935889384e-11, 0.4818040873603e+00, 0.2204125344462e+00, - 0.1182594414915e-11, 0.9935762734472e+00, 0.5225775174439e+00, - 0.1158794583180e-11, 0.3353180966450e+01, 0.5368044267797e+00, - 0.9597358943932e-12, 0.5567045358298e+01, 0.2132990797783e+00, - 0.6511516579605e-12, 0.5630872420788e+01, 0.4265981595566e+00, - 0.7419792747688e-12, 0.2156188581957e+01, 0.5296909721118e+00, - 0.3951972655848e-12, 0.1981022541805e+01, 0.1059381944224e+01, - 0.4478223877045e-12, 0.0000000000000e+00, 0.0000000000000e+00 }; - -/* SSB-to-Sun, T^2, Y */ - static const double s2y[] = { - 0.1609114495091e-11, 0.2831096993481e+01, 0.2061856251104e+00, - 0.1560330784946e-11, 0.5193058213906e+01, 0.2204125344462e+00, - 0.1183535479202e-11, 0.5707003443890e+01, 0.5225775174439e+00, - 0.1158183066182e-11, 0.1782400404928e+01, 0.5368044267797e+00, - 0.1032868027407e-11, 0.4036925452011e+01, 0.2132990797783e+00, - 0.6540142847741e-12, 0.4058241056717e+01, 0.4265981595566e+00, - 0.7305236491596e-12, 0.6175401942957e+00, 0.5296909721118e+00, - -0.5580725052968e-12, 0.0000000000000e+00, 0.0000000000000e+00, - 0.3946122651015e-12, 0.4108265279171e+00, 0.1059381944224e+01 }; - -/* SSB-to-Sun, T^2, Z */ - static const double s2z[] = { - 0.3749920358054e-12, 0.3230285558668e+01, 0.2132990797783e+00, - 0.2735037220939e-12, 0.6154322683046e+01, 0.5296909721118e+00 }; - -/* Pointers to coefficient arrays, in x,y,z sets */ - static const double *ce0[] = { e0x, e0y, e0z }, - *ce1[] = { e1x, e1y, e1z }, - *ce2[] = { e2x, e2y, e2z }, - *cs0[] = { s0x, s0y, s0z }, - *cs1[] = { s1x, s1y, s1z }, - *cs2[] = { s2x, s2y, s2z }; - const double *coeffs; - -/* Numbers of terms for each component of the model, in x,y,z sets */ - static const int ne0[3] = {(int)(sizeof e0x / sizeof (double) / 3), - (int)(sizeof e0y / sizeof (double) / 3), - (int)(sizeof e0z / sizeof (double) / 3) }, - ne1[3] = {(int)(sizeof e1x / sizeof (double) / 3), - (int)(sizeof e1y / sizeof (double) / 3), - (int)(sizeof e1z / sizeof (double) / 3) }, - ne2[3] = {(int)(sizeof e2x / sizeof (double) / 3), - (int)(sizeof e2y / sizeof (double) / 3), - (int)(sizeof e2z / sizeof (double) / 3) }, - ns0[3] = {(int)(sizeof s0x / sizeof (double) / 3), - (int)(sizeof s0y / sizeof (double) / 3), - (int)(sizeof s0z / sizeof (double) / 3) }, - ns1[3] = {(int)(sizeof s1x / sizeof (double) / 3), - (int)(sizeof s1y / sizeof (double) / 3), - (int)(sizeof s1z / sizeof (double) / 3) }, - ns2[3] = {(int)(sizeof s2x / sizeof (double) / 3), - (int)(sizeof s2y / sizeof (double) / 3), - (int)(sizeof s2z / sizeof (double) / 3) }; - int nterms; - -/* Miscellaneous */ - int jstat, i, j; - double t, t2, xyz, xyzd, a, b, c, ct, p, cp, - ph[3], vh[3], pb[3], vb[3], x, y, z; - -/* ------------------------------------------------------------------ */ - -/* Time since reference epoch, Julian years. */ - t = ((date1 - DJ00) + date2) / DJY; - t2 = t*t; - -/* Set status. */ - jstat = fabs(t) <= 100.0 ? 0 : 1; - -/* X then Y then Z. */ - for (i = 0; i < 3; i++) { - - /* Initialize position and velocity component. */ - xyz = 0.0; - xyzd = 0.0; - - /* ------------------------------------------------ */ - /* Obtain component of Sun to Earth ecliptic vector */ - /* ------------------------------------------------ */ - - /* Sun to Earth, T^0 terms. */ - coeffs = ce0[i]; - nterms = ne0[i]; - for (j = 0; j < nterms; j++) { - a = *coeffs++; - b = *coeffs++; - c = *coeffs++; - p = b + c*t; - xyz += a*cos(p); - xyzd -= a*c*sin(p); - } - - /* Sun to Earth, T^1 terms. */ - coeffs = ce1[i]; - nterms = ne1[i]; - for (j = 0; j < nterms; j++) { - a = *coeffs++; - b = *coeffs++; - c = *coeffs++; - ct = c*t; - p = b + ct; - cp = cos(p); - xyz += a*t*cp; - xyzd += a*( cp - ct*sin(p) ); - } - - /* Sun to Earth, T^2 terms. */ - coeffs = ce2[i]; - nterms = ne2[i]; - for (j = 0; j < nterms; j++) { - a = *coeffs++; - b = *coeffs++; - c = *coeffs++; - ct = c*t; - p = b + ct; - cp = cos(p); - xyz += a*t2*cp; - xyzd += a*t*( 2.0*cp - ct*sin(p) ); - } - - /* Heliocentric Earth position and velocity component. */ - ph[i] = xyz; - vh[i] = xyzd / DJY; - - /* ------------------------------------------------ */ - /* Obtain component of SSB to Earth ecliptic vector */ - /* ------------------------------------------------ */ - - /* SSB to Sun, T^0 terms. */ - coeffs = cs0[i]; - nterms = ns0[i]; - for (j = 0; j < nterms; j++) { - a = *coeffs++; - b = *coeffs++; - c = *coeffs++; - p = b + c*t; - xyz += a*cos(p); - xyzd -= a*c*sin(p); - } - - /* SSB to Sun, T^1 terms. */ - coeffs = cs1[i]; - nterms = ns1[i]; - for (j = 0; j < nterms; j++) { - a = *coeffs++; - b = *coeffs++; - c = *coeffs++; - ct = c*t; - p = b + ct; - cp = cos(p); - xyz += a*t*cp; - xyzd += a*(cp - ct*sin(p)); - } - - /* SSB to Sun, T^2 terms. */ - coeffs = cs2[i]; - nterms = ns2[i]; - for (j = 0; j < nterms; j++) { - a = *coeffs++; - b = *coeffs++; - c = *coeffs++; - ct = c*t; - p = b + ct; - cp = cos(p); - xyz += a*t2*cp; - xyzd += a*t*(2.0*cp - ct*sin(p)); - } - - /* Barycentric Earth position and velocity component. */ - pb[i] = xyz; - vb[i] = xyzd / DJY; - - /* Next Cartesian component. */ - } - -/* Rotate from ecliptic to BCRS coordinates. */ - - x = ph[0]; - y = ph[1]; - z = ph[2]; - pvh[0][0] = x + am12*y + am13*z; - pvh[0][1] = am21*x + am22*y + am23*z; - pvh[0][2] = am32*y + am33*z; - - x = vh[0]; - y = vh[1]; - z = vh[2]; - pvh[1][0] = x + am12*y + am13*z; - pvh[1][1] = am21*x + am22*y + am23*z; - pvh[1][2] = am32*y + am33*z; - - x = pb[0]; - y = pb[1]; - z = pb[2]; - pvb[0][0] = x + am12*y + am13*z; - pvb[0][1] = am21*x + am22*y + am23*z; - pvb[0][2] = am32*y + am33*z; - - x = vb[0]; - y = vb[1]; - z = vb[2]; - pvb[1][0] = x + am12*y + am13*z; - pvb[1][1] = am21*x + am22*y + am23*z; - pvb[1][2] = am32*y + am33*z; - -/* Return the status. */ - return jstat; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eqec06.c b/deps/sofa/20231011/c/src/eqec06.c deleted file mode 100644 index 7b43388..0000000 --- a/deps/sofa/20231011/c/src/eqec06.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "sofa.h" - -void iauEqec06(double date1, double date2, double dr, double dd, - double *dl, double *db) -/* -** - - - - - - - - - - -** i a u E q e c 0 6 -** - - - - - - - - - - -** -** Transformation from ICRS equatorial coordinates to ecliptic -** coordinates (mean equinox and ecliptic of date) using IAU 2006 -** precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian date (Note 1) -** dr,dd double ICRS right ascension and declination (radians) -** -** Returned: -** dl,db double ecliptic longitude and latitude (radians) -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) No assumptions are made about whether the coordinates represent -** starlight and embody astrometric effects such as parallax or -** aberration. -** -** 3) The transformation is approximately that from mean J2000.0 right -** ascension and declination to ecliptic longitude and latitude -** (mean equinox and ecliptic of date), with only frame bias (always -** less than 25 mas) to disturb this classical picture. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 -** iauRxp product of r-matrix and p-vector -** iauC2s unit vector to spherical coordinates -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rm[3][3], v1[3], v2[3], a, b; - - -/* Spherical to Cartesian. */ - iauS2c(dr, dd, v1); - -/* Rotation matrix, ICRS equatorial to ecliptic. */ - iauEcm06(date1, date2, rm); - -/* The transformation from ICRS to ecliptic. */ - iauRxp(rm, v1, v2); - -/* Cartesian to spherical. */ - iauC2s(v2, &a, &b); - -/* Express in conventional ranges. */ - *dl = iauAnp(a); - *db = iauAnpm(b); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/eqeq94.c b/deps/sofa/20231011/c/src/eqeq94.c deleted file mode 100644 index a86f8cb..0000000 --- a/deps/sofa/20231011/c/src/eqeq94.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauEqeq94(double date1, double date2) -/* -** - - - - - - - - - - -** i a u E q e q 9 4 -** - - - - - - - - - - -** -** Equation of the equinoxes, IAU 1994 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TDB date (Note 1) -** -** Returned (function value): -** double equation of the equinoxes (Note 2) -** -** Notes: -** -** 1) The date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result, which is in radians, operates in the following sense: -** -** Greenwich apparent ST = GMST + equation of the equinoxes -** -** Called: -** iauAnpm normalize angle into range +/- pi -** iauNut80 nutation, IAU 1980 -** iauObl80 mean obliquity, IAU 1980 -** -** References: -** -** IAU Resolution C7, Recommendation 3 (1994). -** -** Capitaine, N. & Gontier, A.-M., 1993, Astron.Astrophys., 275, -** 645-650. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, om, dpsi, deps, eps0, ee; - - -/* Interval between fundamental epoch J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Longitude of the mean ascending node of the lunar orbit on the */ -/* ecliptic, measured from the mean equinox of date. */ - om = iauAnpm((450160.280 + (-482890.539 - + (7.455 + 0.008 * t) * t) * t) * DAS2R - + fmod(-5.0 * t, 1.0) * D2PI); - -/* Nutation components and mean obliquity. */ - iauNut80(date1, date2, &dpsi, &deps); - eps0 = iauObl80(date1, date2); - -/* Equation of the equinoxes. */ - ee = dpsi*cos(eps0) + DAS2R*(0.00264*sin(om) + 0.000063*sin(om+om)); - - return ee; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/era00.c b/deps/sofa/20231011/c/src/era00.c deleted file mode 100644 index 71fcd09..0000000 --- a/deps/sofa/20231011/c/src/era00.c +++ /dev/null @@ -1,189 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauEra00(double dj1, double dj2) -/* -** - - - - - - - - - -** i a u E r a 0 0 -** - - - - - - - - - -** -** Earth rotation angle (IAU 2000 model). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** dj1,dj2 double UT1 as a 2-part Julian Date (see note) -** -** Returned (function value): -** double Earth rotation angle (radians), range 0-2pi -** -** Notes: -** -** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any -** convenient way between the arguments dj1 and dj2. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, -** among others: -** -** dj1 dj2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. The date & time method is -** best matched to the algorithm used: maximum precision is -** delivered when the dj1 argument is for 0hrs UT1 on the day in -** question and the dj2 argument lies in the range 0 to 1, or vice -** versa. -** -** 2) The algorithm is adapted from Expression 22 of Capitaine et al. -** 2000. The time argument has been expressed in days directly, -** and, to retain precision, integer contributions have been -** eliminated. The same formulation is given in IERS Conventions -** (2003), Chap. 5, Eq. 14. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine N., Guinot B. and McCarthy D.D, 2000, Astron. -** Astrophys., 355, 398-405. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double d1, d2, t, f, theta; - - -/* Days since fundamental epoch. */ - if (dj1 < dj2) { - d1 = dj1; - d2 = dj2; - } else { - d1 = dj2; - d2 = dj1; - } - t = d1 + (d2- DJ00); - -/* Fractional part of T (days). */ - f = fmod(d1, 1.0) + fmod(d2, 1.0); - -/* Earth rotation angle at this UT1. */ - theta = iauAnp(D2PI * (f + 0.7790572732640 - + 0.00273781191135448 * t)); - - return theta; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fad03.c b/deps/sofa/20231011/c/src/fad03.c deleted file mode 100644 index 34eedbf..0000000 --- a/deps/sofa/20231011/c/src/fad03.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFad03(double t) -/* -** - - - - - - - - - -** i a u F a d 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean elongation of the Moon from the Sun. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double D, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean elongation of the Moon from the Sun (IERS Conventions 2003). */ - a = fmod( 1072260.703692 + - t * ( 1602961601.2090 + - t * ( - 6.3706 + - t * ( 0.006593 + - t * ( - 0.00003169 ) ) ) ), TURNAS ) * DAS2R; - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fae03.c b/deps/sofa/20231011/c/src/fae03.c deleted file mode 100644 index 0f705a3..0000000 --- a/deps/sofa/20231011/c/src/fae03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFae03(double t) -/* -** - - - - - - - - - -** i a u F a e 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Earth. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Earth, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Earth (IERS Conventions 2003). */ - a = fmod(1.753470314 + 628.3075849991 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/faf03.c b/deps/sofa/20231011/c/src/faf03.c deleted file mode 100644 index 81f50c8..0000000 --- a/deps/sofa/20231011/c/src/faf03.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFaf03(double t) -/* -** - - - - - - - - - -** i a u F a f 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of the Moon minus mean longitude of the ascending -** node. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double F, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of the Moon minus that of the ascending node */ -/* (IERS Conventions 2003). */ - a = fmod( 335779.526232 + - t * ( 1739527262.8478 + - t * ( - 12.7512 + - t * ( - 0.001037 + - t * ( 0.00000417 ) ) ) ), TURNAS ) * DAS2R; - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/faju03.c b/deps/sofa/20231011/c/src/faju03.c deleted file mode 100644 index 5beccd8..0000000 --- a/deps/sofa/20231011/c/src/faju03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFaju03(double t) -/* -** - - - - - - - - - - -** i a u F a j u 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Jupiter. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Jupiter, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Jupiter (IERS Conventions 2003). */ - a = fmod(0.599546497 + 52.9690962641 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fal03.c b/deps/sofa/20231011/c/src/fal03.c deleted file mode 100644 index dec36b9..0000000 --- a/deps/sofa/20231011/c/src/fal03.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFal03(double t) -/* -** - - - - - - - - - -** i a u F a l 0 3 -** - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean anomaly of the Moon. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double l, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean anomaly of the Moon (IERS Conventions 2003). */ - a = fmod( 485868.249036 + - t * ( 1717915923.2178 + - t * ( 31.8792 + - t * ( 0.051635 + - t * ( - 0.00024470 ) ) ) ), TURNAS ) * DAS2R; - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/falp03.c b/deps/sofa/20231011/c/src/falp03.c deleted file mode 100644 index 7c8fae4..0000000 --- a/deps/sofa/20231011/c/src/falp03.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFalp03(double t) -/* -** - - - - - - - - - - -** i a u F a l p 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean anomaly of the Sun. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double l', radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean anomaly of the Sun (IERS Conventions 2003). */ - a = fmod( 1287104.793048 + - t * ( 129596581.0481 + - t * ( - 0.5532 + - t * ( 0.000136 + - t * ( - 0.00001149 ) ) ) ), TURNAS ) * DAS2R; - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fama03.c b/deps/sofa/20231011/c/src/fama03.c deleted file mode 100644 index f238727..0000000 --- a/deps/sofa/20231011/c/src/fama03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFama03(double t) -/* -** - - - - - - - - - - -** i a u F a m a 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Mars. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Mars, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Mars (IERS Conventions 2003). */ - a = fmod(6.203480913 + 334.0612426700 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fame03.c b/deps/sofa/20231011/c/src/fame03.c deleted file mode 100644 index 6b54f70..0000000 --- a/deps/sofa/20231011/c/src/fame03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFame03(double t) -/* -** - - - - - - - - - - -** i a u F a m e 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Mercury. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Mercury, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Mercury (IERS Conventions 2003). */ - a = fmod(4.402608842 + 2608.7903141574 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fane03.c b/deps/sofa/20231011/c/src/fane03.c deleted file mode 100644 index bfa61f3..0000000 --- a/deps/sofa/20231011/c/src/fane03.c +++ /dev/null @@ -1,152 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFane03(double t) -/* -** - - - - - - - - - - -** i a u F a n e 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Neptune. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Neptune, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is adapted from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Neptune (IERS Conventions 2003). */ - a = fmod(5.311886287 + 3.8133035638 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/faom03.c b/deps/sofa/20231011/c/src/faom03.c deleted file mode 100644 index 21d9075..0000000 --- a/deps/sofa/20231011/c/src/faom03.c +++ /dev/null @@ -1,157 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFaom03(double t) -/* -** - - - - - - - - - - -** i a u F a o m 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of the Moon's ascending node. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double Omega, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J., 1994, Astron.Astrophys. 282, 663-683. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of the Moon's ascending node */ -/* (IERS Conventions 2003). */ - a = fmod( 450160.398036 + - t * ( - 6962890.5431 + - t * ( 7.4722 + - t * ( 0.007702 + - t * ( - 0.00005939 ) ) ) ), TURNAS ) * DAS2R; - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fapa03.c b/deps/sofa/20231011/c/src/fapa03.c deleted file mode 100644 index 1fd3e70..0000000 --- a/deps/sofa/20231011/c/src/fapa03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" - -double iauFapa03(double t) -/* -** - - - - - - - - - - -** i a u F a p a 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** general accumulated precession in longitude. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double general precession in longitude, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003). It -** is taken from Kinoshita & Souchay (1990) and comes originally -** from Lieske et al. (1977). -** -** References: -** -** Kinoshita, H. and Souchay J. 1990, Celest.Mech. and Dyn.Astron. -** 48, 187 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* General accumulated precession in longitude. */ - a = (0.024381750 + 0.00000538691 * t) * t; - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fasa03.c b/deps/sofa/20231011/c/src/fasa03.c deleted file mode 100644 index a5a02de..0000000 --- a/deps/sofa/20231011/c/src/fasa03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFasa03(double t) -/* -** - - - - - - - - - - -** i a u F a s a 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Saturn. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Saturn, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Saturn (IERS Conventions 2003). */ - a = fmod(0.874016757 + 21.3299104960 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/faur03.c b/deps/sofa/20231011/c/src/faur03.c deleted file mode 100644 index 95735b7..0000000 --- a/deps/sofa/20231011/c/src/faur03.c +++ /dev/null @@ -1,152 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFaur03(double t) -/* -** - - - - - - - - - - -** i a u F a u r 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Uranus. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Uranus, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** is adapted from Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Uranus (IERS Conventions 2003). */ - a = fmod(5.481293872 + 7.4781598567 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fave03.c b/deps/sofa/20231011/c/src/fave03.c deleted file mode 100644 index 18931dc..0000000 --- a/deps/sofa/20231011/c/src/fave03.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauFave03(double t) -/* -** - - - - - - - - - - -** i a u F a v e 0 3 -** - - - - - - - - - - -** -** Fundamental argument, IERS Conventions (2003): -** mean longitude of Venus. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** t double TDB, Julian centuries since J2000.0 (Note 1) -** -** Returned (function value): -** double mean longitude of Venus, radians (Note 2) -** -** Notes: -** -** 1) Though t is strictly TDB, it is usually more convenient to use -** TT, which makes no significant difference. -** -** 2) The expression used is as adopted in IERS Conventions (2003) and -** comes from Souchay et al. (1999) after Simon et al. (1994). -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double a; - - -/* Mean longitude of Venus (IERS Conventions 2003). */ - a = fmod(3.176146697 + 1021.3285546211 * t, D2PI); - - return a; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk425.c b/deps/sofa/20231011/c/src/fk425.c deleted file mode 100644 index dc60b99..0000000 --- a/deps/sofa/20231011/c/src/fk425.c +++ /dev/null @@ -1,322 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauFk425(double r1950, double d1950, - double dr1950, double dd1950, - double p1950, double v1950, - double *r2000, double *d2000, - double *dr2000, double *dd2000, - double *p2000, double *v2000) -/* -** - - - - - - - - - -** i a u F k 4 2 5 -** - - - - - - - - - -** -** Convert B1950.0 FK4 star catalog data to J2000.0 FK5. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** This function converts a star's catalog data from the old FK4 -** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system. -** -** Given: (all B1950.0, FK4) -** r1950,d1950 double B1950.0 RA,Dec (rad) -** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) -** p1950 double parallax (arcsec) -** v1950 double radial velocity (km/s, +ve = moving away) -** -** Returned: (all J2000.0, FK5) -** r2000,d2000 double J2000.0 RA,Dec (rad) -** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) -** p2000 double parallax (arcsec) -** v2000 double radial velocity (km/s, +ve = moving away) -** -** Notes: -** -** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, -** and are per year rather than per century. -** -** 2) The conversion is somewhat complicated, for several reasons: -** -** . Change of standard epoch from B1950.0 to J2000.0. -** -** . An intermediate transition date of 1984 January 1.0 TT. -** -** . A change of precession model. -** -** . Change of time unit for proper motion (tropical to Julian). -** -** . FK4 positions include the E-terms of aberration, to simplify -** the hand computation of annual aberration. FK5 positions -** assume a rigorous aberration computation based on the Earth's -** barycentric velocity. -** -** . The E-terms also affect proper motions, and in particular cause -** objects at large distances to exhibit fictitious proper -** motions. -** -** The algorithm is based on Smith et al. (1989) and Yallop et al. -** (1989), which presented a matrix method due to Standish (1982) as -** developed by Aoki et al. (1983), using Kinoshita's development of -** Andoyer's post-Newcomb precession. The numerical constants from -** Seidelmann (1992) are used canonically. -** -** 3) Conversion from B1950.0 FK4 to J2000.0 FK5 only is provided for. -** Conversions for different epochs and equinoxes would require -** additional treatment for precession, proper motion and E-terms. -** -** 4) In the FK4 catalog the proper motions of stars within 10 degrees -** of the poles do not embody differential E-terms effects and -** should, strictly speaking, be handled in a different manner from -** stars outside these regions. However, given the general lack of -** homogeneity of the star data available for routine astrometry, -** the difficulties of handling positions that may have been -** determined from astrometric fields spanning the polar and non- -** polar regions, the likelihood that the differential E-terms -** effect was not taken into account when allowing for proper motion -** in past astrometry, and the undesirability of a discontinuity in -** the algorithm, the decision has been made in this SOFA algorithm -** to include the effects of differential E-terms on the proper -** motions for all stars, whether polar or not. At epoch J2000.0, -** and measuring "on the sky" rather than in terms of RA change, the -** errors resulting from this simplification are less than -** 1 milliarcsecond in position and 1 milliarcsecond per century in -** proper motion. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauPv2s pv-vector to spherical coordinates -** iauPdp scalar product of two p-vectors -** iauPvmpv pv-vector minus pv_vector -** iauPvppv pv-vector plus pv_vector -** iauS2pv spherical coordinates to pv-vector -** iauSxp multiply p-vector by scalar -** -** References: -** -** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 -** FK4-based positions of stars to epoch J2000.0 positions in -** accordance with the new IAU resolutions". Astron.Astrophys. -** 128, 263-267. -** -** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the -** Astronomical Almanac", ISBN 0-935702-68-7. -** -** Smith, C.A. et al., 1989, "The transformation of astrometric -** catalog systems to the equinox J2000.0". Astron.J. 97, 265. -** -** Standish, E.M., 1982, "Conversion of positions and proper motions -** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., -** 115, 1, 20-22. -** -** Yallop, B.D. et al., 1989, "Transformation of mean star places -** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". -** Astron.J. 97, 274. -** -** This revision: 2023 March 20 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Radians per year to arcsec per century */ - const double PMF = 100.0*DR2AS; - -/* Small number to avoid arithmetic problems */ - const double TINY = 1e-30; - -/* Miscellaneous */ - double r, d, ur, ud, px, rv, pxvf, w, rd; - int i, j, k, l; - -/* Pv-vectors */ - double r0[2][3], pv1[2][3], pv2[2][3]; - -/* -** CANONICAL CONSTANTS (Seidelmann 1992) -*/ - -/* Km per sec to au per tropical century */ -/* = 86400 * 36524.2198782 / 149597870.7 */ - const double VF = 21.095; - -/* Constant pv-vector (cf. Seidelmann 3.591-2, vectors A and Adot) */ - static double a[2][3] = { - { -1.62557e-6, -0.31919e-6, -0.13843e-6 }, - { +1.245e-3, -1.580e-3, -0.659e-3 } - }; - -/* 3x2 matrix of pv-vectors (cf. Seidelmann 3.591-4, matrix M) */ - static double em[2][3][2][3] = { - - { { { +0.9999256782, -0.0111820611, -0.0048579477 }, - { +0.00000242395018, -0.00000002710663, -0.00000001177656 } }, - - { { +0.0111820610, +0.9999374784, -0.0000271765 }, - { +0.00000002710663, +0.00000242397878, -0.00000000006587 } }, - - { { +0.0048579479, -0.0000271474, +0.9999881997, }, - { +0.00000001177656, -0.00000000006582, +0.00000242410173 } } }, - - { { { -0.000551, -0.238565, +0.435739 }, - { +0.99994704, -0.01118251, -0.00485767 } }, - - { { +0.238514, -0.002667, -0.008541 }, - { +0.01118251, +0.99995883, -0.00002718 } }, - - { { -0.435623, +0.012254, +0.002117 }, - { +0.00485767, -0.00002714, +1.00000956 } } } - - }; - -/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -/* The FK4 data (units radians and arcsec per tropical century). */ - r = r1950; - d = d1950; - ur = dr1950*PMF; - ud = dd1950*PMF; - px = p1950; - rv = v1950; - -/* Express as a pv-vector. */ - pxvf = px*VF; - w = rv*pxvf; - iauS2pv(r, d, 1.0, ur, ud, w, r0); - -/* Allow for E-terms (cf. Seidelmann 3.591-2). */ - iauPvmpv(r0, a, pv1); - iauSxp(iauPdp(r0[0], a[0]), r0[0], pv2[0]); - iauSxp(iauPdp(r0[0], a[1]), r0[0], pv2[1]); - iauPvppv(pv1, pv2, pv1); - -/* Convert pv-vector to Fricke system (cf. Seidelmann 3.591-3). */ - for ( i = 0; i < 2; i++ ) { - for ( j = 0; j < 3; j++ ) { - w = 0.0; - for ( k = 0; k < 2; k++ ) { - for ( l = 0; l < 3; l++ ) { - w += em[i][j][k][l] * pv1[k][l]; - } - } - pv2[i][j] = w; - } - } - -/* Revert to catalog form. */ - iauPv2s(pv2, &r, &d, &w, &ur, &ud, &rd); - if ( px > TINY ) { - rv = rd/pxvf; - px = px/w; - } - -/* Return the results. */ - *r2000 = iauAnp(r); - *d2000 = d; - *dr2000 = ur/PMF; - *dd2000 = ud/PMF; - *v2000 = rv; - *p2000 = px; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk45z.c b/deps/sofa/20231011/c/src/fk45z.c deleted file mode 100644 index 0dae492..0000000 --- a/deps/sofa/20231011/c/src/fk45z.c +++ /dev/null @@ -1,252 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauFk45z(double r1950, double d1950, double bepoch, - double *r2000, double *d2000) -/* -** - - - - - - - - - -** i a u F k 4 5 z -** - - - - - - - - - -** -** Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero -** proper motion in the FK5 system. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** This function converts a star's catalog data from the old FK4 -** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, -** in such a way that the FK5 proper motion is zero. Because such a -** star has, in general, a non-zero proper motion in the FK4 system, -** the function requires the epoch at which the position in the FK4 -** system was determined. -** -** Given: -** r1950,d1950 double B1950.0 FK4 RA,Dec at epoch (rad) -** bepoch double Besselian epoch (e.g. 1979.3) -** -** Returned: -** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) -** -** Notes: -** -** 1) The epoch bepoch is strictly speaking Besselian, but if a -** Julian epoch is supplied the result will be affected only to a -** negligible extent. -** -** 2) The method is from Appendix 2 of Aoki et al. (1983), but using -** the constants of Seidelmann (1992). See the function iauFk425 -** for a general introduction to the FK4 to FK5 conversion. -** -** 3) Conversion from equinox B1950.0 FK4 to equinox J2000.0 FK5 only -** is provided for. Conversions for different starting and/or -** ending epochs would require additional treatment for precession, -** proper motion and E-terms. -** -** 4) In the FK4 catalog the proper motions of stars within 10 degrees -** of the poles do not embody differential E-terms effects and -** should, strictly speaking, be handled in a different manner from -** stars outside these regions. However, given the general lack of -** homogeneity of the star data available for routine astrometry, -** the difficulties of handling positions that may have been -** determined from astrometric fields spanning the polar and non- -** polar regions, the likelihood that the differential E-terms -** effect was not taken into account when allowing for proper motion -** in past astrometry, and the undesirability of a discontinuity in -** the algorithm, the decision has been made in this SOFA algorithm -** to include the effects of differential E-terms on the proper -** motions for all stars, whether polar or not. At epoch J2000.0, -** and measuring "on the sky" rather than in terms of RA change, the -** errors resulting from this simplification are less than -** 1 milliarcsecond in position and 1 milliarcsecond per century in -** proper motion. -** -** References: -** -** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 -** FK4-based positions of stars to epoch J2000.0 positions in -** accordance with the new IAU resolutions". Astron.Astrophys. -** 128, 263-267. -** -** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the -** Astronomical Almanac", ISBN 0-935702-68-7. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauC2s p-vector to spherical -** iauEpb2jd Besselian epoch to Julian date -** iauEpj Julian date to Julian epoch -** iauPdp scalar product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPpsp p-vector plus scaled p-vector -** iauPvu update a pv-vector -** iauS2c spherical to p-vector -** -** This revision: 2023 March 4 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Radians per year to arcsec per century */ - const double PMF = 100.0*DR2AS; - -/* Position and position+velocity vectors */ - double r0[3], p[3], pv[2][3]; - -/* Miscellaneous */ - double w, djm0, djm; - int i, j, k; - -/* -** CANONICAL CONSTANTS (Seidelmann 1992) -*/ - -/* Vectors A and Adot (Seidelmann 3.591-2) */ - static double a[3] = { -1.62557e-6, -0.31919e-6, -0.13843e-6 }; - static double ad[3] = { +1.245e-3, -1.580e-3, -0.659e-3 }; - -/* 3x2 matrix of p-vectors (cf. Seidelmann 3.591-4, matrix M) */ - static double em[2][3][3] = { - { { +0.9999256782, -0.0111820611, -0.0048579477 }, - { +0.0111820610, +0.9999374784, -0.0000271765 }, - { +0.0048579479, -0.0000271474, +0.9999881997 } }, - { { -0.000551, -0.238565, +0.435739 }, - { +0.238514, -0.002667, -0.008541 }, - { -0.435623, +0.012254, +0.002117 } } - }; - -/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -/* Spherical coordinates to p-vector. */ - iauS2c(r1950, d1950, r0); - -/* Adjust p-vector A to give zero proper motion in FK5. */ - w = (bepoch - 1950) / PMF; - iauPpsp(a, w, ad, p); - -/* Remove E-terms. */ - iauPpsp(p, -iauPdp(r0,p), r0, p); - iauPmp(r0, p, p); - -/* Convert to Fricke system pv-vector (cf. Seidelmann 3.591-3). */ - for ( i = 0; i < 2; i++ ) { - for ( j = 0; j < 3; j++ ) { - w = 0.0; - for ( k = 0; k < 3; k++ ) { - w += em[i][j][k] * p[k]; - } - pv[i][j] = w; - } - } - -/* Allow for fictitious proper motion. */ - iauEpb2jd(bepoch, &djm0, &djm); - w = (iauEpj(djm0,djm)-2000.0) / PMF; - iauPvu(w, pv, pv); - -/* Revert to spherical coordinates. */ - iauC2s(pv[0], &w, d2000); - *r2000 = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk524.c b/deps/sofa/20231011/c/src/fk524.c deleted file mode 100644 index 5d4bba5..0000000 --- a/deps/sofa/20231011/c/src/fk524.c +++ /dev/null @@ -1,334 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauFk524(double r2000, double d2000, - double dr2000, double dd2000, - double p2000, double v2000, - double *r1950, double *d1950, - double *dr1950, double *dd1950, - double *p1950, double *v1950) -/* -** - - - - - - - - - -** i a u F k 5 2 4 -** - - - - - - - - - -** -** Convert J2000.0 FK5 star catalog data to B1950.0 FK4. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: (all J2000.0, FK5) -** r2000,d2000 double J2000.0 RA,Dec (rad) -** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) -** p2000 double parallax (arcsec) -** v2000 double radial velocity (km/s, +ve = moving away) -** -** Returned: (all B1950.0, FK4) -** r1950,d1950 double B1950.0 RA,Dec (rad) -** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) -** p1950 double parallax (arcsec) -** v1950 double radial velocity (km/s, +ve = moving away) -** -** Notes: -** -** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, -** and are per year rather than per century. -** -** 2) The conversion is somewhat complicated, for several reasons: -** -** . Change of standard epoch from J2000.0 to B1950.0. -** -** . An intermediate transition date of 1984 January 1.0 TT. -** -** . A change of precession model. -** -** . Change of time unit for proper motion (Julian to tropical). -** -** . FK4 positions include the E-terms of aberration, to simplify -** the hand computation of annual aberration. FK5 positions -** assume a rigorous aberration computation based on the Earth's -** barycentric velocity. -** -** . The E-terms also affect proper motions, and in particular cause -** objects at large distances to exhibit fictitious proper -** motions. -** -** The algorithm is based on Smith et al. (1989) and Yallop et al. -** (1989), which presented a matrix method due to Standish (1982) as -** developed by Aoki et al. (1983), using Kinoshita's development of -** Andoyer's post-Newcomb precession. The numerical constants from -** Seidelmann (1992) are used canonically. -** -** 4) In the FK4 catalog the proper motions of stars within 10 degrees -** of the poles do not embody differential E-terms effects and -** should, strictly speaking, be handled in a different manner from -** stars outside these regions. However, given the general lack of -** homogeneity of the star data available for routine astrometry, -** the difficulties of handling positions that may have been -** determined from astrometric fields spanning the polar and non- -** polar regions, the likelihood that the differential E-terms -** effect was not taken into account when allowing for proper motion -** in past astrometry, and the undesirability of a discontinuity in -** the algorithm, the decision has been made in this SOFA algorithm -** to include the effects of differential E-terms on the proper -** motions for all stars, whether polar or not. At epoch J2000.0, -** and measuring "on the sky" rather than in terms of RA change, the -** errors resulting from this simplification are less than -** 1 milliarcsecond in position and 1 milliarcsecond per century in -** proper motion. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauPdp scalar product of two p-vectors -** iauPm modulus of p-vector -** iauPmp p-vector minus p-vector -** iauPpp p-vector pluus p-vector -** iauPv2s pv-vector to spherical coordinates -** iauS2pv spherical coordinates to pv-vector -** iauSxp multiply p-vector by scalar -** -** References: -** -** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 -** FK4-based positions of stars to epoch J2000.0 positions in -** accordance with the new IAU resolutions". Astron.Astrophys. -** 128, 263-267. -** -** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the -** Astronomical Almanac", ISBN 0-935702-68-7. -** -** Smith, C.A. et al., 1989, "The transformation of astrometric -** catalog systems to the equinox J2000.0". Astron.J. 97, 265. -** -** Standish, E.M., 1982, "Conversion of positions and proper motions -** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., -** 115, 1, 20-22. -** -** Yallop, B.D. et al., 1989, "Transformation of mean star places -** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". -** Astron.J. 97, 274. -** -** This revision: 2023 March 20 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Radians per year to arcsec per century */ - const double PMF = 100.0*DR2AS; - -/* Small number to avoid arithmetic problems */ - const double TINY = 1e-30; - -/* Miscellaneous */ - double r, d, ur, ud, px, rv, pxvf, w, rd; - int i, j, k, l; - -/* Vectors, p and pv */ - double r0[2][3], r1[2][3], p1[3], p2[3], pv[2][3]; - -/* -** CANONICAL CONSTANTS (Seidelmann 1992) -*/ - -/* Km per sec to au per tropical century */ -/* = 86400 * 36524.2198782 / 149597870.7 */ - const double VF = 21.095; - -/* Constant pv-vector (cf. Seidelmann 3.591-2, vectors A and Adot) */ - static double a[2][3] = { - { -1.62557e-6, -0.31919e-6, -0.13843e-6 }, - { +1.245e-3, -1.580e-3, -0.659e-3 } - }; - -/* 3x2 matrix of pv-vectors (cf. Seidelmann 3.592-1, matrix M^-1) */ - static double em[2][3][2][3] = { - - { { { +0.9999256795, +0.0111814828, +0.0048590039, }, - { -0.00000242389840, -0.00000002710544, -0.00000001177742 } }, - - { { -0.0111814828, +0.9999374849, -0.0000271771, }, - { +0.00000002710544, -0.00000242392702, +0.00000000006585 } }, - - { { -0.0048590040, -0.0000271557, +0.9999881946, }, - { +0.00000001177742, +0.00000000006585, -0.00000242404995 } } }, - - { { { -0.000551, +0.238509, -0.435614, }, - { +0.99990432, +0.01118145, +0.00485852 } }, - - { { -0.238560, -0.002667, +0.012254, }, - { -0.01118145, +0.99991613, -0.00002717 } }, - - { { +0.435730, -0.008541, +0.002117, }, - { -0.00485852, -0.00002716, +0.99996684 } } } - - }; - -/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ - -/* The FK5 data (units radians and arcsec per Julian century). */ - r = r2000; - d = d2000; - ur = dr2000*PMF; - ud = dd2000*PMF; - px = p2000; - rv = v2000; - -/* Express as a pv-vector. */ - pxvf = px * VF; - w = rv * pxvf; - iauS2pv(r, d, 1.0, ur, ud, w, r0); - -/* Convert pv-vector to Bessel-Newcomb system (cf. Seidelmann 3.592-1). */ - for ( i = 0; i < 2; i++ ) { - for ( j = 0; j < 3; j++ ) { - w = 0.0; - for ( k = 0; k < 2; k++ ) { - for ( l = 0; l < 3; l++ ) { - w += em[i][j][k][l] * r0[k][l]; - } - } - r1[i][j] = w; - } - } - -/* Apply E-terms (equivalent to Seidelmann 3.592-3, one iteration). */ - -/* Direction. */ - w = iauPm(r1[0]); - iauSxp(iauPdp(r1[0],a[0]), r1[0], p1); - iauSxp(w, a[0], p2); - iauPmp(p2, p1, p1); - iauPpp(r1[0], p1, p1); - -/* Recompute length. */ - w = iauPm(p1); - -/* Direction. */ - iauSxp(iauPdp(r1[0],a[0]), r1[0], p1); - iauSxp(w, a[0], p2); - iauPmp(p2, p1, p1); - iauPpp(r1[0], p1, pv[0]); - -/* Derivative. */ - iauSxp(iauPdp(r1[0],a[1]), pv[0], p1); - iauSxp(w, a[1], p2); - iauPmp(p2, p1, p1); - iauPpp(r1[1], p1, pv[1]); - -/* Revert to catalog form. */ - iauPv2s(pv, &r, &d, &w, &ur, &ud, &rd); - if ( px > TINY ) { - rv = rd/pxvf; - px = px/w; - } - -/* Return the results. */ - *r1950 = iauAnp(r); - *d1950 = d; - *dr1950 = ur/PMF; - *dd1950 = ud/PMF; - *p1950 = px; - *v1950 = rv; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk52h.c b/deps/sofa/20231011/c/src/fk52h.c deleted file mode 100644 index 3c7ace0..0000000 --- a/deps/sofa/20231011/c/src/fk52h.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "sofa.h" - -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) -/* -** - - - - - - - - - -** i a u F k 5 2 h -** - - - - - - - - - -** -** Transform FK5 (J2000.0) star data into the Hipparcos system. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (all FK5, equinox J2000.0, epoch J2000.0): -** r5 double RA (radians) -** d5 double Dec (radians) -** dr5 double proper motion in RA (dRA/dt, rad/Jyear) -** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) -** px5 double parallax (arcsec) -** rv5 double radial velocity (km/s, positive = receding) -** -** Returned (all Hipparcos, epoch J2000.0): -** rh double RA (radians) -** dh double Dec (radians) -** drh double proper motion in RA (dRA/dt, rad/Jyear) -** ddh double proper motion in Dec (dDec/dt, rad/Jyear) -** pxh double parallax (arcsec) -** rvh double radial velocity (km/s, positive = receding) -** -** Notes: -** -** 1) This function transforms FK5 star positions and proper motions -** into the system of the Hipparcos catalog. -** -** 2) The proper motions in RA are dRA/dt rather than -** cos(Dec)*dRA/dt, and are per year rather than per century. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure -** rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 4) See also iauH2fk5, iauFk5hz, iauHfk5z. -** -** Called: -** iauStarpv star catalog data to space motion pv-vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauRxp product of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauPpp p-vector plus p-vector -** iauPvstar space motion pv-vector to star catalog data -** -** Reference: -** -** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int i; - double pv5[2][3], r5h[3][3], s5h[3], wxp[3], vv[3], pvh[2][3]; - - -/* FK5 barycentric position/velocity pv-vector (normalized). */ - iauStarpv(r5, d5, dr5, dd5, px5, rv5, pv5); - -/* FK5 to Hipparcos orientation matrix and spin vector. */ - iauFk5hip(r5h, s5h); - -/* Make spin units per day instead of per year. */ - for ( i = 0; i < 3; s5h[i++] /= 365.25 ); - -/* Orient the FK5 position into the Hipparcos system. */ - iauRxp(r5h, pv5[0], pvh[0]); - -/* Apply spin to the position giving an extra space motion component. */ - iauPxp(pv5[0], s5h, wxp); - -/* Add this component to the FK5 space motion. */ - iauPpp(wxp, pv5[1], vv); - -/* Orient the FK5 space motion into the Hipparcos system. */ - iauRxp(r5h, vv, pvh[1]); - -/* Hipparcos pv-vector to spherical. */ - iauPvstar(pvh, rh, dh, drh, ddh, pxh, rvh); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk54z.c b/deps/sofa/20231011/c/src/fk54z.c deleted file mode 100644 index a300883..0000000 --- a/deps/sofa/20231011/c/src/fk54z.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "sofa.h" - -void iauFk54z(double r2000, double d2000, double bepoch, - double *r1950, double *d1950, - double *dr1950, double *dd1950) -/* -** - - - - - - - - - -** i a u F k 5 4 z -** - - - - - - - - - -** -** Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero -** proper motion in FK5 and parallax. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) -** bepoch double Besselian epoch (e.g. 1950.0) -** -** Returned: -** r1950,d1950 double B1950.0 FK4 RA,Dec (rad) at epoch BEPOCH -** dr1950,dd1950 double B1950.0 FK4 proper motions (rad/trop.yr) -** -** Notes: -** -** 1) In contrast to the iauFk524 function, here the FK5 proper -** motions, the parallax and the radial velocity are presumed zero. -** -** 2) This function converts a star position from the IAU 1976 FK5 -** (Fricke) system to the former FK4 (Bessel-Newcomb) system, for -** cases such as distant radio sources where it is presumed there is -** zero parallax and no proper motion. Because of the E-terms of -** aberration, such objects have (in general) non-zero proper motion -** in FK4, and the present function returns those fictitious proper -** motions. -** -** 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. -** Conversions involving other equinoxes would require additional -** treatment for precession. -** -** 4) The position returned by this function is in the B1950.0 FK4 -** reference system but at Besselian epoch bepoch. For comparison -** with catalogs the bepoch argument will frequently be 1950.0. (In -** this context the distinction between Besselian and Julian epoch -** is insignificant.) -** -** 5) The RA component of the returned (fictitious) proper motion is -** dRA/dt rather than cos(Dec)*dRA/dt. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauC2s p-vector to spherical -** iauFk524 FK4 to FK5 -** iauS2c spherical to p-vector -** -** This revision: 2023 March 5 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r, d, pr, pd, px, rv, p[3], w, v[3]; - int i; - - -/* FK5 equinox J2000.0 to FK4 equinox B1950.0. */ - iauFk524(r2000, d2000, 0.0, 0.0, 0.0, 0.0, - &r, &d, &pr, &pd, &px, &rv); - -/* Spherical to Cartesian. */ - iauS2c(r, d, p); - -/* Fictitious proper motion (radians per year). */ - v[0] = - pr*p[1] - pd*cos(r)*sin(d); - v[1] = pr*p[0] - pd*sin(r)*sin(d); - v[2] = pd*cos(d); - -/* Apply the motion. */ - w = bepoch - 1950.0; - for ( i = 0; i < 3; i++ ) { - p[i] += w*v[i]; - } - -/* Cartesian to spherical. */ - iauC2s(p, &w, d1950); - *r1950 = iauAnp(w); - -/* Fictitious proper motion. */ - *dr1950 = pr; - *dd1950 = pd; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk5hip.c b/deps/sofa/20231011/c/src/fk5hip.c deleted file mode 100644 index dd9b28f..0000000 --- a/deps/sofa/20231011/c/src/fk5hip.c +++ /dev/null @@ -1,177 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauFk5hip(double r5h[3][3], double s5h[3]) -/* -** - - - - - - - - - - -** i a u F k 5 h i p -** - - - - - - - - - - -** -** FK5 to Hipparcos rotation and spin. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Returned: -** r5h double[3][3] r-matrix: FK5 rotation wrt Hipparcos (Note 2) -** s5h double[3] r-vector: FK5 spin wrt Hipparcos (Note 3) -** -** Notes: -** -** 1) This function models the FK5 to Hipparcos transformation as a -** pure rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 2) The r-matrix r5h operates in the sense: -** -** P_Hipparcos = r5h x P_FK5 -** -** where P_FK5 is a p-vector in the FK5 frame, and P_Hipparcos is -** the equivalent Hipparcos p-vector. -** -** 3) The r-vector s5h represents the time derivative of the FK5 to -** Hipparcos rotation. The units are radians per year (Julian, -** TDB). -** -** Called: -** iauRv2m r-vector to r-matrix -** -** Reference: -** -** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). -** -** This revision: 2023 March 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double v[3]; - -/* FK5 wrt Hipparcos orientation and spin (radians, radians/year) */ - double epx, epy, epz; - double omx, omy, omz; - - - epx = -19.9e-3 * DAS2R; - epy = -9.1e-3 * DAS2R; - epz = 22.9e-3 * DAS2R; - - omx = -0.30e-3 * DAS2R; - omy = 0.60e-3 * DAS2R; - omz = 0.70e-3 * DAS2R; - -/* FK5 to Hipparcos orientation expressed as an r-vector. */ - v[0] = epx; - v[1] = epy; - v[2] = epz; - -/* Re-express as an r-matrix. */ - iauRv2m(v, r5h); - -/* Hipparcos wrt FK5 spin expressed as an r-vector. */ - s5h[0] = omx; - s5h[1] = omy; - s5h[2] = omz; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fk5hz.c b/deps/sofa/20231011/c/src/fk5hz.c deleted file mode 100644 index d2da3e2..0000000 --- a/deps/sofa/20231011/c/src/fk5hz.c +++ /dev/null @@ -1,211 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauFk5hz(double r5, double d5, double date1, double date2, - double *rh, double *dh) -/* -** - - - - - - - - - -** i a u F k 5 h z -** - - - - - - - - - -** -** Transform an FK5 (J2000.0) star position into the system of the -** Hipparcos catalog, assuming zero Hipparcos proper motion. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** r5 double FK5 RA (radians), equinox J2000.0, at date -** d5 double FK5 Dec (radians), equinox J2000.0, at date -** date1,date2 double TDB date (Notes 1,2) -** -** Returned: -** rh double Hipparcos RA (radians) -** dh double Hipparcos Dec (radians) -** -** Notes: -** -** 1) This function converts a star position from the FK5 system to -** the Hipparcos system, in such a way that the Hipparcos proper -** motion is zero. Because such a star has, in general, a non-zero -** proper motion in the FK5 system, the function requires the date -** at which the position in the FK5 system was determined. -** -** 2) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure -** rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 4) The position returned by this function is in the Hipparcos -** reference system but at date date1+date2. -** -** 5) See also iauFk52h, iauH2fk5, iauHfk5z. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauSxp multiply p-vector by scalar -** iauRv2m r-vector to r-matrix -** iauTrxp product of transpose of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauC2s p-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. -** -** This revision: 2023 March 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, p5e[3], r5h[3][3], s5h[3], vst[3], rst[3][3], p5[3], - ph[3], w; - - -/* Interval from given date to fundamental epoch J2000.0 (JY). */ - t = - ((date1 - DJ00) + date2) / DJY; - -/* FK5 barycentric position vector. */ - iauS2c(r5, d5, p5e); - -/* FK5 to Hipparcos orientation matrix and spin vector. */ - iauFk5hip(r5h, s5h); - -/* Accumulated Hipparcos wrt FK5 spin over that interval. */ - iauSxp(t, s5h, vst); - -/* Express the accumulated spin as a rotation matrix. */ - iauRv2m(vst, rst); - -/* Derotate the vector's FK5 axes back to date. */ - iauTrxp(rst, p5e, p5); - -/* Rotate the vector into the Hipparcos system. */ - iauRxp(r5h, p5, ph); - -/* Hipparcos vector to spherical. */ - iauC2s(ph, &w, dh); - *rh = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fw2m.c b/deps/sofa/20231011/c/src/fw2m.c deleted file mode 100644 index f5232db..0000000 --- a/deps/sofa/20231011/c/src/fw2m.c +++ /dev/null @@ -1,189 +0,0 @@ -#include "sofa.h" - -void iauFw2m(double gamb, double phib, double psi, double eps, - double r[3][3]) -/* -** - - - - - - - - -** i a u F w 2 m -** - - - - - - - - -** -** Form rotation matrix given the Fukushima-Williams angles. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psi double F-W angle psi (radians) -** eps double F-W angle epsilon (radians) -** -** Returned: -** r double[3][3] rotation matrix -** -** Notes: -** -** 1) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole, -** E = ecliptic pole of date, -** and P = CIP, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma = epE -** phib = phi = pE -** psi = psi = pEP -** eps = epsilon = EP -** -** 2) The matrix representing the combined effects of frame bias, -** precession and nutation is: -** -** NxPxB = R_1(-eps).R_3(-psi).R_1(phib).R_3(gamb) -** -** 3) The present function can construct three different matrices, -** depending on which angles are supplied as the arguments gamb, -** phib, psi and eps: -** -** o To obtain the nutation x precession x frame bias matrix, -** first generate the four precession angles known conventionally -** as gamma_bar, phi_bar, psi_bar and epsilon_A, then generate -** the nutation components Dpsi and Depsilon and add them to -** psi_bar and epsilon_A, and finally call the present function -** using those four angles as arguments. -** -** o To obtain the precession x frame bias matrix, generate the -** four precession angles and call the present function. -** -** o To obtain the frame bias matrix, generate the four precession -** angles for date J2000.0 and call the present function. -** -** The nutation-only and precession-only matrices can if necessary -** be obtained by combining these three appropriately. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRx rotate around X-axis -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Construct the matrix. */ - iauIr(r); - iauRz(gamb, r); - iauRx(phib, r); - iauRz(-psi, r); - iauRx(-eps, r); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/fw2xy.c b/deps/sofa/20231011/c/src/fw2xy.c deleted file mode 100644 index aa7d392..0000000 --- a/deps/sofa/20231011/c/src/fw2xy.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" - -void iauFw2xy(double gamb, double phib, double psi, double eps, - double *x, double *y) -/* -** - - - - - - - - - -** i a u F w 2 x y -** - - - - - - - - - -** -** CIP X,Y given Fukushima-Williams bias-precession-nutation angles. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psi double F-W angle psi (radians) -** eps double F-W angle epsilon (radians) -** -** Returned: -** x,y double CIP unit vector X,Y -** -** Notes: -** -** 1) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole -** E = ecliptic pole of date, -** and P = CIP, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma = epE -** phib = phi = pE -** psi = psi = pEP -** eps = epsilon = EP -** -** 2) The matrix representing the combined effects of frame bias, -** precession and nutation is: -** -** NxPxB = R_1(-epsA).R_3(-psi).R_1(phib).R_3(gamb) -** -** The returned values x,y are elements [2][0] and [2][1] of the -** matrix. Near J2000.0, they are essentially angles in radians. -** -** Called: -** iauFw2m F-W angles to r-matrix -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3]; - - -/* Form NxPxB matrix. */ - iauFw2m(gamb, phib, psi, eps, r); - -/* Extract CIP X,Y. */ - iauBpn2xy(r, x, y); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/g2icrs.c b/deps/sofa/20231011/c/src/g2icrs.c deleted file mode 100644 index 7020cf5..0000000 --- a/deps/sofa/20231011/c/src/g2icrs.c +++ /dev/null @@ -1,212 +0,0 @@ - -#include "sofa.h" - -void iauG2icrs ( double dl, double db, double *dr, double *dd ) -/* -** - - - - - - - - - - -** i a u G 2 i c r s -** - - - - - - - - - - -** -** Transformation from Galactic coordinates to ICRS. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dl double Galactic longitude (radians) -** db double Galactic latitude (radians) -** -** Returned: -** dr double ICRS right ascension (radians) -** dd double ICRS declination (radians) -** -** Notes: -** -** 1) The IAU 1958 system of Galactic coordinates was defined with -** respect to the now obsolete reference system FK4 B1950.0. When -** interpreting the system in a modern context, several factors have -** to be taken into account: -** -** . The inclusion in FK4 positions of the E-terms of aberration. -** -** . The distortion of the FK4 proper motion system by differential -** Galactic rotation. -** -** . The use of the B1950.0 equinox rather than the now-standard -** J2000.0. -** -** . The frame bias between ICRS and the J2000.0 mean place system. -** -** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation -** matrix that transforms directly between ICRS and Galactic -** coordinates with the above factors taken into account. The -** matrix is derived from three angles, namely the ICRS coordinates -** of the Galactic pole and the longitude of the ascending node of -** the Galactic equator on the ICRS equator. They are given in -** degrees to five decimal places and for canonical purposes are -** regarded as exact. In the Hipparcos Catalogue the matrix -** elements are given to 10 decimal places (about 20 microarcsec). -** In the present SOFA function the matrix elements have been -** recomputed from the canonical three angles and are given to 30 -** decimal places. -** -** 2) The inverse transformation is performed by the function iauIcrs2g. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** iauS2c spherical coordinates to unit vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauC2s p-vector to spherical -** -** Reference: -** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho -** catalogues. Astrometric and photometric star catalogues -** derived from the ESA Hipparcos Space Astrometry Mission. ESA -** Publications Division, Noordwijk, Netherlands. -** -** This revision: 2023 April 16 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double v1[3], v2[3]; - -/* -** L2,B2 system of Galactic coordinates in the form presented in the -** Hipparcos Catalogue. In degrees: -** -** P = 192.85948 right ascension of the Galactic north pole in ICRS -** Q = 27.12825 declination of the Galactic north pole in ICRS -** R = 32.93192 Galactic longitude of the ascending node of -** the Galactic equator on the ICRS equator -** -** ICRS to Galactic rotation matrix, obtained by computing -** R_3(-R) R_1(pi/2-Q) R_3(pi/2+P) to the full precision shown: -*/ - double r[3][3] = { { -0.054875560416215368492398900454, - -0.873437090234885048760383168409, - -0.483835015548713226831774175116 }, - { +0.494109427875583673525222371358, - -0.444829629960011178146614061616, - +0.746982244497218890527388004556 }, - { -0.867666149019004701181616534570, - -0.198076373431201528180486091412, - +0.455983776175066922272100478348 } }; - - -/* Spherical to Cartesian. */ - iauS2c(dl, db, v1); - -/* Galactic to ICRS. */ - iauTrxp(r, v1, v2); - -/* Cartesian to spherical. */ - iauC2s(v2, dr, dd); - -/* Express in conventional ranges. */ - *dr = iauAnp(*dr); - *dd = iauAnpm(*dd); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gc2gd.c b/deps/sofa/20231011/c/src/gc2gd.c deleted file mode 100644 index 95be9ef..0000000 --- a/deps/sofa/20231011/c/src/gc2gd.c +++ /dev/null @@ -1,187 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauGc2gd ( int n, double xyz[3], - double *elong, double *phi, double *height ) -/* -** - - - - - - - - - -** i a u G c 2 g d -** - - - - - - - - - -** -** Transform geocentric coordinates to geodetic using the specified -** reference ellipsoid. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical transformation. -** -** Given: -** n int ellipsoid identifier (Note 1) -** xyz double[3] geocentric vector (Note 2) -** -** Returned: -** elong double longitude (radians, east +ve, Note 3) -** phi double latitude (geodetic, radians, Note 3) -** height double height above ellipsoid (geodetic, Notes 2,3) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal identifier (Note 3) -** -2 = internal error (Note 3) -** -** Notes: -** -** 1) The identifier n is a number that specifies the choice of -** reference ellipsoid. The following are supported: -** -** n ellipsoid -** -** 1 WGS84 -** 2 GRS80 -** 3 WGS72 -** -** The n value has no significance outside the SOFA software. For -** convenience, symbols WGS84 etc. are defined in sofam.h. -** -** 2) The geocentric vector (xyz, given) and height (height, returned) -** are in meters. -** -** 3) An error status -1 means that the identifier n is illegal. An -** error status -2 is theoretically impossible. In all error cases, -** all three results are set to -1e9. -** -** 4) The inverse transformation is performed in the function iauGd2gc. -** -** Called: -** iauEform Earth reference ellipsoids -** iauGc2gde geocentric to geodetic transformation, general -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - double a, f; - - -/* Obtain reference ellipsoid parameters. */ - j = iauEform ( n, &a, &f ); - -/* If OK, transform x,y,z to longitude, geodetic latitude, height. */ - if ( j == 0 ) { - j = iauGc2gde ( a, f, xyz, elong, phi, height ); - if ( j < 0 ) j = -2; - } - -/* Deal with any errors. */ - if ( j < 0 ) { - *elong = -1e9; - *phi = -1e9; - *height = -1e9; - } - -/* Return the status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gc2gde.c b/deps/sofa/20231011/c/src/gc2gde.c deleted file mode 100644 index 587c749..0000000 --- a/deps/sofa/20231011/c/src/gc2gde.c +++ /dev/null @@ -1,252 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauGc2gde ( double a, double f, double xyz[3], - double *elong, double *phi, double *height ) -/* -** - - - - - - - - - - -** i a u G c 2 g d e -** - - - - - - - - - - -** -** Transform geocentric coordinates to geodetic for a reference -** ellipsoid of specified form. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** a double equatorial radius (Notes 2,4) -** f double flattening (Note 3) -** xyz double[3] geocentric vector (Note 4) -** -** Returned: -** elong double longitude (radians, east +ve) -** phi double latitude (geodetic, radians) -** height double height above ellipsoid (geodetic, Note 4) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal f -** -2 = illegal a -** -** Notes: -** -** 1) This function is based on the GCONV2H Fortran subroutine by -** Toshio Fukushima (see reference). -** -** 2) The equatorial radius, a, can be in any units, but meters is -** the conventional choice. -** -** 3) The flattening, f, is (for the Earth) a value around 0.00335, -** i.e. around 1/298. -** -** 4) The equatorial radius, a, and the geocentric vector, xyz, -** must be given in the same units, and determine the units of -** the returned height, height. -** -** 5) If an error occurs (status < 0), elong, phi and height are -** unchanged. -** -** 6) The inverse transformation is performed in the function -** iauGd2gce. -** -** 7) The transformation for a standard ellipsoid (such as WGS84) can -** more conveniently be performed by calling iauGc2gd, which uses a -** numerical code to identify the required A and F values. -** -** Reference: -** -** Fukushima, T., "Transformation from Cartesian to geodetic -** coordinates accelerated by Halley's method", J.Geodesy (2006) -** 79: 689-693 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double aeps2, e2, e4t, ec2, ec, b, x, y, z, p2, absz, p, s0, pn, zc, - c0, c02, c03, s02, s03, a02, a0, a03, d0, f0, b0, s1, - cc, s12, cc2; - - -/* ------------- */ -/* Preliminaries */ -/* ------------- */ - -/* Validate ellipsoid parameters. */ - if ( f < 0.0 || f >= 1.0 ) return -1; - if ( a <= 0.0 ) return -2; - -/* Functions of ellipsoid parameters (with further validation of f). */ - aeps2 = a*a * 1e-32; - e2 = (2.0 - f) * f; - e4t = e2*e2 * 1.5; - ec2 = 1.0 - e2; - if ( ec2 <= 0.0 ) return -1; - ec = sqrt(ec2); - b = a * ec; - -/* Cartesian components. */ - x = xyz[0]; - y = xyz[1]; - z = xyz[2]; - -/* Distance from polar axis squared. */ - p2 = x*x + y*y; - -/* Longitude. */ - *elong = p2 > 0.0 ? atan2(y, x) : 0.0; - -/* Unsigned z-coordinate. */ - absz = fabs(z); - -/* Proceed unless polar case. */ - if ( p2 > aeps2 ) { - - /* Distance from polar axis. */ - p = sqrt(p2); - - /* Normalization. */ - s0 = absz / a; - pn = p / a; - zc = ec * s0; - - /* Prepare Newton correction factors. */ - c0 = ec * pn; - c02 = c0 * c0; - c03 = c02 * c0; - s02 = s0 * s0; - s03 = s02 * s0; - a02 = c02 + s02; - a0 = sqrt(a02); - a03 = a02 * a0; - d0 = zc*a03 + e2*s03; - f0 = pn*a03 - e2*c03; - - /* Prepare Halley correction factor. */ - b0 = e4t * s02 * c02 * pn * (a0 - ec); - s1 = d0*f0 - b0*s0; - cc = ec * (f0*f0 - b0*c0); - - /* Evaluate latitude and height. */ - *phi = atan(s1/cc); - s12 = s1 * s1; - cc2 = cc * cc; - *height = (p*cc + absz*s1 - a * sqrt(ec2*s12 + cc2)) / - sqrt(s12 + cc2); - } else { - - /* Exception: pole. */ - *phi = DPI / 2.0; - *height = absz - b; - } - -/* Restore sign of latitude. */ - if ( z < 0 ) *phi = -*phi; - -/* OK status. */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gd2gc.c b/deps/sofa/20231011/c/src/gd2gc.c deleted file mode 100644 index 69d08cc..0000000 --- a/deps/sofa/20231011/c/src/gd2gc.c +++ /dev/null @@ -1,186 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauGd2gc ( int n, double elong, double phi, double height, - double xyz[3] ) -/* -** - - - - - - - - - -** i a u G d 2 g c -** - - - - - - - - - -** -** Transform geodetic coordinates to geocentric using the specified -** reference ellipsoid. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical transformation. -** -** Given: -** n int ellipsoid identifier (Note 1) -** elong double longitude (radians, east +ve, Note 3) -** phi double latitude (geodetic, radians, Note 3) -** height double height above ellipsoid (geodetic, Notes 2,3) -** -** Returned: -** xyz double[3] geocentric vector (Note 2) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal identifier (Note 3) -** -2 = illegal case (Note 3) -** -** Notes: -** -** 1) The identifier n is a number that specifies the choice of -** reference ellipsoid. The following are supported: -** -** n ellipsoid -** -** 1 WGS84 -** 2 GRS80 -** 3 WGS72 -** -** The n value has no significance outside the SOFA software. For -** convenience, symbols WGS84 etc. are defined in sofam.h. -** -** 2) The height (height, given) and the geocentric vector (xyz, -** returned) are in meters. -** -** 3) No validation is performed on the arguments elong, phi and -** height. An error status -1 means that the identifier n is -** illegal. An error status -2 protects against cases that would -** lead to arithmetic exceptions. In all error cases, xyz is set -** to zeros. -** -** 4) The inverse transformation is performed in the function iauGc2gd. -** -** Called: -** iauEform Earth reference ellipsoids -** iauGd2gce geodetic to geocentric transformation, general -** iauZp zero p-vector -** -** This revision: 2023 March 9 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j; - double a, f; - - -/* Obtain reference ellipsoid parameters. */ - j = iauEform ( n, &a, &f ); - -/* If OK, transform longitude, geodetic latitude, height to x,y,z. */ - if ( j == 0 ) { - j = iauGd2gce ( a, f, elong, phi, height, xyz ); - if ( j != 0 ) j = -2; - } - -/* Deal with any errors. */ - if ( j != 0 ) iauZp ( xyz ); - -/* Return the status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gd2gce.c b/deps/sofa/20231011/c/src/gd2gce.c deleted file mode 100644 index 7173fbf..0000000 --- a/deps/sofa/20231011/c/src/gd2gce.c +++ /dev/null @@ -1,190 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauGd2gce ( double a, double f, double elong, double phi, - double height, double xyz[3] ) -/* -** - - - - - - - - - - -** i a u G d 2 g c e -** - - - - - - - - - - -** -** Transform geodetic coordinates to geocentric for a reference -** ellipsoid of specified form. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** a double equatorial radius (Notes 1,3,4) -** f double flattening (Notes 2,4) -** elong double longitude (radians, east +ve, Note 4) -** phi double latitude (geodetic, radians, Note 4) -** height double height above ellipsoid (geodetic, Notes 3,4) -** -** Returned: -** xyz double[3] geocentric vector (Note 3) -** -** Returned (function value): -** int status: 0 = OK -** -1 = illegal case (Note 4) -** Notes: -** -** 1) The equatorial radius, a, can be in any units, but meters is -** the conventional choice. -** -** 2) The flattening, f, is (for the Earth) a value around 0.00335, -** i.e. around 1/298. -** -** 3) The equatorial radius, a, and the height, height, must be -** given in the same units, and determine the units of the -** returned geocentric vector, xyz. -** -** 4) No validation is performed on individual arguments. The error -** status -1 protects against (unrealistic) cases that would lead -** to arithmetic exceptions. If an error occurs, xyz is unchanged. -** -** 5) The inverse transformation is performed in the function -** iauGc2gde. -** -** 6) The transformation for a standard ellipsoid (such as WGS84) can -** more conveniently be performed by calling iauGd2gc, which uses a -** numerical code to identify the required a and f values. -** -** References: -** -** Green, R.M., Spherical Astronomy, Cambridge University Press, -** (1985) Section 4.5, p96. -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 4.22, p202. -** -** This revision: 2023 March 10 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double sp, cp, w, d, ac, as, r; - - -/* Functions of geodetic latitude. */ - sp = sin(phi); - cp = cos(phi); - w = 1.0 - f; - w = w * w; - d = cp*cp + w*sp*sp; - if ( d <= 0.0 ) return -1; - ac = a / sqrt(d); - as = w * ac; - -/* Geocentric vector. */ - r = (ac + height) * cp; - xyz[0] = r * cos(elong); - xyz[1] = r * sin(elong); - xyz[2] = (as + height) * sp; - -/* Success. */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gmst00.c b/deps/sofa/20231011/c/src/gmst00.c deleted file mode 100644 index fc3db22..0000000 --- a/deps/sofa/20231011/c/src/gmst00.c +++ /dev/null @@ -1,198 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauGmst00(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G m s t 0 0 -** - - - - - - - - - - -** -** Greenwich mean sidereal time (model consistent with IAU 2000 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich mean sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** Part A Part B -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession. If UT1 is used for -** both purposes, errors of order 100 microarcseconds result. -** -** 3) This GMST is compatible with the IAU 2000 resolutions and must be -** used only in conjunction with other IAU 2000 compatible -** components such as precession-nutation and equation of the -** equinoxes. -** -** 4) The result is returned in the range 0 to 2pi. -** -** 5) The algorithm is from Capitaine et al. (2003) and IERS -** Conventions 2003. -** -** Called: -** iauEra00 Earth rotation angle, IAU 2000 -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, gmst; - - -/* TT Julian centuries since J2000.0. */ - t = ((tta - DJ00) + ttb) / DJC; - -/* Greenwich Mean Sidereal Time, IAU 2000. */ - gmst = iauAnp(iauEra00(uta, utb) + - ( 0.014506 + - ( 4612.15739966 + - ( 1.39667721 + - ( -0.00009344 + - ( 0.00001882 ) - * t) * t) * t) * t) * DAS2R); - - return gmst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gmst06.c b/deps/sofa/20231011/c/src/gmst06.c deleted file mode 100644 index 79277a2..0000000 --- a/deps/sofa/20231011/c/src/gmst06.c +++ /dev/null @@ -1,189 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauGmst06(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G m s t 0 6 -** - - - - - - - - - - -** -** Greenwich mean sidereal time (consistent with IAU 2006 precession). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich mean sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD=2450123.7 could be expressed in -** any of these ways, among others: -** -** Part A Part B -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** rotation angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession. If UT1 is used for -** both purposes, errors of order 100 microarcseconds result. -** -** 3) This GMST is compatible with the IAU 2006 precession and must not -** be used with other precession models. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauEra00 Earth rotation angle, IAU 2000 -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2005, -** Astron.Astrophys. 432, 355 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, gmst; - - -/* TT Julian centuries since J2000.0. */ - t = ((tta - DJ00) + ttb) / DJC; - -/* Greenwich mean sidereal time, IAU 2006. */ - gmst = iauAnp(iauEra00(uta, utb) + - ( 0.014506 + - ( 4612.156534 + - ( 1.3915817 + - ( -0.00000044 + - ( -0.000029956 + - ( -0.0000000368 ) - * t) * t) * t) * t) * t) * DAS2R); - - return gmst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gmst82.c b/deps/sofa/20231011/c/src/gmst82.c deleted file mode 100644 index b18fde9..0000000 --- a/deps/sofa/20231011/c/src/gmst82.c +++ /dev/null @@ -1,203 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauGmst82(double dj1, double dj2) -/* -** - - - - - - - - - - -** i a u G m s t 8 2 -** - - - - - - - - - - -** -** Universal Time to Greenwich mean sidereal time (IAU 1982 model). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** dj1,dj2 double UT1 Julian Date (see note) -** -** Returned (function value): -** double Greenwich mean sidereal time (radians) -** -** Notes: -** -** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any -** convenient way between the arguments dj1 and dj2. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, -** among others: -** -** dj1 dj2 -** -** 2450123.7 0 (JD method) -** 2451545 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. The date & time method is -** best matched to the algorithm used: maximum accuracy (or, at -** least, minimum noise) is delivered when the dj1 argument is for -** 0hrs UT1 on the day in question and the dj2 argument lies in the -** range 0 to 1, or vice versa. -** -** 2) The algorithm is based on the IAU 1982 expression. This is -** always described as giving the GMST at 0 hours UT1. In fact, it -** gives the difference between the GMST and the UT, the steady -** 4-minutes-per-day drawing-ahead of ST with respect to UT. When -** whole days are ignored, the expression happens to equal the GMST -** at 0 hours UT1 each day. -** -** 3) In this function, the entire UT1 (the sum of the two arguments -** dj1 and dj2) is used directly as the argument for the standard -** formula, the constant term of which is adjusted by 12 hours to -** take account of the noon phasing of Julian Date. The UT1 is then -** added, but omitting whole days to conserve accuracy. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Transactions of the International Astronomical Union, -** XVIII B, 67 (1983). -** -** Aoki et al., Astron.Astrophys., 105, 359-361 (1982). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Coefficients of IAU 1982 GMST-UT1 model */ - double A = 24110.54841 - DAYSEC / 2.0; - double B = 8640184.812866; - double C = 0.093104; - double D = -6.2e-6; - -/* The first constant, A, has to be adjusted by 12 hours because the */ -/* UT1 is supplied as a Julian date, which begins at noon. */ - - double d1, d2, t, f, gmst; - - -/* Julian centuries since fundamental epoch. */ - if (dj1 < dj2) { - d1 = dj1; - d2 = dj2; - } else { - d1 = dj2; - d2 = dj1; - } - t = (d1 + (d2 - DJ00)) / DJC; - -/* Fractional part of JD(UT1), in seconds. */ - f = DAYSEC * (fmod(d1, 1.0) + fmod(d2, 1.0)); - -/* GMST at this UT1. */ - gmst = iauAnp(DS2R * ((A + (B + (C + D * t) * t) * t) + f)); - - return gmst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gst00a.c b/deps/sofa/20231011/c/src/gst00a.c deleted file mode 100644 index 2983926..0000000 --- a/deps/sofa/20231011/c/src/gst00a.c +++ /dev/null @@ -1,190 +0,0 @@ -#include "sofa.h" - -double iauGst00a(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G s t 0 0 a -** - - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 2000 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession-nutation. If UT1 is -** used for both purposes, errors of order 100 microarcseconds -** result. -** -** 3) This GAST is compatible with the IAU 2000 resolutions and must be -** used only in conjunction with other IAU 2000 compatible -** components such as precession-nutation. -** -** 4) The result is returned in the range 0 to 2pi. -** -** 5) The algorithm is from Capitaine et al. (2003) and IERS -** Conventions 2003. -** -** Called: -** iauGmst00 Greenwich mean sidereal time, IAU 2000 -** iauEe00a equation of the equinoxes, IAU 2000A -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gmst00, ee00a, gst; - - - gmst00 = iauGmst00(uta, utb, tta, ttb); - ee00a = iauEe00a(tta, ttb); - gst = iauAnp(gmst00 + ee00a); - - return gst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gst00b.c b/deps/sofa/20231011/c/src/gst00b.c deleted file mode 100644 index a9af8ef..0000000 --- a/deps/sofa/20231011/c/src/gst00b.c +++ /dev/null @@ -1,198 +0,0 @@ -#include "sofa.h" - -double iauGst00b(double uta, double utb) -/* -** - - - - - - - - - - -** i a u G s t 0 0 b -** - - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 2000 -** resolutions but using the truncated nutation model IAU 2000B). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 date uta+utb is a Julian Date, apportioned in any -** convenient way between the argument pair. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, -** among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) The result is compatible with the IAU 2000 resolutions, except -** that accuracy has been compromised for the sake of speed and -** convenience in two respects: -** -** . UT is used instead of TDB (or TT) to compute the precession -** component of GMST and the equation of the equinoxes. This -** results in errors of order 0.1 mas at present. -** -** . The IAU 2000B abridged nutation model (McCarthy & Luzum, 2003) -** is used, introducing errors of up to 1 mas. -** -** 3) This GAST is compatible with the IAU 2000 resolutions and must be -** used only in conjunction with other IAU 2000 compatible -** components such as precession-nutation. -** -** 4) The result is returned in the range 0 to 2pi. -** -** 5) The algorithm is from Capitaine et al. (2003) and IERS -** Conventions 2003. -** -** Called: -** iauGmst00 Greenwich mean sidereal time, IAU 2000 -** iauEe00b equation of the equinoxes, IAU 2000B -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to -** implement the IAU 2000 definition of UT1", Astronomy & -** Astrophysics, 406, 1135-1149 (2003) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Celestial Mechanics & -** Dynamical Astronomy, 85, 37-49 (2003) -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gmst00, ee00b, gst; - - - gmst00 = iauGmst00(uta, utb, uta, utb); - ee00b = iauEe00b(uta, utb); - gst = iauAnp(gmst00 + ee00b); - - return gst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gst06.c b/deps/sofa/20231011/c/src/gst06.c deleted file mode 100644 index 130b637..0000000 --- a/deps/sofa/20231011/c/src/gst06.c +++ /dev/null @@ -1,192 +0,0 @@ -#include "sofa.h" - -double iauGst06(double uta, double utb, double tta, double ttb, - double rnpb[3][3]) -/* -** - - - - - - - - - -** i a u G s t 0 6 -** - - - - - - - - - -** -** Greenwich apparent sidereal time, IAU 2006, given the NPB matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** rnpb double[3][3] nutation x precession x bias matrix -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** rotation angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession-nutation. If UT1 is -** used for both purposes, errors of order 100 microarcseconds -** result. -** -** 3) Although the function uses the IAU 2006 series for s+XY/2, it is -** otherwise independent of the precession-nutation model and can in -** practice be used with any equinox-based NPB matrix. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** iauAnp normalize angle into range 0 to 2pi -** iauEra00 Earth rotation angle, IAU 2000 -** iauEors equation of the origins, given NPB matrix and s -** -** Reference: -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, s, era, eors, gst; - - -/* Extract CIP coordinates. */ - iauBpn2xy(rnpb, &x, &y); - -/* The CIO locator, s. */ - s = iauS06(tta, ttb, x, y); - -/* Greenwich apparent sidereal time. */ - era = iauEra00(uta, utb); - eors = iauEors(rnpb, s); - gst = iauAnp(era - eors); - - return gst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gst06a.c b/deps/sofa/20231011/c/src/gst06a.c deleted file mode 100644 index ae41df3..0000000 --- a/deps/sofa/20231011/c/src/gst06a.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "sofa.h" - -double iauGst06a(double uta, double utb, double tta, double ttb) -/* -** - - - - - - - - - - -** i a u G s t 0 6 a -** - - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 2000 and 2006 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both -** Julian Dates, apportioned in any convenient way between the -** argument pairs. For example, JD(UT1)=2450123.7 could be -** expressed in any of these ways, among others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable (in the case of UT; the TT is not at all critical -** in this respect). The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** rotation angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation -** and TT to predict the effects of precession-nutation. If UT1 is -** used for both purposes, errors of order 100 microarcseconds -** result. -** -** 3) This GAST is compatible with the IAU 2000/2006 resolutions and -** must be used only in conjunction with IAU 2006 precession and -** IAU 2000A nutation. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauGst06 Greenwich apparent ST, IAU 2006, given NPB matrix -** -** Reference: -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rnpb[3][3], gst; - - -/* Classical nutation x precession x bias matrix, IAU 2000A. */ - iauPnm06a(tta, ttb, rnpb); - -/* Greenwich apparent sidereal time. */ - gst = iauGst06(uta, utb, tta, ttb, rnpb); - - return gst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/gst94.c b/deps/sofa/20231011/c/src/gst94.c deleted file mode 100644 index 0fd2256..0000000 --- a/deps/sofa/20231011/c/src/gst94.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "sofa.h" - -double iauGst94(double uta, double utb) -/* -** - - - - - - - - - -** i a u G s t 9 4 -** - - - - - - - - - -** -** Greenwich apparent sidereal time (consistent with IAU 1982/94 -** resolutions). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) -** -** Returned (function value): -** double Greenwich apparent sidereal time (radians) -** -** Notes: -** -** 1) The UT1 date uta+utb is a Julian Date, apportioned in any -** convenient way between the argument pair. For example, -** JD(UT1)=2450123.7 could be expressed in any of these ways, among -** others: -** -** uta utb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 and MJD methods are good compromises -** between resolution and convenience. For UT, the date & time -** method is best matched to the algorithm that is used by the Earth -** Rotation Angle function, called internally: maximum precision is -** delivered when the uta argument is for 0hrs UT1 on the day in -** question and the utb argument lies in the range 0 to 1, or vice -** versa. -** -** 2) The result is compatible with the IAU 1982 and 1994 resolutions, -** except that accuracy has been compromised for the sake of -** convenience in that UT is used instead of TDB (or TT) to compute -** the equation of the equinoxes. -** -** 3) This GAST must be used only in conjunction with contemporaneous -** IAU standards such as 1976 precession, 1980 obliquity and 1982 -** nutation. It is not compatible with the IAU 2000 resolutions. -** -** 4) The result is returned in the range 0 to 2pi. -** -** Called: -** iauGmst82 Greenwich mean sidereal time, IAU 1982 -** iauEqeq94 equation of the equinoxes, IAU 1994 -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** IAU Resolution C7, Recommendation 3 (1994) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gmst82, eqeq94, gst; - - - gmst82 = iauGmst82(uta, utb); - eqeq94 = iauEqeq94(uta, utb); - gst = iauAnp(gmst82 + eqeq94); - - return gst; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/h2fk5.c b/deps/sofa/20231011/c/src/h2fk5.c deleted file mode 100644 index 1b97133..0000000 --- a/deps/sofa/20231011/c/src/h2fk5.c +++ /dev/null @@ -1,198 +0,0 @@ -#include "sofa.h" - -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) -/* -** - - - - - - - - - -** i a u H 2 f k 5 -** - - - - - - - - - -** -** Transform Hipparcos star data into the FK5 (J2000.0) system. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (all Hipparcos, epoch J2000.0): -** rh double RA (radians) -** dh double Dec (radians) -** drh double proper motion in RA (dRA/dt, rad/Jyear) -** ddh double proper motion in Dec (dDec/dt, rad/Jyear) -** pxh double parallax (arcsec) -** rvh double radial velocity (km/s, positive = receding) -** -** Returned (all FK5, equinox J2000.0, epoch J2000.0): -** r5 double RA (radians) -** d5 double Dec (radians) -** dr5 double proper motion in RA (dRA/dt, rad/Jyear) -** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) -** px5 double parallax (arcsec) -** rv5 double radial velocity (km/s, positive = receding) -** -** Notes: -** -** 1) This function transforms Hipparcos star positions and proper -** motions into FK5 J2000.0. -** -** 2) The proper motions in RA are dRA/dt rather than -** cos(Dec)*dRA/dt, and are per year rather than per century. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure -** rotation and spin; zonal errors in the FK5 catalog are not -** taken into account. -** -** 4) See also iauFk52h, iauFk5hz, iauHfk5z. -** -** Called: -** iauStarpv star catalog data to space motion pv-vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauRv2m r-vector to r-matrix -** iauRxp product of r-matrix and p-vector -** iauTrxp product of transpose of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPvstar space motion pv-vector to star catalog data -** -** Reference: -** -** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int i; - double pvh[2][3], r5h[3][3], s5h[3], sh[3], wxp[3], vv[3], pv5[2][3]; - - -/* Hipparcos barycentric position/velocity pv-vector (normalized). */ - iauStarpv(rh, dh, drh, ddh, pxh, rvh, pvh); - -/* FK5 to Hipparcos orientation matrix and spin vector. */ - iauFk5hip(r5h, s5h); - -/* Make spin units per day instead of per year. */ - for ( i = 0; i < 3; s5h[i++] /= 365.25 ); - -/* Orient the spin into the Hipparcos system. */ - iauRxp(r5h, s5h, sh); - -/* De-orient the Hipparcos position into the FK5 system. */ - iauTrxp(r5h, pvh[0], pv5[0]); - -/* Apply spin to the position giving an extra space motion component. */ - iauPxp(pvh[0], sh, wxp); - -/* Subtract this component from the Hipparcos space motion. */ - iauPmp(pvh[1], wxp, vv); - -/* De-orient the Hipparcos space motion into the FK5 system. */ - iauTrxp(r5h, vv, pv5[1]); - -/* FK5 pv-vector to spherical. */ - iauPvstar(pv5, r5, d5, dr5, dd5, px5, rv5); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/hd2ae.c b/deps/sofa/20231011/c/src/hd2ae.c deleted file mode 100644 index 60443e1..0000000 --- a/deps/sofa/20231011/c/src/hd2ae.c +++ /dev/null @@ -1,191 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauHd2ae (double ha, double dec, double phi, - double *az, double *el) -/* -** - - - - - - - - - -** i a u H d 2 a e -** - - - - - - - - - -** -** Equatorial to horizon coordinates: transform hour angle and -** declination to azimuth and altitude. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ha double hour angle (local) -** dec double declination -** phi double site latitude -** -** Returned: -** *az double azimuth -** *el double altitude (informally, elevation) -** -** Notes: -** -** 1) All the arguments are angles in radians. -** -** 2) Azimuth is returned in the range 0-2pi; north is zero, and east -** is +pi/2. Altitude is returned in the range +/- pi/2. -** -** 3) The latitude phi is pi/2 minus the angle between the Earth's -** rotation axis and the adopted zenith. In many applications it -** will be sufficient to use the published geodetic latitude of the -** site. In very precise (sub-arcsecond) applications, phi can be -** corrected for polar motion. -** -** 4) The returned azimuth az is with respect to the rotational north -** pole, as opposed to the ITRS pole, and for sub-arcsecond -** accuracy will need to be adjusted for polar motion if it is to -** be with respect to north on a map of the Earth's surface. -** -** 5) Should the user wish to work with respect to the astronomical -** zenith rather than the geodetic zenith, phi will need to be -** adjusted for deflection of the vertical (often tens of -** arcseconds), and the zero point of the hour angle ha will also -** be affected. -** -** 6) The transformation is the same as Vh = Rz(pi)*Ry(pi/2-phi)*Ve, -** where Vh and Ve are lefthanded unit vectors in the (az,el) and -** (ha,dec) systems respectively and Ry and Rz are rotations about -** first the y-axis and then the z-axis. (n.b. Rz(pi) simply -** reverses the signs of the x and y components.) For efficiency, -** the algorithm is written out rather than calling other utility -** functions. For applications that require even greater -** efficiency, additional savings are possible if constant terms -** such as functions of latitude are computed once and for all. -** -** 7) Again for efficiency, no range checking of arguments is carried -** out. -** -** Last revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double sh, ch, sd, cd, sp, cp, x, y, z, r, a; - - -/* Useful trig functions. */ - sh = sin(ha); - ch = cos(ha); - sd = sin(dec); - cd = cos(dec); - sp = sin(phi); - cp = cos(phi); - -/* Az,Alt unit vector. */ - x = - ch*cd*sp + sd*cp; - y = - sh*cd; - z = ch*cd*cp + sd*sp; - -/* To spherical. */ - r = sqrt(x*x + y*y); - a = (r != 0.0) ? atan2(y,x) : 0.0; - *az = (a < 0.0) ? a+D2PI : a; - *el = atan2(z,r); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/hd2pa.c b/deps/sofa/20231011/c/src/hd2pa.c deleted file mode 100644 index 7f512b6..0000000 --- a/deps/sofa/20231011/c/src/hd2pa.c +++ /dev/null @@ -1,164 +0,0 @@ -#include "sofa.h" - -double iauHd2pa (double ha, double dec, double phi) -/* -** - - - - - - - - - -** i a u H d 2 p a -** - - - - - - - - - -** -** Parallactic angle for a given hour angle and declination. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ha double hour angle -** dec double declination -** phi double site latitude -** -** Returned (function value): -** double parallactic angle -** -** Notes: -** -** 1) All the arguments are angles in radians. -** -** 2) The parallactic angle at a point in the sky is the position -** angle of the vertical, i.e. the angle between the directions to -** the north celestial pole and to the zenith respectively. -** -** 3) The result is returned in the range -pi to +pi. -** -** 4) At the pole itself a zero result is returned. -** -** 5) The latitude phi is pi/2 minus the angle between the Earth's -** rotation axis and the adopted zenith. In many applications it -** will be sufficient to use the published geodetic latitude of the -** site. In very precise (sub-arcsecond) applications, phi can be -** corrected for polar motion. -** -** 6) Should the user wish to work with respect to the astronomical -** zenith rather than the geodetic zenith, phi will need to be -** adjusted for deflection of the vertical (often tens of -** arcseconds), and the zero point of the hour angle ha will also -** be affected. -** -** Reference: -** Smart, W.M., "Spherical Astronomy", Cambridge University Press, -** 6th edition (Green, 1977), p49. -** -** Last revision: 2017 September 12 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double cp, cqsz, sqsz; - - - cp = cos(phi); - sqsz = cp*sin(ha); - cqsz = sin(phi)*cos(dec) - cp*sin(dec)*cos(ha); - return ( ( sqsz != 0.0 || cqsz != 0.0 ) ? atan2(sqsz,cqsz) : 0.0 ); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/hfk5z.c b/deps/sofa/20231011/c/src/hfk5z.c deleted file mode 100644 index dd42946..0000000 --- a/deps/sofa/20231011/c/src/hfk5z.c +++ /dev/null @@ -1,226 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauHfk5z(double rh, double dh, double date1, double date2, - double *r5, double *d5, double *dr5, double *dd5) -/* -** - - - - - - - - - -** i a u H f k 5 z -** - - - - - - - - - -** -** Transform a Hipparcos star position into FK5 J2000.0, assuming -** zero Hipparcos proper motion. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rh double Hipparcos RA (radians) -** dh double Hipparcos Dec (radians) -** date1,date2 double TDB date (Note 1) -** -** Returned (all FK5, equinox J2000.0, date date1+date2): -** r5 double RA (radians) -** d5 double Dec (radians) -** dr5 double RA proper motion (rad/year, Note 4) -** dd5 double Dec proper motion (rad/year, Note 4) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 3) The FK5 to Hipparcos transformation is modeled as a pure rotation -** and spin; zonal errors in the FK5 catalog are not taken into -** account. -** -** 4) It was the intention that Hipparcos should be a close -** approximation to an inertial frame, so that distant objects have -** zero proper motion; such objects have (in general) non-zero -** proper motion in FK5, and this function returns those fictitious -** proper motions. -** -** 5) The position returned by this function is in the FK5 J2000.0 -** reference system but at date date1+date2. -** -** 6) See also iauFk52h, iauH2fk5, iauFk5hz. -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauFk5hip FK5 to Hipparcos rotation and spin -** iauRxp product of r-matrix and p-vector -** iauSxp multiply p-vector by scalar -** iauRxr product of two r-matrices -** iauTrxp product of transpose of r-matrix and p-vector -** iauPxp vector product of two p-vectors -** iauPv2s pv-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. -** -** This revision: 2023 March 7 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, ph[3], r5h[3][3], s5h[3], sh[3], vst[3], - rst[3][3], r5ht[3][3], pv5e[2][3], vv[3], - w, r, v; - - -/* Time interval from fundamental epoch J2000.0 to given date (JY). */ - t = ((date1 - DJ00) + date2) / DJY; - -/* Hipparcos barycentric position vector (normalized). */ - iauS2c(rh, dh, ph); - -/* FK5 to Hipparcos orientation matrix and spin vector. */ - iauFk5hip(r5h, s5h); - -/* Rotate the spin into the Hipparcos system. */ - iauRxp(r5h, s5h, sh); - -/* Accumulated Hipparcos wrt FK5 spin over that interval. */ - iauSxp(t, s5h, vst); - -/* Express the accumulated spin as a rotation matrix. */ - iauRv2m(vst, rst); - -/* Rotation matrix: accumulated spin, then FK5 to Hipparcos. */ - iauRxr(r5h, rst, r5ht); - -/* De-orient & de-spin the Hipparcos position into FK5 J2000.0. */ - iauTrxp(r5ht, ph, pv5e[0]); - -/* Apply spin to the position giving a space motion. */ - iauPxp(sh, ph, vv); - -/* De-orient & de-spin the Hipparcos space motion into FK5 J2000.0. */ - iauTrxp(r5ht, vv, pv5e[1]); - -/* FK5 position/velocity pv-vector to spherical. */ - iauPv2s(pv5e, &w, d5, &r, dr5, dd5, &v); - *r5 = iauAnp(w); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/icrs2g.c b/deps/sofa/20231011/c/src/icrs2g.c deleted file mode 100644 index 4618af4..0000000 --- a/deps/sofa/20231011/c/src/icrs2g.c +++ /dev/null @@ -1,211 +0,0 @@ -#include "sofa.h" - -void iauIcrs2g ( double dr, double dd, double *dl, double *db ) -/* -** - - - - - - - - - - -** i a u I c r s 2 g -** - - - - - - - - - - -** -** Transformation from ICRS to Galactic coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dr double ICRS right ascension (radians) -** dd double ICRS declination (radians) -** -** Returned: -** dl double Galactic longitude (radians) -** db double Galactic latitude (radians) -** -** Notes: -** -** 1) The IAU 1958 system of Galactic coordinates was defined with -** respect to the now obsolete reference system FK4 B1950.0. When -** interpreting the system in a modern context, several factors have -** to be taken into account: -** -** . The inclusion in FK4 positions of the E-terms of aberration. -** -** . The distortion of the FK4 proper motion system by differential -** Galactic rotation. -** -** . The use of the B1950.0 equinox rather than the now-standard -** J2000.0. -** -** . The frame bias between ICRS and the J2000.0 mean place system. -** -** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation -** matrix that transforms directly between ICRS and Galactic -** coordinates with the above factors taken into account. The -** matrix is derived from three angles, namely the ICRS coordinates -** of the Galactic pole and the longitude of the ascending node of -** the Galactic equator on the ICRS equator. They are given in -** degrees to five decimal places and for canonical purposes are -** regarded as exact. In the Hipparcos Catalogue the matrix -** elements are given to 10 decimal places (about 20 microarcsec). -** In the present SOFA function the matrix elements have been -** recomputed from the canonical three angles and are given to 30 -** decimal places. -** -** 2) The inverse transformation is performed by the function iauG2icrs. -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** iauAnpm normalize angle into range +/- pi -** iauS2c spherical coordinates to unit vector -** iauRxp product of r-matrix and p-vector -** iauC2s p-vector to spherical -** -** Reference: -** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho -** catalogues. Astrometric and photometric star catalogues -** derived from the ESA Hipparcos Space Astrometry Mission. ESA -** Publications Division, Noordwijk, Netherlands. -** -** This revision: 2023 April 16 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double v1[3], v2[3]; - -/* -** L2,B2 system of Galactic coordinates in the form presented in the -** Hipparcos Catalogue. In degrees: -** -** P = 192.85948 right ascension of the Galactic north pole in ICRS -** Q = 27.12825 declination of the Galactic north pole in ICRS -** R = 32.93192 Galactic longitude of the ascending node of -** the Galactic equator on the ICRS equator -** -** ICRS to Galactic rotation matrix, obtained by computing -** R_3(-R) R_1(pi/2-Q) R_3(pi/2+P) to the full precision shown: -*/ - double r[3][3] = { { -0.054875560416215368492398900454, - -0.873437090234885048760383168409, - -0.483835015548713226831774175116 }, - { +0.494109427875583673525222371358, - -0.444829629960011178146614061616, - +0.746982244497218890527388004556 }, - { -0.867666149019004701181616534570, - -0.198076373431201528180486091412, - +0.455983776175066922272100478348 } }; - - -/* Spherical to Cartesian. */ - iauS2c(dr, dd, v1); - -/* ICRS to Galactic. */ - iauRxp(r, v1, v2); - -/* Cartesian to spherical. */ - iauC2s(v2, dl, db); - -/* Express in conventional ranges. */ - *dl = iauAnp(*dl); - *db = iauAnpm(*db); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ir.c b/deps/sofa/20231011/c/src/ir.c deleted file mode 100644 index 37c1a12..0000000 --- a/deps/sofa/20231011/c/src/ir.c +++ /dev/null @@ -1,133 +0,0 @@ -#include "sofa.h" - -void iauIr(double r[3][3]) -/* -** - - - - - - -** i a u I r -** - - - - - - -** -** Initialize an r-matrix to the identity matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Returned: -** r double[3][3] r-matrix -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - r[0][0] = 1.0; - r[0][1] = 0.0; - r[0][2] = 0.0; - r[1][0] = 0.0; - r[1][1] = 1.0; - r[1][2] = 0.0; - r[2][0] = 0.0; - r[2][1] = 0.0; - r[2][2] = 1.0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/jd2cal.c b/deps/sofa/20231011/c/src/jd2cal.c deleted file mode 100644 index 036c3cd..0000000 --- a/deps/sofa/20231011/c/src/jd2cal.c +++ /dev/null @@ -1,251 +0,0 @@ -#include "sofa.h" -#include "sofam.h" -#include - -int iauJd2cal(double dj1, double dj2, - int *iy, int *im, int *id, double *fd) -/* -** - - - - - - - - - - -** i a u J d 2 c a l -** - - - - - - - - - - -** -** Julian Date to Gregorian year, month, day, and fraction of a day. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** dj1,dj2 double Julian Date (Notes 1, 2) -** -** Returned (arguments): -** iy int year -** im int month -** id int day -** fd double fraction of day -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = unacceptable date (Note 1) -** -** Notes: -** -** 1) The earliest valid date is -68569.5 (-4900 March 1). The -** largest value accepted is 1e9. -** -** 2) The Julian Date is apportioned in any convenient way between -** the arguments dj1 and dj2. For example, JD=2450123.7 could -** be expressed in any of these ways, among others: -** -** dj1 dj2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** Separating integer and fraction uses the "compensated summation" -** algorithm of Kahan-Neumaier to preserve as much precision as -** possible irrespective of the jd1+jd2 apportionment. -** -** 3) In early eras the conversion is from the "proleptic Gregorian -** calendar"; no account is taken of the date(s) of adoption of -** the Gregorian calendar, nor is the AD/BC numbering convention -** observed. -** -** References: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 12.92 (p604). -** -** Klein, A., A Generalized Kahan-Babuska-Summation-Algorithm. -** Computing, 76, 279-293 (2006), Section 3. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Minimum and maximum allowed JD */ - const double DJMIN = -68569.5; - const double DJMAX = 1e9; - - long jd, i, l, n, k; - double dj, f1, f2, d, s, cs, v[2], x, t, f; - - -/* Verify date is acceptable. */ - dj = dj1 + dj2; - if (dj < DJMIN || dj > DJMAX) return -1; - -/* Separate day and fraction (where -0.5 <= fraction < 0.5). */ - d = dnint(dj1); - f1 = dj1 - d; - jd = (long) d; - d = dnint(dj2); - f2 = dj2 - d; - jd += (long) d; - -/* Compute f1+f2+0.5 using compensated summation (Klein 2006). */ - s = 0.5; - cs = 0.0; - v[0] = f1; - v[1] = f2; - for ( i = 0; i < 2; i++ ) { - x = v[i]; - t = s + x; - cs += fabs(s) >= fabs(x) ? (s-t) + x : (x-t) + s; - s = t; - if ( s >= 1.0 ) { - jd++; - s -= 1.0; - } - } - f = s + cs; - cs = f - s; - -/* Deal with negative f. */ - if ( f < 0.0 ) { - - /* Compensated summation: assume that |s| <= 1.0. */ - f = s + 1.0; - cs += (1.0-f) + s; - s = f; - f = s + cs; - cs = f - s; - jd--; - } - -/* Deal with f that is 1.0 or more (when rounded to double). */ - if ( (f-1.0) >= -DBL_EPSILON/4.0 ) { - - /* Compensated summation: assume that |s| <= 1.0. */ - t = s - 1.0; - cs += (s-t) - 1.0; - s = t; - f = s + cs; - if ( -DBL_EPSILON/2.0 < f ) { - jd++; - f = gmax(f, 0.0); - } - } - -/* Express day in Gregorian calendar. */ - l = jd + 68569L; - n = (4L * l) / 146097L; - l -= (146097L * n + 3L) / 4L; - i = (4000L * (l + 1L)) / 1461001L; - l -= (1461L * i) / 4L - 31L; - k = (80L * l) / 2447L; - *id = (int) (l - (2447L * k) / 80L); - l = k / 11L; - *im = (int) (k + 2L - 12L * l); - *iy = (int) (100L * (n - 49L) + i + l); - *fd = f; - -/* Success. */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/jdcalf.c b/deps/sofa/20231011/c/src/jdcalf.c deleted file mode 100644 index 2e64bfe..0000000 --- a/deps/sofa/20231011/c/src/jdcalf.c +++ /dev/null @@ -1,226 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]) -/* -** - - - - - - - - - - -** i a u J d c a l f -** - - - - - - - - - - -** -** Julian Date to Gregorian Calendar, expressed in a form convenient -** for formatting messages: rounded to a specified precision. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ndp int number of decimal places of days in fraction -** dj1,dj2 double dj1+dj2 = Julian Date (Note 1) -** -** Returned: -** iymdf int[4] year, month, day, fraction in Gregorian -** calendar -** -** Returned (function value): -** int status: -** -1 = date out of range -** 0 = OK -** +1 = ndp not 0-9 (interpreted as 0) -** -** Notes: -** -** 1) The Julian Date is apportioned in any convenient way between -** the arguments dj1 and dj2. For example, JD=2450123.7 could -** be expressed in any of these ways, among others: -** -** dj1 dj2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** 2) In early eras the conversion is from the "Proleptic Gregorian -** Calendar"; no account is taken of the date(s) of adoption of -** the Gregorian Calendar, nor is the AD/BC numbering convention -** observed. -** -** 3) See also the function iauJd2cal. -** -** 4) The number of decimal places ndp should be 4 or less if internal -** overflows are to be avoided on platforms which use 16-bit -** integers. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 12.92 (p604). -** -** This revision: 2023 January 16 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int j, js; - double denom, d1, d2, f1, f2, d, djd, f, rf; - - -/* Denominator of fraction (e.g. 100 for 2 decimal places). */ - if ((ndp >= 0) && (ndp <= 9)) { - j = 0; - denom = pow(10.0, ndp); - } else { - j = 1; - denom = 1.0; - } - -/* Copy the date, big then small. */ - if (fabs(dj1) >= fabs(dj2)) { - d1 = dj1; - d2 = dj2; - } else { - d1 = dj2; - d2 = dj1; - } - -/* Realign to midnight (without rounding error). */ - d1 -= 0.5; - -/* Separate day and fraction (as precisely as possible). */ - d = dnint(d1); - f1 = d1 - d; - djd = d; - d = dnint(d2); - f2 = d2 - d; - djd += d; - d = dnint(f1 + f2); - f = (f1 - d) + f2; - if (f < 0.0) { - f += 1.0; - d -= 1.0; - } - djd += d; - -/* Round the total fraction to the specified number of places. */ - rf = dnint(f*denom) / denom; - -/* Re-align to noon. */ - djd += 0.5; - -/* Convert to Gregorian calendar. */ - js = iauJd2cal(djd, rf, &iymdf[0], &iymdf[1], &iymdf[2], &f); - if (js == 0) { - iymdf[3] = (int) dnint(f * denom); - } else { - j = js; - } - -/* Return the status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ld.c b/deps/sofa/20231011/c/src/ld.c deleted file mode 100644 index 9a578d8..0000000 --- a/deps/sofa/20231011/c/src/ld.c +++ /dev/null @@ -1,203 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauLd(double bm, double p[3], double q[3], double e[3], - double em, double dlim, double p1[3]) -/* -** - - - - - - -** i a u L d -** - - - - - - -** -** Apply light deflection by a solar-system body, as part of -** transforming coordinate direction into natural direction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** bm double mass of the gravitating body (solar masses) -** p double[3] direction from observer to source (unit vector) -** q double[3] direction from body to source (unit vector) -** e double[3] direction from body to observer (unit vector) -** em double distance from body to observer (au) -** dlim double deflection limiter (Note 4) -** -** Returned: -** p1 double[3] observer to deflected source (unit vector) -** -** Notes: -** -** 1) The algorithm is based on Expr. (70) in Klioner (2003) and -** Expr. (7.63) in the Explanatory Supplement (Urban & Seidelmann -** 2013), with some rearrangement to minimize the effects of machine -** precision. -** -** 2) The mass parameter bm can, as required, be adjusted in order to -** allow for such effects as quadrupole field. -** -** 3) The barycentric position of the deflecting body should ideally -** correspond to the time of closest approach of the light ray to -** the body. -** -** 4) The deflection limiter parameter dlim is phi^2/2, where phi is -** the angular separation (in radians) between source and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. -** -** 5) The returned vector p1 is not normalized, but the consequential -** departure from unit magnitude is always negligible. -** -** 6) The arguments p and p1 can be the same array. -** -** 7) To accumulate total light deflection taking into account the -** contributions from several bodies, call the present function for -** each body in succession, in decreasing order of distance from the -** observer. -** -** 8) For efficiency, validation is omitted. The supplied vectors must -** be of unit magnitude, and the deflection limiter non-zero and -** positive. -** -** References: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013). -** -** Klioner, Sergei A., "A practical relativistic model for micro- -** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). -** -** Called: -** iauPdp scalar product of two p-vectors -** iauPxp vector product of two p-vectors -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int i; - double qpe[3], qdqpe, w, eq[3], peq[3]; - - -/* q . (q + e). */ - for (i = 0; i < 3; i++) { - qpe[i] = q[i] + e[i]; - } - qdqpe = iauPdp(q, qpe); - -/* 2 x G x bm / ( em x c^2 x ( q . (q + e) ) ). */ - w = bm * SRS / em / gmax(qdqpe,dlim); - -/* p x (e x q). */ - iauPxp(e, q, eq); - iauPxp(p, eq, peq); - -/* Apply the deflection. */ - for (i = 0; i < 3; i++) { - p1[i] = p[i] + w*peq[i]; - } - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ldn.c b/deps/sofa/20231011/c/src/ldn.c deleted file mode 100644 index f60cffa..0000000 --- a/deps/sofa/20231011/c/src/ldn.c +++ /dev/null @@ -1,225 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], - double sn[3]) -/*+ -** - - - - - - - -** i a u L d n -** - - - - - - - -** -** For a star, apply light deflection by multiple solar-system bodies, -** as part of transforming coordinate direction into natural direction. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** n int number of bodies (note 1) -** b iauLDBODY[n] data for each of the n bodies (Notes 1,2): -** bm double mass of the body (solar masses, Note 3) -** dl double deflection limiter (Note 4) -** pv [2][3] barycentric PV of the body (au, au/day) -** ob double[3] barycentric position of the observer (au) -** sc double[3] observer to star coord direction (unit vector) -** -** Returned: -** sn double[3] observer to deflected star (unit vector) -** -** 1) The array b contains n entries, one for each body to be -** considered. If n = 0, no gravitational light deflection will be -** applied, not even for the Sun. -** -** 2) The array b should include an entry for the Sun as well as for -** any planet or other body to be taken into account. The entries -** should be in the order in which the light passes the body. -** -** 3) In the entry in the b array for body i, the mass parameter -** b[i].bm can, as required, be adjusted in order to allow for such -** effects as quadrupole field. -** -** 4) The deflection limiter parameter b[i].dl is phi^2/2, where phi is -** the angular separation (in radians) between star and body at -** which limiting is applied. As phi shrinks below the chosen -** threshold, the deflection is artificially reduced, reaching zero -** for phi = 0. Example values suitable for a terrestrial -** observer, together with masses, are as follows: -** -** body i b[i].bm b[i].dl -** -** Sun 1.0 6e-6 -** Jupiter 0.00095435 3e-9 -** Saturn 0.00028574 3e-10 -** -** 5) For cases where the starlight passes the body before reaching the -** observer, the body is placed back along its barycentric track by -** the light time from that point to the observer. For cases where -** the body is "behind" the observer no such shift is applied. If -** a different treatment is preferred, the user has the option of -** instead using the iauLd function. Similarly, iauLd can be used -** for cases where the source is nearby, not a star. -** -** 6) The returned vector sn is not normalized, but the consequential -** departure from unit magnitude is always negligible. -** -** 7) The arguments sc and sn can be the same array. -** -** 8) For efficiency, validation is omitted. The supplied masses must -** be greater than zero, the position and velocity vectors must be -** right, and the deflection limiter greater than zero. -** -** Reference: -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013), Section 7.2.4. -** -** Called: -** iauCp copy p-vector -** iauPdp scalar product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPpsp p-vector plus scaled p-vector -** iauPn decompose p-vector into modulus and direction -** iauLd light deflection by a solar-system body -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Light time for 1 au (days) */ - const double CR = AULT/DAYSEC; - - int i; - double v[3], dt, ev[3], em, e[3]; - - -/* Star direction prior to deflection. */ - iauCp(sc, sn); - -/* Body by body. */ - for ( i = 0; i < n; i++ ) { - - /* Body to observer vector at epoch of observation (au). */ - iauPmp ( ob, b[i].pv[0], v ); - - /* Minus the time since the light passed the body (days). */ - dt = iauPdp(sn,v) * CR; - - /* Neutralize if the star is "behind" the observer. */ - dt = gmin(dt, 0.0); - - /* Backtrack the body to the time the light was passing the body. */ - iauPpsp(v, -dt, b[i].pv[1], ev); - - /* Body to observer vector as magnitude and direction. */ - iauPn(ev, &em, e); - - /* Apply light deflection for this body. */ - iauLd ( b[i].bm, sn, sn, e, em, b[i].dl, sn ); - - /* Next body. */ - } - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ldsun.c b/deps/sofa/20231011/c/src/ldsun.c deleted file mode 100644 index b2461b8..0000000 --- a/deps/sofa/20231011/c/src/ldsun.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "sofa.h" - -void iauLdsun(double p[3], double e[3], double em, double p1[3]) -/* -** - - - - - - - - - -** i a u L d s u n -** - - - - - - - - - -** -** Deflection of starlight by the Sun. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** p double[3] direction from observer to star (unit vector) -** e double[3] direction from Sun to observer (unit vector) -** em double distance from Sun to observer (au) -** -** Returned: -** p1 double[3] observer to deflected star (unit vector) -** -** Notes: -** -** 1) The source is presumed to be sufficiently distant that its -** directions seen from the Sun and the observer are essentially -** the same. -** -** 2) The deflection is restrained when the angle between the star and -** the center of the Sun is less than a threshold value, falling to -** zero deflection for zero separation. The chosen threshold value -** is within the solar limb for all solar-system applications, and -** is about 5 arcminutes for the case of a terrestrial observer. -** -** 3) The arguments p and p1 can be the same array. -** -** Called: -** iauLd light deflection by a solar-system body -** -** This revision: 2016 June 16 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double em2, dlim; - - -/* Deflection limiter (smaller for distant observers). */ - em2 = em*em; - if ( em2 < 1.0 ) em2 = 1.0; - dlim = 1e-6 / (em2 > 1.0 ? em2 : 1.0); - -/* Apply the deflection. */ - iauLd(1.0, p, p, e, em, dlim, p1); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/libsofa_c.a b/deps/sofa/20231011/c/src/libsofa_c.a deleted file mode 100644 index dac69a8e6417313543cac6f204af0800ae5b51c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819278 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

I 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%0AUB8MpoK2fOnf*FIeT#qH*jy))L!>;`n5 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�}4~)kYfT*e-43B1-q)ju>?tfJ3f{ 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�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 z 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¥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 E28ubo7XSbN literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/doc/sofa_ast_summary.pdf b/deps/sofa/20231011/c/doc/sofa_ast_summary.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1200691c4922ce1610132e735ee6f92310a222ad GIT binary patch literal 63625 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

*m=^?ozeGwNNx9x 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 GCRS, geocentric, special + APCG13 prepare for ICRS <-> GCRS, geocentric + APCI prepare for ICRS <-> CIRS, terrestrial, special + APCI13 prepare for ICRS <-> CIRS, terrestrial + APCO prepare for ICRS <-> observed, terrestrial, special + APCO13 prepare for ICRS <-> observed, terrestrial + APCS prepare for ICRS <-> CIRS, space, special + APCS13 prepare for ICRS <-> CIRS, space + APER insert ERA into context + APER13 update context for Earth rotation + APIO prepare for CIRS <-> observed, terrestrial, special + APIO13 prepare for CIRS <-> observed, terrestrial + ATCC13 catalog -> astrometric + ATCCQ quick catalog -> astrometric + ATCI13 catalog -> CIRS + ATCIQ quick ICRS -> CIRS + ATCIQN quick ICRS -> CIRS, multiple deflections + ATCIQZ quick astrometric ICRS -> CIRS + ATCO13 ICRS -> observed + ATIC13 CIRS -> ICRS + ATICQ quick CIRS -> ICRS + ATICQN quick CIRS -> ICRS, multiple deflections + ATIO13 CIRS -> observed + ATIOQ quick CIRS -> observed + ATOC13 observed -> astrometric ICRS + ATOI13 observed -> CIRS + ATOIQ quick observed -> CIRS + LD light deflection by a single solar-system body + LDN light deflection by multiple solar-system bodies + LDSUN light deflection by the Sun + PMPX apply proper motion and parallax + PMSAFE apply proper motion, with zero-parallax precautions + PVTOB observatory position and velocity + PVSTAR space motion pv-vector to star catalog data + REFCO refraction constants + STARPM apply proper motion + STARPV star catalog data to space motion pv-vector + + Time scales + + D2DTF format 2-part JD for output + DAT Delta(AT) (=TAI-UTC) for a given UTC date + DTDB TDB-TT + DTF2D encode time and date fields into 2-part JD + TAITT TAI to TT + TAIUT1 TAI to UT1 + TAIUTC TAI to UTC + TCBTDB TCB to TDB + TCGTT TCG to TT + TDBTCB TDB to TCB + TDBTT TDB to TT + TTTAI TT to TAI + TTTCG TT to TCG + TTTDB TT to TDB + TTUT1 TT to UT1 + UT1TAI UT1 to TAI + UT1TT UT1 to TT + UT1UTC UT1 to UTC + UTCTAI UTC to TAI + UTCUT1 UTC to UT1 + + Earth rotation angle and sidereal time + + EE00 equation of the equinoxes, IAU 2000 + EE00A equation of the equinoxes, IAU 2000A + EE00B equation of the equinoxes, IAU 2000B + EE06A equation of the equinoxes, IAU 2006/2000A + EECT00 equation of the equinoxes complementary terms, IAU 2000 + EQEQ94 equation of the equinoxes, IAU 1994 + ERA00 Earth rotation angle, IAU 2000 + GMST00 Greenwich mean sidereal time, IAU 2000 + GMST06 Greenwich mean sidereal time, IAU 2006 + GMST82 Greenwich mean sidereal time, IAU 1982 + GST00A Greenwich apparent sidereal time, IAU 2000A + GST00B Greenwich apparent sidereal time, IAU 2000B + GST06 Greenwich apparent ST, IAU 2006, given NPB matrix + GST06A Greenwich apparent sidereal time, IAU 2006/2000A + GST94 Greenwich apparent sidereal time, IAU 1994 + + Ephemerides (limited precision) + + EPV00 Earth position and velocity + MOON98 Moon position and velocity + PLAN94 major-planet position and velocity + + Precession, nutation, polar motion + + BI00 frame bias components, IAU 2000 + BP00 frame bias and precession matrices, IAU 2000 + BP06 frame bias and precession matrices, IAU 2006 + BPN2XY extract CIP X,Y coordinates from NPB matrix + C2I00A celestial-to-intermediate matrix, IAU 2000A + C2I00B celestial-to-intermediate matrix, IAU 2000B + C2I06A celestial-to-intermediate matrix, IAU 2006/2000A + C2IBPN celestial-to-intermediate matrix, given NPB matrix, IAU 2000 + C2IXY celestial-to-intermediate matrix, given X,Y, IAU 2000 + C2IXYS celestial-to-intermediate matrix, given X,Y and s + C2T00A celestial-to-terrestrial matrix, IAU 2000A + C2T00B celestial-to-terrestrial matrix, IAU 2000B + C2T06A celestial-to-terrestrial matrix, IAU 2006/2000A + C2TCIO form CIO-based celestial-to-terrestrial matrix + C2TEQX form equinox-based celestial-to-terrestrial matrix + C2TPE celestial-to-terrestrial matrix given nutation, IAU 2000 + C2TXY celestial-to-terrestrial matrix given CIP, IAU 2000 + EO06A equation of the origins, IAU 2006/2000A + EORS equation of the origins, given NPB matrix and s + FW2M Fukushima-Williams angles to r-matrix + FW2XY Fukushima-Williams angles to X,Y + LTP long-term precession matrix + LTPB long-term precession matrix, including ICRS frame bias + LTPECL long-term precession of the ecliptic + LTPEQU long-term precession of the equator + NUM00A nutation matrix, IAU 2000A + NUM00B nutation matrix, IAU 2000B + NUM06A nutation matrix, IAU 2006/2000A + NUMAT form nutation matrix + NUT00A nutation, IAU 2000A + NUT00B nutation, IAU 2000B + NUT06A nutation, IAU 2006/2000A + NUT80 nutation, IAU 1980 + NUTM80 nutation matrix, IAU 1980 + OBL06 mean obliquity, IAU 2006 + OBL80 mean obliquity, IAU 1980 + PB06 zeta,z,theta precession angles, IAU 2006, including bias + PFW06 bias-precession Fukushima-Williams angles, IAU 2006 + PMAT00 precession matrix (including frame bias), IAU 2000 + PMAT06 PB matrix, IAU 2006 + PMAT76 precession matrix, IAU 1976 + PN00 bias/precession/nutation results, IAU 2000 + PN00A bias/precession/nutation, IAU 2000A + PN00B bias/precession/nutation, IAU 2000B + PN06 bias/precession/nutation results, IAU 2006 + PN06A bias/precession/nutation results, IAU 2006/2000A + PNM00A classical NPB matrix, IAU 2000A + PNM00B classical NPB matrix, IAU 2000B + PNM06A classical NPB matrix, IAU 2006/2000A + PNM80 precession/nutation matrix, IAU 1976/1980 + P06E precession angles, IAU 2006, equinox based + POM00 polar motion matrix + PR00 IAU 2000 precession adjustments + PREC76 accumulated precession angles, IAU 1976 + S00 the CIO locator s, given X,Y, IAU 2000A + S00A the CIO locator s, IAU 2000A + S00B the CIO locator s, IAU 2000B + S06 the CIO locator s, given X,Y, IAU 2006 + S06A the CIO locator s, IAU 2006/2000A + SP00 the TIO locator s', IERS 2003 + XY06 CIP, IAU 2006/2000A, from series + XYS00A CIP and s, IAU 2000A + XYS00B CIP and s, IAU 2000B + XYS06A CIP and s, IAU 2006/2000A + + Fundamental arguments for nutation etc. + + FAD03 mean elongation of the Moon from the Sun + FAE03 mean longitude of Earth + FAF03 mean argument of the latitude of the Moon + FAJU03 mean longitude of Jupiter + FAL03 mean anomaly of the Moon + FALP03 mean anomaly of the Sun + FAMA03 mean longitude of Mars + FAME03 mean longitude of Mercury + FANE03 mean longitude of Neptune + FAOM03 mean longitude of the Moon's ascending node + FAPA03 general accumulated precession in longitude + FASA03 mean longitude of Saturn + FAUR03 mean longitude of Uranus + FAVE03 mean longitude of Venus + + Star catalog conversions + + FK52H transform FK5 star data into the Hipparcos system + FK5HIP FK5 to Hipparcos rotation and spin + FK5HZ FK5 to Hipparcos assuming zero Hipparcos proper motion + H2FK5 transform Hipparcos star data into the FK5 system + HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion + FK425 transform FK4 star data into FK5 + FK45Z FK4 to FK5 assuming zero FK5 proper motion + FK524 transform FK5 star data into FK4 + FK54Z FK5 to FK4 assuming zero FK5 proper motion + + Ecliptic coordinates + + ECEQ06 ecliptic to ICRS, IAU 2006 + ECM06 rotation matrix, ICRS to ecliptic, IAU 2006 + EQEC06 ICRS to ecliptic, IAU 2006 + LTECEQ ecliptic to ICRS, long term + LTECM rotation matrix, ICRS to ecliptic, long-term + LTEQEC ICRS to ecliptic, long term + + Galactic coordinates + + G2ICRS transform IAU 1958 galactic coordinates to ICRS + ICRS2G transform ICRS coordinates to IAU 1958 Galactic + + Geodetic/geocentric + + EFORM a,f for a nominated Earth reference ellipsoid + GC2GD geocentric to geodetic for a nominated ellipsoid + GC2GDE geocentric to geodetic given ellipsoid a,f + GD2GC geodetic to geocentric for a nominated ellipsoid + GD2GCE geodetic to geocentric given ellipsoid a,f + + Gnomonic projection + + TPORS solve for tangent point, spherical + TPORV solve for tangent point, vector + TPSTS deproject tangent plane to celestial, spherical + TPSTV deproject tangent plane to celestial, vector + TPXES project celestial to tangent plane, spherical + TPXEV project celestial to tangent plane, vector + + Horizon/equatorial + + AE2HD (azimuth, altitude) to (hour angle, declination) + HD2AE (hour angle, declination) to (azimuth, altitude) + HD2PA parallactic angle + + Obsolete + + C2TCEO former name of C2TCIO + + +CALLS: FORTRAN VERSION + + CALL iau_AB ( PNAT, V, S, BM1, PPR ) + CALL iau_AE2HD ( AZ, EL, PHI, HA, DEC ) + CALL iau_APCG ( DATE1, DATE2, EB, EH, ASTROM ) + CALL iau_APCG13 ( DATE1, DATE2, ASTROM ) + CALL iau_APCI ( DATE1, DATE2, EB, EH, X, Y, S, ASTROM ) + CALL iau_APCI13 ( DATE1, DATE2, ASTROM, EO ) + CALL iau_APCO ( DATE1, DATE2, EB, EH, X, Y, S, + : THETA, ELONG, PHI, HM, XP, YP, SP, + : REFA, REFB, ASTROM ) + CALL iau_APCO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, + : PHPA, TC, RH, WL, ASTROM, EO, J ) + CALL iau_APCS ( DATE1, DATE2, PV, EB, EH, ASTROM ) + CALL iau_APCS13 ( DATE1, DATE2, PV, ASTROM ) + CALL iau_APER ( THETA, ASTROM ) + CALL iau_APER13 ( UT11, UT12, ASTROM ) + CALL iau_APIO ( SP, THETA, ELONG, PHI, HM, XP, YP, + : REFA, REFB, ASTROM ) + CALL iau_APIO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, + : PHPA, TC, RH, WL, ASTROM, J ) + CALL iau_ATCC13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RA, DA ) + CALL iau_ATCCQ ( RC, DC, PR, PD, PX, RV, ASTROM, RA, DA ) + CALL iau_ATCI13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RI, DI, EO ) + CALL iau_ATCIQ ( RC, DC, PR, PD, PX, RV, ASTROM, RI, DI ) + CALL iau_ATCIQN ( RC, DC, PR, PD, PX, RV, ASTROM, N, B, RI, DI ) + CALL iau_ATCIQZ ( RC, DC, ASTROM, RI, DI ) + CALL iau_ATCO13 ( RC, DC, PR, PD, PX, RV, UTC1, UTC2, DUT1, ELONG, + : PHI, HM, XP, YP, PHPA, TC, RH, WL, + : AOB, ZOB, HOB, DOB, ROB, EO, J ) + CALL iau_ATIC13 ( RI, DI, DATE1, DATE2, RC, DC, EO ) + CALL iau_ATICQ ( RI, DI, ASTROM, RC, DC ) + CALL iau_ATICQN ( RI, DI, ASTROM, N, B, RC, DC ) + CALL iau_ATIO13 ( RI, DI, UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, + : PHPA, TC, RH, WL, AOB, ZOB, HOB, DOB, ROB, J ) + CALL iau_ATIOQ ( RI, DI, ASTROM, AOB, ZOB, HOB, DOB, ROB ) + CALL iau_ATOC13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, + : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, + : RC, DC, J ) + CALL iau_ATOI13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, + : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, + : RI, DI, J ) + CALL iau_ATOIQ ( TYPE, OB1, OB2, ASTROM, RI, DI ) + CALL iau_BI00 ( DPSIBI, DEPSBI, DRA ) + CALL iau_BP00 ( DATE1, DATE2, RB, RP, RBP ) + CALL iau_BP06 ( DATE1, DATE2, RB, RP, RBP ) + CALL iau_BPN2XY ( RBPN, X, Y ) + CALL iau_C2I00A ( DATE1, DATE2, RC2I ) + CALL iau_C2I00B ( DATE1, DATE2, RC2I ) + CALL iau_C2I06A ( DATE1, DATE2, RC2I ) + CALL iau_C2IBPN ( DATE1, DATE2, RBPN, RC2I ) + CALL iau_C2IXY ( DATE1, DATE2, X, Y, RC2I ) + CALL iau_C2IXYS ( X, Y, S, RC2I ) + CALL iau_C2T00A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) + CALL iau_C2T00B ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) + CALL iau_C2T06A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) + CALL iau_C2TCEO ( RC2I, ERA, RPOM, RC2T ) + CALL iau_C2TCIO ( RC2I, ERA, RPOM, RC2T ) + CALL iau_C2TEQX ( RBPN, GST, RPOM, RC2T ) + CALL iau_C2TPE ( TTA, TTB, UTA, UTB, DPSI, DEPS, XP, YP, RC2T ) + CALL iau_C2TXY ( TTA, TTB, UTA, UTB, X, Y, XP, YP, RC2T ) + CALL iau_CAL2JD ( IY, IM, ID, DJM0, DJM, J ) + CALL iau_D2DTF ( SCALE, NDP, D1, D2, IY, IM, ID, IHMSF, J ) + CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J ) + D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V ) + CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J ) + CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD ) + CALL iau_ECM06 ( DATE1, DATE2, RM ); + D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI ) + D = iau_EE00A ( DATE1, DATE2 ) + D = iau_EE00B ( DATE1, DATE2 ) + D = iau_EE06A ( DATE1, DATE2 ) + D = iau_EECT00 ( DATE1, DATE2 ) + CALL iau_EFORM ( N, A, F, J ) + D = iau_EO06A ( DATE1, DATE2 ) + D = iau_EORS ( RNPB, S ) + D = iau_EPB ( DJ1, DJ2 ) + CALL iau_EPB2JD ( EPB, DJM0, DJM ) + D = iau_EPJ ( DJ1, DJ2 ) + CALL iau_EPJ2JD ( EPJ, DJM0, DJM ) + CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J ) + CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB ) + D = iau_EQEQ94 ( DATE1, DATE2 ) + D = iau_ERA00 ( DJ1, DJ2 ) + D = iau_FAD03 ( T ) + D = iau_FAE03 ( T ) + D = iau_FAF03 ( T ) + D = iau_FAJU03 ( T ) + D = iau_FAL03 ( T ) + D = iau_FALP03 ( T ) + D = iau_FAMA03 ( T ) + D = iau_FAME03 ( T ) + D = iau_FANE03 ( T ) + D = iau_FAOM03 ( T ) + D = iau_FAPA03 ( T ) + D = iau_FASA03 ( T ) + D = iau_FAUR03 ( T ) + D = iau_FAVE03 ( T ) + CALL iau_FK425 ( R1950, D1950, DR1950, DD1950, P1950, V1950, + : R2000, D2000, DR2000, DD2000, P2000, V2000 ) + CALL iau_FK45Z ( R1950, D1950, BEPOCH, R2000, D2000 ) + CALL iau_FK524 ( R2000, D2000, DR2000, DD2000, P2000, V2000, + : R1950, D1950, DR1950, DD1950, P1950, V1950 ) + CALL iau_FK52H ( R5, D5, DR5, DD5, PX5, RV5, + : RH, DH, DRH, DDH, PXH, RVH ) + CALL iau_FK54Z ( R2000, D2000, BEPOCH, R1950, D1950, DR1950, DD1950 ) + CALL iau_FK5HIP ( R5H, S5H ) + CALL iau_FK5HZ ( R5, D5, DATE1, DATE2, RH, DH ) + CALL iau_FW2M ( GAMB, PHIB, PSI, EPS, R ) + CALL iau_FW2XY ( GAMB, PHIB, PSI, EPS, X, Y ) + CALL iau_G2ICRS ( DL, DB, DR, DD ) + CALL iau_GC2GD ( N, XYZ, ELONG, PHI, HEIGHT, J ) + CALL iau_GC2GDE ( A, F, XYZ, ELONG, PHI, HEIGHT, J ) + CALL iau_GD2GC ( N, ELONG, PHI, HEIGHT, XYZ, J ) + CALL iau_GD2GCE ( A, F, ELONG, PHI, HEIGHT, XYZ, J ) + D = iau_GMST00 ( UTA, UTB, TTA, TTB ) + D = iau_GMST06 ( UTA, UTB, TTA, TTB ) + D = iau_GMST82 ( UTA, UTB ) + D = iau_GST00A ( UTA, UTB, TTA, TTB ) + D = iau_GST00B ( UTA, UTB ) + D = iau_GST06 ( UTA, UTB, TTA, TTB, RNPB ) + D = iau_GST06A ( UTA, UTB, TTA, TTB ) + D = iau_GST94 ( UTA, UTB ) + CALL iau_H2FK5 ( RH, DH, DRH, DDH, PXH, RVH, + : R5, D5, DR5, DD5, PX5, RV5 ) + CALL iau_HD2AE ( HA, DEC, PHI, AZ, EL ) + D = iau_HD2PA ( HA, DEC, PHI ) + CALL iau_HFK5Z ( RH, DH, DATE1, DATE2, R5, D5, DR5, DD5 ) + CALL iau_ICRS2G ( DR, DD, DL, DB ) + CALL iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J ) + CALL iau_JDCALF ( NDP, DJ1, DJ2, IYMDF, J ) + CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 ) + CALL iau_LDN ( N, B, OB, SC, SN ) + CALL iau_LDSUN ( P, E, EM, P1 ) + CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD ) + CALL iau_LTECM ( EPJ, RM] ) + CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB ) + CALL iau_LTP ( EPJ, RP ) + CALL iau_LTPB ( EPJ, RPB ) + CALL iau_LTPECL ( EPJ, VEC ) + CALL iau_LTPEQU ( EPJ, VEQ ) + CALL iau_MOON98 ( DATE1, DATE2, PV ) + CALL iau_NUM00A ( DATE1, DATE2, RMATN ) + CALL iau_NUM00B ( DATE1, DATE2, RMATN ) + CALL iau_NUM06A ( DATE1, DATE2, RMATN ) + CALL iau_NUMAT ( EPSA, DPSI, DEPS, RMATN ) + CALL iau_NUT00A ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUT00B ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUT06A ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUT80 ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUTM80 ( DATE1, DATE2, RMATN ) + D = iau_OBL06 ( DATE1, DATE2 ) + D = iau_OBL80 ( DATE1, DATE2 ) + CALL iau_PB06 ( DATE1, DATE2, BZETA, BZ, BTHETA ) + CALL iau_PFW06 ( DATE1, DATE2, GAMB, PHIB, PSIB, EPSA ) + CALL iau_PLAN94 ( DATE1, DATE2, NP, PV, J ) + CALL iau_PMAT00 ( DATE1, DATE2, RBP ) + CALL iau_PMAT06 ( DATE1, DATE2, RBP ) + CALL iau_PMAT76 ( DATE1, DATE2, RMATP ) + CALL iau_PMPX ( RC, DC, PR, PD, PX, RV, PMT, POB, PCO ) + CALL iau_PMSAFE ( RA1, DEC1, PMR1, PMD1, PX1, RV1, + : EP1A, EP1B, EP2A, EP2B, + : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) + CALL iau_PN00 ( DATE1, DATE2, DPSI, DEPS, + : EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN00A ( DATE1, DATE2, + : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN00B ( DATE1, DATE2, + : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN06 ( DATE1, DATE2, DPSI, DEPS, + : EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN06A ( DATE1, DATE2, + : DPSI, DEPS, RB, RP, RBP, RN, RBPN ) + CALL iau_PNM00A ( DATE1, DATE2, RBPN ) + CALL iau_PNM00B ( DATE1, DATE2, RBPN ) + CALL iau_PNM06A ( DATE1, DATE2, RNPB ) + CALL iau_PNM80 ( DATE1, DATE2, RMATPN ) + CALL iau_P06E ( DATE1, DATE2, + : EPS0, PSIA, OMA, BPA, BQA, PIA, BPIA, + : EPSA, CHIA, ZA, ZETAA, THETAA, PA, GAM, PHI, PSI ) + CALL iau_POM00 ( XP, YP, SP, RPOM ) + CALL iau_PR00 ( DATE1, DATE2, DPSIPR, DEPSPR ) + CALL iau_PREC76 ( DATE01, DATE02, DATE11, DATE12, ZETA, Z, THETA ) + CALL iau_PVSTAR ( PV, RA, DEC, PMR, PMD, PX, RV, J ) + CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PV ) + CALL iau_REFCO ( PHPA, TC, RH, WL, REFA, REFB ) + D = iau_S00 ( DATE1, DATE2, X, Y ) + D = iau_S00A ( DATE1, DATE2 ) + D = iau_S00B ( DATE1, DATE2 ) + D = iau_S06 ( DATE1, DATE2, X, Y ) + D = iau_S06A ( DATE1, DATE2 ) + D = iau_SP00 ( DATE1, DATE2 ) + CALL iau_STARPM ( RA1, DEC1, PMR1, PMD1, PX1, RV1, + : EP1A, EP1B, EP2A, EP2B, + : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) + CALL iau_STARPV ( RA, DEC, PMR, PMD, PX, RV, PV, J ) + CALL iau_TAITT ( TAI1, TAI2, TT1, TT2, J ) + CALL iau_TAIUT1 ( TAI1, TAI2, DTA, UT11, UT12, J ) + CALL iau_TAIUTC ( TAI1, TAI2, UTC1, UTC2, J ) + CALL iau_TCBTDB ( TCB1, TCB2, TDB1, TDB2, J ) + CALL iau_TCGTT ( TCG1, TCG2, TT1, TT2, J ) + CALL iau_TDBTCB ( TDB1, TDB2, TCB1, TCB2, J ) + CALL iau_TDBTT ( TDB1, TDB2, DTR, TT1, TT2, J ) + CALL iau_TPORS ( XI, ETA, A, B, A01, B01, A02, B02, N ) + CALL iau_TPORV ( XI, ETA, V, V01, V02, N ) + CALL iau_TPSTS ( XI, ETA, A0, B0, A, B ) + CALL iau_TPSTV ( XI, ETA, V0, V ) + CALL iau_TPXES ( A, B, A0, B0, XI, ETA, J ) + CALL iau_TPXEV ( V, V0, XI, ETA, J ) + CALL iau_TTTAI ( TT1, TT2, TAI1, TAI2, J ) + CALL iau_TTTCG ( TT1, TT2, TCG1, TCG2, J ) + CALL iau_TTTDB ( TT1, TT2, DTR, TDB1, TDB2, J ) + CALL iau_TTUT1 ( TT1, TT2, DT, UT11, UT12, J ) + CALL iau_UT1TAI ( UT11, UT12, TAI1, TAI2, J ) + CALL iau_UT1TT ( UT11, UT12, DT, TT1, TT2, J ) + CALL iau_UT1UTC ( UT11, UT12, DUT, UTC1, UTC2, J ) + CALL iau_UTCTAI ( UTC1, UTC2, DTA, TAI1, TAI2, J ) + CALL iau_UTCUT1 ( UTC1, UTC2, DUT, UT11, UT12, J ) + CALL iau_XY06 ( DATE1, DATE2, X, Y ) + CALL iau_XYS00A ( DATE1, DATE2, X, Y, S ) + CALL iau_XYS00B ( DATE1, DATE2, X, Y, S ) + CALL iau_XYS06A ( DATE1, DATE2, X, Y, S ) + + +CALLS: C VERSION + + iauAb ( pnat, v, s, bm1, ppr ); + iauAe2hd ( az, el, phi, &ha, &dec ); + iauApcg ( date1, date2, eb, eh, &astrom ); + iauApcg13 ( date1, date2, &astrom ); + iauApci ( date1, date2, eb, eh, x, y, s, &astrom ); + iauApci13 ( date1, date2, &astrom, &eo ); + iauApco ( date1, date2, eb, eh, x, y, s, + theta, elong, phi, hm, xp, yp, sp, + refa, refb, &astrom ); + i = iauApco13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom, &eo ); + iauApcs ( date1, date2, pv, eb, eh, &astrom ); + iauApcs13 ( date1, date2, pv, &astrom ); + iauAper ( theta, &astrom ); + iauAper13 ( ut11, ut12, &astrom ); + iauApio ( sp, theta, elong, phi, hm, xp, yp, refa, refb, + &astrom ); + i = iauApio13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom ); + iauAtcc13 ( rc, dc, pr, pd, px, rv, date1, date2, &ra, &da ); + iauAtccq ( rc, dc, pr, pd, px, rv, &astrom, &ra, &da ); + iauAtci13 ( rc, dc, pr, pd, px, rv, date1, date2, + &ri, &di, &eo ); + iauAtciq ( rc, dc, pr, pd, px, rv, &astrom, &ri, &di ); + iauAtciqn ( rc, dc, pr, pd, px, rv, astrom, n, b, &ri, &di ); + iauAtciqz ( rc, dc, &astrom, &ri, &di ); + i = iauAtco13 ( rc, dc, pr, pd, px, rv, utc1, utc2, dut1, + elong phi, hm, xp, yp, phpa, tc, rh, wl, + aob, zob, hob, dob, rob, eo ); + iauAtic13 ( ri, di, date1, date2, &rc, &dc, &eo ); + iauAticq ( ri, di, &astrom, &rc, &dc ); + iauAticqn ( ri, di, astrom, n, b, &rc, &dc ); + i = iauAtio13 ( ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, aob, zob, hob, dob, rob ); + iauAtioq ( ri, di, &astrom, &aob, &zob, &hob, &dob, &rob ); + i = iauAtoc13 ( type, ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &rc, &dc ); + i = iauAtoi13 ( type, ob1, ob2, utc1, utc2, dut1, elong, phi, hm, + xp, yp, phpa, tc, rh, wl, &ri, &di ); + iauAtoiq ( type, ob1, ob2, &astrom, &ri, &di ); + iauBi00 ( &dpsibi, &depsbi, &dra ); + iauBp00 ( date1, date2, rb, rp, rbp ); + iauBp06 ( date1, date2, rb, rp, rbp ); + iauBpn2xy ( rbpn, &x, &y ); + iauC2i00a ( date1, date2, rc2i ); + iauC2i00b ( date1, date2, rc2i ); + iauC2i06a ( date1, date2, rc2i ); + iauC2ibpn ( date1, date2, rbpn, rc2i ); + iauC2ixy ( date1, date2, x, y, rc2i ); + iauC2ixys ( x, y, s, rc2i ); + iauC2t00a ( tta, ttb, uta, utb, xp, yp, rc2t ); + iauC2t00b ( tta, ttb, uta, utb, xp, yp, rc2t ); + iauC2t06a ( tta, ttb, uta, utb, xp, yp, rc2t ); + iauC2tcio ( rc2i, era, rpom, rc2t ); + iauC2teqx ( rbpn, gst, rpom, rc2t ); + iauC2tpe ( tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t ); + iauC2txy ( tta, ttb, uta, utb, x, y, xp, yp, rc2t ); + i = iauCal2jd ( iy, im, id, &djm0, &djm ); + i = iauD2dtf ( scale, ndp, d1, d2, &iy, &im, &id, ihmsf ); + i = iauDat ( iy, im, id, fd, &deltat ); + d = iauDtdb ( date1, date2, ut, elong, u, v ); + i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 ); + iauEceq06 ( date1, date2, dl, db, &dr, &dd ); + iauEcm06 ( date1, date2, rm ); + d = iauEe00 ( date1, date2, epsa, dpsi ); + d = iauEe00a ( date1, date2 ); + d = iauEe00b ( date1, date2 ); + d = iauEe06 ( date1, date2 ); + d = iauEect00 ( date1, date2 ); + i = iauEform ( n, &a, &f ); + d = iauEo06 ( date1, date2 ); + d = iauEors ( rnpb, s ); + d = iauEpb ( dj1, dj2 ); + iauEpb2jd ( epb, &djm0, &djm ); + d = iauEpj ( dj1, dj2 ); + iauEpj2jd ( epj, &djm0, &djm ); + i = iauEpv00 ( dj1, dj2, pvh, pvb ); + iauEqec06 ( date1, date2, dr, dd, &dl, &db ); + d = iauEqeq94 ( date1, date2 ); + d = iauEra00 ( dj1, dj2 ); + d = iauFad03 ( t ); + d = iauFae03 ( t ); + d = iauFaf03 ( t ); + d = iauFaju03 ( t ); + d = iauFal03 ( t ); + d = iauFalp03 ( t ); + d = iauFama03 ( t ); + d = iauFame03 ( t ); + d = iauFane03 ( t ); + d = iauFaom03 ( t ); + d = iauFapa03 ( t ); + d = iauFasa03 ( t ); + d = iauFaur03 ( t ); + d = iauFave03 ( t ); + iauFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950, + &r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000 ); + iauFk45z ( r1950, d1950, bepoch, &r2000, &d2000 ); + iauFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000, + &r1950, &d1950, &dr1950, &dd1950, &p1950, &v1950 ); + iauFk52h ( r5, d5, dr5, dd5, px5, rv5, + &rh, &dh, &drh, &ddh, &pxh, &rvh ); + iauFk54z ( r2000, d2000, bepoch, + &r1950, &d1950, &dr1950, &dd1950 ); + iauFk5hip ( r5h, s5h ); + iauFk5hz ( r5, d5, date1, date2, &rh, &dh ); + iauFw2m ( gamb, phib, psi, eps, r ); + iauFw2xy ( gamb, phib, psi, eps, &x, &y ); + iauG2icrs ( dl, db, &dr, &dd ); + i = iauGc2gd ( n, xyz, &elong, &phi, &height ); + i = iauGc2gde ( a, f, xyz, &elong, &phi, &height ); + i = iauGd2gc ( n, elong, phi, height, xyz ); + i = iauGd2gce ( a, f, elong, phi, height, xyz ); + d = iauGmst00 ( uta, utb, tta, ttb ); + d = iauGmst06 ( uta, utb, tta, ttb ); + d = iauGmst82 ( uta, utb ); + d = iauGst00a ( uta, utb, tta, ttb ); + d = iauGst00b ( uta, utb ); + d = iauGst06 ( uta, utb, tta, ttb, rnpb ); + d = iauGst06a ( uta, utb, tta, ttb ); + d = iauGst94 ( uta, utb ); + iauH2fk5 ( rh, dh, drh, ddh, pxh, rvh, + &r5, &d5, &dr5, &dd5, &px5, &rv5 ); + iauHd2ae ( ha, dec, phi, &az, &el ); + d = iauHd2pa ( ha, dec, phi ); + iauHfk5z ( rh, dh, date1, date2, + &r5, &d5, &dr5, &dd5 ); + iauIcrs2g ( dr, dd, &dl, &db ); + i = iauJd2cal ( dj1, dj2, &iy, &im, &id, &fd ); + i = iauJdcalf ( ndp, dj1, dj2, iymdf ); + iauLd ( bm, p, q, e, em, dlim, p1 ); + iauLdn ( n, b, ob, sc, sn ); + iauLdsun ( p, e, em, p1 ); + iauLteceq ( epj, dl, db, &dr, &dd ); + iauLtecm ( epj, rm ); + iauLteqec ( epj, dr, dd, &dl, &db ); + iauLtp ( epj, rp ); + iauLtpb ( epj, rpb ); + iauLtpecl ( epj, vec ); + iauLtpequ ( epj, veq ); + iauMoon98 ( date1, date2, pv ); + iauNum00a ( date1, date2, rmatn ); + iauNum00b ( date1, date2, rmatn ); + iauNum06a ( date1, date2, rmatn ); + iauNumat ( epsa, dpsi, deps, rmatn ); + iauNut00a ( date1, date2, &dpsi, &deps ); + iauNut00b ( date1, date2, &dpsi, &deps ); + iauNut06a ( date1, date2, &dpsi, &deps ); + iauNut80 ( date1, date2, &dpsi, &deps ); + iauNutm80 ( date1, date2, rmatn ); + d = iauObl06 ( date1, date2 ); + d = iauObl80 ( date1, date2 ); + iauPb06 ( date1, date2, &bzeta, &bz, &btheta ); + iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa ); + i = iauPlan94 ( date1, date2, np, pv ); + iauPmat00 ( date1, date2, rbp ); + iauPmat06 ( date1, date2, rbp ); + iauPmat76 ( date1, date2, rmatp ); + iauPmpx ( rc, dc, pr, pd, px, rv, pmt, pob, pco ); + i = iauPmsafe ( ra1, dec1, pmr1, pmd1, px1, rv1, + ep1a, ep1b, ep2a, ep2b, + &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); + iauPn00 ( date1, date2, dpsi, deps, + &epsa, rb, rp, rbp, rn, rbpn ); + iauPn00a ( date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); + iauPn00b ( date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); + iauPn06 ( date1, date2, dpsi, deps, + &epsa, rb, rp, rbp, rn, rbpn ); + iauPn06a ( date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); + iauPnm00a ( date1, date2, rbpn ); + iauPnm00b ( date1, date2, rbpn ); + iauPnm06a ( date1, date2, rnpb ); + iauPnm80 ( date1, date2, rmatpn ); + iauP06e ( date1, date2, + &eps0, &psia, &oma, &bpa, &bqa, &pia, &bpia, + &epsa, &chia, &za, &zetaa, &thetaa, &pa, + &gam, &phi, &psi ); + iauPom00 ( xp, yp, sp, rpom ); + iauPr00 ( date1, date2, &dpsipr, &depspr ); + iauPrec76 ( date01, date02, date11, date12, &zeta, &z, &theta ); + i = iauPvstar ( pv, &ra, &dec, &pmr, &pmd, &px, &rv ); + iauPvtob ( elong, phi, hm, xp, yp, sp, theta, pv ); + iauRefco ( phpa, tc, rh, wl, refa, refb ); + d = iauS00 ( date1, date2, x, y ); + d = iauS00a ( date1, date2 ); + d = iauS00b ( date1, date2 ); + d = iauS06 ( date1, date2, x, y ); + d = iauS06a ( date1, date2 ); + d = iauSp00 ( date1, date2 ); + i = iauStarpm ( ra1, dec1, pmr1, pmd1, px1, rv1, + ep1a, ep1b, ep2a, ep2b, + &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2 ); + i = iauStarpv ( ra, dec, pmr, pmd, px, rv, pv ); + i = iauTaitt ( tai1, tai2, &tt1, &tt2 ); + i = iauTaiut1 ( tai1, tai2, dta, &ut11, &ut12 ); + i = iauTaiutc ( tai1, tai2, &utc1, &utc2 ); + i = iauTcbtdb ( tcb1, tcb2, &tdb1, &tdb2 ); + i = iauTcgtt ( tcg1, tcg2, &tt1, &tt2 ); + i = iauTdbtcb ( tdb1, tdb2, &tcb1, &tcb2 ); + i = iauTdbtt ( tdb1, tdb2, dtr, &tt1, &tt2 ); + i = iauTpors ( xi, eta, a, b, &a01, &b01, &a02, &b02 ); + i = iauTporv ( xi, eta, v, v01, v02 ); + iauTpsts ( xi, eta, a0, b0, &a, &b ); + iauTpstv ( xi, eta, v0, v ); + i = iauTpxes ( a, b, a0, b0, &xi, &eta ); + i = iauTpxev ( v, v0, &xi, &eta ); + i = iauTttai ( tt1, tt2, &tai1, &tai2 ); + i = iauTttcg ( tt1, tt2, &tcg1, &tcg2 ); + i = iauTttdb ( tt1, tt2, dtr, &tdb1, &tdb2 ); + i = iauTtut1 ( tt1, tt2, dt, &ut11, &ut12 ); + i = iauUt1tai ( ut11, ut12, &tai1, &tai2 ); + i = iauUt1tt ( ut11, ut12, dt, &tt1, &tt2 ); + i = iauUt1utc ( ut11, ut12, dut, &utc1, &utc2 ); + i = iauUtctai ( utc1, utc2, dta, &tai1, &tai2 ); + i = iauUtcut1 ( utc1, utc2, dut, &ut11, &ut12 ); + iauXy06 ( date1, date2, &x, &y ); + iauXys00a ( date1, date2, &x, &y, &s ); + iauXys00b ( date1, date2, &x, &y, &s ); + iauXys06a ( date1, date2, &x, &y, &s ); + + + + + diff --git a/deps/sofa/20231011/c/doc/sofa_lib.pdf b/deps/sofa/20231011/c/doc/sofa_lib.pdf new file mode 100644 index 0000000000000000000000000000000000000000..887f8de3883583e01cf58b12eda5b9abff5245de GIT binary patch literal 23708 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�)KUj8e&~haqpWhgU)tIk~geg+T@n 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 NiAh*^-yv0|{{>xeC1d~q literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/doc/sofa_pn_c.pdf b/deps/sofa/20231011/c/doc/sofa_pn_c.pdf new file mode 100644 index 0000000000000000000000000000000000000000..180b33ce4764c2174ab2ef03d19c18de43a413e3 GIT binary patch literal 1054150 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

%N6JUGGyF*iwXAWoNgS);~pK*U6_0Yt3|8DW&W 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

o#`icB530Kr;%meCU|g~c5wT67dieBm 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%0DG0y)0yMb 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

RM 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ⅈv6{xid4vun-tq?sR5nn9MV;#W6U{!(JYy@+DjS*Oq5 zsyd*2{xjQ0HA_m{yLU*!t;++4ejRf2`I)}2XZD#p`BU$#Mt{Fp@o9Thr&if}FK2am zwUKiRU8vD@t=;__8sdiG%M9{YQun_WnuPrWid{J>W;WLW=xy>^)}6^ zcehvd-HYCoEwH=C)wVX>Kh52;YgmN1TwMOyni@ksm6bN@p(r=Srihu3P3gYAcY|*3 zI=d^_spam~&xX9LCM-`*=cddZj#x05y(9653K^z$Cc0gbmvw;b@h75Hpzj9)*0 z$9nHp_w?`K|IqKugsB6+ws%@zdq?)Bn}f3(P1=4dd*++zPZn?JkoEb>%N_G~3|N^} zAZ*ih8S8YRV5wZq%Qc@~Ej`==QOAMM7G~G43?_-pjK#oWA>1LiFTqhwy3PcP6F@fN z4WbHIIl#SKtPp8;>d0|Ua@4hSVVpT6C42&|7O+3COe{iYCMYq#M0G-Z75B90F@}+nCX{@Co9?m`R>i62fMM z;4^-e!2!8gDpJH$mm2r*%e6kzvR)pT#s*5A(qt0u$7ApTKstq$URa@A0+ z-~OcCwWpI5{tx%y{b6)Tjlyd*)WW7VXR4lMVod!XSkvN(S%S?%JgpVb$~nl(4Rcp) zM}~=$aC5;DcW!f`2yb09CkpHMmDZ9$5Vah_{LwGMqxUjcq(uKg^U-98_(fNc@6l^~ zrM7Hse?|QhdW;GNPZb2jDZyvLX#ikFQw85?xfpaOH8AVw6O|IJccSuDuquF_1Y^-R z@T-A-h_8az_zAUtQU8U~(YhyI`^Aa2z>|FQ*MKHeMq=}6Kfm4+`px;8-NP&*N5~I{ZT3*kHRwG z9Z0y;&OWr)eZ;_~Bkx%M*mc9sC*D$C$Ek3Cyw^RZey!4b@m}}xo)2EGf3oMs%YP;p zKN^~LdC!wq^SYeamijpK=J7}0cRfOT-S_%N2274i`=M_9{^&;kJy}OX24@9%PE3;C z`hMY!cVCB2HxvV|+}`~zq5jN1nW2?teDBAP`pyTQLX*^!9D3!__=Zy zD_z{v#_DCNvX+JN!VKGtvOy0mk5`_hsUGe7IP+x5l8d{#9vSnc$Hjg%_E&=2*H~A} z;&O=P;N_jWZLmqR$QTn`zFWo6%Aq#y8xza6Ydv-1RLhu}PBj+Zva|R!sqEUCooj4J zymYA7L&eR>&n8Xi*WF2VuhLt~r!@!FNGot_tkxAeiWQ(2uP_BNlt_8a`-`>x2)U4K8@cCq85ggQfij{mrK z^O{ksqr1*NJBsxMaxz5IUbLrg^VV+OdIE-LX%qEfio?XZBH&${PQd8

{?^&!M#6 z=ZxWGuhm)z&T=O7H|VPfp(9$fL=2t}5sR77r-5uiHUe2XBMX_BYtb!F8ePgnH%7k* zg(`s_iYyEs#PBo+Tn~0gZ08%`7Krve`}*<>iO84<$bp>Ykm;nfoAh*T&wZEkDKi%8 zt`_>9xeNA-=&2NSRZc0|PxaryE5c5ixy2JtkWud|n*2ikZE@tcgRE72YxA&}sP z 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�HE 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 Tc>msAXg;agSG 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

ES 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 literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/doc/sofa_vm_c.pdf b/deps/sofa/20231011/c/doc/sofa_vm_c.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0051f2257f54580a8c171bd52e50d2871b84520b GIT binary patch literal 368981 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

q#d#8OV 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�xTs};PVhp% z1QP>Ca=m<=kB-?SWy6m*Qp6@2WF4hgl3QSiVxqZ8Mr6i}_HjcK;2J?qrXe(7|2}Bo>Uc)}M*k($D=~osAFfAio;8*^`b)L5GJ(a)tgor`ab#JT93p?!v zZ{a6pi@`=dxbPz&T#QwC*^(hk2NS(L$2QD_$C$HV5cqAG)Sn|2bArP8_B??xx=6_q znKyZu_S4a)bZmeLC>ZD{!%jz2f-`;hc_i%PZw@8gE9BePPD6Wrem>1M64)9ywuZSB z7@^t*Xz(cty3WIbvC*e&bd+r+aD+iDyO7mBc2ET{O~ZWKGf#7~mpR!}T1m7Y@lq`j zgPw8qVv4fpH`T~=+ZvK}1b~yh;i7S>7NI%Y%Zd`M6cHB0zqf6`tGK<*KA$hmuWx=_-qb4r3c2|rj(xVnya80L12sh)Ob8l_IH(YO zp9aG&KJU-WW9S>|24@I!%X75)!0GB#czQuenc)u>4UP#3jhKkjAvlL@(3KP?;8bH^ z!jw>1Xqa3k$A@rvSah&V9w3ti;AXQ*a{q%xhR#r=4K%o(Aw{|}+(%VzC@9efzD|Nq zHKC#5NfFWV=!Ezf6;21KLZcP`* + +int iauAf2a(char s, int ideg, int iamin, double asec, double *rad) +/* +** - - - - - - - - +** i a u A f 2 a +** - - - - - - - - +** +** Convert degrees, arcminutes, arcseconds to radians. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** s char sign: '-' = negative, otherwise positive +** ideg int degrees +** iamin int arcminutes +** asec double arcseconds +** +** Returned: +** rad double angle in radians +** +** Returned (function value): +** int status: 0 = OK +** 1 = ideg outside range 0-359 +** 2 = iamin outside range 0-59 +** 3 = asec outside range 0-59.999... +** +** Notes: +** +** 1) The result is computed even if any of the range checks fail. +** +** 2) Negative ideg, iamin and/or asec produce a warning status, but +** the absolute value is used in the conversion. +** +** 3) If there are multiple errors, the status value reflects only the +** first, the smallest taking precedence. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Compute the interval. */ + *rad = ( s == '-' ? -1.0 : 1.0 ) * + ( 60.0 * ( 60.0 * ( (double) abs(ideg) ) + + ( (double) abs(iamin) ) ) + + fabs(asec) ) * DAS2R; + +/* Validate arguments and return status. */ + if ( ideg < 0 || ideg > 359 ) return 1; + if ( iamin < 0 || iamin > 59 ) return 2; + if ( asec < 0.0 || asec >= 60.0 ) return 3; + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/anp.c b/deps/sofa/20231011/c/src/anp.c new file mode 100644 index 0000000..13a80e0 --- /dev/null +++ b/deps/sofa/20231011/c/src/anp.c @@ -0,0 +1,135 @@ +#include "sofa.h" +#include "sofam.h" + +double iauAnp(double a) +/* +** - - - - - - - +** i a u A n p +** - - - - - - - +** +** Normalize angle into the range 0 <= a < 2pi. +** +** 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 angle (radians) +** +** Returned (function value): +** double angle in range 0-2pi +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double w; + + + w = fmod(a, D2PI); + if (w < 0) w += D2PI; + + return w; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/anpm.c b/deps/sofa/20231011/c/src/anpm.c new file mode 100644 index 0000000..96dc85e --- /dev/null +++ b/deps/sofa/20231011/c/src/anpm.c @@ -0,0 +1,135 @@ +#include "sofa.h" +#include "sofam.h" + +double iauAnpm(double a) +/* +** - - - - - - - - +** i a u A n p m +** - - - - - - - - +** +** Normalize angle into the range -pi <= a < +pi. +** +** 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 angle (radians) +** +** Returned (function value): +** double angle in range +/-pi +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double w; + + + w = fmod(a, D2PI); + if (fabs(w) >= DPI) w -= dsign(D2PI, a); + + return w; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apcg.c b/deps/sofa/20231011/c/src/apcg.c new file mode 100644 index 0000000..daefa96 --- /dev/null +++ b/deps/sofa/20231011/c/src/apcg.c @@ -0,0 +1,222 @@ +#include "sofa.h" + +void iauApcg(double date1, double date2, + double ebpv[2][3], double ehp[3], + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p c g +** - - - - - - - - +** +** For a geocentric observer, prepare star-independent astrometry +** parameters for transformations between ICRS and GCRS coordinates. +** The Earth ephemeris is supplied by the caller. +** +** The parameters produced by this function are required in the +** parallax, light deflection and aberration parts of the astrometric +** transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** ebpv double[2][3] Earth barycentric pos/vel (au, au/day) +** ehp double[3] Earth heliocentric position (au) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 4) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauApcs astrometry parameters, ICRS-GCRS, space observer +** +** This revision: 2013 October 9 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Geocentric observer */ + double pv[2][3] = { { 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 } }; + + +/* Compute the star-independent astrometry parameters. */ + iauApcs(date1, date2, pv, ebpv, ehp, astrom); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apcg13.c b/deps/sofa/20231011/c/src/apcg13.c new file mode 100644 index 0000000..0910e43 --- /dev/null +++ b/deps/sofa/20231011/c/src/apcg13.c @@ -0,0 +1,225 @@ +#include "sofa.h" + +void iauApcg13(double date1, double date2, iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p c g 1 3 +** - - - - - - - - - - +** +** For a geocentric observer, prepare star-independent astrometry +** parameters for transformations between ICRS and GCRS coordinates. +** The caller supplies the date, and SOFA models are used to predict +** the Earth ephemeris. +** +** The parameters produced by this function are required in the +** parallax, light deflection and aberration parts of the astrometric +** transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) In cases where the caller wishes to supply his own Earth +** ephemeris, the function iauApcg can be used instead of the present +** function. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 5) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauEpv00 Earth position and velocity +** iauApcg astrometry parameters, ICRS-GCRS, geocenter +** +** This revision: 2013 October 9 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double ehpv[2][3], ebpv[2][3]; + + +/* Earth barycentric & heliocentric position/velocity (au, au/d). */ + (void) iauEpv00(date1, date2, ehpv, ebpv); + +/* Compute the star-independent astrometry parameters. */ + iauApcg(date1, date2, ebpv, ehpv[0], astrom); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apci.c b/deps/sofa/20231011/c/src/apci.c new file mode 100644 index 0000000..122ff7e --- /dev/null +++ b/deps/sofa/20231011/c/src/apci.c @@ -0,0 +1,231 @@ +#include "sofa.h" + +void iauApci(double date1, double date2, + double ebpv[2][3], double ehp[3], + double x, double y, double s, + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p c i +** - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and geocentric CIRS +** coordinates. The Earth ephemeris and CIP/CIO are supplied by the +** caller. +** +** The parameters produced by this function are required in the +** parallax, light deflection, aberration, and bias-precession-nutation +** parts of the astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** ebpv double[2][3] Earth barycentric position/velocity (au, au/day) +** ehp double[3] Earth heliocentric position (au) +** x,y double CIP X,Y (components of unit vector) +** s double the CIO locator s (radians) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) In cases where the caller does not wish to provide the Earth +** ephemeris and CIP/CIO, the function iauApci13 can be used instead +** of the present function. This computes the required quantities +** using other SOFA functions. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 5) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauApcg astrometry parameters, ICRS-GCRS, geocenter +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** +** This revision: 2013 September 25 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Star-independent astrometry parameters for geocenter. */ + iauApcg(date1, date2, ebpv, ehp, astrom); + +/* CIO based BPN matrix. */ + iauC2ixys(x, y, s, astrom->bpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apci13.c b/deps/sofa/20231011/c/src/apci13.c new file mode 100644 index 0000000..e32e370 --- /dev/null +++ b/deps/sofa/20231011/c/src/apci13.c @@ -0,0 +1,243 @@ +#include "sofa.h" + +void iauApci13(double date1, double date2, + iauASTROM *astrom, double *eo) +/* +** - - - - - - - - - - +** i a u A p c i 1 3 +** - - - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and geocentric CIRS +** coordinates. The caller supplies the date, and SOFA models are used +** to predict the Earth ephemeris and CIP/CIO. +** +** The parameters produced by this function are required in the +** parallax, light deflection, aberration, and bias-precession-nutation +** parts of the astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** eo double* equation of the origins (ERA-GST, radians) +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) In cases where the caller wishes to supply his own Earth +** ephemeris and CIP/CIO, the function iauApci can be used instead +** of the present function. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 5) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauEpv00 Earth position and velocity +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauApci astrometry parameters, ICRS-CIRS +** iauEors equation of the origins, given NPB matrix and s +** +** This revision: 2022 May 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double ehpv[2][3], ebpv[2][3], r[3][3], x, y, s; + + +/* Earth barycentric & heliocentric position/velocity (au, au/d). */ + (void) iauEpv00(date1, date2, ehpv, ebpv); + +/* Form the equinox based BPN matrix, IAU 2006/2000A. */ + iauPnm06a(date1, date2, r); + +/* Extract CIP X,Y. */ + iauBpn2xy(r, &x, &y); + +/* Obtain CIO locator s. */ + s = iauS06(date1, date2, x, y); + +/* Compute the star-independent astrometry parameters. */ + iauApci(date1, date2, ebpv, ehpv[0], x, y, s, astrom); + +/* Equation of the origins. */ + *eo = iauEors(r, s); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apco.c b/deps/sofa/20231011/c/src/apco.c new file mode 100644 index 0000000..00f0bae --- /dev/null +++ b/deps/sofa/20231011/c/src/apco.c @@ -0,0 +1,325 @@ +#include "sofa.h" +#include "sofam.h" + +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) +/* +** - - - - - - - - +** i a u A p c o +** - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and observed +** coordinates. The caller supplies the Earth ephemeris, the Earth +** rotation information and the refraction constants as well as the +** site coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** ebpv double[2][3] Earth barycentric PV (au, au/day, Note 2) +** ehp double[3] Earth heliocentric P (au, Note 2) +** x,y double CIP X,Y (components of unit vector) +** s double the CIO locator s (radians) +** theta double Earth rotation angle (radians) +** elong double longitude (radians, east +ve, Note 3) +** phi double latitude (geodetic, radians, Note 3) +** hm double height above ellipsoid (m, geodetic, Note 3) +** xp,yp double polar motion coordinates (radians, Note 4) +** sp double the TIO locator s' (radians, Note 4) +** refa double refraction constant A (radians, Note 5) +** refb double refraction constant B (radians, Note 5) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double adjusted longitude (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) The vectors eb, eh, and all the astrom vectors, are with respect +** to BCRS axes. +** +** 3) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN +** CONVENTION: the longitude required by the present function is +** right-handed, i.e. east-positive, in accordance with geographical +** convention. +** +** The adjusted longitude stored in the astrom array takes into +** account the TIO locator and polar motion. +** +** 4) xp and yp are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions), measured along the +** meridians 0 and 90 deg west respectively. sp is the TIO locator +** s', in radians, which positions the Terrestrial Intermediate +** Origin on the equator. For many applications, xp, yp and +** (especially) sp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto the +** local meridian. +** +** 5) The refraction constants refa and refb are for use in a +** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed +** (i.e. refracted) zenith distance and dZ is the amount of +** refraction. +** +** 6) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 7) In cases where the caller does not wish to provide the Earth +** Ephemeris, the Earth rotation information and refraction +** constants, the function iauApco13 can be used instead of the +** present function. This starts from UTC and weather readings etc. +** and computes suitable values using other SOFA functions. +** +** 8) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 9) The context structure astrom produced by this function is used by +** iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauRx rotate around X-axis +** iauAnpm normalize angle into range +/- pi +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** iauPvtob position/velocity of terrestrial station +** iauTrxpv product of transpose of r-matrix and pv-vector +** iauApcs astrometry parameters, ICRS-GCRS, space observer +** iauCr copy r-matrix +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3], a, b, eral, c, pvc[2][3], pv[2][3]; + + +/* Form the rotation matrix, CIRS to apparent [HA,Dec]. */ + iauIr(r); + iauRz(theta+sp, r); + iauRy(-xp, r); + iauRx(-yp, r); + iauRz(elong, r); + +/* Solve for local Earth rotation angle. */ + a = r[0][0]; + b = r[0][1]; + eral = ( a != 0.0 || b != 0.0 ) ? atan2(b, a) : 0.0; + astrom->eral = eral; + +/* Solve for polar motion [X,Y] with respect to local meridian. */ + a = r[0][0]; + c = r[0][2]; + astrom->xpl = atan2(c, sqrt(a*a+b*b)); + a = r[1][2]; + b = r[2][2]; + astrom->ypl = ( a != 0.0 || b != 0.0 ) ? -atan2(a, b) : 0.0; + +/* Adjusted longitude. */ + astrom->along = iauAnpm(eral - theta); + +/* Functions of latitude. */ + astrom->sphi = sin(phi); + astrom->cphi = cos(phi); + +/* Refraction constants. */ + astrom->refa = refa; + astrom->refb = refb; + +/* Disable the (redundant) diurnal aberration step. */ + astrom->diurab = 0.0; + +/* CIO based BPN matrix. */ + iauC2ixys(x, y, s, r); + +/* Observer's geocentric position and velocity (m, m/s, CIRS). */ + iauPvtob(elong, phi, hm, xp, yp, sp, theta, pvc); + +/* Rotate into GCRS. */ + iauTrxpv(r, pvc, pv); + +/* ICRS <-> GCRS parameters. */ + iauApcs(date1, date2, pv, ebpv, ehp, astrom); + +/* Store the CIO based BPN matrix. */ + iauCr(r, astrom->bpn ); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apco13.c b/deps/sofa/20231011/c/src/apco13.c new file mode 100644 index 0000000..6874919 --- /dev/null +++ b/deps/sofa/20231011/c/src/apco13.c @@ -0,0 +1,329 @@ +#include "sofa.h" +#include "sofam.h" + +int iauApco13(double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + iauASTROM *astrom, double *eo) +/* +** - - - - - - - - - - +** i a u A p c o 1 3 +** - - - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and observed +** coordinates. The caller supplies UTC, site coordinates, ambient air +** conditions and observing wavelength, and SOFA models are used to +** obtain the Earth ephemeris, CIP/CIO and refraction constants. +** +** The parameters produced by this function are required in the +** parallax, light deflection, aberration, and bias-precession-nutation +** parts of the ICRS/CIRS transformations. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 1,2) +** dut1 double UT1-UTC (seconds, Note 3) +** elong double longitude (radians, east +ve, Note 4) +** phi double latitude (geodetic, radians, Note 4) +** hm double height above ellipsoid (m, geodetic, Notes 4,6) +** xp,yp double polar motion coordinates (radians, Note 5) +** phpa double pressure at the observer (hPa = mB, Note 6) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 7) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** eo double* equation of the origins (ERA-GST, radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 2) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 4) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 5) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto +** the local meridian. +** +** 6) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 7) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 8) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 9) In cases where the caller wishes to supply his own Earth +** ephemeris, Earth rotation information and refraction constants, +** the function iauApco can be used instead of the present function. +** +** 10) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 11) The context structure astrom produced by this function is used +** by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. +** +** Called: +** iauUtctai UTC to TAI +** iauTaitt TAI to TT +** iauUtcut1 UTC to UT1 +** iauEpv00 Earth position and velocity +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauRefco refraction constants for given ambient conditions +** iauApco astrometry parameters, ICRS-observed +** iauEors equation of the origins, given NPB matrix and s +** +** This revision: 2022 May 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + double tai1, tai2, tt1, tt2, ut11, ut12, ehpv[2][3], ebpv[2][3], + r[3][3], x, y, s, theta, sp, refa, refb; + + +/* UTC to other time scales. */ + j = iauUtctai(utc1, utc2, &tai1, &tai2); + if ( j < 0 ) return -1; + j = iauTaitt(tai1, tai2, &tt1, &tt2); + j = iauUtcut1(utc1, utc2, dut1, &ut11, &ut12); + if ( j < 0 ) return -1; + +/* Earth barycentric & heliocentric position/velocity (au, au/d). */ + (void) iauEpv00(tt1, tt2, ehpv, ebpv); + +/* Form the equinox based BPN matrix, IAU 2006/2000A. */ + iauPnm06a(tt1, tt2, r); + +/* Extract CIP X,Y. */ + iauBpn2xy(r, &x, &y); + +/* Obtain CIO locator s. */ + s = iauS06(tt1, tt2, x, y); + +/* Earth rotation angle. */ + theta = iauEra00(ut11, ut12); + +/* TIO locator s'. */ + sp = iauSp00(tt1, tt2); + +/* Refraction constants A and B. */ + iauRefco(phpa, tc, rh, wl, &refa, &refb); + +/* Compute the star-independent astrometry parameters. */ + iauApco(tt1, tt2, ebpv, ehpv[0], x, y, s, theta, + elong, phi, hm, xp, yp, sp, refa, refb, astrom); + +/* Equation of the origins. */ + *eo = iauEors(r, s); + +/* Return any warning status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apcs.c b/deps/sofa/20231011/c/src/apcs.c new file mode 100644 index 0000000..e80dcc7 --- /dev/null +++ b/deps/sofa/20231011/c/src/apcs.c @@ -0,0 +1,275 @@ +#include "sofa.h" +#include "sofam.h" + +void iauApcs(double date1, double date2, double pv[2][3], + double ebpv[2][3], double ehp[3], + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p c s +** - - - - - - - - +** +** For an observer whose geocentric position and velocity are known, +** prepare star-independent astrometry parameters for transformations +** between ICRS and GCRS. The Earth ephemeris is supplied by the +** caller. +** +** The parameters produced by this function are required in the space +** motion, parallax, light deflection and aberration parts of the +** astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** pv double[2][3] observer's geocentric pos/vel (m, m/s) +** ebpv double[2][3] Earth barycentric PV (au, au/day) +** ehp double[3] Earth heliocentric P (au) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) Providing separate arguments for (i) the observer's geocentric +** position and velocity and (ii) the Earth ephemeris is done for +** convenience in the geocentric, terrestrial and Earth orbit cases. +** For deep space applications it maybe more convenient to specify +** zero geocentric position and velocity and to supply the +** observer's position and velocity information directly instead of +** with respect to the Earth. However, note the different units: +** m and m/s for the geocentric vectors, au and au/day for the +** heliocentric and barycentric vectors. +** +** 4) In cases where the caller does not wish to provide the Earth +** ephemeris, the function iauApcs13 can be used instead of the +** present function. This computes the Earth ephemeris using the +** SOFA function iauEpv00. +** +** 5) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 6) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauCp copy p-vector +** iauPm modulus of p-vector +** iauPn decompose p-vector into modulus and direction +** iauIr initialize r-matrix to identity +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* au/d to m/s */ + const double AUDMS = DAU/DAYSEC; + +/* Light time for 1 au (day) */ + const double CR = AULT/DAYSEC; + + int i; + double dp, dv, pb[3], vb[3], ph[3], v2, w; + + +/* Time since reference epoch, years (for proper motion calculation). */ + astrom->pmt = ( (date1 - DJ00) + date2 ) / DJY; + +/* Adjust Earth ephemeris to observer. */ + for (i = 0; i < 3; i++) { + dp = pv[0][i] / DAU; + dv = pv[1][i] / AUDMS; + pb[i] = ebpv[0][i] + dp; + vb[i] = ebpv[1][i] + dv; + ph[i] = ehp[i] + dp; + } + +/* Barycentric position of observer (au). */ + iauCp(pb, astrom->eb); + +/* Heliocentric direction and distance (unit vector and au). */ + iauPn(ph, &astrom->em, astrom->eh); + +/* Barycentric vel. in units of c, and reciprocal of Lorenz factor. */ + v2 = 0.0; + for (i = 0; i < 3; i++) { + w = vb[i] * CR; + astrom->v[i] = w; + v2 += w*w; + } + astrom->bm1 = sqrt(1.0 - v2); + +/* Reset the NPB matrix. */ + iauIr(astrom->bpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apcs13.c b/deps/sofa/20231011/c/src/apcs13.c new file mode 100644 index 0000000..9b4d51b --- /dev/null +++ b/deps/sofa/20231011/c/src/apcs13.c @@ -0,0 +1,232 @@ +#include "sofa.h" + +void iauApcs13(double date1, double date2, double pv[2][3], + iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p c s 1 3 +** - - - - - - - - - - +** +** For an observer whose geocentric position and velocity are known, +** prepare star-independent astrometry parameters for transformations +** between ICRS and GCRS. The Earth ephemeris is from SOFA models. +** +** The parameters produced by this function are required in the space +** motion, parallax, light deflection and aberration parts of the +** astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** pv double[2][3] observer's geocentric pos/vel (Note 3) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) The observer's position and velocity pv are geocentric but with +** respect to BCRS axes, and in units of m and m/s. No assumptions +** are made about proximity to the Earth, and the function can be +** used for deep space applications as well as Earth orbit and +** terrestrial. +** +** 4) In cases where the caller wishes to supply his own Earth +** ephemeris, the function iauApcs can be used instead of the present +** function. +** +** 5) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 6) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauEpv00 Earth position and velocity +** iauApcs astrometry parameters, ICRS-GCRS, space observer +** +** This revision: 2013 October 9 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double ehpv[2][3], ebpv[2][3]; + + +/* Earth barycentric & heliocentric position/velocity (au, au/d). */ + (void) iauEpv00(date1, date2, ehpv, ebpv); + +/* Compute the star-independent astrometry parameters. */ + iauApcs(date1, date2, pv, ebpv, ehpv[0], astrom); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/aper.c b/deps/sofa/20231011/c/src/aper.c new file mode 100644 index 0000000..05e31aa --- /dev/null +++ b/deps/sofa/20231011/c/src/aper.c @@ -0,0 +1,203 @@ +#include "sofa.h" + +void iauAper(double theta, iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p e r +** - - - - - - - - +** +** In the star-independent astrometry parameters, update only the +** Earth rotation angle, supplied by the caller explicitly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** theta double Earth rotation angle (radians, Note 2) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double not used +** eb double[3] not used +** eh double[3] not used +** em double not used +** v double[3] not used +** bm1 double not used +** bpn double[3][3] not used +** along double longitude + s' (radians) +** xpl double not used +** ypl double not used +** sphi double not used +** cphi double not used +** diurab double not used +** eral double not used +** refa double not used +** refb double not used +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double "local" Earth rotation angle (radians) +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) This function exists to enable sidereal-tracking applications to +** avoid wasteful recomputation of the bulk of the astrometry +** parameters: only the Earth rotation is updated. +** +** 2) For targets expressed as equinox based positions, such as +** classical geocentric apparent (RA,Dec), the supplied theta can be +** Greenwich apparent sidereal time rather than Earth rotation +** angle. +** +** 3) The function iauAper13 can be used instead of the present +** function, and starts from UT1 rather than ERA itself. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** This revision: 2013 September 25 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + astrom->eral = theta + astrom->along; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/aper13.c b/deps/sofa/20231011/c/src/aper13.c new file mode 100644 index 0000000..5be6694 --- /dev/null +++ b/deps/sofa/20231011/c/src/aper13.c @@ -0,0 +1,222 @@ +#include "sofa.h" + +void iauAper13(double ut11, double ut12, iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p e r 1 3 +** - - - - - - - - - - +** +** In the star-independent astrometry parameters, update only the +** Earth rotation angle. The caller provides UT1, (n.b. not UTC). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ut11 double UT1 as a 2-part... +** ut12 double ...Julian Date (Note 1) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double not used +** eb double[3] not used +** eh double[3] not used +** em double not used +** v double[3] not used +** bm1 double not used +** bpn double[3][3] not used +** along double longitude + s' (radians) +** xpl double not used +** ypl double not used +** sphi double not used +** cphi double not used +** diurab double not used +** eral double not used +** refa double not used +** refb double not used +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double "local" Earth rotation angle (radians) +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The UT1 date (n.b. not UTC) ut11+ut12 is a Julian Date, +** apportioned in any convenient way between the arguments ut11 and +** ut12. For example, JD(UT1)=2450123.7 could be expressed in any +** of these ways, among others: +** +** ut11 ut12 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. The date & time method is +** best matched to the algorithm used: maximum precision is +** delivered when the ut11 argument is for 0hrs UT1 on the day in +** question and the ut12 argument lies in the range 0 to 1, or vice +** versa. +** +** 2) If the caller wishes to provide the Earth rotation angle itself, +** the function iauAper can be used instead. One use of this +** technique is to substitute Greenwich apparent sidereal time and +** thereby to support equinox based transformations directly. +** +** 3) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** Called: +** iauAper astrometry parameters: update ERA +** iauEra00 Earth rotation angle, IAU 2000 +** +** This revision: 2013 September 25 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauAper(iauEra00(ut11,ut12), astrom); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apio.c b/deps/sofa/20231011/c/src/apio.c new file mode 100644 index 0000000..8107d9c --- /dev/null +++ b/deps/sofa/20231011/c/src/apio.c @@ -0,0 +1,271 @@ +#include "sofa.h" +#include "sofam.h" + +void iauApio(double sp, double theta, + double elong, double phi, double hm, double xp, double yp, + double refa, double refb, + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p i o +** - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between CIRS and observed +** coordinates. The caller supplies the Earth orientation information +** and the refraction constants as well as the site coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** sp double the TIO locator s' (radians, Note 1) +** theta double Earth rotation angle (radians) +** elong double longitude (radians, east +ve, Note 2) +** phi double geodetic latitude (radians, Note 2) +** hm double height above ellipsoid (m, geodetic Note 2) +** xp,yp double polar motion coordinates (radians, Note 3) +** refa double refraction constant A (radians, Note 4) +** refb double refraction constant B (radians, Note 4) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double adjusted longitude (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Notes: +** +** 1) sp, the TIO locator s', is a tiny quantity needed only by the +** most precise applications. It can either be set to zero or +** predicted using the SOFA function iauSp00. +** +** 2) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 3) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many applications, +** xp and yp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto the +** local meridian. +** +** 4) The refraction constants refa and refb are for use in a +** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed +** (i.e. refracted) zenith distance and dZ is the amount of +** refraction. +** +** 5) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 6) In cases where the caller does not wish to provide the Earth +** rotation information and refraction constants, the function +** iauApio13 can be used instead of the present function. This +** starts from UTC and weather readings etc. and computes suitable +** values using other SOFA functions. +** +** 7) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 8) The context structure astrom produced by this function is used by +** iauAtioq and iauAtoiq. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauRx rotate around X-axis +** iauAnpm normalize angle into range +/- pi +** iauPvtob position/velocity of terrestrial station +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3], a, b, eral, c, pv[2][3]; + + +/* Form the rotation matrix, CIRS to apparent [HA,Dec]. */ + iauIr(r); + iauRz(theta+sp, r); + iauRy(-xp, r); + iauRx(-yp, r); + iauRz(elong, r); + +/* Solve for local Earth rotation angle. */ + a = r[0][0]; + b = r[0][1]; + eral = ( a != 0.0 || b != 0.0 ) ? atan2(b, a) : 0.0; + astrom->eral = eral; + +/* Solve for polar motion [X,Y] with respect to local meridian. */ + a = r[0][0]; + c = r[0][2]; + astrom->xpl = atan2(c, sqrt(a*a+b*b)); + a = r[1][2]; + b = r[2][2]; + astrom->ypl = ( a != 0.0 || b != 0.0 ) ? -atan2(a, b) : 0.0; + +/* Adjusted longitude. */ + astrom->along = iauAnpm(eral - theta); + +/* Functions of latitude. */ + astrom->sphi = sin(phi); + astrom->cphi = cos(phi); + +/* Observer's geocentric position and velocity (m, m/s, CIRS). */ + iauPvtob(elong, phi, hm, xp, yp, sp, theta, pv); + +/* Magnitude of diurnal aberration vector. */ + astrom->diurab = sqrt(pv[1][0]*pv[1][0]+pv[1][1]*pv[1][1]) / CMPS; + +/* Refraction constants. */ + astrom->refa = refa; + astrom->refb = refb; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/apio13.c b/deps/sofa/20231011/c/src/apio13.c new file mode 100644 index 0000000..79a0a0a --- /dev/null +++ b/deps/sofa/20231011/c/src/apio13.c @@ -0,0 +1,301 @@ +#include "sofa.h" +#include "sofam.h" + +int iauApio13(double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p i o 1 3 +** - - - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between CIRS and observed +** coordinates. The caller supplies UTC, site coordinates, ambient air +** conditions and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 1,2) +** dut1 double UT1-UTC (seconds) +** elong double longitude (radians, east +ve, Note 3) +** phi double geodetic latitude (radians, Note 3) +** hm double height above ellipsoid (m, geodetic Notes 4,6) +** xp,yp double polar motion coordinates (radians, Note 5) +** phpa double pressure at the observer (hPa = mB, Note 6) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 7) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 2) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 4) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 5) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many applications, +** xp and yp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto +** the local meridian. +** +** 6) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to the +** pressure and that an accurate phpa value is important for +** precise work. +** +** 7) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 8) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 9) In cases where the caller wishes to supply his own Earth +** rotation information and refraction constants, the function +** iauApc can be used instead of the present function. +** +** 10) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 11) The context structure astrom produced by this function is used +** by iauAtioq and iauAtoiq. +** +** Called: +** iauUtctai UTC to TAI +** iauTaitt TAI to TT +** iauUtcut1 UTC to UT1 +** iauSp00 the TIO locator s', IERS 2000 +** iauEra00 Earth rotation angle, IAU 2000 +** iauRefco refraction constants for given ambient conditions +** iauApio astrometry parameters, CIRS-observed +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + double tai1, tai2, tt1, tt2, ut11, ut12, sp, theta, refa, refb; + + +/* UTC to other time scales. */ + j = iauUtctai(utc1, utc2, &tai1, &tai2); + if ( j < 0 ) return -1; + j = iauTaitt(tai1, tai2, &tt1, &tt2); + j = iauUtcut1(utc1, utc2, dut1, &ut11, &ut12); + if ( j < 0 ) return -1; + +/* TIO locator s'. */ + sp = iauSp00(tt1, tt2); + +/* Earth rotation angle. */ + theta = iauEra00(ut11, ut12); + +/* Refraction constants A and B. */ + iauRefco(phpa, tc, rh, wl, &refa, &refb); + +/* CIRS <-> observed astrometry parameters. */ + iauApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, astrom); + +/* Return any warning status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atcc13.c b/deps/sofa/20231011/c/src/atcc13.c new file mode 100644 index 0000000..c125441 --- /dev/null +++ b/deps/sofa/20231011/c/src/atcc13.c @@ -0,0 +1,185 @@ +#include "sofa.h" + +void iauAtcc13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ra, double *da) +/* +** - - - - - - - - - - +** i a u A t c c 1 3 +** - - - - - - - - - - +** +** Transform a star's ICRS catalog entry (epoch J2000.0) into ICRS +** astrometric place. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc double ICRS right ascension at J2000.0 (radians, Note 1) +** dc double ICRS declination at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 3) +** +** Returned: +** ra,da double* ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** Called: +** iauApci13 astrometry parameters, ICRS-CIRS, 2013 +** iauAtccq quick catalog ICRS to astrometric +** +** This revision: 2021 April 18 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Star-independent astrometry parameters */ + iauASTROM astrom; + + double w; + + +/* The transformation parameters. */ + iauApci13(date1, date2, &astrom, &w); + +/* Catalog ICRS (epoch J2000.0) to astrometric. */ + iauAtccq(rc, dc, pr, pd, px, rv, &astrom, ra, da); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atccq.c b/deps/sofa/20231011/c/src/atccq.c new file mode 100644 index 0000000..3d0341d --- /dev/null +++ b/deps/sofa/20231011/c/src/atccq.c @@ -0,0 +1,184 @@ +#include "sofa.h" + +void iauAtccq(double rc, double dc, + double pr, double pd, double px, double rv, + iauASTROM *astrom, double *ra, double *da) +/* +** - - - - - - - - - +** i a u A t c c q +** - - - - - - - - - +** +** Quick transformation of a star's ICRS catalog entry (epoch J2000.0) +** into ICRS astrometric place, given precomputed star-independent +** astrometry parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** If the parallax and proper motions are zero the transformation has +** no effect. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at J2000.0 (radians) +** pr double RA proper motion (radians/year, Note 3) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ra,da double* ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) All the vectors are with respect to BCRS axes. +** +** 2) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 3) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** Called: +** iauPmpx proper motion and parallax +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** This revision: 2021 April 18 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double p[3], w; + + +/* Proper motion and parallax, giving BCRS coordinate direction. */ + iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, p); + +/* ICRS astrometric RA,Dec. */ + iauC2s(p, &w, da); + *ra = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atci13.c b/deps/sofa/20231011/c/src/atci13.c new file mode 100644 index 0000000..860e1dd --- /dev/null +++ b/deps/sofa/20231011/c/src/atci13.c @@ -0,0 +1,200 @@ +#include "sofa.h" + +void iauAtci13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ri, double *di, double *eo) +/* +** - - - - - - - - - - +** i a u A t c i 1 3 +** - - - - - - - - - - +** +** Transform ICRS star data, epoch J2000.0, to CIRS. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc double ICRS right ascension at J2000.0 (radians, Note 1) +** dc double ICRS declination at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 3) +** +** Returned: +** ri,di double* CIRS geocentric RA,Dec (radians) +** eo double* equation of the origins (ERA-GST, radians, Note 5) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 4) The available accuracy is better than 1 milliarcsecond, limited +** mainly by the precession-nutation model that is used, namely +** IAU 2000A/2006. Very close to solar system bodies, additional +** errors of up to several milliarcseconds can occur because of +** unmodeled light deflection; however, the Sun's contribution is +** taken into account, to first order. The accuracy limitations of +** the SOFA function iauEpv00 (used to compute Earth position and +** velocity) can contribute aberration errors of up to +** 5 microarcseconds. Light deflection at the Sun's limb is +** uncertain at the 0.4 mas level. +** +** 5) Should the transformation to (equinox based) apparent place be +** required rather than (CIO based) intermediate place, subtract the +** equation of the origins from the returned right ascension: +** RA = RI - EO. (The iauAnp function can then be applied, as +** required, to keep the result in the conventional 0-2pi range.) +** +** Called: +** iauApci13 astrometry parameters, ICRS-CIRS, 2013 +** iauAtciq quick ICRS to CIRS +** +** This revision: 2022 May 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Star-independent astrometry parameters */ + iauASTROM astrom; + + +/* The transformation parameters. */ + iauApci13(date1, date2, &astrom, eo); + +/* ICRS (epoch J2000.0) to CIRS. */ + iauAtciq(rc, dc, pr, pd, px, rv, &astrom, ri, di); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atciq.c b/deps/sofa/20231011/c/src/atciq.c new file mode 100644 index 0000000..fc12b8a --- /dev/null +++ b/deps/sofa/20231011/c/src/atciq.c @@ -0,0 +1,193 @@ +#include "sofa.h" + +void iauAtciq(double rc, double dc, + double pr, double pd, double px, double rv, + iauASTROM *astrom, double *ri, double *di) +/* +** - - - - - - - - - +** i a u A t c i q +** - - - - - - - - - +** +** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed +** star-independent astrometry parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** If the parallax and proper motions are zero the iauAtciqz function +** can be used instead. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ri,di double CIRS RA,Dec (radians) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** Called: +** iauPmpx proper motion and parallax +** iauLdsun light deflection by the Sun +** iauAb stellar aberration +** iauRxp product of r-matrix and pv-vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** This revision: 2021 April 19 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double pco[3], pnat[3], ppr[3], pi[3], w; + + +/* Proper motion and parallax, giving BCRS coordinate direction. */ + iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco); + +/* Light deflection by the Sun, giving BCRS natural direction. */ + iauLdsun(pco, astrom->eh, astrom->em, pnat); + +/* Aberration, giving GCRS proper direction. */ + iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr); + +/* Bias-precession-nutation, giving CIRS proper direction. */ + iauRxp(astrom->bpn, ppr, pi); + +/* CIRS RA,Dec. */ + iauC2s(pi, &w, di); + *ri = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atciqn.c b/deps/sofa/20231011/c/src/atciqn.c new file mode 100644 index 0000000..b59a842 --- /dev/null +++ b/deps/sofa/20231011/c/src/atciqn.c @@ -0,0 +1,232 @@ +#include "sofa.h" + +void iauAtciqn(double rc, double dc, double pr, double pd, + double px, double rv, iauASTROM *astrom, + int n, iauLDBODY b[], double *ri, double *di) +/* +** - - - - - - - - - - +** i a u A t c i q n +** - - - - - - - - - - +** +** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed +** star-independent astrometry parameters plus a list of light- +** deflecting bodies. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** +** If the only light-deflecting body to be taken into account is the +** Sun, the iauAtciq function can be used instead. If in addition the +** parallax and proper motions are zero, the iauAtciqz function can be +** used. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at J2000.0 (radians) +** pr double RA proper motion (radians/year, Note 3) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** n int number of bodies (Note 3) +** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): +** bm double mass of the body (solar masses, Note 5) +** dl double deflection limiter (Note 6) +** pv [2][3] barycentric PV of the body (au, au/day) +** +** Returned: +** ri,di double CIRS RA,Dec (radians) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The struct b contains n entries, one for each body to be +** considered. If n = 0, no gravitational light deflection will be +** applied, not even for the Sun. +** +** 4) The struct b should include an entry for the Sun as well as for +** any planet or other body to be taken into account. The entries +** should be in the order in which the light passes the body. +** +** 5) In the entry in the b struct for body i, the mass parameter +** b[i].bm can, as required, be adjusted in order to allow for such +** effects as quadrupole field. +** +** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is +** the angular separation (in radians) between star and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. Example values suitable for a terrestrial +** observer, together with masses, are as follows: +** +** body i b[i].bm b[i].dl +** +** Sun 1.0 6e-6 +** Jupiter 0.00095435 3e-9 +** Saturn 0.00028574 3e-10 +** +** 7) For efficiency, validation of the contents of the b array is +** omitted. The supplied masses must be greater than zero, the +** position and velocity vectors must be right, and the deflection +** limiter greater than zero. +** +** Called: +** iauPmpx proper motion and parallax +** iauLdn light deflection by n bodies +** iauAb stellar aberration +** iauRxp product of r-matrix and pv-vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** This revision: 2021 April 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double pco[3], pnat[3], ppr[3], pi[3], w; + + +/* Proper motion and parallax, giving BCRS coordinate direction. */ + iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco); + +/* Light deflection, giving BCRS natural direction. */ + iauLdn(n, b, astrom->eb, pco, pnat); + +/* Aberration, giving GCRS proper direction. */ + iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr); + +/* Bias-precession-nutation, giving CIRS proper direction. */ + iauRxp(astrom->bpn, ppr, pi); + +/* CIRS RA,Dec. */ + iauC2s(pi, &w, di); + *ri = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atciqz.c b/deps/sofa/20231011/c/src/atciqz.c new file mode 100644 index 0000000..6d044fc --- /dev/null +++ b/deps/sofa/20231011/c/src/atciqz.c @@ -0,0 +1,194 @@ +#include "sofa.h" + +void iauAtciqz(double rc, double dc, iauASTROM *astrom, + double *ri, double *di) +/* +** - - - - - - - - - - +** i a u A t c i q z +** - - - - - - - - - - +** +** Quick ICRS to CIRS transformation, given precomputed star- +** independent astrometry parameters, and assuming zero parallax and +** proper motion. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** The corresponding function for the case of non-zero parallax and +** proper motion is iauAtciq. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS astrometric RA,Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ri,di double CIRS RA,Dec (radians) +** +** Note: +** +** All the vectors are with respect to BCRS axes. +** +** References: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013). +** +** Klioner, Sergei A., "A practical relativistic model for micro- +** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLdsun light deflection due to Sun +** iauAb stellar aberration +** iauRxp product of r-matrix and p-vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range +/- pi +** +** This revision: 2013 October 9 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double pco[3], pnat[3], ppr[3], pi[3], w; + + +/* BCRS coordinate direction (unit vector). */ + iauS2c(rc, dc, pco); + +/* Light deflection by the Sun, giving BCRS natural direction. */ + iauLdsun(pco, astrom->eh, astrom->em, pnat); + +/* Aberration, giving GCRS proper direction. */ + iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr); + +/* Bias-precession-nutation, giving CIRS proper direction. */ + iauRxp(astrom->bpn, ppr, pi); + +/* CIRS RA,Dec. */ + iauC2s(pi, &w, di); + *ri = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atco13.c b/deps/sofa/20231011/c/src/atco13.c new file mode 100644 index 0000000..02d9afe --- /dev/null +++ b/deps/sofa/20231011/c/src/atco13.c @@ -0,0 +1,285 @@ +#include "sofa.h" +#include "sofam.h" + +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 tc, double rh, double wl, + double *aob, double *zob, double *hob, + double *dob, double *rob, double *eo) +/* +** - - - - - - - - - - +** i a u A t c o 1 3 +** - - - - - - - - - - +** +** ICRS RA,Dec to observed place. The caller supplies UTC, site +** coordinates, ambient air conditions and observing wavelength. +** +** SOFA models are used for the Earth ephemeris, bias-precession- +** nutation, Earth orientation and refraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS right ascension at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 3-4) +** dut1 double UT1-UTC (seconds, Note 5) +** elong double longitude (radians, east +ve, Note 6) +** phi double latitude (geodetic, radians, Note 6) +** hm double height above ellipsoid (m, geodetic, Notes 6,8) +** xp,yp double polar motion coordinates (radians, Note 7) +** phpa double pressure at the observer (hPa = mB, Note 8) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 9) +** +** Returned: +** aob double* observed azimuth (radians: N=0,E=90) +** zob double* observed zenith distance (radians) +** hob double* observed hour angle (radians) +** dob double* observed declination (radians) +** rob double* observed right ascension (CIO-based, radians) +** eo double* equation of the origins (ERA-GST, radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 4) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require +** a preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 6) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 7) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 8) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), +** is available, an adequate estimate of hm can be obtained from +** the expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 9) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 10) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted observed +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtco13 and +** iauAtoc13 are self-consistent to better than 1 microarcsecond +** all over the celestial sphere. With refraction included, +** consistency falls off at high zenith distances, but is still +** better than 0.05 arcsec at 85 degrees. +** +** 11) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and RA are related simply through the Earth rotation +** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus +** means the position that would be seen by a perfect equatorial +** with its polar axis aligned to the Earth's axis of rotation. +** +** 12) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApco13 astrometry parameters, ICRS-observed, 2013 +** iauAtciq quick ICRS to CIRS +** iauAtioq quick CIRS to observed +** +** This revision: 2022 May 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + iauASTROM astrom; + double ri, di; + + +/* Star-independent astrometry parameters. */ + j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom, eo); + +/* Abort if bad UTC. */ + if ( j < 0 ) return j; + +/* Transform ICRS to CIRS. */ + iauAtciq(rc, dc, pr, pd, px, rv, &astrom, &ri, &di); + +/* Transform CIRS to observed. */ + iauAtioq(ri, di, &astrom, aob, zob, hob, dob, rob); + +/* Return OK/warning status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atic13.c b/deps/sofa/20231011/c/src/atic13.c new file mode 100644 index 0000000..6f74535 --- /dev/null +++ b/deps/sofa/20231011/c/src/atic13.c @@ -0,0 +1,193 @@ +#include "sofa.h" + +void iauAtic13(double ri, double di, double date1, double date2, + double *rc, double *dc, double *eo) +/* +** - - - - - - - - - - +** i a u A t i c 1 3 +** - - - - - - - - - - +** +** Transform star RA,Dec from geocentric CIRS to ICRS astrometric. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri,di double CIRS geocentric RA,Dec (radians) +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** eo double equation of the origins (ERA-GST, radians, Note 4) +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) Iterative techniques are used for the aberration and light +** deflection corrections so that the functions iauAtic13 (or +** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; +** even at the edge of the Sun's disk the discrepancy is only about +** 1 nanoarcsecond. +** +** 3) The available accuracy is better than 1 milliarcsecond, limited +** mainly by the precession-nutation model that is used, namely +** IAU 2000A/2006. Very close to solar system bodies, additional +** errors of up to several milliarcseconds can occur because of +** unmodeled light deflection; however, the Sun's contribution is +** taken into account, to first order. The accuracy limitations of +** the SOFA function iauEpv00 (used to compute Earth position and +** velocity) can contribute aberration errors of up to +** 5 microarcseconds. Light deflection at the Sun's limb is +** uncertain at the 0.4 mas level. +** +** 4) Should the transformation to (equinox based) J2000.0 mean place +** be required rather than (CIO based) ICRS coordinates, subtract the +** equation of the origins from the returned right ascension: +** RA = RI - EO. (The iauAnp function can then be applied, as +** required, to keep the result in the conventional 0-2pi range.) +** +** Called: +** iauApci13 astrometry parameters, ICRS-CIRS, 2013 +** iauAticq quick CIRS to ICRS astrometric +** +** This revision: 2022 May 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Star-independent astrometry parameters */ + iauASTROM astrom; + + +/* Star-independent astrometry parameters. */ + iauApci13(date1, date2, &astrom, eo); + +/* CIRS to ICRS astrometric. */ + iauAticq(ri, di, &astrom, rc, dc); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/aticq.c b/deps/sofa/20231011/c/src/aticq.c new file mode 100644 index 0000000..1fac8a2 --- /dev/null +++ b/deps/sofa/20231011/c/src/aticq.c @@ -0,0 +1,240 @@ +#include "sofa.h" + +void iauAticq(double ri, double di, iauASTROM *astrom, + double *rc, double *dc) +/* +** - - - - - - - - - +** i a u A t i c q +** - - - - - - - - - +** +** Quick CIRS RA,Dec to ICRS astrometric place, given the star- +** independent astrometry parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] +** or iauApcs[13]. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri,di double CIRS RA,Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) Only the Sun is taken into account in the light deflection +** correction. +** +** 2) Iterative techniques are used for the aberration and light +** deflection corrections so that the functions iauAtic13 (or +** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; +** even at the edge of the Sun's disk the discrepancy is only about +** 1 nanoarcsecond. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauZp zero p-vector +** iauAb stellar aberration +** iauLdsun light deflection by the Sun +** iauC2s p-vector to spherical +** iauAnp normalize angle into range +/- pi +** +** This revision: 2013 October 9 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j, i; + double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r, + after[3]; + + +/* CIRS RA,Dec to Cartesian. */ + iauS2c(ri, di, pi); + +/* Bias-precession-nutation, giving GCRS proper direction. */ + iauTrxp(astrom->bpn, pi, ppr); + +/* Aberration, giving GCRS natural direction. */ + iauZp(d); + for (j = 0; j < 2; j++) { + r2 = 0.0; + for (i = 0; i < 3; i++) { + w = ppr[i] - d[i]; + before[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + before[i] /= r; + } + iauAb(before, astrom->v, astrom->em, astrom->bm1, after); + r2 = 0.0; + for (i = 0; i < 3; i++) { + d[i] = after[i] - before[i]; + w = ppr[i] - d[i]; + pnat[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + pnat[i] /= r; + } + } + +/* Light deflection by the Sun, giving BCRS coordinate direction. */ + iauZp(d); + for (j = 0; j < 5; j++) { + r2 = 0.0; + for (i = 0; i < 3; i++) { + w = pnat[i] - d[i]; + before[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + before[i] /= r; + } + iauLdsun(before, astrom->eh, astrom->em, after); + r2 = 0.0; + for (i = 0; i < 3; i++) { + d[i] = after[i] - before[i]; + w = pnat[i] - d[i]; + pco[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + pco[i] /= r; + } + } + +/* ICRS astrometric RA,Dec. */ + iauC2s(pco, &w, dc); + *rc = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/aticqn.c b/deps/sofa/20231011/c/src/aticqn.c new file mode 100644 index 0000000..18e59be --- /dev/null +++ b/deps/sofa/20231011/c/src/aticqn.c @@ -0,0 +1,278 @@ +#include "sofa.h" + +void iauAticqn(double ri, double di, iauASTROM *astrom, + int n, iauLDBODY b[], double *rc, double *dc) +/* +** - - - - - - - - - - +** i a u A t i c q n +** - - - - - - - - - - +** +** Quick CIRS to ICRS astrometric place transformation, given the star- +** independent astrometry parameters plus a list of light-deflecting +** bodies. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] +** or iauApcs[13]. +* +* If the only light-deflecting body to be taken into account is the +* Sun, the iauAticq function can be used instead. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri,di double CIRS RA,Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** n int number of bodies (Note 3) +** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): +** bm double mass of the body (solar masses, Note 5) +** dl double deflection limiter (Note 6) +** pv [2][3] barycentric PV of the body (au, au/day) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) Iterative techniques are used for the aberration and light +** deflection corrections so that the functions iauAticqn and +** iauAtciqn are accurate inverses; even at the edge of the Sun's +** disk the discrepancy is only about 1 nanoarcsecond. +** +** 2) If the only light-deflecting body to be taken into account is the +** Sun, the iauAticq function can be used instead. +** +** 3) The struct b contains n entries, one for each body to be +** considered. If n = 0, no gravitational light deflection will be +** applied, not even for the Sun. +** +** 4) The struct b should include an entry for the Sun as well as for +** any planet or other body to be taken into account. The entries +** should be in the order in which the light passes the body. +** +** 5) In the entry in the b struct for body i, the mass parameter +** b[i].bm can, as required, be adjusted in order to allow for such +** effects as quadrupole field. +** +** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is +** the angular separation (in radians) between star and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. Example values suitable for a terrestrial +** observer, together with masses, are as follows: +** +** body i b[i].bm b[i].dl +** +** Sun 1.0 6e-6 +** Jupiter 0.00095435 3e-9 +** Saturn 0.00028574 3e-10 +** +** 7) For efficiency, validation of the contents of the b array is +** omitted. The supplied masses must be greater than zero, the +** position and velocity vectors must be right, and the deflection +** limiter greater than zero. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauZp zero p-vector +** iauAb stellar aberration +** iauLdn light deflection by n bodies +** iauC2s p-vector to spherical +** iauAnp normalize angle into range +/- pi +** +** This revision: 2021 January 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j, i; + double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r, + after[3]; + + +/* CIRS RA,Dec to Cartesian. */ + iauS2c(ri, di, pi); + +/* Bias-precession-nutation, giving GCRS proper direction. */ + iauTrxp(astrom->bpn, pi, ppr); + +/* Aberration, giving GCRS natural direction. */ + iauZp(d); + for (j = 0; j < 2; j++) { + r2 = 0.0; + for (i = 0; i < 3; i++) { + w = ppr[i] - d[i]; + before[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + before[i] /= r; + } + iauAb(before, astrom->v, astrom->em, astrom->bm1, after); + r2 = 0.0; + for (i = 0; i < 3; i++) { + d[i] = after[i] - before[i]; + w = ppr[i] - d[i]; + pnat[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + pnat[i] /= r; + } + } + +/* Light deflection, giving BCRS coordinate direction. */ + iauZp(d); + for (j = 0; j < 5; j++) { + r2 = 0.0; + for (i = 0; i < 3; i++) { + w = pnat[i] - d[i]; + before[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + before[i] /= r; + } + iauLdn(n, b, astrom->eb, before, after); + r2 = 0.0; + for (i = 0; i < 3; i++) { + d[i] = after[i] - before[i]; + w = pnat[i] - d[i]; + pco[i] = w; + r2 += w*w; + } + r = sqrt(r2); + for (i = 0; i < 3; i++) { + pco[i] /= r; + } + } + +/* ICRS astrometric RA,Dec. */ + iauC2s(pco, &w, dc); + *rc = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atio13.c b/deps/sofa/20231011/c/src/atio13.c new file mode 100644 index 0000000..c052c6f --- /dev/null +++ b/deps/sofa/20231011/c/src/atio13.c @@ -0,0 +1,264 @@ +#include "sofa.h" +#include "sofam.h" + +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 tc, double rh, double wl, + double *aob, double *zob, double *hob, + double *dob, double *rob) +/* +** - - - - - - - - - - +** i a u A t i o 1 3 +** - - - - - - - - - - +** +** CIRS RA,Dec to observed place. The caller supplies UTC, site +** coordinates, ambient air conditions and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri double CIRS right ascension (CIO-based, radians) +** di double CIRS declination (radians) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 1,2) +** dut1 double UT1-UTC (seconds, Note 3) +** elong double longitude (radians, east +ve, Note 4) +** phi double geodetic latitude (radians, Note 4) +** hm double height above ellipsoid (m, geodetic Notes 4,6) +** xp,yp double polar motion coordinates (radians, Note 5) +** phpa double pressure at the observer (hPa = mB, Note 6) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 7) +** +** Returned: +** aob double* observed azimuth (radians: N=0,E=90) +** zob double* observed zenith distance (radians) +** hob double* observed hour angle (radians) +** dob double* observed declination (radians) +** rob double* observed right ascension (CIO-based, radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 2) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 4) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 5) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 6) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 7) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 8) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and RA are related simply through the Earth rotation +** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus +** means the position that would be seen by a perfect equatorial +** with its polar axis aligned to the Earth's axis of rotation. +** +** 9) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted astrometric +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** 10) The complementary functions iauAtio13 and iauAtoi13 are self- +** consistent to better than 1 microarcsecond all over the +** celestial sphere. +** +** 11) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApio13 astrometry parameters, CIRS-observed, 2013 +** iauAtioq quick CIRS to observed +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + iauASTROM astrom; + + +/* Star-independent astrometry parameters for CIRS->observed. */ + j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom); + +/* Abort if bad UTC. */ + if ( j < 0 ) return j; + +/* Transform CIRS to observed. */ + iauAtioq(ri, di, &astrom, aob, zob, hob, dob, rob); + +/* Return OK/warning status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atioq.c b/deps/sofa/20231011/c/src/atioq.c new file mode 100644 index 0000000..505a96b --- /dev/null +++ b/deps/sofa/20231011/c/src/atioq.c @@ -0,0 +1,289 @@ +#include "sofa.h" + +void iauAtioq(double ri, double di, iauASTROM *astrom, + double *aob, double *zob, + double *hob, double *dob, double *rob) +/* +** - - - - - - - - - +** i a u A t i o q +** - - - - - - - - - +** +** Quick CIRS to observed place transformation. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling iauApio[13] or iauApco[13]. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri double CIRS right ascension +** di double CIRS declination +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** aob double* observed azimuth (radians: N=0,E=90) +** zob double* observed zenith distance (radians) +** hob double* observed hour angle (radians) +** dob double* observed declination (radians) +** rob double* observed right ascension (CIO-based, radians) +** +** Notes: +** +** 1) This function returns zenith distance rather than altitude in +** order to reflect the fact that no allowance is made for +** depression of the horizon. +** +** 2) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted observed +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtioq and +** iauAtoiq are self-consistent to better than 1 microarcsecond all +** over the celestial sphere. With refraction included, consistency +** falls off at high zenith distances, but is still better than +** 0.05 arcsec at 85 degrees. +** +** 3) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 4) The CIRS RA,Dec is obtained from a star catalog mean place by +** allowing for space motion, parallax, the Sun's gravitational lens +** effect, annual aberration and precession-nutation. For star +** positions in the ICRS, these effects can be applied by means of +** the iauAtci13 (etc.) functions. Starting from classical "mean +** place" systems, additional transformations will be needed first. +** +** 5) "Observed" Az,El means the position that would be seen by a +** perfect geodetically aligned theodolite. This is obtained from +** the CIRS RA,Dec by allowing for Earth orientation and diurnal +** aberration, rotating from equator to horizon coordinates, and +** then adjusting for refraction. The HA,Dec is obtained by +** rotating back into equatorial coordinates, and is the position +** that would be seen by a perfect equatorial with its polar axis +** aligned to the Earth's axis of rotation. Finally, the +** (CIO-based) RA is obtained by subtracting the HA from the local +** ERA. +** +** 6) The star-independent CIRS-to-observed-place parameters in ASTROM +** may be computed with iauApio[13] or iauApco[13]. If nothing has +** changed significantly except the time, iauAper[13] may be used to +** perform the requisite adjustment to the astrom structure. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** This revision: 2022 August 30 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Minimum cos(alt) and sin(alt) for refraction purposes */ + const double CELMIN = 1e-6; + const double SELMIN = 0.05; + + double v[3], x, y, z, sx, cx, sy, cy, xhd, yhd, zhd, f, + xhdt, yhdt, zhdt, xaet, yaet, zaet, azobs, r, tz, w, del, + cosdel, xaeo, yaeo, zaeo, zdobs, hmobs, dcobs, raobs; + + +/* CIRS RA,Dec to Cartesian -HA,Dec. */ + iauS2c(ri-astrom->eral, di, v); + x = v[0]; + y = v[1]; + z = v[2]; + +/* Polar motion. */ + sx = sin(astrom->xpl); + cx = cos(astrom->xpl); + sy = sin(astrom->ypl); + cy = cos(astrom->ypl); + xhd = cx*x + sx*z; + yhd = sx*sy*x + cy*y - cx*sy*z; + zhd = -sx*cy*x + sy*y + cx*cy*z; + +/* Diurnal aberration. */ + f = ( 1.0 - astrom->diurab*yhd ); + xhdt = f * xhd; + yhdt = f * ( yhd + astrom->diurab ); + zhdt = f * zhd; + +/* Cartesian -HA,Dec to Cartesian Az,El (S=0,E=90). */ + xaet = astrom->sphi*xhdt - astrom->cphi*zhdt; + yaet = yhdt; + zaet = astrom->cphi*xhdt + astrom->sphi*zhdt; + +/* Azimuth (N=0,E=90). */ + azobs = ( xaet != 0.0 || yaet != 0.0 ) ? atan2(yaet,-xaet) : 0.0; + +/* ---------- */ +/* Refraction */ +/* ---------- */ + +/* Cosine and sine of altitude, with precautions. */ + r = sqrt(xaet*xaet + yaet*yaet); + r = r > CELMIN ? r : CELMIN; + z = zaet > SELMIN ? zaet : SELMIN; + +/* A*tan(z)+B*tan^3(z) model, with Newton-Raphson correction. */ + tz = r/z; + w = astrom->refb*tz*tz; + del = ( astrom->refa + w ) * tz / + ( 1.0 + ( astrom->refa + 3.0*w ) / ( z*z ) ); + +/* Apply the change, giving observed vector. */ + cosdel = 1.0 - del*del/2.0; + f = cosdel - del*z/r; + xaeo = xaet*f; + yaeo = yaet*f; + zaeo = cosdel*zaet + del*r; + +/* Observed ZD. */ + zdobs = atan2(sqrt(xaeo*xaeo+yaeo*yaeo), zaeo); + +/* Az/El vector to HA,Dec vector (both right-handed). */ + v[0] = astrom->sphi*xaeo + astrom->cphi*zaeo; + v[1] = yaeo; + v[2] = - astrom->cphi*xaeo + astrom->sphi*zaeo; + +/* To spherical -HA,Dec. */ + iauC2s ( v, &hmobs, &dcobs ); + +/* Right ascension (with respect to CIO). */ + raobs = astrom->eral + hmobs; + +/* Return the results. */ + *aob = iauAnp(azobs); + *zob = zdobs; + *hob = -hmobs; + *dob = dcobs; + *rob = iauAnp(raobs); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atoc13.c b/deps/sofa/20231011/c/src/atoc13.c new file mode 100644 index 0000000..ee11b8a --- /dev/null +++ b/deps/sofa/20231011/c/src/atoc13.c @@ -0,0 +1,276 @@ +#include "sofa.h" +#include "sofam.h" + +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 tc, double rh, double wl, + double *rc, double *dc) +/* +** - - - - - - - - - - +** i a u A t o c 1 3 +** - - - - - - - - - - +** +** Observed place at a groundbased site to to ICRS astrometric RA,Dec. +** The caller supplies UTC, site coordinates, ambient air conditions +** and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) +** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) +** ob2 double observed ZD or Dec (radians) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 3,4) +** dut1 double UT1-UTC (seconds, Note 5) +** elong double longitude (radians, east +ve, Note 6) +** phi double geodetic latitude (radians, Note 6) +** hm double height above ellipsoid (m, geodetic Notes 6,8) +** xp,yp double polar motion coordinates (radians, Note 7) +** phpa double pressure at the observer (hPa = mB, Note 8) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 9) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 4) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and (CIO-based) RA are related simply through the +** Earth rotation angle and the site longitude. "Observed" RA,Dec +** or HA,Dec thus means the position that would be seen by a +** perfect equatorial with its polar axis aligned to the Earth's +** axis of rotation. +** +** 2) Only the first character of the type argument is significant. +** "R" or "r" indicates that ob1 and ob2 are the observed right +** ascension (CIO-based) and declination; "H" or "h" indicates +** that they are hour angle (west +ve) and declination; anything +** else ("A" or "a" is recommended) indicates that ob1 and ob2 are +** azimuth (north zero, east 90 deg) and zenith distance. +** +** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 6) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 7) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 8) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 9) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 10) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted astrometric +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtco13 and +** iauAtoc13 are self-consistent to better than 1 microarcsecond +** all over the celestial sphere. With refraction included, +** consistency falls off at high zenith distances, but is still +** better than 0.05 arcsec at 85 degrees. +** +** 11) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApco13 astrometry parameters, ICRS-observed +** iauAtoiq quick observed to CIRS +** iauAticq quick CIRS to ICRS +** +** This revision: 2022 August 30 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + iauASTROM astrom; + double eo, ri, di; + + +/* Star-independent astrometry parameters. */ + j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom, &eo); + +/* Abort if bad UTC. */ + if ( j < 0 ) return j; + +/* Transform observed to CIRS. */ + iauAtoiq(type, ob1, ob2, &astrom, &ri, &di); + +/* Transform CIRS to ICRS. */ + iauAticq(ri, di, &astrom, rc, dc); + +/* Return OK/warning status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atoi13.c b/deps/sofa/20231011/c/src/atoi13.c new file mode 100644 index 0000000..12e7e83 --- /dev/null +++ b/deps/sofa/20231011/c/src/atoi13.c @@ -0,0 +1,271 @@ +#include "sofa.h" +#include "sofam.h" + +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 tc, double rh, double wl, + double *ri, double *di) +/* +** - - - - - - - - - - +** i a u A t o i 1 3 +** - - - - - - - - - - +** +** Observed place to CIRS. The caller supplies UTC, site coordinates, +** ambient air conditions and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) +** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) +** ob2 double observed ZD or Dec (radians) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 3,4) +** dut1 double UT1-UTC (seconds, Note 5) +** elong double longitude (radians, east +ve, Note 6) +** phi double geodetic latitude (radians, Note 6) +** hm double height above the ellipsoid (meters, Notes 6,8) +** xp,yp double polar motion coordinates (radians, Note 7) +** phpa double pressure at the observer (hPa = mB, Note 8) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 9) +** +** Returned: +** ri double* CIRS right ascension (CIO-based, radians) +** di double* CIRS declination (radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and (CIO-based) RA are related simply through the +** Earth rotation angle and the site longitude. "Observed" RA,Dec +** or HA,Dec thus means the position that would be seen by a +** perfect equatorial with its polar axis aligned to the Earth's +** axis of rotation. +** +** 2) Only the first character of the type argument is significant. +** "R" or "r" indicates that ob1 and ob2 are the observed right +** ascension and declination; "H" or "h" indicates that they are +** hour angle (west +ve) and declination; anything else ("A" or +** "a" is recommended) indicates that ob1 and ob2 are azimuth +** (north zero, east 90 deg) and zenith distance. +** +** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 6) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 7) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 8) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 9) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 10) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted astrometric +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtio13 and +** iauAtoi13 are self-consistent to better than 1 microarcsecond +** all over the celestial sphere. With refraction included, +** consistency falls off at high zenith distances, but is still +** better than 0.05 arcsec at 85 degrees. +** +** 12) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApio13 astrometry parameters, CIRS-observed, 2013 +** iauAtoiq quick observed to CIRS +** +** This revision: 2022 August 30 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + iauASTROM astrom; + + +/* Star-independent astrometry parameters for CIRS->observed. */ + j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom); + +/* Abort if bad UTC. */ + if ( j < 0 ) return j; + +/* Transform observed to CIRS. */ + iauAtoiq(type, ob1, ob2, &astrom, ri, di); + +/* Return OK/warning status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/atoiq.c b/deps/sofa/20231011/c/src/atoiq.c new file mode 100644 index 0000000..e853bca --- /dev/null +++ b/deps/sofa/20231011/c/src/atoiq.c @@ -0,0 +1,300 @@ +#include "sofa.h" + +void iauAtoiq(const char *type, + double ob1, double ob2, iauASTROM *astrom, + double *ri, double *di) +/* +** - - - - - - - - - +** i a u A t o i q +** - - - - - - - - - +** +** Quick observed place to CIRS, given the star-independent astrometry +** parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling iauApio[13] or iauApco[13]. +** +** Status: support function. +** +** Given: +** type char[] type of coordinates: "R", "H" or "A" (Note 1) +** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) +** ob2 double observed ZD or Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ri double* CIRS right ascension (CIO-based, radians) +** di double* CIRS declination (radians) +** +** Notes: +** +** 1) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. This is related to +** the observed HA,Dec via the standard rotation, using the geodetic +** latitude (corrected for polar motion), while the observed HA and +** (CIO-based) RA are related simply through the Earth rotation +** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus +** means the position that would be seen by a perfect equatorial +** with its polar axis aligned to the Earth's axis of rotation. +** +** 2) Only the first character of the type argument is significant. +** "R" or "r" indicates that ob1 and ob2 are the observed right +** ascension (CIO-based) and declination; "H" or "h" indicates that +** they are hour angle (west +ve) and declination; anything else +** ("A" or "a" is recommended) indicates that ob1 and ob2 are +** azimuth (north zero, east 90 deg) and zenith distance. (Zenith +** distance is used rather than altitude in order to reflect the +** fact that no allowance is made for depression of the horizon.) +** +** 3) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted intermediate +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better than +** 20 arcmin (optical) or 25 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtioq and +** iauAtoiq are self-consistent to better than 1 microarcsecond all +** over the celestial sphere. With refraction included, consistency +** falls off at high zenith distances, but is still better than +** 0.05 arcsec at 85 degrees. +** +** 4) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** This revision: 2022 August 30 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Minimum sin(alt) for refraction purposes */ + const double SELMIN = 0.05; + + int c; + double c1, c2, sphi, cphi, ce, xaeo, yaeo, zaeo, v[3], + xmhdo, ymhdo, zmhdo, az, sz, zdo, refa, refb, tz, dref, + zdt, xaet, yaet, zaet, xmhda, ymhda, zmhda, + f, xhd, yhd, zhd, sx, cx, sy, cy, hma; + + +/* Coordinate type. */ + c = (int) type[0]; + +/* Coordinates. */ + c1 = ob1; + c2 = ob2; + +/* Sin, cos of latitude. */ + sphi = astrom->sphi; + cphi = astrom->cphi; + +/* Standardize coordinate type. */ + if ( c == 'r' || c == 'R' ) { + c = 'R'; + } else if ( c == 'h' || c == 'H' ) { + c = 'H'; + } else { + c = 'A'; + } + +/* If Az,ZD, convert to Cartesian (S=0,E=90). */ + if ( c == 'A' ) { + ce = sin(c2); + xaeo = - cos(c1) * ce; + yaeo = sin(c1) * ce; + zaeo = cos(c2); + + } else { + + /* If RA,Dec, convert to HA,Dec. */ + if ( c == 'R' ) c1 = astrom->eral - c1; + + /* To Cartesian -HA,Dec. */ + iauS2c ( -c1, c2, v ); + xmhdo = v[0]; + ymhdo = v[1]; + zmhdo = v[2]; + + /* To Cartesian Az,El (S=0,E=90). */ + xaeo = sphi*xmhdo - cphi*zmhdo; + yaeo = ymhdo; + zaeo = cphi*xmhdo + sphi*zmhdo; + } + +/* Azimuth (S=0,E=90). */ + az = ( xaeo != 0.0 || yaeo != 0.0 ) ? atan2(yaeo,xaeo) : 0.0; + +/* Sine of observed ZD, and observed ZD. */ + sz = sqrt ( xaeo*xaeo + yaeo*yaeo ); + zdo = atan2 ( sz, zaeo ); + +/* +** Refraction +** ---------- +*/ + +/* Fast algorithm using two constant model. */ + refa = astrom->refa; + refb = astrom->refb; + tz = sz / ( zaeo > SELMIN ? zaeo : SELMIN ); + dref = ( refa + refb*tz*tz ) * tz; + zdt = zdo + dref; + +/* To Cartesian Az,ZD. */ + ce = sin(zdt); + xaet = cos(az) * ce; + yaet = sin(az) * ce; + zaet = cos(zdt); + +/* Cartesian Az,ZD to Cartesian -HA,Dec. */ + xmhda = sphi*xaet + cphi*zaet; + ymhda = yaet; + zmhda = - cphi*xaet + sphi*zaet; + +/* Diurnal aberration. */ + f = ( 1.0 + astrom->diurab*ymhda ); + xhd = f * xmhda; + yhd = f * ( ymhda - astrom->diurab ); + zhd = f * zmhda; + +/* Polar motion. */ + sx = sin(astrom->xpl); + cx = cos(astrom->xpl); + sy = sin(astrom->ypl); + cy = cos(astrom->ypl); + v[0] = cx*xhd + sx*sy*yhd - sx*cy*zhd; + v[1] = cy*yhd + sy*zhd; + v[2] = sx*xhd - cx*sy*yhd + cx*cy*zhd; + +/* To spherical -HA,Dec. */ + iauC2s(v, &hma, di); + +/* Right ascension. */ + *ri = iauAnp(astrom->eral + hma); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/bi00.c b/deps/sofa/20231011/c/src/bi00.c new file mode 100644 index 0000000..fa9f67a --- /dev/null +++ b/deps/sofa/20231011/c/src/bi00.c @@ -0,0 +1,168 @@ +#include "sofa.h" +#include "sofam.h" + +void iauBi00(double *dpsibi, double *depsbi, double *dra) +/* +** - - - - - - - - +** i a u B i 0 0 +** - - - - - - - - +** +** Frame bias components of IAU 2000 precession-nutation models; part +** of the Mathews-Herring-Buffett (MHB2000) nutation series, with +** additions. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Returned: +** dpsibi,depsbi double longitude and obliquity corrections +** dra double the ICRS RA of the J2000.0 mean equinox +** +** Notes: +** +** 1) The frame bias corrections in longitude and obliquity (radians) +** are required in order to correct for the offset between the GCRS +** pole and the mean J2000.0 pole. They define, with respect to the +** GCRS frame, a J2000.0 mean pole that is consistent with the rest +** of the IAU 2000A precession-nutation model. +** +** 2) In addition to the displacement of the pole, the complete +** description of the frame bias requires also an offset in right +** ascension. This is not part of the IAU 2000A model, and is from +** Chapront et al. (2002). It is returned in radians. +** +** 3) This is a supplemented implementation of one aspect of the IAU +** 2000A nutation model, formally adopted by the IAU General +** Assembly in 2000, namely MHB2000 (Mathews et al. 2002). +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G., Astron. +** Astrophys., 387, 700, 2002. +** +** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation +** and precession: New nutation series for nonrigid Earth and +** insights into the Earth's interior", J.Geophys.Res., 107, B4, +** 2002. The MHB2000 code itself was obtained on 2002 September 9 +** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* The frame bias corrections in longitude and obliquity */ + const double DPBIAS = -0.041775 * DAS2R, + DEBIAS = -0.0068192 * DAS2R; + +/* The ICRS RA of the J2000.0 equinox (Chapront et al., 2002) */ + const double DRA0 = -0.0146 * DAS2R; + + +/* Return the results (which are fixed). */ + *dpsibi = DPBIAS; + *depsbi = DEBIAS; + *dra = DRA0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/bp00.c b/deps/sofa/20231011/c/src/bp00.c new file mode 100644 index 0000000..5c7b796 --- /dev/null +++ b/deps/sofa/20231011/c/src/bp00.c @@ -0,0 +1,223 @@ +#include "sofa.h" +#include "sofam.h" + +void iauBp00(double date1, double date2, + double rb[3][3], double rp[3][3], double rbp[3][3]) +/* +** - - - - - - - - +** i a u B p 0 0 +** - - - - - - - - +** +** Frame bias and precession, IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rb double[3][3] frame bias matrix (Note 2) +** rp double[3][3] precession matrix (Note 3) +** rbp double[3][3] bias-precession matrix (Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by +** applying frame bias. +** +** 3) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 4) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 5) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the order given. +** +** Called: +** iauBi00 frame bias components, IAU 2000 +** iauPr00 IAU 2000 precession adjustments +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRy rotate around Y-axis +** iauRz rotate around Z-axis +** iauCr copy r-matrix +** iauRxr product of two r-matrices +** +** Reference: +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* J2000.0 obliquity (Lieske et al. 1977) */ + const double EPS0 = 84381.448 * DAS2R; + + double t, dpsibi, depsbi, dra0, psia77, oma77, chia, + dpsipr, depspr, psia, oma, rbw[3][3]; + + +/* Interval between fundamental epoch J2000.0 and current date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Frame bias. */ + iauBi00(&dpsibi, &depsbi, &dra0); + +/* Precession angles (Lieske et al. 1977) */ + psia77 = (5038.7784 + (-1.07259 + (-0.001147) * t) * t) * t * DAS2R; + oma77 = EPS0 + ((0.05127 + (-0.007726) * t) * t) * t * DAS2R; + chia = ( 10.5526 + (-2.38064 + (-0.001125) * t) * t) * t * DAS2R; + +/* Apply IAU 2000 precession corrections. */ + iauPr00(date1, date2, &dpsipr, &depspr); + psia = psia77 + dpsipr; + oma = oma77 + depspr; + +/* Frame bias matrix: GCRS to J2000.0. */ + iauIr(rbw); + iauRz(dra0, rbw); + iauRy(dpsibi*sin(EPS0), rbw); + iauRx(-depsbi, rbw); + iauCr(rbw, rb); + +/* Precession matrix: J2000.0 to mean of date. */ + iauIr(rp); + iauRx(EPS0, rp); + iauRz(-psia, rp); + iauRx(-oma, rp); + iauRz(chia, rp); + +/* Bias-precession matrix: GCRS to mean of date. */ + iauRxr(rp, rbw, rbp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/bp06.c b/deps/sofa/20231011/c/src/bp06.c new file mode 100644 index 0000000..9e53d95 --- /dev/null +++ b/deps/sofa/20231011/c/src/bp06.c @@ -0,0 +1,194 @@ +#include "sofa.h" +#include "sofam.h" + +void iauBp06(double date1, double date2, + double rb[3][3], double rp[3][3], double rbp[3][3]) +/* +** - - - - - - - - +** i a u B p 0 6 +** - - - - - - - - +** +** Frame bias and precession, IAU 2006. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rb double[3][3] frame bias matrix (Note 2) +** rp double[3][3] precession matrix (Note 3) +** rbp double[3][3] bias-precession matrix (Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by +** applying frame bias. +** +** 3) The matrix rp transforms vectors from mean J2000.0 to mean of +** date by applying precession. +** +** 4) The matrix rbp transforms vectors from GCRS to mean of date by +** applying frame bias then precession. It is the product rp x rb. +** +** 5) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the order given. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** iauPmat06 PB matrix, IAU 2006 +** iauTr transpose r-matrix +** iauRxr product of two r-matrices +** iauCr copy r-matrix +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gamb, phib, psib, epsa, rbpw[3][3], rbt[3][3]; + + +/* B matrix. */ + iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &epsa); + iauFw2m(gamb, phib, psib, epsa, rb); + +/* PxB matrix (temporary). */ + iauPmat06(date1, date2, rbpw); + +/* P matrix. */ + iauTr(rb, rbt); + iauRxr(rbpw, rbt, rp); + +/* PxB matrix. */ + iauCr(rbpw, rbp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/bpn2xy.c b/deps/sofa/20231011/c/src/bpn2xy.c new file mode 100644 index 0000000..81b196c --- /dev/null +++ b/deps/sofa/20231011/c/src/bpn2xy.c @@ -0,0 +1,150 @@ +#include "sofa.h" + +void iauBpn2xy(double rbpn[3][3], double *x, double *y) +/* +** - - - - - - - - - - +** i a u B p n 2 x y +** - - - - - - - - - - +** +** Extract from the bias-precession-nutation matrix the X,Y coordinates +** of the Celestial Intermediate Pole. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rbpn double[3][3] celestial-to-true matrix (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** +** Notes: +** +** 1) The matrix rbpn transforms vectors from GCRS to true equator (and +** CIO or equinox) of date, and therefore the Celestial Intermediate +** Pole unit vector is the bottom row of the matrix. +** +** 2) The arguments x,y are components of the Celestial Intermediate +** Pole unit vector in the Geocentric Celestial Reference System. +** +** Reference: +** +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 +** (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Extract the X,Y coordinates. */ + *x = rbpn[2][0]; + *y = rbpn[2][1]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2i00a.c b/deps/sofa/20231011/c/src/c2i00a.c new file mode 100644 index 0000000..3ed8de8 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2i00a.c @@ -0,0 +1,189 @@ +#include "sofa.h" + +void iauC2i00a(double date1, double date2, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i 0 0 a +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date using the +** IAU 2000A precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 3) A faster, but slightly less accurate, result (about 1 mas) can be +** obtained by using instead the iauC2i00b function. +** +** Called: +** iauPnm00a classical NPB matrix, IAU 2000A +** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix +** +** References: +** +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 +** (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3]; + + +/* Obtain the celestial-to-true matrix (IAU 2000A). */ + iauPnm00a(date1, date2, rbpn); + +/* Form the celestial-to-intermediate matrix. */ + iauC2ibpn(date1, date2, rbpn, rc2i); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2i00b.c b/deps/sofa/20231011/c/src/c2i00b.c new file mode 100644 index 0000000..2489cc8 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2i00b.c @@ -0,0 +1,189 @@ +#include "sofa.h" + +void iauC2i00b(double date1, double date2, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i 0 0 b +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date using the +** IAU 2000B precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauC2i00a function. +** +** Called: +** iauPnm00b classical NPB matrix, IAU 2000B +** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix +** +** References: +** +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 +** (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3]; + + +/* Obtain the celestial-to-true matrix (IAU 2000B). */ + iauPnm00b(date1, date2, rbpn); + +/* Form the celestial-to-intermediate matrix. */ + iauC2ibpn(date1, date2, rbpn, rc2i); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2i06a.c b/deps/sofa/20231011/c/src/c2i06a.c new file mode 100644 index 0000000..07d3647 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2i06a.c @@ -0,0 +1,186 @@ +#include "sofa.h" + +void iauC2i06a(double date1, double date2, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i 0 6 a +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date using the +** IAU 2006 precession and IAU 2000A nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3], x, y, s; + + +/* Obtain the celestial-to-true matrix (IAU 2006/2000A). */ + iauPnm06a(date1, date2, rbpn); + +/* Extract the X,Y coordinates. */ + iauBpn2xy(rbpn, &x, &y); + +/* Obtain the CIO locator. */ + s = iauS06(date1, date2, x, y); + +/* Form the celestial-to-intermediate matrix. */ + iauC2ixys(x, y, s, rc2i); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2ibpn.c b/deps/sofa/20231011/c/src/c2ibpn.c new file mode 100644 index 0000000..ee99cbf --- /dev/null +++ b/deps/sofa/20231011/c/src/c2ibpn.c @@ -0,0 +1,192 @@ +#include "sofa.h" + +void iauC2ibpn(double date1, double date2, double rbpn[3][3], + double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i b p n +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date given +** the bias-precession-nutation matrix. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** rbpn double[3][3] celestial-to-true matrix (Note 2) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rbpn transforms vectors from GCRS to true equator (and +** CIO or equinox) of date. Only the CIP (bottom row) is used. +** +** 3) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 4) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauC2ixy celestial-to-intermediate matrix, given X,Y +** +** References: +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y; + + +/* Extract the X,Y coordinates. */ + iauBpn2xy(rbpn, &x, &y); + +/* Form the celestial-to-intermediate matrix (n.b. IAU 2000 specific). */ + iauC2ixy(date1, date2, x, y, rc2i); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2ixy.c b/deps/sofa/20231011/c/src/c2ixy.c new file mode 100644 index 0000000..833d8c7 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2ixy.c @@ -0,0 +1,181 @@ +#include "sofa.h" + +void iauC2ixy(double date1, double date2, double x, double y, + double rc2i[3][3]) +/* +** - - - - - - - - - +** i a u C 2 i x y +** - - - - - - - - - +** +** Form the celestial to intermediate-frame-of-date matrix for a given +** date when the CIP X,Y coordinates are known. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** x,y double Celestial Intermediate Pole (Note 2) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y components +** of the unit vector in the Geocentric Celestial Reference System. +** +** 3) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 4) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ + +{ +/* Compute s and then the matrix. */ + iauC2ixys(x, y, iauS00(date1, date2, x, y), rc2i); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2ixys.c b/deps/sofa/20231011/c/src/c2ixys.c new file mode 100644 index 0000000..fdded53 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2ixys.c @@ -0,0 +1,173 @@ +#include "sofa.h" + +void iauC2ixys(double x, double y, double s, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i x y s +** - - - - - - - - - - +** +** Form the celestial to intermediate-frame-of-date matrix given the CIP +** X,Y and the CIO locator s. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** x,y double Celestial Intermediate Pole (Note 1) +** s double the CIO locator s (Note 2) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) +** +** Notes: +** +** 1) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 2) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 3) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r2, e, d; + + +/* Obtain the spherical angles E and d. */ + r2 = x*x + y*y; + e = (r2 > 0.0) ? atan2(y, x) : 0.0; + d = atan(sqrt(r2 / (1.0 - r2))); + +/* Form the matrix. */ + iauIr(rc2i); + iauRz(e, rc2i); + iauRy(d, rc2i); + iauRz(-(e+s), rc2i); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2s.c b/deps/sofa/20231011/c/src/c2s.c new file mode 100644 index 0000000..6bdccf1 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2s.c @@ -0,0 +1,146 @@ +#include "sofa.h" + +void iauC2s(double p[3], double *theta, double *phi) +/* +** - - - - - - - +** i a u C 2 s +** - - - - - - - +** +** P-vector to spherical coordinates. +** +** 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: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** +** Notes: +** +** 1) The vector p can have any magnitude; only its direction is used. +** +** 2) If p is null, zero theta and phi are returned. +** +** 3) At either pole, zero theta is returned. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, z, d2; + + + x = p[0]; + y = p[1]; + z = p[2]; + d2 = x*x + y*y; + + *theta = (d2 == 0.0) ? 0.0 : atan2(y, x); + *phi = (z == 0.0) ? 0.0 : atan2(z, sqrt(d2)); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2t00a.c b/deps/sofa/20231011/c/src/c2t00a.c new file mode 100644 index 0000000..6efe4e6 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2t00a.c @@ -0,0 +1,204 @@ +#include "sofa.h" + +void iauC2t00a(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t 0 0 a +** - - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1 and +** the polar motion, using the IAU 2000A precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** xp,yp double CIP coordinates (radians, Note 2) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 3) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RC2I is the +** celestial-to-intermediate matrix, ERA is the Earth rotation +** angle and RPOM is the polar motion matrix. +** +** 4) A faster, but slightly less accurate, result (about 1 mas) can +** be obtained by using instead the iauC2t00b function. +** +** Called: +** iauC2i00a celestial-to-intermediate matrix, IAU 2000A +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rc2i[3][3], era, sp, rpom[3][3]; + + +/* Form the celestial-to-intermediate matrix for this TT (IAU 2000A). */ + iauC2i00a(tta, ttb, rc2i ); + +/* Predict the Earth rotation angle for this UT1. */ + era = iauEra00(uta, utb); + +/* Estimate s'. */ + sp = iauSp00(tta, ttb); + +/* Form the polar motion matrix. */ + iauPom00(xp, yp, sp, rpom); + +/* Combine to form the celestial-to-terrestrial matrix. */ + iauC2tcio(rc2i, era, rpom, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2t00b.c b/deps/sofa/20231011/c/src/c2t00b.c new file mode 100644 index 0000000..5233976 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2t00b.c @@ -0,0 +1,200 @@ +#include "sofa.h" + +void iauC2t00b(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t 0 0 b +** - - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1 and +** the polar motion, using the IAU 2000B precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** xp,yp double coordinates of the pole (radians, Note 2) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 3) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RC2I is the +** celestial-to-intermediate matrix, ERA is the Earth rotation +** angle and RPOM is the polar motion matrix. +** +** 4) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauC2t00a function. +** +** Called: +** iauC2i00b celestial-to-intermediate matrix, IAU 2000B +** iauEra00 Earth rotation angle, IAU 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rc2i[3][3], era, rpom[3][3]; + + +/* Form the celestial-to-intermediate matrix for this TT (IAU 2000B). */ + iauC2i00b(tta, ttb, rc2i); + +/* Predict the Earth rotation angle for this UT1. */ + era = iauEra00(uta, utb); + +/* Form the polar motion matrix (neglecting s'). */ + iauPom00(xp, yp, 0.0, rpom); + +/* Combine to form the celestial-to-terrestrial matrix. */ + iauC2tcio(rc2i, era, rpom, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2t06a.c b/deps/sofa/20231011/c/src/c2t06a.c new file mode 100644 index 0000000..31b98ea --- /dev/null +++ b/deps/sofa/20231011/c/src/c2t06a.c @@ -0,0 +1,202 @@ +#include "sofa.h" + +void iauC2t06a(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t 0 6 a +** - - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1 and +** the polar motion, using the IAU 2006/2000A precession-nutation +** model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** xp,yp double coordinates of the pole (radians, Note 2) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the two arguments. For +** example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 3) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RC2I is the +** celestial-to-intermediate matrix, ERA is the Earth rotation +** angle and RPOM is the polar motion matrix. +** +** Called: +** iauC2i06a celestial-to-intermediate matrix, IAU 2006/2000A +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** This revision: 2023 January 18 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rc2i[3][3], era, sp, rpom[3][3]; + + +/* Form the celestial-to-intermediate matrix for this TT. */ + iauC2i06a(tta, ttb, rc2i); + +/* Predict the Earth rotation angle for this UT1. */ + era = iauEra00(uta, utb); + +/* Estimate s'. */ + sp = iauSp00(tta, ttb); + +/* Form the polar motion matrix. */ + iauPom00(xp, yp, sp, rpom); + +/* Combine to form the celestial-to-terrestrial matrix. */ + iauC2tcio(rc2i, era, rpom, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2tcio.c b/deps/sofa/20231011/c/src/c2tcio.c new file mode 100644 index 0000000..542d821 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2tcio.c @@ -0,0 +1,172 @@ +#include "sofa.h" + +void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], + double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t c i o +** - - - - - - - - - - +** +** Assemble the celestial to terrestrial matrix from CIO-based +** components (the celestial-to-intermediate matrix, the Earth Rotation +** Angle and the polar motion matrix). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc2i double[3][3] celestial-to-intermediate matrix +** era double Earth rotation angle (radians) +** rpom double[3][3] polar-motion matrix +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix +** +** Notes: +** +** 1) This function constructs the rotation matrix that transforms +** vectors in the celestial system into vectors in the terrestrial +** system. It does so starting from precomputed components, namely +** the matrix which rotates from celestial coordinates to the +** intermediate frame, the Earth rotation angle and the polar motion +** matrix. One use of the present function is when generating a +** series of celestial-to-terrestrial matrices where only the Earth +** Rotation Angle changes, avoiding the considerable overhead of +** recomputing the precession-nutation more often than necessary to +** achieve given accuracy objectives. +** +** 2) The relationship between the arguments is as follows: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003). +** +** Called: +** iauCr copy r-matrix +** iauRz rotate around Z-axis +** iauRxr product of two r-matrices +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3]; + + +/* Construct the matrix. */ + iauCr(rc2i, r); + iauRz(era, r); + iauRxr(rpom, r, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2teqx.c b/deps/sofa/20231011/c/src/c2teqx.c new file mode 100644 index 0000000..35c6c51 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2teqx.c @@ -0,0 +1,172 @@ +#include "sofa.h" + +void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], + double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t e q x +** - - - - - - - - - - +** +** Assemble the celestial to terrestrial matrix from equinox-based +** components (the celestial-to-true matrix, the Greenwich Apparent +** Sidereal Time and the polar motion matrix). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rbpn double[3][3] celestial-to-true matrix +** gst double Greenwich (apparent) Sidereal Time (radians) +** rpom double[3][3] polar-motion matrix +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 2) +** +** Notes: +** +** 1) This function constructs the rotation matrix that transforms +** vectors in the celestial system into vectors in the terrestrial +** system. It does so starting from precomputed components, namely +** the matrix which rotates from celestial coordinates to the +** true equator and equinox of date, the Greenwich Apparent Sidereal +** Time and the polar motion matrix. One use of the present function +** is when generating a series of celestial-to-terrestrial matrices +** where only the Sidereal Time changes, avoiding the considerable +** overhead of recomputing the precession-nutation more often than +** necessary to achieve given accuracy objectives. +** +** 2) The relationship between the arguments is as follows: +** +** [TRS] = rpom * R_3(gst) * rbpn * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003). +** +** Called: +** iauCr copy r-matrix +** iauRz rotate around Z-axis +** iauRxr product of two r-matrices +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3]; + + +/* Construct the matrix. */ + iauCr(rbpn, r); + iauRz(gst, r); + iauRxr(rpom, r, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2tpe.c b/deps/sofa/20231011/c/src/c2tpe.c new file mode 100644 index 0000000..bcc1e1b --- /dev/null +++ b/deps/sofa/20231011/c/src/c2tpe.c @@ -0,0 +1,217 @@ +#include "sofa.h" + +void iauC2tpe(double tta, double ttb, double uta, double utb, + double dpsi, double deps, double xp, double yp, + double rc2t[3][3]) +/* +** - - - - - - - - - +** i a u C 2 t p e +** - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1, +** the nutation and the polar motion. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** dpsi,deps double nutation (Note 2) +** xp,yp double coordinates of the pole (radians, Note 3) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. For high-accuracy +** applications, free core nutation should be included as well as +** any other relevant corrections to the position of the CIP. +** +** 3) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 4) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(GST) * RBPN * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RBPN is the +** bias-precession-nutation matrix, GST is the Greenwich (apparent) +** Sidereal Time and RPOM is the polar motion matrix. +** +** 5) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauPn00 bias/precession/nutation results, IAU 2000 +** iauGmst00 Greenwich mean sidereal time, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauEe00 equation of the equinoxes, IAU 2000 +** iauPom00 polar motion matrix +** iauC2teqx form equinox-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3], + rbpn[3][3], gmst, ee, sp, rpom[3][3]; + + +/* Form the celestial-to-true matrix for this TT. */ + iauPn00(tta, ttb, dpsi, deps, &epsa, rb, rp, rbp, rn, rbpn); + +/* Predict the Greenwich Mean Sidereal Time for this UT1 and TT. */ + gmst = iauGmst00(uta, utb, tta, ttb); + +/* Predict the equation of the equinoxes given TT and nutation. */ + ee = iauEe00(tta, ttb, epsa, dpsi); + +/* Estimate s'. */ + sp = iauSp00(tta, ttb); + +/* Form the polar motion matrix. */ + iauPom00(xp, yp, sp, rpom); + +/* Combine to form the celestial-to-terrestrial matrix. */ + iauC2teqx(rbpn, gmst + ee, rpom, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/c2txy.c b/deps/sofa/20231011/c/src/c2txy.c new file mode 100644 index 0000000..51c2a09 --- /dev/null +++ b/deps/sofa/20231011/c/src/c2txy.c @@ -0,0 +1,209 @@ +#include "sofa.h" + +void iauC2txy(double tta, double ttb, double uta, double utb, + double x, double y, double xp, double yp, + double rc2t[3][3]) +/* +** - - - - - - - - - +** i a u C 2 t x y +** - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1, +** the CIP coordinates and the polar motion. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** x,y double Celestial Intermediate Pole (Note 2) +** xp,yp double coordinates of the pole (radians, Note 3) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any o +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 3) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 4) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 5) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauC2ixy celestial-to-intermediate matrix, given X,Y +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rc2i[3][3], era, sp, rpom[3][3]; + + +/* Form the celestial-to-intermediate matrix for this TT. */ + iauC2ixy(tta, ttb, x, y, rc2i); + +/* Predict the Earth rotation angle for this UT1. */ + era = iauEra00(uta, utb); + +/* Estimate s'. */ + sp = iauSp00(tta, ttb); + +/* Form the polar motion matrix. */ + iauPom00(xp, yp, sp, rpom); + +/* Combine to form the celestial-to-terrestrial matrix. */ + iauC2tcio(rc2i, era, rpom, rc2t); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/cal2jd.c b/deps/sofa/20231011/c/src/cal2jd.c new file mode 100644 index 0000000..a041180 --- /dev/null +++ b/deps/sofa/20231011/c/src/cal2jd.c @@ -0,0 +1,192 @@ +#include "sofa.h" +#include "sofam.h" + +int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) +/* +** - - - - - - - - - - +** i a u C a l 2 j d +** - - - - - - - - - - +** +** Gregorian Calendar to Julian Date. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** iy,im,id int year, month, day in Gregorian calendar (Note 1) +** +** Returned: +** djm0 double MJD zero-point: always 2400000.5 +** djm double Modified Julian Date for 0 hrs +** +** Returned (function value): +** int status: +** 0 = OK +** -1 = bad year (Note 3: JD not computed) +** -2 = bad month (JD not computed) +** -3 = bad day (JD computed) +** +** Notes: +** +** 1) The algorithm used is valid from -4800 March 1, but this +** implementation rejects dates before -4799 January 1. +** +** 2) The Julian Date is returned in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding djm0 and +** djm. +** +** 3) In early eras the conversion is from the "Proleptic Gregorian +** Calendar"; no account is taken of the date(s) of adoption of +** the Gregorian Calendar, nor is the AD/BC numbering convention +** observed. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 12.92 (p604). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j, ly, my; + long iypmy; + +/* Earliest year allowed (4800BC) */ + const int IYMIN = -4799; + +/* Month lengths in days */ + static const int mtab[] + = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + + +/* Preset status. */ + j = 0; + +/* Validate year and month. */ + if (iy < IYMIN) return -1; + if (im < 1 || im > 12) return -2; + +/* If February in a leap year, 1, otherwise 0. */ + ly = ((im == 2) && !(iy%4) && (iy%100 || !(iy%400))); + +/* Validate day, taking into account leap years. */ + if ( (id < 1) || (id > (mtab[im-1] + ly))) j = -3; + +/* Return result. */ + my = (im - 14) / 12; + iypmy = (long) (iy + my); + *djm0 = DJM0; + *djm = (double)((1461L * (iypmy + 4800L)) / 4L + + (367L * (long) (im - 2 - 12 * my)) / 12L + - (3L * ((iypmy + 4900L) / 100L)) / 4L + + (long) id - 2432076L); + +/* Return status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/cp.c b/deps/sofa/20231011/c/src/cp.c new file mode 100644 index 0000000..7a525dd --- /dev/null +++ b/deps/sofa/20231011/c/src/cp.c @@ -0,0 +1,130 @@ +#include "sofa.h" + +void iauCp(double p[3], double c[3]) +/* +** - - - - - - +** i a u C p +** - - - - - - +** +** Copy a p-vector. +** +** 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 to be copied +** +** Returned: +** c double[3] copy +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + c[0] = p[0]; + c[1] = p[1]; + c[2] = p[2]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/cpv.c b/deps/sofa/20231011/c/src/cpv.c new file mode 100644 index 0000000..9d5ee71 --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauCp(pv[0], c[0]); + iauCp(pv[1], c[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/cr.c b/deps/sofa/20231011/c/src/cr.c new file mode 100644 index 0000000..87c4ee1 --- /dev/null +++ b/deps/sofa/20231011/c/src/cr.c @@ -0,0 +1,133 @@ +#include "sofa.h" + +void iauCr(double r[3][3], double c[3][3]) +/* +** - - - - - - +** i a u C r +** - - - - - - +** +** Copy 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 to be copied +** +** Returned: +** c double[3][3] copy +** +** Called: +** iauCp copy p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauCp(r[0], c[0]); + iauCp(r[1], c[1]); + iauCp(r[2], c[2]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/d2dtf.c b/deps/sofa/20231011/c/src/d2dtf.c new file mode 100644 index 0000000..1bc6dcd --- /dev/null +++ b/deps/sofa/20231011/c/src/d2dtf.c @@ -0,0 +1,289 @@ +#include "sofa.h" +#include "sofam.h" +#include + +int iauD2dtf(const char *scale, int ndp, double d1, double d2, + int *iy, int *im, int *id, int ihmsf[4]) +/* +** - - - - - - - - - +** i a u D 2 d t f +** - - - - - - - - - +** +** Format for output a 2-part Julian Date (or in the case of UTC a +** quasi-JD form that includes special provision for leap seconds). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** scale char[] time scale ID (Note 1) +** ndp int resolution (Note 2) +** d1,d2 double time as a 2-part Julian Date (Notes 3,4) +** +** Returned: +** iy,im,id int year, month, day in Gregorian calendar (Note 5) +** ihmsf int[4] hours, minutes, seconds, fraction (Note 1) +** +** Returned (function value): +** int status: +1 = dubious year (Note 5) +** 0 = OK +** -1 = unacceptable date (Note 6) +** +** Notes: +** +** 1) scale identifies the time scale. Only the value "UTC" (in upper +** case) is significant, and enables handling of leap seconds (see +** Note 4). +** +** 2) ndp is the number of decimal places in the seconds field, and can +** have negative as well as positive values, such as: +** +** ndp resolution +** -4 1 00 00 +** -3 0 10 00 +** -2 0 01 00 +** -1 0 00 10 +** 0 0 00 01 +** 1 0 00 00.1 +** 2 0 00 00.01 +** 3 0 00 00.001 +** +** The limits are platform dependent, but a safe range is -5 to +9. +** +** 3) d1+d2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where d1 is the Julian Day Number +** and d2 is the fraction of a day. In the case of UTC, where the +** use of JD is problematical, special conventions apply: see the +** next note. +** +** 4) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The SOFA internal convention is that +** the quasi-JD day represents UTC days whether the length is 86399, +** 86400 or 86401 SI seconds. In the 1960-1972 era there were +** smaller jumps (in either direction) each time the linear UTC(TAI) +** expression was changed, and these "mini-leaps" are also included +** in the SOFA convention. +** +** 5) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 6) For calendar conventions and limitations, see iauCal2jd. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauD2tf decompose days to hms +** iauDat delta(AT) = TAI-UTC +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int leap; + char s; + int iy1, im1, id1, js, iy2, im2, id2, ihmsf1[4], i; + double a1, b1, fd, dat0, dat12, w, dat24, dleap; + + +/* The two-part JD. */ + a1 = d1; + b1 = d2; + +/* Provisional calendar date. */ + js = iauJd2cal(a1, b1, &iy1, &im1, &id1, &fd); + if ( js ) return -1; + +/* Is this a leap second day? */ + leap = 0; + if ( ! strcmp(scale,"UTC") ) { + + /* TAI-UTC at 0h today. */ + js = iauDat(iy1, im1, id1, 0.0, &dat0); + if ( js < 0 ) return -1; + + /* TAI-UTC at 12h today (to detect drift). */ + js = iauDat(iy1, im1, id1, 0.5, &dat12); + if ( js < 0 ) return -1; + + /* TAI-UTC at 0h tomorrow (to detect jumps). */ + js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w); + if ( js ) return -1; + js = iauDat(iy2, im2, id2, 0.0, &dat24); + if ( js < 0 ) return -1; + + /* Any sudden change in TAI-UTC (seconds). */ + dleap = dat24 - (2.0*dat12 - dat0); + + /* If leap second day, scale the fraction of a day into SI. */ + leap = (fabs(dleap) > 0.5); + if (leap) fd += fd * dleap/DAYSEC; + } + +/* Provisional time of day. */ + iauD2tf ( ndp, fd, &s, ihmsf1 ); + +/* Has the (rounded) time gone past 24h? */ + if ( ihmsf1[0] > 23 ) { + + /* Yes. We probably need tomorrow's calendar date. */ + js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w); + if ( js ) return -1; + + /* Is today a leap second day? */ + if ( ! leap ) { + + /* No. Use 0h tomorrow. */ + iy1 = iy2; + im1 = im2; + id1 = id2; + ihmsf1[0] = 0; + ihmsf1[1] = 0; + ihmsf1[2] = 0; + + } else { + + /* Yes. Are we past the leap second itself? */ + if ( ihmsf1[2] > 0 ) { + + /* Yes. Use tomorrow but allow for the leap second. */ + iy1 = iy2; + im1 = im2; + id1 = id2; + ihmsf1[0] = 0; + ihmsf1[1] = 0; + ihmsf1[2] = 0; + + } else { + + /* No. Use 23 59 60... today. */ + ihmsf1[0] = 23; + ihmsf1[1] = 59; + ihmsf1[2] = 60; + } + + /* If rounding to 10s or coarser always go up to new day. */ + if ( ndp < 0 && ihmsf1[2] == 60 ) { + iy1 = iy2; + im1 = im2; + id1 = id2; + ihmsf1[0] = 0; + ihmsf1[1] = 0; + ihmsf1[2] = 0; + } + } + } + +/* Results. */ + *iy = iy1; + *im = im1; + *id = id1; + for ( i = 0; i < 4; i++ ) { + ihmsf[i] = ihmsf1[i]; + } + +/* Status. */ + return js; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/d2tf.c b/deps/sofa/20231011/c/src/d2tf.c new file mode 100644 index 0000000..673f222 --- /dev/null +++ b/deps/sofa/20231011/c/src/d2tf.c @@ -0,0 +1,211 @@ +#include "sofa.h" +#include "sofam.h" + +void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]) +/* +** - - - - - - - - +** i a u D 2 t f +** - - - - - - - - +** +** Decompose days to hours, minutes, seconds, fraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** ndp int resolution (Note 1) +** days double interval in days +** +** Returned: +** sign char* '+' or '-' +** ihmsf int[4] hours, minutes, seconds, fraction +** +** Notes: +** +** 1) The argument ndp is interpreted as follows: +** +** ndp resolution +** : ...0000 00 00 +** -7 1000 00 00 +** -6 100 00 00 +** -5 10 00 00 +** -4 1 00 00 +** -3 0 10 00 +** -2 0 01 00 +** -1 0 00 10 +** 0 0 00 01 +** 1 0 00 00.1 +** 2 0 00 00.01 +** 3 0 00 00.001 +** : 0 00 00.000... +** +** 2) The largest positive useful value for ndp is determined by the +** size of days, the format of double on the target platform, and +** the risk of overflowing ihmsf[3]. On a typical platform, for +** days up to 1.0, the available floating-point precision might +** correspond to ndp=12. However, the practical limit is typically +** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is +** only 16 bits. +** +** 3) The absolute value of days may exceed 1.0. In cases where it +** does not, it is up to the caller to test for and handle the +** case where days is very nearly 1.0 and rounds up to 24 hours, +** by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int nrs, n; + double rs, rm, rh, a, w, ah, am, as, af; + + +/* Handle sign. */ + *sign = (char) ( ( days >= 0.0 ) ? '+' : '-' ); + +/* Interval in seconds. */ + a = DAYSEC * fabs(days); + +/* Pre-round if resolution coarser than 1s (then pretend ndp=1). */ + if (ndp < 0) { + nrs = 1; + for (n = 1; n <= -ndp; n++) { + nrs *= (n == 2 || n == 4) ? 6 : 10; + } + rs = (double) nrs; + w = a / rs; + a = rs * dnint(w); + } + +/* Express the unit of each field in resolution units. */ + nrs = 1; + for (n = 1; n <= ndp; n++) { + nrs *= 10; + } + rs = (double) nrs; + rm = rs * 60.0; + rh = rm * 60.0; + +/* Round the interval and express in resolution units. */ + a = dnint(rs * a); + +/* Break into fields. */ + ah = a / rh; + ah = dint(ah); + a -= ah * rh; + am = a / rm; + am = dint(am); + a -= am * rm; + as = a / rs; + as = dint(as); + af = a - as * rs; + +/* Return results. */ + ihmsf[0] = (int) ah; + ihmsf[1] = (int) am; + ihmsf[2] = (int) as; + ihmsf[3] = (int) af; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/dat.c b/deps/sofa/20231011/c/src/dat.c new file mode 100644 index 0000000..6934410 --- /dev/null +++ b/deps/sofa/20231011/c/src/dat.c @@ -0,0 +1,353 @@ +#include "sofa.h" + +int iauDat(int iy, int im, int id, double fd, double *deltat) +/* +** - - - - - - - +** i a u D a t +** - - - - - - - +** +** For a given UTC date, calculate Delta(AT) = TAI-UTC. +** +** :------------------------------------------: +** : : +** : IMPORTANT : +** : : +** : A new version of this function must be : +** : produced whenever a new leap second is : +** : announced. There are four items to : +** : change on each such occasion: : +** : : +** : 1) A new line must be added to the set : +** : of statements that initialize the : +** : array "changes". : +** : : +** : 2) The constant IYV must be set to the : +** : current year. : +** : : +** : 3) The "Latest leap second" comment : +** : below must be set to the new leap : +** : second date. : +** : : +** : 4) The "This revision" comment, later, : +** : must be set to the current date. : +** : : +** : Change (2) must also be carried out : +** : whenever the function is re-issued, : +** : even if no leap seconds have been : +** : added. : +** : : +** : Latest leap second: 2016 December 31 : +** : : +** :__________________________________________: +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: user-replaceable support function. +** +** Given: +** iy int UTC: year (Notes 1 and 2) +** im int month (Note 2) +** id int day (Notes 2 and 3) +** fd double fraction of day (Note 4) +** +** Returned: +** deltat double TAI minus UTC, seconds +** +** Returned (function value): +** int status (Note 5): +** 1 = dubious year (Note 1) +** 0 = OK +** -1 = bad year +** -2 = bad month +** -3 = bad day (Note 3) +** -4 = bad fraction (Note 4) +** -5 = internal error (Note 5) +** +** Notes: +** +** 1) UTC began at 1960 January 1.0 (JD 2436934.5) and it is improper +** to call the function with an earlier date. If this is attempted, +** zero is returned together with a warning status. +** +** Because leap seconds cannot, in principle, be predicted in +** advance, a reliable check for dates beyond the valid range is +** impossible. To guard against gross errors, a year five or more +** after the release year of the present function (see the constant +** IYV) is considered dubious. In this case a warning status is +** returned but the result is computed in the normal way. +** +** For both too-early and too-late years, the warning status is +1. +** This is distinct from the error status -1, which signifies a year +** so early that JD could not be computed. +** +** 2) If the specified date is for a day which ends with a leap second, +** the TAI-UTC value returned is for the period leading up to the +** leap second. If the date is for a day which begins as a leap +** second ends, the TAI-UTC returned is for the period following the +** leap second. +** +** 3) The day number must be in the normal calendar range, for example +** 1 through 30 for April. The "almanac" convention of allowing +** such dates as January 0 and December 32 is not supported in this +** function, in order to avoid confusion near leap seconds. +** +** 4) The fraction of day is used only for dates before the +** introduction of leap seconds, the first of which occurred at the +** end of 1971. It is tested for validity (0 to 1 is the valid +** range) even if not used; if invalid, zero is used and status -4 +** is returned. For many applications, setting fd to zero is +** acceptable; the resulting error is always less than 3 ms (and +** occurs only pre-1972). +** +** 5) The status value returned in the case where there are multiple +** errors refers to the first error detected. For example, if the +** month and day are 13 and 32 respectively, status -2 (bad month) +** will be returned. The "internal error" status refers to a +** case that is impossible but causes some compilers to issue a +** warning. +** +** 6) In cases where a valid result is not available, zero is returned. +** +** References: +** +** 1) For dates from 1961 January 1 onwards, the expressions from the +** file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used. +** +** 2) The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of +** the 1992 Explanatory Supplement. +** +** Called: +** iauCal2jd Gregorian calendar to JD +** +** This revision: 2023 January 17 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Release year for this version of iauDat */ + enum { IYV = 2023}; + +/* Reference dates (MJD) and drift rates (s/day), pre leap seconds */ + static const double drift[][2] = { + { 37300.0, 0.0012960 }, + { 37300.0, 0.0012960 }, + { 37300.0, 0.0012960 }, + { 37665.0, 0.0011232 }, + { 37665.0, 0.0011232 }, + { 38761.0, 0.0012960 }, + { 38761.0, 0.0012960 }, + { 38761.0, 0.0012960 }, + { 38761.0, 0.0012960 }, + { 38761.0, 0.0012960 }, + { 38761.0, 0.0012960 }, + { 38761.0, 0.0012960 }, + { 39126.0, 0.0025920 }, + { 39126.0, 0.0025920 } + }; + +/* Number of Delta(AT) expressions before leap seconds were introduced */ + enum { NERA1 = (int) (sizeof drift / sizeof (double) / 2) }; + +/* Dates and Delta(AT)s */ + static const struct { + int iyear, month; + double delat; + } changes[] = { + { 1960, 1, 1.4178180 }, + { 1961, 1, 1.4228180 }, + { 1961, 8, 1.3728180 }, + { 1962, 1, 1.8458580 }, + { 1963, 11, 1.9458580 }, + { 1964, 1, 3.2401300 }, + { 1964, 4, 3.3401300 }, + { 1964, 9, 3.4401300 }, + { 1965, 1, 3.5401300 }, + { 1965, 3, 3.6401300 }, + { 1965, 7, 3.7401300 }, + { 1965, 9, 3.8401300 }, + { 1966, 1, 4.3131700 }, + { 1968, 2, 4.2131700 }, + { 1972, 1, 10.0 }, + { 1972, 7, 11.0 }, + { 1973, 1, 12.0 }, + { 1974, 1, 13.0 }, + { 1975, 1, 14.0 }, + { 1976, 1, 15.0 }, + { 1977, 1, 16.0 }, + { 1978, 1, 17.0 }, + { 1979, 1, 18.0 }, + { 1980, 1, 19.0 }, + { 1981, 7, 20.0 }, + { 1982, 7, 21.0 }, + { 1983, 7, 22.0 }, + { 1985, 7, 23.0 }, + { 1988, 1, 24.0 }, + { 1990, 1, 25.0 }, + { 1991, 1, 26.0 }, + { 1992, 7, 27.0 }, + { 1993, 7, 28.0 }, + { 1994, 7, 29.0 }, + { 1996, 1, 30.0 }, + { 1997, 7, 31.0 }, + { 1999, 1, 32.0 }, + { 2006, 1, 33.0 }, + { 2009, 1, 34.0 }, + { 2012, 7, 35.0 }, + { 2015, 7, 36.0 }, + { 2017, 1, 37.0 } + }; + +/* Number of Delta(AT) changes */ + enum { NDAT = (int) (sizeof changes / sizeof changes[0]) }; + +/* Miscellaneous local variables */ + int j, i, m; + double da, djm0, djm; + + +/* Initialize the result to zero. */ + *deltat = da = 0.0; + +/* If invalid fraction of a day, set error status and give up. */ + if (fd < 0.0 || fd > 1.0) return -4; + +/* Convert the date into an MJD. */ + j = iauCal2jd(iy, im, id, &djm0, &djm); + +/* If invalid year, month, or day, give up. */ + if (j < 0) return j; + +/* If pre-UTC year, set warning status and give up. */ + if (iy < changes[0].iyear) return 1; + +/* If suspiciously late year, set warning status but proceed. */ + if (iy > IYV + 5) j = 1; + +/* Combine year and month to form a date-ordered integer... */ + m = 12*iy + im; + +/* ...and use it to find the preceding table entry. */ + for (i = NDAT-1; i >=0; i--) { + if (m >= (12 * changes[i].iyear + changes[i].month)) break; + } + +/* Prevent underflow warnings. */ + if (i < 0) return -5; + +/* Get the Delta(AT). */ + da = changes[i].delat; + +/* If pre-1972, adjust for drift. */ + if (i < NERA1) da += (djm + fd - drift[i][0]) * drift[i][1]; + +/* Return the Delta(AT) value. */ + *deltat = da; + +/* Return the status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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) UNLIKE OTHER SOFA SOFTWARE, WHICH IS STRICTLY "READ ONLY", +** USERS ARE PERMITTED TO REPLACE THIS FUNCTION WITH ONE USING +** THE SAME NAME BUT DIFFERENT CODE. This is to allow use of +** locally supported mechanisms for keeping track of leap +** seconds, perhaps file or network based. It avoids the need +** for applications to be relinked periodically in order to pick +** up SOFA updates. +** +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/dtdb.c b/deps/sofa/20231011/c/src/dtdb.c new file mode 100644 index 0000000..07ce7ff --- /dev/null +++ b/deps/sofa/20231011/c/src/dtdb.c @@ -0,0 +1,1266 @@ +#include "sofa.h" +#include "sofam.h" + +double iauDtdb(double date1, double date2, + double ut, double elong, double u, double v) +/* +** - - - - - - - - +** i a u D t d b +** - - - - - - - - +** +** An approximation to TDB-TT, the difference between barycentric +** dynamical time and terrestrial time, for an observer on the Earth. +** +** The different time scales - proper, coordinate and realized - are +** related to each other: +** +** TAI <- physically realized +** : +** offset <- observed (nominally +32.184s) +** : +** TT <- terrestrial time +** : +** rate adjustment (L_G) <- definition of TT +** : +** TCG <- time scale for GCRS +** : +** "periodic" terms <- iauDtdb is an implementation +** : +** rate adjustment (L_C) <- function of solar-system ephemeris +** : +** TCB <- time scale for BCRS +** : +** rate adjustment (-L_B) <- definition of TDB +** : +** TDB <- TCB scaled to track TT +** : +** "periodic" terms <- -iauDtdb is an approximation +** : +** TT <- terrestrial time +** +** Adopted values for the various constants can be found in the IERS +** Conventions (McCarthy & Petit 2003). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double date, TDB (Notes 1-3) +** ut double universal time (UT1, fraction of one day) +** elong double longitude (east positive, radians) +** u double distance from Earth spin axis (km) +** v double distance north of equatorial plane (km) +** +** Returned (function value): +** double TDB-TT (seconds) +** +** Notes: +** +** 1) The date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** Although the date is, formally, barycentric dynamical time (TDB), +** the terrestrial dynamical time (TT) can be used with no practical +** effect on the accuracy of the prediction. +** +** 2) TT can be regarded as a coordinate time that is realized as an +** offset of 32.184s from International Atomic Time, TAI. TT is a +** specific linear transformation of geocentric coordinate time TCG, +** which is the time scale for the Geocentric Celestial Reference +** System, GCRS. +** +** 3) TDB is a coordinate time, and is a specific linear transformation +** of barycentric coordinate time TCB, which is the time scale for +** the Barycentric Celestial Reference System, BCRS. +** +** 4) The difference TCG-TCB depends on the masses and positions of the +** bodies of the solar system and the velocity of the Earth. It is +** dominated by a rate difference, the residual being of a periodic +** character. The latter, which is modeled by the present function, +** comprises a main (annual) sinusoidal term of amplitude +** approximately 0.00166 seconds, plus planetary terms up to about +** 20 microseconds, and lunar and diurnal terms up to 2 microseconds. +** These effects come from the changing transverse Doppler effect +** and gravitational red-shift as the observer (on the Earth's +** surface) experiences variations in speed (with respect to the +** BCRS) and gravitational potential. +** +** 5) TDB can be regarded as the same as TCB but with a rate adjustment +** to keep it close to TT, which is convenient for many applications. +** The history of successive attempts to define TDB is set out in +** Resolution 3 adopted by the IAU General Assembly in 2006, which +** defines a fixed TDB(TCB) transformation that is consistent with +** contemporary solar-system ephemerides. Future ephemerides will +** imply slightly changed transformations between TCG and TCB, which +** could introduce a linear drift between TDB and TT; however, any +** such drift is unlikely to exceed 1 nanosecond per century. +** +** 6) The geocentric TDB-TT model used in the present function is that of +** Fairhead & Bretagnon (1990), in its full form. It was originally +** supplied by Fairhead (private communications with P.T.Wallace, +** 1990) as a Fortran subroutine. The present C function contains an +** adaptation of the Fairhead code. The numerical results are +** essentially unaffected by the changes, the differences with +** respect to the Fairhead & Bretagnon original being at the 1e-20 s +** level. +** +** The topocentric part of the model is from Moyer (1981) and +** Murray (1983), with fundamental arguments adapted from +** Simon et al. 1994. It is an approximation to the expression +** ( v / c ) . ( r / c ), where v is the barycentric velocity of +** the Earth, r is the geocentric position of the observer and +** c is the speed of light. +** +** By supplying zeroes for u and v, the topocentric part of the +** model can be nullified, and the function will return the Fairhead +** & Bretagnon result alone. +** +** 7) During the interval 1950-2050, the absolute accuracy is better +** than +/- 3 nanoseconds relative to time ephemerides obtained by +** direct numerical integrations based on the JPL DE405 solar system +** ephemeris. +** +** 8) It must be stressed that the present function is merely a model, +** and that numerical integration of solar-system ephemerides is the +** definitive method for predicting the relationship between TCG and +** TCB and hence between TT and TDB. +** +** References: +** +** Fairhead, L., & Bretagnon, P., Astron.Astrophys., 229, 240-247 +** (1990). +** +** IAU 2006 Resolution 3. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Moyer, T.D., Cel.Mech., 23, 33 (1981). +** +** Murray, C.A., Vectorial Astrometry, Adam Hilger (1983). +** +** Seidelmann, P.K. et al., Explanatory Supplement to the +** Astronomical Almanac, Chapter 2, University Science Books (1992). +** +** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G. & Laskar, J., Astron.Astrophys., 282, 663-683 (1994). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, tsol, w, elsun, emsun, d, elj, els, wt, w0, w1, w2, w3, w4, + wf, wj; + int j; + +/* +** ===================== +** Fairhead et al. model +** ===================== +** +** 787 sets of three coefficients. +** +** Each set is +** amplitude (microseconds) +** frequency (radians per Julian millennium since J2000.0) +** phase (radians) +** +** Sets 1-474 are the T**0 terms +** " 475-679 " " T**1 +** " 680-764 " " T**2 +** " 765-784 " " T**3 +** " 785-787 " " T**4 +*/ + + static const double fairhd[787][3] = { + /* 1, 10 */ + { 1656.674564e-6, 6283.075849991, 6.240054195 }, + { 22.417471e-6, 5753.384884897, 4.296977442 }, + { 13.839792e-6, 12566.151699983, 6.196904410 }, + { 4.770086e-6, 529.690965095, 0.444401603 }, + { 4.676740e-6, 6069.776754553, 4.021195093 }, + { 2.256707e-6, 213.299095438, 5.543113262 }, + { 1.694205e-6, -3.523118349, 5.025132748 }, + { 1.554905e-6, 77713.771467920, 5.198467090 }, + { 1.276839e-6, 7860.419392439, 5.988822341 }, + { 1.193379e-6, 5223.693919802, 3.649823730 }, + /* 11, 20 */ + { 1.115322e-6, 3930.209696220, 1.422745069 }, + { 0.794185e-6, 11506.769769794, 2.322313077 }, + { 0.447061e-6, 26.298319800, 3.615796498 }, + { 0.435206e-6, -398.149003408, 4.349338347 }, + { 0.600309e-6, 1577.343542448, 2.678271909 }, + { 0.496817e-6, 6208.294251424, 5.696701824 }, + { 0.486306e-6, 5884.926846583, 0.520007179 }, + { 0.432392e-6, 74.781598567, 2.435898309 }, + { 0.468597e-6, 6244.942814354, 5.866398759 }, + { 0.375510e-6, 5507.553238667, 4.103476804 }, + /* 21, 30 */ + { 0.243085e-6, -775.522611324, 3.651837925 }, + { 0.173435e-6, 18849.227549974, 6.153743485 }, + { 0.230685e-6, 5856.477659115, 4.773852582 }, + { 0.203747e-6, 12036.460734888, 4.333987818 }, + { 0.143935e-6, -796.298006816, 5.957517795 }, + { 0.159080e-6, 10977.078804699, 1.890075226 }, + { 0.119979e-6, 38.133035638, 4.551585768 }, + { 0.118971e-6, 5486.777843175, 1.914547226 }, + { 0.116120e-6, 1059.381930189, 0.873504123 }, + { 0.137927e-6, 11790.629088659, 1.135934669 }, + /* 31, 40 */ + { 0.098358e-6, 2544.314419883, 0.092793886 }, + { 0.101868e-6, -5573.142801634, 5.984503847 }, + { 0.080164e-6, 206.185548437, 2.095377709 }, + { 0.079645e-6, 4694.002954708, 2.949233637 }, + { 0.062617e-6, 20.775395492, 2.654394814 }, + { 0.075019e-6, 2942.463423292, 4.980931759 }, + { 0.064397e-6, 5746.271337896, 1.280308748 }, + { 0.063814e-6, 5760.498431898, 4.167901731 }, + { 0.048042e-6, 2146.165416475, 1.495846011 }, + { 0.048373e-6, 155.420399434, 2.251573730 }, + /* 41, 50 */ + { 0.058844e-6, 426.598190876, 4.839650148 }, + { 0.046551e-6, -0.980321068, 0.921573539 }, + { 0.054139e-6, 17260.154654690, 3.411091093 }, + { 0.042411e-6, 6275.962302991, 2.869567043 }, + { 0.040184e-6, -7.113547001, 3.565975565 }, + { 0.036564e-6, 5088.628839767, 3.324679049 }, + { 0.040759e-6, 12352.852604545, 3.981496998 }, + { 0.036507e-6, 801.820931124, 6.248866009 }, + { 0.036955e-6, 3154.687084896, 5.071801441 }, + { 0.042732e-6, 632.783739313, 5.720622217 }, + /* 51, 60 */ + { 0.042560e-6, 161000.685737473, 1.270837679 }, + { 0.040480e-6, 15720.838784878, 2.546610123 }, + { 0.028244e-6, -6286.598968340, 5.069663519 }, + { 0.033477e-6, 6062.663207553, 4.144987272 }, + { 0.034867e-6, 522.577418094, 5.210064075 }, + { 0.032438e-6, 6076.890301554, 0.749317412 }, + { 0.030215e-6, 7084.896781115, 3.389610345 }, + { 0.029247e-6, -71430.695617928, 4.183178762 }, + { 0.033529e-6, 9437.762934887, 2.404714239 }, + { 0.032423e-6, 8827.390269875, 5.541473556 }, + /* 61, 70 */ + { 0.027567e-6, 6279.552731642, 5.040846034 }, + { 0.029862e-6, 12139.553509107, 1.770181024 }, + { 0.022509e-6, 10447.387839604, 1.460726241 }, + { 0.020937e-6, 8429.241266467, 0.652303414 }, + { 0.020322e-6, 419.484643875, 3.735430632 }, + { 0.024816e-6, -1194.447010225, 1.087136918 }, + { 0.025196e-6, 1748.016413067, 2.901883301 }, + { 0.021691e-6, 14143.495242431, 5.952658009 }, + { 0.017673e-6, 6812.766815086, 3.186129845 }, + { 0.022567e-6, 6133.512652857, 3.307984806 }, + /* 71, 80 */ + { 0.016155e-6, 10213.285546211, 1.331103168 }, + { 0.014751e-6, 1349.867409659, 4.308933301 }, + { 0.015949e-6, -220.412642439, 4.005298270 }, + { 0.015974e-6, -2352.866153772, 6.145309371 }, + { 0.014223e-6, 17789.845619785, 2.104551349 }, + { 0.017806e-6, 73.297125859, 3.475975097 }, + { 0.013671e-6, -536.804512095, 5.971672571 }, + { 0.011942e-6, 8031.092263058, 2.053414715 }, + { 0.014318e-6, 16730.463689596, 3.016058075 }, + { 0.012462e-6, 103.092774219, 1.737438797 }, + /* 81, 90 */ + { 0.010962e-6, 3.590428652, 2.196567739 }, + { 0.015078e-6, 19651.048481098, 3.969480770 }, + { 0.010396e-6, 951.718406251, 5.717799605 }, + { 0.011707e-6, -4705.732307544, 2.654125618 }, + { 0.010453e-6, 5863.591206116, 1.913704550 }, + { 0.012420e-6, 4690.479836359, 4.734090399 }, + { 0.011847e-6, 5643.178563677, 5.489005403 }, + { 0.008610e-6, 3340.612426700, 3.661698944 }, + { 0.011622e-6, 5120.601145584, 4.863931876 }, + { 0.010825e-6, 553.569402842, 0.842715011 }, + /* 91, 100 */ + { 0.008666e-6, -135.065080035, 3.293406547 }, + { 0.009963e-6, 149.563197135, 4.870690598 }, + { 0.009858e-6, 6309.374169791, 1.061816410 }, + { 0.007959e-6, 316.391869657, 2.465042647 }, + { 0.010099e-6, 283.859318865, 1.942176992 }, + { 0.007147e-6, -242.728603974, 3.661486981 }, + { 0.007505e-6, 5230.807466803, 4.920937029 }, + { 0.008323e-6, 11769.853693166, 1.229392026 }, + { 0.007490e-6, -6256.777530192, 3.658444681 }, + { 0.009370e-6, 149854.400134205, 0.673880395 }, + /* 101, 110 */ + { 0.007117e-6, 38.027672636, 5.294249518 }, + { 0.007857e-6, 12168.002696575, 0.525733528 }, + { 0.007019e-6, 6206.809778716, 0.837688810 }, + { 0.006056e-6, 955.599741609, 4.194535082 }, + { 0.008107e-6, 13367.972631107, 3.793235253 }, + { 0.006731e-6, 5650.292110678, 5.639906583 }, + { 0.007332e-6, 36.648562930, 0.114858677 }, + { 0.006366e-6, 4164.311989613, 2.262081818 }, + { 0.006858e-6, 5216.580372801, 0.642063318 }, + { 0.006919e-6, 6681.224853400, 6.018501522 }, + /* 111, 120 */ + { 0.006826e-6, 7632.943259650, 3.458654112 }, + { 0.005308e-6, -1592.596013633, 2.500382359 }, + { 0.005096e-6, 11371.704689758, 2.547107806 }, + { 0.004841e-6, 5333.900241022, 0.437078094 }, + { 0.005582e-6, 5966.683980335, 2.246174308 }, + { 0.006304e-6, 11926.254413669, 2.512929171 }, + { 0.006603e-6, 23581.258177318, 5.393136889 }, + { 0.005123e-6, -1.484472708, 2.999641028 }, + { 0.004648e-6, 1589.072895284, 1.275847090 }, + { 0.005119e-6, 6438.496249426, 1.486539246 }, + /* 121, 130 */ + { 0.004521e-6, 4292.330832950, 6.140635794 }, + { 0.005680e-6, 23013.539539587, 4.557814849 }, + { 0.005488e-6, -3.455808046, 0.090675389 }, + { 0.004193e-6, 7234.794256242, 4.869091389 }, + { 0.003742e-6, 7238.675591600, 4.691976180 }, + { 0.004148e-6, -110.206321219, 3.016173439 }, + { 0.004553e-6, 11499.656222793, 5.554998314 }, + { 0.004892e-6, 5436.993015240, 1.475415597 }, + { 0.004044e-6, 4732.030627343, 1.398784824 }, + { 0.004164e-6, 12491.370101415, 5.650931916 }, + /* 131, 140 */ + { 0.004349e-6, 11513.883316794, 2.181745369 }, + { 0.003919e-6, 12528.018664345, 5.823319737 }, + { 0.003129e-6, 6836.645252834, 0.003844094 }, + { 0.004080e-6, -7058.598461315, 3.690360123 }, + { 0.003270e-6, 76.266071276, 1.517189902 }, + { 0.002954e-6, 6283.143160294, 4.447203799 }, + { 0.002872e-6, 28.449187468, 1.158692983 }, + { 0.002881e-6, 735.876513532, 0.349250250 }, + { 0.003279e-6, 5849.364112115, 4.893384368 }, + { 0.003625e-6, 6209.778724132, 1.473760578 }, + /* 141, 150 */ + { 0.003074e-6, 949.175608970, 5.185878737 }, + { 0.002775e-6, 9917.696874510, 1.030026325 }, + { 0.002646e-6, 10973.555686350, 3.918259169 }, + { 0.002575e-6, 25132.303399966, 6.109659023 }, + { 0.003500e-6, 263.083923373, 1.892100742 }, + { 0.002740e-6, 18319.536584880, 4.320519510 }, + { 0.002464e-6, 202.253395174, 4.698203059 }, + { 0.002409e-6, 2.542797281, 5.325009315 }, + { 0.003354e-6, -90955.551694697, 1.942656623 }, + { 0.002296e-6, 6496.374945429, 5.061810696 }, + /* 151, 160 */ + { 0.003002e-6, 6172.869528772, 2.797822767 }, + { 0.003202e-6, 27511.467873537, 0.531673101 }, + { 0.002954e-6, -6283.008539689, 4.533471191 }, + { 0.002353e-6, 639.897286314, 3.734548088 }, + { 0.002401e-6, 16200.772724501, 2.605547070 }, + { 0.003053e-6, 233141.314403759, 3.029030662 }, + { 0.003024e-6, 83286.914269554, 2.355556099 }, + { 0.002863e-6, 17298.182327326, 5.240963796 }, + { 0.002103e-6, -7079.373856808, 5.756641637 }, + { 0.002303e-6, 83996.847317911, 2.013686814 }, + /* 161, 170 */ + { 0.002303e-6, 18073.704938650, 1.089100410 }, + { 0.002381e-6, 63.735898303, 0.759188178 }, + { 0.002493e-6, 6386.168624210, 0.645026535 }, + { 0.002366e-6, 3.932153263, 6.215885448 }, + { 0.002169e-6, 11015.106477335, 4.845297676 }, + { 0.002397e-6, 6243.458341645, 3.809290043 }, + { 0.002183e-6, 1162.474704408, 6.179611691 }, + { 0.002353e-6, 6246.427287062, 4.781719760 }, + { 0.002199e-6, -245.831646229, 5.956152284 }, + { 0.001729e-6, 3894.181829542, 1.264976635 }, + /* 171, 180 */ + { 0.001896e-6, -3128.388765096, 4.914231596 }, + { 0.002085e-6, 35.164090221, 1.405158503 }, + { 0.002024e-6, 14712.317116458, 2.752035928 }, + { 0.001737e-6, 6290.189396992, 5.280820144 }, + { 0.002229e-6, 491.557929457, 1.571007057 }, + { 0.001602e-6, 14314.168113050, 4.203664806 }, + { 0.002186e-6, 454.909366527, 1.402101526 }, + { 0.001897e-6, 22483.848574493, 4.167932508 }, + { 0.001825e-6, -3738.761430108, 0.545828785 }, + { 0.001894e-6, 1052.268383188, 5.817167450 }, + /* 181, 190 */ + { 0.001421e-6, 20.355319399, 2.419886601 }, + { 0.001408e-6, 10984.192351700, 2.732084787 }, + { 0.001847e-6, 10873.986030480, 2.903477885 }, + { 0.001391e-6, -8635.942003763, 0.593891500 }, + { 0.001388e-6, -7.046236698, 1.166145902 }, + { 0.001810e-6, -88860.057071188, 0.487355242 }, + { 0.001288e-6, -1990.745017041, 3.913022880 }, + { 0.001297e-6, 23543.230504682, 3.063805171 }, + { 0.001335e-6, -266.607041722, 3.995764039 }, + { 0.001376e-6, 10969.965257698, 5.152914309 }, + /* 191, 200 */ + { 0.001745e-6, 244287.600007027, 3.626395673 }, + { 0.001649e-6, 31441.677569757, 1.952049260 }, + { 0.001416e-6, 9225.539273283, 4.996408389 }, + { 0.001238e-6, 4804.209275927, 5.503379738 }, + { 0.001472e-6, 4590.910180489, 4.164913291 }, + { 0.001169e-6, 6040.347246017, 5.841719038 }, + { 0.001039e-6, 5540.085789459, 2.769753519 }, + { 0.001004e-6, -170.672870619, 0.755008103 }, + { 0.001284e-6, 10575.406682942, 5.306538209 }, + { 0.001278e-6, 71.812653151, 4.713486491 }, + /* 201, 210 */ + { 0.001321e-6, 18209.330263660, 2.624866359 }, + { 0.001297e-6, 21228.392023546, 0.382603541 }, + { 0.000954e-6, 6282.095528923, 0.882213514 }, + { 0.001145e-6, 6058.731054289, 1.169483931 }, + { 0.000979e-6, 5547.199336460, 5.448375984 }, + { 0.000987e-6, -6262.300454499, 2.656486959 }, + { 0.001070e-6, -154717.609887482, 1.827624012 }, + { 0.000991e-6, 4701.116501708, 4.387001801 }, + { 0.001155e-6, -14.227094002, 3.042700750 }, + { 0.001176e-6, 277.034993741, 3.335519004 }, + /* 211, 220 */ + { 0.000890e-6, 13916.019109642, 5.601498297 }, + { 0.000884e-6, -1551.045222648, 1.088831705 }, + { 0.000876e-6, 5017.508371365, 3.969902609 }, + { 0.000806e-6, 15110.466119866, 5.142876744 }, + { 0.000773e-6, -4136.910433516, 0.022067765 }, + { 0.001077e-6, 175.166059800, 1.844913056 }, + { 0.000954e-6, -6284.056171060, 0.968480906 }, + { 0.000737e-6, 5326.786694021, 4.923831588 }, + { 0.000845e-6, -433.711737877, 4.749245231 }, + { 0.000819e-6, 8662.240323563, 5.991247817 }, + /* 221, 230 */ + { 0.000852e-6, 199.072001436, 2.189604979 }, + { 0.000723e-6, 17256.631536341, 6.068719637 }, + { 0.000940e-6, 6037.244203762, 6.197428148 }, + { 0.000885e-6, 11712.955318231, 3.280414875 }, + { 0.000706e-6, 12559.038152982, 2.824848947 }, + { 0.000732e-6, 2379.164473572, 2.501813417 }, + { 0.000764e-6, -6127.655450557, 2.236346329 }, + { 0.000908e-6, 131.541961686, 2.521257490 }, + { 0.000907e-6, 35371.887265976, 3.370195967 }, + { 0.000673e-6, 1066.495477190, 3.876512374 }, + /* 231, 240 */ + { 0.000814e-6, 17654.780539750, 4.627122566 }, + { 0.000630e-6, 36.027866677, 0.156368499 }, + { 0.000798e-6, 515.463871093, 5.151962502 }, + { 0.000798e-6, 148.078724426, 5.909225055 }, + { 0.000806e-6, 309.278322656, 6.054064447 }, + { 0.000607e-6, -39.617508346, 2.839021623 }, + { 0.000601e-6, 412.371096874, 3.984225404 }, + { 0.000646e-6, 11403.676995575, 3.852959484 }, + { 0.000704e-6, 13521.751441591, 2.300991267 }, + { 0.000603e-6, -65147.619767937, 4.140083146 }, + /* 241, 250 */ + { 0.000609e-6, 10177.257679534, 0.437122327 }, + { 0.000631e-6, 5767.611978898, 4.026532329 }, + { 0.000576e-6, 11087.285125918, 4.760293101 }, + { 0.000674e-6, 14945.316173554, 6.270510511 }, + { 0.000726e-6, 5429.879468239, 6.039606892 }, + { 0.000710e-6, 28766.924424484, 5.672617711 }, + { 0.000647e-6, 11856.218651625, 3.397132627 }, + { 0.000678e-6, -5481.254918868, 6.249666675 }, + { 0.000618e-6, 22003.914634870, 2.466427018 }, + { 0.000738e-6, 6134.997125565, 2.242668890 }, + /* 251, 260 */ + { 0.000660e-6, 625.670192312, 5.864091907 }, + { 0.000694e-6, 3496.032826134, 2.668309141 }, + { 0.000531e-6, 6489.261398429, 1.681888780 }, + { 0.000611e-6, -143571.324284214, 2.424978312 }, + { 0.000575e-6, 12043.574281889, 4.216492400 }, + { 0.000553e-6, 12416.588502848, 4.772158039 }, + { 0.000689e-6, 4686.889407707, 6.224271088 }, + { 0.000495e-6, 7342.457780181, 3.817285811 }, + { 0.000567e-6, 3634.621024518, 1.649264690 }, + { 0.000515e-6, 18635.928454536, 3.945345892 }, + /* 261, 270 */ + { 0.000486e-6, -323.505416657, 4.061673868 }, + { 0.000662e-6, 25158.601719765, 1.794058369 }, + { 0.000509e-6, 846.082834751, 3.053874588 }, + { 0.000472e-6, -12569.674818332, 5.112133338 }, + { 0.000461e-6, 6179.983075773, 0.513669325 }, + { 0.000641e-6, 83467.156352816, 3.210727723 }, + { 0.000520e-6, 10344.295065386, 2.445597761 }, + { 0.000493e-6, 18422.629359098, 1.676939306 }, + { 0.000478e-6, 1265.567478626, 5.487314569 }, + { 0.000472e-6, -18.159247265, 1.999707589 }, + /* 271, 280 */ + { 0.000559e-6, 11190.377900137, 5.783236356 }, + { 0.000494e-6, 9623.688276691, 3.022645053 }, + { 0.000463e-6, 5739.157790895, 1.411223013 }, + { 0.000432e-6, 16858.482532933, 1.179256434 }, + { 0.000574e-6, 72140.628666286, 1.758191830 }, + { 0.000484e-6, 17267.268201691, 3.290589143 }, + { 0.000550e-6, 4907.302050146, 0.864024298 }, + { 0.000399e-6, 14.977853527, 2.094441910 }, + { 0.000491e-6, 224.344795702, 0.878372791 }, + { 0.000432e-6, 20426.571092422, 6.003829241 }, + /* 281, 290 */ + { 0.000481e-6, 5749.452731634, 4.309591964 }, + { 0.000480e-6, 5757.317038160, 1.142348571 }, + { 0.000485e-6, 6702.560493867, 0.210580917 }, + { 0.000426e-6, 6055.549660552, 4.274476529 }, + { 0.000480e-6, 5959.570433334, 5.031351030 }, + { 0.000466e-6, 12562.628581634, 4.959581597 }, + { 0.000520e-6, 39302.096962196, 4.788002889 }, + { 0.000458e-6, 12132.439962106, 1.880103788 }, + { 0.000470e-6, 12029.347187887, 1.405611197 }, + { 0.000416e-6, -7477.522860216, 1.082356330 }, + /* 291, 300 */ + { 0.000449e-6, 11609.862544012, 4.179989585 }, + { 0.000465e-6, 17253.041107690, 0.353496295 }, + { 0.000362e-6, -4535.059436924, 1.583849576 }, + { 0.000383e-6, 21954.157609398, 3.747376371 }, + { 0.000389e-6, 17.252277143, 1.395753179 }, + { 0.000331e-6, 18052.929543158, 0.566790582 }, + { 0.000430e-6, 13517.870106233, 0.685827538 }, + { 0.000368e-6, -5756.908003246, 0.731374317 }, + { 0.000330e-6, 10557.594160824, 3.710043680 }, + { 0.000332e-6, 20199.094959633, 1.652901407 }, + /* 301, 310 */ + { 0.000384e-6, 11933.367960670, 5.827781531 }, + { 0.000387e-6, 10454.501386605, 2.541182564 }, + { 0.000325e-6, 15671.081759407, 2.178850542 }, + { 0.000318e-6, 138.517496871, 2.253253037 }, + { 0.000305e-6, 9388.005909415, 0.578340206 }, + { 0.000352e-6, 5749.861766548, 3.000297967 }, + { 0.000311e-6, 6915.859589305, 1.693574249 }, + { 0.000297e-6, 24072.921469776, 1.997249392 }, + { 0.000363e-6, -640.877607382, 5.071820966 }, + { 0.000323e-6, 12592.450019783, 1.072262823 }, + /* 311, 320 */ + { 0.000341e-6, 12146.667056108, 4.700657997 }, + { 0.000290e-6, 9779.108676125, 1.812320441 }, + { 0.000342e-6, 6132.028180148, 4.322238614 }, + { 0.000329e-6, 6268.848755990, 3.033827743 }, + { 0.000374e-6, 17996.031168222, 3.388716544 }, + { 0.000285e-6, -533.214083444, 4.687313233 }, + { 0.000338e-6, 6065.844601290, 0.877776108 }, + { 0.000276e-6, 24.298513841, 0.770299429 }, + { 0.000336e-6, -2388.894020449, 5.353796034 }, + { 0.000290e-6, 3097.883822726, 4.075291557 }, + /* 321, 330 */ + { 0.000318e-6, 709.933048357, 5.941207518 }, + { 0.000271e-6, 13095.842665077, 3.208912203 }, + { 0.000331e-6, 6073.708907816, 4.007881169 }, + { 0.000292e-6, 742.990060533, 2.714333592 }, + { 0.000362e-6, 29088.811415985, 3.215977013 }, + { 0.000280e-6, 12359.966151546, 0.710872502 }, + { 0.000267e-6, 10440.274292604, 4.730108488 }, + { 0.000262e-6, 838.969287750, 1.327720272 }, + { 0.000250e-6, 16496.361396202, 0.898769761 }, + { 0.000325e-6, 20597.243963041, 0.180044365 }, + /* 331, 340 */ + { 0.000268e-6, 6148.010769956, 5.152666276 }, + { 0.000284e-6, 5636.065016677, 5.655385808 }, + { 0.000301e-6, 6080.822454817, 2.135396205 }, + { 0.000294e-6, -377.373607916, 3.708784168 }, + { 0.000236e-6, 2118.763860378, 1.733578756 }, + { 0.000234e-6, 5867.523359379, 5.575209112 }, + { 0.000268e-6, -226858.238553767, 0.069432392 }, + { 0.000265e-6, 167283.761587465, 4.369302826 }, + { 0.000280e-6, 28237.233459389, 5.304829118 }, + { 0.000292e-6, 12345.739057544, 4.096094132 }, + /* 341, 350 */ + { 0.000223e-6, 19800.945956225, 3.069327406 }, + { 0.000301e-6, 43232.306658416, 6.205311188 }, + { 0.000264e-6, 18875.525869774, 1.417263408 }, + { 0.000304e-6, -1823.175188677, 3.409035232 }, + { 0.000301e-6, 109.945688789, 0.510922054 }, + { 0.000260e-6, 813.550283960, 2.389438934 }, + { 0.000299e-6, 316428.228673312, 5.384595078 }, + { 0.000211e-6, 5756.566278634, 3.789392838 }, + { 0.000209e-6, 5750.203491159, 1.661943545 }, + { 0.000240e-6, 12489.885628707, 5.684549045 }, + /* 351, 360 */ + { 0.000216e-6, 6303.851245484, 3.862942261 }, + { 0.000203e-6, 1581.959348283, 5.549853589 }, + { 0.000200e-6, 5642.198242609, 1.016115785 }, + { 0.000197e-6, -70.849445304, 4.690702525 }, + { 0.000227e-6, 6287.008003254, 2.911891613 }, + { 0.000197e-6, 533.623118358, 1.048982898 }, + { 0.000205e-6, -6279.485421340, 1.829362730 }, + { 0.000209e-6, -10988.808157535, 2.636140084 }, + { 0.000208e-6, -227.526189440, 4.127883842 }, + { 0.000191e-6, 415.552490612, 4.401165650 }, + /* 361, 370 */ + { 0.000190e-6, 29296.615389579, 4.175658539 }, + { 0.000264e-6, 66567.485864652, 4.601102551 }, + { 0.000256e-6, -3646.350377354, 0.506364778 }, + { 0.000188e-6, 13119.721102825, 2.032195842 }, + { 0.000185e-6, -209.366942175, 4.694756586 }, + { 0.000198e-6, 25934.124331089, 3.832703118 }, + { 0.000195e-6, 4061.219215394, 3.308463427 }, + { 0.000234e-6, 5113.487598583, 1.716090661 }, + { 0.000188e-6, 1478.866574064, 5.686865780 }, + { 0.000222e-6, 11823.161639450, 1.942386641 }, + /* 371, 380 */ + { 0.000181e-6, 10770.893256262, 1.999482059 }, + { 0.000171e-6, 6546.159773364, 1.182807992 }, + { 0.000206e-6, 70.328180442, 5.934076062 }, + { 0.000169e-6, 20995.392966449, 2.169080622 }, + { 0.000191e-6, 10660.686935042, 5.405515999 }, + { 0.000228e-6, 33019.021112205, 4.656985514 }, + { 0.000184e-6, -4933.208440333, 3.327476868 }, + { 0.000220e-6, -135.625325010, 1.765430262 }, + { 0.000166e-6, 23141.558382925, 3.454132746 }, + { 0.000191e-6, 6144.558353121, 5.020393445 }, + /* 381, 390 */ + { 0.000180e-6, 6084.003848555, 0.602182191 }, + { 0.000163e-6, 17782.732072784, 4.960593133 }, + { 0.000225e-6, 16460.333529525, 2.596451817 }, + { 0.000222e-6, 5905.702242076, 3.731990323 }, + { 0.000204e-6, 227.476132789, 5.636192701 }, + { 0.000159e-6, 16737.577236597, 3.600691544 }, + { 0.000200e-6, 6805.653268085, 0.868220961 }, + { 0.000187e-6, 11919.140866668, 2.629456641 }, + { 0.000161e-6, 127.471796607, 2.862574720 }, + { 0.000205e-6, 6286.666278643, 1.742882331 }, + /* 391, 400 */ + { 0.000189e-6, 153.778810485, 4.812372643 }, + { 0.000168e-6, 16723.350142595, 0.027860588 }, + { 0.000149e-6, 11720.068865232, 0.659721876 }, + { 0.000189e-6, 5237.921013804, 5.245313000 }, + { 0.000143e-6, 6709.674040867, 4.317625647 }, + { 0.000146e-6, 4487.817406270, 4.815297007 }, + { 0.000144e-6, -664.756045130, 5.381366880 }, + { 0.000175e-6, 5127.714692584, 4.728443327 }, + { 0.000162e-6, 6254.626662524, 1.435132069 }, + { 0.000187e-6, 47162.516354635, 1.354371923 }, + /* 401, 410 */ + { 0.000146e-6, 11080.171578918, 3.369695406 }, + { 0.000180e-6, -348.924420448, 2.490902145 }, + { 0.000148e-6, 151.047669843, 3.799109588 }, + { 0.000157e-6, 6197.248551160, 1.284375887 }, + { 0.000167e-6, 146.594251718, 0.759969109 }, + { 0.000133e-6, -5331.357443741, 5.409701889 }, + { 0.000154e-6, 95.979227218, 3.366890614 }, + { 0.000148e-6, -6418.140930027, 3.384104996 }, + { 0.000128e-6, -6525.804453965, 3.803419985 }, + { 0.000130e-6, 11293.470674356, 0.939039445 }, + /* 411, 420 */ + { 0.000152e-6, -5729.506447149, 0.734117523 }, + { 0.000138e-6, 210.117701700, 2.564216078 }, + { 0.000123e-6, 6066.595360816, 4.517099537 }, + { 0.000140e-6, 18451.078546566, 0.642049130 }, + { 0.000126e-6, 11300.584221356, 3.485280663 }, + { 0.000119e-6, 10027.903195729, 3.217431161 }, + { 0.000151e-6, 4274.518310832, 4.404359108 }, + { 0.000117e-6, 6072.958148291, 0.366324650 }, + { 0.000165e-6, -7668.637425143, 4.298212528 }, + { 0.000117e-6, -6245.048177356, 5.379518958 }, + /* 421, 430 */ + { 0.000130e-6, -5888.449964932, 4.527681115 }, + { 0.000121e-6, -543.918059096, 6.109429504 }, + { 0.000162e-6, 9683.594581116, 5.720092446 }, + { 0.000141e-6, 6219.339951688, 0.679068671 }, + { 0.000118e-6, 22743.409379516, 4.881123092 }, + { 0.000129e-6, 1692.165669502, 0.351407289 }, + { 0.000126e-6, 5657.405657679, 5.146592349 }, + { 0.000114e-6, 728.762966531, 0.520791814 }, + { 0.000120e-6, 52.596639600, 0.948516300 }, + { 0.000115e-6, 65.220371012, 3.504914846 }, + /* 431, 440 */ + { 0.000126e-6, 5881.403728234, 5.577502482 }, + { 0.000158e-6, 163096.180360983, 2.957128968 }, + { 0.000134e-6, 12341.806904281, 2.598576764 }, + { 0.000151e-6, 16627.370915377, 3.985702050 }, + { 0.000109e-6, 1368.660252845, 0.014730471 }, + { 0.000131e-6, 6211.263196841, 0.085077024 }, + { 0.000146e-6, 5792.741760812, 0.708426604 }, + { 0.000146e-6, -77.750543984, 3.121576600 }, + { 0.000107e-6, 5341.013788022, 0.288231904 }, + { 0.000138e-6, 6281.591377283, 2.797450317 }, + /* 441, 450 */ + { 0.000113e-6, -6277.552925684, 2.788904128 }, + { 0.000115e-6, -525.758811831, 5.895222200 }, + { 0.000138e-6, 6016.468808270, 6.096188999 }, + { 0.000139e-6, 23539.707386333, 2.028195445 }, + { 0.000146e-6, -4176.041342449, 4.660008502 }, + { 0.000107e-6, 16062.184526117, 4.066520001 }, + { 0.000142e-6, 83783.548222473, 2.936315115 }, + { 0.000128e-6, 9380.959672717, 3.223844306 }, + { 0.000135e-6, 6205.325306007, 1.638054048 }, + { 0.000101e-6, 2699.734819318, 5.481603249 }, + /* 451, 460 */ + { 0.000104e-6, -568.821874027, 2.205734493 }, + { 0.000103e-6, 6321.103522627, 2.440421099 }, + { 0.000119e-6, 6321.208885629, 2.547496264 }, + { 0.000138e-6, 1975.492545856, 2.314608466 }, + { 0.000121e-6, 137.033024162, 4.539108237 }, + { 0.000123e-6, 19402.796952817, 4.538074405 }, + { 0.000119e-6, 22805.735565994, 2.869040566 }, + { 0.000133e-6, 64471.991241142, 6.056405489 }, + { 0.000129e-6, -85.827298831, 2.540635083 }, + { 0.000131e-6, 13613.804277336, 4.005732868 }, + /* 461, 470 */ + { 0.000104e-6, 9814.604100291, 1.959967212 }, + { 0.000112e-6, 16097.679950283, 3.589026260 }, + { 0.000123e-6, 2107.034507542, 1.728627253 }, + { 0.000121e-6, 36949.230808424, 6.072332087 }, + { 0.000108e-6, -12539.853380183, 3.716133846 }, + { 0.000113e-6, -7875.671863624, 2.725771122 }, + { 0.000109e-6, 4171.425536614, 4.033338079 }, + { 0.000101e-6, 6247.911759770, 3.441347021 }, + { 0.000113e-6, 7330.728427345, 0.656372122 }, + { 0.000113e-6, 51092.726050855, 2.791483066 }, + /* 471, 480 */ + { 0.000106e-6, 5621.842923210, 1.815323326 }, + { 0.000101e-6, 111.430161497, 5.711033677 }, + { 0.000103e-6, 909.818733055, 2.812745443 }, + { 0.000101e-6, 1790.642637886, 1.965746028 }, + + /* T */ + { 102.156724e-6, 6283.075849991, 4.249032005 }, + { 1.706807e-6, 12566.151699983, 4.205904248 }, + { 0.269668e-6, 213.299095438, 3.400290479 }, + { 0.265919e-6, 529.690965095, 5.836047367 }, + { 0.210568e-6, -3.523118349, 6.262738348 }, + { 0.077996e-6, 5223.693919802, 4.670344204 }, + /* 481, 490 */ + { 0.054764e-6, 1577.343542448, 4.534800170 }, + { 0.059146e-6, 26.298319800, 1.083044735 }, + { 0.034420e-6, -398.149003408, 5.980077351 }, + { 0.032088e-6, 18849.227549974, 4.162913471 }, + { 0.033595e-6, 5507.553238667, 5.980162321 }, + { 0.029198e-6, 5856.477659115, 0.623811863 }, + { 0.027764e-6, 155.420399434, 3.745318113 }, + { 0.025190e-6, 5746.271337896, 2.980330535 }, + { 0.022997e-6, -796.298006816, 1.174411803 }, + { 0.024976e-6, 5760.498431898, 2.467913690 }, + /* 491, 500 */ + { 0.021774e-6, 206.185548437, 3.854787540 }, + { 0.017925e-6, -775.522611324, 1.092065955 }, + { 0.013794e-6, 426.598190876, 2.699831988 }, + { 0.013276e-6, 6062.663207553, 5.845801920 }, + { 0.011774e-6, 12036.460734888, 2.292832062 }, + { 0.012869e-6, 6076.890301554, 5.333425680 }, + { 0.012152e-6, 1059.381930189, 6.222874454 }, + { 0.011081e-6, -7.113547001, 5.154724984 }, + { 0.010143e-6, 4694.002954708, 4.044013795 }, + { 0.009357e-6, 5486.777843175, 3.416081409 }, + /* 501, 510 */ + { 0.010084e-6, 522.577418094, 0.749320262 }, + { 0.008587e-6, 10977.078804699, 2.777152598 }, + { 0.008628e-6, 6275.962302991, 4.562060226 }, + { 0.008158e-6, -220.412642439, 5.806891533 }, + { 0.007746e-6, 2544.314419883, 1.603197066 }, + { 0.007670e-6, 2146.165416475, 3.000200440 }, + { 0.007098e-6, 74.781598567, 0.443725817 }, + { 0.006180e-6, -536.804512095, 1.302642751 }, + { 0.005818e-6, 5088.628839767, 4.827723531 }, + { 0.004945e-6, -6286.598968340, 0.268305170 }, + /* 511, 520 */ + { 0.004774e-6, 1349.867409659, 5.808636673 }, + { 0.004687e-6, -242.728603974, 5.154890570 }, + { 0.006089e-6, 1748.016413067, 4.403765209 }, + { 0.005975e-6, -1194.447010225, 2.583472591 }, + { 0.004229e-6, 951.718406251, 0.931172179 }, + { 0.005264e-6, 553.569402842, 2.336107252 }, + { 0.003049e-6, 5643.178563677, 1.362634430 }, + { 0.002974e-6, 6812.766815086, 1.583012668 }, + { 0.003403e-6, -2352.866153772, 2.552189886 }, + { 0.003030e-6, 419.484643875, 5.286473844 }, + /* 521, 530 */ + { 0.003210e-6, -7.046236698, 1.863796539 }, + { 0.003058e-6, 9437.762934887, 4.226420633 }, + { 0.002589e-6, 12352.852604545, 1.991935820 }, + { 0.002927e-6, 5216.580372801, 2.319951253 }, + { 0.002425e-6, 5230.807466803, 3.084752833 }, + { 0.002656e-6, 3154.687084896, 2.487447866 }, + { 0.002445e-6, 10447.387839604, 2.347139160 }, + { 0.002990e-6, 4690.479836359, 6.235872050 }, + { 0.002890e-6, 5863.591206116, 0.095197563 }, + { 0.002498e-6, 6438.496249426, 2.994779800 }, + /* 531, 540 */ + { 0.001889e-6, 8031.092263058, 3.569003717 }, + { 0.002567e-6, 801.820931124, 3.425611498 }, + { 0.001803e-6, -71430.695617928, 2.192295512 }, + { 0.001782e-6, 3.932153263, 5.180433689 }, + { 0.001694e-6, -4705.732307544, 4.641779174 }, + { 0.001704e-6, -1592.596013633, 3.997097652 }, + { 0.001735e-6, 5849.364112115, 0.417558428 }, + { 0.001643e-6, 8429.241266467, 2.180619584 }, + { 0.001680e-6, 38.133035638, 4.164529426 }, + { 0.002045e-6, 7084.896781115, 0.526323854 }, + /* 541, 550 */ + { 0.001458e-6, 4292.330832950, 1.356098141 }, + { 0.001437e-6, 20.355319399, 3.895439360 }, + { 0.001738e-6, 6279.552731642, 0.087484036 }, + { 0.001367e-6, 14143.495242431, 3.987576591 }, + { 0.001344e-6, 7234.794256242, 0.090454338 }, + { 0.001438e-6, 11499.656222793, 0.974387904 }, + { 0.001257e-6, 6836.645252834, 1.509069366 }, + { 0.001358e-6, 11513.883316794, 0.495572260 }, + { 0.001628e-6, 7632.943259650, 4.968445721 }, + { 0.001169e-6, 103.092774219, 2.838496795 }, + /* 551, 560 */ + { 0.001162e-6, 4164.311989613, 3.408387778 }, + { 0.001092e-6, 6069.776754553, 3.617942651 }, + { 0.001008e-6, 17789.845619785, 0.286350174 }, + { 0.001008e-6, 639.897286314, 1.610762073 }, + { 0.000918e-6, 10213.285546211, 5.532798067 }, + { 0.001011e-6, -6256.777530192, 0.661826484 }, + { 0.000753e-6, 16730.463689596, 3.905030235 }, + { 0.000737e-6, 11926.254413669, 4.641956361 }, + { 0.000694e-6, 3340.612426700, 2.111120332 }, + { 0.000701e-6, 3894.181829542, 2.760823491 }, + /* 561, 570 */ + { 0.000689e-6, -135.065080035, 4.768800780 }, + { 0.000700e-6, 13367.972631107, 5.760439898 }, + { 0.000664e-6, 6040.347246017, 1.051215840 }, + { 0.000654e-6, 5650.292110678, 4.911332503 }, + { 0.000788e-6, 6681.224853400, 4.699648011 }, + { 0.000628e-6, 5333.900241022, 5.024608847 }, + { 0.000755e-6, -110.206321219, 4.370971253 }, + { 0.000628e-6, 6290.189396992, 3.660478857 }, + { 0.000635e-6, 25132.303399966, 4.121051532 }, + { 0.000534e-6, 5966.683980335, 1.173284524 }, + /* 571, 580 */ + { 0.000543e-6, -433.711737877, 0.345585464 }, + { 0.000517e-6, -1990.745017041, 5.414571768 }, + { 0.000504e-6, 5767.611978898, 2.328281115 }, + { 0.000485e-6, 5753.384884897, 1.685874771 }, + { 0.000463e-6, 7860.419392439, 5.297703006 }, + { 0.000604e-6, 515.463871093, 0.591998446 }, + { 0.000443e-6, 12168.002696575, 4.830881244 }, + { 0.000570e-6, 199.072001436, 3.899190272 }, + { 0.000465e-6, 10969.965257698, 0.476681802 }, + { 0.000424e-6, -7079.373856808, 1.112242763 }, + /* 581, 590 */ + { 0.000427e-6, 735.876513532, 1.994214480 }, + { 0.000478e-6, -6127.655450557, 3.778025483 }, + { 0.000414e-6, 10973.555686350, 5.441088327 }, + { 0.000512e-6, 1589.072895284, 0.107123853 }, + { 0.000378e-6, 10984.192351700, 0.915087231 }, + { 0.000402e-6, 11371.704689758, 4.107281715 }, + { 0.000453e-6, 9917.696874510, 1.917490952 }, + { 0.000395e-6, 149.563197135, 2.763124165 }, + { 0.000371e-6, 5739.157790895, 3.112111866 }, + { 0.000350e-6, 11790.629088659, 0.440639857 }, + /* 591, 600 */ + { 0.000356e-6, 6133.512652857, 5.444568842 }, + { 0.000344e-6, 412.371096874, 5.676832684 }, + { 0.000383e-6, 955.599741609, 5.559734846 }, + { 0.000333e-6, 6496.374945429, 0.261537984 }, + { 0.000340e-6, 6055.549660552, 5.975534987 }, + { 0.000334e-6, 1066.495477190, 2.335063907 }, + { 0.000399e-6, 11506.769769794, 5.321230910 }, + { 0.000314e-6, 18319.536584880, 2.313312404 }, + { 0.000424e-6, 1052.268383188, 1.211961766 }, + { 0.000307e-6, 63.735898303, 3.169551388 }, + /* 601, 610 */ + { 0.000329e-6, 29.821438149, 6.106912080 }, + { 0.000357e-6, 6309.374169791, 4.223760346 }, + { 0.000312e-6, -3738.761430108, 2.180556645 }, + { 0.000301e-6, 309.278322656, 1.499984572 }, + { 0.000268e-6, 12043.574281889, 2.447520648 }, + { 0.000257e-6, 12491.370101415, 3.662331761 }, + { 0.000290e-6, 625.670192312, 1.272834584 }, + { 0.000256e-6, 5429.879468239, 1.913426912 }, + { 0.000339e-6, 3496.032826134, 4.165930011 }, + { 0.000283e-6, 3930.209696220, 4.325565754 }, + /* 611, 620 */ + { 0.000241e-6, 12528.018664345, 3.832324536 }, + { 0.000304e-6, 4686.889407707, 1.612348468 }, + { 0.000259e-6, 16200.772724501, 3.470173146 }, + { 0.000238e-6, 12139.553509107, 1.147977842 }, + { 0.000236e-6, 6172.869528772, 3.776271728 }, + { 0.000296e-6, -7058.598461315, 0.460368852 }, + { 0.000306e-6, 10575.406682942, 0.554749016 }, + { 0.000251e-6, 17298.182327326, 0.834332510 }, + { 0.000290e-6, 4732.030627343, 4.759564091 }, + { 0.000261e-6, 5884.926846583, 0.298259862 }, + /* 621, 630 */ + { 0.000249e-6, 5547.199336460, 3.749366406 }, + { 0.000213e-6, 11712.955318231, 5.415666119 }, + { 0.000223e-6, 4701.116501708, 2.703203558 }, + { 0.000268e-6, -640.877607382, 0.283670793 }, + { 0.000209e-6, 5636.065016677, 1.238477199 }, + { 0.000193e-6, 10177.257679534, 1.943251340 }, + { 0.000182e-6, 6283.143160294, 2.456157599 }, + { 0.000184e-6, -227.526189440, 5.888038582 }, + { 0.000182e-6, -6283.008539689, 0.241332086 }, + { 0.000228e-6, -6284.056171060, 2.657323816 }, + /* 631, 640 */ + { 0.000166e-6, 7238.675591600, 5.930629110 }, + { 0.000167e-6, 3097.883822726, 5.570955333 }, + { 0.000159e-6, -323.505416657, 5.786670700 }, + { 0.000154e-6, -4136.910433516, 1.517805532 }, + { 0.000176e-6, 12029.347187887, 3.139266834 }, + { 0.000167e-6, 12132.439962106, 3.556352289 }, + { 0.000153e-6, 202.253395174, 1.463313961 }, + { 0.000157e-6, 17267.268201691, 1.586837396 }, + { 0.000142e-6, 83996.847317911, 0.022670115 }, + { 0.000152e-6, 17260.154654690, 0.708528947 }, + /* 641, 650 */ + { 0.000144e-6, 6084.003848555, 5.187075177 }, + { 0.000135e-6, 5756.566278634, 1.993229262 }, + { 0.000134e-6, 5750.203491159, 3.457197134 }, + { 0.000144e-6, 5326.786694021, 6.066193291 }, + { 0.000160e-6, 11015.106477335, 1.710431974 }, + { 0.000133e-6, 3634.621024518, 2.836451652 }, + { 0.000134e-6, 18073.704938650, 5.453106665 }, + { 0.000134e-6, 1162.474704408, 5.326898811 }, + { 0.000128e-6, 5642.198242609, 2.511652591 }, + { 0.000160e-6, 632.783739313, 5.628785365 }, + /* 651, 660 */ + { 0.000132e-6, 13916.019109642, 0.819294053 }, + { 0.000122e-6, 14314.168113050, 5.677408071 }, + { 0.000125e-6, 12359.966151546, 5.251984735 }, + { 0.000121e-6, 5749.452731634, 2.210924603 }, + { 0.000136e-6, -245.831646229, 1.646502367 }, + { 0.000120e-6, 5757.317038160, 3.240883049 }, + { 0.000134e-6, 12146.667056108, 3.059480037 }, + { 0.000137e-6, 6206.809778716, 1.867105418 }, + { 0.000141e-6, 17253.041107690, 2.069217456 }, + { 0.000129e-6, -7477.522860216, 2.781469314 }, + /* 661, 670 */ + { 0.000116e-6, 5540.085789459, 4.281176991 }, + { 0.000116e-6, 9779.108676125, 3.320925381 }, + { 0.000129e-6, 5237.921013804, 3.497704076 }, + { 0.000113e-6, 5959.570433334, 0.983210840 }, + { 0.000122e-6, 6282.095528923, 2.674938860 }, + { 0.000140e-6, -11.045700264, 4.957936982 }, + { 0.000108e-6, 23543.230504682, 1.390113589 }, + { 0.000106e-6, -12569.674818332, 0.429631317 }, + { 0.000110e-6, -266.607041722, 5.501340197 }, + { 0.000115e-6, 12559.038152982, 4.691456618 }, + /* 671, 680 */ + { 0.000134e-6, -2388.894020449, 0.577313584 }, + { 0.000109e-6, 10440.274292604, 6.218148717 }, + { 0.000102e-6, -543.918059096, 1.477842615 }, + { 0.000108e-6, 21228.392023546, 2.237753948 }, + { 0.000101e-6, -4535.059436924, 3.100492232 }, + { 0.000103e-6, 76.266071276, 5.594294322 }, + { 0.000104e-6, 949.175608970, 5.674287810 }, + { 0.000101e-6, 13517.870106233, 2.196632348 }, + { 0.000100e-6, 11933.367960670, 4.056084160 }, + + /* T^2 */ + { 4.322990e-6, 6283.075849991, 2.642893748 }, + /* 681, 690 */ + { 0.406495e-6, 0.000000000, 4.712388980 }, + { 0.122605e-6, 12566.151699983, 2.438140634 }, + { 0.019476e-6, 213.299095438, 1.642186981 }, + { 0.016916e-6, 529.690965095, 4.510959344 }, + { 0.013374e-6, -3.523118349, 1.502210314 }, + { 0.008042e-6, 26.298319800, 0.478549024 }, + { 0.007824e-6, 155.420399434, 5.254710405 }, + { 0.004894e-6, 5746.271337896, 4.683210850 }, + { 0.004875e-6, 5760.498431898, 0.759507698 }, + { 0.004416e-6, 5223.693919802, 6.028853166 }, + /* 691, 700 */ + { 0.004088e-6, -7.113547001, 0.060926389 }, + { 0.004433e-6, 77713.771467920, 3.627734103 }, + { 0.003277e-6, 18849.227549974, 2.327912542 }, + { 0.002703e-6, 6062.663207553, 1.271941729 }, + { 0.003435e-6, -775.522611324, 0.747446224 }, + { 0.002618e-6, 6076.890301554, 3.633715689 }, + { 0.003146e-6, 206.185548437, 5.647874613 }, + { 0.002544e-6, 1577.343542448, 6.232904270 }, + { 0.002218e-6, -220.412642439, 1.309509946 }, + { 0.002197e-6, 5856.477659115, 2.407212349 }, + /* 701, 710 */ + { 0.002897e-6, 5753.384884897, 5.863842246 }, + { 0.001766e-6, 426.598190876, 0.754113147 }, + { 0.001738e-6, -796.298006816, 2.714942671 }, + { 0.001695e-6, 522.577418094, 2.629369842 }, + { 0.001584e-6, 5507.553238667, 1.341138229 }, + { 0.001503e-6, -242.728603974, 0.377699736 }, + { 0.001552e-6, -536.804512095, 2.904684667 }, + { 0.001370e-6, -398.149003408, 1.265599125 }, + { 0.001889e-6, -5573.142801634, 4.413514859 }, + { 0.001722e-6, 6069.776754553, 2.445966339 }, + /* 711, 720 */ + { 0.001124e-6, 1059.381930189, 5.041799657 }, + { 0.001258e-6, 553.569402842, 3.849557278 }, + { 0.000831e-6, 951.718406251, 2.471094709 }, + { 0.000767e-6, 4694.002954708, 5.363125422 }, + { 0.000756e-6, 1349.867409659, 1.046195744 }, + { 0.000775e-6, -11.045700264, 0.245548001 }, + { 0.000597e-6, 2146.165416475, 4.543268798 }, + { 0.000568e-6, 5216.580372801, 4.178853144 }, + { 0.000711e-6, 1748.016413067, 5.934271972 }, + { 0.000499e-6, 12036.460734888, 0.624434410 }, + /* 721, 730 */ + { 0.000671e-6, -1194.447010225, 4.136047594 }, + { 0.000488e-6, 5849.364112115, 2.209679987 }, + { 0.000621e-6, 6438.496249426, 4.518860804 }, + { 0.000495e-6, -6286.598968340, 1.868201275 }, + { 0.000456e-6, 5230.807466803, 1.271231591 }, + { 0.000451e-6, 5088.628839767, 0.084060889 }, + { 0.000435e-6, 5643.178563677, 3.324456609 }, + { 0.000387e-6, 10977.078804699, 4.052488477 }, + { 0.000547e-6, 161000.685737473, 2.841633844 }, + { 0.000522e-6, 3154.687084896, 2.171979966 }, + /* 731, 740 */ + { 0.000375e-6, 5486.777843175, 4.983027306 }, + { 0.000421e-6, 5863.591206116, 4.546432249 }, + { 0.000439e-6, 7084.896781115, 0.522967921 }, + { 0.000309e-6, 2544.314419883, 3.172606705 }, + { 0.000347e-6, 4690.479836359, 1.479586566 }, + { 0.000317e-6, 801.820931124, 3.553088096 }, + { 0.000262e-6, 419.484643875, 0.606635550 }, + { 0.000248e-6, 6836.645252834, 3.014082064 }, + { 0.000245e-6, -1592.596013633, 5.519526220 }, + { 0.000225e-6, 4292.330832950, 2.877956536 }, + /* 741, 750 */ + { 0.000214e-6, 7234.794256242, 1.605227587 }, + { 0.000205e-6, 5767.611978898, 0.625804796 }, + { 0.000180e-6, 10447.387839604, 3.499954526 }, + { 0.000229e-6, 199.072001436, 5.632304604 }, + { 0.000214e-6, 639.897286314, 5.960227667 }, + { 0.000175e-6, -433.711737877, 2.162417992 }, + { 0.000209e-6, 515.463871093, 2.322150893 }, + { 0.000173e-6, 6040.347246017, 2.556183691 }, + { 0.000184e-6, 6309.374169791, 4.732296790 }, + { 0.000227e-6, 149854.400134205, 5.385812217 }, + /* 751, 760 */ + { 0.000154e-6, 8031.092263058, 5.120720920 }, + { 0.000151e-6, 5739.157790895, 4.815000443 }, + { 0.000197e-6, 7632.943259650, 0.222827271 }, + { 0.000197e-6, 74.781598567, 3.910456770 }, + { 0.000138e-6, 6055.549660552, 1.397484253 }, + { 0.000149e-6, -6127.655450557, 5.333727496 }, + { 0.000137e-6, 3894.181829542, 4.281749907 }, + { 0.000135e-6, 9437.762934887, 5.979971885 }, + { 0.000139e-6, -2352.866153772, 4.715630782 }, + { 0.000142e-6, 6812.766815086, 0.513330157 }, + /* 761, 770 */ + { 0.000120e-6, -4705.732307544, 0.194160689 }, + { 0.000131e-6, -71430.695617928, 0.000379226 }, + { 0.000124e-6, 6279.552731642, 2.122264908 }, + { 0.000108e-6, -6256.777530192, 0.883445696 }, + + /* T^3 */ + { 0.143388e-6, 6283.075849991, 1.131453581 }, + { 0.006671e-6, 12566.151699983, 0.775148887 }, + { 0.001480e-6, 155.420399434, 0.480016880 }, + { 0.000934e-6, 213.299095438, 6.144453084 }, + { 0.000795e-6, 529.690965095, 2.941595619 }, + { 0.000673e-6, 5746.271337896, 0.120415406 }, + /* 771, 780 */ + { 0.000672e-6, 5760.498431898, 5.317009738 }, + { 0.000389e-6, -220.412642439, 3.090323467 }, + { 0.000373e-6, 6062.663207553, 3.003551964 }, + { 0.000360e-6, 6076.890301554, 1.918913041 }, + { 0.000316e-6, -21.340641002, 5.545798121 }, + { 0.000315e-6, -242.728603974, 1.884932563 }, + { 0.000278e-6, 206.185548437, 1.266254859 }, + { 0.000238e-6, -536.804512095, 4.532664830 }, + { 0.000185e-6, 522.577418094, 4.578313856 }, + { 0.000245e-6, 18849.227549974, 0.587467082 }, + /* 781, 787 */ + { 0.000180e-6, 426.598190876, 5.151178553 }, + { 0.000200e-6, 553.569402842, 5.355983739 }, + { 0.000141e-6, 5223.693919802, 1.336556009 }, + { 0.000104e-6, 5856.477659115, 4.239842759 }, + + /* T^4 */ + { 0.003826e-6, 6283.075849991, 5.705257275 }, + { 0.000303e-6, 12566.151699983, 5.407132842 }, + { 0.000209e-6, 155.420399434, 1.989815753 } + }; + + +/* Time since J2000.0 in Julian millennia. */ + t = ((date1 - DJ00) + date2) / DJM; + +/* ================= */ +/* Topocentric terms */ +/* ================= */ + +/* Convert UT to local solar time in radians. */ + tsol = fmod(ut, 1.0) * D2PI + elong; + +/* FUNDAMENTAL ARGUMENTS: Simon et al. 1994. */ + +/* Combine time argument (millennia) with deg/arcsec factor. */ + w = t / 3600.0; + +/* Sun Mean Longitude. */ + elsun = fmod(280.46645683 + 1296027711.03429 * w, 360.0) * DD2R; + +/* Sun Mean Anomaly. */ + emsun = fmod(357.52910918 + 1295965810.481 * w, 360.0) * DD2R; + +/* Mean Elongation of Moon from Sun. */ + d = fmod(297.85019547 + 16029616012.090 * w, 360.0) * DD2R; + +/* Mean Longitude of Jupiter. */ + elj = fmod(34.35151874 + 109306899.89453 * w, 360.0) * DD2R; + +/* Mean Longitude of Saturn. */ + els = fmod(50.07744430 + 44046398.47038 * w, 360.0) * DD2R; + +/* TOPOCENTRIC TERMS: Moyer 1981 and Murray 1983. */ + wt = + 0.00029e-10 * u * sin(tsol + elsun - els) + + 0.00100e-10 * u * sin(tsol - 2.0 * emsun) + + 0.00133e-10 * u * sin(tsol - d) + + 0.00133e-10 * u * sin(tsol + elsun - elj) + - 0.00229e-10 * u * sin(tsol + 2.0 * elsun + emsun) + - 0.02200e-10 * v * cos(elsun + emsun) + + 0.05312e-10 * u * sin(tsol - emsun) + - 0.13677e-10 * u * sin(tsol + 2.0 * elsun) + - 1.31840e-10 * v * cos(elsun) + + 3.17679e-10 * u * sin(tsol); + +/* ===================== */ +/* Fairhead et al. model */ +/* ===================== */ + +/* T**0 */ + w0 = 0; + for (j = 473; j >= 0; j--) { + w0 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); + } + +/* T**1 */ + w1 = 0; + for (j = 678; j >= 474; j--) { + w1 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); + } + +/* T**2 */ + w2 = 0; + for (j = 763; j >= 679; j--) { + w2 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); + } + +/* T**3 */ + w3 = 0; + for (j = 783; j >= 764; j--) { + w3 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); + } + +/* T**4 */ + w4 = 0; + for (j = 786; j >= 784; j--) { + w4 += fairhd[j][0] * sin(fairhd[j][1] * t + fairhd[j][2]); + } + +/* Multiply by powers of T and combine. */ + wf = t * (t * (t * (t * w4 + w3) + w2) + w1) + w0; + +/* Adjustments to use JPL planetary masses instead of IAU. */ + wj = 0.00065e-6 * sin(6069.776754 * t + 4.021194) + + 0.00033e-6 * sin( 213.299095 * t + 5.543132) + + (-0.00196e-6 * sin(6208.294251 * t + 5.696701)) + + (-0.00173e-6 * sin( 74.781599 * t + 2.435900)) + + 0.03638e-6 * t * t; + +/* ============ */ +/* Final result */ +/* ============ */ + +/* TDB-TT in seconds. */ + w = wt + wf + wj; + + return w; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/dtf2d.c b/deps/sofa/20231011/c/src/dtf2d.c new file mode 100644 index 0000000..d662d65 --- /dev/null +++ b/deps/sofa/20231011/c/src/dtf2d.c @@ -0,0 +1,256 @@ +#include "sofa.h" +#include "sofam.h" +#include + +int iauDtf2d(const char *scale, int iy, int im, int id, + int ihr, int imn, double sec, double *d1, double *d2) +/* +** - - - - - - - - - +** i a u D t f 2 d +** - - - - - - - - - +** +** Encode date and time fields into 2-part Julian Date (or in the case +** of UTC a quasi-JD form that includes special provision for leap +** seconds). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** scale char[] time scale ID (Note 1) +** iy,im,id int year, month, day in Gregorian calendar (Note 2) +** ihr,imn int hour, minute +** sec double seconds +** +** Returned: +** d1,d2 double 2-part Julian Date (Notes 3,4) +** +** Returned (function value): +** int status: +3 = both of next two +** +2 = time is after end of day (Note 5) +** +1 = dubious year (Note 6) +** 0 = OK +** -1 = bad year +** -2 = bad month +** -3 = bad day +** -4 = bad hour +** -5 = bad minute +** -6 = bad second (<0) +** +** Notes: +** +** 1) scale identifies the time scale. Only the value "UTC" (in upper +** case) is significant, and enables handling of leap seconds (see +** Note 4). +** +** 2) For calendar conventions and limitations, see iauCal2jd. +** +** 3) The sum of the results, d1+d2, is Julian Date, where normally d1 +** is the Julian Day Number and d2 is the fraction of a day. In the +** case of UTC, where the use of JD is problematical, special +** conventions apply: see the next note. +** +** 4) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The SOFA internal convention is that +** the quasi-JD day represents UTC days whether the length is 86399, +** 86400 or 86401 SI seconds. In the 1960-1972 era there were +** smaller jumps (in either direction) each time the linear UTC(TAI) +** expression was changed, and these "mini-leaps" are also included +** in the SOFA convention. +** +** 5) The warning status "time is after end of day" usually means that +** the sec argument is greater than 60.0. However, in a day ending +** in a leap second the limit changes to 61.0 (or 59.0 in the case +** of a negative leap second). +** +** 6) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 7) Only in the case of continuous and regular time scales (TAI, TT, +** TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly +** speaking. In the other cases (UT1 and UTC) the result must be +** used with circumspection; in particular the difference between +** two such results cannot be interpreted as a precise time +** interval. +** +** Called: +** iauCal2jd Gregorian calendar to JD +** iauDat delta(AT) = TAI-UTC +** iauJd2cal JD to Gregorian calendar +** +** This revision: 2023 May 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int js, iy2, im2, id2; + double dj, w, day, seclim, dat0, dat12, dat24, dleap, time; + + +/* Today's Julian Day Number. */ + js = iauCal2jd(iy, im, id, &dj, &w); + if ( js ) return js; + dj += w; + +/* Day length and final minute length in seconds (provisional). */ + day = DAYSEC; + seclim = 60.0; + +/* Deal with the UTC leap second case. */ + if ( ! strcmp(scale,"UTC") ) { + + /* TAI-UTC at 0h today. */ + js = iauDat(iy, im, id, 0.0, &dat0); + if ( js < 0 ) return js; + + /* TAI-UTC at 12h today (to detect drift). */ + js = iauDat(iy, im, id, 0.5, &dat12); + if ( js < 0 ) return js; + + /* TAI-UTC at 0h tomorrow (to detect jumps). */ + js = iauJd2cal ( dj, 1.5, &iy2, &im2, &id2, &w); + if ( js ) return js; + js = iauDat(iy2, im2, id2, 0.0, &dat24); + if ( js < 0 ) return js; + + /* Any sudden change in TAI-UTC between today and tomorrow. */ + dleap = dat24 - (2.0*dat12 - dat0); + + /* If leap second day, correct the day and final minute lengths. */ + day += dleap; + if ( ihr == 23 && imn == 59 ) seclim += dleap; + + /* End of UTC-specific actions. */ + } + +/* Validate the time. */ + if ( ihr >= 0 && ihr <= 23 ) { + if ( imn >= 0 && imn <= 59 ) { + if ( sec >= 0.0 ) { + if ( sec >= seclim ) { + js += 2; + } + } else { + js = -6; + } + } else { + js = -5; + } + } else { + js = -4; + } + if ( js < 0 ) return js; + +/* The time in days. */ + time = ( 60.0 * ( (double) ( 60 * ihr + imn ) ) + sec ) / day; + +/* Return the date and time. */ + *d1 = dj; + *d2 = time; + +/* Status. */ + return js; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eceq06.c b/deps/sofa/20231011/c/src/eceq06.c new file mode 100644 index 0000000..c0505ea --- /dev/null +++ b/deps/sofa/20231011/c/src/eceq06.c @@ -0,0 +1,184 @@ +#include "sofa.h" + +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u E c e q 0 6 +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using the IAU 2006 precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dl, db, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauEcm06(date1, date2, rm); + +/* The transformation from ecliptic to ICRS. */ + iauTrxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dr = iauAnp(a); + *dd = iauAnpm(b); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ecm06.c b/deps/sofa/20231011/c/src/ecm06.c new file mode 100644 index 0000000..e17754e --- /dev/null +++ b/deps/sofa/20231011/c/src/ecm06.c @@ -0,0 +1,187 @@ +#include "sofa.h" + +void iauEcm06(double date1, double date2, double rm[3][3]) +/* +** - - - - - - - - - +** i a u E c m 0 6 +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, IAU 2006. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of date. +** +** P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** iauPmat06 PB matrix, IAU 2006 +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRxr product of two r-matrices +** +** This revision: 2023 February 26 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double ob, bp[3][3], e[3][3]; + + +/* Obliquity, IAU 2006. */ + ob = iauObl06(date1, date2); + +/* Precession-bias matrix, IAU 2006. */ + iauPmat06(date1, date2, bp); + +/* Equatorial of date to ecliptic matrix. */ + iauIr(e); + iauRx(ob, e); + +/* ICRS to ecliptic coordinates rotation matrix, IAU 2006. */ + iauRxr(e, bp, rm); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ee00.c b/deps/sofa/20231011/c/src/ee00.c new file mode 100644 index 0000000..22b285a --- /dev/null +++ b/deps/sofa/20231011/c/src/ee00.c @@ -0,0 +1,180 @@ +#include "sofa.h" + +double iauEe00(double date1, double date2, double epsa, double dpsi) +/* +** - - - - - - - - +** i a u E e 0 0 +** - - - - - - - - +** +** The equation of the equinoxes, compatible with IAU 2000 resolutions, +** given the nutation in longitude and the mean obliquity. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epsa double mean obliquity (Note 2) +** dpsi double nutation in longitude (Note 3) +** +** Returned (function value): +** double equation of the equinoxes (Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The obliquity, in radians, is mean of date. +** +** 3) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** 4) The result is compatible with the IAU 2000 resolutions. For +** further details, see IERS Conventions 2003 and Capitaine et al. +** (2002). +** +** Called: +** iauEect00 equation of the equinoxes complementary terms +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double ee; + + +/* Equation of the equinoxes. */ + ee = dpsi * cos(epsa) + iauEect00(date1, date2); + + return ee; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ee00a.c b/deps/sofa/20231011/c/src/ee00a.c new file mode 100644 index 0000000..bce1c47 --- /dev/null +++ b/deps/sofa/20231011/c/src/ee00a.c @@ -0,0 +1,187 @@ +#include "sofa.h" + +double iauEe00a(double date1, double date2) +/* +** - - - - - - - - - +** i a u E e 0 0 a +** - - - - - - - - - +** +** Equation of the equinoxes, compatible with IAU 2000 resolutions. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** 3) The result is compatible with the IAU 2000 resolutions. For +** further details, see IERS Conventions 2003 and Capitaine et al. +** (2002). +** +** Called: +** iauPr00 IAU 2000 precession adjustments +** iauObl80 mean obliquity, IAU 1980 +** iauNut00a nutation, IAU 2000A +** iauEe00 equation of the equinoxes, IAU 2000 +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003). +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsipr, depspr, epsa, dpsi, deps, ee; + + +/* IAU 2000 precession-rate adjustments. */ + iauPr00(date1, date2, &dpsipr, &depspr); + +/* Mean obliquity, consistent with IAU 2000 precession-nutation. */ + epsa = iauObl80(date1, date2) + depspr; + +/* Nutation in longitude. */ + iauNut00a(date1, date2, &dpsi, &deps); + +/* Equation of the equinoxes. */ + ee = iauEe00(date1, date2, epsa, dpsi); + + return ee; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ee00b.c b/deps/sofa/20231011/c/src/ee00b.c new file mode 100644 index 0000000..49e61e7 --- /dev/null +++ b/deps/sofa/20231011/c/src/ee00b.c @@ -0,0 +1,193 @@ +#include "sofa.h" + +double iauEe00b(double date1, double date2) +/* +** - - - - - - - - - +** i a u E e 0 0 b +** - - - - - - - - - +** +** Equation of the equinoxes, compatible with IAU 2000 resolutions but +** using the truncated nutation model IAU 2000B. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** 3) The result is compatible with the IAU 2000 resolutions except +** that accuracy has been compromised (1 mas) for the sake of speed. +** For further details, see McCarthy & Luzum (2003), IERS +** Conventions 2003 and Capitaine et al. (2003). +** +** Called: +** iauPr00 IAU 2000 precession adjustments +** iauObl80 mean obliquity, IAU 1980 +** iauNut00b nutation, IAU 2000B +** iauEe00 equation of the equinoxes, IAU 2000 +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Celestial Mechanics & +** Dynamical Astronomy, 85, 37-49 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsipr, depspr, epsa, dpsi, deps, ee; + + +/* IAU 2000 precession-rate adjustments. */ + iauPr00(date1, date2, &dpsipr, &depspr); + +/* Mean obliquity, consistent with IAU 2000 precession-nutation. */ + epsa = iauObl80(date1, date2) + depspr; + +/* Nutation in longitude. */ + iauNut00b(date1, date2, &dpsi, &deps); + +/* Equation of the equinoxes. */ + ee = iauEe00(date1, date2, epsa, dpsi); + + return ee; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ee06a.c b/deps/sofa/20231011/c/src/ee06a.c new file mode 100644 index 0000000..c78b77a --- /dev/null +++ b/deps/sofa/20231011/c/src/ee06a.c @@ -0,0 +1,174 @@ +#include "sofa.h" + +double iauEe06a(double date1, double date2) +/* +** - - - - - - - - - +** i a u E e 0 6 a +** - - - - - - - - - +** +** Equation of the equinoxes, compatible with IAU 2000 resolutions and +** IAU 2006/2000A precession-nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** Called: +** iauAnpm normalize angle into range +/- pi +** iauGst06a Greenwich apparent sidereal time, IAU 2006/2000A +** iauGmst06 Greenwich mean sidereal time, IAU 2006 +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gst06a, gmst06, ee; + + +/* Apparent and mean sidereal times. */ + gst06a = iauGst06a(0.0, 0.0, date1, date2); + gmst06 = iauGmst06(0.0, 0.0, date1, date2); + +/* Equation of the equinoxes. */ + ee = iauAnpm(gst06a - gmst06); + + return ee; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eect00.c b/deps/sofa/20231011/c/src/eect00.c new file mode 100644 index 0000000..dbf7edf --- /dev/null +++ b/deps/sofa/20231011/c/src/eect00.c @@ -0,0 +1,335 @@ +#include "sofa.h" +#include "sofam.h" + +double iauEect00(double date1, double date2) +/* +** - - - - - - - - - - +** i a u E e c t 0 0 +** - - - - - - - - - - +** +** Equation of the equinoxes complementary terms, consistent with +** IAU 2000 resolutions. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double complementary terms (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The "complementary terms" are part of the equation of the +** equinoxes (EE), classically the difference between apparent and +** mean Sidereal Time: +** +** GAST = GMST + EE +** +** with: +** +** EE = dpsi * cos(eps) +** +** where dpsi is the nutation in longitude and eps is the obliquity +** of date. However, if the rotation of the Earth were constant in +** an inertial frame the classical formulation would lead to +** apparent irregularities in the UT1 timescale traceable to side- +** effects of precession-nutation. In order to eliminate these +** effects from UT1, "complementary terms" were introduced in 1994 +** (IAU, 1994) and took effect from 1997 (Capitaine and Gontier, +** 1993): +** +** GAST = GMST + CT + EE +** +** By convention, the complementary terms are included as part of +** the equation of the equinoxes rather than as part of the mean +** Sidereal Time. This slightly compromises the "geometrical" +** interpretation of mean sidereal time but is otherwise +** inconsequential. +** +** The present function computes CT in the above expression, +** compatible with IAU 2000 resolutions (Capitaine et al., 2002, and +** IERS Conventions 2003). +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N. & Gontier, A.-M., Astron.Astrophys., 275, +** 645-650 (1993) +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astron.Astrophys., 406, +** 1135-1149 (2003) +** +** IAU Resolution C7, Recommendation 3 (1994) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Time since J2000.0, in Julian centuries */ + double t; + +/* Miscellaneous */ + int i, j; + double a, s0, s1; + +/* Fundamental arguments */ + double fa[14]; + +/* Returned value. */ + double eect; + +/* ----------------------------------------- */ +/* The series for the EE complementary terms */ +/* ----------------------------------------- */ + + typedef struct { + int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */ + double s, c; /* sine and cosine coefficients */ + } TERM; + +/* Terms of order t^0 */ + static const TERM e0[] = { + + /* 1-10 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 2640.96e-6, -0.39e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, 63.52e-6, -0.02e-6 }, + {{ 0, 0, 2, -2, 3, 0, 0, 0}, 11.75e-6, 0.01e-6 }, + {{ 0, 0, 2, -2, 1, 0, 0, 0}, 11.21e-6, 0.01e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, -4.55e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 3, 0, 0, 0}, 2.02e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.98e-6, 0.00e-6 }, + {{ 0, 0, 0, 0, 3, 0, 0, 0}, -1.72e-6, 0.00e-6 }, + {{ 0, 1, 0, 0, 1, 0, 0, 0}, -1.41e-6, -0.01e-6 }, + {{ 0, 1, 0, 0, -1, 0, 0, 0}, -1.26e-6, -0.01e-6 }, + + /* 11-20 */ + {{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.63e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.63e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 3, 0, 0, 0}, 0.46e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 1, 0, 0, 0}, 0.45e-6, 0.00e-6 }, + {{ 0, 0, 4, -4, 4, 0, 0, 0}, 0.36e-6, 0.00e-6 }, + {{ 0, 0, 1, -1, 1, -8, 12, 0}, -0.24e-6, -0.12e-6 }, + {{ 0, 0, 2, 0, 0, 0, 0, 0}, 0.32e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, 0.28e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 3, 0, 0, 0}, 0.27e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.26e-6, 0.00e-6 }, + + /* 21-30 */ + {{ 0, 0, 2, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -3, 0, 0, 0}, 0.19e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -1, 0, 0, 0}, 0.18e-6, 0.00e-6 }, + {{ 0, 0, 0, 0, 0, 8,-13, -1}, -0.10e-6, 0.05e-6 }, + {{ 0, 0, 0, 2, 0, 0, 0, 0}, 0.15e-6, 0.00e-6 }, + {{ 2, 0, -2, 0, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, + {{ 1, 0, 0, -2, 1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 2, 0, 0, 0}, -0.14e-6, 0.00e-6 }, + {{ 1, 0, 0, -2, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, + {{ 0, 0, 4, -2, 4, 0, 0, 0}, 0.13e-6, 0.00e-6 }, + + /* 31-33 */ + {{ 0, 0, 2, -2, 4, 0, 0, 0}, -0.11e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -3, 0, 0, 0}, 0.11e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -1, 0, 0, 0}, 0.11e-6, 0.00e-6 } + }; + +/* Terms of order t^1 */ + static const TERM e1[] = { + {{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.87e-6, 0.00e-6 } + }; + +/* Number of terms in the series */ + const int NE0 = (int) (sizeof e0 / sizeof (TERM)); + const int NE1 = (int) (sizeof e1 / sizeof (TERM)); + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental epoch J2000.0 and current date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Fundamental Arguments (from IERS Conventions 2003) */ + +/* Mean anomaly of the Moon. */ + fa[0] = iauFal03(t); + +/* Mean anomaly of the Sun. */ + fa[1] = iauFalp03(t); + +/* Mean longitude of the Moon minus that of the ascending node. */ + fa[2] = iauFaf03(t); + +/* Mean elongation of the Moon from the Sun. */ + fa[3] = iauFad03(t); + +/* Mean longitude of the ascending node of the Moon. */ + fa[4] = iauFaom03(t); + +/* Mean longitude of Venus. */ + fa[5] = iauFave03(t); + +/* Mean longitude of Earth. */ + fa[6] = iauFae03(t); + +/* General precession in longitude. */ + fa[7] = iauFapa03(t); + +/* Evaluate the EE complementary terms. */ + s0 = 0.0; + s1 = 0.0; + + for (i = NE0-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)(e0[i].nfa[j]) * fa[j]; + } + s0 += e0[i].s * sin(a) + e0[i].c * cos(a); + } + + for (i = NE1-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)(e1[i].nfa[j]) * fa[j]; + } + s1 += e1[i].s * sin(a) + e1[i].c * cos(a); + } + + eect = (s0 + s1 * t ) * DAS2R; + + return eect; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eform.c b/deps/sofa/20231011/c/src/eform.c new file mode 100644 index 0000000..376c961 --- /dev/null +++ b/deps/sofa/20231011/c/src/eform.c @@ -0,0 +1,199 @@ +#include "sofa.h" +#include "sofam.h" + +int iauEform ( int n, double *a, double *f ) +/* +** - - - - - - - - - +** i a u E f o r m +** - - - - - - - - - +** +** Earth reference ellipsoids. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** n int ellipsoid identifier (Note 1) +** +** Returned: +** a double equatorial radius (meters, Note 2) +** f double flattening (Note 2) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal identifier (Note 3) +** +** Notes: +** +** 1) The identifier n is a number that specifies the choice of +** reference ellipsoid. The following are supported: +** +** n ellipsoid +** +** 1 WGS84 +** 2 GRS80 +** 3 WGS72 +** +** The n value has no significance outside the SOFA software. For +** convenience, symbols WGS84 etc. are defined in sofam.h. +** +** 2) The ellipsoid parameters are returned in the form of equatorial +** radius in meters (a) and flattening (f). The latter is a number +** around 0.00335, i.e. around 1/298. +** +** 3) For the case where an unsupported n value is supplied, zero a and +** f are returned, as well as error status. +** +** References: +** +** Department of Defense World Geodetic System 1984, National +** Imagery and Mapping Agency Technical Report 8350.2, Third +** Edition, p3-2. +** +** Moritz, H., Bull. Geodesique 66-2, 187 (1992). +** +** The Department of Defense World Geodetic System 1972, World +** Geodetic System Committee, May 1974. +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** p220. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Look up a and f for the specified reference ellipsoid. */ + switch ( n ) { + + case WGS84: + *a = 6378137.0; + *f = 1.0 / 298.257223563; + break; + + case GRS80: + *a = 6378137.0; + *f = 1.0 / 298.257222101; + break; + + case WGS72: + *a = 6378135.0; + *f = 1.0 / 298.26; + break; + + default: + + /* Invalid identifier. */ + *a = 0.0; + *f = 0.0; + return -1; + + } + +/* OK status. */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eo06a.c b/deps/sofa/20231011/c/src/eo06a.c new file mode 100644 index 0000000..771be27 --- /dev/null +++ b/deps/sofa/20231011/c/src/eo06a.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +double iauEo06a(double date1, double date2) +/* +** - - - - - - - - - +** i a u E o 0 6 a +** - - - - - - - - - +** +** Equation of the origins, IAU 2006 precession and IAU 2000A nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the equation of the origins in radians +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The equation of the origins is the distance between the true +** equinox and the celestial intermediate origin and, equivalently, +** the difference between Earth rotation angle and Greenwich +** apparent sidereal time (ERA-GST). It comprises the precession +** (since J2000.0) in right ascension plus the equation of the +** equinoxes (including the small correction terms). +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauEors equation of the origins, given NPB matrix and s +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3], x, y, s, eo; + + +/* Classical nutation x precession x bias matrix. */ + iauPnm06a(date1, date2, r); + +/* Extract CIP coordinates. */ + iauBpn2xy(r, &x, &y); + +/* The CIO locator, s. */ + s = iauS06(date1, date2, x, y); + +/* Solve for the EO. */ + eo = iauEors(r, s); + + return eo; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eors.c b/deps/sofa/20231011/c/src/eors.c new file mode 100644 index 0000000..d6aae5c --- /dev/null +++ b/deps/sofa/20231011/c/src/eors.c @@ -0,0 +1,160 @@ +#include "sofa.h" + +double iauEors(double rnpb[3][3], double s) +/* +** - - - - - - - - +** i a u E o r s +** - - - - - - - - +** +** Equation of the origins, given the classical NPB matrix and the +** quantity s. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rnpb double[3][3] classical nutation x precession x bias matrix +** s double the quantity s (the CIO locator) in radians +** +** Returned (function value): +** double the equation of the origins in radians +** +** Notes: +** +** 1) The equation of the origins is the distance between the true +** equinox and the celestial intermediate origin and, equivalently, +** the difference between Earth rotation angle and Greenwich +** apparent sidereal time (ERA-GST). It comprises the precession +** (since J2000.0) in right ascension plus the equation of the +** equinoxes (including the small correction terms). +** +** 2) The algorithm is from Wallace & Capitaine (2006). +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2023 May 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, ax, xs, ys, zs, p, q, eo; + + +/* Evaluate Wallace & Capitaine (2006) expression (16). */ + x = rnpb[2][0]; + ax = x / (1.0 + rnpb[2][2]); + xs = 1.0 - ax * x; + ys = -ax * rnpb[2][1]; + zs = -x; + p = rnpb[0][0] * xs + rnpb[0][1] * ys + rnpb[0][2] * zs; + q = rnpb[1][0] * xs + rnpb[1][1] * ys + rnpb[1][2] * zs; + eo = ((p != 0.0) || (q != 0.0)) ? s - atan2(q, p) : s; + + return eo; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/epb.c b/deps/sofa/20231011/c/src/epb.c new file mode 100644 index 0000000..4256fa4 --- /dev/null +++ b/deps/sofa/20231011/c/src/epb.c @@ -0,0 +1,158 @@ +#include "sofa.h" +#include "sofam.h" + +double iauEpb(double dj1, double dj2) +/* +** - - - - - - - +** i a u E p b +** - - - - - - - +** +** Julian Date to Besselian Epoch. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dj1,dj2 double Julian Date (Notes 3,4) +** +** Returned (function value): +** double Besselian Epoch. +** +** Notes: +** +** 1) Besselian Epoch is a method of expressing a moment in time as a +** year plus fraction. It was superseded by Julian Year (see the +** function iauEpj). +** +** 2) The start of a Besselian year is when the right ascension of +** the fictitious mean Sun is 18h 40m, and the unit is the tropical +** year. The conventional definition (see Lieske 1979) is that +** Besselian Epoch B1900.0 is JD 2415020.31352 and the length of the +** year is 365.242198781 days. +** +** 3) The time scale for the JD, originally Ephemeris Time, is TDB, +** which for all practical purposes in the present context is +** indistinguishable from TT. +** +** 4) The Julian Date is supplied in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding dj1 and +** dj2. The maximum resolution is achieved if dj1 is 2451545.0 +** (J2000.0). +** +** Reference: +** +** Lieske, J.H., 1979. Astron.Astrophys., 73, 282. +** +** This revision: 2023 May 5 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* J2000.0-B1900.0 (2415019.81352) in days */ + const double D1900 = 36524.68648; + + return 1900.0 + ((dj1 - DJ00) + (dj2 + D1900)) / DTY; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/epb2jd.c b/deps/sofa/20231011/c/src/epb2jd.c new file mode 100644 index 0000000..c9caf1d --- /dev/null +++ b/deps/sofa/20231011/c/src/epb2jd.c @@ -0,0 +1,142 @@ +#include "sofa.h" +#include "sofam.h" + +void iauEpb2jd(double epb, double *djm0, double *djm) +/* +** - - - - - - - - - - +** i a u E p b 2 j d +** - - - - - - - - - - +** +** Besselian Epoch to Julian Date. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epb double Besselian Epoch (e.g. 1957.3) +** +** Returned: +** djm0 double MJD zero-point: always 2400000.5 +** djm double Modified Julian Date +** +** Note: +** +** The Julian Date is returned in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding djm0 and +** djm. +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + *djm0 = DJM0; + *djm = 15019.81352 + (epb - 1900.0) * DTY; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/epj.c b/deps/sofa/20231011/c/src/epj.c new file mode 100644 index 0000000..d42befb --- /dev/null +++ b/deps/sofa/20231011/c/src/epj.c @@ -0,0 +1,160 @@ +#include "sofa.h" +#include "sofam.h" + +double iauEpj(double dj1, double dj2) +/* +** - - - - - - - +** i a u E p j +** - - - - - - - +** +** Julian Date to Julian Epoch. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dj1,dj2 double Julian Date (Note 4) +** +** Returned (function value): +** double Julian Epoch +** +** Notes: +** +** 1) Julian Epoch is a method of expressing a moment in time as a +** year plus fraction. +** +** 2) Julian Epoch J2000.0 is 2000 Jan 1.5, and the length of the year +** is 365.25 days. +** +** 3) For historical reasons, the time scale formally associated with +** Julian Epoch is TDB (or TT, near enough). However, Julian Epoch +** can be used more generally as a calendrical convention to +** represent other time scales such as TAI and TCB. This is +** analogous to Julian Date, which was originally defined +** specifically as a way of representing Universal Times but is now +** routinely used for any of the regular time scales. +** +** 4) The Julian Date is supplied in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding dj1 and +** dj2. The maximum resolution is achieved if dj1 is 2451545.0 +** (J2000.0). +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** +** This revision: 2022 May 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double epj; + + + epj = 2000.0 + ((dj1 - DJ00) + dj2) / DJY; + + return epj; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/epj2jd.c b/deps/sofa/20231011/c/src/epj2jd.c new file mode 100644 index 0000000..3b373e1 --- /dev/null +++ b/deps/sofa/20231011/c/src/epj2jd.c @@ -0,0 +1,142 @@ +#include "sofa.h" +#include "sofam.h" + +void iauEpj2jd(double epj, double *djm0, double *djm) +/* +** - - - - - - - - - - +** i a u E p j 2 j d +** - - - - - - - - - - +** +** Julian Epoch to Julian Date. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian Epoch (e.g. 1996.8) +** +** Returned: +** djm0 double MJD zero-point: always 2400000.5 +** djm double Modified Julian Date +** +** Note: +** +** The Julian Date is returned in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding djm0 and +** djm. +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + *djm0 = DJM0; + *djm = DJM00 + (epj - 2000.0) * 365.25; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/epv00.c b/deps/sofa/20231011/c/src/epv00.c new file mode 100644 index 0000000..8640dce --- /dev/null +++ b/deps/sofa/20231011/c/src/epv00.c @@ -0,0 +1,2642 @@ +#include "sofa.h" +#include "sofam.h" + +int iauEpv00(double date1, double date2, + double pvh[2][3], double pvb[2][3]) +/* +** - - - - - - - - - +** i a u E p v 0 0 +** - - - - - - - - - +** +** Earth position and velocity, heliocentric and barycentric, with +** respect to the Barycentric Celestial Reference System. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TDB date (Note 1) +** +** Returned: +** pvh double[2][3] heliocentric Earth position/velocity +** pvb double[2][3] barycentric Earth position/velocity +** +** Returned (function value): +** int status: 0 = OK +** +1 = warning: date outside +** the range 1900-2100 AD +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. However, +** the accuracy of the result is more likely to be limited by the +** algorithm itself than the way the date has been expressed. +** +** n.b. TT can be used instead of TDB in most applications. +** +** 2) On return, the arrays pvh and pvb contain the following: +** +** pvh[0][0] x } +** pvh[0][1] y } heliocentric position, au +** pvh[0][2] z } +** +** pvh[1][0] xdot } +** pvh[1][1] ydot } heliocentric velocity, au/d +** pvh[1][2] zdot } +** +** pvb[0][0] x } +** pvb[0][1] y } barycentric position, au +** pvb[0][2] z } +** +** pvb[1][0] xdot } +** pvb[1][1] ydot } barycentric velocity, au/d +** pvb[1][2] zdot } +** +** The vectors are oriented with respect to the BCRS. The time unit +** is one day in TDB. +** +** 3) The function is a SIMPLIFIED SOLUTION from the planetary theory +** VSOP2000 (X. Moisson, P. Bretagnon, 2001, Celes. Mechanics & +** Dyn. Astron., 80, 3/4, 205-213) and is an adaptation of original +** Fortran code supplied by P. Bretagnon (private comm., 2000). +** +** 4) Comparisons over the time span 1900-2100 with this simplified +** solution and the JPL DE405 ephemeris give the following results: +** +** RMS max +** Heliocentric: +** position error 3.7 11.2 km +** velocity error 1.4 5.0 mm/s +** +** Barycentric: +** position error 4.6 13.4 km +** velocity error 1.4 4.9 mm/s +** +** Comparisons with the JPL DE406 ephemeris show that by 1800 and +** 2200 the position errors are approximately double their 1900-2100 +** size. By 1500 and 2500 the deterioration is a factor of 10 and +** by 1000 and 3000 a factor of 60. The velocity accuracy falls off +** at about half that rate. +** +** 5) It is permissible to use the same array for pvh and pvb, which +** will receive the barycentric values. +** +** This revision: 2023 March 1 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* +** Matrix elements for orienting the analytical model to DE405. +** +** The corresponding Euler angles are: +** +** d ' " +** 1st rotation - 23 26 21.4091 about the x-axis (obliquity) +** 2nd rotation + 0.0475 about the z-axis (RA offset) +** +** These were obtained empirically, by comparisons with DE405 over +** 1900-2100. +*/ + static const double am12 = 0.000000211284, + am13 = -0.000000091603, + am21 = -0.000000230286, + am22 = 0.917482137087, + am23 = -0.397776982902, + am32 = 0.397776982902, + am33 = 0.917482137087; + +/* +** ---------------------- +** Ephemeris Coefficients +** ---------------------- +** +** The ephemeris consists of harmonic terms for predicting (i) the Sun +** to Earth vector and (ii) the Solar-System-barycenter to Sun vector +** respectively. The coefficients are stored in arrays which, although +** 1-demensional, contain groups of three. Each triplet of +** coefficients is the amplitude, phase and frequency for one term in +** the model, and each array contains the number of terms called for by +** the model. +** +** There are eighteen such arrays, named as follows: +** +** array model power of T component +** +** e0x Sun-to-Earth 0 x +** e0y Sun-to-Earth 0 y +** e0z Sun-to-Earth 0 z +** +** e1x Sun-to-Earth 1 x +** e1y Sun-to-Earth 1 y +** e1z Sun-to-Earth 1 z +** +** e2x Sun-to-Earth 2 x +** e2y Sun-to-Earth 2 y +** e2z Sun-to-Earth 2 z +** +** s0x SSB-to-Sun 0 x +** s0y SSB-to-Sun 0 y +** s0z SSB-to-Sun 0 z +** +** s1x SSB-to-Sun 1 x +** s1y SSB-to-Sun 1 y +** s1z SSB-to-Sun 1 z +** +** s2x SSB-to-Sun 2 x +** s2y SSB-to-Sun 2 y +** s2z SSB-to-Sun 2 z +*/ + +/* Sun-to-Earth, T^0, X */ + static const double e0x[] = { + 0.9998292878132e+00, 0.1753485171504e+01, 0.6283075850446e+01, + 0.8352579567414e-02, 0.1710344404582e+01, 0.1256615170089e+02, + 0.5611445335148e-02, 0.0000000000000e+00, 0.0000000000000e+00, + 0.1046664295572e-03, 0.1667225416770e+01, 0.1884922755134e+02, + 0.3110842534677e-04, 0.6687513390251e+00, 0.8399684731857e+02, + 0.2552413503550e-04, 0.5830637358413e+00, 0.5296909721118e+00, + 0.2137207845781e-04, 0.1092330954011e+01, 0.1577343543434e+01, + 0.1680240182951e-04, 0.4955366134987e+00, 0.6279552690824e+01, + 0.1679012370795e-04, 0.6153014091901e+01, 0.6286599010068e+01, + 0.1445526946777e-04, 0.3472744100492e+01, 0.2352866153506e+01, + + 0.1091038246184e-04, 0.3689845786119e+01, 0.5223693906222e+01, + 0.9344399733932e-05, 0.6073934645672e+01, 0.1203646072878e+02, + 0.8993182910652e-05, 0.3175705249069e+01, 0.1021328554739e+02, + 0.5665546034116e-05, 0.2152484672246e+01, 0.1059381944224e+01, + 0.6844146703035e-05, 0.1306964099750e+01, 0.5753384878334e+01, + 0.7346610905565e-05, 0.4354980070466e+01, 0.3981490189893e+00, + 0.6815396474414e-05, 0.2218229211267e+01, 0.4705732307012e+01, + 0.6112787253053e-05, 0.5384788425458e+01, 0.6812766822558e+01, + 0.4518120711239e-05, 0.6087604012291e+01, 0.5884926831456e+01, + 0.4521963430706e-05, 0.1279424524906e+01, 0.6256777527156e+01, + + 0.4497426764085e-05, 0.5369129144266e+01, 0.6309374173736e+01, + 0.4062190566959e-05, 0.5436473303367e+00, 0.6681224869435e+01, + 0.5412193480192e-05, 0.7867838528395e+00, 0.7755226100720e+00, + 0.5469839049386e-05, 0.1461440311134e+01, 0.1414349524433e+02, + 0.5205264083477e-05, 0.4432944696116e+01, 0.7860419393880e+01, + 0.2149759935455e-05, 0.4502237496846e+01, 0.1150676975667e+02, + 0.2279109618501e-05, 0.1239441308815e+01, 0.7058598460518e+01, + 0.2259282939683e-05, 0.3272430985331e+01, 0.4694002934110e+01, + 0.2558950271319e-05, 0.2265471086404e+01, 0.1216800268190e+02, + 0.2561581447555e-05, 0.1454740653245e+01, 0.7099330490126e+00, + + 0.1781441115440e-05, 0.2962068630206e+01, 0.7962980379786e+00, + 0.1612005874644e-05, 0.1473255041006e+01, 0.5486777812467e+01, + 0.1818630667105e-05, 0.3743903293447e+00, 0.6283008715021e+01, + 0.1818601377529e-05, 0.6274174354554e+01, 0.6283142985870e+01, + 0.1554475925257e-05, 0.1624110906816e+01, 0.2513230340178e+02, + 0.2090948029241e-05, 0.5852052276256e+01, 0.1179062909082e+02, + 0.2000176345460e-05, 0.4072093298513e+01, 0.1778984560711e+02, + 0.1289535917759e-05, 0.5217019331069e+01, 0.7079373888424e+01, + 0.1281135307881e-05, 0.4802054538934e+01, 0.3738761453707e+01, + 0.1518229005692e-05, 0.8691914742502e+00, 0.2132990797783e+00, + + 0.9450128579027e-06, 0.4601859529950e+01, 0.1097707878456e+02, + 0.7781119494996e-06, 0.1844352816694e+01, 0.8827390247185e+01, + 0.7733407759912e-06, 0.3582790154750e+01, 0.5507553240374e+01, + 0.7350644318120e-06, 0.2695277788230e+01, 0.1589072916335e+01, + 0.6535928827023e-06, 0.3651327986142e+01, 0.1176985366291e+02, + 0.6324624183656e-06, 0.2241302375862e+01, 0.6262300422539e+01, + 0.6298565300557e-06, 0.4407122406081e+01, 0.6303851278352e+01, + 0.8587037089179e-06, 0.3024307223119e+01, 0.1672837615881e+03, + 0.8299954491035e-06, 0.6192539428237e+01, 0.3340612434717e+01, + 0.6311263503401e-06, 0.2014758795416e+01, 0.7113454667900e-02, + + 0.6005646745452e-06, 0.3399500503397e+01, 0.4136910472696e+01, + 0.7917715109929e-06, 0.2493386877837e+01, 0.6069776770667e+01, + 0.7556958099685e-06, 0.4159491740143e+01, 0.6496374930224e+01, + 0.6773228244949e-06, 0.4034162934230e+01, 0.9437762937313e+01, + 0.5370708577847e-06, 0.1562219163734e+01, 0.1194447056968e+01, + 0.5710804266203e-06, 0.2662730803386e+01, 0.6282095334605e+01, + 0.5709824583726e-06, 0.3985828430833e+01, 0.6284056366286e+01, + 0.5143950896447e-06, 0.1308144688689e+01, 0.6290189305114e+01, + 0.5088010604546e-06, 0.5352817214804e+01, 0.6275962395778e+01, + 0.4960369085172e-06, 0.2644267922349e+01, 0.6127655567643e+01, + + 0.4803137891183e-06, 0.4008844192080e+01, 0.6438496133249e+01, + 0.5731747768225e-06, 0.3794550174597e+01, 0.3154687086868e+01, + 0.4735947960579e-06, 0.6107118308982e+01, 0.3128388763578e+01, + 0.4808348796625e-06, 0.4771458618163e+01, 0.8018209333619e+00, + 0.4115073743137e-06, 0.3327111335159e+01, 0.8429241228195e+01, + 0.5230575889287e-06, 0.5305708551694e+01, 0.1336797263425e+02, + 0.5133977889215e-06, 0.5784230738814e+01, 0.1235285262111e+02, + 0.5065815825327e-06, 0.2052064793679e+01, 0.1185621865188e+02, + 0.4339831593868e-06, 0.3644994195830e+01, 0.1726015463500e+02, + 0.3952928638953e-06, 0.4930376436758e+01, 0.5481254917084e+01, + + 0.4898498111942e-06, 0.4542084219731e+00, 0.9225539266174e+01, + 0.4757490209328e-06, 0.3161126388878e+01, 0.5856477690889e+01, + 0.4727701669749e-06, 0.6214993845446e+00, 0.2544314396739e+01, + 0.3800966681863e-06, 0.3040132339297e+01, 0.4265981595566e+00, + 0.3257301077939e-06, 0.8064977360087e+00, 0.3930209696940e+01, + 0.3255810528674e-06, 0.1974147981034e+01, 0.2146165377750e+01, + 0.3252029748187e-06, 0.2845924913135e+01, 0.4164311961999e+01, + 0.3255505635308e-06, 0.3017900824120e+01, 0.5088628793478e+01, + 0.2801345211990e-06, 0.6109717793179e+01, 0.1256967486051e+02, + 0.3688987740970e-06, 0.2911550235289e+01, 0.1807370494127e+02, + + 0.2475153429458e-06, 0.2179146025856e+01, 0.2629832328990e-01, + 0.3033457749150e-06, 0.1994161050744e+01, 0.4535059491685e+01, + 0.2186743763110e-06, 0.5125687237936e+01, 0.1137170464392e+02, + 0.2764777032774e-06, 0.4822646860252e+00, 0.1256262854127e+02, + 0.2199028768592e-06, 0.4637633293831e+01, 0.1255903824622e+02, + 0.2046482824760e-06, 0.1467038733093e+01, 0.7084896783808e+01, + 0.2611209147507e-06, 0.3044718783485e+00, 0.7143069561767e+02, + 0.2286079656818e-06, 0.4764220356805e+01, 0.8031092209206e+01, + 0.1855071202587e-06, 0.3383637774428e+01, 0.1748016358760e+01, + 0.2324669506784e-06, 0.6189088449251e+01, 0.1831953657923e+02, + + 0.1709528015688e-06, 0.5874966729774e+00, 0.4933208510675e+01, + 0.2168156875828e-06, 0.4302994009132e+01, 0.1044738781244e+02, + 0.2106675556535e-06, 0.3800475419891e+01, 0.7477522907414e+01, + 0.1430213830465e-06, 0.1294660846502e+01, 0.2942463415728e+01, + 0.1388396901944e-06, 0.4594797202114e+01, 0.8635942003952e+01, + 0.1922258844190e-06, 0.4943044543591e+00, 0.1729818233119e+02, + 0.1888460058292e-06, 0.2426943912028e+01, 0.1561374759853e+03, + 0.1789449386107e-06, 0.1582973303499e+00, 0.1592596075957e+01, + 0.1360803685374e-06, 0.5197240440504e+01, 0.1309584267300e+02, + 0.1504038014709e-06, 0.3120360916217e+01, 0.1649636139783e+02, + + 0.1382769533389e-06, 0.6164702888205e+01, 0.7632943190217e+01, + 0.1438059769079e-06, 0.1437423770979e+01, 0.2042657109477e+02, + 0.1326303260037e-06, 0.3609688799679e+01, 0.1213955354133e+02, + 0.1159244950540e-06, 0.5463018167225e+01, 0.5331357529664e+01, + 0.1433118149136e-06, 0.6028909912097e+01, 0.7342457794669e+01, + 0.1234623148594e-06, 0.3109645574997e+01, 0.6279485555400e+01, + 0.1233949875344e-06, 0.3539359332866e+01, 0.6286666145492e+01, + 0.9927196061299e-07, 0.1259321569772e+01, 0.7234794171227e+01, + 0.1242302191316e-06, 0.1065949392609e+01, 0.1511046609763e+02, + 0.1098402195201e-06, 0.2192508743837e+01, 0.1098880815746e+02, + + 0.1158191395315e-06, 0.4054411278650e+01, 0.5729506548653e+01, + 0.9048475596241e-07, 0.5429764748518e+01, 0.9623688285163e+01, + 0.8889853269023e-07, 0.5046586206575e+01, 0.6148010737701e+01, + 0.1048694242164e-06, 0.2628858030806e+01, 0.6836645152238e+01, + 0.1112308378646e-06, 0.4177292719907e+01, 0.1572083878776e+02, + 0.8631729709901e-07, 0.1601345232557e+01, 0.6418140963190e+01, + 0.8527816951664e-07, 0.2463888997513e+01, 0.1471231707864e+02, + 0.7892139456991e-07, 0.3154022088718e+01, 0.2118763888447e+01, + 0.1051782905236e-06, 0.4795035816088e+01, 0.1349867339771e+01, + 0.1048219943164e-06, 0.2952983395230e+01, 0.5999216516294e+01, + + 0.7435760775143e-07, 0.5420547991464e+01, 0.6040347114260e+01, + 0.9869574106949e-07, 0.3695646753667e+01, 0.6566935184597e+01, + 0.9156886364226e-07, 0.3922675306609e+01, 0.5643178611111e+01, + 0.7006834356188e-07, 0.1233968624861e+01, 0.6525804586632e+01, + 0.9806170182601e-07, 0.1919542280684e+01, 0.2122839202813e+02, + 0.9052289673607e-07, 0.4615902724369e+01, 0.4690479774488e+01, + 0.7554200867893e-07, 0.1236863719072e+01, 0.1253985337760e+02, + 0.8215741286498e-07, 0.3286800101559e+00, 0.1097355562493e+02, + 0.7185178575397e-07, 0.5880942158367e+01, 0.6245048154254e+01, + 0.7130726476180e-07, 0.7674871987661e+00, 0.6321103546637e+01, + + 0.6650894461162e-07, 0.6987129150116e+00, 0.5327476111629e+01, + 0.7396888823688e-07, 0.3576824794443e+01, 0.5368044267797e+00, + 0.7420588884775e-07, 0.5033615245369e+01, 0.2354323048545e+02, + 0.6141181642908e-07, 0.9449927045673e+00, 0.1296430071988e+02, + 0.6373557924058e-07, 0.6206342280341e+01, 0.9517183207817e+00, + 0.6359474329261e-07, 0.5036079095757e+01, 0.1990745094947e+01, + 0.5740173582646e-07, 0.6105106371350e+01, 0.9555997388169e+00, + 0.7019864084602e-07, 0.7237747359018e+00, 0.5225775174439e+00, + 0.6398054487042e-07, 0.3976367969666e+01, 0.2407292145756e+02, + 0.7797092650498e-07, 0.4305423910623e+01, 0.2200391463820e+02, + + 0.6466760000900e-07, 0.3500136825200e+01, 0.5230807360890e+01, + 0.7529417043890e-07, 0.3514779246100e+01, 0.1842262939178e+02, + 0.6924571140892e-07, 0.2743457928679e+01, 0.1554202828031e+00, + 0.6220798650222e-07, 0.2242598118209e+01, 0.1845107853235e+02, + 0.5870209391853e-07, 0.2332832707527e+01, 0.6398972393349e+00, + 0.6263953473888e-07, 0.2191105358956e+01, 0.6277552955062e+01, + 0.6257781390012e-07, 0.4457559396698e+01, 0.6288598745829e+01, + 0.5697304945123e-07, 0.3499234761404e+01, 0.1551045220144e+01, + 0.6335438746791e-07, 0.6441691079251e+00, 0.5216580451554e+01, + 0.6377258441152e-07, 0.2252599151092e+01, 0.5650292065779e+01, + + 0.6484841818165e-07, 0.1992812417646e+01, 0.1030928125552e+00, + 0.4735551485250e-07, 0.3744672082942e+01, 0.1431416805965e+02, + 0.4628595996170e-07, 0.1334226211745e+01, 0.5535693017924e+00, + 0.6258152336933e-07, 0.4395836159154e+01, 0.2608790314060e+02, + 0.6196171366594e-07, 0.2587043007997e+01, 0.8467247584405e+02, + 0.6159556952126e-07, 0.4782499769128e+01, 0.2394243902548e+03, + 0.4987741172394e-07, 0.7312257619924e+00, 0.7771377146812e+02, + 0.5459280703142e-07, 0.3001376372532e+01, 0.6179983037890e+01, + 0.4863461189999e-07, 0.3767222128541e+01, 0.9027992316901e+02, + 0.5349912093158e-07, 0.3663594450273e+01, 0.6386168663001e+01, + + 0.5673725607806e-07, 0.4331187919049e+01, 0.6915859635113e+01, + 0.4745485060512e-07, 0.5816195745518e+01, 0.6282970628506e+01, + 0.4745379005326e-07, 0.8323672435672e+00, 0.6283181072386e+01, + 0.4049002796321e-07, 0.3785023976293e+01, 0.6254626709878e+01, + 0.4247084014515e-07, 0.2378220728783e+01, 0.7875671926403e+01, + 0.4026912363055e-07, 0.2864103423269e+01, 0.6311524991013e+01, + 0.4062935011774e-07, 0.2415408595975e+01, 0.3634620989887e+01, + 0.5347771048509e-07, 0.3343479309801e+01, 0.2515860172507e+02, + 0.4829494136505e-07, 0.2821742398262e+01, 0.5760498333002e+01, + 0.4342554404599e-07, 0.5624662458712e+01, 0.7238675589263e+01, + + 0.4021599184361e-07, 0.5557250275009e+00, 0.1101510648075e+02, + 0.4104900474558e-07, 0.3296691780005e+01, 0.6709674010002e+01, + 0.4376532905131e-07, 0.3814443999443e+01, 0.6805653367890e+01, + 0.3314590480650e-07, 0.3560229189250e+01, 0.1259245002418e+02, + 0.3232421839643e-07, 0.5185389180568e+01, 0.1066495398892e+01, + 0.3541176318876e-07, 0.3921381909679e+01, 0.9917696840332e+01, + 0.3689831242681e-07, 0.4190658955386e+01, 0.1192625446156e+02, + 0.3890605376774e-07, 0.5546023371097e+01, 0.7478166569050e-01, + 0.3038559339780e-07, 0.6231032794494e+01, 0.1256621883632e+02, + 0.3137083969782e-07, 0.6207063419190e+01, 0.4292330755499e+01, + + 0.4024004081854e-07, 0.1195257375713e+01, 0.1334167431096e+02, + 0.3300234879283e-07, 0.1804694240998e+01, 0.1057540660594e+02, + 0.3635399155575e-07, 0.5597811343500e+01, 0.6208294184755e+01, + 0.3032668691356e-07, 0.3191059366530e+01, 0.1805292951336e+02, + 0.2809652069058e-07, 0.4094348032570e+01, 0.3523159621801e-02, + 0.3696955383823e-07, 0.5219282738794e+01, 0.5966683958112e+01, + 0.3562894142503e-07, 0.1037247544554e+01, 0.6357857516136e+01, + 0.3510598524148e-07, 0.1430020816116e+01, 0.6599467742779e+01, + 0.3617736142953e-07, 0.3002911403677e+01, 0.6019991944201e+01, + 0.2624524910730e-07, 0.2437046757292e+01, 0.6702560555334e+01, + + 0.2535824204490e-07, 0.1581594689647e+01, 0.3141537925223e+02, + 0.3519787226257e-07, 0.5379863121521e+01, 0.2505706758577e+03, + 0.2578406709982e-07, 0.4904222639329e+01, 0.1673046366289e+02, + 0.3423887981473e-07, 0.3646448997315e+01, 0.6546159756691e+01, + 0.2776083886467e-07, 0.3307829300144e+01, 0.1272157198369e+02, + 0.3379592818379e-07, 0.1747541251125e+01, 0.1494531617769e+02, + 0.3050255426284e-07, 0.1784689432607e-01, 0.4732030630302e+01, + 0.2652378350236e-07, 0.4420055276260e+01, 0.5863591145557e+01, + 0.2374498173768e-07, 0.3629773929208e+01, 0.2388894113936e+01, + 0.2716451255140e-07, 0.3079623706780e+01, 0.1202934727411e+02, + + 0.3038583699229e-07, 0.3312487903507e+00, 0.1256608456547e+02, + 0.2220681228760e-07, 0.5265520401774e+01, 0.1336244973887e+02, + 0.3044156540912e-07, 0.4766664081250e+01, 0.2908881142201e+02, + 0.2731859923561e-07, 0.5069146530691e+01, 0.1391601904066e+02, + 0.2285603018171e-07, 0.5954935112271e+01, 0.6076890225335e+01, + 0.2025006454555e-07, 0.4061789589267e+01, 0.4701116388778e+01, + 0.2012597519804e-07, 0.2485047705241e+01, 0.6262720680387e+01, + 0.2003406962258e-07, 0.4163779209320e+01, 0.6303431020504e+01, + 0.2207863441371e-07, 0.6923839133828e+00, 0.6489261475556e+01, + 0.2481374305624e-07, 0.5944173595676e+01, 0.1204357418345e+02, + + 0.2130923288870e-07, 0.4641013671967e+01, 0.5746271423666e+01, + 0.2446370543391e-07, 0.6125796518757e+01, 0.1495633313810e+00, + 0.1932492759052e-07, 0.2234572324504e+00, 0.1352175143971e+02, + 0.2600122568049e-07, 0.4281012405440e+01, 0.4590910121555e+01, + 0.2431754047488e-07, 0.1429943874870e+00, 0.1162474756779e+01, + 0.1875902869209e-07, 0.9781803816948e+00, 0.6279194432410e+01, + 0.1874381139426e-07, 0.5670368130173e+01, 0.6286957268481e+01, + 0.2156696047173e-07, 0.2008985006833e+01, 0.1813929450232e+02, + 0.1965076182484e-07, 0.2566186202453e+00, 0.4686889479442e+01, + 0.2334816372359e-07, 0.4408121891493e+01, 0.1002183730415e+02, + + 0.1869937408802e-07, 0.5272745038656e+01, 0.2427287361862e+00, + 0.2436236460883e-07, 0.4407720479029e+01, 0.9514313292143e+02, + 0.1761365216611e-07, 0.1943892315074e+00, 0.1351787002167e+02, + 0.2156289480503e-07, 0.1418570924545e+01, 0.6037244212485e+01, + 0.2164748979255e-07, 0.4724603439430e+01, 0.2301353951334e+02, + 0.2222286670853e-07, 0.2400266874598e+01, 0.1266924451345e+02, + 0.2070901414929e-07, 0.5230348028732e+01, 0.6528907488406e+01, + 0.1792745177020e-07, 0.2099190328945e+01, 0.6819880277225e+01, + 0.1841802068445e-07, 0.3467527844848e+00, 0.6514761976723e+02, + 0.1578401631718e-07, 0.7098642356340e+00, 0.2077542790660e-01, + + 0.1561690152531e-07, 0.5943349620372e+01, 0.6272439236156e+01, + 0.1558591045463e-07, 0.7040653478980e+00, 0.6293712464735e+01, + 0.1737356469576e-07, 0.4487064760345e+01, 0.1765478049437e+02, + 0.1434755619991e-07, 0.2993391570995e+01, 0.1102062672231e+00, + 0.1482187806654e-07, 0.2278049198251e+01, 0.1052268489556e+01, + 0.1424812827089e-07, 0.1682114725827e+01, 0.1311972100268e+02, + 0.1380282448623e-07, 0.3262668602579e+01, 0.1017725758696e+02, + 0.1811481244566e-07, 0.3187771221777e+01, 0.1887552587463e+02, + 0.1504446185696e-07, 0.5650162308647e+01, 0.7626583626240e-01, + 0.1740776154137e-07, 0.5487068607507e+01, 0.1965104848470e+02, + + 0.1374339536251e-07, 0.5745688172201e+01, 0.6016468784579e+01, + 0.1761377477704e-07, 0.5748060203659e+01, 0.2593412433514e+02, + 0.1535138225795e-07, 0.6226848505790e+01, 0.9411464614024e+01, + 0.1788140543676e-07, 0.6189318878563e+01, 0.3301902111895e+02, + 0.1375002807996e-07, 0.5371812884394e+01, 0.6327837846670e+00, + 0.1242115758632e-07, 0.1471687569712e+01, 0.3894181736510e+01, + 0.1450977333938e-07, 0.4143836662127e+01, 0.1277945078067e+02, + 0.1297579575023e-07, 0.9003477661957e+00, 0.6549682916313e+01, + 0.1462667934821e-07, 0.5760505536428e+01, 0.1863592847156e+02, + 0.1381774374799e-07, 0.1085471729463e+01, 0.2379164476796e+01, + + 0.1682333169307e-07, 0.5409870870133e+01, 0.1620077269078e+02, + 0.1190812918837e-07, 0.1397205174601e+01, 0.1149965630200e+02, + 0.1221434762106e-07, 0.9001804809095e+00, 0.1257326515556e+02, + 0.1549934644860e-07, 0.4262528275544e+01, 0.1820933031200e+02, + 0.1252138953050e-07, 0.1411642012027e+01, 0.6993008899458e+01, + 0.1237078905387e-07, 0.2844472403615e+01, 0.2435678079171e+02, + 0.1446953389615e-07, 0.5295835522223e+01, 0.3813291813120e-01, + 0.1388446457170e-07, 0.4969428135497e+01, 0.2458316379602e+00, + 0.1019339179228e-07, 0.2491369561806e+01, 0.6112403035119e+01, + 0.1258880815343e-07, 0.4679426248976e+01, 0.5429879531333e+01, + + 0.1297768238261e-07, 0.1074509953328e+01, 0.1249137003520e+02, + 0.9913505718094e-08, 0.4735097918224e+01, 0.6247047890016e+01, + 0.9830453155969e-08, 0.4158649187338e+01, 0.6453748665772e+01, + 0.1192615865309e-07, 0.3438208613699e+01, 0.6290122169689e+01, + 0.9835874798277e-08, 0.1913300781229e+01, 0.6319103810876e+01, + 0.9639087569277e-08, 0.9487683644125e+00, 0.8273820945392e+01, + 0.1175716107001e-07, 0.3228141664287e+01, 0.6276029531202e+01, + 0.1018926508678e-07, 0.2216607854300e+01, 0.1254537627298e+02, + 0.9500087869225e-08, 0.2625116459733e+01, 0.1256517118505e+02, + 0.9664192916575e-08, 0.5860562449214e+01, 0.6259197520765e+01, + + 0.9612858712203e-08, 0.7885682917381e+00, 0.6306954180126e+01, + 0.1117645675413e-07, 0.3932148831189e+01, 0.1779695906178e+02, + 0.1158864052160e-07, 0.9995605521691e+00, 0.1778273215245e+02, + 0.9021043467028e-08, 0.5263769742673e+01, 0.6172869583223e+01, + 0.8836134773563e-08, 0.1496843220365e+01, 0.1692165728891e+01, + 0.1045872200691e-07, 0.7009039517214e+00, 0.2204125344462e+00, + 0.1211463487798e-07, 0.4041544938511e+01, 0.8257698122054e+02, + 0.8541990804094e-08, 0.1447586692316e+01, 0.6393282117669e+01, + 0.1038720703636e-07, 0.4594249718112e+00, 0.1550861511662e+02, + 0.1126722351445e-07, 0.3925550579036e+01, 0.2061856251104e+00, + + 0.8697373859631e-08, 0.4411341856037e+01, 0.9491756770005e+00, + 0.8869380028441e-08, 0.2402659724813e+01, 0.3903911373650e+01, + 0.9247014693258e-08, 0.1401579743423e+01, 0.6267823317922e+01, + 0.9205062930950e-08, 0.5245978000814e+01, 0.6298328382969e+01, + 0.8000745038049e-08, 0.3590803356945e+01, 0.2648454860559e+01, + 0.9168973650819e-08, 0.2470150501679e+01, 0.1498544001348e+03, + 0.1075444949238e-07, 0.1328606161230e+01, 0.3694923081589e+02, + 0.7817298525817e-08, 0.6162256225998e+01, 0.4804209201333e+01, + 0.9541469226356e-08, 0.3942568967039e+01, 0.1256713221673e+02, + 0.9821910122027e-08, 0.2360246287233e+00, 0.1140367694411e+02, + + 0.9897822023777e-08, 0.4619805634280e+01, 0.2280573557157e+02, + 0.7737289283765e-08, 0.3784727847451e+01, 0.7834121070590e+01, + 0.9260204034710e-08, 0.2223352487601e+01, 0.2787043132925e+01, + 0.7320252888486e-08, 0.1288694636874e+01, 0.6282655592598e+01, + 0.7319785780946e-08, 0.5359869567774e+01, 0.6283496108294e+01, + 0.7147219933778e-08, 0.5516616675856e+01, 0.1725663147538e+02, + 0.7946502829878e-08, 0.2630459984567e+01, 0.1241073141809e+02, + 0.9001711808932e-08, 0.2849815827227e+01, 0.6281591679874e+01, + 0.8994041507257e-08, 0.3795244450750e+01, 0.6284560021018e+01, + 0.8298582787358e-08, 0.5236413127363e+00, 0.1241658836951e+02, + + 0.8526596520710e-08, 0.4794605424426e+01, 0.1098419223922e+02, + 0.8209822103197e-08, 0.1578752370328e+01, 0.1096996532989e+02, + 0.6357049861094e-08, 0.5708926113761e+01, 0.1596186371003e+01, + 0.7370473179049e-08, 0.3842402530241e+01, 0.4061219149443e+01, + 0.7232154664726e-08, 0.3067548981535e+01, 0.1610006857377e+03, + 0.6328765494903e-08, 0.1313930030069e+01, 0.1193336791622e+02, + 0.8030064908595e-08, 0.3488500408886e+01, 0.8460828644453e+00, + 0.6275464259232e-08, 0.1532061626198e+01, 0.8531963191132e+00, + 0.7051897446325e-08, 0.3285859929993e+01, 0.5849364236221e+01, + 0.6161593705428e-08, 0.1477341999464e+01, 0.5573142801433e+01, + + 0.7754683957278e-08, 0.1586118663096e+01, 0.8662240327241e+01, + 0.5889928990701e-08, 0.1304887868803e+01, 0.1232342296471e+02, + 0.5705756047075e-08, 0.4555333589350e+01, 0.1258692712880e+02, + 0.5964178808332e-08, 0.3001762842062e+01, 0.5333900173445e+01, + 0.6712446027467e-08, 0.4886780007595e+01, 0.1171295538178e+02, + 0.5941809275464e-08, 0.4701509603824e+01, 0.9779108567966e+01, + 0.5466993627395e-08, 0.4588357817278e+01, 0.1884211409667e+02, + 0.6340512090980e-08, 0.1164543038893e+01, 0.5217580628120e+02, + 0.6325505710045e-08, 0.3919171259645e+01, 0.1041998632314e+02, + 0.6164789509685e-08, 0.2143828253542e+01, 0.6151533897323e+01, + + 0.5263330812430e-08, 0.6066564434241e+01, 0.1885275071096e+02, + 0.5597087780221e-08, 0.2926316429472e+01, 0.4337116142245e+00, + 0.5396556236817e-08, 0.3244303591505e+01, 0.6286362197481e+01, + 0.5396615148223e-08, 0.3404304703662e+01, 0.6279789503410e+01, + 0.7091832443341e-08, 0.8532377803192e+00, 0.4907302013889e+01, + 0.6572352589782e-08, 0.4901966774419e+01, 0.1176433076753e+02, + 0.5960236060795e-08, 0.1874672315797e+01, 0.1422690933580e-01, + 0.5125480043511e-08, 0.3735726064334e+01, 0.1245594543367e+02, + 0.5928241866410e-08, 0.4502033899935e+01, 0.6414617803568e+01, + 0.5249600357424e-08, 0.4372334799878e+01, 0.1151388321134e+02, + + 0.6059171276087e-08, 0.2581617302908e+01, 0.6062663316000e+01, + 0.5295235081662e-08, 0.2974811513158e+01, 0.3496032717521e+01, + 0.5820561875933e-08, 0.1796073748244e+00, 0.2838593341516e+00, + 0.4754696606440e-08, 0.1981998136973e+01, 0.3104930017775e+01, + 0.6385053548955e-08, 0.2559174171605e+00, 0.6133512519065e+01, + 0.6589828273941e-08, 0.2750967106776e+01, 0.4087944051283e+02, + 0.5383376567189e-08, 0.6325947523578e+00, 0.2248384854122e+02, + 0.5928941683538e-08, 0.1672304519067e+01, 0.1581959461667e+01, + 0.4816060709794e-08, 0.3512566172575e+01, 0.9388005868221e+01, + 0.6003381586512e-08, 0.5610932219189e+01, 0.5326786718777e+01, + + 0.5504225393105e-08, 0.4037501131256e+01, 0.6503488384892e+01, + 0.5353772620129e-08, 0.6122774968240e+01, 0.1735668374386e+03, + 0.5786253768544e-08, 0.5527984999515e+01, 0.1350651127443e+00, + 0.5065706702002e-08, 0.9980765573624e+00, 0.1248988586463e+02, + 0.5972838885276e-08, 0.6044489493203e+01, 0.2673594526851e+02, + 0.5323585877961e-08, 0.3924265998147e+01, 0.4171425416666e+01, + 0.5210772682858e-08, 0.6220111376901e+01, 0.2460261242967e+02, + 0.4726549040535e-08, 0.3716043206862e+01, 0.7232251527446e+01, + 0.6029425105059e-08, 0.8548704071116e+00, 0.3227113045244e+03, + 0.4481542826513e-08, 0.1426925072829e+01, 0.5547199253223e+01, + + 0.5836024505068e-08, 0.7135651752625e-01, 0.7285056171570e+02, + 0.4137046613272e-08, 0.5330767643283e+01, 0.1087398597200e+02, + 0.5171977473924e-08, 0.4494262335353e+00, 0.1884570439172e+02, + 0.5694429833732e-08, 0.2952369582215e+01, 0.9723862754494e+02, + 0.4009158925298e-08, 0.3500003416535e+01, 0.6244942932314e+01, + 0.4784939596873e-08, 0.6196709413181e+01, 0.2929661536378e+02, + 0.3983725022610e-08, 0.5103690031897e+01, 0.4274518229222e+01, + 0.3870535232462e-08, 0.3187569587401e+01, 0.6321208768577e+01, + 0.5140501213951e-08, 0.1668924357457e+01, 0.1232032006293e+02, + 0.3849034819355e-08, 0.4445722510309e+01, 0.1726726808967e+02, + + 0.4002383075060e-08, 0.5226224152423e+01, 0.7018952447668e+01, + 0.3890719543549e-08, 0.4371166550274e+01, 0.1491901785440e+02, + 0.4887084607881e-08, 0.5973556689693e+01, 0.1478866649112e+01, + 0.3739939287592e-08, 0.2089084714600e+01, 0.6922973089781e+01, + 0.5031925918209e-08, 0.4658371936827e+01, 0.1715706182245e+02, + 0.4387748764954e-08, 0.4825580552819e+01, 0.2331413144044e+03, + 0.4147398098865e-08, 0.3739003524998e+01, 0.1376059875786e+02, + 0.3719089993586e-08, 0.1148941386536e+01, 0.6297302759782e+01, + 0.3934238461056e-08, 0.1559893008343e+01, 0.7872148766781e+01, + 0.3672471375622e-08, 0.5516145383612e+01, 0.6268848941110e+01, + + 0.3768911277583e-08, 0.6116053700563e+01, 0.4157198507331e+01, + 0.4033388417295e-08, 0.5076821746017e+01, 0.1567108171867e+02, + 0.3764194617832e-08, 0.8164676232075e+00, 0.3185192151914e+01, + 0.4840628226284e-08, 0.1360479453671e+01, 0.1252801878276e+02, + 0.4949443923785e-08, 0.2725622229926e+01, 0.1617106187867e+03, + 0.4117393089971e-08, 0.6054459628492e+00, 0.5642198095270e+01, + 0.3925754020428e-08, 0.8570462135210e+00, 0.2139354194808e+02, + 0.3630551757923e-08, 0.3552067338279e+01, 0.6294805223347e+01, + 0.3627274802357e-08, 0.3096565085313e+01, 0.6271346477544e+01, + 0.3806143885093e-08, 0.6367751709777e+00, 0.1725304118033e+02, + + 0.4433254641565e-08, 0.4848461503937e+01, 0.7445550607224e+01, + 0.3712319846576e-08, 0.1331950643655e+01, 0.4194847048887e+00, + 0.3849847534783e-08, 0.4958368297746e+00, 0.9562891316684e+00, + 0.3483955430165e-08, 0.2237215515707e+01, 0.1161697602389e+02, + 0.3961912730982e-08, 0.3332402188575e+01, 0.2277943724828e+02, + 0.3419978244481e-08, 0.5785600576016e+01, 0.1362553364512e+02, + 0.3329417758177e-08, 0.9812676559709e-01, 0.1685848245639e+02, + 0.4207206893193e-08, 0.9494780468236e+00, 0.2986433403208e+02, + 0.3268548976410e-08, 0.1739332095686e+00, 0.5749861718712e+01, + 0.3321880082685e-08, 0.1423354800666e+01, 0.6279143387820e+01, + + 0.4503173010852e-08, 0.2314972675293e+00, 0.1385561574497e+01, + 0.4316599090954e-08, 0.1012646782616e+00, 0.4176041334900e+01, + 0.3283493323850e-08, 0.5233306881265e+01, 0.6287008313071e+01, + 0.3164033542343e-08, 0.4005597257511e+01, 0.2099539292909e+02, + 0.4159720956725e-08, 0.5365676242020e+01, 0.5905702259363e+01, + 0.3565176892217e-08, 0.4284440620612e+01, 0.3932462625300e-02, + 0.3514440950221e-08, 0.4270562636575e+01, 0.7335344340001e+01, + 0.3540596871909e-08, 0.5953553201060e+01, 0.1234573916645e+02, + 0.2960769905118e-08, 0.1115180417718e+01, 0.2670964694522e+02, + 0.2962213739684e-08, 0.3863811918186e+01, 0.6408777551755e+00, + + 0.3883556700251e-08, 0.1268617928302e+01, 0.6660449441528e+01, + 0.2919225516346e-08, 0.4908605223265e+01, 0.1375773836557e+01, + 0.3115158863370e-08, 0.3744519976885e+01, 0.3802769619140e-01, + 0.4099438144212e-08, 0.4173244670532e+01, 0.4480965020977e+02, + 0.2899531858964e-08, 0.5910601428850e+01, 0.2059724391010e+02, + 0.3289733429855e-08, 0.2488050078239e+01, 0.1081813534213e+02, + 0.3933075612875e-08, 0.1122363652883e+01, 0.3773735910827e+00, + 0.3021403764467e-08, 0.4951973724904e+01, 0.2982630633589e+02, + 0.2798598949757e-08, 0.5117057845513e+01, 0.1937891852345e+02, + 0.3397421302707e-08, 0.6104159180476e+01, 0.6923953605621e+01, + + 0.3720398002179e-08, 0.1184933429829e+01, 0.3066615496545e+02, + 0.3598484186267e-08, 0.3505282086105e+01, 0.6147450479709e+01, + 0.3694594027310e-08, 0.2286651088141e+01, 0.2636725487657e+01, + 0.2680444152969e-08, 0.1871816775482e+00, 0.6816289982179e+01, + 0.3497574865641e-08, 0.3143251755431e+01, 0.6418701221183e+01, + 0.3130274129494e-08, 0.2462167316018e+01, 0.1235996607578e+02, + 0.3241119069551e-08, 0.4256374004686e+01, 0.1652265972112e+02, + 0.2601960842061e-08, 0.4970362941425e+01, 0.1045450126711e+02, + 0.2690601527504e-08, 0.2372657824898e+01, 0.3163918923335e+00, + 0.2908688152664e-08, 0.4232652627721e+01, 0.2828699048865e+02, + + 0.3120456131875e-08, 0.3925747001137e+00, 0.2195415756911e+02, + 0.3148855423384e-08, 0.3093478330445e+01, 0.1172006883645e+02, + 0.3051044261017e-08, 0.5560948248212e+01, 0.6055599646783e+01, + 0.2826006876660e-08, 0.5072790310072e+01, 0.5120601093667e+01, + 0.3100034191711e-08, 0.4998530231096e+01, 0.1799603123222e+02, + 0.2398771640101e-08, 0.2561739802176e+01, 0.6255674361143e+01, + 0.2384002842728e-08, 0.4087420284111e+01, 0.6310477339748e+01, + 0.2842146517568e-08, 0.2515048217955e+01, 0.5469525544182e+01, + 0.2847674371340e-08, 0.5235326497443e+01, 0.1034429499989e+02, + 0.2903722140764e-08, 0.1088200795797e+01, 0.6510552054109e+01, + + 0.3187610710605e-08, 0.4710624424816e+01, 0.1693792562116e+03, + 0.3048869992813e-08, 0.2857975896445e+00, 0.8390110365991e+01, + 0.2860216950984e-08, 0.2241619020815e+01, 0.2243449970715e+00, + 0.2701117683113e-08, 0.6651573305272e-01, 0.6129297044991e+01, + 0.2509891590152e-08, 0.1285135324585e+01, 0.1044027435778e+02, + 0.2623200252223e-08, 0.2981229834530e+00, 0.6436854655901e+01, + 0.2622541669202e-08, 0.6122470726189e+01, 0.9380959548977e+01, + 0.2818435667099e-08, 0.4251087148947e+01, 0.5934151399930e+01, + 0.2365196797465e-08, 0.3465070460790e+01, 0.2470570524223e+02, + 0.2358704646143e-08, 0.5791603815350e+01, 0.8671969964381e+01, + + 0.2388299481390e-08, 0.4142483772941e+01, 0.7096626156709e+01, + 0.1996041217224e-08, 0.2101901889496e+01, 0.1727188400790e+02, + 0.2687593060336e-08, 0.1526689456959e+01, 0.7075506709219e+02, + 0.2618913670810e-08, 0.2397684236095e+01, 0.6632000300961e+01, + 0.2571523050364e-08, 0.5751929456787e+00, 0.6206810014183e+01, + 0.2582135006946e-08, 0.5595464352926e+01, 0.4873985990671e+02, + 0.2372530190361e-08, 0.5092689490655e+01, 0.1590676413561e+02, + 0.2357178484712e-08, 0.4444363527851e+01, 0.3097883698531e+01, + 0.2451590394723e-08, 0.3108251687661e+01, 0.6612329252343e+00, + 0.2370045949608e-08, 0.2608133861079e+01, 0.3459636466239e+02, + + 0.2268997267358e-08, 0.3639717753384e+01, 0.2844914056730e-01, + 0.1731432137906e-08, 0.1741898445707e+00, 0.2019909489111e+02, + 0.1629869741622e-08, 0.3902225646724e+01, 0.3035599730800e+02, + 0.2206215801974e-08, 0.4971131250731e+01, 0.6281667977667e+01, + 0.2205469554680e-08, 0.1677462357110e+01, 0.6284483723224e+01, + 0.2148792362509e-08, 0.4236259604006e+01, 0.1980482729015e+02, + 0.1873733657847e-08, 0.5926814998687e+01, 0.2876692439167e+02, + 0.2026573758959e-08, 0.4349643351962e+01, 0.2449240616245e+02, + 0.1807770325110e-08, 0.5700940482701e+01, 0.2045286941806e+02, + 0.1881174408581e-08, 0.6601286363430e+00, 0.2358125818164e+02, + + 0.1368023671690e-08, 0.2211098592752e+01, 0.2473415438279e+02, + 0.1720017916280e-08, 0.4942488551129e+01, 0.1679593901136e+03, + 0.1702427665131e-08, 0.1452233856386e+01, 0.3338575901272e+03, + 0.1414032510054e-08, 0.5525357721439e+01, 0.1624205518357e+03, + 0.1652626045364e-08, 0.4108794283624e+01, 0.8956999012000e+02, + 0.1642957769686e-08, 0.7344335209984e+00, 0.5267006960365e+02, + 0.1614952403624e-08, 0.3541213951363e+01, 0.3332657872986e+02, + 0.1535988291188e-08, 0.4031094072151e+01, 0.3852657435933e+02, + 0.1593193738177e-08, 0.4185136203609e+01, 0.2282781046519e+03, + 0.1074569126382e-08, 0.1720485636868e+01, 0.8397383534231e+02, + + 0.1074408214509e-08, 0.2758613420318e+01, 0.8401985929482e+02, + 0.9700199670465e-09, 0.4216686842097e+01, 0.7826370942180e+02, + 0.1258433517061e-08, 0.2575068876639e+00, 0.3115650189215e+03, + 0.1240303229539e-08, 0.4800844956756e+00, 0.1784300471910e+03, + 0.9018345948127e-09, 0.3896756361552e+00, 0.5886454391678e+02, + 0.1135301432805e-08, 0.3700805023550e+00, 0.7842370451713e+02, + 0.9215887951370e-09, 0.4364579276638e+01, 0.1014262087719e+03, + 0.1055401054147e-08, 0.2156564222111e+01, 0.5660027930059e+02, + 0.1008725979831e-08, 0.5454015785234e+01, 0.4245678405627e+02, + 0.7217398104321e-09, 0.1597772562175e+01, 0.2457074661053e+03, + + 0.6912033134447e-09, 0.5824090621461e+01, 0.1679936946371e+03, + 0.6833881523549e-09, 0.3578778482835e+01, 0.6053048899753e+02, + 0.4887304205142e-09, 0.3724362812423e+01, 0.9656299901946e+02, + 0.5173709754788e-09, 0.5422427507933e+01, 0.2442876000072e+03, + 0.4671353097145e-09, 0.2396106924439e+01, 0.1435713242844e+03, + 0.5652608439480e-09, 0.2804028838685e+01, 0.8365903305582e+02, + 0.5604061331253e-09, 0.1638816006247e+01, 0.8433466158131e+02, + 0.4712723365400e-09, 0.8979003224474e+00, 0.3164282286739e+03, + 0.4909967465112e-09, 0.3210426725516e+01, 0.4059982187939e+03, + 0.4771358267658e-09, 0.5308027211629e+01, 0.1805255418145e+03, + + 0.3943451445989e-09, 0.2195145341074e+01, 0.2568537517081e+03, + 0.3952109120244e-09, 0.5081189491586e+01, 0.2449975330562e+03, + 0.3788134594789e-09, 0.4345171264441e+01, 0.1568131045107e+03, + 0.3738330190479e-09, 0.2613062847997e+01, 0.3948519331910e+03, + 0.3099866678136e-09, 0.2846760817689e+01, 0.1547176098872e+03, + 0.2002962716768e-09, 0.4921360989412e+01, 0.2268582385539e+03, + 0.2198291338754e-09, 0.1130360117454e+00, 0.1658638954901e+03, + 0.1491958330784e-09, 0.4228195232278e+01, 0.2219950288015e+03, + 0.1475384076173e-09, 0.3005721811604e+00, 0.3052819430710e+03, + 0.1661626624624e-09, 0.7830125621203e+00, 0.2526661704812e+03, + + 0.9015823460025e-10, 0.3807792942715e+01, 0.4171445043968e+03 }; + +/* Sun-to-Earth, T^0, Y */ + static const double e0y[] = { + 0.9998921098898e+00, 0.1826583913846e+00, 0.6283075850446e+01, + -0.2442700893735e-01, 0.0000000000000e+00, 0.0000000000000e+00, + 0.8352929742915e-02, 0.1395277998680e+00, 0.1256615170089e+02, + 0.1046697300177e-03, 0.9641423109763e-01, 0.1884922755134e+02, + 0.3110841876663e-04, 0.5381140401712e+01, 0.8399684731857e+02, + 0.2570269094593e-04, 0.5301016407128e+01, 0.5296909721118e+00, + 0.2147389623610e-04, 0.2662510869850e+01, 0.1577343543434e+01, + 0.1680344384050e-04, 0.5207904119704e+01, 0.6279552690824e+01, + 0.1679117312193e-04, 0.4582187486968e+01, 0.6286599010068e+01, + 0.1440512068440e-04, 0.1900688517726e+01, 0.2352866153506e+01, + + 0.1135139664999e-04, 0.5273108538556e+01, 0.5223693906222e+01, + 0.9345482571018e-05, 0.4503047687738e+01, 0.1203646072878e+02, + 0.9007418719568e-05, 0.1605621059637e+01, 0.1021328554739e+02, + 0.5671536712314e-05, 0.5812849070861e+00, 0.1059381944224e+01, + 0.7451401861666e-05, 0.2807346794836e+01, 0.3981490189893e+00, + 0.6393470057114e-05, 0.6029224133855e+01, 0.5753384878334e+01, + 0.6814275881697e-05, 0.6472990145974e+00, 0.4705732307012e+01, + 0.6113705628887e-05, 0.3813843419700e+01, 0.6812766822558e+01, + 0.4503851367273e-05, 0.4527804370996e+01, 0.5884926831456e+01, + 0.4522249141926e-05, 0.5991783029224e+01, 0.6256777527156e+01, + + 0.4501794307018e-05, 0.3798703844397e+01, 0.6309374173736e+01, + 0.5514927480180e-05, 0.3961257833388e+01, 0.5507553240374e+01, + 0.4062862799995e-05, 0.5256247296369e+01, 0.6681224869435e+01, + 0.5414900429712e-05, 0.5499032014097e+01, 0.7755226100720e+00, + 0.5463153987424e-05, 0.6173092454097e+01, 0.1414349524433e+02, + 0.5071611859329e-05, 0.2870244247651e+01, 0.7860419393880e+01, + 0.2195112094455e-05, 0.2952338617201e+01, 0.1150676975667e+02, + 0.2279139233919e-05, 0.5951775132933e+01, 0.7058598460518e+01, + 0.2278386100876e-05, 0.4845456398785e+01, 0.4694002934110e+01, + 0.2559088003308e-05, 0.6945321117311e+00, 0.1216800268190e+02, + + 0.2561079286856e-05, 0.6167224608301e+01, 0.7099330490126e+00, + 0.1792755796387e-05, 0.1400122509632e+01, 0.7962980379786e+00, + 0.1818715656502e-05, 0.4703347611830e+01, 0.6283142985870e+01, + 0.1818744924791e-05, 0.5086748900237e+01, 0.6283008715021e+01, + 0.1554518791390e-05, 0.5331008042713e-01, 0.2513230340178e+02, + 0.2063265737239e-05, 0.4283680484178e+01, 0.1179062909082e+02, + 0.1497613520041e-05, 0.6074207826073e+01, 0.5486777812467e+01, + 0.2000617940427e-05, 0.2501426281450e+01, 0.1778984560711e+02, + 0.1289731195580e-05, 0.3646340599536e+01, 0.7079373888424e+01, + 0.1282657998934e-05, 0.3232864804902e+01, 0.3738761453707e+01, + + 0.1528915968658e-05, 0.5581433416669e+01, 0.2132990797783e+00, + 0.1187304098432e-05, 0.5453576453694e+01, 0.9437762937313e+01, + 0.7842782928118e-06, 0.2823953922273e+00, 0.8827390247185e+01, + 0.7352892280868e-06, 0.1124369580175e+01, 0.1589072916335e+01, + 0.6570189360797e-06, 0.2089154042840e+01, 0.1176985366291e+02, + 0.6324967590410e-06, 0.6704855581230e+00, 0.6262300422539e+01, + 0.6298289872283e-06, 0.2836414855840e+01, 0.6303851278352e+01, + 0.6476686465855e-06, 0.4852433866467e+00, 0.7113454667900e-02, + 0.8587034651234e-06, 0.1453511005668e+01, 0.1672837615881e+03, + 0.8068948788113e-06, 0.9224087798609e+00, 0.6069776770667e+01, + + 0.8353786011661e-06, 0.4631707184895e+01, 0.3340612434717e+01, + 0.6009324532132e-06, 0.1829498827726e+01, 0.4136910472696e+01, + 0.7558158559566e-06, 0.2588596800317e+01, 0.6496374930224e+01, + 0.5809279504503e-06, 0.5516818853476e+00, 0.1097707878456e+02, + 0.5374131950254e-06, 0.6275674734960e+01, 0.1194447056968e+01, + 0.5711160507326e-06, 0.1091905956872e+01, 0.6282095334605e+01, + 0.5710183170746e-06, 0.2415001635090e+01, 0.6284056366286e+01, + 0.5144373590610e-06, 0.6020336443438e+01, 0.6290189305114e+01, + 0.5103108927267e-06, 0.3775634564605e+01, 0.6275962395778e+01, + 0.4960654697891e-06, 0.1073450946756e+01, 0.6127655567643e+01, + + 0.4786385689280e-06, 0.2431178012310e+01, 0.6438496133249e+01, + 0.6109911263665e-06, 0.5343356157914e+01, 0.3154687086868e+01, + 0.4839898944024e-06, 0.5830833594047e-01, 0.8018209333619e+00, + 0.4734822623919e-06, 0.4536080134821e+01, 0.3128388763578e+01, + 0.4834741473290e-06, 0.2585090489754e+00, 0.7084896783808e+01, + 0.5134858581156e-06, 0.4213317172603e+01, 0.1235285262111e+02, + 0.5064004264978e-06, 0.4814418806478e+00, 0.1185621865188e+02, + 0.3753476772761e-06, 0.1599953399788e+01, 0.8429241228195e+01, + 0.4935264014283e-06, 0.2157417556873e+01, 0.2544314396739e+01, + 0.3950929600897e-06, 0.3359394184254e+01, 0.5481254917084e+01, + + 0.4895849789777e-06, 0.5165704376558e+01, 0.9225539266174e+01, + 0.4215241688886e-06, 0.2065368800993e+01, 0.1726015463500e+02, + 0.3796773731132e-06, 0.1468606346612e+01, 0.4265981595566e+00, + 0.3114178142515e-06, 0.3615638079474e+01, 0.2146165377750e+01, + 0.3260664220838e-06, 0.4417134922435e+01, 0.4164311961999e+01, + 0.3976996123008e-06, 0.4700866883004e+01, 0.5856477690889e+01, + 0.2801459672924e-06, 0.4538902060922e+01, 0.1256967486051e+02, + 0.3638931868861e-06, 0.1334197991475e+01, 0.1807370494127e+02, + 0.2487013269476e-06, 0.3749275558275e+01, 0.2629832328990e-01, + 0.3034165481994e-06, 0.4236622030873e+00, 0.4535059491685e+01, + + 0.2676278825586e-06, 0.5970848007811e+01, 0.3930209696940e+01, + 0.2764903818918e-06, 0.5194636754501e+01, 0.1256262854127e+02, + 0.2485149930507e-06, 0.1002434207846e+01, 0.5088628793478e+01, + 0.2199305540941e-06, 0.3066773098403e+01, 0.1255903824622e+02, + 0.2571106500435e-06, 0.7588312459063e+00, 0.1336797263425e+02, + 0.2049751817158e-06, 0.3444977434856e+01, 0.1137170464392e+02, + 0.2599707296297e-06, 0.1873128542205e+01, 0.7143069561767e+02, + 0.1785018072217e-06, 0.5015891306615e+01, 0.1748016358760e+01, + 0.2324833891115e-06, 0.4618271239730e+01, 0.1831953657923e+02, + 0.1709711119545e-06, 0.5300003455669e+01, 0.4933208510675e+01, + + 0.2107159351716e-06, 0.2229819815115e+01, 0.7477522907414e+01, + 0.1750333080295e-06, 0.6161485880008e+01, 0.1044738781244e+02, + 0.2000598210339e-06, 0.2967357299999e+01, 0.8031092209206e+01, + 0.1380920248681e-06, 0.3027007923917e+01, 0.8635942003952e+01, + 0.1412460470299e-06, 0.6037597163798e+01, 0.2942463415728e+01, + 0.1888459803001e-06, 0.8561476243374e+00, 0.1561374759853e+03, + 0.1788370542585e-06, 0.4869736290209e+01, 0.1592596075957e+01, + 0.1360893296167e-06, 0.3626411886436e+01, 0.1309584267300e+02, + 0.1506846530160e-06, 0.1550975377427e+01, 0.1649636139783e+02, + 0.1800913376176e-06, 0.2075826033190e+01, 0.1729818233119e+02, + + 0.1436261390649e-06, 0.6148876420255e+01, 0.2042657109477e+02, + 0.1220227114151e-06, 0.4382583879906e+01, 0.7632943190217e+01, + 0.1337883603592e-06, 0.2036644327361e+01, 0.1213955354133e+02, + 0.1159326650738e-06, 0.3892276994687e+01, 0.5331357529664e+01, + 0.1352853128569e-06, 0.1447950649744e+01, 0.1673046366289e+02, + 0.1433408296083e-06, 0.4457854692961e+01, 0.7342457794669e+01, + 0.1234701666518e-06, 0.1538818147151e+01, 0.6279485555400e+01, + 0.1234027192007e-06, 0.1968523220760e+01, 0.6286666145492e+01, + 0.1244024091797e-06, 0.5779803499985e+01, 0.1511046609763e+02, + 0.1097934945516e-06, 0.6210975221388e+00, 0.1098880815746e+02, + + 0.1254611329856e-06, 0.2591963807998e+01, 0.1572083878776e+02, + 0.1158247286784e-06, 0.2483612812670e+01, 0.5729506548653e+01, + 0.9039078252960e-07, 0.3857554579796e+01, 0.9623688285163e+01, + 0.9108024978836e-07, 0.5826368512984e+01, 0.7234794171227e+01, + 0.8887068108436e-07, 0.3475694573987e+01, 0.6148010737701e+01, + 0.8632374035438e-07, 0.3059070488983e-01, 0.6418140963190e+01, + 0.7893186992967e-07, 0.1583194837728e+01, 0.2118763888447e+01, + 0.8297650201172e-07, 0.8519770534637e+00, 0.1471231707864e+02, + 0.1019759578988e-06, 0.1319598738732e+00, 0.1349867339771e+01, + 0.1010037696236e-06, 0.9937860115618e+00, 0.6836645152238e+01, + + 0.1047727548266e-06, 0.1382138405399e+01, 0.5999216516294e+01, + 0.7351993881086e-07, 0.3833397851735e+01, 0.6040347114260e+01, + 0.9868771092341e-07, 0.2124913814390e+01, 0.6566935184597e+01, + 0.7007321959390e-07, 0.5946305343763e+01, 0.6525804586632e+01, + 0.6861411679709e-07, 0.4574654977089e+01, 0.7238675589263e+01, + 0.7554519809614e-07, 0.5949232686844e+01, 0.1253985337760e+02, + 0.9541880448335e-07, 0.3495242990564e+01, 0.2122839202813e+02, + 0.7185606722155e-07, 0.4310113471661e+01, 0.6245048154254e+01, + 0.7131360871710e-07, 0.5480309323650e+01, 0.6321103546637e+01, + 0.6651142021039e-07, 0.5411097713654e+01, 0.5327476111629e+01, + + 0.8538618213667e-07, 0.1827849973951e+01, 0.1101510648075e+02, + 0.8634954288044e-07, 0.5443584943349e+01, 0.5643178611111e+01, + 0.7449415051484e-07, 0.2011535459060e+01, 0.5368044267797e+00, + 0.7421047599169e-07, 0.3464562529249e+01, 0.2354323048545e+02, + 0.6140694354424e-07, 0.5657556228815e+01, 0.1296430071988e+02, + 0.6353525143033e-07, 0.3463816593821e+01, 0.1990745094947e+01, + 0.6221964013447e-07, 0.1532259498697e+01, 0.9517183207817e+00, + 0.5852480257244e-07, 0.1375396598875e+01, 0.9555997388169e+00, + 0.6398637498911e-07, 0.2405645801972e+01, 0.2407292145756e+02, + 0.7039744069878e-07, 0.5397541799027e+01, 0.5225775174439e+00, + + 0.6977997694382e-07, 0.4762347105419e+01, 0.1097355562493e+02, + 0.7460629558396e-07, 0.2711944692164e+01, 0.2200391463820e+02, + 0.5376577536101e-07, 0.2352980430239e+01, 0.1431416805965e+02, + 0.7530607893556e-07, 0.1943940180699e+01, 0.1842262939178e+02, + 0.6822928971605e-07, 0.4337651846959e+01, 0.1554202828031e+00, + 0.6220772380094e-07, 0.6716871369278e+00, 0.1845107853235e+02, + 0.6586950799043e-07, 0.2229714460505e+01, 0.5216580451554e+01, + 0.5873800565771e-07, 0.7627013920580e+00, 0.6398972393349e+00, + 0.6264346929745e-07, 0.6202785478961e+00, 0.6277552955062e+01, + 0.6257929115669e-07, 0.2886775596668e+01, 0.6288598745829e+01, + + 0.5343536033409e-07, 0.1977241012051e+01, 0.4690479774488e+01, + 0.5587849781714e-07, 0.1922923484825e+01, 0.1551045220144e+01, + 0.6905100845603e-07, 0.3570757164631e+01, 0.1030928125552e+00, + 0.6178957066649e-07, 0.5197558947765e+01, 0.5230807360890e+01, + 0.6187270224331e-07, 0.8193497368922e+00, 0.5650292065779e+01, + 0.5385664291426e-07, 0.5406336665586e+01, 0.7771377146812e+02, + 0.6329363917926e-07, 0.2837760654536e+01, 0.2608790314060e+02, + 0.4546018761604e-07, 0.2933580297050e+01, 0.5535693017924e+00, + 0.6196091049375e-07, 0.4157871494377e+01, 0.8467247584405e+02, + 0.6159555108218e-07, 0.3211703561703e+01, 0.2394243902548e+03, + + 0.4995340539317e-07, 0.1459098102922e+01, 0.4732030630302e+01, + 0.5457031243572e-07, 0.1430457676136e+01, 0.6179983037890e+01, + 0.4863461418397e-07, 0.2196425916730e+01, 0.9027992316901e+02, + 0.5342947626870e-07, 0.2086612890268e+01, 0.6386168663001e+01, + 0.5674296648439e-07, 0.2760204966535e+01, 0.6915859635113e+01, + 0.4745783120161e-07, 0.4245368971862e+01, 0.6282970628506e+01, + 0.4745676961198e-07, 0.5544725787016e+01, 0.6283181072386e+01, + 0.4049796869973e-07, 0.2213984363586e+01, 0.6254626709878e+01, + 0.4248333596940e-07, 0.8075781952896e+00, 0.7875671926403e+01, + 0.4027178070205e-07, 0.1293268540378e+01, 0.6311524991013e+01, + + 0.4066543943476e-07, 0.3986141175804e+01, 0.3634620989887e+01, + 0.4858863787880e-07, 0.1276112738231e+01, 0.5760498333002e+01, + 0.5277398263530e-07, 0.4916111741527e+01, 0.2515860172507e+02, + 0.4105635656559e-07, 0.1725805864426e+01, 0.6709674010002e+01, + 0.4376781925772e-07, 0.2243642442106e+01, 0.6805653367890e+01, + 0.3235827894693e-07, 0.3614135118271e+01, 0.1066495398892e+01, + 0.3073244740308e-07, 0.2460873393460e+01, 0.5863591145557e+01, + 0.3088609271373e-07, 0.5678431771790e+01, 0.9917696840332e+01, + 0.3393022279836e-07, 0.3814017477291e+01, 0.1391601904066e+02, + 0.3038686508802e-07, 0.4660216229171e+01, 0.1256621883632e+02, + + 0.4019677752497e-07, 0.5906906243735e+01, 0.1334167431096e+02, + 0.3288834998232e-07, 0.9536146445882e+00, 0.1620077269078e+02, + 0.3889973794631e-07, 0.3942205097644e+01, 0.7478166569050e-01, + 0.3050438987141e-07, 0.1624810271286e+01, 0.1805292951336e+02, + 0.3601142564638e-07, 0.4030467142575e+01, 0.6208294184755e+01, + 0.3689015557141e-07, 0.3648878818694e+01, 0.5966683958112e+01, + 0.3563471893565e-07, 0.5749584017096e+01, 0.6357857516136e+01, + 0.2776183170667e-07, 0.2630124187070e+01, 0.3523159621801e-02, + 0.2922350530341e-07, 0.1790346403629e+01, 0.1272157198369e+02, + 0.3511076917302e-07, 0.6142198301611e+01, 0.6599467742779e+01, + + 0.3619351007632e-07, 0.1432421386492e+01, 0.6019991944201e+01, + 0.2561254711098e-07, 0.2302822475792e+01, 0.1259245002418e+02, + 0.2626903942920e-07, 0.8660470994571e+00, 0.6702560555334e+01, + 0.2550187397083e-07, 0.6069721995383e+01, 0.1057540660594e+02, + 0.2535873526138e-07, 0.1079020331795e-01, 0.3141537925223e+02, + 0.3519786153847e-07, 0.3809066902283e+01, 0.2505706758577e+03, + 0.3424651492873e-07, 0.2075435114417e+01, 0.6546159756691e+01, + 0.2372676630861e-07, 0.2057803120154e+01, 0.2388894113936e+01, + 0.2710980779541e-07, 0.1510068488010e+01, 0.1202934727411e+02, + 0.3038710889704e-07, 0.5043617528901e+01, 0.1256608456547e+02, + + 0.2220364130585e-07, 0.3694793218205e+01, 0.1336244973887e+02, + 0.3025880825460e-07, 0.5450618999049e-01, 0.2908881142201e+02, + 0.2784493486864e-07, 0.3381164084502e+01, 0.1494531617769e+02, + 0.2294414142438e-07, 0.4382309025210e+01, 0.6076890225335e+01, + 0.2012723294724e-07, 0.9142212256518e+00, 0.6262720680387e+01, + 0.2036357831958e-07, 0.5676172293154e+01, 0.4701116388778e+01, + 0.2003474823288e-07, 0.2592767977625e+01, 0.6303431020504e+01, + 0.2207144900109e-07, 0.5404976271180e+01, 0.6489261475556e+01, + 0.2481664905135e-07, 0.4373284587027e+01, 0.1204357418345e+02, + 0.2674949182295e-07, 0.5859182188482e+01, 0.4590910121555e+01, + + 0.2450554720322e-07, 0.4555381557451e+01, 0.1495633313810e+00, + 0.2601975986457e-07, 0.3933165584959e+01, 0.1965104848470e+02, + 0.2199860022848e-07, 0.5227977189087e+01, 0.1351787002167e+02, + 0.2448121172316e-07, 0.4858060353949e+01, 0.1162474756779e+01, + 0.1876014864049e-07, 0.5690546553605e+01, 0.6279194432410e+01, + 0.1874513219396e-07, 0.4099539297446e+01, 0.6286957268481e+01, + 0.2156380842559e-07, 0.4382594769913e+00, 0.1813929450232e+02, + 0.1981691240061e-07, 0.1829784152444e+01, 0.4686889479442e+01, + 0.2329992648539e-07, 0.2836254278973e+01, 0.1002183730415e+02, + 0.1765184135302e-07, 0.2803494925833e+01, 0.4292330755499e+01, + + 0.2436368366085e-07, 0.2836897959677e+01, 0.9514313292143e+02, + 0.2164089203889e-07, 0.6127522446024e+01, 0.6037244212485e+01, + 0.1847755034221e-07, 0.3683163635008e+01, 0.2427287361862e+00, + 0.1674798769966e-07, 0.3316993867246e+00, 0.1311972100268e+02, + 0.2222542124356e-07, 0.8294097805480e+00, 0.1266924451345e+02, + 0.2071074505925e-07, 0.3659492220261e+01, 0.6528907488406e+01, + 0.1608224471835e-07, 0.4774492067182e+01, 0.1352175143971e+02, + 0.1857583439071e-07, 0.2873120597682e+01, 0.8662240327241e+01, + 0.1793018836159e-07, 0.5282441177929e+00, 0.6819880277225e+01, + 0.1575391221692e-07, 0.1320789654258e+01, 0.1102062672231e+00, + + 0.1840132009557e-07, 0.1917110916256e+01, 0.6514761976723e+02, + 0.1760917288281e-07, 0.2972635937132e+01, 0.5746271423666e+01, + 0.1561779518516e-07, 0.4372569261981e+01, 0.6272439236156e+01, + 0.1558687885205e-07, 0.5416424926425e+01, 0.6293712464735e+01, + 0.1951359382579e-07, 0.3094448898752e+01, 0.2301353951334e+02, + 0.1569144275614e-07, 0.2802103689808e+01, 0.1765478049437e+02, + 0.1479130389462e-07, 0.2136435020467e+01, 0.2077542790660e-01, + 0.1467828510764e-07, 0.7072627435674e+00, 0.1052268489556e+01, + 0.1627627337440e-07, 0.3947607143237e+01, 0.6327837846670e+00, + 0.1503498479758e-07, 0.4079248909190e+01, 0.7626583626240e-01, + + 0.1297967708237e-07, 0.6269637122840e+01, 0.1149965630200e+02, + 0.1374416896634e-07, 0.4175657970702e+01, 0.6016468784579e+01, + 0.1783812325219e-07, 0.1476540547560e+01, 0.3301902111895e+02, + 0.1525884228756e-07, 0.4653477715241e+01, 0.9411464614024e+01, + 0.1451067396763e-07, 0.2573001128225e+01, 0.1277945078067e+02, + 0.1297713111950e-07, 0.5612799618771e+01, 0.6549682916313e+01, + 0.1462784012820e-07, 0.4189661623870e+01, 0.1863592847156e+02, + 0.1384185980007e-07, 0.2656915472196e+01, 0.2379164476796e+01, + 0.1221497599801e-07, 0.5612515760138e+01, 0.1257326515556e+02, + 0.1560574525896e-07, 0.4783414317919e+01, 0.1887552587463e+02, + + 0.1544598372036e-07, 0.2694431138063e+01, 0.1820933031200e+02, + 0.1531678928696e-07, 0.4105103489666e+01, 0.2593412433514e+02, + 0.1349321503795e-07, 0.3082437194015e+00, 0.5120601093667e+01, + 0.1252030290917e-07, 0.6124072334087e+01, 0.6993008899458e+01, + 0.1459243816687e-07, 0.3733103981697e+01, 0.3813291813120e-01, + 0.1226103625262e-07, 0.1267127706817e+01, 0.2435678079171e+02, + 0.1019449641504e-07, 0.4367790112269e+01, 0.1725663147538e+02, + 0.1380789433607e-07, 0.3387201768700e+01, 0.2458316379602e+00, + 0.1019453421658e-07, 0.9204143073737e+00, 0.6112403035119e+01, + 0.1297929434405e-07, 0.5786874896426e+01, 0.1249137003520e+02, + + 0.9912677786097e-08, 0.3164232870746e+01, 0.6247047890016e+01, + 0.9829386098599e-08, 0.2586762413351e+01, 0.6453748665772e+01, + 0.1226807746104e-07, 0.6239068436607e+01, 0.5429879531333e+01, + 0.1192691755997e-07, 0.1867380051424e+01, 0.6290122169689e+01, + 0.9836499227081e-08, 0.3424716293727e+00, 0.6319103810876e+01, + 0.9642862564285e-08, 0.5661372990657e+01, 0.8273820945392e+01, + 0.1165184404862e-07, 0.5768367239093e+01, 0.1778273215245e+02, + 0.1175794418818e-07, 0.1657351222943e+01, 0.6276029531202e+01, + 0.1018948635601e-07, 0.6458292350865e+00, 0.1254537627298e+02, + 0.9500383606676e-08, 0.1054306140741e+01, 0.1256517118505e+02, + + 0.1227512202906e-07, 0.2505278379114e+01, 0.2248384854122e+02, + 0.9664792009993e-08, 0.4289737277000e+01, 0.6259197520765e+01, + 0.9613285666331e-08, 0.5500597673141e+01, 0.6306954180126e+01, + 0.1117906736211e-07, 0.2361405953468e+01, 0.1779695906178e+02, + 0.9611378640782e-08, 0.2851310576269e+01, 0.2061856251104e+00, + 0.8845354852370e-08, 0.6208777705343e+01, 0.1692165728891e+01, + 0.1054046966600e-07, 0.5413091423934e+01, 0.2204125344462e+00, + 0.1215539124483e-07, 0.5613969479755e+01, 0.8257698122054e+02, + 0.9932460955209e-08, 0.1106124877015e+01, 0.1017725758696e+02, + 0.8785804715043e-08, 0.2869224476477e+01, 0.9491756770005e+00, + + 0.8538084097562e-08, 0.6159640899344e+01, 0.6393282117669e+01, + 0.8648994369529e-08, 0.1374901198784e+01, 0.4804209201333e+01, + 0.1039063219067e-07, 0.5171080641327e+01, 0.1550861511662e+02, + 0.8867983926439e-08, 0.8317320304902e+00, 0.3903911373650e+01, + 0.8327495955244e-08, 0.3605591969180e+01, 0.6172869583223e+01, + 0.9243088356133e-08, 0.6114299196843e+01, 0.6267823317922e+01, + 0.9205657357835e-08, 0.3675153683737e+01, 0.6298328382969e+01, + 0.1033269714606e-07, 0.3313328813024e+01, 0.5573142801433e+01, + 0.8001706275552e-08, 0.2019980960053e+01, 0.2648454860559e+01, + 0.9171858254191e-08, 0.8992015524177e+00, 0.1498544001348e+03, + + 0.1075327150242e-07, 0.2898669963648e+01, 0.3694923081589e+02, + 0.9884866689828e-08, 0.4946715904478e+01, 0.1140367694411e+02, + 0.9541835576677e-08, 0.2371787888469e+01, 0.1256713221673e+02, + 0.7739903376237e-08, 0.2213775190612e+01, 0.7834121070590e+01, + 0.7311962684106e-08, 0.3429378787739e+01, 0.1192625446156e+02, + 0.9724904869624e-08, 0.6195878564404e+01, 0.2280573557157e+02, + 0.9251628983612e-08, 0.6511509527390e+00, 0.2787043132925e+01, + 0.7320763787842e-08, 0.6001083639421e+01, 0.6282655592598e+01, + 0.7320296650962e-08, 0.3789073265087e+01, 0.6283496108294e+01, + 0.7947032271039e-08, 0.1059659582204e+01, 0.1241073141809e+02, + + 0.9005277053115e-08, 0.1280315624361e+01, 0.6281591679874e+01, + 0.8995601652048e-08, 0.2224439106766e+01, 0.6284560021018e+01, + 0.8288040568796e-08, 0.5234914433867e+01, 0.1241658836951e+02, + 0.6359381347255e-08, 0.4137989441490e+01, 0.1596186371003e+01, + 0.8699572228626e-08, 0.1758411009497e+01, 0.6133512519065e+01, + 0.6456797542736e-08, 0.5919285089994e+01, 0.1685848245639e+02, + 0.7424573475452e-08, 0.5414616938827e+01, 0.4061219149443e+01, + 0.7235671196168e-08, 0.1496516557134e+01, 0.1610006857377e+03, + 0.8104015182733e-08, 0.1919918242764e+01, 0.8460828644453e+00, + 0.8098576535937e-08, 0.3819615855458e+01, 0.3894181736510e+01, + + 0.6275292346625e-08, 0.6244264115141e+01, 0.8531963191132e+00, + 0.6052432989112e-08, 0.5037731872610e+00, 0.1567108171867e+02, + 0.5705651535817e-08, 0.2984557271995e+01, 0.1258692712880e+02, + 0.5789650115138e-08, 0.6087038140697e+01, 0.1193336791622e+02, + 0.5512132153377e-08, 0.5855668994076e+01, 0.1232342296471e+02, + 0.7388890819102e-08, 0.2443128574740e+01, 0.4907302013889e+01, + 0.5467593991798e-08, 0.3017561234194e+01, 0.1884211409667e+02, + 0.6388519802999e-08, 0.5887386712935e+01, 0.5217580628120e+02, + 0.6106777149944e-08, 0.3483461059895e+00, 0.1422690933580e-01, + 0.7383420275489e-08, 0.5417387056707e+01, 0.2358125818164e+02, + + 0.5505208141738e-08, 0.2848193644783e+01, 0.1151388321134e+02, + 0.6310757462877e-08, 0.2349882520828e+01, 0.1041998632314e+02, + 0.6166904929691e-08, 0.5728575944077e+00, 0.6151533897323e+01, + 0.5263442042754e-08, 0.4495796125937e+01, 0.1885275071096e+02, + 0.5591828082629e-08, 0.1355441967677e+01, 0.4337116142245e+00, + 0.5397051680497e-08, 0.1673422864307e+01, 0.6286362197481e+01, + 0.5396992745159e-08, 0.1833502206373e+01, 0.6279789503410e+01, + 0.6572913000726e-08, 0.3331122065824e+01, 0.1176433076753e+02, + 0.5123421866413e-08, 0.2165327142679e+01, 0.1245594543367e+02, + 0.5930495725999e-08, 0.2931146089284e+01, 0.6414617803568e+01, + + 0.6431797403933e-08, 0.4134407994088e+01, 0.1350651127443e+00, + 0.5003182207604e-08, 0.3805420303749e+01, 0.1096996532989e+02, + 0.5587731032504e-08, 0.1082469260599e+01, 0.6062663316000e+01, + 0.5935263407816e-08, 0.8384333678401e+00, 0.5326786718777e+01, + 0.4756019827760e-08, 0.3552588749309e+01, 0.3104930017775e+01, + 0.6599951172637e-08, 0.4320826409528e+01, 0.4087944051283e+02, + 0.5902606868464e-08, 0.4811879454445e+01, 0.5849364236221e+01, + 0.5921147809031e-08, 0.9942628922396e-01, 0.1581959461667e+01, + 0.5505382581266e-08, 0.2466557607764e+01, 0.6503488384892e+01, + 0.5353771071862e-08, 0.4551978748683e+01, 0.1735668374386e+03, + + 0.5063282210946e-08, 0.5710812312425e+01, 0.1248988586463e+02, + 0.5926120403383e-08, 0.1333998428358e+01, 0.2673594526851e+02, + 0.5211016176149e-08, 0.4649315360760e+01, 0.2460261242967e+02, + 0.5347075084894e-08, 0.5512754081205e+01, 0.4171425416666e+01, + 0.4872609773574e-08, 0.1308025299938e+01, 0.5333900173445e+01, + 0.4727711321420e-08, 0.2144908368062e+01, 0.7232251527446e+01, + 0.6029426018652e-08, 0.5567259412084e+01, 0.3227113045244e+03, + 0.4321485284369e-08, 0.5230667156451e+01, 0.9388005868221e+01, + 0.4476406760553e-08, 0.6134081115303e+01, 0.5547199253223e+01, + 0.5835268277420e-08, 0.4783808492071e+01, 0.7285056171570e+02, + + 0.5172183602748e-08, 0.5161817911099e+01, 0.1884570439172e+02, + 0.5693571465184e-08, 0.1381646203111e+01, 0.9723862754494e+02, + 0.4060634965349e-08, 0.3876705259495e+00, 0.4274518229222e+01, + 0.3967398770473e-08, 0.5029491776223e+01, 0.3496032717521e+01, + 0.3943754005255e-08, 0.1923162955490e+01, 0.6244942932314e+01, + 0.4781323427824e-08, 0.4633332586423e+01, 0.2929661536378e+02, + 0.3871483781204e-08, 0.1616650009743e+01, 0.6321208768577e+01, + 0.5141741733997e-08, 0.9817316704659e-01, 0.1232032006293e+02, + 0.4002385978497e-08, 0.3656161212139e+01, 0.7018952447668e+01, + 0.4901092604097e-08, 0.4404098713092e+01, 0.1478866649112e+01, + + 0.3740932630345e-08, 0.5181188732639e+00, 0.6922973089781e+01, + 0.4387283718538e-08, 0.3254859566869e+01, 0.2331413144044e+03, + 0.5019197802033e-08, 0.3086773224677e+01, 0.1715706182245e+02, + 0.3834931695175e-08, 0.2797882673542e+01, 0.1491901785440e+02, + 0.3760413942497e-08, 0.2892676280217e+01, 0.1726726808967e+02, + 0.3719717204628e-08, 0.5861046025739e+01, 0.6297302759782e+01, + 0.4145623530149e-08, 0.2168239627033e+01, 0.1376059875786e+02, + 0.3932788425380e-08, 0.6271811124181e+01, 0.7872148766781e+01, + 0.3686377476857e-08, 0.3936853151404e+01, 0.6268848941110e+01, + 0.3779077950339e-08, 0.1404148734043e+01, 0.4157198507331e+01, + + 0.4091334550598e-08, 0.2452436180854e+01, 0.9779108567966e+01, + 0.3926694536146e-08, 0.6102292739040e+01, 0.1098419223922e+02, + 0.4841000253289e-08, 0.6072760457276e+01, 0.1252801878276e+02, + 0.4949340130240e-08, 0.1154832815171e+01, 0.1617106187867e+03, + 0.3761557737360e-08, 0.5527545321897e+01, 0.3185192151914e+01, + 0.3647396268188e-08, 0.1525035688629e+01, 0.6271346477544e+01, + 0.3932405074189e-08, 0.5570681040569e+01, 0.2139354194808e+02, + 0.3631322501141e-08, 0.1981240601160e+01, 0.6294805223347e+01, + 0.4130007425139e-08, 0.2050060880201e+01, 0.2195415756911e+02, + 0.4433905965176e-08, 0.3277477970321e+01, 0.7445550607224e+01, + + 0.3851814176947e-08, 0.5210690074886e+01, 0.9562891316684e+00, + 0.3485807052785e-08, 0.6653274904611e+00, 0.1161697602389e+02, + 0.3979772816991e-08, 0.1767941436148e+01, 0.2277943724828e+02, + 0.3402607460500e-08, 0.3421746306465e+01, 0.1087398597200e+02, + 0.4049993000926e-08, 0.1127144787547e+01, 0.3163918923335e+00, + 0.3420511182382e-08, 0.4214794779161e+01, 0.1362553364512e+02, + 0.3640772365012e-08, 0.5324905497687e+01, 0.1725304118033e+02, + 0.3323037987501e-08, 0.6135761838271e+01, 0.6279143387820e+01, + 0.4503141663637e-08, 0.1802305450666e+01, 0.1385561574497e+01, + 0.4314560055588e-08, 0.4812299731574e+01, 0.4176041334900e+01, + + 0.3294226949110e-08, 0.3657547059723e+01, 0.6287008313071e+01, + 0.3215657197281e-08, 0.4866676894425e+01, 0.5749861718712e+01, + 0.4129362656266e-08, 0.3809342558906e+01, 0.5905702259363e+01, + 0.3137762976388e-08, 0.2494635174443e+01, 0.2099539292909e+02, + 0.3514010952384e-08, 0.2699961831678e+01, 0.7335344340001e+01, + 0.3327607571530e-08, 0.3318457714816e+01, 0.5436992986000e+01, + 0.3541066946675e-08, 0.4382703582466e+01, 0.1234573916645e+02, + 0.3216179847052e-08, 0.5271066317054e+01, 0.3802769619140e-01, + 0.2959045059570e-08, 0.5819591585302e+01, 0.2670964694522e+02, + 0.3884040326665e-08, 0.5980934960428e+01, 0.6660449441528e+01, + + 0.2922027539886e-08, 0.3337290282483e+01, 0.1375773836557e+01, + 0.4110846382042e-08, 0.5742978187327e+01, 0.4480965020977e+02, + 0.2934508411032e-08, 0.2278075804200e+01, 0.6408777551755e+00, + 0.3966896193000e-08, 0.5835747858477e+01, 0.3773735910827e+00, + 0.3286695827610e-08, 0.5838898193902e+01, 0.3932462625300e-02, + 0.3720643094196e-08, 0.1122212337858e+01, 0.1646033343740e+02, + 0.3285508906174e-08, 0.9182250996416e+00, 0.1081813534213e+02, + 0.3753880575973e-08, 0.5174761973266e+01, 0.5642198095270e+01, + 0.3022129385587e-08, 0.3381611020639e+01, 0.2982630633589e+02, + 0.2798569205621e-08, 0.3546193723922e+01, 0.1937891852345e+02, + + 0.3397872070505e-08, 0.4533203197934e+01, 0.6923953605621e+01, + 0.3708099772977e-08, 0.2756168198616e+01, 0.3066615496545e+02, + 0.3599283541510e-08, 0.1934395469918e+01, 0.6147450479709e+01, + 0.3688702753059e-08, 0.7149920971109e+00, 0.2636725487657e+01, + 0.2681084724003e-08, 0.4899819493154e+01, 0.6816289982179e+01, + 0.3495993460759e-08, 0.1572418915115e+01, 0.6418701221183e+01, + 0.3130770324995e-08, 0.8912190180489e+00, 0.1235996607578e+02, + 0.2744353821941e-08, 0.3800821940055e+01, 0.2059724391010e+02, + 0.2842732906341e-08, 0.2644717440029e+01, 0.2828699048865e+02, + 0.3046882682154e-08, 0.3987793020179e+01, 0.6055599646783e+01, + + 0.2399072455143e-08, 0.9908826440764e+00, 0.6255674361143e+01, + 0.2384306274204e-08, 0.2516149752220e+01, 0.6310477339748e+01, + 0.2977324500559e-08, 0.5849195642118e+01, 0.1652265972112e+02, + 0.3062835258972e-08, 0.1681660100162e+01, 0.1172006883645e+02, + 0.3109682589231e-08, 0.5804143987737e+00, 0.2751146787858e+02, + 0.2903920355299e-08, 0.5800768280123e+01, 0.6510552054109e+01, + 0.2823221989212e-08, 0.9241118370216e+00, 0.5469525544182e+01, + 0.3187949696649e-08, 0.3139776445735e+01, 0.1693792562116e+03, + 0.2922559771655e-08, 0.3549440782984e+01, 0.2630839062450e+00, + 0.2436302066603e-08, 0.4735540696319e+01, 0.3946258593675e+00, + + 0.3049473043606e-08, 0.4998289124561e+01, 0.8390110365991e+01, + 0.2863682575784e-08, 0.6709515671102e+00, 0.2243449970715e+00, + 0.2641750517966e-08, 0.5410978257284e+01, 0.2986433403208e+02, + 0.2704093466243e-08, 0.4778317207821e+01, 0.6129297044991e+01, + 0.2445522177011e-08, 0.6009020662222e+01, 0.1171295538178e+02, + 0.2623608810230e-08, 0.5010449777147e+01, 0.6436854655901e+01, + 0.2079259704053e-08, 0.5980943768809e+01, 0.2019909489111e+02, + 0.2820225596771e-08, 0.2679965110468e+01, 0.5934151399930e+01, + 0.2365221950927e-08, 0.1894231148810e+01, 0.2470570524223e+02, + 0.2359682077149e-08, 0.4220752950780e+01, 0.8671969964381e+01, + + 0.2387577137206e-08, 0.2571783940617e+01, 0.7096626156709e+01, + 0.1982102089816e-08, 0.5169765997119e+00, 0.1727188400790e+02, + 0.2687502389925e-08, 0.6239078264579e+01, 0.7075506709219e+02, + 0.2207751669135e-08, 0.2031184412677e+01, 0.4377611041777e+01, + 0.2618370214274e-08, 0.8266079985979e+00, 0.6632000300961e+01, + 0.2591951887361e-08, 0.8819350522008e+00, 0.4873985990671e+02, + 0.2375055656248e-08, 0.3520944177789e+01, 0.1590676413561e+02, + 0.2472019978911e-08, 0.1551431908671e+01, 0.6612329252343e+00, + 0.2368157127199e-08, 0.4178610147412e+01, 0.3459636466239e+02, + 0.1764846605693e-08, 0.1506764000157e+01, 0.1980094587212e+02, + + 0.2291769608798e-08, 0.2118250611782e+01, 0.2844914056730e-01, + 0.2209997316943e-08, 0.3363255261678e+01, 0.2666070658668e+00, + 0.2292699097923e-08, 0.4200423956460e+00, 0.1484170571900e-02, + 0.1629683015329e-08, 0.2331362582487e+01, 0.3035599730800e+02, + 0.2206492862426e-08, 0.3400274026992e+01, 0.6281667977667e+01, + 0.2205746568257e-08, 0.1066051230724e+00, 0.6284483723224e+01, + 0.2026310767991e-08, 0.2779066487979e+01, 0.2449240616245e+02, + 0.1762977622163e-08, 0.9951450691840e+00, 0.2045286941806e+02, + 0.1368535049606e-08, 0.6402447365817e+00, 0.2473415438279e+02, + 0.1720598775450e-08, 0.2303524214705e+00, 0.1679593901136e+03, + + 0.1702429015449e-08, 0.6164622655048e+01, 0.3338575901272e+03, + 0.1414033197685e-08, 0.3954561185580e+01, 0.1624205518357e+03, + 0.1573768958043e-08, 0.2028286308984e+01, 0.3144167757552e+02, + 0.1650705184447e-08, 0.2304040666128e+01, 0.5267006960365e+02, + 0.1651087618855e-08, 0.2538461057280e+01, 0.8956999012000e+02, + 0.1616409518983e-08, 0.5111054348152e+01, 0.3332657872986e+02, + 0.1537175173581e-08, 0.5601130666603e+01, 0.3852657435933e+02, + 0.1593191980553e-08, 0.2614340453411e+01, 0.2282781046519e+03, + 0.1499480170643e-08, 0.3624721577264e+01, 0.2823723341956e+02, + 0.1493807843235e-08, 0.4214569879008e+01, 0.2876692439167e+02, + + 0.1074571199328e-08, 0.1496911744704e+00, 0.8397383534231e+02, + 0.1074406983417e-08, 0.1187817671922e+01, 0.8401985929482e+02, + 0.9757576855851e-09, 0.2655703035858e+01, 0.7826370942180e+02, + 0.1258432887565e-08, 0.4969896184844e+01, 0.3115650189215e+03, + 0.1240336343282e-08, 0.5192460776926e+01, 0.1784300471910e+03, + 0.9016107005164e-09, 0.1960356923057e+01, 0.5886454391678e+02, + 0.1135392360918e-08, 0.5082427809068e+01, 0.7842370451713e+02, + 0.9216046089565e-09, 0.2793775037273e+01, 0.1014262087719e+03, + 0.1061276615030e-08, 0.3726144311409e+01, 0.5660027930059e+02, + 0.1010110596263e-08, 0.7404080708937e+00, 0.4245678405627e+02, + + 0.7217424756199e-09, 0.2697449980577e-01, 0.2457074661053e+03, + 0.6912003846756e-09, 0.4253296276335e+01, 0.1679936946371e+03, + 0.6871814664847e-09, 0.5148072412354e+01, 0.6053048899753e+02, + 0.4887158016343e-09, 0.2153581148294e+01, 0.9656299901946e+02, + 0.5161802866314e-09, 0.3852750634351e+01, 0.2442876000072e+03, + 0.5652599559057e-09, 0.1233233356270e+01, 0.8365903305582e+02, + 0.4710812608586e-09, 0.5610486976767e+01, 0.3164282286739e+03, + 0.4909977500324e-09, 0.1639629524123e+01, 0.4059982187939e+03, + 0.4772641839378e-09, 0.3737100368583e+01, 0.1805255418145e+03, + 0.4487562567153e-09, 0.1158417054478e+00, 0.8433466158131e+02, + + 0.3943441230497e-09, 0.6243502862796e+00, 0.2568537517081e+03, + 0.3952236913598e-09, 0.3510377382385e+01, 0.2449975330562e+03, + 0.3788898363417e-09, 0.5916128302299e+01, 0.1568131045107e+03, + 0.3738329328831e-09, 0.1042266763456e+01, 0.3948519331910e+03, + 0.2451199165151e-09, 0.1166788435700e+01, 0.1435713242844e+03, + 0.2436734402904e-09, 0.3254726114901e+01, 0.2268582385539e+03, + 0.2213605274325e-09, 0.1687210598530e+01, 0.1658638954901e+03, + 0.1491521204829e-09, 0.2657541786794e+01, 0.2219950288015e+03, + 0.1474995329744e-09, 0.5013089805819e+01, 0.3052819430710e+03, + 0.1661939475656e-09, 0.5495315428418e+01, 0.2526661704812e+03, + + 0.9015946748003e-10, 0.2236989966505e+01, 0.4171445043968e+03 }; + +/* Sun-to-Earth, T^0, Z */ + static const double e0z[] = { + 0.2796207639075e-05, 0.3198701560209e+01, 0.8433466158131e+02, + 0.1016042198142e-05, 0.5422360395913e+01, 0.5507553240374e+01, + 0.8044305033647e-06, 0.3880222866652e+01, 0.5223693906222e+01, + 0.4385347909274e-06, 0.3704369937468e+01, 0.2352866153506e+01, + 0.3186156414906e-06, 0.3999639363235e+01, 0.1577343543434e+01, + 0.2272412285792e-06, 0.3984738315952e+01, 0.1047747311755e+01, + 0.1645620103007e-06, 0.3565412516841e+01, 0.5856477690889e+01, + 0.1815836921166e-06, 0.4984507059020e+01, 0.6283075850446e+01, + 0.1447461676364e-06, 0.3702753570108e+01, 0.9437762937313e+01, + 0.1430760876382e-06, 0.3409658712357e+01, 0.1021328554739e+02, + + 0.1120445753226e-06, 0.4829561570246e+01, 0.1414349524433e+02, + 0.1090232840797e-06, 0.2080729178066e+01, 0.6812766822558e+01, + 0.9715727346551e-07, 0.3476295881948e+01, 0.4694002934110e+01, + 0.1036267136217e-06, 0.4056639536648e+01, 0.7109288135493e+02, + 0.8752665271340e-07, 0.4448159519911e+01, 0.5753384878334e+01, + 0.8331864956004e-07, 0.4991704044208e+01, 0.7084896783808e+01, + 0.6901658670245e-07, 0.4325358994219e+01, 0.6275962395778e+01, + 0.9144536848998e-07, 0.1141826375363e+01, 0.6620890113188e+01, + 0.7205085037435e-07, 0.3624344170143e+01, 0.5296909721118e+00, + 0.7697874654176e-07, 0.5554257458998e+01, 0.1676215758509e+03, + + 0.5197545738384e-07, 0.6251760961735e+01, 0.1807370494127e+02, + 0.5031345378608e-07, 0.2497341091913e+01, 0.4705732307012e+01, + 0.4527110205840e-07, 0.2335079920992e+01, 0.6309374173736e+01, + 0.4753355798089e-07, 0.7094148987474e+00, 0.5884926831456e+01, + 0.4296951977516e-07, 0.1101916352091e+01, 0.6681224869435e+01, + 0.3855341568387e-07, 0.1825495405486e+01, 0.5486777812467e+01, + 0.5253930970990e-07, 0.4424740687208e+01, 0.7860419393880e+01, + 0.4024630496471e-07, 0.5120498157053e+01, 0.1336797263425e+02, + 0.4061069791453e-07, 0.6029771435451e+01, 0.3930209696940e+01, + 0.3797883804205e-07, 0.4435193600836e+00, 0.3154687086868e+01, + + 0.2933033225587e-07, 0.5124157356507e+01, 0.1059381944224e+01, + 0.3503000930426e-07, 0.5421830162065e+01, 0.6069776770667e+01, + 0.3670096214050e-07, 0.4582101667297e+01, 0.1219403291462e+02, + 0.2905609437008e-07, 0.1926566420072e+01, 0.1097707878456e+02, + 0.2466827821713e-07, 0.6090174539834e+00, 0.6496374930224e+01, + 0.2691647295332e-07, 0.1393432595077e+01, 0.2200391463820e+02, + 0.2150554667946e-07, 0.4308671715951e+01, 0.5643178611111e+01, + 0.2237481922680e-07, 0.8133968269414e+00, 0.8635942003952e+01, + 0.1817741038157e-07, 0.3755205127454e+01, 0.3340612434717e+01, + 0.2227820762132e-07, 0.2759558596664e+01, 0.1203646072878e+02, + + 0.1944713772307e-07, 0.5699645869121e+01, 0.1179062909082e+02, + 0.1527340520662e-07, 0.1986749091746e+01, 0.3981490189893e+00, + 0.1577282574914e-07, 0.3205017217983e+01, 0.5088628793478e+01, + 0.1424738825424e-07, 0.6256747903666e+01, 0.2544314396739e+01, + 0.1616563121701e-07, 0.2601671259394e+00, 0.1729818233119e+02, + 0.1401210391692e-07, 0.4686939173506e+01, 0.7058598460518e+01, + 0.1488726974214e-07, 0.2815862451372e+01, 0.2593412433514e+02, + 0.1692626442388e-07, 0.4956894109797e+01, 0.1564752902480e+03, + 0.1123571582910e-07, 0.2381192697696e+01, 0.3738761453707e+01, + 0.9903308606317e-08, 0.4294851657684e+01, 0.9225539266174e+01, + + 0.9174533187191e-08, 0.3075171510642e+01, 0.4164311961999e+01, + 0.8645985631457e-08, 0.5477534821633e+00, 0.8429241228195e+01, + -0.1085876492688e-07, 0.0000000000000e+00, 0.0000000000000e+00, + 0.9264309077815e-08, 0.5968571670097e+01, 0.7079373888424e+01, + 0.8243116984954e-08, 0.1489098777643e+01, 0.1044738781244e+02, + 0.8268102113708e-08, 0.3512977691983e+01, 0.1150676975667e+02, + 0.9043613988227e-08, 0.1290704408221e+00, 0.1101510648075e+02, + 0.7432912038789e-08, 0.1991086893337e+01, 0.2608790314060e+02, + 0.8586233727285e-08, 0.4238357924414e+01, 0.2986433403208e+02, + 0.7612230060131e-08, 0.2911090150166e+01, 0.4732030630302e+01, + + 0.7097787751408e-08, 0.1908938392390e+01, 0.8031092209206e+01, + 0.7640237040175e-08, 0.6129219000168e+00, 0.7962980379786e+00, + 0.7070445688081e-08, 0.1380417036651e+01, 0.2146165377750e+01, + 0.7690770957702e-08, 0.1680504249084e+01, 0.2122839202813e+02, + 0.8051292542594e-08, 0.5127423484511e+01, 0.2942463415728e+01, + 0.5902709104515e-08, 0.2020274190917e+01, 0.7755226100720e+00, + 0.5134567496462e-08, 0.2606778676418e+01, 0.1256615170089e+02, + 0.5525802046102e-08, 0.1613011769663e+01, 0.8018209333619e+00, + 0.5880724784221e-08, 0.4604483417236e+01, 0.4690479774488e+01, + 0.5211699081370e-08, 0.5718964114193e+01, 0.8827390247185e+01, + + 0.4891849573562e-08, 0.3689658932196e+01, 0.2132990797783e+00, + 0.5150246069997e-08, 0.4099769855122e+01, 0.6480980550449e+02, + 0.5102434319633e-08, 0.5660834602509e+01, 0.3379454372902e+02, + 0.5083405254252e-08, 0.9842221218974e+00, 0.4136910472696e+01, + 0.4206562585682e-08, 0.1341363634163e+00, 0.3128388763578e+01, + 0.4663249683579e-08, 0.8130132735866e+00, 0.5216580451554e+01, + 0.4099474416530e-08, 0.5791497770644e+01, 0.4265981595566e+00, + 0.4628251220767e-08, 0.1249802769331e+01, 0.1572083878776e+02, + 0.5024068728142e-08, 0.4795684802743e+01, 0.6290189305114e+01, + 0.5120234327758e-08, 0.3810420387208e+01, 0.5230807360890e+01, + + 0.5524029815280e-08, 0.1029264714351e+01, 0.2397622045175e+03, + 0.4757415718860e-08, 0.3528044781779e+01, 0.1649636139783e+02, + 0.3915786131127e-08, 0.5593889282646e+01, 0.1589072916335e+01, + 0.4869053149991e-08, 0.3299636454433e+01, 0.7632943190217e+01, + 0.3649365703729e-08, 0.1286049002584e+01, 0.6206810014183e+01, + 0.3992493949002e-08, 0.3100307589464e+01, 0.2515860172507e+02, + 0.3320247477418e-08, 0.6212683940807e+01, 0.1216800268190e+02, + 0.3287123739696e-08, 0.4699118445928e+01, 0.7234794171227e+01, + 0.3472776811103e-08, 0.2630507142004e+01, 0.7342457794669e+01, + 0.3423253294767e-08, 0.2946432844305e+01, 0.9623688285163e+01, + + 0.3896173898244e-08, 0.1224834179264e+01, 0.6438496133249e+01, + 0.3388455337924e-08, 0.1543807616351e+01, 0.1494531617769e+02, + 0.3062704716523e-08, 0.1191777572310e+01, 0.8662240327241e+01, + 0.3270075600400e-08, 0.5483498767737e+01, 0.1194447056968e+01, + 0.3101209215259e-08, 0.8000833804348e+00, 0.3772475342596e+02, + 0.2780883347311e-08, 0.4077980721888e+00, 0.5863591145557e+01, + 0.2903605931824e-08, 0.2617490302147e+01, 0.1965104848470e+02, + 0.2682014743119e-08, 0.2634703158290e+01, 0.7238675589263e+01, + 0.2534360108492e-08, 0.6102446114873e+01, 0.6836645152238e+01, + 0.2392564882509e-08, 0.3681820208691e+01, 0.5849364236221e+01, + + 0.2656667254856e-08, 0.6216045388886e+01, 0.6133512519065e+01, + 0.2331242096773e-08, 0.5864949777744e+01, 0.4535059491685e+01, + 0.2287898363668e-08, 0.4566628532802e+01, 0.7477522907414e+01, + 0.2336944521306e-08, 0.2442722126930e+01, 0.1137170464392e+02, + 0.3156632236269e-08, 0.1626628050682e+01, 0.2509084901204e+03, + 0.2982612402766e-08, 0.2803604512609e+01, 0.1748016358760e+01, + 0.2774031674807e-08, 0.4654002897158e+01, 0.8223916695780e+02, + 0.2295236548638e-08, 0.4326518333253e+01, 0.3378142627421e+00, + 0.2190714699873e-08, 0.4519614578328e+01, 0.2908881142201e+02, + 0.2191495845045e-08, 0.3012626912549e+01, 0.1673046366289e+02, + + 0.2492901628386e-08, 0.1290101424052e+00, 0.1543797956245e+03, + 0.1993778064319e-08, 0.3864046799414e+01, 0.1778984560711e+02, + 0.1898146479022e-08, 0.5053777235891e+01, 0.2042657109477e+02, + 0.1918280127634e-08, 0.2222470192548e+01, 0.4165496312290e+02, + 0.1916351061607e-08, 0.8719067257774e+00, 0.7737595720538e+02, + 0.1834720181466e-08, 0.4031491098040e+01, 0.2358125818164e+02, + 0.1249201523806e-08, 0.5938379466835e+01, 0.3301902111895e+02, + 0.1477304050539e-08, 0.6544722606797e+00, 0.9548094718417e+02, + 0.1264316431249e-08, 0.2059072853236e+01, 0.8399684731857e+02, + 0.1203526495039e-08, 0.3644813532605e+01, 0.4558517281984e+02, + + 0.9221681059831e-09, 0.3241815055602e+01, 0.7805158573086e+02, + 0.7849278367646e-09, 0.5043812342457e+01, 0.5217580628120e+02, + 0.7983392077387e-09, 0.5000024502753e+01, 0.1501922143975e+03, + 0.7925395431654e-09, 0.1398734871821e-01, 0.9061773743175e+02, + 0.7640473285886e-09, 0.5067111723130e+01, 0.4951538251678e+02, + 0.5398937754482e-09, 0.5597382200075e+01, 0.1613385000004e+03, + 0.5626247550193e-09, 0.2601338209422e+01, 0.7318837597844e+02, + 0.5525197197855e-09, 0.5814832109256e+01, 0.1432335100216e+03, + 0.5407629837898e-09, 0.3384820609076e+01, 0.3230491187871e+03, + 0.3856739119801e-09, 0.1072391840473e+01, 0.2334791286671e+03, + + 0.3856425239987e-09, 0.2369540393327e+01, 0.1739046517013e+03, + 0.4350867755983e-09, 0.5255575751082e+01, 0.1620484330494e+03, + 0.3844113924996e-09, 0.5482356246182e+01, 0.9757644180768e+02, + 0.2854869155431e-09, 0.9573634763143e+00, 0.1697170704744e+03, + 0.1719227671416e-09, 0.1887203025202e+01, 0.2265204242912e+03, + 0.1527846879755e-09, 0.3982183931157e+01, 0.3341954043900e+03, + 0.1128229264847e-09, 0.2787457156298e+01, 0.3119028331842e+03 }; + +/* Sun-to-Earth, T^1, X */ + static const double e1x[] = { + 0.1234046326004e-05, 0.0000000000000e+00, 0.0000000000000e+00, + 0.5150068824701e-06, 0.6002664557501e+01, 0.1256615170089e+02, + 0.1290743923245e-07, 0.5959437664199e+01, 0.1884922755134e+02, + 0.1068615564952e-07, 0.2015529654209e+01, 0.6283075850446e+01, + 0.2079619142538e-08, 0.1732960531432e+01, 0.6279552690824e+01, + 0.2078009243969e-08, 0.4915604476996e+01, 0.6286599010068e+01, + 0.6206330058856e-09, 0.3616457953824e+00, 0.4705732307012e+01, + 0.5989335313746e-09, 0.3802607304474e+01, 0.6256777527156e+01, + 0.5958495663840e-09, 0.2845866560031e+01, 0.6309374173736e+01, + 0.4866923261539e-09, 0.5213203771824e+01, 0.7755226100720e+00, + + 0.4267785823142e-09, 0.4368189727818e+00, 0.1059381944224e+01, + 0.4610675141648e-09, 0.1837249181372e-01, 0.7860419393880e+01, + 0.3626989993973e-09, 0.2161590545326e+01, 0.5753384878334e+01, + 0.3563071194389e-09, 0.1452631954746e+01, 0.5884926831456e+01, + 0.3557015642807e-09, 0.4470593393054e+01, 0.6812766822558e+01, + 0.3210412089122e-09, 0.5195926078314e+01, 0.6681224869435e+01, + 0.2875473577986e-09, 0.5916256610193e+01, 0.2513230340178e+02, + 0.2842913681629e-09, 0.1149902426047e+01, 0.6127655567643e+01, + 0.2751248215916e-09, 0.5502088574662e+01, 0.6438496133249e+01, + 0.2481432881127e-09, 0.2921989846637e+01, 0.5486777812467e+01, + + 0.2059885976560e-09, 0.3718070376585e+01, 0.7079373888424e+01, + 0.2015522342591e-09, 0.5979395259740e+01, 0.6290189305114e+01, + 0.1995364084253e-09, 0.6772087985494e+00, 0.6275962395778e+01, + 0.1957436436943e-09, 0.2899210654665e+01, 0.5507553240374e+01, + 0.1651609818948e-09, 0.6228206482192e+01, 0.1150676975667e+02, + 0.1822980550699e-09, 0.1469348746179e+01, 0.1179062909082e+02, + 0.1675223159760e-09, 0.3813910555688e+01, 0.7058598460518e+01, + 0.1706491764745e-09, 0.3004380506684e+00, 0.7113454667900e-02, + 0.1392952362615e-09, 0.1440393973406e+01, 0.7962980379786e+00, + 0.1209868266342e-09, 0.4150425791727e+01, 0.4694002934110e+01, + + 0.1009827202611e-09, 0.3290040429843e+01, 0.3738761453707e+01, + 0.1047261388602e-09, 0.4229590090227e+01, 0.6282095334605e+01, + 0.1047006652004e-09, 0.2418967680575e+01, 0.6284056366286e+01, + 0.9609993143095e-10, 0.4627943659201e+01, 0.6069776770667e+01, + 0.9590900593873e-10, 0.1894393939924e+01, 0.4136910472696e+01, + 0.9146249188071e-10, 0.2010647519562e+01, 0.6496374930224e+01, + 0.8545274480290e-10, 0.5529846956226e-01, 0.1194447056968e+01, + 0.8224377881194e-10, 0.1254304102174e+01, 0.1589072916335e+01, + 0.6183529510410e-10, 0.3360862168815e+01, 0.8827390247185e+01, + 0.6259255147141e-10, 0.4755628243179e+01, 0.8429241228195e+01, + + 0.5539291694151e-10, 0.5371746955142e+01, 0.4933208510675e+01, + 0.7328259466314e-10, 0.4927699613906e+00, 0.4535059491685e+01, + 0.6017835843560e-10, 0.5776682001734e-01, 0.1255903824622e+02, + 0.7079827775243e-10, 0.4395059432251e+01, 0.5088628793478e+01, + 0.5170358878213e-10, 0.5154062619954e+01, 0.1176985366291e+02, + 0.4872301838682e-10, 0.6289611648973e+00, 0.6040347114260e+01, + 0.5249869411058e-10, 0.5617272046949e+01, 0.3154687086868e+01, + 0.4716172354411e-10, 0.3965901800877e+01, 0.5331357529664e+01, + 0.4871214940964e-10, 0.4627507050093e+01, 0.1256967486051e+02, + 0.4598076850751e-10, 0.6023631226459e+01, 0.6525804586632e+01, + + 0.4562196089485e-10, 0.4138562084068e+01, 0.3930209696940e+01, + 0.4325493872224e-10, 0.1330845906564e+01, 0.7632943190217e+01, + 0.5673781176748e-10, 0.2558752615657e+01, 0.5729506548653e+01, + 0.3961436642503e-10, 0.2728071734630e+01, 0.7234794171227e+01, + 0.5101868209058e-10, 0.4113444965144e+01, 0.6836645152238e+01, + 0.5257043167676e-10, 0.6195089830590e+01, 0.8031092209206e+01, + 0.5076613989393e-10, 0.2305124132918e+01, 0.7477522907414e+01, + 0.3342169352778e-10, 0.5415998155071e+01, 0.1097707878456e+02, + 0.3545881983591e-10, 0.3727160564574e+01, 0.4164311961999e+01, + 0.3364063738599e-10, 0.2901121049204e+00, 0.1137170464392e+02, + + 0.3357039670776e-10, 0.1652229354331e+01, 0.5223693906222e+01, + 0.4307412268687e-10, 0.4938909587445e+01, 0.1592596075957e+01, + 0.3405769115435e-10, 0.2408890766511e+01, 0.3128388763578e+01, + 0.3001926198480e-10, 0.4862239006386e+01, 0.1748016358760e+01, + 0.2778264787325e-10, 0.5241168661353e+01, 0.7342457794669e+01, + 0.2676159480666e-10, 0.3423593942199e+01, 0.2146165377750e+01, + 0.2954273399939e-10, 0.1881721265406e+01, 0.5368044267797e+00, + 0.3309362888795e-10, 0.1931525677349e+01, 0.8018209333619e+00, + 0.2810283608438e-10, 0.2414659495050e+01, 0.5225775174439e+00, + 0.3378045637764e-10, 0.4238019163430e+01, 0.1554202828031e+00, + + 0.2558134979840e-10, 0.1828225235805e+01, 0.5230807360890e+01, + 0.2273755578447e-10, 0.5858184283998e+01, 0.7084896783808e+01, + 0.2294176037690e-10, 0.4514589779057e+01, 0.1726015463500e+02, + 0.2533506099435e-10, 0.2355717851551e+01, 0.5216580451554e+01, + 0.2716685375812e-10, 0.2221003625100e+01, 0.8635942003952e+01, + 0.2419043435198e-10, 0.5955704951635e+01, 0.4690479774488e+01, + 0.2521232544812e-10, 0.1395676848521e+01, 0.5481254917084e+01, + 0.2630195021491e-10, 0.5727468918743e+01, 0.2629832328990e-01, + 0.2548395840944e-10, 0.2628351859400e-03, 0.1349867339771e+01 }; + +/* Sun-to-Earth, T^1, Y */ + static const double e1y[] = { + 0.9304690546528e-06, 0.0000000000000e+00, 0.0000000000000e+00, + 0.5150715570663e-06, 0.4431807116294e+01, 0.1256615170089e+02, + 0.1290825411056e-07, 0.4388610039678e+01, 0.1884922755134e+02, + 0.4645466665386e-08, 0.5827263376034e+01, 0.6283075850446e+01, + 0.2079625310718e-08, 0.1621698662282e+00, 0.6279552690824e+01, + 0.2078189850907e-08, 0.3344713435140e+01, 0.6286599010068e+01, + 0.6207190138027e-09, 0.5074049319576e+01, 0.4705732307012e+01, + 0.5989826532569e-09, 0.2231842216620e+01, 0.6256777527156e+01, + 0.5961360812618e-09, 0.1274975769045e+01, 0.6309374173736e+01, + 0.4874165471016e-09, 0.3642277426779e+01, 0.7755226100720e+00, + + 0.4283834034360e-09, 0.5148765510106e+01, 0.1059381944224e+01, + 0.4652389287529e-09, 0.4715794792175e+01, 0.7860419393880e+01, + 0.3751707476401e-09, 0.6617207370325e+00, 0.5753384878334e+01, + 0.3559998806198e-09, 0.6155548875404e+01, 0.5884926831456e+01, + 0.3558447558857e-09, 0.2898827297664e+01, 0.6812766822558e+01, + 0.3211116927106e-09, 0.3625813502509e+01, 0.6681224869435e+01, + 0.2875609914672e-09, 0.4345435813134e+01, 0.2513230340178e+02, + 0.2843109704069e-09, 0.5862263940038e+01, 0.6127655567643e+01, + 0.2744676468427e-09, 0.3926419475089e+01, 0.6438496133249e+01, + 0.2481285237789e-09, 0.1351976572828e+01, 0.5486777812467e+01, + + 0.2060338481033e-09, 0.2147556998591e+01, 0.7079373888424e+01, + 0.2015822358331e-09, 0.4408358972216e+01, 0.6290189305114e+01, + 0.2001195944195e-09, 0.5385829822531e+01, 0.6275962395778e+01, + 0.1953667642377e-09, 0.1304933746120e+01, 0.5507553240374e+01, + 0.1839744078713e-09, 0.6173567228835e+01, 0.1179062909082e+02, + 0.1643334294845e-09, 0.4635942997523e+01, 0.1150676975667e+02, + 0.1768051018652e-09, 0.5086283558874e+01, 0.7113454667900e-02, + 0.1674874205489e-09, 0.2243332137241e+01, 0.7058598460518e+01, + 0.1421445397609e-09, 0.6186899771515e+01, 0.7962980379786e+00, + 0.1255163958267e-09, 0.5730238465658e+01, 0.4694002934110e+01, + + 0.1013945281961e-09, 0.1726055228402e+01, 0.3738761453707e+01, + 0.1047294335852e-09, 0.2658801228129e+01, 0.6282095334605e+01, + 0.1047103879392e-09, 0.8481047835035e+00, 0.6284056366286e+01, + 0.9530343962826e-10, 0.3079267149859e+01, 0.6069776770667e+01, + 0.9604637611690e-10, 0.3258679792918e+00, 0.4136910472696e+01, + 0.9153518537177e-10, 0.4398599886584e+00, 0.6496374930224e+01, + 0.8562458214922e-10, 0.4772686794145e+01, 0.1194447056968e+01, + 0.8232525360654e-10, 0.5966220721679e+01, 0.1589072916335e+01, + 0.6150223411438e-10, 0.1780985591923e+01, 0.8827390247185e+01, + 0.6272087858000e-10, 0.3184305429012e+01, 0.8429241228195e+01, + + 0.5540476311040e-10, 0.3801260595433e+01, 0.4933208510675e+01, + 0.7331901699361e-10, 0.5205948591865e+01, 0.4535059491685e+01, + 0.6018528702791e-10, 0.4770139083623e+01, 0.1255903824622e+02, + 0.5150530724804e-10, 0.3574796899585e+01, 0.1176985366291e+02, + 0.6471933741811e-10, 0.2679787266521e+01, 0.5088628793478e+01, + 0.5317460644174e-10, 0.9528763345494e+00, 0.3154687086868e+01, + 0.4832187748783e-10, 0.5329322498232e+01, 0.6040347114260e+01, + 0.4716763555110e-10, 0.2395235316466e+01, 0.5331357529664e+01, + 0.4871509139861e-10, 0.3056663648823e+01, 0.1256967486051e+02, + 0.4598417696768e-10, 0.4452762609019e+01, 0.6525804586632e+01, + + 0.5674189533175e-10, 0.9879680872193e+00, 0.5729506548653e+01, + 0.4073560328195e-10, 0.5939127696986e+01, 0.7632943190217e+01, + 0.5040994945359e-10, 0.4549875824510e+01, 0.8031092209206e+01, + 0.5078185134679e-10, 0.7346659893982e+00, 0.7477522907414e+01, + 0.3769343537061e-10, 0.1071317188367e+01, 0.7234794171227e+01, + 0.4980331365299e-10, 0.2500345341784e+01, 0.6836645152238e+01, + 0.3458236594757e-10, 0.3825159450711e+01, 0.1097707878456e+02, + 0.3578859493602e-10, 0.5299664791549e+01, 0.4164311961999e+01, + 0.3370504646419e-10, 0.5002316301593e+01, 0.1137170464392e+02, + 0.3299873338428e-10, 0.2526123275282e+01, 0.3930209696940e+01, + + 0.4304917318409e-10, 0.3368078557132e+01, 0.1592596075957e+01, + 0.3402418753455e-10, 0.8385495425800e+00, 0.3128388763578e+01, + 0.2778460572146e-10, 0.3669905203240e+01, 0.7342457794669e+01, + 0.2782710128902e-10, 0.2691664812170e+00, 0.1748016358760e+01, + 0.2711725179646e-10, 0.4707487217718e+01, 0.5296909721118e+00, + 0.2981760946340e-10, 0.3190260867816e+00, 0.5368044267797e+00, + 0.2811672977772e-10, 0.3196532315372e+01, 0.7084896783808e+01, + 0.2863454474467e-10, 0.2263240324780e+00, 0.5223693906222e+01, + 0.3333464634051e-10, 0.3498451685065e+01, 0.8018209333619e+00, + 0.3312991747609e-10, 0.5839154477412e+01, 0.1554202828031e+00, + + 0.2813255564006e-10, 0.8268044346621e+00, 0.5225775174439e+00, + 0.2665098083966e-10, 0.3934021725360e+01, 0.5216580451554e+01, + 0.2349795705216e-10, 0.5197620913779e+01, 0.2146165377750e+01, + 0.2330352293961e-10, 0.2984999231807e+01, 0.1726015463500e+02, + 0.2728001683419e-10, 0.6521679638544e+00, 0.8635942003952e+01, + 0.2484061007669e-10, 0.3468955561097e+01, 0.5230807360890e+01, + 0.2646328768427e-10, 0.1013724533516e+01, 0.2629832328990e-01, + 0.2518630264831e-10, 0.6108081057122e+01, 0.5481254917084e+01, + 0.2421901455384e-10, 0.1651097776260e+01, 0.1349867339771e+01, + 0.6348533267831e-11, 0.3220226560321e+01, 0.8433466158131e+02 }; + +/* Sun-to-Earth, T^1, Z */ + static const double e1z[] = { + 0.2278290449966e-05, 0.3413716033863e+01, 0.6283075850446e+01, + 0.5429458209830e-07, 0.0000000000000e+00, 0.0000000000000e+00, + 0.1903240492525e-07, 0.3370592358297e+01, 0.1256615170089e+02, + 0.2385409276743e-09, 0.3327914718416e+01, 0.1884922755134e+02, + 0.8676928342573e-10, 0.1824006811264e+01, 0.5223693906222e+01, + 0.7765442593544e-10, 0.3888564279247e+01, 0.5507553240374e+01, + 0.7066158332715e-10, 0.5194267231944e+01, 0.2352866153506e+01, + 0.7092175288657e-10, 0.2333246960021e+01, 0.8399684731857e+02, + 0.5357582213535e-10, 0.2224031176619e+01, 0.5296909721118e+00, + 0.3828035865021e-10, 0.2156710933584e+01, 0.6279552690824e+01, + + 0.3824857220427e-10, 0.1529755219915e+01, 0.6286599010068e+01, + 0.3286995181628e-10, 0.4879512900483e+01, 0.1021328554739e+02 }; + +/* Sun-to-Earth, T^2, X */ + static const double e2x[] = { + -0.4143818297913e-10, 0.0000000000000e+00, 0.0000000000000e+00, + 0.2171497694435e-10, 0.4398225628264e+01, 0.1256615170089e+02, + 0.9845398442516e-11, 0.2079720838384e+00, 0.6283075850446e+01, + 0.9256833552682e-12, 0.4191264694361e+01, 0.1884922755134e+02, + 0.1022049384115e-12, 0.5381133195658e+01, 0.8399684731857e+02 }; + +/* Sun-to-Earth, T^2, Y */ + static const double e2y[] = { + 0.5063375872532e-10, 0.0000000000000e+00, 0.0000000000000e+00, + 0.2173815785980e-10, 0.2827805833053e+01, 0.1256615170089e+02, + 0.1010231999920e-10, 0.4634612377133e+01, 0.6283075850446e+01, + 0.9259745317636e-12, 0.2620612076189e+01, 0.1884922755134e+02, + 0.1022202095812e-12, 0.3809562326066e+01, 0.8399684731857e+02 }; + +/* Sun-to-Earth, T^2, Z */ + static const double e2z[] = { + 0.9722666114891e-10, 0.5152219582658e+01, 0.6283075850446e+01, + -0.3494819171909e-11, 0.0000000000000e+00, 0.0000000000000e+00, + 0.6713034376076e-12, 0.6440188750495e+00, 0.1256615170089e+02 }; + +/* SSB-to-Sun, T^0, X */ + static const double s0x[] = { + 0.4956757536410e-02, 0.3741073751789e+01, 0.5296909721118e+00, + 0.2718490072522e-02, 0.4016011511425e+01, 0.2132990797783e+00, + 0.1546493974344e-02, 0.2170528330642e+01, 0.3813291813120e-01, + 0.8366855276341e-03, 0.2339614075294e+01, 0.7478166569050e-01, + 0.2936777942117e-03, 0.0000000000000e+00, 0.0000000000000e+00, + 0.1201317439469e-03, 0.4090736353305e+01, 0.1059381944224e+01, + 0.7578550887230e-04, 0.3241518088140e+01, 0.4265981595566e+00, + 0.1941787367773e-04, 0.1012202064330e+01, 0.2061856251104e+00, + 0.1889227765991e-04, 0.3892520416440e+01, 0.2204125344462e+00, + 0.1937896968613e-04, 0.4797779441161e+01, 0.1495633313810e+00, + + 0.1434506110873e-04, 0.3868960697933e+01, 0.5225775174439e+00, + 0.1406659911580e-04, 0.4759766557397e+00, 0.5368044267797e+00, + 0.1179022300202e-04, 0.7774961520598e+00, 0.7626583626240e-01, + 0.8085864460959e-05, 0.3254654471465e+01, 0.3664874755930e-01, + 0.7622752967615e-05, 0.4227633103489e+01, 0.3961708870310e-01, + 0.6209171139066e-05, 0.2791828325711e+00, 0.7329749511860e-01, + 0.4366435633970e-05, 0.4440454875925e+01, 0.1589072916335e+01, + 0.3792124889348e-05, 0.5156393842356e+01, 0.7113454667900e-02, + 0.3154548963402e-05, 0.6157005730093e+01, 0.4194847048887e+00, + 0.3088359882942e-05, 0.2494567553163e+01, 0.6398972393349e+00, + + 0.2788440902136e-05, 0.4934318747989e+01, 0.1102062672231e+00, + 0.3039928456376e-05, 0.4895077702640e+01, 0.6283075850446e+01, + 0.2272258457679e-05, 0.5278394064764e+01, 0.1030928125552e+00, + 0.2162007057957e-05, 0.5802978019099e+01, 0.3163918923335e+00, + 0.1767632855737e-05, 0.3415346595193e-01, 0.1021328554739e+02, + 0.1349413459362e-05, 0.2001643230755e+01, 0.1484170571900e-02, + 0.1170141900476e-05, 0.2424750491620e+01, 0.6327837846670e+00, + 0.1054355266820e-05, 0.3123311487576e+01, 0.4337116142245e+00, + 0.9800822461610e-06, 0.3026258088130e+01, 0.1052268489556e+01, + 0.1091203749931e-05, 0.3157811670347e+01, 0.1162474756779e+01, + + 0.6960236715913e-06, 0.8219570542313e+00, 0.1066495398892e+01, + 0.5689257296909e-06, 0.1323052375236e+01, 0.9491756770005e+00, + 0.6613172135802e-06, 0.2765348881598e+00, 0.8460828644453e+00, + 0.6277702517571e-06, 0.5794064466382e+01, 0.1480791608091e+00, + 0.6304884066699e-06, 0.7323555380787e+00, 0.2243449970715e+00, + 0.4897850467382e-06, 0.3062464235399e+01, 0.3340612434717e+01, + 0.3759148598786e-06, 0.4588290469664e+01, 0.3516457698740e-01, + 0.3110520548195e-06, 0.1374299536572e+01, 0.6373574839730e-01, + 0.3064708359780e-06, 0.4222267485047e+01, 0.1104591729320e-01, + 0.2856347168241e-06, 0.3714202944973e+01, 0.1510475019529e+00, + + 0.2840945514288e-06, 0.2847972875882e+01, 0.4110125927500e-01, + 0.2378951599405e-06, 0.3762072563388e+01, 0.2275259891141e+00, + 0.2714229481417e-06, 0.1036049980031e+01, 0.2535050500000e-01, + 0.2323551717307e-06, 0.4682388599076e+00, 0.8582758298370e-01, + 0.1881790512219e-06, 0.4790565425418e+01, 0.2118763888447e+01, + 0.2261353968371e-06, 0.1669144912212e+01, 0.7181332454670e-01, + 0.2214546389848e-06, 0.3937717281614e+01, 0.2968341143800e-02, + 0.2184915594933e-06, 0.1129169845099e+00, 0.7775000683430e-01, + 0.2000164937936e-06, 0.4030009638488e+01, 0.2093666171530e+00, + 0.1966105136719e-06, 0.8745955786834e+00, 0.2172315424036e+00, + + 0.1904742332624e-06, 0.5919743598964e+01, 0.2022531624851e+00, + 0.1657399705031e-06, 0.2549141484884e+01, 0.7358765972222e+00, + 0.1574070533987e-06, 0.5277533020230e+01, 0.7429900518901e+00, + 0.1832261651039e-06, 0.3064688127777e+01, 0.3235053470014e+00, + 0.1733615346569e-06, 0.3011432799094e+01, 0.1385174140878e+00, + 0.1549124014496e-06, 0.4005569132359e+01, 0.5154640627760e+00, + 0.1637044713838e-06, 0.1831375966632e+01, 0.8531963191132e+00, + 0.1123420082383e-06, 0.1180270407578e+01, 0.1990721704425e+00, + 0.1083754165740e-06, 0.3414101320863e+00, 0.5439178814476e+00, + 0.1156638012655e-06, 0.6130479452594e+00, 0.5257585094865e+00, + + 0.1142548785134e-06, 0.3724761948846e+01, 0.5336234347371e+00, + 0.7921463895965e-07, 0.2435425589361e+01, 0.1478866649112e+01, + 0.7428600285231e-07, 0.3542144398753e+01, 0.2164800718209e+00, + 0.8323211246747e-07, 0.3525058072354e+01, 0.1692165728891e+01, + 0.7257595116312e-07, 0.1364299431982e+01, 0.2101180877357e+00, + 0.7111185833236e-07, 0.2460478875808e+01, 0.4155522422634e+00, + 0.6868090383716e-07, 0.4397327670704e+01, 0.1173197218910e+00, + 0.7226419974175e-07, 0.4042647308905e+01, 0.1265567569334e+01, + 0.6955642383177e-07, 0.2865047906085e+01, 0.9562891316684e+00, + 0.7492139296331e-07, 0.5014278994215e+01, 0.1422690933580e-01, + + 0.6598363128857e-07, 0.2376730020492e+01, 0.6470106940028e+00, + 0.7381147293385e-07, 0.3272990384244e+01, 0.1581959461667e+01, + 0.6402909624032e-07, 0.5302290955138e+01, 0.9597935788730e-01, + 0.6237454263857e-07, 0.5444144425332e+01, 0.7084920306520e-01, + 0.5241198544016e-07, 0.4215359579205e+01, 0.5265099800692e+00, + 0.5144463853918e-07, 0.1218916689916e+00, 0.5328719641544e+00, + 0.5868164772299e-07, 0.2369402002213e+01, 0.7871412831580e-01, + 0.6233195669151e-07, 0.1254922242403e+01, 0.2608790314060e+02, + 0.6068463791422e-07, 0.5679713760431e+01, 0.1114304132498e+00, + 0.4359361135065e-07, 0.6097219641646e+00, 0.1375773836557e+01, + + 0.4686510366826e-07, 0.4786231041431e+01, 0.1143987543936e+00, + 0.3758977287225e-07, 0.1167368068139e+01, 0.1596186371003e+01, + 0.4282051974778e-07, 0.1519471064319e+01, 0.2770348281756e+00, + 0.5153765386113e-07, 0.1860532322984e+01, 0.2228608264996e+00, + 0.4575129387188e-07, 0.7632857887158e+00, 0.1465949902372e+00, + 0.3326844933286e-07, 0.1298219485285e+01, 0.5070101000000e-01, + 0.3748617450984e-07, 0.1046510321062e+01, 0.4903339079539e+00, + 0.2816756661499e-07, 0.3434522346190e+01, 0.2991266627620e+00, + 0.3412750405039e-07, 0.2523766270318e+01, 0.3518164938661e+00, + 0.2655796761776e-07, 0.2904422260194e+01, 0.6256703299991e+00, + + 0.2963597929458e-07, 0.5923900431149e+00, 0.1099462426779e+00, + 0.2539523734781e-07, 0.4851947722567e+01, 0.1256615170089e+02, + 0.2283087914139e-07, 0.3400498595496e+01, 0.6681224869435e+01, + 0.2321309799331e-07, 0.5789099148673e+01, 0.3368040641550e-01, + 0.2549657649750e-07, 0.3991856479792e-01, 0.1169588211447e+01, + 0.2290462303977e-07, 0.2788567577052e+01, 0.1045155034888e+01, + 0.1945398522914e-07, 0.3290896998176e+01, 0.1155361302111e+01, + 0.1849171512638e-07, 0.2698060129367e+01, 0.4452511715700e-02, + 0.1647199834254e-07, 0.3016735644085e+01, 0.4408250688924e+00, + 0.1529530765273e-07, 0.5573043116178e+01, 0.6521991896920e-01, + + 0.1433199339978e-07, 0.1481192356147e+01, 0.9420622223326e+00, + 0.1729134193602e-07, 0.1422817538933e+01, 0.2108507877249e+00, + 0.1716463931346e-07, 0.3469468901855e+01, 0.2157473718317e+00, + 0.1391206061378e-07, 0.6122436220547e+01, 0.4123712502208e+00, + 0.1404746661924e-07, 0.1647765641936e+01, 0.4258542984690e-01, + 0.1410452399455e-07, 0.5989729161964e+01, 0.2258291676434e+00, + 0.1089828772168e-07, 0.2833705509371e+01, 0.4226656969313e+00, + 0.1047374564948e-07, 0.5090690007331e+00, 0.3092784376656e+00, + 0.1358279126532e-07, 0.5128990262836e+01, 0.7923417740620e-01, + 0.1020456476148e-07, 0.9632772880808e+00, 0.1456308687557e+00, + + 0.1033428735328e-07, 0.3223779318418e+01, 0.1795258541446e+01, + 0.1412435841540e-07, 0.2410271572721e+01, 0.1525316725248e+00, + 0.9722759371574e-08, 0.2333531395690e+01, 0.8434341241180e-01, + 0.9657334084704e-08, 0.6199270974168e+01, 0.1272681024002e+01, + 0.1083641148690e-07, 0.2864222292929e+01, 0.7032915397480e-01, + 0.1067318403838e-07, 0.5833458866568e+00, 0.2123349582968e+00, + 0.1062366201976e-07, 0.4307753989494e+01, 0.2142632012598e+00, + 0.1236364149266e-07, 0.2873917870593e+01, 0.1847279083684e+00, + 0.1092759489593e-07, 0.2959887266733e+01, 0.1370332435159e+00, + 0.8912069362899e-08, 0.5141213702562e+01, 0.2648454860559e+01, + + 0.9656467707970e-08, 0.4532182462323e+01, 0.4376440768498e+00, + 0.8098386150135e-08, 0.2268906338379e+01, 0.2880807454688e+00, + 0.7857714675000e-08, 0.4055544260745e+01, 0.2037373330570e+00, + 0.7288455940646e-08, 0.5357901655142e+01, 0.1129145838217e+00, + 0.9450595950552e-08, 0.4264926963939e+01, 0.5272426800584e+00, + 0.9381718247537e-08, 0.7489366976576e-01, 0.5321392641652e+00, + 0.7079052646038e-08, 0.1923311052874e+01, 0.6288513220417e+00, + 0.9259004415344e-08, 0.2970256853438e+01, 0.1606092486742e+00, + 0.8259801499742e-08, 0.3327056314697e+01, 0.8389694097774e+00, + 0.6476334355779e-08, 0.2954925505727e+01, 0.2008557621224e+01, + + 0.5984021492007e-08, 0.9138753105829e+00, 0.2042657109477e+02, + 0.5989546863181e-08, 0.3244464082031e+01, 0.2111650433779e+01, + 0.6233108606023e-08, 0.4995232638403e+00, 0.4305306221819e+00, + 0.6877299149965e-08, 0.2834987233449e+01, 0.9561746721300e-02, + 0.8311234227190e-08, 0.2202951835758e+01, 0.3801276407308e+00, + 0.6599472832414e-08, 0.4478581462618e+01, 0.1063314406849e+01, + 0.6160491096549e-08, 0.5145858696411e+01, 0.1368660381889e+01, + 0.6164772043891e-08, 0.3762976697911e+00, 0.4234171675140e+00, + 0.6363248684450e-08, 0.3162246718685e+01, 0.1253008786510e-01, + 0.6448587520999e-08, 0.3442693302119e+01, 0.5287268506303e+00, + + 0.6431662283977e-08, 0.8977549136606e+00, 0.5306550935933e+00, + 0.6351223158474e-08, 0.4306447410369e+01, 0.5217580628120e+02, + 0.5476721393451e-08, 0.3888529177855e+01, 0.2221856701002e+01, + 0.5341772572619e-08, 0.2655560662512e+01, 0.7466759693650e-01, + 0.5337055758302e-08, 0.5164990735946e+01, 0.7489573444450e-01, + 0.5373120816787e-08, 0.6041214553456e+01, 0.1274714967946e+00, + 0.5392351705426e-08, 0.9177763485932e+00, 0.1055449481598e+01, + 0.6688495850205e-08, 0.3089608126937e+01, 0.2213766559277e+00, + 0.5072003660362e-08, 0.4311316541553e+01, 0.2132517061319e+00, + 0.5070726650455e-08, 0.5790675464444e+00, 0.2133464534247e+00, + + 0.5658012950032e-08, 0.2703945510675e+01, 0.7287631425543e+00, + 0.4835509924854e-08, 0.2975422976065e+01, 0.7160067364790e-01, + 0.6479821978012e-08, 0.1324168733114e+01, 0.2209183458640e-01, + 0.6230636494980e-08, 0.2860103632836e+01, 0.3306188016693e+00, + 0.4649239516213e-08, 0.4832259763403e+01, 0.7796265773310e-01, + 0.6487325792700e-08, 0.2726165825042e+01, 0.3884652414254e+00, + 0.4682823682770e-08, 0.6966602455408e+00, 0.1073608853559e+01, + 0.5704230804976e-08, 0.5669634104606e+01, 0.8731175355560e-01, + 0.6125413585489e-08, 0.1513386538915e+01, 0.7605151500000e-01, + 0.6035825038187e-08, 0.1983509168227e+01, 0.9846002785331e+00, + + 0.4331123462303e-08, 0.2782892992807e+01, 0.4297791515992e+00, + 0.4681107685143e-08, 0.5337232886836e+01, 0.2127790306879e+00, + 0.4669105829655e-08, 0.5837133792160e+01, 0.2138191288687e+00, + 0.5138823602365e-08, 0.3080560200507e+01, 0.7233337363710e-01, + 0.4615856664534e-08, 0.1661747897471e+01, 0.8603097737811e+00, + 0.4496916702197e-08, 0.2112508027068e+01, 0.7381754420900e-01, + 0.4278479042945e-08, 0.5716528462627e+01, 0.7574578717200e-01, + 0.3840525503932e-08, 0.6424172726492e+00, 0.3407705765729e+00, + 0.4866636509685e-08, 0.4919244697715e+01, 0.7722995774390e-01, + 0.3526100639296e-08, 0.2550821052734e+01, 0.6225157782540e-01, + + 0.3939558488075e-08, 0.3939331491710e+01, 0.5268983110410e-01, + 0.4041268772576e-08, 0.2275337571218e+01, 0.3503323232942e+00, + 0.3948761842853e-08, 0.1999324200790e+01, 0.1451108196653e+00, + 0.3258394550029e-08, 0.9121001378200e+00, 0.5296435984654e+00, + 0.3257897048761e-08, 0.3428428660869e+01, 0.5297383457582e+00, + 0.3842559031298e-08, 0.6132927720035e+01, 0.9098186128426e+00, + 0.3109920095448e-08, 0.7693650193003e+00, 0.3932462625300e-02, + 0.3132237775119e-08, 0.3621293854908e+01, 0.2346394437820e+00, + 0.3942189421510e-08, 0.4841863659733e+01, 0.3180992042600e-02, + 0.3796972285340e-08, 0.1814174994268e+01, 0.1862120789403e+00, + + 0.3995640233688e-08, 0.1386990406091e+01, 0.4549093064213e+00, + 0.2875013727414e-08, 0.9178318587177e+00, 0.1905464808669e+01, + 0.3073719932844e-08, 0.2688923811835e+01, 0.3628624111593e+00, + 0.2731016580075e-08, 0.1188259127584e+01, 0.2131850110243e+00, + 0.2729549896546e-08, 0.3702160634273e+01, 0.2134131485323e+00, + 0.3339372892449e-08, 0.7199163960331e+00, 0.2007689919132e+00, + 0.2898833764204e-08, 0.1916709364999e+01, 0.5291709230214e+00, + 0.2894536549362e-08, 0.2424043195547e+01, 0.5302110212022e+00, + 0.3096872473843e-08, 0.4445894977497e+01, 0.2976424921901e+00, + 0.2635672326810e-08, 0.3814366984117e+01, 0.1485980103780e+01, + + 0.3649302697001e-08, 0.2924200596084e+01, 0.6044726378023e+00, + 0.3127954585895e-08, 0.1842251648327e+01, 0.1084620721060e+00, + 0.2616040173947e-08, 0.4155841921984e+01, 0.1258454114666e+01, + 0.2597395859860e-08, 0.1158045978874e+00, 0.2103781122809e+00, + 0.2593286172210e-08, 0.4771850408691e+01, 0.2162200472757e+00, + 0.2481823585747e-08, 0.4608842558889e+00, 0.1062562936266e+01, + 0.2742219550725e-08, 0.1538781127028e+01, 0.5651155736444e+00, + 0.3199558469610e-08, 0.3226647822878e+00, 0.7036329877322e+00, + 0.2666088542957e-08, 0.1967991731219e+00, 0.1400015846597e+00, + 0.2397067430580e-08, 0.3707036669873e+01, 0.2125476091956e+00, + + 0.2376570772738e-08, 0.1182086628042e+01, 0.2140505503610e+00, + 0.2547228007887e-08, 0.4906256820629e+01, 0.1534957940063e+00, + 0.2265575594114e-08, 0.3414949866857e+01, 0.2235935264888e+00, + 0.2464381430585e-08, 0.4599122275378e+01, 0.2091065926078e+00, + 0.2433408527044e-08, 0.2830751145445e+00, 0.2174915669488e+00, + 0.2443605509076e-08, 0.4212046432538e+01, 0.1739420156204e+00, + 0.2319779262465e-08, 0.9881978408630e+00, 0.7530171478090e-01, + 0.2284622835465e-08, 0.5565347331588e+00, 0.7426161660010e-01, + 0.2467268750783e-08, 0.5655708150766e+00, 0.2526561439362e+00, + 0.2808513492782e-08, 0.1418405053408e+01, 0.5636314030725e+00, + + 0.2329528932532e-08, 0.4069557545675e+01, 0.1056200952181e+01, + 0.9698639532817e-09, 0.1074134313634e+01, 0.7826370942180e+02 }; + +/* SSB-to-Sun, T^0, Y */ + static const double s0y[] = { + 0.4955392320126e-02, 0.2170467313679e+01, 0.5296909721118e+00, + 0.2722325167392e-02, 0.2444433682196e+01, 0.2132990797783e+00, + 0.1546579925346e-02, 0.5992779281546e+00, 0.3813291813120e-01, + 0.8363140252966e-03, 0.7687356310801e+00, 0.7478166569050e-01, + 0.3385792683603e-03, 0.0000000000000e+00, 0.0000000000000e+00, + 0.1201192221613e-03, 0.2520035601514e+01, 0.1059381944224e+01, + 0.7587125720554e-04, 0.1669954006449e+01, 0.4265981595566e+00, + 0.1964155361250e-04, 0.5707743963343e+01, 0.2061856251104e+00, + 0.1891900364909e-04, 0.2320960679937e+01, 0.2204125344462e+00, + 0.1937373433356e-04, 0.3226940689555e+01, 0.1495633313810e+00, + + 0.1437139941351e-04, 0.2301626908096e+01, 0.5225775174439e+00, + 0.1406267683099e-04, 0.5188579265542e+01, 0.5368044267797e+00, + 0.1178703080346e-04, 0.5489483248476e+01, 0.7626583626240e-01, + 0.8079835186041e-05, 0.1683751835264e+01, 0.3664874755930e-01, + 0.7623253594652e-05, 0.2656400462961e+01, 0.3961708870310e-01, + 0.6248667483971e-05, 0.4992775362055e+01, 0.7329749511860e-01, + 0.4366353695038e-05, 0.2869706279678e+01, 0.1589072916335e+01, + 0.3829101568895e-05, 0.3572131359950e+01, 0.7113454667900e-02, + 0.3175733773908e-05, 0.4535372530045e+01, 0.4194847048887e+00, + 0.3092437902159e-05, 0.9230153317909e+00, 0.6398972393349e+00, + + 0.2874168812154e-05, 0.3363143761101e+01, 0.1102062672231e+00, + 0.3040119321826e-05, 0.3324250895675e+01, 0.6283075850446e+01, + 0.2699723308006e-05, 0.2917882441928e+00, 0.1030928125552e+00, + 0.2134832683534e-05, 0.4220997202487e+01, 0.3163918923335e+00, + 0.1770412139433e-05, 0.4747318496462e+01, 0.1021328554739e+02, + 0.1377264209373e-05, 0.4305058462401e+00, 0.1484170571900e-02, + 0.1127814538960e-05, 0.8538177240740e+00, 0.6327837846670e+00, + 0.1055608090130e-05, 0.1551800742580e+01, 0.4337116142245e+00, + 0.9802673861420e-06, 0.1459646735377e+01, 0.1052268489556e+01, + 0.1090329461951e-05, 0.1587351228711e+01, 0.1162474756779e+01, + + 0.6959590025090e-06, 0.5534442628766e+01, 0.1066495398892e+01, + 0.5664914529542e-06, 0.6030673003297e+01, 0.9491756770005e+00, + 0.6607787763599e-06, 0.4989507233927e+01, 0.8460828644453e+00, + 0.6269725742838e-06, 0.4222951804572e+01, 0.1480791608091e+00, + 0.6301889697863e-06, 0.5444316669126e+01, 0.2243449970715e+00, + 0.4891042662861e-06, 0.1490552839784e+01, 0.3340612434717e+01, + 0.3457083123290e-06, 0.3030475486049e+01, 0.3516457698740e-01, + 0.3032559967314e-06, 0.2652038793632e+01, 0.1104591729320e-01, + 0.2841133988903e-06, 0.1276744786829e+01, 0.4110125927500e-01, + 0.2855564444432e-06, 0.2143368674733e+01, 0.1510475019529e+00, + + 0.2765157135038e-06, 0.5444186109077e+01, 0.6373574839730e-01, + 0.2382312465034e-06, 0.2190521137593e+01, 0.2275259891141e+00, + 0.2808060365077e-06, 0.5735195064841e+01, 0.2535050500000e-01, + 0.2332175234405e-06, 0.9481985524859e-01, 0.7181332454670e-01, + 0.2322488199659e-06, 0.5180499361533e+01, 0.8582758298370e-01, + 0.1881850258423e-06, 0.3219788273885e+01, 0.2118763888447e+01, + 0.2196111392808e-06, 0.2366941159761e+01, 0.2968341143800e-02, + 0.2183810335519e-06, 0.4825445110915e+01, 0.7775000683430e-01, + 0.2002733093326e-06, 0.2457148995307e+01, 0.2093666171530e+00, + 0.1967111767229e-06, 0.5586291545459e+01, 0.2172315424036e+00, + + 0.1568473250543e-06, 0.3708003123320e+01, 0.7429900518901e+00, + 0.1852528314300e-06, 0.4310638151560e+01, 0.2022531624851e+00, + 0.1832111226447e-06, 0.1494665322656e+01, 0.3235053470014e+00, + 0.1746805502310e-06, 0.1451378500784e+01, 0.1385174140878e+00, + 0.1555730966650e-06, 0.1068040418198e+01, 0.7358765972222e+00, + 0.1554883462559e-06, 0.2442579035461e+01, 0.5154640627760e+00, + 0.1638380568746e-06, 0.2597913420625e+00, 0.8531963191132e+00, + 0.1159938593640e-06, 0.5834512021280e+01, 0.1990721704425e+00, + 0.1083427965695e-06, 0.5054033177950e+01, 0.5439178814476e+00, + 0.1156480369431e-06, 0.5325677432457e+01, 0.5257585094865e+00, + + 0.1141308860095e-06, 0.2153403923857e+01, 0.5336234347371e+00, + 0.7913146470946e-07, 0.8642846847027e+00, 0.1478866649112e+01, + 0.7439752463733e-07, 0.1970628496213e+01, 0.2164800718209e+00, + 0.7280277104079e-07, 0.6073307250609e+01, 0.2101180877357e+00, + 0.8319567719136e-07, 0.1954371928334e+01, 0.1692165728891e+01, + 0.7137705549290e-07, 0.8904989440909e+00, 0.4155522422634e+00, + 0.6900825396225e-07, 0.2825717714977e+01, 0.1173197218910e+00, + 0.7245757216635e-07, 0.2481677513331e+01, 0.1265567569334e+01, + 0.6961165696255e-07, 0.1292955312978e+01, 0.9562891316684e+00, + 0.7571804456890e-07, 0.3427517575069e+01, 0.1422690933580e-01, + + 0.6605425721904e-07, 0.8052192701492e+00, 0.6470106940028e+00, + 0.7375477357248e-07, 0.1705076390088e+01, 0.1581959461667e+01, + 0.7041664951470e-07, 0.4848356967891e+00, 0.9597935788730e-01, + 0.6322199535763e-07, 0.3878069473909e+01, 0.7084920306520e-01, + 0.5244380279191e-07, 0.2645560544125e+01, 0.5265099800692e+00, + 0.5143125704988e-07, 0.4834486101370e+01, 0.5328719641544e+00, + 0.5871866319373e-07, 0.7981472548900e+00, 0.7871412831580e-01, + 0.6300822573871e-07, 0.5979398788281e+01, 0.2608790314060e+02, + 0.6062154271548e-07, 0.4108655402756e+01, 0.1114304132498e+00, + 0.4361912339976e-07, 0.5322624319280e+01, 0.1375773836557e+01, + + 0.4417005920067e-07, 0.6240817359284e+01, 0.2770348281756e+00, + 0.4686806749936e-07, 0.3214977301156e+01, 0.1143987543936e+00, + 0.3758892132305e-07, 0.5879809634765e+01, 0.1596186371003e+01, + 0.5151351332319e-07, 0.2893377688007e+00, 0.2228608264996e+00, + 0.4554683578572e-07, 0.5475427144122e+01, 0.1465949902372e+00, + 0.3442381385338e-07, 0.5992034796640e+01, 0.5070101000000e-01, + 0.2831093954933e-07, 0.5367350273914e+01, 0.3092784376656e+00, + 0.3756267090084e-07, 0.5758171285420e+01, 0.4903339079539e+00, + 0.2816374679892e-07, 0.1863718700923e+01, 0.2991266627620e+00, + 0.3419307025569e-07, 0.9524347534130e+00, 0.3518164938661e+00, + + 0.2904250494239e-07, 0.5304471615602e+01, 0.1099462426779e+00, + 0.2471734511206e-07, 0.1297069793530e+01, 0.6256703299991e+00, + 0.2539620831872e-07, 0.3281126083375e+01, 0.1256615170089e+02, + 0.2281017868007e-07, 0.1829122133165e+01, 0.6681224869435e+01, + 0.2275319473335e-07, 0.5797198160181e+01, 0.3932462625300e-02, + 0.2547755368442e-07, 0.4752697708330e+01, 0.1169588211447e+01, + 0.2285979669317e-07, 0.1223205292886e+01, 0.1045155034888e+01, + 0.1913386560994e-07, 0.1757532993389e+01, 0.1155361302111e+01, + 0.1809020525147e-07, 0.4246116108791e+01, 0.3368040641550e-01, + 0.1649213300201e-07, 0.1445162890627e+01, 0.4408250688924e+00, + + 0.1834972793932e-07, 0.1126917567225e+01, 0.4452511715700e-02, + 0.1439550648138e-07, 0.6160756834764e+01, 0.9420622223326e+00, + 0.1487645457041e-07, 0.4358761931792e+01, 0.4123712502208e+00, + 0.1731729516660e-07, 0.6134456753344e+01, 0.2108507877249e+00, + 0.1717747163567e-07, 0.1898186084455e+01, 0.2157473718317e+00, + 0.1418190430374e-07, 0.4180286741266e+01, 0.6521991896920e-01, + 0.1404844134873e-07, 0.7654053565412e-01, 0.4258542984690e-01, + 0.1409842846538e-07, 0.4418612420312e+01, 0.2258291676434e+00, + 0.1090948346291e-07, 0.1260615686131e+01, 0.4226656969313e+00, + 0.1357577323612e-07, 0.3558248818690e+01, 0.7923417740620e-01, + + 0.1018154061960e-07, 0.5676087241256e+01, 0.1456308687557e+00, + 0.1412073972109e-07, 0.8394392632422e+00, 0.1525316725248e+00, + 0.1030938326496e-07, 0.1653593274064e+01, 0.1795258541446e+01, + 0.1180081567104e-07, 0.1285802592036e+01, 0.7032915397480e-01, + 0.9708510575650e-08, 0.7631889488106e+00, 0.8434341241180e-01, + 0.9637689663447e-08, 0.4630642649176e+01, 0.1272681024002e+01, + 0.1068910429389e-07, 0.5294934032165e+01, 0.2123349582968e+00, + 0.1063716179336e-07, 0.2736266800832e+01, 0.2142632012598e+00, + 0.1234858713814e-07, 0.1302891146570e+01, 0.1847279083684e+00, + 0.8912631189738e-08, 0.3570415993621e+01, 0.2648454860559e+01, + + 0.1036378285534e-07, 0.4236693440949e+01, 0.1370332435159e+00, + 0.9667798501561e-08, 0.2960768892398e+01, 0.4376440768498e+00, + 0.8108314201902e-08, 0.6987781646841e+00, 0.2880807454688e+00, + 0.7648364324628e-08, 0.2499017863863e+01, 0.2037373330570e+00, + 0.7286136828406e-08, 0.3787426951665e+01, 0.1129145838217e+00, + 0.9448237743913e-08, 0.2694354332983e+01, 0.5272426800584e+00, + 0.9374276106428e-08, 0.4787121277064e+01, 0.5321392641652e+00, + 0.7100226287462e-08, 0.3530238792101e+00, 0.6288513220417e+00, + 0.9253056659571e-08, 0.1399478925664e+01, 0.1606092486742e+00, + 0.6636432145504e-08, 0.3479575438447e+01, 0.1368660381889e+01, + + 0.6469975312932e-08, 0.1383669964800e+01, 0.2008557621224e+01, + 0.7335849729765e-08, 0.1243698166898e+01, 0.9561746721300e-02, + 0.8743421205855e-08, 0.3776164289301e+01, 0.3801276407308e+00, + 0.5993635744494e-08, 0.5627122113596e+01, 0.2042657109477e+02, + 0.5981008479693e-08, 0.1674336636752e+01, 0.2111650433779e+01, + 0.6188535145838e-08, 0.5214925208672e+01, 0.4305306221819e+00, + 0.6596074017566e-08, 0.2907653268124e+01, 0.1063314406849e+01, + 0.6630815126226e-08, 0.2127643669658e+01, 0.8389694097774e+00, + 0.6156772830040e-08, 0.5082160803295e+01, 0.4234171675140e+00, + 0.6446960563014e-08, 0.1872100916905e+01, 0.5287268506303e+00, + + 0.6429324424668e-08, 0.5610276103577e+01, 0.5306550935933e+00, + 0.6302232396465e-08, 0.1592152049607e+01, 0.1253008786510e-01, + 0.6399244436159e-08, 0.2746214421532e+01, 0.5217580628120e+02, + 0.5474965172558e-08, 0.2317666374383e+01, 0.2221856701002e+01, + 0.5339293190692e-08, 0.1084724961156e+01, 0.7466759693650e-01, + 0.5334733683389e-08, 0.3594106067745e+01, 0.7489573444450e-01, + 0.5392665782110e-08, 0.5630254365606e+01, 0.1055449481598e+01, + 0.6682075673789e-08, 0.1518480041732e+01, 0.2213766559277e+00, + 0.5079130495960e-08, 0.2739765115711e+01, 0.2132517061319e+00, + 0.5077759793261e-08, 0.5290711290094e+01, 0.2133464534247e+00, + + 0.4832037368310e-08, 0.1404473217200e+01, 0.7160067364790e-01, + 0.6463279674802e-08, 0.6038381695210e+01, 0.2209183458640e-01, + 0.6240592771560e-08, 0.1290170653666e+01, 0.3306188016693e+00, + 0.4672013521493e-08, 0.3261895939677e+01, 0.7796265773310e-01, + 0.6500650750348e-08, 0.1154522312095e+01, 0.3884652414254e+00, + 0.6344161389053e-08, 0.6206111545062e+01, 0.7605151500000e-01, + 0.4682518370646e-08, 0.5409118796685e+01, 0.1073608853559e+01, + 0.5329460015591e-08, 0.1202985784864e+01, 0.7287631425543e+00, + 0.5701588675898e-08, 0.4098715257064e+01, 0.8731175355560e-01, + 0.6030690867211e-08, 0.4132033218460e+00, 0.9846002785331e+00, + + 0.4336256312655e-08, 0.1211415991827e+01, 0.4297791515992e+00, + 0.4688498808975e-08, 0.3765479072409e+01, 0.2127790306879e+00, + 0.4675578609335e-08, 0.4265540037226e+01, 0.2138191288687e+00, + 0.4225578112158e-08, 0.5237566010676e+01, 0.3407705765729e+00, + 0.5139422230028e-08, 0.1507173079513e+01, 0.7233337363710e-01, + 0.4619995093571e-08, 0.9023957449848e-01, 0.8603097737811e+00, + 0.4494776255461e-08, 0.5414930552139e+00, 0.7381754420900e-01, + 0.4274026276788e-08, 0.4145735303659e+01, 0.7574578717200e-01, + 0.5018141789353e-08, 0.3344408829055e+01, 0.3180992042600e-02, + 0.4866163952181e-08, 0.3348534657607e+01, 0.7722995774390e-01, + + 0.4111986020501e-08, 0.4198823597220e+00, 0.1451108196653e+00, + 0.3356142784950e-08, 0.5609144747180e+01, 0.1274714967946e+00, + 0.4070575554551e-08, 0.7028411059224e+00, 0.3503323232942e+00, + 0.3257451857278e-08, 0.5624697983086e+01, 0.5296435984654e+00, + 0.3256973703026e-08, 0.1857842076707e+01, 0.5297383457582e+00, + 0.3830771508640e-08, 0.4562887279931e+01, 0.9098186128426e+00, + 0.3725024005962e-08, 0.2358058692652e+00, 0.1084620721060e+00, + 0.3136763921756e-08, 0.2049731526845e+01, 0.2346394437820e+00, + 0.3795147256194e-08, 0.2432356296933e+00, 0.1862120789403e+00, + 0.2877342229911e-08, 0.5631101279387e+01, 0.1905464808669e+01, + + 0.3076931798805e-08, 0.1117615737392e+01, 0.3628624111593e+00, + 0.2734765945273e-08, 0.5899826516955e+01, 0.2131850110243e+00, + 0.2733405296885e-08, 0.2130562964070e+01, 0.2134131485323e+00, + 0.2898552353410e-08, 0.3462387048225e+00, 0.5291709230214e+00, + 0.2893736103681e-08, 0.8534352781543e+00, 0.5302110212022e+00, + 0.3095717734137e-08, 0.2875061429041e+01, 0.2976424921901e+00, + 0.2636190425832e-08, 0.2242512846659e+01, 0.1485980103780e+01, + 0.3645512095537e-08, 0.1354016903958e+01, 0.6044726378023e+00, + 0.2808173547723e-08, 0.6705114365631e-01, 0.6225157782540e-01, + 0.2625012866888e-08, 0.4775705748482e+01, 0.5268983110410e-01, + + 0.2572233995651e-08, 0.2638924216139e+01, 0.1258454114666e+01, + 0.2604238824792e-08, 0.4826358927373e+01, 0.2103781122809e+00, + 0.2596886385239e-08, 0.3200388483118e+01, 0.2162200472757e+00, + 0.3228057304264e-08, 0.5384848409563e+01, 0.2007689919132e+00, + 0.2481601798252e-08, 0.5173373487744e+01, 0.1062562936266e+01, + 0.2745977498864e-08, 0.6250966149853e+01, 0.5651155736444e+00, + 0.2669878833811e-08, 0.4906001352499e+01, 0.1400015846597e+00, + 0.3203986611711e-08, 0.5034333010005e+01, 0.7036329877322e+00, + 0.3354961227212e-08, 0.6108262423137e+01, 0.4549093064213e+00, + 0.2400407324558e-08, 0.2135399294955e+01, 0.2125476091956e+00, + + 0.2379905859802e-08, 0.5893721933961e+01, 0.2140505503610e+00, + 0.2550844302187e-08, 0.3331940762063e+01, 0.1534957940063e+00, + 0.2268824211001e-08, 0.1843418461035e+01, 0.2235935264888e+00, + 0.2464700891204e-08, 0.3029548547230e+01, 0.2091065926078e+00, + 0.2436814726024e-08, 0.4994717970364e+01, 0.2174915669488e+00, + 0.2443623894745e-08, 0.2645102591375e+01, 0.1739420156204e+00, + 0.2318701783838e-08, 0.5700547397897e+01, 0.7530171478090e-01, + 0.2284448700256e-08, 0.5268898905872e+01, 0.7426161660010e-01, + 0.2468848123510e-08, 0.5276280575078e+01, 0.2526561439362e+00, + 0.2814052350303e-08, 0.6130168623475e+01, 0.5636314030725e+00, + + 0.2243662755220e-08, 0.6631692457995e+00, 0.8886590321940e-01, + 0.2330795855941e-08, 0.2499435487702e+01, 0.1056200952181e+01, + 0.9757679038404e-09, 0.5796846023126e+01, 0.7826370942180e+02 }; + +/* SSB-to-Sun, T^0, Z */ + static const double s0z[] = { + 0.1181255122986e-03, 0.4607918989164e+00, 0.2132990797783e+00, + 0.1127777651095e-03, 0.4169146331296e+00, 0.5296909721118e+00, + 0.4777754401806e-04, 0.4582657007130e+01, 0.3813291813120e-01, + 0.1129354285772e-04, 0.5758735142480e+01, 0.7478166569050e-01, + -0.1149543637123e-04, 0.0000000000000e+00, 0.0000000000000e+00, + 0.3298730512306e-05, 0.5978801994625e+01, 0.4265981595566e+00, + 0.2733376706079e-05, 0.7665413691040e+00, 0.1059381944224e+01, + 0.9426389657270e-06, 0.3710201265838e+01, 0.2061856251104e+00, + 0.8187517749552e-06, 0.3390675605802e+00, 0.2204125344462e+00, + 0.4080447871819e-06, 0.4552296640088e+00, 0.5225775174439e+00, + + 0.3169973017028e-06, 0.3445455899321e+01, 0.5368044267797e+00, + 0.2438098615549e-06, 0.5664675150648e+01, 0.3664874755930e-01, + 0.2601897517235e-06, 0.1931894095697e+01, 0.1495633313810e+00, + 0.2314558080079e-06, 0.3666319115574e+00, 0.3961708870310e-01, + 0.1962549548002e-06, 0.3167411699020e+01, 0.7626583626240e-01, + 0.2180518287925e-06, 0.1544420746580e+01, 0.7113454667900e-02, + 0.1451382442868e-06, 0.1583756740070e+01, 0.1102062672231e+00, + 0.1358439007389e-06, 0.5239941758280e+01, 0.6398972393349e+00, + 0.1050585898028e-06, 0.2266958352859e+01, 0.3163918923335e+00, + 0.1050029870186e-06, 0.2711495250354e+01, 0.4194847048887e+00, + + 0.9934920679800e-07, 0.1116208151396e+01, 0.1589072916335e+01, + 0.1048395331560e-06, 0.3408619600206e+01, 0.1021328554739e+02, + 0.8370147196668e-07, 0.3810459401087e+01, 0.2535050500000e-01, + 0.7989856510998e-07, 0.3769910473647e+01, 0.7329749511860e-01, + 0.5441221655233e-07, 0.2416994903374e+01, 0.1030928125552e+00, + 0.4610812906784e-07, 0.5858503336994e+01, 0.4337116142245e+00, + 0.3923022803444e-07, 0.3354170010125e+00, 0.1484170571900e-02, + 0.2610725582128e-07, 0.5410600646324e+01, 0.6327837846670e+00, + 0.2455279767721e-07, 0.6120216681403e+01, 0.1162474756779e+01, + 0.2375530706525e-07, 0.6055443426143e+01, 0.1052268489556e+01, + + 0.1782967577553e-07, 0.3146108708004e+01, 0.8460828644453e+00, + 0.1581687095238e-07, 0.6255496089819e+00, 0.3340612434717e+01, + 0.1594657672461e-07, 0.3782604300261e+01, 0.1066495398892e+01, + 0.1563448615040e-07, 0.1997775733196e+01, 0.2022531624851e+00, + 0.1463624258525e-07, 0.1736316792088e+00, 0.3516457698740e-01, + 0.1331585056673e-07, 0.4331941830747e+01, 0.9491756770005e+00, + 0.1130634557637e-07, 0.6152017751825e+01, 0.2968341143800e-02, + 0.1028949607145e-07, 0.2101792614637e+00, 0.2275259891141e+00, + 0.1024074971618e-07, 0.4071833211074e+01, 0.5070101000000e-01, + 0.8826956060303e-08, 0.4861633688145e+00, 0.2093666171530e+00, + + 0.8572230171541e-08, 0.5268190724302e+01, 0.4110125927500e-01, + 0.7649332643544e-08, 0.5134543417106e+01, 0.2608790314060e+02, + 0.8581673291033e-08, 0.2920218146681e+01, 0.1480791608091e+00, + 0.8430589300938e-08, 0.3604576619108e+01, 0.2172315424036e+00, + 0.7776165501012e-08, 0.3772942249792e+01, 0.6373574839730e-01, + 0.8311070234408e-08, 0.6200412329888e+01, 0.3235053470014e+00, + 0.6927365212582e-08, 0.4543353113437e+01, 0.8531963191132e+00, + 0.6791574208598e-08, 0.2882188406238e+01, 0.7181332454670e-01, + 0.5593100811839e-08, 0.1776646892780e+01, 0.7429900518901e+00, + 0.4553381853021e-08, 0.3949617611240e+01, 0.7775000683430e-01, + + 0.5758000450068e-08, 0.3859251775075e+01, 0.1990721704425e+00, + 0.4281283457133e-08, 0.1466294631206e+01, 0.2118763888447e+01, + 0.4206935661097e-08, 0.5421776011706e+01, 0.1104591729320e-01, + 0.4213751641837e-08, 0.3412048993322e+01, 0.2243449970715e+00, + 0.5310506239878e-08, 0.5421641370995e+00, 0.5154640627760e+00, + 0.3827450341320e-08, 0.8887314524995e+00, 0.1510475019529e+00, + 0.4292435241187e-08, 0.1405043757194e+01, 0.1422690933580e-01, + 0.3189780702289e-08, 0.1060049293445e+01, 0.1173197218910e+00, + 0.3226611928069e-08, 0.6270858897442e+01, 0.2164800718209e+00, + 0.2893897608830e-08, 0.5117563223301e+01, 0.6470106940028e+00, + + 0.3239852024578e-08, 0.4079092237983e+01, 0.2101180877357e+00, + 0.2956892222200e-08, 0.1594917021704e+01, 0.3092784376656e+00, + 0.2980177912437e-08, 0.5258787667564e+01, 0.4155522422634e+00, + 0.3163725690776e-08, 0.3854589225479e+01, 0.8582758298370e-01, + 0.2662262399118e-08, 0.3561326430187e+01, 0.5257585094865e+00, + 0.2766689135729e-08, 0.3180732086830e+00, 0.1385174140878e+00, + 0.2411600278464e-08, 0.3324798335058e+01, 0.5439178814476e+00, + 0.2483527695131e-08, 0.4169069291947e+00, 0.5336234347371e+00, + 0.7788777276590e-09, 0.1900569908215e+01, 0.5217580628120e+02 }; + +/* SSB-to-Sun, T^1, X */ + static const double s1x[] = { + -0.1296310361520e-07, 0.0000000000000e+00, 0.0000000000000e+00, + 0.8975769009438e-08, 0.1128891609250e+01, 0.4265981595566e+00, + 0.7771113441307e-08, 0.2706039877077e+01, 0.2061856251104e+00, + 0.7538303866642e-08, 0.2191281289498e+01, 0.2204125344462e+00, + 0.6061384579336e-08, 0.3248167319958e+01, 0.1059381944224e+01, + 0.5726994235594e-08, 0.5569981398610e+01, 0.5225775174439e+00, + 0.5616492836424e-08, 0.5057386614909e+01, 0.5368044267797e+00, + 0.1010881584769e-08, 0.3473577116095e+01, 0.7113454667900e-02, + 0.7259606157626e-09, 0.3651858593665e+00, 0.6398972393349e+00, + 0.8755095026935e-09, 0.1662835408338e+01, 0.4194847048887e+00, + + 0.5370491182812e-09, 0.1327673878077e+01, 0.4337116142245e+00, + 0.5743773887665e-09, 0.4250200846687e+01, 0.2132990797783e+00, + 0.4408103140300e-09, 0.3598752574277e+01, 0.1589072916335e+01, + 0.3101892374445e-09, 0.4887822983319e+01, 0.1052268489556e+01, + 0.3209453713578e-09, 0.9702272295114e+00, 0.5296909721118e+00, + 0.3017228286064e-09, 0.5484462275949e+01, 0.1066495398892e+01, + 0.3200700038601e-09, 0.2846613338643e+01, 0.1495633313810e+00, + 0.2137637279911e-09, 0.5692163292729e+00, 0.3163918923335e+00, + 0.1899686386727e-09, 0.2061077157189e+01, 0.2275259891141e+00, + 0.1401994545308e-09, 0.4177771136967e+01, 0.1102062672231e+00, + + 0.1578057810499e-09, 0.5782460597335e+01, 0.7626583626240e-01, + 0.1237713253351e-09, 0.5705900866881e+01, 0.5154640627760e+00, + 0.1313076837395e-09, 0.5163438179576e+01, 0.3664874755930e-01, + 0.1184963304860e-09, 0.3054804427242e+01, 0.6327837846670e+00, + 0.1238130878565e-09, 0.2317292575962e+01, 0.3961708870310e-01, + 0.1015959527736e-09, 0.2194643645526e+01, 0.7329749511860e-01, + 0.9017954423714e-10, 0.2868603545435e+01, 0.1990721704425e+00, + 0.8668024955603e-10, 0.4923849675082e+01, 0.5439178814476e+00, + 0.7756083930103e-10, 0.3014334135200e+01, 0.9491756770005e+00, + 0.7536503401741e-10, 0.2704886279769e+01, 0.1030928125552e+00, + + 0.5483308679332e-10, 0.6010983673799e+01, 0.8531963191132e+00, + 0.5184339620428e-10, 0.1952704573291e+01, 0.2093666171530e+00, + 0.5108658712030e-10, 0.2958575786649e+01, 0.2172315424036e+00, + 0.5019424524650e-10, 0.1736317621318e+01, 0.2164800718209e+00, + 0.4909312625978e-10, 0.3167216416257e+01, 0.2101180877357e+00, + 0.4456638901107e-10, 0.7697579923471e+00, 0.3235053470014e+00, + 0.4227030350925e-10, 0.3490910137928e+01, 0.6373574839730e-01, + 0.4095456040093e-10, 0.5178888984491e+00, 0.6470106940028e+00, + 0.4990537041422e-10, 0.3323887668974e+01, 0.1422690933580e-01, + 0.4321170010845e-10, 0.4288484987118e+01, 0.7358765972222e+00, + + 0.3544072091802e-10, 0.6021051579251e+01, 0.5265099800692e+00, + 0.3480198638687e-10, 0.4600027054714e+01, 0.5328719641544e+00, + 0.3440287244435e-10, 0.4349525970742e+01, 0.8582758298370e-01, + 0.3330628322713e-10, 0.2347391505082e+01, 0.1104591729320e-01, + 0.2973060707184e-10, 0.4789409286400e+01, 0.5257585094865e+00, + 0.2932606766089e-10, 0.5831693799927e+01, 0.5336234347371e+00, + 0.2876972310953e-10, 0.2692638514771e+01, 0.1173197218910e+00, + 0.2827488278556e-10, 0.2056052487960e+01, 0.2022531624851e+00, + 0.2515028239756e-10, 0.7411863262449e+00, 0.9597935788730e-01, + 0.2853033744415e-10, 0.3948481024894e+01, 0.2118763888447e+01 }; + +/* SSB-to-Sun, T^1, Y */ + static const double s1y[] = { + 0.8989047573576e-08, 0.5840593672122e+01, 0.4265981595566e+00, + 0.7815938401048e-08, 0.1129664707133e+01, 0.2061856251104e+00, + 0.7550926713280e-08, 0.6196589104845e+00, 0.2204125344462e+00, + 0.6056556925895e-08, 0.1677494667846e+01, 0.1059381944224e+01, + 0.5734142698204e-08, 0.4000920852962e+01, 0.5225775174439e+00, + 0.5614341822459e-08, 0.3486722577328e+01, 0.5368044267797e+00, + 0.1028678147656e-08, 0.1877141024787e+01, 0.7113454667900e-02, + 0.7270792075266e-09, 0.5077167301739e+01, 0.6398972393349e+00, + 0.8734141726040e-09, 0.9069550282609e-01, 0.4194847048887e+00, + 0.5377371402113e-09, 0.6039381844671e+01, 0.4337116142245e+00, + + 0.4729719431571e-09, 0.2153086311760e+01, 0.2132990797783e+00, + 0.4458052820973e-09, 0.5059830025565e+01, 0.5296909721118e+00, + 0.4406855467908e-09, 0.2027971692630e+01, 0.1589072916335e+01, + 0.3101659310977e-09, 0.3317677981860e+01, 0.1052268489556e+01, + 0.3016749232545e-09, 0.3913703482532e+01, 0.1066495398892e+01, + 0.3198541352656e-09, 0.1275513098525e+01, 0.1495633313810e+00, + 0.2142065389871e-09, 0.5301351614597e+01, 0.3163918923335e+00, + 0.1902615247592e-09, 0.4894943352736e+00, 0.2275259891141e+00, + 0.1613410990871e-09, 0.2449891130437e+01, 0.1102062672231e+00, + 0.1576992165097e-09, 0.4211421447633e+01, 0.7626583626240e-01, + + 0.1241637259894e-09, 0.4140803368133e+01, 0.5154640627760e+00, + 0.1313974830355e-09, 0.3591920305503e+01, 0.3664874755930e-01, + 0.1181697118258e-09, 0.1506314382788e+01, 0.6327837846670e+00, + 0.1238239742779e-09, 0.7461405378404e+00, 0.3961708870310e-01, + 0.1010107068241e-09, 0.6271010795475e+00, 0.7329749511860e-01, + 0.9226316616509e-10, 0.1259158839583e+01, 0.1990721704425e+00, + 0.8664946419555e-10, 0.3353244696934e+01, 0.5439178814476e+00, + 0.7757230468978e-10, 0.1447677295196e+01, 0.9491756770005e+00, + 0.7693168628139e-10, 0.1120509896721e+01, 0.1030928125552e+00, + 0.5487897454612e-10, 0.4439380426795e+01, 0.8531963191132e+00, + + 0.5196118677218e-10, 0.3788856619137e+00, 0.2093666171530e+00, + 0.5110853339935e-10, 0.1386879372016e+01, 0.2172315424036e+00, + 0.5027804534813e-10, 0.1647881805466e+00, 0.2164800718209e+00, + 0.4922485922674e-10, 0.1594315079862e+01, 0.2101180877357e+00, + 0.6155599524400e-10, 0.0000000000000e+00, 0.0000000000000e+00, + 0.4447147832161e-10, 0.5480720918976e+01, 0.3235053470014e+00, + 0.4144691276422e-10, 0.1931371033660e+01, 0.6373574839730e-01, + 0.4099950625452e-10, 0.5229611294335e+01, 0.6470106940028e+00, + 0.5060541682953e-10, 0.1731112486298e+01, 0.1422690933580e-01, + 0.4293615946300e-10, 0.2714571038925e+01, 0.7358765972222e+00, + + 0.3545659845763e-10, 0.4451041444634e+01, 0.5265099800692e+00, + 0.3479112041196e-10, 0.3029385448081e+01, 0.5328719641544e+00, + 0.3438516493570e-10, 0.2778507143731e+01, 0.8582758298370e-01, + 0.3297341285033e-10, 0.7898709807584e+00, 0.1104591729320e-01, + 0.2972585818015e-10, 0.3218785316973e+01, 0.5257585094865e+00, + 0.2931707295017e-10, 0.4260731012098e+01, 0.5336234347371e+00, + 0.2897198149403e-10, 0.1120753978101e+01, 0.1173197218910e+00, + 0.2832293240878e-10, 0.4597682717827e+00, 0.2022531624851e+00, + 0.2864348326612e-10, 0.2169939928448e+01, 0.9597935788730e-01, + 0.2852714675471e-10, 0.2377659870578e+01, 0.2118763888447e+01 }; + +/* SSB-to-Sun, T^1, Z */ + static const double s1z[] = { + 0.5444220475678e-08, 0.1803825509310e+01, 0.2132990797783e+00, + 0.3883412695596e-08, 0.4668616389392e+01, 0.5296909721118e+00, + 0.1334341434551e-08, 0.0000000000000e+00, 0.0000000000000e+00, + 0.3730001266883e-09, 0.5401405918943e+01, 0.2061856251104e+00, + 0.2894929197956e-09, 0.4932415609852e+01, 0.2204125344462e+00, + 0.2857950357701e-09, 0.3154625362131e+01, 0.7478166569050e-01, + 0.2499226432292e-09, 0.3657486128988e+01, 0.4265981595566e+00, + 0.1937705443593e-09, 0.5740434679002e+01, 0.1059381944224e+01, + 0.1374894396320e-09, 0.1712857366891e+01, 0.5368044267797e+00, + 0.1217248678408e-09, 0.2312090870932e+01, 0.5225775174439e+00, + + 0.7961052740870e-10, 0.5283368554163e+01, 0.3813291813120e-01, + 0.4979225949689e-10, 0.4298290471860e+01, 0.4194847048887e+00, + 0.4388552286597e-10, 0.6145515047406e+01, 0.7113454667900e-02, + 0.2586835212560e-10, 0.3019448001809e+01, 0.6398972393349e+00 }; + +/* SSB-to-Sun, T^2, X */ + static const double s2x[] = { + 0.1603551636587e-11, 0.4404109410481e+01, 0.2061856251104e+00, + 0.1556935889384e-11, 0.4818040873603e+00, 0.2204125344462e+00, + 0.1182594414915e-11, 0.9935762734472e+00, 0.5225775174439e+00, + 0.1158794583180e-11, 0.3353180966450e+01, 0.5368044267797e+00, + 0.9597358943932e-12, 0.5567045358298e+01, 0.2132990797783e+00, + 0.6511516579605e-12, 0.5630872420788e+01, 0.4265981595566e+00, + 0.7419792747688e-12, 0.2156188581957e+01, 0.5296909721118e+00, + 0.3951972655848e-12, 0.1981022541805e+01, 0.1059381944224e+01, + 0.4478223877045e-12, 0.0000000000000e+00, 0.0000000000000e+00 }; + +/* SSB-to-Sun, T^2, Y */ + static const double s2y[] = { + 0.1609114495091e-11, 0.2831096993481e+01, 0.2061856251104e+00, + 0.1560330784946e-11, 0.5193058213906e+01, 0.2204125344462e+00, + 0.1183535479202e-11, 0.5707003443890e+01, 0.5225775174439e+00, + 0.1158183066182e-11, 0.1782400404928e+01, 0.5368044267797e+00, + 0.1032868027407e-11, 0.4036925452011e+01, 0.2132990797783e+00, + 0.6540142847741e-12, 0.4058241056717e+01, 0.4265981595566e+00, + 0.7305236491596e-12, 0.6175401942957e+00, 0.5296909721118e+00, + -0.5580725052968e-12, 0.0000000000000e+00, 0.0000000000000e+00, + 0.3946122651015e-12, 0.4108265279171e+00, 0.1059381944224e+01 }; + +/* SSB-to-Sun, T^2, Z */ + static const double s2z[] = { + 0.3749920358054e-12, 0.3230285558668e+01, 0.2132990797783e+00, + 0.2735037220939e-12, 0.6154322683046e+01, 0.5296909721118e+00 }; + +/* Pointers to coefficient arrays, in x,y,z sets */ + static const double *ce0[] = { e0x, e0y, e0z }, + *ce1[] = { e1x, e1y, e1z }, + *ce2[] = { e2x, e2y, e2z }, + *cs0[] = { s0x, s0y, s0z }, + *cs1[] = { s1x, s1y, s1z }, + *cs2[] = { s2x, s2y, s2z }; + const double *coeffs; + +/* Numbers of terms for each component of the model, in x,y,z sets */ + static const int ne0[3] = {(int)(sizeof e0x / sizeof (double) / 3), + (int)(sizeof e0y / sizeof (double) / 3), + (int)(sizeof e0z / sizeof (double) / 3) }, + ne1[3] = {(int)(sizeof e1x / sizeof (double) / 3), + (int)(sizeof e1y / sizeof (double) / 3), + (int)(sizeof e1z / sizeof (double) / 3) }, + ne2[3] = {(int)(sizeof e2x / sizeof (double) / 3), + (int)(sizeof e2y / sizeof (double) / 3), + (int)(sizeof e2z / sizeof (double) / 3) }, + ns0[3] = {(int)(sizeof s0x / sizeof (double) / 3), + (int)(sizeof s0y / sizeof (double) / 3), + (int)(sizeof s0z / sizeof (double) / 3) }, + ns1[3] = {(int)(sizeof s1x / sizeof (double) / 3), + (int)(sizeof s1y / sizeof (double) / 3), + (int)(sizeof s1z / sizeof (double) / 3) }, + ns2[3] = {(int)(sizeof s2x / sizeof (double) / 3), + (int)(sizeof s2y / sizeof (double) / 3), + (int)(sizeof s2z / sizeof (double) / 3) }; + int nterms; + +/* Miscellaneous */ + int jstat, i, j; + double t, t2, xyz, xyzd, a, b, c, ct, p, cp, + ph[3], vh[3], pb[3], vb[3], x, y, z; + +/* ------------------------------------------------------------------ */ + +/* Time since reference epoch, Julian years. */ + t = ((date1 - DJ00) + date2) / DJY; + t2 = t*t; + +/* Set status. */ + jstat = fabs(t) <= 100.0 ? 0 : 1; + +/* X then Y then Z. */ + for (i = 0; i < 3; i++) { + + /* Initialize position and velocity component. */ + xyz = 0.0; + xyzd = 0.0; + + /* ------------------------------------------------ */ + /* Obtain component of Sun to Earth ecliptic vector */ + /* ------------------------------------------------ */ + + /* Sun to Earth, T^0 terms. */ + coeffs = ce0[i]; + nterms = ne0[i]; + for (j = 0; j < nterms; j++) { + a = *coeffs++; + b = *coeffs++; + c = *coeffs++; + p = b + c*t; + xyz += a*cos(p); + xyzd -= a*c*sin(p); + } + + /* Sun to Earth, T^1 terms. */ + coeffs = ce1[i]; + nterms = ne1[i]; + for (j = 0; j < nterms; j++) { + a = *coeffs++; + b = *coeffs++; + c = *coeffs++; + ct = c*t; + p = b + ct; + cp = cos(p); + xyz += a*t*cp; + xyzd += a*( cp - ct*sin(p) ); + } + + /* Sun to Earth, T^2 terms. */ + coeffs = ce2[i]; + nterms = ne2[i]; + for (j = 0; j < nterms; j++) { + a = *coeffs++; + b = *coeffs++; + c = *coeffs++; + ct = c*t; + p = b + ct; + cp = cos(p); + xyz += a*t2*cp; + xyzd += a*t*( 2.0*cp - ct*sin(p) ); + } + + /* Heliocentric Earth position and velocity component. */ + ph[i] = xyz; + vh[i] = xyzd / DJY; + + /* ------------------------------------------------ */ + /* Obtain component of SSB to Earth ecliptic vector */ + /* ------------------------------------------------ */ + + /* SSB to Sun, T^0 terms. */ + coeffs = cs0[i]; + nterms = ns0[i]; + for (j = 0; j < nterms; j++) { + a = *coeffs++; + b = *coeffs++; + c = *coeffs++; + p = b + c*t; + xyz += a*cos(p); + xyzd -= a*c*sin(p); + } + + /* SSB to Sun, T^1 terms. */ + coeffs = cs1[i]; + nterms = ns1[i]; + for (j = 0; j < nterms; j++) { + a = *coeffs++; + b = *coeffs++; + c = *coeffs++; + ct = c*t; + p = b + ct; + cp = cos(p); + xyz += a*t*cp; + xyzd += a*(cp - ct*sin(p)); + } + + /* SSB to Sun, T^2 terms. */ + coeffs = cs2[i]; + nterms = ns2[i]; + for (j = 0; j < nterms; j++) { + a = *coeffs++; + b = *coeffs++; + c = *coeffs++; + ct = c*t; + p = b + ct; + cp = cos(p); + xyz += a*t2*cp; + xyzd += a*t*(2.0*cp - ct*sin(p)); + } + + /* Barycentric Earth position and velocity component. */ + pb[i] = xyz; + vb[i] = xyzd / DJY; + + /* Next Cartesian component. */ + } + +/* Rotate from ecliptic to BCRS coordinates. */ + + x = ph[0]; + y = ph[1]; + z = ph[2]; + pvh[0][0] = x + am12*y + am13*z; + pvh[0][1] = am21*x + am22*y + am23*z; + pvh[0][2] = am32*y + am33*z; + + x = vh[0]; + y = vh[1]; + z = vh[2]; + pvh[1][0] = x + am12*y + am13*z; + pvh[1][1] = am21*x + am22*y + am23*z; + pvh[1][2] = am32*y + am33*z; + + x = pb[0]; + y = pb[1]; + z = pb[2]; + pvb[0][0] = x + am12*y + am13*z; + pvb[0][1] = am21*x + am22*y + am23*z; + pvb[0][2] = am32*y + am33*z; + + x = vb[0]; + y = vb[1]; + z = vb[2]; + pvb[1][0] = x + am12*y + am13*z; + pvb[1][1] = am21*x + am22*y + am23*z; + pvb[1][2] = am32*y + am33*z; + +/* Return the status. */ + return jstat; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eqec06.c b/deps/sofa/20231011/c/src/eqec06.c new file mode 100644 index 0000000..7b43388 --- /dev/null +++ b/deps/sofa/20231011/c/src/eqec06.c @@ -0,0 +1,185 @@ +#include "sofa.h" + +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db) +/* +** - - - - - - - - - - +** i a u E q e c 0 6 +** - - - - - - - - - - +** +** Transformation from ICRS equatorial coordinates to ecliptic +** coordinates (mean equinox and ecliptic of date) using IAU 2006 +** precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dr, dd, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauEcm06(date1, date2, rm); + +/* The transformation from ICRS to ecliptic. */ + iauRxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dl = iauAnp(a); + *db = iauAnpm(b); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/eqeq94.c b/deps/sofa/20231011/c/src/eqeq94.c new file mode 100644 index 0000000..a86f8cb --- /dev/null +++ b/deps/sofa/20231011/c/src/eqeq94.c @@ -0,0 +1,185 @@ +#include "sofa.h" +#include "sofam.h" + +double iauEqeq94(double date1, double date2) +/* +** - - - - - - - - - - +** i a u E q e q 9 4 +** - - - - - - - - - - +** +** Equation of the equinoxes, IAU 1994 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TDB date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** Called: +** iauAnpm normalize angle into range +/- pi +** iauNut80 nutation, IAU 1980 +** iauObl80 mean obliquity, IAU 1980 +** +** References: +** +** IAU Resolution C7, Recommendation 3 (1994). +** +** Capitaine, N. & Gontier, A.-M., 1993, Astron.Astrophys., 275, +** 645-650. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, om, dpsi, deps, eps0, ee; + + +/* Interval between fundamental epoch J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Longitude of the mean ascending node of the lunar orbit on the */ +/* ecliptic, measured from the mean equinox of date. */ + om = iauAnpm((450160.280 + (-482890.539 + + (7.455 + 0.008 * t) * t) * t) * DAS2R + + fmod(-5.0 * t, 1.0) * D2PI); + +/* Nutation components and mean obliquity. */ + iauNut80(date1, date2, &dpsi, &deps); + eps0 = iauObl80(date1, date2); + +/* Equation of the equinoxes. */ + ee = dpsi*cos(eps0) + DAS2R*(0.00264*sin(om) + 0.000063*sin(om+om)); + + return ee; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/era00.c b/deps/sofa/20231011/c/src/era00.c new file mode 100644 index 0000000..71fcd09 --- /dev/null +++ b/deps/sofa/20231011/c/src/era00.c @@ -0,0 +1,189 @@ +#include "sofa.h" +#include "sofam.h" + +double iauEra00(double dj1, double dj2) +/* +** - - - - - - - - - +** i a u E r a 0 0 +** - - - - - - - - - +** +** Earth rotation angle (IAU 2000 model). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** dj1,dj2 double UT1 as a 2-part Julian Date (see note) +** +** Returned (function value): +** double Earth rotation angle (radians), range 0-2pi +** +** Notes: +** +** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any +** convenient way between the arguments dj1 and dj2. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, +** among others: +** +** dj1 dj2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. The date & time method is +** best matched to the algorithm used: maximum precision is +** delivered when the dj1 argument is for 0hrs UT1 on the day in +** question and the dj2 argument lies in the range 0 to 1, or vice +** versa. +** +** 2) The algorithm is adapted from Expression 22 of Capitaine et al. +** 2000. The time argument has been expressed in days directly, +** and, to retain precision, integer contributions have been +** eliminated. The same formulation is given in IERS Conventions +** (2003), Chap. 5, Eq. 14. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine N., Guinot B. and McCarthy D.D, 2000, Astron. +** Astrophys., 355, 398-405. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double d1, d2, t, f, theta; + + +/* Days since fundamental epoch. */ + if (dj1 < dj2) { + d1 = dj1; + d2 = dj2; + } else { + d1 = dj2; + d2 = dj1; + } + t = d1 + (d2- DJ00); + +/* Fractional part of T (days). */ + f = fmod(d1, 1.0) + fmod(d2, 1.0); + +/* Earth rotation angle at this UT1. */ + theta = iauAnp(D2PI * (f + 0.7790572732640 + + 0.00273781191135448 * t)); + + return theta; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fad03.c b/deps/sofa/20231011/c/src/fad03.c new file mode 100644 index 0000000..34eedbf --- /dev/null +++ b/deps/sofa/20231011/c/src/fad03.c @@ -0,0 +1,156 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFad03(double t) +/* +** - - - - - - - - - +** i a u F a d 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean elongation of the Moon from the Sun. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double D, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean elongation of the Moon from the Sun (IERS Conventions 2003). */ + a = fmod( 1072260.703692 + + t * ( 1602961601.2090 + + t * ( - 6.3706 + + t * ( 0.006593 + + t * ( - 0.00003169 ) ) ) ), TURNAS ) * DAS2R; + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fae03.c b/deps/sofa/20231011/c/src/fae03.c new file mode 100644 index 0000000..0f705a3 --- /dev/null +++ b/deps/sofa/20231011/c/src/fae03.c @@ -0,0 +1,155 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFae03(double t) +/* +** - - - - - - - - - +** i a u F a e 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Earth. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Earth, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Earth (IERS Conventions 2003). */ + a = fmod(1.753470314 + 628.3075849991 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/faf03.c b/deps/sofa/20231011/c/src/faf03.c new file mode 100644 index 0000000..81f50c8 --- /dev/null +++ b/deps/sofa/20231011/c/src/faf03.c @@ -0,0 +1,158 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFaf03(double t) +/* +** - - - - - - - - - +** i a u F a f 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of the Moon minus mean longitude of the ascending +** node. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double F, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of the Moon minus that of the ascending node */ +/* (IERS Conventions 2003). */ + a = fmod( 335779.526232 + + t * ( 1739527262.8478 + + t * ( - 12.7512 + + t * ( - 0.001037 + + t * ( 0.00000417 ) ) ) ), TURNAS ) * DAS2R; + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/faju03.c b/deps/sofa/20231011/c/src/faju03.c new file mode 100644 index 0000000..5beccd8 --- /dev/null +++ b/deps/sofa/20231011/c/src/faju03.c @@ -0,0 +1,155 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFaju03(double t) +/* +** - - - - - - - - - - +** i a u F a j u 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Jupiter. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Jupiter, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Jupiter (IERS Conventions 2003). */ + a = fmod(0.599546497 + 52.9690962641 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fal03.c b/deps/sofa/20231011/c/src/fal03.c new file mode 100644 index 0000000..dec36b9 --- /dev/null +++ b/deps/sofa/20231011/c/src/fal03.c @@ -0,0 +1,156 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFal03(double t) +/* +** - - - - - - - - - +** i a u F a l 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean anomaly of the Moon. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double l, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean anomaly of the Moon (IERS Conventions 2003). */ + a = fmod( 485868.249036 + + t * ( 1717915923.2178 + + t * ( 31.8792 + + t * ( 0.051635 + + t * ( - 0.00024470 ) ) ) ), TURNAS ) * DAS2R; + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/falp03.c b/deps/sofa/20231011/c/src/falp03.c new file mode 100644 index 0000000..7c8fae4 --- /dev/null +++ b/deps/sofa/20231011/c/src/falp03.c @@ -0,0 +1,156 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFalp03(double t) +/* +** - - - - - - - - - - +** i a u F a l p 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean anomaly of the Sun. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double l', radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean anomaly of the Sun (IERS Conventions 2003). */ + a = fmod( 1287104.793048 + + t * ( 129596581.0481 + + t * ( - 0.5532 + + t * ( 0.000136 + + t * ( - 0.00001149 ) ) ) ), TURNAS ) * DAS2R; + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fama03.c b/deps/sofa/20231011/c/src/fama03.c new file mode 100644 index 0000000..f238727 --- /dev/null +++ b/deps/sofa/20231011/c/src/fama03.c @@ -0,0 +1,155 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFama03(double t) +/* +** - - - - - - - - - - +** i a u F a m a 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Mars. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Mars, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Mars (IERS Conventions 2003). */ + a = fmod(6.203480913 + 334.0612426700 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fame03.c b/deps/sofa/20231011/c/src/fame03.c new file mode 100644 index 0000000..6b54f70 --- /dev/null +++ b/deps/sofa/20231011/c/src/fame03.c @@ -0,0 +1,155 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFame03(double t) +/* +** - - - - - - - - - - +** i a u F a m e 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Mercury. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Mercury, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Mercury (IERS Conventions 2003). */ + a = fmod(4.402608842 + 2608.7903141574 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fane03.c b/deps/sofa/20231011/c/src/fane03.c new file mode 100644 index 0000000..bfa61f3 --- /dev/null +++ b/deps/sofa/20231011/c/src/fane03.c @@ -0,0 +1,152 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFane03(double t) +/* +** - - - - - - - - - - +** i a u F a n e 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Neptune. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Neptune, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is adapted from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Neptune (IERS Conventions 2003). */ + a = fmod(5.311886287 + 3.8133035638 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/faom03.c b/deps/sofa/20231011/c/src/faom03.c new file mode 100644 index 0000000..21d9075 --- /dev/null +++ b/deps/sofa/20231011/c/src/faom03.c @@ -0,0 +1,157 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFaom03(double t) +/* +** - - - - - - - - - - +** i a u F a o m 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of the Moon's ascending node. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double Omega, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J., 1994, Astron.Astrophys. 282, 663-683. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of the Moon's ascending node */ +/* (IERS Conventions 2003). */ + a = fmod( 450160.398036 + + t * ( - 6962890.5431 + + t * ( 7.4722 + + t * ( 0.007702 + + t * ( - 0.00005939 ) ) ) ), TURNAS ) * DAS2R; + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fapa03.c b/deps/sofa/20231011/c/src/fapa03.c new file mode 100644 index 0000000..1fd3e70 --- /dev/null +++ b/deps/sofa/20231011/c/src/fapa03.c @@ -0,0 +1,155 @@ +#include "sofa.h" + +double iauFapa03(double t) +/* +** - - - - - - - - - - +** i a u F a p a 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** general accumulated precession in longitude. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double general precession in longitude, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003). It +** is taken from Kinoshita & Souchay (1990) and comes originally +** from Lieske et al. (1977). +** +** References: +** +** Kinoshita, H. and Souchay J. 1990, Celest.Mech. and Dyn.Astron. +** 48, 187 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* General accumulated precession in longitude. */ + a = (0.024381750 + 0.00000538691 * t) * t; + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fasa03.c b/deps/sofa/20231011/c/src/fasa03.c new file mode 100644 index 0000000..a5a02de --- /dev/null +++ b/deps/sofa/20231011/c/src/fasa03.c @@ -0,0 +1,155 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFasa03(double t) +/* +** - - - - - - - - - - +** i a u F a s a 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Saturn. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Saturn, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Saturn (IERS Conventions 2003). */ + a = fmod(0.874016757 + 21.3299104960 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/faur03.c b/deps/sofa/20231011/c/src/faur03.c new file mode 100644 index 0000000..95735b7 --- /dev/null +++ b/deps/sofa/20231011/c/src/faur03.c @@ -0,0 +1,152 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFaur03(double t) +/* +** - - - - - - - - - - +** i a u F a u r 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Uranus. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Uranus, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is adapted from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Uranus (IERS Conventions 2003). */ + a = fmod(5.481293872 + 7.4781598567 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fave03.c b/deps/sofa/20231011/c/src/fave03.c new file mode 100644 index 0000000..18931dc --- /dev/null +++ b/deps/sofa/20231011/c/src/fave03.c @@ -0,0 +1,155 @@ +#include "sofa.h" +#include "sofam.h" + +double iauFave03(double t) +/* +** - - - - - - - - - - +** i a u F a v e 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Venus. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Venus, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double a; + + +/* Mean longitude of Venus (IERS Conventions 2003). */ + a = fmod(3.176146697 + 1021.3285546211 * t, D2PI); + + return a; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk425.c b/deps/sofa/20231011/c/src/fk425.c new file mode 100644 index 0000000..dc60b99 --- /dev/null +++ b/deps/sofa/20231011/c/src/fk425.c @@ -0,0 +1,322 @@ +#include "sofa.h" +#include "sofam.h" + +void iauFk425(double r1950, double d1950, + double dr1950, double dd1950, + double p1950, double v1950, + double *r2000, double *d2000, + double *dr2000, double *dd2000, + double *p2000, double *v2000) +/* +** - - - - - - - - - +** i a u F k 4 2 5 +** - - - - - - - - - +** +** Convert B1950.0 FK4 star catalog data to J2000.0 FK5. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** This function converts a star's catalog data from the old FK4 +** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system. +** +** Given: (all B1950.0, FK4) +** r1950,d1950 double B1950.0 RA,Dec (rad) +** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) +** p1950 double parallax (arcsec) +** v1950 double radial velocity (km/s, +ve = moving away) +** +** Returned: (all J2000.0, FK5) +** r2000,d2000 double J2000.0 RA,Dec (rad) +** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) +** p2000 double parallax (arcsec) +** v2000 double radial velocity (km/s, +ve = moving away) +** +** Notes: +** +** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, +** and are per year rather than per century. +** +** 2) The conversion is somewhat complicated, for several reasons: +** +** . Change of standard epoch from B1950.0 to J2000.0. +** +** . An intermediate transition date of 1984 January 1.0 TT. +** +** . A change of precession model. +** +** . Change of time unit for proper motion (tropical to Julian). +** +** . FK4 positions include the E-terms of aberration, to simplify +** the hand computation of annual aberration. FK5 positions +** assume a rigorous aberration computation based on the Earth's +** barycentric velocity. +** +** . The E-terms also affect proper motions, and in particular cause +** objects at large distances to exhibit fictitious proper +** motions. +** +** The algorithm is based on Smith et al. (1989) and Yallop et al. +** (1989), which presented a matrix method due to Standish (1982) as +** developed by Aoki et al. (1983), using Kinoshita's development of +** Andoyer's post-Newcomb precession. The numerical constants from +** Seidelmann (1992) are used canonically. +** +** 3) Conversion from B1950.0 FK4 to J2000.0 FK5 only is provided for. +** Conversions for different epochs and equinoxes would require +** additional treatment for precession, proper motion and E-terms. +** +** 4) In the FK4 catalog the proper motions of stars within 10 degrees +** of the poles do not embody differential E-terms effects and +** should, strictly speaking, be handled in a different manner from +** stars outside these regions. However, given the general lack of +** homogeneity of the star data available for routine astrometry, +** the difficulties of handling positions that may have been +** determined from astrometric fields spanning the polar and non- +** polar regions, the likelihood that the differential E-terms +** effect was not taken into account when allowing for proper motion +** in past astrometry, and the undesirability of a discontinuity in +** the algorithm, the decision has been made in this SOFA algorithm +** to include the effects of differential E-terms on the proper +** motions for all stars, whether polar or not. At epoch J2000.0, +** and measuring "on the sky" rather than in terms of RA change, the +** errors resulting from this simplification are less than +** 1 milliarcsecond in position and 1 milliarcsecond per century in +** proper motion. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauPv2s pv-vector to spherical coordinates +** iauPdp scalar product of two p-vectors +** iauPvmpv pv-vector minus pv_vector +** iauPvppv pv-vector plus pv_vector +** iauS2pv spherical coordinates to pv-vector +** iauSxp multiply p-vector by scalar +** +** References: +** +** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 +** FK4-based positions of stars to epoch J2000.0 positions in +** accordance with the new IAU resolutions". Astron.Astrophys. +** 128, 263-267. +** +** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the +** Astronomical Almanac", ISBN 0-935702-68-7. +** +** Smith, C.A. et al., 1989, "The transformation of astrometric +** catalog systems to the equinox J2000.0". Astron.J. 97, 265. +** +** Standish, E.M., 1982, "Conversion of positions and proper motions +** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., +** 115, 1, 20-22. +** +** Yallop, B.D. et al., 1989, "Transformation of mean star places +** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". +** Astron.J. 97, 274. +** +** This revision: 2023 March 20 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Radians per year to arcsec per century */ + const double PMF = 100.0*DR2AS; + +/* Small number to avoid arithmetic problems */ + const double TINY = 1e-30; + +/* Miscellaneous */ + double r, d, ur, ud, px, rv, pxvf, w, rd; + int i, j, k, l; + +/* Pv-vectors */ + double r0[2][3], pv1[2][3], pv2[2][3]; + +/* +** CANONICAL CONSTANTS (Seidelmann 1992) +*/ + +/* Km per sec to au per tropical century */ +/* = 86400 * 36524.2198782 / 149597870.7 */ + const double VF = 21.095; + +/* Constant pv-vector (cf. Seidelmann 3.591-2, vectors A and Adot) */ + static double a[2][3] = { + { -1.62557e-6, -0.31919e-6, -0.13843e-6 }, + { +1.245e-3, -1.580e-3, -0.659e-3 } + }; + +/* 3x2 matrix of pv-vectors (cf. Seidelmann 3.591-4, matrix M) */ + static double em[2][3][2][3] = { + + { { { +0.9999256782, -0.0111820611, -0.0048579477 }, + { +0.00000242395018, -0.00000002710663, -0.00000001177656 } }, + + { { +0.0111820610, +0.9999374784, -0.0000271765 }, + { +0.00000002710663, +0.00000242397878, -0.00000000006587 } }, + + { { +0.0048579479, -0.0000271474, +0.9999881997, }, + { +0.00000001177656, -0.00000000006582, +0.00000242410173 } } }, + + { { { -0.000551, -0.238565, +0.435739 }, + { +0.99994704, -0.01118251, -0.00485767 } }, + + { { +0.238514, -0.002667, -0.008541 }, + { +0.01118251, +0.99995883, -0.00002718 } }, + + { { -0.435623, +0.012254, +0.002117 }, + { +0.00485767, -0.00002714, +1.00000956 } } } + + }; + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +/* The FK4 data (units radians and arcsec per tropical century). */ + r = r1950; + d = d1950; + ur = dr1950*PMF; + ud = dd1950*PMF; + px = p1950; + rv = v1950; + +/* Express as a pv-vector. */ + pxvf = px*VF; + w = rv*pxvf; + iauS2pv(r, d, 1.0, ur, ud, w, r0); + +/* Allow for E-terms (cf. Seidelmann 3.591-2). */ + iauPvmpv(r0, a, pv1); + iauSxp(iauPdp(r0[0], a[0]), r0[0], pv2[0]); + iauSxp(iauPdp(r0[0], a[1]), r0[0], pv2[1]); + iauPvppv(pv1, pv2, pv1); + +/* Convert pv-vector to Fricke system (cf. Seidelmann 3.591-3). */ + for ( i = 0; i < 2; i++ ) { + for ( j = 0; j < 3; j++ ) { + w = 0.0; + for ( k = 0; k < 2; k++ ) { + for ( l = 0; l < 3; l++ ) { + w += em[i][j][k][l] * pv1[k][l]; + } + } + pv2[i][j] = w; + } + } + +/* Revert to catalog form. */ + iauPv2s(pv2, &r, &d, &w, &ur, &ud, &rd); + if ( px > TINY ) { + rv = rd/pxvf; + px = px/w; + } + +/* Return the results. */ + *r2000 = iauAnp(r); + *d2000 = d; + *dr2000 = ur/PMF; + *dd2000 = ud/PMF; + *v2000 = rv; + *p2000 = px; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk45z.c b/deps/sofa/20231011/c/src/fk45z.c new file mode 100644 index 0000000..0dae492 --- /dev/null +++ b/deps/sofa/20231011/c/src/fk45z.c @@ -0,0 +1,252 @@ +#include "sofa.h" +#include "sofam.h" + +void iauFk45z(double r1950, double d1950, double bepoch, + double *r2000, double *d2000) +/* +** - - - - - - - - - +** i a u F k 4 5 z +** - - - - - - - - - +** +** Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero +** proper motion in the FK5 system. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** This function converts a star's catalog data from the old FK4 +** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, +** in such a way that the FK5 proper motion is zero. Because such a +** star has, in general, a non-zero proper motion in the FK4 system, +** the function requires the epoch at which the position in the FK4 +** system was determined. +** +** Given: +** r1950,d1950 double B1950.0 FK4 RA,Dec at epoch (rad) +** bepoch double Besselian epoch (e.g. 1979.3) +** +** Returned: +** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) +** +** Notes: +** +** 1) The epoch bepoch is strictly speaking Besselian, but if a +** Julian epoch is supplied the result will be affected only to a +** negligible extent. +** +** 2) The method is from Appendix 2 of Aoki et al. (1983), but using +** the constants of Seidelmann (1992). See the function iauFk425 +** for a general introduction to the FK4 to FK5 conversion. +** +** 3) Conversion from equinox B1950.0 FK4 to equinox J2000.0 FK5 only +** is provided for. Conversions for different starting and/or +** ending epochs would require additional treatment for precession, +** proper motion and E-terms. +** +** 4) In the FK4 catalog the proper motions of stars within 10 degrees +** of the poles do not embody differential E-terms effects and +** should, strictly speaking, be handled in a different manner from +** stars outside these regions. However, given the general lack of +** homogeneity of the star data available for routine astrometry, +** the difficulties of handling positions that may have been +** determined from astrometric fields spanning the polar and non- +** polar regions, the likelihood that the differential E-terms +** effect was not taken into account when allowing for proper motion +** in past astrometry, and the undesirability of a discontinuity in +** the algorithm, the decision has been made in this SOFA algorithm +** to include the effects of differential E-terms on the proper +** motions for all stars, whether polar or not. At epoch J2000.0, +** and measuring "on the sky" rather than in terms of RA change, the +** errors resulting from this simplification are less than +** 1 milliarcsecond in position and 1 milliarcsecond per century in +** proper motion. +** +** References: +** +** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 +** FK4-based positions of stars to epoch J2000.0 positions in +** accordance with the new IAU resolutions". Astron.Astrophys. +** 128, 263-267. +** +** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the +** Astronomical Almanac", ISBN 0-935702-68-7. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauC2s p-vector to spherical +** iauEpb2jd Besselian epoch to Julian date +** iauEpj Julian date to Julian epoch +** iauPdp scalar product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPpsp p-vector plus scaled p-vector +** iauPvu update a pv-vector +** iauS2c spherical to p-vector +** +** This revision: 2023 March 4 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Radians per year to arcsec per century */ + const double PMF = 100.0*DR2AS; + +/* Position and position+velocity vectors */ + double r0[3], p[3], pv[2][3]; + +/* Miscellaneous */ + double w, djm0, djm; + int i, j, k; + +/* +** CANONICAL CONSTANTS (Seidelmann 1992) +*/ + +/* Vectors A and Adot (Seidelmann 3.591-2) */ + static double a[3] = { -1.62557e-6, -0.31919e-6, -0.13843e-6 }; + static double ad[3] = { +1.245e-3, -1.580e-3, -0.659e-3 }; + +/* 3x2 matrix of p-vectors (cf. Seidelmann 3.591-4, matrix M) */ + static double em[2][3][3] = { + { { +0.9999256782, -0.0111820611, -0.0048579477 }, + { +0.0111820610, +0.9999374784, -0.0000271765 }, + { +0.0048579479, -0.0000271474, +0.9999881997 } }, + { { -0.000551, -0.238565, +0.435739 }, + { +0.238514, -0.002667, -0.008541 }, + { -0.435623, +0.012254, +0.002117 } } + }; + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +/* Spherical coordinates to p-vector. */ + iauS2c(r1950, d1950, r0); + +/* Adjust p-vector A to give zero proper motion in FK5. */ + w = (bepoch - 1950) / PMF; + iauPpsp(a, w, ad, p); + +/* Remove E-terms. */ + iauPpsp(p, -iauPdp(r0,p), r0, p); + iauPmp(r0, p, p); + +/* Convert to Fricke system pv-vector (cf. Seidelmann 3.591-3). */ + for ( i = 0; i < 2; i++ ) { + for ( j = 0; j < 3; j++ ) { + w = 0.0; + for ( k = 0; k < 3; k++ ) { + w += em[i][j][k] * p[k]; + } + pv[i][j] = w; + } + } + +/* Allow for fictitious proper motion. */ + iauEpb2jd(bepoch, &djm0, &djm); + w = (iauEpj(djm0,djm)-2000.0) / PMF; + iauPvu(w, pv, pv); + +/* Revert to spherical coordinates. */ + iauC2s(pv[0], &w, d2000); + *r2000 = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk524.c b/deps/sofa/20231011/c/src/fk524.c new file mode 100644 index 0000000..5d4bba5 --- /dev/null +++ b/deps/sofa/20231011/c/src/fk524.c @@ -0,0 +1,334 @@ +#include "sofa.h" +#include "sofam.h" + +void iauFk524(double r2000, double d2000, + double dr2000, double dd2000, + double p2000, double v2000, + double *r1950, double *d1950, + double *dr1950, double *dd1950, + double *p1950, double *v1950) +/* +** - - - - - - - - - +** i a u F k 5 2 4 +** - - - - - - - - - +** +** Convert J2000.0 FK5 star catalog data to B1950.0 FK4. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: (all J2000.0, FK5) +** r2000,d2000 double J2000.0 RA,Dec (rad) +** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) +** p2000 double parallax (arcsec) +** v2000 double radial velocity (km/s, +ve = moving away) +** +** Returned: (all B1950.0, FK4) +** r1950,d1950 double B1950.0 RA,Dec (rad) +** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) +** p1950 double parallax (arcsec) +** v1950 double radial velocity (km/s, +ve = moving away) +** +** Notes: +** +** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, +** and are per year rather than per century. +** +** 2) The conversion is somewhat complicated, for several reasons: +** +** . Change of standard epoch from J2000.0 to B1950.0. +** +** . An intermediate transition date of 1984 January 1.0 TT. +** +** . A change of precession model. +** +** . Change of time unit for proper motion (Julian to tropical). +** +** . FK4 positions include the E-terms of aberration, to simplify +** the hand computation of annual aberration. FK5 positions +** assume a rigorous aberration computation based on the Earth's +** barycentric velocity. +** +** . The E-terms also affect proper motions, and in particular cause +** objects at large distances to exhibit fictitious proper +** motions. +** +** The algorithm is based on Smith et al. (1989) and Yallop et al. +** (1989), which presented a matrix method due to Standish (1982) as +** developed by Aoki et al. (1983), using Kinoshita's development of +** Andoyer's post-Newcomb precession. The numerical constants from +** Seidelmann (1992) are used canonically. +** +** 4) In the FK4 catalog the proper motions of stars within 10 degrees +** of the poles do not embody differential E-terms effects and +** should, strictly speaking, be handled in a different manner from +** stars outside these regions. However, given the general lack of +** homogeneity of the star data available for routine astrometry, +** the difficulties of handling positions that may have been +** determined from astrometric fields spanning the polar and non- +** polar regions, the likelihood that the differential E-terms +** effect was not taken into account when allowing for proper motion +** in past astrometry, and the undesirability of a discontinuity in +** the algorithm, the decision has been made in this SOFA algorithm +** to include the effects of differential E-terms on the proper +** motions for all stars, whether polar or not. At epoch J2000.0, +** and measuring "on the sky" rather than in terms of RA change, the +** errors resulting from this simplification are less than +** 1 milliarcsecond in position and 1 milliarcsecond per century in +** proper motion. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauPdp scalar product of two p-vectors +** iauPm modulus of p-vector +** iauPmp p-vector minus p-vector +** iauPpp p-vector pluus p-vector +** iauPv2s pv-vector to spherical coordinates +** iauS2pv spherical coordinates to pv-vector +** iauSxp multiply p-vector by scalar +** +** References: +** +** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 +** FK4-based positions of stars to epoch J2000.0 positions in +** accordance with the new IAU resolutions". Astron.Astrophys. +** 128, 263-267. +** +** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the +** Astronomical Almanac", ISBN 0-935702-68-7. +** +** Smith, C.A. et al., 1989, "The transformation of astrometric +** catalog systems to the equinox J2000.0". Astron.J. 97, 265. +** +** Standish, E.M., 1982, "Conversion of positions and proper motions +** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., +** 115, 1, 20-22. +** +** Yallop, B.D. et al., 1989, "Transformation of mean star places +** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". +** Astron.J. 97, 274. +** +** This revision: 2023 March 20 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Radians per year to arcsec per century */ + const double PMF = 100.0*DR2AS; + +/* Small number to avoid arithmetic problems */ + const double TINY = 1e-30; + +/* Miscellaneous */ + double r, d, ur, ud, px, rv, pxvf, w, rd; + int i, j, k, l; + +/* Vectors, p and pv */ + double r0[2][3], r1[2][3], p1[3], p2[3], pv[2][3]; + +/* +** CANONICAL CONSTANTS (Seidelmann 1992) +*/ + +/* Km per sec to au per tropical century */ +/* = 86400 * 36524.2198782 / 149597870.7 */ + const double VF = 21.095; + +/* Constant pv-vector (cf. Seidelmann 3.591-2, vectors A and Adot) */ + static double a[2][3] = { + { -1.62557e-6, -0.31919e-6, -0.13843e-6 }, + { +1.245e-3, -1.580e-3, -0.659e-3 } + }; + +/* 3x2 matrix of pv-vectors (cf. Seidelmann 3.592-1, matrix M^-1) */ + static double em[2][3][2][3] = { + + { { { +0.9999256795, +0.0111814828, +0.0048590039, }, + { -0.00000242389840, -0.00000002710544, -0.00000001177742 } }, + + { { -0.0111814828, +0.9999374849, -0.0000271771, }, + { +0.00000002710544, -0.00000242392702, +0.00000000006585 } }, + + { { -0.0048590040, -0.0000271557, +0.9999881946, }, + { +0.00000001177742, +0.00000000006585, -0.00000242404995 } } }, + + { { { -0.000551, +0.238509, -0.435614, }, + { +0.99990432, +0.01118145, +0.00485852 } }, + + { { -0.238560, -0.002667, +0.012254, }, + { -0.01118145, +0.99991613, -0.00002717 } }, + + { { +0.435730, -0.008541, +0.002117, }, + { -0.00485852, -0.00002716, +0.99996684 } } } + + }; + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +/* The FK5 data (units radians and arcsec per Julian century). */ + r = r2000; + d = d2000; + ur = dr2000*PMF; + ud = dd2000*PMF; + px = p2000; + rv = v2000; + +/* Express as a pv-vector. */ + pxvf = px * VF; + w = rv * pxvf; + iauS2pv(r, d, 1.0, ur, ud, w, r0); + +/* Convert pv-vector to Bessel-Newcomb system (cf. Seidelmann 3.592-1). */ + for ( i = 0; i < 2; i++ ) { + for ( j = 0; j < 3; j++ ) { + w = 0.0; + for ( k = 0; k < 2; k++ ) { + for ( l = 0; l < 3; l++ ) { + w += em[i][j][k][l] * r0[k][l]; + } + } + r1[i][j] = w; + } + } + +/* Apply E-terms (equivalent to Seidelmann 3.592-3, one iteration). */ + +/* Direction. */ + w = iauPm(r1[0]); + iauSxp(iauPdp(r1[0],a[0]), r1[0], p1); + iauSxp(w, a[0], p2); + iauPmp(p2, p1, p1); + iauPpp(r1[0], p1, p1); + +/* Recompute length. */ + w = iauPm(p1); + +/* Direction. */ + iauSxp(iauPdp(r1[0],a[0]), r1[0], p1); + iauSxp(w, a[0], p2); + iauPmp(p2, p1, p1); + iauPpp(r1[0], p1, pv[0]); + +/* Derivative. */ + iauSxp(iauPdp(r1[0],a[1]), pv[0], p1); + iauSxp(w, a[1], p2); + iauPmp(p2, p1, p1); + iauPpp(r1[1], p1, pv[1]); + +/* Revert to catalog form. */ + iauPv2s(pv, &r, &d, &w, &ur, &ud, &rd); + if ( px > TINY ) { + rv = rd/pxvf; + px = px/w; + } + +/* Return the results. */ + *r1950 = iauAnp(r); + *d1950 = d; + *dr1950 = ur/PMF; + *dd1950 = ud/PMF; + *p1950 = px; + *v1950 = rv; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk52h.c b/deps/sofa/20231011/c/src/fk52h.c new file mode 100644 index 0000000..3c7ace0 --- /dev/null +++ b/deps/sofa/20231011/c/src/fk52h.c @@ -0,0 +1,193 @@ +#include "sofa.h" + +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) +/* +** - - - - - - - - - +** i a u F k 5 2 h +** - - - - - - - - - +** +** Transform FK5 (J2000.0) star data into the Hipparcos system. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (all FK5, equinox J2000.0, epoch J2000.0): +** r5 double RA (radians) +** d5 double Dec (radians) +** dr5 double proper motion in RA (dRA/dt, rad/Jyear) +** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) +** px5 double parallax (arcsec) +** rv5 double radial velocity (km/s, positive = receding) +** +** Returned (all Hipparcos, epoch J2000.0): +** rh double RA (radians) +** dh double Dec (radians) +** drh double proper motion in RA (dRA/dt, rad/Jyear) +** ddh double proper motion in Dec (dDec/dt, rad/Jyear) +** pxh double parallax (arcsec) +** rvh double radial velocity (km/s, positive = receding) +** +** Notes: +** +** 1) This function transforms FK5 star positions and proper motions +** into the system of the Hipparcos catalog. +** +** 2) The proper motions in RA are dRA/dt rather than +** cos(Dec)*dRA/dt, and are per year rather than per century. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure +** rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 4) See also iauH2fk5, iauFk5hz, iauHfk5z. +** +** Called: +** iauStarpv star catalog data to space motion pv-vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauRxp product of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauPpp p-vector plus p-vector +** iauPvstar space motion pv-vector to star catalog data +** +** Reference: +** +** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int i; + double pv5[2][3], r5h[3][3], s5h[3], wxp[3], vv[3], pvh[2][3]; + + +/* FK5 barycentric position/velocity pv-vector (normalized). */ + iauStarpv(r5, d5, dr5, dd5, px5, rv5, pv5); + +/* FK5 to Hipparcos orientation matrix and spin vector. */ + iauFk5hip(r5h, s5h); + +/* Make spin units per day instead of per year. */ + for ( i = 0; i < 3; s5h[i++] /= 365.25 ); + +/* Orient the FK5 position into the Hipparcos system. */ + iauRxp(r5h, pv5[0], pvh[0]); + +/* Apply spin to the position giving an extra space motion component. */ + iauPxp(pv5[0], s5h, wxp); + +/* Add this component to the FK5 space motion. */ + iauPpp(wxp, pv5[1], vv); + +/* Orient the FK5 space motion into the Hipparcos system. */ + iauRxp(r5h, vv, pvh[1]); + +/* Hipparcos pv-vector to spherical. */ + iauPvstar(pvh, rh, dh, drh, ddh, pxh, rvh); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk54z.c b/deps/sofa/20231011/c/src/fk54z.c new file mode 100644 index 0000000..a300883 --- /dev/null +++ b/deps/sofa/20231011/c/src/fk54z.c @@ -0,0 +1,193 @@ +#include "sofa.h" + +void iauFk54z(double r2000, double d2000, double bepoch, + double *r1950, double *d1950, + double *dr1950, double *dd1950) +/* +** - - - - - - - - - +** i a u F k 5 4 z +** - - - - - - - - - +** +** Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero +** proper motion in FK5 and parallax. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) +** bepoch double Besselian epoch (e.g. 1950.0) +** +** Returned: +** r1950,d1950 double B1950.0 FK4 RA,Dec (rad) at epoch BEPOCH +** dr1950,dd1950 double B1950.0 FK4 proper motions (rad/trop.yr) +** +** Notes: +** +** 1) In contrast to the iauFk524 function, here the FK5 proper +** motions, the parallax and the radial velocity are presumed zero. +** +** 2) This function converts a star position from the IAU 1976 FK5 +** (Fricke) system to the former FK4 (Bessel-Newcomb) system, for +** cases such as distant radio sources where it is presumed there is +** zero parallax and no proper motion. Because of the E-terms of +** aberration, such objects have (in general) non-zero proper motion +** in FK4, and the present function returns those fictitious proper +** motions. +** +** 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. +** Conversions involving other equinoxes would require additional +** treatment for precession. +** +** 4) The position returned by this function is in the B1950.0 FK4 +** reference system but at Besselian epoch bepoch. For comparison +** with catalogs the bepoch argument will frequently be 1950.0. (In +** this context the distinction between Besselian and Julian epoch +** is insignificant.) +** +** 5) The RA component of the returned (fictitious) proper motion is +** dRA/dt rather than cos(Dec)*dRA/dt. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauC2s p-vector to spherical +** iauFk524 FK4 to FK5 +** iauS2c spherical to p-vector +** +** This revision: 2023 March 5 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r, d, pr, pd, px, rv, p[3], w, v[3]; + int i; + + +/* FK5 equinox J2000.0 to FK4 equinox B1950.0. */ + iauFk524(r2000, d2000, 0.0, 0.0, 0.0, 0.0, + &r, &d, &pr, &pd, &px, &rv); + +/* Spherical to Cartesian. */ + iauS2c(r, d, p); + +/* Fictitious proper motion (radians per year). */ + v[0] = - pr*p[1] - pd*cos(r)*sin(d); + v[1] = pr*p[0] - pd*sin(r)*sin(d); + v[2] = pd*cos(d); + +/* Apply the motion. */ + w = bepoch - 1950.0; + for ( i = 0; i < 3; i++ ) { + p[i] += w*v[i]; + } + +/* Cartesian to spherical. */ + iauC2s(p, &w, d1950); + *r1950 = iauAnp(w); + +/* Fictitious proper motion. */ + *dr1950 = pr; + *dd1950 = pd; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk5hip.c b/deps/sofa/20231011/c/src/fk5hip.c new file mode 100644 index 0000000..dd9b28f --- /dev/null +++ b/deps/sofa/20231011/c/src/fk5hip.c @@ -0,0 +1,177 @@ +#include "sofa.h" +#include "sofam.h" + +void iauFk5hip(double r5h[3][3], double s5h[3]) +/* +** - - - - - - - - - - +** i a u F k 5 h i p +** - - - - - - - - - - +** +** FK5 to Hipparcos rotation and spin. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Returned: +** r5h double[3][3] r-matrix: FK5 rotation wrt Hipparcos (Note 2) +** s5h double[3] r-vector: FK5 spin wrt Hipparcos (Note 3) +** +** Notes: +** +** 1) This function models the FK5 to Hipparcos transformation as a +** pure rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 2) The r-matrix r5h operates in the sense: +** +** P_Hipparcos = r5h x P_FK5 +** +** where P_FK5 is a p-vector in the FK5 frame, and P_Hipparcos is +** the equivalent Hipparcos p-vector. +** +** 3) The r-vector s5h represents the time derivative of the FK5 to +** Hipparcos rotation. The units are radians per year (Julian, +** TDB). +** +** Called: +** iauRv2m r-vector to r-matrix +** +** Reference: +** +** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). +** +** This revision: 2023 March 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double v[3]; + +/* FK5 wrt Hipparcos orientation and spin (radians, radians/year) */ + double epx, epy, epz; + double omx, omy, omz; + + + epx = -19.9e-3 * DAS2R; + epy = -9.1e-3 * DAS2R; + epz = 22.9e-3 * DAS2R; + + omx = -0.30e-3 * DAS2R; + omy = 0.60e-3 * DAS2R; + omz = 0.70e-3 * DAS2R; + +/* FK5 to Hipparcos orientation expressed as an r-vector. */ + v[0] = epx; + v[1] = epy; + v[2] = epz; + +/* Re-express as an r-matrix. */ + iauRv2m(v, r5h); + +/* Hipparcos wrt FK5 spin expressed as an r-vector. */ + s5h[0] = omx; + s5h[1] = omy; + s5h[2] = omz; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fk5hz.c b/deps/sofa/20231011/c/src/fk5hz.c new file mode 100644 index 0000000..d2da3e2 --- /dev/null +++ b/deps/sofa/20231011/c/src/fk5hz.c @@ -0,0 +1,211 @@ +#include "sofa.h" +#include "sofam.h" + +void iauFk5hz(double r5, double d5, double date1, double date2, + double *rh, double *dh) +/* +** - - - - - - - - - +** i a u F k 5 h z +** - - - - - - - - - +** +** Transform an FK5 (J2000.0) star position into the system of the +** Hipparcos catalog, assuming zero Hipparcos proper motion. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** r5 double FK5 RA (radians), equinox J2000.0, at date +** d5 double FK5 Dec (radians), equinox J2000.0, at date +** date1,date2 double TDB date (Notes 1,2) +** +** Returned: +** rh double Hipparcos RA (radians) +** dh double Hipparcos Dec (radians) +** +** Notes: +** +** 1) This function converts a star position from the FK5 system to +** the Hipparcos system, in such a way that the Hipparcos proper +** motion is zero. Because such a star has, in general, a non-zero +** proper motion in the FK5 system, the function requires the date +** at which the position in the FK5 system was determined. +** +** 2) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure +** rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 4) The position returned by this function is in the Hipparcos +** reference system but at date date1+date2. +** +** 5) See also iauFk52h, iauH2fk5, iauHfk5z. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauSxp multiply p-vector by scalar +** iauRv2m r-vector to r-matrix +** iauTrxp product of transpose of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. +** +** This revision: 2023 March 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, p5e[3], r5h[3][3], s5h[3], vst[3], rst[3][3], p5[3], + ph[3], w; + + +/* Interval from given date to fundamental epoch J2000.0 (JY). */ + t = - ((date1 - DJ00) + date2) / DJY; + +/* FK5 barycentric position vector. */ + iauS2c(r5, d5, p5e); + +/* FK5 to Hipparcos orientation matrix and spin vector. */ + iauFk5hip(r5h, s5h); + +/* Accumulated Hipparcos wrt FK5 spin over that interval. */ + iauSxp(t, s5h, vst); + +/* Express the accumulated spin as a rotation matrix. */ + iauRv2m(vst, rst); + +/* Derotate the vector's FK5 axes back to date. */ + iauTrxp(rst, p5e, p5); + +/* Rotate the vector into the Hipparcos system. */ + iauRxp(r5h, p5, ph); + +/* Hipparcos vector to spherical. */ + iauC2s(ph, &w, dh); + *rh = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fw2m.c b/deps/sofa/20231011/c/src/fw2m.c new file mode 100644 index 0000000..f5232db --- /dev/null +++ b/deps/sofa/20231011/c/src/fw2m.c @@ -0,0 +1,189 @@ +#include "sofa.h" + +void iauFw2m(double gamb, double phib, double psi, double eps, + double r[3][3]) +/* +** - - - - - - - - +** i a u F w 2 m +** - - - - - - - - +** +** Form rotation matrix given the Fukushima-Williams angles. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psi double F-W angle psi (radians) +** eps double F-W angle epsilon (radians) +** +** Returned: +** r double[3][3] rotation matrix +** +** Notes: +** +** 1) Naming the following points: +** +** e = J2000.0 ecliptic pole, +** p = GCRS pole, +** E = ecliptic pole of date, +** and P = CIP, +** +** the four Fukushima-Williams angles are as follows: +** +** gamb = gamma = epE +** phib = phi = pE +** psi = psi = pEP +** eps = epsilon = EP +** +** 2) The matrix representing the combined effects of frame bias, +** precession and nutation is: +** +** NxPxB = R_1(-eps).R_3(-psi).R_1(phib).R_3(gamb) +** +** 3) The present function can construct three different matrices, +** depending on which angles are supplied as the arguments gamb, +** phib, psi and eps: +** +** o To obtain the nutation x precession x frame bias matrix, +** first generate the four precession angles known conventionally +** as gamma_bar, phi_bar, psi_bar and epsilon_A, then generate +** the nutation components Dpsi and Depsilon and add them to +** psi_bar and epsilon_A, and finally call the present function +** using those four angles as arguments. +** +** o To obtain the precession x frame bias matrix, generate the +** four precession angles and call the present function. +** +** o To obtain the frame bias matrix, generate the four precession +** angles for date J2000.0 and call the present function. +** +** The nutation-only and precession-only matrices can if necessary +** be obtained by combining these three appropriately. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRx rotate around X-axis +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Construct the matrix. */ + iauIr(r); + iauRz(gamb, r); + iauRx(phib, r); + iauRz(-psi, r); + iauRx(-eps, r); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/fw2xy.c b/deps/sofa/20231011/c/src/fw2xy.c new file mode 100644 index 0000000..aa7d392 --- /dev/null +++ b/deps/sofa/20231011/c/src/fw2xy.c @@ -0,0 +1,171 @@ +#include "sofa.h" + +void iauFw2xy(double gamb, double phib, double psi, double eps, + double *x, double *y) +/* +** - - - - - - - - - +** i a u F w 2 x y +** - - - - - - - - - +** +** CIP X,Y given Fukushima-Williams bias-precession-nutation angles. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psi double F-W angle psi (radians) +** eps double F-W angle epsilon (radians) +** +** Returned: +** x,y double CIP unit vector X,Y +** +** Notes: +** +** 1) Naming the following points: +** +** e = J2000.0 ecliptic pole, +** p = GCRS pole +** E = ecliptic pole of date, +** and P = CIP, +** +** the four Fukushima-Williams angles are as follows: +** +** gamb = gamma = epE +** phib = phi = pE +** psi = psi = pEP +** eps = epsilon = EP +** +** 2) The matrix representing the combined effects of frame bias, +** precession and nutation is: +** +** NxPxB = R_1(-epsA).R_3(-psi).R_1(phib).R_3(gamb) +** +** The returned values x,y are elements [2][0] and [2][1] of the +** matrix. Near J2000.0, they are essentially angles in radians. +** +** Called: +** iauFw2m F-W angles to r-matrix +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3]; + + +/* Form NxPxB matrix. */ + iauFw2m(gamb, phib, psi, eps, r); + +/* Extract CIP X,Y. */ + iauBpn2xy(r, x, y); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/g2icrs.c b/deps/sofa/20231011/c/src/g2icrs.c new file mode 100644 index 0000000..7020cf5 --- /dev/null +++ b/deps/sofa/20231011/c/src/g2icrs.c @@ -0,0 +1,212 @@ + +#include "sofa.h" + +void iauG2icrs ( double dl, double db, double *dr, double *dd ) +/* +** - - - - - - - - - - +** i a u G 2 i c r s +** - - - - - - - - - - +** +** Transformation from Galactic coordinates to ICRS. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dl double Galactic longitude (radians) +** db double Galactic latitude (radians) +** +** Returned: +** dr double ICRS right ascension (radians) +** dd double ICRS declination (radians) +** +** Notes: +** +** 1) The IAU 1958 system of Galactic coordinates was defined with +** respect to the now obsolete reference system FK4 B1950.0. When +** interpreting the system in a modern context, several factors have +** to be taken into account: +** +** . The inclusion in FK4 positions of the E-terms of aberration. +** +** . The distortion of the FK4 proper motion system by differential +** Galactic rotation. +** +** . The use of the B1950.0 equinox rather than the now-standard +** J2000.0. +** +** . The frame bias between ICRS and the J2000.0 mean place system. +** +** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation +** matrix that transforms directly between ICRS and Galactic +** coordinates with the above factors taken into account. The +** matrix is derived from three angles, namely the ICRS coordinates +** of the Galactic pole and the longitude of the ascending node of +** the Galactic equator on the ICRS equator. They are given in +** degrees to five decimal places and for canonical purposes are +** regarded as exact. In the Hipparcos Catalogue the matrix +** elements are given to 10 decimal places (about 20 microarcsec). +** In the present SOFA function the matrix elements have been +** recomputed from the canonical three angles and are given to 30 +** decimal places. +** +** 2) The inverse transformation is performed by the function iauIcrs2g. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** iauS2c spherical coordinates to unit vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s p-vector to spherical +** +** Reference: +** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho +** catalogues. Astrometric and photometric star catalogues +** derived from the ESA Hipparcos Space Astrometry Mission. ESA +** Publications Division, Noordwijk, Netherlands. +** +** This revision: 2023 April 16 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double v1[3], v2[3]; + +/* +** L2,B2 system of Galactic coordinates in the form presented in the +** Hipparcos Catalogue. In degrees: +** +** P = 192.85948 right ascension of the Galactic north pole in ICRS +** Q = 27.12825 declination of the Galactic north pole in ICRS +** R = 32.93192 Galactic longitude of the ascending node of +** the Galactic equator on the ICRS equator +** +** ICRS to Galactic rotation matrix, obtained by computing +** R_3(-R) R_1(pi/2-Q) R_3(pi/2+P) to the full precision shown: +*/ + double r[3][3] = { { -0.054875560416215368492398900454, + -0.873437090234885048760383168409, + -0.483835015548713226831774175116 }, + { +0.494109427875583673525222371358, + -0.444829629960011178146614061616, + +0.746982244497218890527388004556 }, + { -0.867666149019004701181616534570, + -0.198076373431201528180486091412, + +0.455983776175066922272100478348 } }; + + +/* Spherical to Cartesian. */ + iauS2c(dl, db, v1); + +/* Galactic to ICRS. */ + iauTrxp(r, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, dr, dd); + +/* Express in conventional ranges. */ + *dr = iauAnp(*dr); + *dd = iauAnpm(*dd); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gc2gd.c b/deps/sofa/20231011/c/src/gc2gd.c new file mode 100644 index 0000000..95be9ef --- /dev/null +++ b/deps/sofa/20231011/c/src/gc2gd.c @@ -0,0 +1,187 @@ +#include "sofa.h" +#include "sofam.h" + +int iauGc2gd ( int n, double xyz[3], + double *elong, double *phi, double *height ) +/* +** - - - - - - - - - +** i a u G c 2 g d +** - - - - - - - - - +** +** Transform geocentric coordinates to geodetic using the specified +** reference ellipsoid. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical transformation. +** +** Given: +** n int ellipsoid identifier (Note 1) +** xyz double[3] geocentric vector (Note 2) +** +** Returned: +** elong double longitude (radians, east +ve, Note 3) +** phi double latitude (geodetic, radians, Note 3) +** height double height above ellipsoid (geodetic, Notes 2,3) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal identifier (Note 3) +** -2 = internal error (Note 3) +** +** Notes: +** +** 1) The identifier n is a number that specifies the choice of +** reference ellipsoid. The following are supported: +** +** n ellipsoid +** +** 1 WGS84 +** 2 GRS80 +** 3 WGS72 +** +** The n value has no significance outside the SOFA software. For +** convenience, symbols WGS84 etc. are defined in sofam.h. +** +** 2) The geocentric vector (xyz, given) and height (height, returned) +** are in meters. +** +** 3) An error status -1 means that the identifier n is illegal. An +** error status -2 is theoretically impossible. In all error cases, +** all three results are set to -1e9. +** +** 4) The inverse transformation is performed in the function iauGd2gc. +** +** Called: +** iauEform Earth reference ellipsoids +** iauGc2gde geocentric to geodetic transformation, general +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + double a, f; + + +/* Obtain reference ellipsoid parameters. */ + j = iauEform ( n, &a, &f ); + +/* If OK, transform x,y,z to longitude, geodetic latitude, height. */ + if ( j == 0 ) { + j = iauGc2gde ( a, f, xyz, elong, phi, height ); + if ( j < 0 ) j = -2; + } + +/* Deal with any errors. */ + if ( j < 0 ) { + *elong = -1e9; + *phi = -1e9; + *height = -1e9; + } + +/* Return the status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gc2gde.c b/deps/sofa/20231011/c/src/gc2gde.c new file mode 100644 index 0000000..587c749 --- /dev/null +++ b/deps/sofa/20231011/c/src/gc2gde.c @@ -0,0 +1,252 @@ +#include "sofa.h" +#include "sofam.h" + +int iauGc2gde ( double a, double f, double xyz[3], + double *elong, double *phi, double *height ) +/* +** - - - - - - - - - - +** i a u G c 2 g d e +** - - - - - - - - - - +** +** Transform geocentric coordinates to geodetic for a reference +** ellipsoid of specified form. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** a double equatorial radius (Notes 2,4) +** f double flattening (Note 3) +** xyz double[3] geocentric vector (Note 4) +** +** Returned: +** elong double longitude (radians, east +ve) +** phi double latitude (geodetic, radians) +** height double height above ellipsoid (geodetic, Note 4) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal f +** -2 = illegal a +** +** Notes: +** +** 1) This function is based on the GCONV2H Fortran subroutine by +** Toshio Fukushima (see reference). +** +** 2) The equatorial radius, a, can be in any units, but meters is +** the conventional choice. +** +** 3) The flattening, f, is (for the Earth) a value around 0.00335, +** i.e. around 1/298. +** +** 4) The equatorial radius, a, and the geocentric vector, xyz, +** must be given in the same units, and determine the units of +** the returned height, height. +** +** 5) If an error occurs (status < 0), elong, phi and height are +** unchanged. +** +** 6) The inverse transformation is performed in the function +** iauGd2gce. +** +** 7) The transformation for a standard ellipsoid (such as WGS84) can +** more conveniently be performed by calling iauGc2gd, which uses a +** numerical code to identify the required A and F values. +** +** Reference: +** +** Fukushima, T., "Transformation from Cartesian to geodetic +** coordinates accelerated by Halley's method", J.Geodesy (2006) +** 79: 689-693 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double aeps2, e2, e4t, ec2, ec, b, x, y, z, p2, absz, p, s0, pn, zc, + c0, c02, c03, s02, s03, a02, a0, a03, d0, f0, b0, s1, + cc, s12, cc2; + + +/* ------------- */ +/* Preliminaries */ +/* ------------- */ + +/* Validate ellipsoid parameters. */ + if ( f < 0.0 || f >= 1.0 ) return -1; + if ( a <= 0.0 ) return -2; + +/* Functions of ellipsoid parameters (with further validation of f). */ + aeps2 = a*a * 1e-32; + e2 = (2.0 - f) * f; + e4t = e2*e2 * 1.5; + ec2 = 1.0 - e2; + if ( ec2 <= 0.0 ) return -1; + ec = sqrt(ec2); + b = a * ec; + +/* Cartesian components. */ + x = xyz[0]; + y = xyz[1]; + z = xyz[2]; + +/* Distance from polar axis squared. */ + p2 = x*x + y*y; + +/* Longitude. */ + *elong = p2 > 0.0 ? atan2(y, x) : 0.0; + +/* Unsigned z-coordinate. */ + absz = fabs(z); + +/* Proceed unless polar case. */ + if ( p2 > aeps2 ) { + + /* Distance from polar axis. */ + p = sqrt(p2); + + /* Normalization. */ + s0 = absz / a; + pn = p / a; + zc = ec * s0; + + /* Prepare Newton correction factors. */ + c0 = ec * pn; + c02 = c0 * c0; + c03 = c02 * c0; + s02 = s0 * s0; + s03 = s02 * s0; + a02 = c02 + s02; + a0 = sqrt(a02); + a03 = a02 * a0; + d0 = zc*a03 + e2*s03; + f0 = pn*a03 - e2*c03; + + /* Prepare Halley correction factor. */ + b0 = e4t * s02 * c02 * pn * (a0 - ec); + s1 = d0*f0 - b0*s0; + cc = ec * (f0*f0 - b0*c0); + + /* Evaluate latitude and height. */ + *phi = atan(s1/cc); + s12 = s1 * s1; + cc2 = cc * cc; + *height = (p*cc + absz*s1 - a * sqrt(ec2*s12 + cc2)) / + sqrt(s12 + cc2); + } else { + + /* Exception: pole. */ + *phi = DPI / 2.0; + *height = absz - b; + } + +/* Restore sign of latitude. */ + if ( z < 0 ) *phi = -*phi; + +/* OK status. */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gd2gc.c b/deps/sofa/20231011/c/src/gd2gc.c new file mode 100644 index 0000000..69d08cc --- /dev/null +++ b/deps/sofa/20231011/c/src/gd2gc.c @@ -0,0 +1,186 @@ +#include "sofa.h" +#include "sofam.h" + +int iauGd2gc ( int n, double elong, double phi, double height, + double xyz[3] ) +/* +** - - - - - - - - - +** i a u G d 2 g c +** - - - - - - - - - +** +** Transform geodetic coordinates to geocentric using the specified +** reference ellipsoid. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical transformation. +** +** Given: +** n int ellipsoid identifier (Note 1) +** elong double longitude (radians, east +ve, Note 3) +** phi double latitude (geodetic, radians, Note 3) +** height double height above ellipsoid (geodetic, Notes 2,3) +** +** Returned: +** xyz double[3] geocentric vector (Note 2) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal identifier (Note 3) +** -2 = illegal case (Note 3) +** +** Notes: +** +** 1) The identifier n is a number that specifies the choice of +** reference ellipsoid. The following are supported: +** +** n ellipsoid +** +** 1 WGS84 +** 2 GRS80 +** 3 WGS72 +** +** The n value has no significance outside the SOFA software. For +** convenience, symbols WGS84 etc. are defined in sofam.h. +** +** 2) The height (height, given) and the geocentric vector (xyz, +** returned) are in meters. +** +** 3) No validation is performed on the arguments elong, phi and +** height. An error status -1 means that the identifier n is +** illegal. An error status -2 protects against cases that would +** lead to arithmetic exceptions. In all error cases, xyz is set +** to zeros. +** +** 4) The inverse transformation is performed in the function iauGc2gd. +** +** Called: +** iauEform Earth reference ellipsoids +** iauGd2gce geodetic to geocentric transformation, general +** iauZp zero p-vector +** +** This revision: 2023 March 9 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j; + double a, f; + + +/* Obtain reference ellipsoid parameters. */ + j = iauEform ( n, &a, &f ); + +/* If OK, transform longitude, geodetic latitude, height to x,y,z. */ + if ( j == 0 ) { + j = iauGd2gce ( a, f, elong, phi, height, xyz ); + if ( j != 0 ) j = -2; + } + +/* Deal with any errors. */ + if ( j != 0 ) iauZp ( xyz ); + +/* Return the status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gd2gce.c b/deps/sofa/20231011/c/src/gd2gce.c new file mode 100644 index 0000000..7173fbf --- /dev/null +++ b/deps/sofa/20231011/c/src/gd2gce.c @@ -0,0 +1,190 @@ +#include "sofa.h" +#include "sofam.h" + +int iauGd2gce ( double a, double f, double elong, double phi, + double height, double xyz[3] ) +/* +** - - - - - - - - - - +** i a u G d 2 g c e +** - - - - - - - - - - +** +** Transform geodetic coordinates to geocentric for a reference +** ellipsoid of specified form. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** a double equatorial radius (Notes 1,3,4) +** f double flattening (Notes 2,4) +** elong double longitude (radians, east +ve, Note 4) +** phi double latitude (geodetic, radians, Note 4) +** height double height above ellipsoid (geodetic, Notes 3,4) +** +** Returned: +** xyz double[3] geocentric vector (Note 3) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal case (Note 4) +** Notes: +** +** 1) The equatorial radius, a, can be in any units, but meters is +** the conventional choice. +** +** 2) The flattening, f, is (for the Earth) a value around 0.00335, +** i.e. around 1/298. +** +** 3) The equatorial radius, a, and the height, height, must be +** given in the same units, and determine the units of the +** returned geocentric vector, xyz. +** +** 4) No validation is performed on individual arguments. The error +** status -1 protects against (unrealistic) cases that would lead +** to arithmetic exceptions. If an error occurs, xyz is unchanged. +** +** 5) The inverse transformation is performed in the function +** iauGc2gde. +** +** 6) The transformation for a standard ellipsoid (such as WGS84) can +** more conveniently be performed by calling iauGd2gc, which uses a +** numerical code to identify the required a and f values. +** +** References: +** +** Green, R.M., Spherical Astronomy, Cambridge University Press, +** (1985) Section 4.5, p96. +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 4.22, p202. +** +** This revision: 2023 March 10 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double sp, cp, w, d, ac, as, r; + + +/* Functions of geodetic latitude. */ + sp = sin(phi); + cp = cos(phi); + w = 1.0 - f; + w = w * w; + d = cp*cp + w*sp*sp; + if ( d <= 0.0 ) return -1; + ac = a / sqrt(d); + as = w * ac; + +/* Geocentric vector. */ + r = (ac + height) * cp; + xyz[0] = r * cos(elong); + xyz[1] = r * sin(elong); + xyz[2] = (as + height) * sp; + +/* Success. */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gmst00.c b/deps/sofa/20231011/c/src/gmst00.c new file mode 100644 index 0000000..fc3db22 --- /dev/null +++ b/deps/sofa/20231011/c/src/gmst00.c @@ -0,0 +1,198 @@ +#include "sofa.h" +#include "sofam.h" + +double iauGmst00(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G m s t 0 0 +** - - - - - - - - - - +** +** Greenwich mean sidereal time (model consistent with IAU 2000 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich mean sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** Part A Part B +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession. If UT1 is used for +** both purposes, errors of order 100 microarcseconds result. +** +** 3) This GMST is compatible with the IAU 2000 resolutions and must be +** used only in conjunction with other IAU 2000 compatible +** components such as precession-nutation and equation of the +** equinoxes. +** +** 4) The result is returned in the range 0 to 2pi. +** +** 5) The algorithm is from Capitaine et al. (2003) and IERS +** Conventions 2003. +** +** Called: +** iauEra00 Earth rotation angle, IAU 2000 +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, gmst; + + +/* TT Julian centuries since J2000.0. */ + t = ((tta - DJ00) + ttb) / DJC; + +/* Greenwich Mean Sidereal Time, IAU 2000. */ + gmst = iauAnp(iauEra00(uta, utb) + + ( 0.014506 + + ( 4612.15739966 + + ( 1.39667721 + + ( -0.00009344 + + ( 0.00001882 ) + * t) * t) * t) * t) * DAS2R); + + return gmst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gmst06.c b/deps/sofa/20231011/c/src/gmst06.c new file mode 100644 index 0000000..79277a2 --- /dev/null +++ b/deps/sofa/20231011/c/src/gmst06.c @@ -0,0 +1,189 @@ +#include "sofa.h" +#include "sofam.h" + +double iauGmst06(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G m s t 0 6 +** - - - - - - - - - - +** +** Greenwich mean sidereal time (consistent with IAU 2006 precession). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich mean sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD=2450123.7 could be expressed in +** any of these ways, among others: +** +** Part A Part B +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** rotation angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession. If UT1 is used for +** both purposes, errors of order 100 microarcseconds result. +** +** 3) This GMST is compatible with the IAU 2006 precession and must not +** be used with other precession models. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauEra00 Earth rotation angle, IAU 2000 +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2005, +** Astron.Astrophys. 432, 355 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, gmst; + + +/* TT Julian centuries since J2000.0. */ + t = ((tta - DJ00) + ttb) / DJC; + +/* Greenwich mean sidereal time, IAU 2006. */ + gmst = iauAnp(iauEra00(uta, utb) + + ( 0.014506 + + ( 4612.156534 + + ( 1.3915817 + + ( -0.00000044 + + ( -0.000029956 + + ( -0.0000000368 ) + * t) * t) * t) * t) * t) * DAS2R); + + return gmst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gmst82.c b/deps/sofa/20231011/c/src/gmst82.c new file mode 100644 index 0000000..b18fde9 --- /dev/null +++ b/deps/sofa/20231011/c/src/gmst82.c @@ -0,0 +1,203 @@ +#include "sofa.h" +#include "sofam.h" + +double iauGmst82(double dj1, double dj2) +/* +** - - - - - - - - - - +** i a u G m s t 8 2 +** - - - - - - - - - - +** +** Universal Time to Greenwich mean sidereal time (IAU 1982 model). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** dj1,dj2 double UT1 Julian Date (see note) +** +** Returned (function value): +** double Greenwich mean sidereal time (radians) +** +** Notes: +** +** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any +** convenient way between the arguments dj1 and dj2. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, +** among others: +** +** dj1 dj2 +** +** 2450123.7 0 (JD method) +** 2451545 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. The date & time method is +** best matched to the algorithm used: maximum accuracy (or, at +** least, minimum noise) is delivered when the dj1 argument is for +** 0hrs UT1 on the day in question and the dj2 argument lies in the +** range 0 to 1, or vice versa. +** +** 2) The algorithm is based on the IAU 1982 expression. This is +** always described as giving the GMST at 0 hours UT1. In fact, it +** gives the difference between the GMST and the UT, the steady +** 4-minutes-per-day drawing-ahead of ST with respect to UT. When +** whole days are ignored, the expression happens to equal the GMST +** at 0 hours UT1 each day. +** +** 3) In this function, the entire UT1 (the sum of the two arguments +** dj1 and dj2) is used directly as the argument for the standard +** formula, the constant term of which is adjusted by 12 hours to +** take account of the noon phasing of Julian Date. The UT1 is then +** added, but omitting whole days to conserve accuracy. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Transactions of the International Astronomical Union, +** XVIII B, 67 (1983). +** +** Aoki et al., Astron.Astrophys., 105, 359-361 (1982). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Coefficients of IAU 1982 GMST-UT1 model */ + double A = 24110.54841 - DAYSEC / 2.0; + double B = 8640184.812866; + double C = 0.093104; + double D = -6.2e-6; + +/* The first constant, A, has to be adjusted by 12 hours because the */ +/* UT1 is supplied as a Julian date, which begins at noon. */ + + double d1, d2, t, f, gmst; + + +/* Julian centuries since fundamental epoch. */ + if (dj1 < dj2) { + d1 = dj1; + d2 = dj2; + } else { + d1 = dj2; + d2 = dj1; + } + t = (d1 + (d2 - DJ00)) / DJC; + +/* Fractional part of JD(UT1), in seconds. */ + f = DAYSEC * (fmod(d1, 1.0) + fmod(d2, 1.0)); + +/* GMST at this UT1. */ + gmst = iauAnp(DS2R * ((A + (B + (C + D * t) * t) * t) + f)); + + return gmst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gst00a.c b/deps/sofa/20231011/c/src/gst00a.c new file mode 100644 index 0000000..2983926 --- /dev/null +++ b/deps/sofa/20231011/c/src/gst00a.c @@ -0,0 +1,190 @@ +#include "sofa.h" + +double iauGst00a(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G s t 0 0 a +** - - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 2000 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession-nutation. If UT1 is +** used for both purposes, errors of order 100 microarcseconds +** result. +** +** 3) This GAST is compatible with the IAU 2000 resolutions and must be +** used only in conjunction with other IAU 2000 compatible +** components such as precession-nutation. +** +** 4) The result is returned in the range 0 to 2pi. +** +** 5) The algorithm is from Capitaine et al. (2003) and IERS +** Conventions 2003. +** +** Called: +** iauGmst00 Greenwich mean sidereal time, IAU 2000 +** iauEe00a equation of the equinoxes, IAU 2000A +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gmst00, ee00a, gst; + + + gmst00 = iauGmst00(uta, utb, tta, ttb); + ee00a = iauEe00a(tta, ttb); + gst = iauAnp(gmst00 + ee00a); + + return gst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gst00b.c b/deps/sofa/20231011/c/src/gst00b.c new file mode 100644 index 0000000..a9af8ef --- /dev/null +++ b/deps/sofa/20231011/c/src/gst00b.c @@ -0,0 +1,198 @@ +#include "sofa.h" + +double iauGst00b(double uta, double utb) +/* +** - - - - - - - - - - +** i a u G s t 0 0 b +** - - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 2000 +** resolutions but using the truncated nutation model IAU 2000B). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 date uta+utb is a Julian Date, apportioned in any +** convenient way between the argument pair. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, +** among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) The result is compatible with the IAU 2000 resolutions, except +** that accuracy has been compromised for the sake of speed and +** convenience in two respects: +** +** . UT is used instead of TDB (or TT) to compute the precession +** component of GMST and the equation of the equinoxes. This +** results in errors of order 0.1 mas at present. +** +** . The IAU 2000B abridged nutation model (McCarthy & Luzum, 2003) +** is used, introducing errors of up to 1 mas. +** +** 3) This GAST is compatible with the IAU 2000 resolutions and must be +** used only in conjunction with other IAU 2000 compatible +** components such as precession-nutation. +** +** 4) The result is returned in the range 0 to 2pi. +** +** 5) The algorithm is from Capitaine et al. (2003) and IERS +** Conventions 2003. +** +** Called: +** iauGmst00 Greenwich mean sidereal time, IAU 2000 +** iauEe00b equation of the equinoxes, IAU 2000B +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Celestial Mechanics & +** Dynamical Astronomy, 85, 37-49 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gmst00, ee00b, gst; + + + gmst00 = iauGmst00(uta, utb, uta, utb); + ee00b = iauEe00b(uta, utb); + gst = iauAnp(gmst00 + ee00b); + + return gst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gst06.c b/deps/sofa/20231011/c/src/gst06.c new file mode 100644 index 0000000..130b637 --- /dev/null +++ b/deps/sofa/20231011/c/src/gst06.c @@ -0,0 +1,192 @@ +#include "sofa.h" + +double iauGst06(double uta, double utb, double tta, double ttb, + double rnpb[3][3]) +/* +** - - - - - - - - - +** i a u G s t 0 6 +** - - - - - - - - - +** +** Greenwich apparent sidereal time, IAU 2006, given the NPB matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** rnpb double[3][3] nutation x precession x bias matrix +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** rotation angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession-nutation. If UT1 is +** used for both purposes, errors of order 100 microarcseconds +** result. +** +** 3) Although the function uses the IAU 2006 series for s+XY/2, it is +** otherwise independent of the precession-nutation model and can in +** practice be used with any equinox-based NPB matrix. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauAnp normalize angle into range 0 to 2pi +** iauEra00 Earth rotation angle, IAU 2000 +** iauEors equation of the origins, given NPB matrix and s +** +** Reference: +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, s, era, eors, gst; + + +/* Extract CIP coordinates. */ + iauBpn2xy(rnpb, &x, &y); + +/* The CIO locator, s. */ + s = iauS06(tta, ttb, x, y); + +/* Greenwich apparent sidereal time. */ + era = iauEra00(uta, utb); + eors = iauEors(rnpb, s); + gst = iauAnp(era - eors); + + return gst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gst06a.c b/deps/sofa/20231011/c/src/gst06a.c new file mode 100644 index 0000000..ae41df3 --- /dev/null +++ b/deps/sofa/20231011/c/src/gst06a.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +double iauGst06a(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G s t 0 6 a +** - - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 2000 and 2006 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** rotation angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession-nutation. If UT1 is +** used for both purposes, errors of order 100 microarcseconds +** result. +** +** 3) This GAST is compatible with the IAU 2000/2006 resolutions and +** must be used only in conjunction with IAU 2006 precession and +** IAU 2000A nutation. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauGst06 Greenwich apparent ST, IAU 2006, given NPB matrix +** +** Reference: +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rnpb[3][3], gst; + + +/* Classical nutation x precession x bias matrix, IAU 2000A. */ + iauPnm06a(tta, ttb, rnpb); + +/* Greenwich apparent sidereal time. */ + gst = iauGst06(uta, utb, tta, ttb, rnpb); + + return gst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/gst94.c b/deps/sofa/20231011/c/src/gst94.c new file mode 100644 index 0000000..0fd2256 --- /dev/null +++ b/deps/sofa/20231011/c/src/gst94.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +double iauGst94(double uta, double utb) +/* +** - - - - - - - - - +** i a u G s t 9 4 +** - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 1982/94 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 date uta+utb is a Julian Date, apportioned in any +** convenient way between the argument pair. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, among +** others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) The result is compatible with the IAU 1982 and 1994 resolutions, +** except that accuracy has been compromised for the sake of +** convenience in that UT is used instead of TDB (or TT) to compute +** the equation of the equinoxes. +** +** 3) This GAST must be used only in conjunction with contemporaneous +** IAU standards such as 1976 precession, 1980 obliquity and 1982 +** nutation. It is not compatible with the IAU 2000 resolutions. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauGmst82 Greenwich mean sidereal time, IAU 1982 +** iauEqeq94 equation of the equinoxes, IAU 1994 +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** IAU Resolution C7, Recommendation 3 (1994) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gmst82, eqeq94, gst; + + + gmst82 = iauGmst82(uta, utb); + eqeq94 = iauEqeq94(uta, utb); + gst = iauAnp(gmst82 + eqeq94); + + return gst; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/h2fk5.c b/deps/sofa/20231011/c/src/h2fk5.c new file mode 100644 index 0000000..1b97133 --- /dev/null +++ b/deps/sofa/20231011/c/src/h2fk5.c @@ -0,0 +1,198 @@ +#include "sofa.h" + +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) +/* +** - - - - - - - - - +** i a u H 2 f k 5 +** - - - - - - - - - +** +** Transform Hipparcos star data into the FK5 (J2000.0) system. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (all Hipparcos, epoch J2000.0): +** rh double RA (radians) +** dh double Dec (radians) +** drh double proper motion in RA (dRA/dt, rad/Jyear) +** ddh double proper motion in Dec (dDec/dt, rad/Jyear) +** pxh double parallax (arcsec) +** rvh double radial velocity (km/s, positive = receding) +** +** Returned (all FK5, equinox J2000.0, epoch J2000.0): +** r5 double RA (radians) +** d5 double Dec (radians) +** dr5 double proper motion in RA (dRA/dt, rad/Jyear) +** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) +** px5 double parallax (arcsec) +** rv5 double radial velocity (km/s, positive = receding) +** +** Notes: +** +** 1) This function transforms Hipparcos star positions and proper +** motions into FK5 J2000.0. +** +** 2) The proper motions in RA are dRA/dt rather than +** cos(Dec)*dRA/dt, and are per year rather than per century. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure +** rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 4) See also iauFk52h, iauFk5hz, iauHfk5z. +** +** Called: +** iauStarpv star catalog data to space motion pv-vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauRv2m r-vector to r-matrix +** iauRxp product of r-matrix and p-vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPvstar space motion pv-vector to star catalog data +** +** Reference: +** +** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int i; + double pvh[2][3], r5h[3][3], s5h[3], sh[3], wxp[3], vv[3], pv5[2][3]; + + +/* Hipparcos barycentric position/velocity pv-vector (normalized). */ + iauStarpv(rh, dh, drh, ddh, pxh, rvh, pvh); + +/* FK5 to Hipparcos orientation matrix and spin vector. */ + iauFk5hip(r5h, s5h); + +/* Make spin units per day instead of per year. */ + for ( i = 0; i < 3; s5h[i++] /= 365.25 ); + +/* Orient the spin into the Hipparcos system. */ + iauRxp(r5h, s5h, sh); + +/* De-orient the Hipparcos position into the FK5 system. */ + iauTrxp(r5h, pvh[0], pv5[0]); + +/* Apply spin to the position giving an extra space motion component. */ + iauPxp(pvh[0], sh, wxp); + +/* Subtract this component from the Hipparcos space motion. */ + iauPmp(pvh[1], wxp, vv); + +/* De-orient the Hipparcos space motion into the FK5 system. */ + iauTrxp(r5h, vv, pv5[1]); + +/* FK5 pv-vector to spherical. */ + iauPvstar(pv5, r5, d5, dr5, dd5, px5, rv5); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/hd2ae.c b/deps/sofa/20231011/c/src/hd2ae.c new file mode 100644 index 0000000..60443e1 --- /dev/null +++ b/deps/sofa/20231011/c/src/hd2ae.c @@ -0,0 +1,191 @@ +#include "sofa.h" +#include "sofam.h" + +void iauHd2ae (double ha, double dec, double phi, + double *az, double *el) +/* +** - - - - - - - - - +** i a u H d 2 a e +** - - - - - - - - - +** +** Equatorial to horizon coordinates: transform hour angle and +** declination to azimuth and altitude. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ha double hour angle (local) +** dec double declination +** phi double site latitude +** +** Returned: +** *az double azimuth +** *el double altitude (informally, elevation) +** +** Notes: +** +** 1) All the arguments are angles in radians. +** +** 2) Azimuth is returned in the range 0-2pi; north is zero, and east +** is +pi/2. Altitude is returned in the range +/- pi/2. +** +** 3) The latitude phi is pi/2 minus the angle between the Earth's +** rotation axis and the adopted zenith. In many applications it +** will be sufficient to use the published geodetic latitude of the +** site. In very precise (sub-arcsecond) applications, phi can be +** corrected for polar motion. +** +** 4) The returned azimuth az is with respect to the rotational north +** pole, as opposed to the ITRS pole, and for sub-arcsecond +** accuracy will need to be adjusted for polar motion if it is to +** be with respect to north on a map of the Earth's surface. +** +** 5) Should the user wish to work with respect to the astronomical +** zenith rather than the geodetic zenith, phi will need to be +** adjusted for deflection of the vertical (often tens of +** arcseconds), and the zero point of the hour angle ha will also +** be affected. +** +** 6) The transformation is the same as Vh = Rz(pi)*Ry(pi/2-phi)*Ve, +** where Vh and Ve are lefthanded unit vectors in the (az,el) and +** (ha,dec) systems respectively and Ry and Rz are rotations about +** first the y-axis and then the z-axis. (n.b. Rz(pi) simply +** reverses the signs of the x and y components.) For efficiency, +** the algorithm is written out rather than calling other utility +** functions. For applications that require even greater +** efficiency, additional savings are possible if constant terms +** such as functions of latitude are computed once and for all. +** +** 7) Again for efficiency, no range checking of arguments is carried +** out. +** +** Last revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double sh, ch, sd, cd, sp, cp, x, y, z, r, a; + + +/* Useful trig functions. */ + sh = sin(ha); + ch = cos(ha); + sd = sin(dec); + cd = cos(dec); + sp = sin(phi); + cp = cos(phi); + +/* Az,Alt unit vector. */ + x = - ch*cd*sp + sd*cp; + y = - sh*cd; + z = ch*cd*cp + sd*sp; + +/* To spherical. */ + r = sqrt(x*x + y*y); + a = (r != 0.0) ? atan2(y,x) : 0.0; + *az = (a < 0.0) ? a+D2PI : a; + *el = atan2(z,r); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/hd2pa.c b/deps/sofa/20231011/c/src/hd2pa.c new file mode 100644 index 0000000..7f512b6 --- /dev/null +++ b/deps/sofa/20231011/c/src/hd2pa.c @@ -0,0 +1,164 @@ +#include "sofa.h" + +double iauHd2pa (double ha, double dec, double phi) +/* +** - - - - - - - - - +** i a u H d 2 p a +** - - - - - - - - - +** +** Parallactic angle for a given hour angle and declination. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ha double hour angle +** dec double declination +** phi double site latitude +** +** Returned (function value): +** double parallactic angle +** +** Notes: +** +** 1) All the arguments are angles in radians. +** +** 2) The parallactic angle at a point in the sky is the position +** angle of the vertical, i.e. the angle between the directions to +** the north celestial pole and to the zenith respectively. +** +** 3) The result is returned in the range -pi to +pi. +** +** 4) At the pole itself a zero result is returned. +** +** 5) The latitude phi is pi/2 minus the angle between the Earth's +** rotation axis and the adopted zenith. In many applications it +** will be sufficient to use the published geodetic latitude of the +** site. In very precise (sub-arcsecond) applications, phi can be +** corrected for polar motion. +** +** 6) Should the user wish to work with respect to the astronomical +** zenith rather than the geodetic zenith, phi will need to be +** adjusted for deflection of the vertical (often tens of +** arcseconds), and the zero point of the hour angle ha will also +** be affected. +** +** Reference: +** Smart, W.M., "Spherical Astronomy", Cambridge University Press, +** 6th edition (Green, 1977), p49. +** +** Last revision: 2017 September 12 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double cp, cqsz, sqsz; + + + cp = cos(phi); + sqsz = cp*sin(ha); + cqsz = sin(phi)*cos(dec) - cp*sin(dec)*cos(ha); + return ( ( sqsz != 0.0 || cqsz != 0.0 ) ? atan2(sqsz,cqsz) : 0.0 ); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/hfk5z.c b/deps/sofa/20231011/c/src/hfk5z.c new file mode 100644 index 0000000..dd42946 --- /dev/null +++ b/deps/sofa/20231011/c/src/hfk5z.c @@ -0,0 +1,226 @@ +#include "sofa.h" +#include "sofam.h" + +void iauHfk5z(double rh, double dh, double date1, double date2, + double *r5, double *d5, double *dr5, double *dd5) +/* +** - - - - - - - - - +** i a u H f k 5 z +** - - - - - - - - - +** +** Transform a Hipparcos star position into FK5 J2000.0, assuming +** zero Hipparcos proper motion. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rh double Hipparcos RA (radians) +** dh double Hipparcos Dec (radians) +** date1,date2 double TDB date (Note 1) +** +** Returned (all FK5, equinox J2000.0, date date1+date2): +** r5 double RA (radians) +** d5 double Dec (radians) +** dr5 double RA proper motion (rad/year, Note 4) +** dd5 double Dec proper motion (rad/year, Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure rotation +** and spin; zonal errors in the FK5 catalog are not taken into +** account. +** +** 4) It was the intention that Hipparcos should be a close +** approximation to an inertial frame, so that distant objects have +** zero proper motion; such objects have (in general) non-zero +** proper motion in FK5, and this function returns those fictitious +** proper motions. +** +** 5) The position returned by this function is in the FK5 J2000.0 +** reference system but at date date1+date2. +** +** 6) See also iauFk52h, iauH2fk5, iauFk5hz. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauRxp product of r-matrix and p-vector +** iauSxp multiply p-vector by scalar +** iauRxr product of two r-matrices +** iauTrxp product of transpose of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauPv2s pv-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. +** +** This revision: 2023 March 7 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, ph[3], r5h[3][3], s5h[3], sh[3], vst[3], + rst[3][3], r5ht[3][3], pv5e[2][3], vv[3], + w, r, v; + + +/* Time interval from fundamental epoch J2000.0 to given date (JY). */ + t = ((date1 - DJ00) + date2) / DJY; + +/* Hipparcos barycentric position vector (normalized). */ + iauS2c(rh, dh, ph); + +/* FK5 to Hipparcos orientation matrix and spin vector. */ + iauFk5hip(r5h, s5h); + +/* Rotate the spin into the Hipparcos system. */ + iauRxp(r5h, s5h, sh); + +/* Accumulated Hipparcos wrt FK5 spin over that interval. */ + iauSxp(t, s5h, vst); + +/* Express the accumulated spin as a rotation matrix. */ + iauRv2m(vst, rst); + +/* Rotation matrix: accumulated spin, then FK5 to Hipparcos. */ + iauRxr(r5h, rst, r5ht); + +/* De-orient & de-spin the Hipparcos position into FK5 J2000.0. */ + iauTrxp(r5ht, ph, pv5e[0]); + +/* Apply spin to the position giving a space motion. */ + iauPxp(sh, ph, vv); + +/* De-orient & de-spin the Hipparcos space motion into FK5 J2000.0. */ + iauTrxp(r5ht, vv, pv5e[1]); + +/* FK5 position/velocity pv-vector to spherical. */ + iauPv2s(pv5e, &w, d5, &r, dr5, dd5, &v); + *r5 = iauAnp(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/icrs2g.c b/deps/sofa/20231011/c/src/icrs2g.c new file mode 100644 index 0000000..4618af4 --- /dev/null +++ b/deps/sofa/20231011/c/src/icrs2g.c @@ -0,0 +1,211 @@ +#include "sofa.h" + +void iauIcrs2g ( double dr, double dd, double *dl, double *db ) +/* +** - - - - - - - - - - +** i a u I c r s 2 g +** - - - - - - - - - - +** +** Transformation from ICRS to Galactic coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dr double ICRS right ascension (radians) +** dd double ICRS declination (radians) +** +** Returned: +** dl double Galactic longitude (radians) +** db double Galactic latitude (radians) +** +** Notes: +** +** 1) The IAU 1958 system of Galactic coordinates was defined with +** respect to the now obsolete reference system FK4 B1950.0. When +** interpreting the system in a modern context, several factors have +** to be taken into account: +** +** . The inclusion in FK4 positions of the E-terms of aberration. +** +** . The distortion of the FK4 proper motion system by differential +** Galactic rotation. +** +** . The use of the B1950.0 equinox rather than the now-standard +** J2000.0. +** +** . The frame bias between ICRS and the J2000.0 mean place system. +** +** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation +** matrix that transforms directly between ICRS and Galactic +** coordinates with the above factors taken into account. The +** matrix is derived from three angles, namely the ICRS coordinates +** of the Galactic pole and the longitude of the ascending node of +** the Galactic equator on the ICRS equator. They are given in +** degrees to five decimal places and for canonical purposes are +** regarded as exact. In the Hipparcos Catalogue the matrix +** elements are given to 10 decimal places (about 20 microarcsec). +** In the present SOFA function the matrix elements have been +** recomputed from the canonical three angles and are given to 30 +** decimal places. +** +** 2) The inverse transformation is performed by the function iauG2icrs. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** iauS2c spherical coordinates to unit vector +** iauRxp product of r-matrix and p-vector +** iauC2s p-vector to spherical +** +** Reference: +** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho +** catalogues. Astrometric and photometric star catalogues +** derived from the ESA Hipparcos Space Astrometry Mission. ESA +** Publications Division, Noordwijk, Netherlands. +** +** This revision: 2023 April 16 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double v1[3], v2[3]; + +/* +** L2,B2 system of Galactic coordinates in the form presented in the +** Hipparcos Catalogue. In degrees: +** +** P = 192.85948 right ascension of the Galactic north pole in ICRS +** Q = 27.12825 declination of the Galactic north pole in ICRS +** R = 32.93192 Galactic longitude of the ascending node of +** the Galactic equator on the ICRS equator +** +** ICRS to Galactic rotation matrix, obtained by computing +** R_3(-R) R_1(pi/2-Q) R_3(pi/2+P) to the full precision shown: +*/ + double r[3][3] = { { -0.054875560416215368492398900454, + -0.873437090234885048760383168409, + -0.483835015548713226831774175116 }, + { +0.494109427875583673525222371358, + -0.444829629960011178146614061616, + +0.746982244497218890527388004556 }, + { -0.867666149019004701181616534570, + -0.198076373431201528180486091412, + +0.455983776175066922272100478348 } }; + + +/* Spherical to Cartesian. */ + iauS2c(dr, dd, v1); + +/* ICRS to Galactic. */ + iauRxp(r, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, dl, db); + +/* Express in conventional ranges. */ + *dl = iauAnp(*dl); + *db = iauAnpm(*db); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ir.c b/deps/sofa/20231011/c/src/ir.c new file mode 100644 index 0000000..37c1a12 --- /dev/null +++ b/deps/sofa/20231011/c/src/ir.c @@ -0,0 +1,133 @@ +#include "sofa.h" + +void iauIr(double r[3][3]) +/* +** - - - - - - +** i a u I r +** - - - - - - +** +** Initialize an r-matrix to the identity matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Returned: +** r double[3][3] r-matrix +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + r[0][0] = 1.0; + r[0][1] = 0.0; + r[0][2] = 0.0; + r[1][0] = 0.0; + r[1][1] = 1.0; + r[1][2] = 0.0; + r[2][0] = 0.0; + r[2][1] = 0.0; + r[2][2] = 1.0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/jd2cal.c b/deps/sofa/20231011/c/src/jd2cal.c new file mode 100644 index 0000000..036c3cd --- /dev/null +++ b/deps/sofa/20231011/c/src/jd2cal.c @@ -0,0 +1,251 @@ +#include "sofa.h" +#include "sofam.h" +#include + +int iauJd2cal(double dj1, double dj2, + int *iy, int *im, int *id, double *fd) +/* +** - - - - - - - - - - +** i a u J d 2 c a l +** - - - - - - - - - - +** +** Julian Date to Gregorian year, month, day, and fraction of a day. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dj1,dj2 double Julian Date (Notes 1, 2) +** +** Returned (arguments): +** iy int year +** im int month +** id int day +** fd double fraction of day +** +** Returned (function value): +** int status: +** 0 = OK +** -1 = unacceptable date (Note 1) +** +** Notes: +** +** 1) The earliest valid date is -68569.5 (-4900 March 1). The +** largest value accepted is 1e9. +** +** 2) The Julian Date is apportioned in any convenient way between +** the arguments dj1 and dj2. For example, JD=2450123.7 could +** be expressed in any of these ways, among others: +** +** dj1 dj2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** Separating integer and fraction uses the "compensated summation" +** algorithm of Kahan-Neumaier to preserve as much precision as +** possible irrespective of the jd1+jd2 apportionment. +** +** 3) In early eras the conversion is from the "proleptic Gregorian +** calendar"; no account is taken of the date(s) of adoption of +** the Gregorian calendar, nor is the AD/BC numbering convention +** observed. +** +** References: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 12.92 (p604). +** +** Klein, A., A Generalized Kahan-Babuska-Summation-Algorithm. +** Computing, 76, 279-293 (2006), Section 3. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Minimum and maximum allowed JD */ + const double DJMIN = -68569.5; + const double DJMAX = 1e9; + + long jd, i, l, n, k; + double dj, f1, f2, d, s, cs, v[2], x, t, f; + + +/* Verify date is acceptable. */ + dj = dj1 + dj2; + if (dj < DJMIN || dj > DJMAX) return -1; + +/* Separate day and fraction (where -0.5 <= fraction < 0.5). */ + d = dnint(dj1); + f1 = dj1 - d; + jd = (long) d; + d = dnint(dj2); + f2 = dj2 - d; + jd += (long) d; + +/* Compute f1+f2+0.5 using compensated summation (Klein 2006). */ + s = 0.5; + cs = 0.0; + v[0] = f1; + v[1] = f2; + for ( i = 0; i < 2; i++ ) { + x = v[i]; + t = s + x; + cs += fabs(s) >= fabs(x) ? (s-t) + x : (x-t) + s; + s = t; + if ( s >= 1.0 ) { + jd++; + s -= 1.0; + } + } + f = s + cs; + cs = f - s; + +/* Deal with negative f. */ + if ( f < 0.0 ) { + + /* Compensated summation: assume that |s| <= 1.0. */ + f = s + 1.0; + cs += (1.0-f) + s; + s = f; + f = s + cs; + cs = f - s; + jd--; + } + +/* Deal with f that is 1.0 or more (when rounded to double). */ + if ( (f-1.0) >= -DBL_EPSILON/4.0 ) { + + /* Compensated summation: assume that |s| <= 1.0. */ + t = s - 1.0; + cs += (s-t) - 1.0; + s = t; + f = s + cs; + if ( -DBL_EPSILON/2.0 < f ) { + jd++; + f = gmax(f, 0.0); + } + } + +/* Express day in Gregorian calendar. */ + l = jd + 68569L; + n = (4L * l) / 146097L; + l -= (146097L * n + 3L) / 4L; + i = (4000L * (l + 1L)) / 1461001L; + l -= (1461L * i) / 4L - 31L; + k = (80L * l) / 2447L; + *id = (int) (l - (2447L * k) / 80L); + l = k / 11L; + *im = (int) (k + 2L - 12L * l); + *iy = (int) (100L * (n - 49L) + i + l); + *fd = f; + +/* Success. */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/jdcalf.c b/deps/sofa/20231011/c/src/jdcalf.c new file mode 100644 index 0000000..2e64bfe --- /dev/null +++ b/deps/sofa/20231011/c/src/jdcalf.c @@ -0,0 +1,226 @@ +#include "sofa.h" +#include "sofam.h" + +int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]) +/* +** - - - - - - - - - - +** i a u J d c a l f +** - - - - - - - - - - +** +** Julian Date to Gregorian Calendar, expressed in a form convenient +** for formatting messages: rounded to a specified precision. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ndp int number of decimal places of days in fraction +** dj1,dj2 double dj1+dj2 = Julian Date (Note 1) +** +** Returned: +** iymdf int[4] year, month, day, fraction in Gregorian +** calendar +** +** Returned (function value): +** int status: +** -1 = date out of range +** 0 = OK +** +1 = ndp not 0-9 (interpreted as 0) +** +** Notes: +** +** 1) The Julian Date is apportioned in any convenient way between +** the arguments dj1 and dj2. For example, JD=2450123.7 could +** be expressed in any of these ways, among others: +** +** dj1 dj2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** 2) In early eras the conversion is from the "Proleptic Gregorian +** Calendar"; no account is taken of the date(s) of adoption of +** the Gregorian Calendar, nor is the AD/BC numbering convention +** observed. +** +** 3) See also the function iauJd2cal. +** +** 4) The number of decimal places ndp should be 4 or less if internal +** overflows are to be avoided on platforms which use 16-bit +** integers. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 12.92 (p604). +** +** This revision: 2023 January 16 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int j, js; + double denom, d1, d2, f1, f2, d, djd, f, rf; + + +/* Denominator of fraction (e.g. 100 for 2 decimal places). */ + if ((ndp >= 0) && (ndp <= 9)) { + j = 0; + denom = pow(10.0, ndp); + } else { + j = 1; + denom = 1.0; + } + +/* Copy the date, big then small. */ + if (fabs(dj1) >= fabs(dj2)) { + d1 = dj1; + d2 = dj2; + } else { + d1 = dj2; + d2 = dj1; + } + +/* Realign to midnight (without rounding error). */ + d1 -= 0.5; + +/* Separate day and fraction (as precisely as possible). */ + d = dnint(d1); + f1 = d1 - d; + djd = d; + d = dnint(d2); + f2 = d2 - d; + djd += d; + d = dnint(f1 + f2); + f = (f1 - d) + f2; + if (f < 0.0) { + f += 1.0; + d -= 1.0; + } + djd += d; + +/* Round the total fraction to the specified number of places. */ + rf = dnint(f*denom) / denom; + +/* Re-align to noon. */ + djd += 0.5; + +/* Convert to Gregorian calendar. */ + js = iauJd2cal(djd, rf, &iymdf[0], &iymdf[1], &iymdf[2], &f); + if (js == 0) { + iymdf[3] = (int) dnint(f * denom); + } else { + j = js; + } + +/* Return the status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ld.c b/deps/sofa/20231011/c/src/ld.c new file mode 100644 index 0000000..9a578d8 --- /dev/null +++ b/deps/sofa/20231011/c/src/ld.c @@ -0,0 +1,203 @@ +#include "sofa.h" +#include "sofam.h" + +void iauLd(double bm, double p[3], double q[3], double e[3], + double em, double dlim, double p1[3]) +/* +** - - - - - - +** i a u L d +** - - - - - - +** +** Apply light deflection by a solar-system body, as part of +** transforming coordinate direction into natural direction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** bm double mass of the gravitating body (solar masses) +** p double[3] direction from observer to source (unit vector) +** q double[3] direction from body to source (unit vector) +** e double[3] direction from body to observer (unit vector) +** em double distance from body to observer (au) +** dlim double deflection limiter (Note 4) +** +** Returned: +** p1 double[3] observer to deflected source (unit vector) +** +** Notes: +** +** 1) The algorithm is based on Expr. (70) in Klioner (2003) and +** Expr. (7.63) in the Explanatory Supplement (Urban & Seidelmann +** 2013), with some rearrangement to minimize the effects of machine +** precision. +** +** 2) The mass parameter bm can, as required, be adjusted in order to +** allow for such effects as quadrupole field. +** +** 3) The barycentric position of the deflecting body should ideally +** correspond to the time of closest approach of the light ray to +** the body. +** +** 4) The deflection limiter parameter dlim is phi^2/2, where phi is +** the angular separation (in radians) between source and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. +** +** 5) The returned vector p1 is not normalized, but the consequential +** departure from unit magnitude is always negligible. +** +** 6) The arguments p and p1 can be the same array. +** +** 7) To accumulate total light deflection taking into account the +** contributions from several bodies, call the present function for +** each body in succession, in decreasing order of distance from the +** observer. +** +** 8) For efficiency, validation is omitted. The supplied vectors must +** be of unit magnitude, and the deflection limiter non-zero and +** positive. +** +** References: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013). +** +** Klioner, Sergei A., "A practical relativistic model for micro- +** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). +** +** Called: +** iauPdp scalar product of two p-vectors +** iauPxp vector product of two p-vectors +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int i; + double qpe[3], qdqpe, w, eq[3], peq[3]; + + +/* q . (q + e). */ + for (i = 0; i < 3; i++) { + qpe[i] = q[i] + e[i]; + } + qdqpe = iauPdp(q, qpe); + +/* 2 x G x bm / ( em x c^2 x ( q . (q + e) ) ). */ + w = bm * SRS / em / gmax(qdqpe,dlim); + +/* p x (e x q). */ + iauPxp(e, q, eq); + iauPxp(p, eq, peq); + +/* Apply the deflection. */ + for (i = 0; i < 3; i++) { + p1[i] = p[i] + w*peq[i]; + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ldn.c b/deps/sofa/20231011/c/src/ldn.c new file mode 100644 index 0000000..f60cffa --- /dev/null +++ b/deps/sofa/20231011/c/src/ldn.c @@ -0,0 +1,225 @@ +#include "sofa.h" +#include "sofam.h" + +void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], + double sn[3]) +/*+ +** - - - - - - - +** i a u L d n +** - - - - - - - +** +** For a star, apply light deflection by multiple solar-system bodies, +** as part of transforming coordinate direction into natural direction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** n int number of bodies (note 1) +** b iauLDBODY[n] data for each of the n bodies (Notes 1,2): +** bm double mass of the body (solar masses, Note 3) +** dl double deflection limiter (Note 4) +** pv [2][3] barycentric PV of the body (au, au/day) +** ob double[3] barycentric position of the observer (au) +** sc double[3] observer to star coord direction (unit vector) +** +** Returned: +** sn double[3] observer to deflected star (unit vector) +** +** 1) The array b contains n entries, one for each body to be +** considered. If n = 0, no gravitational light deflection will be +** applied, not even for the Sun. +** +** 2) The array b should include an entry for the Sun as well as for +** any planet or other body to be taken into account. The entries +** should be in the order in which the light passes the body. +** +** 3) In the entry in the b array for body i, the mass parameter +** b[i].bm can, as required, be adjusted in order to allow for such +** effects as quadrupole field. +** +** 4) The deflection limiter parameter b[i].dl is phi^2/2, where phi is +** the angular separation (in radians) between star and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. Example values suitable for a terrestrial +** observer, together with masses, are as follows: +** +** body i b[i].bm b[i].dl +** +** Sun 1.0 6e-6 +** Jupiter 0.00095435 3e-9 +** Saturn 0.00028574 3e-10 +** +** 5) For cases where the starlight passes the body before reaching the +** observer, the body is placed back along its barycentric track by +** the light time from that point to the observer. For cases where +** the body is "behind" the observer no such shift is applied. If +** a different treatment is preferred, the user has the option of +** instead using the iauLd function. Similarly, iauLd can be used +** for cases where the source is nearby, not a star. +** +** 6) The returned vector sn is not normalized, but the consequential +** departure from unit magnitude is always negligible. +** +** 7) The arguments sc and sn can be the same array. +** +** 8) For efficiency, validation is omitted. The supplied masses must +** be greater than zero, the position and velocity vectors must be +** right, and the deflection limiter greater than zero. +** +** Reference: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013), Section 7.2.4. +** +** Called: +** iauCp copy p-vector +** iauPdp scalar product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPpsp p-vector plus scaled p-vector +** iauPn decompose p-vector into modulus and direction +** iauLd light deflection by a solar-system body +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Light time for 1 au (days) */ + const double CR = AULT/DAYSEC; + + int i; + double v[3], dt, ev[3], em, e[3]; + + +/* Star direction prior to deflection. */ + iauCp(sc, sn); + +/* Body by body. */ + for ( i = 0; i < n; i++ ) { + + /* Body to observer vector at epoch of observation (au). */ + iauPmp ( ob, b[i].pv[0], v ); + + /* Minus the time since the light passed the body (days). */ + dt = iauPdp(sn,v) * CR; + + /* Neutralize if the star is "behind" the observer. */ + dt = gmin(dt, 0.0); + + /* Backtrack the body to the time the light was passing the body. */ + iauPpsp(v, -dt, b[i].pv[1], ev); + + /* Body to observer vector as magnitude and direction. */ + iauPn(ev, &em, e); + + /* Apply light deflection for this body. */ + iauLd ( b[i].bm, sn, sn, e, em, b[i].dl, sn ); + + /* Next body. */ + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ldsun.c b/deps/sofa/20231011/c/src/ldsun.c new file mode 100644 index 0000000..b2461b8 --- /dev/null +++ b/deps/sofa/20231011/c/src/ldsun.c @@ -0,0 +1,156 @@ +#include "sofa.h" + +void iauLdsun(double p[3], double e[3], double em, double p1[3]) +/* +** - - - - - - - - - +** i a u L d s u n +** - - - - - - - - - +** +** Deflection of starlight by the Sun. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** p double[3] direction from observer to star (unit vector) +** e double[3] direction from Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** +** Returned: +** p1 double[3] observer to deflected star (unit vector) +** +** Notes: +** +** 1) The source is presumed to be sufficiently distant that its +** directions seen from the Sun and the observer are essentially +** the same. +** +** 2) The deflection is restrained when the angle between the star and +** the center of the Sun is less than a threshold value, falling to +** zero deflection for zero separation. The chosen threshold value +** is within the solar limb for all solar-system applications, and +** is about 5 arcminutes for the case of a terrestrial observer. +** +** 3) The arguments p and p1 can be the same array. +** +** Called: +** iauLd light deflection by a solar-system body +** +** This revision: 2016 June 16 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double em2, dlim; + + +/* Deflection limiter (smaller for distant observers). */ + em2 = em*em; + if ( em2 < 1.0 ) em2 = 1.0; + dlim = 1e-6 / (em2 > 1.0 ? em2 : 1.0); + +/* Apply the deflection. */ + iauLd(1.0, p, p, e, em, dlim, p1); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/libsofa_c.a b/deps/sofa/20231011/c/src/libsofa_c.a new file mode 100644 index 0000000000000000000000000000000000000000..509358c24fd9184436adc107519ad889dfb27ce5 GIT binary patch literal 819278 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

o{ayedwOQqE5W~lKB(v`Vtoa+gC&WO*Q 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

;tPkY`9hTFv4*Qi}|2zAM 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 z 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 C!de;t literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/src/lteceq.c b/deps/sofa/20231011/c/src/lteceq.c new file mode 100644 index 0000000..a9c809f --- /dev/null +++ b/deps/sofa/20231011/c/src/lteceq.c @@ -0,0 +1,181 @@ +#include "sofa.h" + +void iauLteceq(double epj, double dl, double db, double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u L t e c e q +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using a long-term precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 2) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dl, db, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauLtecm(epj, rm); + +/* The transformation from ecliptic to ICRS. */ + iauTrxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dr = iauAnp(a); + *dd = iauAnpm(b); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ltecm.c b/deps/sofa/20231011/c/src/ltecm.c new file mode 100644 index 0000000..fb706d1 --- /dev/null +++ b/deps/sofa/20231011/c/src/ltecm.c @@ -0,0 +1,201 @@ +#include "sofa.h" +#include "sofam.h" + +void iauLtecm(double epj, double rm[3][3]) +/* +** - - - - - - - - - +** i a u L t e c m +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, long-term. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of epoch epj. +** +** 2) P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Frame bias (IERS Conventions 2010, Eqs. 5.21 and 5.33) */ + const double dx = -0.016617 * DAS2R, + de = -0.0068192 * DAS2R, + dr = -0.0146 * DAS2R; + + double p[3], z[3], w[3], s, x[3], y[3]; + + +/* Equator pole. */ + iauLtpequ(epj, p); + +/* Ecliptic pole (bottom row of equatorial to ecliptic matrix). */ + iauLtpecl(epj, z); + +/* Equinox (top row of matrix). */ + iauPxp(p, z, w); + iauPn(w, &s, x); + +/* Middle row of matrix. */ + iauPxp(z, x, y); + +/* Combine with frame bias. */ + rm[0][0] = x[0] - x[1]*dr + x[2]*dx; + rm[0][1] = x[0]*dr + x[1] + x[2]*de; + rm[0][2] = - x[0]*dx - x[1]*de + x[2]; + rm[1][0] = y[0] - y[1]*dr + y[2]*dx; + rm[1][1] = y[0]*dr + y[1] + y[2]*de; + rm[1][2] = - y[0]*dx - y[1]*de + y[2]; + rm[2][0] = z[0] - z[1]*dr + z[2]*dx; + rm[2][1] = z[0]*dr + z[1] + z[2]*de; + rm[2][2] = - z[0]*dx - z[1]*de + z[2]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/lteqec.c b/deps/sofa/20231011/c/src/lteqec.c new file mode 100644 index 0000000..aca53d4 --- /dev/null +++ b/deps/sofa/20231011/c/src/lteqec.c @@ -0,0 +1,181 @@ +#include "sofa.h" + +void iauLteqec(double epj, double dr, double dd, double *dl, double *db) +/* +** - - - - - - - - - - +** i a u L t e q e c +** - - - - - - - - - - +** +** Transformation from ICRS RA,Dec to ecliptic coordinates (mean equinox +** and ecliptic of date), using a long-term precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 2) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2023 March 18 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rm[3][3], v1[3], v2[3], a, b; + + +/* Spherical to Cartesian. */ + iauS2c(dr, dd, v1); + +/* Rotation matrix, ICRS equatorial to ecliptic. */ + iauLtecm(epj, rm); + +/* The transformation from ICRS to ecliptic. */ + iauRxp(rm, v1, v2); + +/* Cartesian to spherical. */ + iauC2s(v2, &a, &b); + +/* Express in conventional ranges. */ + *dl = iauAnp(a); + *db = iauAnpm(b); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ltp.c b/deps/sofa/20231011/c/src/ltp.c new file mode 100644 index 0000000..686ee4c --- /dev/null +++ b/deps/sofa/20231011/c/src/ltp.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +void iauLtp(double epj, double rp[3][3]) +/* +** - - - - - - - +** i a u L t p +** - - - - - - - +** +** Long-term precession matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rp double[3][3] precession matrix, J2000.0 to date +** +** Notes: +** +** 1) The matrix is in the sense +** +** P_date = rp x P_J2000, +** +** where P_J2000 is a vector with respect to the J2000.0 mean +** equator and equinox and P_date is the same vector with respect to +** the mean equator and equinox of epoch epj. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2023 March 19 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int i; + double peqr[3], pecl[3], v[3], w, eqx[3]; + + +/* Equator pole (bottom row of matrix). */ + iauLtpequ(epj, peqr); + +/* Ecliptic pole. */ + iauLtpecl(epj, pecl); + +/* Equinox (top row of matrix). */ + iauPxp(peqr, pecl, v); + iauPn(v, &w, eqx); + +/* Middle row of matrix. */ + iauPxp(peqr, eqx, v); + +/* Assemble the matrix. */ + for ( i = 0; i < 3; i++ ) { + rp[0][i] = eqx[i]; + rp[1][i] = v[i]; + rp[2][i] = peqr[i]; + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ltpb.c b/deps/sofa/20231011/c/src/ltpb.c new file mode 100644 index 0000000..22482f5 --- /dev/null +++ b/deps/sofa/20231011/c/src/ltpb.c @@ -0,0 +1,177 @@ +#include "sofa.h" +#include "sofam.h" + +void iauLtpb(double epj, double rpb[3][3]) +/* +** - - - - - - - - +** i a u L t p b +** - - - - - - - - +** +** Long-term precession matrix, including ICRS frame bias. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rpb double[3][3] precession+bias matrix, J2000.0 to date +** +** Notes: +** +** 1) The matrix is in the sense +** +** P_date = rpb x P_ICRS, +** +** where P_ICRS is a vector in the Geocentric Celestial Reference +** System, and P_date is the vector with respect to the Celestial +** Intermediate Reference System at that date but with nutation +** neglected. +** +** 2) A first order frame bias formulation is used, of sub- +** microarcsecond accuracy compared with a full 3D rotation. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2023 March 20 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Frame bias (IERS Conventions 2010, Eqs. 5.21 and 5.33) */ + const double dx = -0.016617 * DAS2R, + de = -0.0068192 * DAS2R, + dr = -0.0146 * DAS2R; + + int i; + double rp[3][3]; + + +/* Precession matrix. */ + iauLtp(epj, rp); + +/* Apply the bias. */ + for ( i = 0; i < 3; i++ ) { + rpb[i][0] = rp[i][0] - rp[i][1]*dr + rp[i][2]*dx; + rpb[i][1] = rp[i][0]*dr + rp[i][1] + rp[i][2]*de; + rpb[i][2] = -rp[i][0]*dx - rp[i][1]*de + rp[i][2]; + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ltpecl.c b/deps/sofa/20231011/c/src/ltpecl.c new file mode 100644 index 0000000..dda8063 --- /dev/null +++ b/deps/sofa/20231011/c/src/ltpecl.c @@ -0,0 +1,221 @@ +#include "sofa.h" +#include "sofam.h" + +void iauLtpecl(double epj, double vec[3]) +/* +** - - - - - - - - - - +** i a u L t p e c l +** - - - - - - - - - - +** +** Long-term precession of the ecliptic. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** vec double[3] ecliptic pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Obliquity at J2000.0 (radians). */ + static const double eps0 = 84381.406 * DAS2R; + +/* Polynomial coefficients */ + enum { NPOL = 4 }; + static const double pqpol[2][NPOL] = { + { 5851.607687, + -0.1189000, + -0.00028913, + 0.000000101}, + {-1600.886300, + 1.1689818, + -0.00000020, + -0.000000437} + }; + +/* Periodic coefficients */ + static const double pqper[][5] = { + { 708.15,-5486.751211,-684.661560, 667.666730,-5523.863691}, + {2309.00, -17.127623,2446.283880,-2354.886252, -549.747450}, + {1620.00, -617.517403, 399.671049, -428.152441, -310.998056}, + { 492.20, 413.442940,-356.652376, 376.202861, 421.535876}, + {1183.00, 78.614193,-186.387003, 184.778874, -36.776172}, + { 622.00, -180.732815,-316.800070, 335.321713, -145.278396}, + { 882.00, -87.676083, 198.296701, -185.138669, -34.744450}, + { 547.00, 46.140315, 101.135679, -120.972830, 22.885731} + }; + static const int NPER = (int) ( sizeof pqper / 5 / sizeof (double) ); + +/* Miscellaneous */ + int i; + double t, p, q, w, a, s, c; + + +/* Centuries since J2000. */ + t = ( epj - 2000.0 ) / 100.0; + +/* Initialize P_A and Q_A accumulators. */ + p = 0.0; + q = 0.0; + +/* Periodic terms. */ + w = D2PI*t; + for ( i = 0; i < NPER; i++ ) { + a = w/pqper[i][0]; + s = sin(a); + c = cos(a); + p += c*pqper[i][1] + s*pqper[i][3]; + q += c*pqper[i][2] + s*pqper[i][4]; + } + +/* Polynomial terms. */ + w = 1.0; + for ( i = 0; i < NPOL; i++ ) { + p += pqpol[0][i]*w; + q += pqpol[1][i]*w; + w *= t; + } + +/* P_A and Q_A (radians). */ + p *= DAS2R; + q *= DAS2R; + +/* Form the ecliptic pole vector. */ + w = 1.0 - p*p - q*q; + w = w < 0.0 ? 0.0 : sqrt(w); + s = sin(eps0); + c = cos(eps0); + vec[0] = p; + vec[1] = - q*c - w*s; + vec[2] = - q*s + w*c; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ltpequ.c b/deps/sofa/20231011/c/src/ltpequ.c new file mode 100644 index 0000000..65f39ee --- /dev/null +++ b/deps/sofa/20231011/c/src/ltpequ.c @@ -0,0 +1,221 @@ +#include "sofa.h" +#include "sofam.h" + +void iauLtpequ(double epj, double veq[3]) +/* +** - - - - - - - - - - +** i a u L t p e q u +** - - - - - - - - - - +** +** Long-term precession of the equator. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** veq double[3] equator pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Polynomial coefficients */ + enum { NPOL = 4 }; + static const double xypol[2][NPOL] = { + { 5453.282155, + 0.4252841, + -0.00037173, + -0.000000152}, + {-73750.930350, + -0.7675452, + -0.00018725, + 0.000000231} + }; + +/* Periodic coefficients */ + static const double xyper[][5] = { + { 256.75, -819.940624,75004.344875,81491.287984, 1558.515853}, + { 708.15,-8444.676815, 624.033993, 787.163481, 7774.939698}, + { 274.20, 2600.009459, 1251.136893, 1251.296102,-2219.534038}, + { 241.45, 2755.175630,-1102.212834,-1257.950837,-2523.969396}, + {2309.00, -167.659835,-2660.664980,-2966.799730, 247.850422}, + { 492.20, 871.855056, 699.291817, 639.744522, -846.485643}, + { 396.10, 44.769698, 153.167220, 131.600209,-1393.124055}, + { 288.90, -512.313065, -950.865637, -445.040117, 368.526116}, + { 231.10, -819.415595, 499.754645, 584.522874, 749.045012}, + {1610.00, -538.071099, -145.188210, -89.756563, 444.704518}, + { 620.00, -189.793622, 558.116553, 524.429630, 235.934465}, + { 157.87, -402.922932, -23.923029, -13.549067, 374.049623}, + { 220.30, 179.516345, -165.405086, -210.157124, -171.330180}, + {1200.00, -9.814756, 9.344131, -44.919798, -22.899655} + }; + static const int NPER = (int) ( sizeof xyper / 5 / sizeof (double) ); + +/* Miscellaneous */ + int i; + double t, x, y, w, a, s, c; + + +/* Centuries since J2000. */ + t = ( epj - 2000.0 ) / 100.0; + +/* Initialize X and Y accumulators. */ + x = 0.0; + y = 0.0; + +/* Periodic terms. */ + w = D2PI * t; + for ( i = 0; i < NPER; i++ ) { + a = w / xyper[i][0]; + s = sin(a); + c = cos(a); + x += c*xyper[i][1] + s*xyper[i][3]; + y += c*xyper[i][2] + s*xyper[i][4]; + } + +/* Polynomial terms. */ + w = 1.0; + for ( i = 0; i < NPOL; i++ ) { + x += xypol[0][i]*w; + y += xypol[1][i]*w; + w *= t; + } + +/* X and Y (direction cosines). */ + x *= DAS2R; + y *= DAS2R; + +/* Form the equator pole vector. */ + veq[0] = x; + veq[1] = y; + w = 1.0 - x*x - y*y; + veq[2] = w < 0.0 ? 0.0 : sqrt(w); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/makefile b/deps/sofa/20231011/c/src/makefile new file mode 100644 index 0000000..5a20ecb --- /dev/null +++ b/deps/sofa/20231011/c/src/makefile @@ -0,0 +1,895 @@ +#----------------------------------------------------------------------- +# +# Description: make file for the ANSI-C version of SOFA. This +# make file creates a Unix .a library. Designed for Linux/gcc but +# can be adapted for other platforms or run in an appropriate way +# by means of the macros CCOMPC (compiler command), CFLAGF (qualifiers +# for compiling functions) and CFLAGX (qualifiers for compiling +# executables). +# +# Usage: +# +# To build the library: +# +# make +# +# To install the library and include files: +# +# make install +# +# To delete all object files: +# +# make clean +# +# To build and run the test program using the installed library: +# +# make test +# +# Also: +# make all same as make +# make uninstall deinstall the library and header files +# make check test the build +# make installcheck same as make test +# make distclean delete all generated binaries +# make realclean same as distclean +# +# Last revision: 2021 April 18 +# +# Copyright International Astronomical Union. All rights reserved. +# +#----------------------------------------------------------------------- + +#----------------------------------------------------------------------- +# +# DEFINITIONS +# +#----------------------------------------------------------------------- + +#----YOU MAY HAVE TO MODIFY THE NEXT FEW DEFINITIONS----- + +# Specify the installation home directory. + +INSTALL_DIR = $(HOME) + +# Specify the installation directory for the library. + +SOFA_LIB_DIR = $(INSTALL_DIR)/lib/ + +# Specify the installation directory for the include files. + +SOFA_INC_DIR = $(INSTALL_DIR)/include/ + +# This software is compilable only by ANSI C compilers - give the name +# of your preferred C compiler (CCOMPC) and compilation flags (CFLAGF +# for functions, CFLAGX for executables) here. + +CCOMPC = gcc +CFLAGF = -c -pedantic -Wall -O +CFLAGX = -pedantic -Wall -O + +#----YOU SHOULDN'T HAVE TO MODIFY ANYTHING BELOW THIS LINE--------- + +SHELL = /bin/sh + +# The list of installation directories. + +INSTALL_DIRS = $(SOFA_LIB_DIR) $(SOFA_INC_DIR) + +# Name the SOFA/C library in its source and target locations. + +SOFA_LIB_NAME = libsofa_c.a +SOFA_LIB = $(SOFA_LIB_DIR)$(SOFA_LIB_NAME) + +# Name the SOFA/C testbed in its source and target locations. + +SOFA_TEST_NAME = t_sofa_c.c +SOFA_TEST = t_sofa_c + +# Name the SOFA/C includes in their source and target locations. + +SOFA_INC_NAMES = sofa.h sofam.h +SOFA_INC = $(SOFA_INC_DIR)sofa.h $(SOFA_INC_DIR)sofam.h + +# The list of SOFA/C library object files. + +SOFA_OBS = iauA2af.o \ + iauA2tf.o \ + iauAb.o \ + iauAe2hd.o \ + iauAf2a.o \ + iauAnp.o \ + iauAnpm.o \ + iauApcg.o \ + iauApcg13.o \ + iauApci.o \ + iauApci13.o \ + iauApco.o \ + iauApco13.o \ + iauApcs.o \ + iauApcs13.o \ + iauAper.o \ + iauAper13.o \ + iauApio.o \ + iauApio13.o \ + iauAtcc13.o \ + iauAtccq.o \ + iauAtci13.o \ + iauAtciq.o \ + iauAtciqn.o \ + iauAtciqz.o \ + iauAtco13.o \ + iauAtic13.o \ + iauAticq.o \ + iauAticqn.o \ + iauAtio13.o \ + iauAtioq.o \ + iauAtoc13.o \ + iauAtoi13.o \ + iauAtoiq.o \ + iauBi00.o \ + iauBp00.o \ + iauBp06.o \ + iauBpn2xy.o \ + iauC2i00a.o \ + iauC2i00b.o \ + iauC2i06a.o \ + iauC2ibpn.o \ + iauC2ixy.o \ + iauC2ixys.o \ + iauC2s.o \ + iauC2t00a.o \ + iauC2t00b.o \ + iauC2t06a.o \ + iauC2tcio.o \ + iauC2teqx.o \ + iauC2tpe.o \ + iauC2txy.o \ + iauCal2jd.o \ + iauCp.o \ + iauCpv.o \ + iauCr.o \ + iauD2dtf.o \ + iauD2tf.o \ + iauDat.o \ + iauDtdb.o \ + iauDtf2d.o \ + iauEceq06.o \ + iauEcm06.o \ + iauEe00.o \ + iauEe00a.o \ + iauEe00b.o \ + iauEe06a.o \ + iauEect00.o \ + iauEform.o \ + iauEo06a.o \ + iauEors.o \ + iauEpb.o \ + iauEpb2jd.o \ + iauEpj.o \ + iauEpj2jd.o \ + iauEpv00.o \ + iauEqec06.o \ + iauEqeq94.o \ + iauEra00.o \ + iauFad03.o \ + iauFae03.o \ + iauFaf03.o \ + iauFaju03.o \ + iauFal03.o \ + iauFalp03.o \ + iauFama03.o \ + iauFame03.o \ + iauFane03.o \ + iauFaom03.o \ + iauFapa03.o \ + iauFasa03.o \ + iauFaur03.o \ + iauFave03.o \ + iauFk425.o \ + iauFk45z.o \ + iauFk524.o \ + iauFk52h.o \ + iauFk54z.o \ + iauFk5hip.o \ + iauFk5hz.o \ + iauFw2m.o \ + iauFw2xy.o \ + iauG2icrs.o \ + iauGc2gd.o \ + iauGc2gde.o \ + iauGd2gc.o \ + iauGd2gce.o \ + iauGmst00.o \ + iauGmst06.o \ + iauGmst82.o \ + iauGst00a.o \ + iauGst00b.o \ + iauGst06.o \ + iauGst06a.o \ + iauGst94.o \ + iauH2fk5.o \ + iauHd2ae.o \ + iauHd2pa.o \ + iauHfk5z.o \ + iauIcrs2g.o \ + iauIr.o \ + iauJd2cal.o \ + iauJdcalf.o \ + iauLd.o \ + iauLdn.o \ + iauLdsun.o \ + iauLteceq.o \ + iauLtecm.o \ + iauLteqec.o \ + iauLtp.o \ + iauLtpb.o \ + iauLtpecl.o \ + iauLtpequ.o \ + iauMoon98.o \ + iauNum00a.o \ + iauNum00b.o \ + iauNum06a.o \ + iauNumat.o \ + iauNut00a.o \ + iauNut00b.o \ + iauNut06a.o \ + iauNut80.o \ + iauNutm80.o \ + iauObl06.o \ + iauObl80.o \ + iauP06e.o \ + iauP2pv.o \ + iauP2s.o \ + iauPap.o \ + iauPas.o \ + iauPb06.o \ + iauPdp.o \ + iauPfw06.o \ + iauPlan94.o \ + iauPm.o \ + iauPmat00.o \ + iauPmat06.o \ + iauPmat76.o \ + iauPmp.o \ + iauPmpx.o \ + iauPmsafe.o \ + iauPn.o \ + iauPn00.o \ + iauPn00a.o \ + iauPn00b.o \ + iauPn06.o \ + iauPn06a.o \ + iauPnm00a.o \ + iauPnm00b.o \ + iauPnm06a.o \ + iauPnm80.o \ + iauPom00.o \ + iauPpp.o \ + iauPpsp.o \ + iauPr00.o \ + iauPrec76.o \ + iauPv2p.o \ + iauPv2s.o \ + iauPvdpv.o \ + iauPvm.o \ + iauPvmpv.o \ + iauPvppv.o \ + iauPvstar.o \ + iauPvtob.o \ + iauPvu.o \ + iauPvup.o \ + iauPvxpv.o \ + iauPxp.o \ + iauRefco.o \ + iauRm2v.o \ + iauRv2m.o \ + iauRx.o \ + iauRxp.o \ + iauRxpv.o \ + iauRxr.o \ + iauRy.o \ + iauRz.o \ + iauS00.o \ + iauS00a.o \ + iauS00b.o \ + iauS06.o \ + iauS06a.o \ + iauS2c.o \ + iauS2p.o \ + iauS2pv.o \ + iauS2xpv.o \ + iauSepp.o \ + iauSeps.o \ + iauSp00.o \ + iauStarpm.o \ + iauStarpv.o \ + iauSxp.o \ + iauSxpv.o \ + iauTaitt.o \ + iauTaiut1.o \ + iauTaiutc.o \ + iauTcbtdb.o \ + iauTcgtt.o \ + iauTdbtcb.o \ + iauTdbtt.o \ + iauTf2a.o \ + iauTf2d.o \ + iauTpors.o \ + iauTporv.o \ + iauTpsts.o \ + iauTpstv.o \ + iauTpxes.o \ + iauTpxev.o \ + iauTr.o \ + iauTrxp.o \ + iauTrxpv.o \ + iauTttai.o \ + iauTttcg.o \ + iauTttdb.o \ + iauTtut1.o \ + iauUt1tai.o \ + iauUt1tt.o \ + iauUt1utc.o \ + iauUtctai.o \ + iauUtcut1.o \ + iauXy06.o \ + iauXys00a.o \ + iauXys00b.o \ + iauXys06a.o \ + iauZp.o \ + iauZpv.o \ + iauZr.o + +#----------------------------------------------------------------------- +# +# TARGETS +# +#----------------------------------------------------------------------- + +# Build (but do not install) the library. +all : $(SOFA_LIB_NAME) + -@ echo "" + -@ echo "*** Now type 'make test'" \ + " to install the library and run tests ***" + -@ echo "" + +# Install the library and header files. +install $(SOFA_LIB) : $(INSTALL_DIRS) $(SOFA_LIB_NAME) $(SOFA_INC) + cp $(SOFA_LIB_NAME) $(SOFA_LIB_DIR) + +# Deinstall the library and header files. +uninstall: + - $(RM) $(SOFA_LIB) $(SOFA_INC) + +# Test the build. +check: $(SOFA_TEST_NAME) $(SOFA_INC_NAMES) $(SOFA_LIB_NAME) + $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) $(SOFA_LIB_NAME) \ + -I. -lm -o $(SOFA_TEST) + ./$(SOFA_TEST) + +# Test the installed library. +installcheck test: $(SOFA_TEST_NAME) $(SOFA_INC) $(SOFA_LIB) + $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) -I$(SOFA_INC_DIR) \ + -L$(SOFA_LIB_DIR) -lsofa_c -lm -o $(SOFA_TEST) + ./$(SOFA_TEST) + +# Delete object files. +clean : + - $(RM) $(SOFA_OBS) + +# Delete all generated binaries in the current directory. +realclean distclean : clean + - $(RM) $(SOFA_LIB_NAME) $(SOFA_TEST) + +# Create the installation directories if not already present. +$(INSTALL_DIRS): + mkdir -p $@ + +# Build the library. +$(SOFA_LIB_NAME): $(SOFA_OBS) + ar ru $(SOFA_LIB_NAME) $? + +# Install the header files. +$(SOFA_INC) : $(INSTALL_DIRS) $(SOFA_INC_NAMES) + cp $(SOFA_INC_NAMES) $(SOFA_INC_DIR) + +#----------------------------------------------------------------------- + +# The list of object file dependencies + +iauA2af.o : a2af.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ a2af.c +iauA2tf.o : a2tf.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ a2tf.c +iauAb.o : ab.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ab.c +iauAe2hd.o : ae2hd.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ae2hd.c +iauAf2a.o : af2a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ af2a.c +iauAnp.o : anp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ anp.c +iauAnpm.o : anpm.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ anpm.c +iauApcg.o : apcg.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apcg.c +iauApcg13.o : apcg13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apcg13.c +iauApci.o : apci.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apci.c +iauApci13.o : apci13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apci13.c +iauApco.o : apco.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apco.c +iauApco13.o : apco13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apco13.c +iauApcs.o : apcs.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apcs.c +iauApcs13.o : apcs13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apcs13.c +iauAper.o : aper.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ aper.c +iauAper13.o : aper13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ aper13.c +iauApio.o : apio.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apio.c +iauApio13.o : apio13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ apio13.c +iauAtcc13.o : atcc13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atcc13.c +iauAtccq.o : atccq.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atccq.c +iauAtci13.o : atci13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atci13.c +iauAtciq.o : atciq.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atciq.c +iauAtciqn.o : atciqn.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atciqn.c +iauAtciqz.o : atciqz.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atciqz.c +iauAtco13.o : atco13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atco13.c +iauAtic13.o : atic13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atic13.c +iauAticq.o : aticq.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ aticq.c +iauAticqn.o : aticqn.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ aticqn.c +iauAtio13.o : atio13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atio13.c +iauAtioq.o : atioq.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atioq.c +iauAtoc13.o : atoc13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atoc13.c +iauAtoi13.o : atoi13.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atoi13.c +iauAtoiq.o : atoiq.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ atoiq.c +iauBi00.o : bi00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ bi00.c +iauBp00.o : bp00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ bp00.c +iauBp06.o : bp06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ bp06.c +iauBpn2xy.o : bpn2xy.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ bpn2xy.c +iauC2i00a.o : c2i00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2i00a.c +iauC2i00b.o : c2i00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2i00b.c +iauC2i06a.o : c2i06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2i06a.c +iauC2ibpn.o : c2ibpn.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2ibpn.c +iauC2ixy.o : c2ixy.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2ixy.c +iauC2ixys.o : c2ixys.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2ixys.c +iauC2s.o : c2s.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2s.c +iauC2t00a.o : c2t00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2t00a.c +iauC2t00b.o : c2t00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2t00b.c +iauC2t06a.o : c2t06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2t06a.c +iauC2tcio.o : c2tcio.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2tcio.c +iauC2teqx.o : c2teqx.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2teqx.c +iauC2tpe.o : c2tpe.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2tpe.c +iauC2txy.o : c2txy.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ c2txy.c +iauCal2jd.o : cal2jd.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ cal2jd.c +iauCp.o : cp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ cp.c +iauCpv.o : cpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ cpv.c +iauCr.o : cr.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ cr.c +iauD2dtf.o : d2dtf.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ d2dtf.c +iauD2tf.o : d2tf.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ d2tf.c +iauDat.o : dat.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ dat.c +iauDtdb.o : dtdb.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ dtdb.c +iauDtf2d.o : dtf2d.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ dtf2d.c +iauEceq06.o : eceq06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eceq06.c +iauEcm06.o : ecm06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ecm06.c +iauEe00.o : ee00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ee00.c +iauEe00a.o : ee00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ee00a.c +iauEe00b.o : ee00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ee00b.c +iauEe06a.o : ee06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ee06a.c +iauEect00.o : eect00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eect00.c +iauEform.o : eform.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eform.c +iauEo06a.o : eo06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eo06a.c +iauEors.o : eors.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eors.c +iauEpb.o : epb.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ epb.c +iauEpb2jd.o : epb2jd.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ epb2jd.c +iauEpj.o : epj.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ epj.c +iauEpj2jd.o : epj2jd.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ epj2jd.c +iauEpv00.o : epv00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ epv00.c +iauEqec06.o : eqec06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eqec06.c +iauEqeq94.o : eqeq94.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ eqeq94.c +iauEra00.o : era00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ era00.c +iauFad03.o : fad03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fad03.c +iauFae03.o : fae03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fae03.c +iauFaf03.o : faf03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ faf03.c +iauFaju03.o : faju03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ faju03.c +iauFal03.o : fal03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fal03.c +iauFalp03.o : falp03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ falp03.c +iauFama03.o : fama03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fama03.c +iauFame03.o : fame03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fame03.c +iauFane03.o : fane03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fane03.c +iauFaom03.o : faom03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ faom03.c +iauFapa03.o : fapa03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fapa03.c +iauFasa03.o : fasa03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fasa03.c +iauFaur03.o : faur03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ faur03.c +iauFave03.o : fave03.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fave03.c +iauFk425.o : fk425.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk425.c +iauFk45z.o : fk45z.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk45z.c +iauFk524.o : fk524.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk524.c +iauFk52h.o : fk52h.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk52h.c +iauFk54z.o : fk54z.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk54z.c +iauFk5hip.o : fk5hip.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk5hip.c +iauFk5hz.o : fk5hz.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fk5hz.c +iauFw2m.o : fw2m.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fw2m.c +iauFw2xy.o : fw2xy.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ fw2xy.c +iauG2icrs.o : g2icrs.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ g2icrs.c +iauGc2gd.o : gc2gd.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gc2gd.c +iauGc2gde.o : gc2gde.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gc2gde.c +iauGd2gc.o : gd2gc.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gd2gc.c +iauGd2gce.o : gd2gce.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gd2gce.c +iauGmst00.o : gmst00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gmst00.c +iauGmst06.o : gmst06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gmst06.c +iauGmst82.o : gmst82.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gmst82.c +iauGst00a.o : gst00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gst00a.c +iauGst00b.o : gst00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gst00b.c +iauGst06.o : gst06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gst06.c +iauGst06a.o : gst06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gst06a.c +iauGst94.o : gst94.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ gst94.c +iauH2fk5.o : h2fk5.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ h2fk5.c +iauHd2ae.o : hd2ae.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ hd2ae.c +iauHd2pa.o : hd2pa.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ hd2pa.c +iauHfk5z.o : hfk5z.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ hfk5z.c +iauIcrs2g.o : icrs2g.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ icrs2g.c +iauIr.o : ir.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ir.c +iauJd2cal.o : jd2cal.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ jd2cal.c +iauJdcalf.o : jdcalf.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ jdcalf.c +iauLd.o : ld.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ld.c +iauLdn.o : ldn.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ldn.c +iauLdsun.o : ldsun.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ldsun.c +iauLteceq.o : lteceq.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ lteceq.c +iauLtecm.o : ltecm.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ltecm.c +iauLteqec.o : lteqec.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ lteqec.c +iauLtp.o : ltp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ltp.c +iauLtpb.o : ltpb.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ltpb.c +iauLtpecl.o : ltpecl.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ltpecl.c +iauLtpequ.o : ltpequ.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ltpequ.c +iauMoon98.o : moon98.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ moon98.c +iauNum00a.o : num00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ num00a.c +iauNum00b.o : num00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ num00b.c +iauNum06a.o : num06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ num06a.c +iauNumat.o : numat.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ numat.c +iauNut00a.o : nut00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ nut00a.c +iauNut00b.o : nut00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ nut00b.c +iauNut06a.o : nut06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ nut06a.c +iauNut80.o : nut80.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ nut80.c +iauNutm80.o : nutm80.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ nutm80.c +iauObl06.o : obl06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ obl06.c +iauObl80.o : obl80.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ obl80.c +iauP06e.o : p06e.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ p06e.c +iauP2pv.o : p2pv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ p2pv.c +iauP2s.o : p2s.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ p2s.c +iauPap.o : pap.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pap.c +iauPas.o : pas.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pas.c +iauPb06.o : pb06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pb06.c +iauPdp.o : pdp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pdp.c +iauPfw06.o : pfw06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pfw06.c +iauPlan94.o : plan94.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ plan94.c +iauPm.o : pm.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pm.c +iauPmat00.o : pmat00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pmat00.c +iauPmat06.o : pmat06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pmat06.c +iauPmat76.o : pmat76.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pmat76.c +iauPmp.o : pmp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pmp.c +iauPmpx.o : pmpx.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pmpx.c +iauPmsafe.o : pmsafe.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pmsafe.c +iauPn.o : pn.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pn.c +iauPn00.o : pn00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pn00.c +iauPn00a.o : pn00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pn00a.c +iauPn00b.o : pn00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pn00b.c +iauPn06.o : pn06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pn06.c +iauPn06a.o : pn06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pn06a.c +iauPnm00a.o : pnm00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pnm00a.c +iauPnm00b.o : pnm00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pnm00b.c +iauPnm06a.o : pnm06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pnm06a.c +iauPnm80.o : pnm80.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pnm80.c +iauPom00.o : pom00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pom00.c +iauPpp.o : ppp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ppp.c +iauPpsp.o : ppsp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ppsp.c +iauPr00.o : pr00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pr00.c +iauPrec76.o : prec76.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ prec76.c +iauPv2p.o : pv2p.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pv2p.c +iauPv2s.o : pv2s.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pv2s.c +iauPvdpv.o : pvdpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvdpv.c +iauPvm.o : pvm.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvm.c +iauPvmpv.o : pvmpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvmpv.c +iauPvppv.o : pvppv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvppv.c +iauPvstar.o : pvstar.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvstar.c +iauPvtob.o : pvtob.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvtob.c +iauPvu.o : pvu.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvu.c +iauPvup.o : pvup.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvup.c +iauPvxpv.o : pvxpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pvxpv.c +iauPxp.o : pxp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ pxp.c +iauRefco.o : refco.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ refco.c +iauRm2v.o : rm2v.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rm2v.c +iauRv2m.o : rv2m.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rv2m.c +iauRx.o : rx.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rx.c +iauRxp.o : rxp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rxp.c +iauRxpv.o : rxpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rxpv.c +iauRxr.o : rxr.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rxr.c +iauRy.o : ry.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ry.c +iauRz.o : rz.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ rz.c +iauS00.o : s00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s00.c +iauS00a.o : s00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s00a.c +iauS00b.o : s00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s00b.c +iauS06.o : s06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s06.c +iauS06a.o : s06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s06a.c +iauS2c.o : s2c.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s2c.c +iauS2p.o : s2p.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s2p.c +iauS2pv.o : s2pv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s2pv.c +iauS2xpv.o : s2xpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ s2xpv.c +iauSepp.o : sepp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ sepp.c +iauSeps.o : seps.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ seps.c +iauSp00.o : sp00.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ sp00.c +iauStarpm.o : starpm.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ starpm.c +iauStarpv.o : starpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ starpv.c +iauSxp.o : sxp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ sxp.c +iauSxpv.o : sxpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ sxpv.c +iauTaitt.o : taitt.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ taitt.c +iauTaiut1.o : taiut1.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ taiut1.c +iauTaiutc.o : taiutc.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ taiutc.c +iauTcbtdb.o : tcbtdb.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tcbtdb.c +iauTcgtt.o : tcgtt.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tcgtt.c +iauTdbtcb.o : tdbtcb.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tdbtcb.c +iauTdbtt.o : tdbtt.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tdbtt.c +iauTf2a.o : tf2a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tf2a.c +iauTf2d.o : tf2d.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tf2d.c +iauTpors.o : tpors.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tpors.c +iauTporv.o : tporv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tporv.c +iauTpsts.o : tpsts.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tpsts.c +iauTpstv.o : tpstv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tpstv.c +iauTpxes.o : tpxes.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tpxes.c +iauTpxev.o : tpxev.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tpxev.c +iauTr.o : tr.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tr.c +iauTrxp.o : trxp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ trxp.c +iauTrxpv.o : trxpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ trxpv.c +iauTttai.o : tttai.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tttai.c +iauTttcg.o : tttcg.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tttcg.c +iauTttdb.o : tttdb.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ tttdb.c +iauTtut1.o : ttut1.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ttut1.c +iauUt1tai.o : ut1tai.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ut1tai.c +iauUt1tt.o : ut1tt.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ut1tt.c +iauUt1utc.o : ut1utc.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ ut1utc.c +iauUtctai.o : utctai.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ utctai.c +iauUtcut1.o : utcut1.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ utcut1.c +iauXy06.o : xy06.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ xy06.c +iauXys00a.o : xys00a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ xys00a.c +iauXys00b.o : xys00b.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ xys00b.c +iauXys06a.o : xys06a.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ xys06a.c +iauZp.o : zp.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ zp.c +iauZpv.o : zpv.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ zpv.c +iauZr.o : zr.c sofa.h sofam.h + $(CCOMPC) $(CFLAGF) -o $@ zr.c + +#----------------------------------------------------------------------- diff --git a/deps/sofa/20231011/c/src/moon98.c b/deps/sofa/20231011/c/src/moon98.c new file mode 100644 index 0000000..556c882 --- /dev/null +++ b/deps/sofa/20231011/c/src/moon98.c @@ -0,0 +1,654 @@ +#include "sofa.h" +#include "sofam.h" +#include + +void iauMoon98 ( double date1, double date2, double pv[2][3] ) +/* +** - - - - - - - - - - +** i a u M o o n 9 8 +** - - - - - - - - - - +** +** Approximate geocentric position and velocity of the Moon. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** n.b. Not IAU-endorsed and without canonical status. +** +** Given: +** date1 double TT date part A (Notes 1,4) +** date2 double TT date part B (Notes 1,4) +** +** Returned: +** pv double[2][3] Moon p,v, GCRS (au, au/d, Note 5) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. The limited +** accuracy of the present algorithm is such that any of the methods +** is satisfactory. +** +** 2) This function is a full implementation of the algorithm +** published by Meeus (see reference) except that the light-time +** correction to the Moon's mean longitude has been omitted. +** +** 3) Comparisons with ELP/MPP02 over the interval 1950-2100 gave RMS +** errors of 2.9 arcsec in geocentric direction, 6.1 km in position +** and 36 mm/s in velocity. The worst case errors were 18.3 arcsec +** in geocentric direction, 31.7 km in position and 172 mm/s in +** velocity. +** +** 4) The original algorithm is expressed in terms of "dynamical time", +** which can either be TDB or TT without any significant change in +** accuracy. UT cannot be used without incurring significant errors +** (30 arcsec in the present era) due to the Moon's 0.5 arcsec/sec +** movement. +** +** 5) The result is with respect to the GCRS (the same as J2000.0 mean +** equator and equinox to within 23 mas). +** +** 6) Velocity is obtained by a complete analytical differentiation +** of the Meeus model. +** +** 7) The Meeus algorithm generates position and velocity in mean +** ecliptic coordinates of date, which the present function then +** rotates into GCRS. Because the ecliptic system is precessing, +** there is a coupling between this spin (about 1.4 degrees per +** century) and the Moon position that produces a small velocity +** contribution. In the present function this effect is neglected +** as it corresponds to a maximum difference of less than 3 mm/s and +** increases the RMS error by only 0.4%. +** +** References: +** +** Meeus, J., Astronomical Algorithms, 2nd edition, Willmann-Bell, +** 1998, p337. +** +** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 +** +** Defined in sofam.h: +** DAU astronomical unit (m) +** DJC days per Julian century +** DJ00 reference epoch (J2000.0), Julian Date +** DD2R degrees to radians +** +** Called: +** iauS2pv spherical coordinates to pv-vector +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRx rotate around X-axis +** iauRxpv product of r-matrix and pv-vector +** +** This revision: 2023 March 20 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* +** Coefficients for fundamental arguments: +** +** . Powers of time in Julian centuries +** . Units are degrees. +*/ + +/* Moon's mean longitude (wrt mean equinox and ecliptic of date) */ + static double elp0 = 218.31665436, /* Simon et al. (1994). */ + elp1 = 481267.88123421, + elp2 = -0.0015786, + elp3 = 1.0 / 538841.0, + elp4 = -1.0 / 65194000.0; + double elp, delp; + +/* Moon's mean elongation */ + static double d0 = 297.8501921, + d1 = 445267.1114034, + d2 = -0.0018819, + d3 = 1.0 / 545868.0, + d4 = 1.0 / 113065000.0; + double d, dd; + +/* Sun's mean anomaly */ + static double em0 = 357.5291092, + em1 = 35999.0502909, + em2 = -0.0001536, + em3 = 1.0 / 24490000.0, + em4 = 0.0; + double em, dem; + +/* Moon's mean anomaly */ + static double emp0 = 134.9633964, + emp1 = 477198.8675055, + emp2 = 0.0087414, + emp3 = 1.0 / 69699.0, + emp4 = -1.0 / 14712000.0; + double emp, demp; + +/* Mean distance of the Moon from its ascending node */ + static double f0 = 93.2720950, + f1 = 483202.0175233, + f2 = -0.0036539, + f3 = 1.0 / 3526000.0, + f4 = 1.0 / 863310000.0; + double f, df; + +/* +** Other arguments +*/ + +/* Meeus A_1, due to Venus (deg) */ + static double a10 = 119.75, + a11 = 131.849; + double a1, da1; + +/* Meeus A_2, due to Jupiter (deg) */ + static double a20 = 53.09, + a21 = 479264.290; + double a2, da2; + +/* Meeus A_3, due to sidereal motion of the Moon in longitude (deg) */ + static double a30 = 313.45, + a31 = 481266.484; + double a3, da3; + +/* Coefficients for Meeus "additive terms" (deg) */ + static double al1 = 0.003958, + al2 = 0.001962, + al3 = 0.000318; + static double ab1 = -0.002235, + ab2 = 0.000382, + ab3 = 0.000175, + ab4 = 0.000175, + ab5 = 0.000127, + ab6 = -0.000115; + +/* Fixed term in distance (m) */ + static double r0 = 385000560.0; + +/* Coefficients for (dimensionless) E factor */ + static double e1 = -0.002516, + e2 = -0.0000074; + double e, de, esq, desq; + +/* +** Coefficients for Moon longitude and distance series +*/ + struct termlr { + int nd; /* multiple of D in argument */ + int nem; /* " " M " " */ + int nemp; /* " " M' " " */ + int nf; /* " " F " " */ + double coefl; /* coefficient of L sine argument (deg) */ + double coefr; /* coefficient of R cosine argument (m) */ + }; + +static struct termlr tlr[] = {{0, 0, 1, 0, 6.288774, -20905355.0}, + {2, 0, -1, 0, 1.274027, -3699111.0}, + {2, 0, 0, 0, 0.658314, -2955968.0}, + {0, 0, 2, 0, 0.213618, -569925.0}, + {0, 1, 0, 0, -0.185116, 48888.0}, + {0, 0, 0, 2, -0.114332, -3149.0}, + {2, 0, -2, 0, 0.058793, 246158.0}, + {2, -1, -1, 0, 0.057066, -152138.0}, + {2, 0, 1, 0, 0.053322, -170733.0}, + {2, -1, 0, 0, 0.045758, -204586.0}, + {0, 1, -1, 0, -0.040923, -129620.0}, + {1, 0, 0, 0, -0.034720, 108743.0}, + {0, 1, 1, 0, -0.030383, 104755.0}, + {2, 0, 0, -2, 0.015327, 10321.0}, + {0, 0, 1, 2, -0.012528, 0.0}, + {0, 0, 1, -2, 0.010980, 79661.0}, + {4, 0, -1, 0, 0.010675, -34782.0}, + {0, 0, 3, 0, 0.010034, -23210.0}, + {4, 0, -2, 0, 0.008548, -21636.0}, + {2, 1, -1, 0, -0.007888, 24208.0}, + {2, 1, 0, 0, -0.006766, 30824.0}, + {1, 0, -1, 0, -0.005163, -8379.0}, + {1, 1, 0, 0, 0.004987, -16675.0}, + {2, -1, 1, 0, 0.004036, -12831.0}, + {2, 0, 2, 0, 0.003994, -10445.0}, + {4, 0, 0, 0, 0.003861, -11650.0}, + {2, 0, -3, 0, 0.003665, 14403.0}, + {0, 1, -2, 0, -0.002689, -7003.0}, + {2, 0, -1, 2, -0.002602, 0.0}, + {2, -1, -2, 0, 0.002390, 10056.0}, + {1, 0, 1, 0, -0.002348, 6322.0}, + {2, -2, 0, 0, 0.002236, -9884.0}, + {0, 1, 2, 0, -0.002120, 5751.0}, + {0, 2, 0, 0, -0.002069, 0.0}, + {2, -2, -1, 0, 0.002048, -4950.0}, + {2, 0, 1, -2, -0.001773, 4130.0}, + {2, 0, 0, 2, -0.001595, 0.0}, + {4, -1, -1, 0, 0.001215, -3958.0}, + {0, 0, 2, 2, -0.001110, 0.0}, + {3, 0, -1, 0, -0.000892, 3258.0}, + {2, 1, 1, 0, -0.000810, 2616.0}, + {4, -1, -2, 0, 0.000759, -1897.0}, + {0, 2, -1, 0, -0.000713, -2117.0}, + {2, 2, -1, 0, -0.000700, 2354.0}, + {2, 1, -2, 0, 0.000691, 0.0}, + {2, -1, 0, -2, 0.000596, 0.0}, + {4, 0, 1, 0, 0.000549, -1423.0}, + {0, 0, 4, 0, 0.000537, -1117.0}, + {4, -1, 0, 0, 0.000520, -1571.0}, + {1, 0, -2, 0, -0.000487, -1739.0}, + {2, 1, 0, -2, -0.000399, 0.0}, + {0, 0, 2, -2, -0.000381, -4421.0}, + {1, 1, 1, 0, 0.000351, 0.0}, + {3, 0, -2, 0, -0.000340, 0.0}, + {4, 0, -3, 0, 0.000330, 0.0}, + {2, -1, 2, 0, 0.000327, 0.0}, + {0, 2, 1, 0, -0.000323, 1165.0}, + {1, 1, -1, 0, 0.000299, 0.0}, + {2, 0, 3, 0, 0.000294, 0.0}, + {2, 0, -1, -2, 0.000000, 8752.0}}; + + static int NLR = ( sizeof tlr / sizeof ( struct termlr ) ); + +/* +** Coefficients for Moon latitude series +*/ + struct termb { + int nd; /* multiple of D in argument */ + int nem; /* " " M " " */ + int nemp; /* " " M' " " */ + int nf; /* " " F " " */ + double coefb; /* coefficient of B sine argument (deg) */ + }; + +static struct termb tb[] = {{0, 0, 0, 1, 5.128122}, + {0, 0, 1, 1, 0.280602}, + {0, 0, 1, -1, 0.277693}, + {2, 0, 0, -1, 0.173237}, + {2, 0, -1, 1, 0.055413}, + {2, 0, -1, -1, 0.046271}, + {2, 0, 0, 1, 0.032573}, + {0, 0, 2, 1, 0.017198}, + {2, 0, 1, -1, 0.009266}, + {0, 0, 2, -1, 0.008822}, + {2, -1, 0, -1, 0.008216}, + {2, 0, -2, -1, 0.004324}, + {2, 0, 1, 1, 0.004200}, + {2, 1, 0, -1, -0.003359}, + {2, -1, -1, 1, 0.002463}, + {2, -1, 0, 1, 0.002211}, + {2, -1, -1, -1, 0.002065}, + {0, 1, -1, -1, -0.001870}, + {4, 0, -1, -1, 0.001828}, + {0, 1, 0, 1, -0.001794}, + {0, 0, 0, 3, -0.001749}, + {0, 1, -1, 1, -0.001565}, + {1, 0, 0, 1, -0.001491}, + {0, 1, 1, 1, -0.001475}, + {0, 1, 1, -1, -0.001410}, + {0, 1, 0, -1, -0.001344}, + {1, 0, 0, -1, -0.001335}, + {0, 0, 3, 1, 0.001107}, + {4, 0, 0, -1, 0.001021}, + {4, 0, -1, 1, 0.000833}, + {0, 0, 1, -3, 0.000777}, + {4, 0, -2, 1, 0.000671}, + {2, 0, 0, -3, 0.000607}, + {2, 0, 2, -1, 0.000596}, + {2, -1, 1, -1, 0.000491}, + {2, 0, -2, 1, -0.000451}, + {0, 0, 3, -1, 0.000439}, + {2, 0, 2, 1, 0.000422}, + {2, 0, -3, -1, 0.000421}, + {2, 1, -1, 1, -0.000366}, + {2, 1, 0, 1, -0.000351}, + {4, 0, 0, 1, 0.000331}, + {2, -1, 1, 1, 0.000315}, + {2, -2, 0, -1, 0.000302}, + {0, 0, 1, 3, -0.000283}, + {2, 1, 1, -1, -0.000229}, + {1, 1, 0, -1, 0.000223}, + {1, 1, 0, 1, 0.000223}, + {0, 1, -2, -1, -0.000220}, + {2, 1, -1, -1, -0.000220}, + {1, 0, 1, 1, -0.000185}, + {2, -1, -2, -1, 0.000181}, + {0, 1, 2, 1, -0.000177}, + {4, 0, -2, -1, 0.000176}, + {4, -1, -1, -1, 0.000166}, + {1, 0, 1, -1, -0.000164}, + {4, 0, 1, -1, 0.000132}, + {1, 0, -1, -1, -0.000119}, + {4, -1, 0, -1, 0.000115}, + {2, -2, 0, 1, 0.000107}}; + + static int NB = ( sizeof tb / sizeof ( struct termb ) ); + +/* Miscellaneous */ + int n, i; + double t, elpmf, delpmf, vel, vdel, vr, vdr, a1mf, da1mf, a1pf, + da1pf, dlpmp, slpmp, vb, vdb, v, dv, emn, empn, dn, fn, en, + den, arg, darg, farg, coeff, el, del, r, dr, b, db, gamb, + phib, psib, epsa, rm[3][3]; + +/* ------------------------------------------------------------------ */ + +/* Centuries since J2000.0 */ + t = ((date1 - DJ00) + date2) / DJC; + +/* --------------------- */ +/* Fundamental arguments */ +/* --------------------- */ + +/* Arguments (radians) and derivatives (radians per Julian century) + for the current date. */ + +/* Moon's mean longitude. */ + elp = DD2R * fmod ( elp0 + + ( elp1 + + ( elp2 + + ( elp3 + + elp4 * t ) * t ) * t ) * t, 360.0 ); + delp = DD2R * ( elp1 + + ( elp2 * 2.0 + + ( elp3 * 3.0 + + elp4 * 4.0 * t ) * t ) * t ); + +/* Moon's mean elongation. */ + d = DD2R * fmod ( d0 + + ( d1 + + ( d2 + + ( d3 + + d4 * t ) * t ) * t ) * t, 360.0 ); + dd = DD2R * ( d1 + + ( d2 * 2.0 + + ( d3 * 3.0 + + d4 * 4.0 * t ) * t ) * t ); + +/* Sun's mean anomaly. */ + em = DD2R * fmod ( em0 + + ( em1 + + ( em2 + + ( em3 + + em4 * t ) * t ) * t ) * t, 360.0 ); + dem = DD2R * ( em1 + + ( em2 * 2.0 + + ( em3 * 3.0 + + em4 * 4.0 * t ) * t ) * t ); + +/* Moon's mean anomaly. */ + emp = DD2R * fmod ( emp0 + + ( emp1 + + ( emp2 + + ( emp3 + + emp4 * t ) * t ) * t ) * t, 360.0 ); + demp = DD2R * ( emp1 + + ( emp2 * 2.0 + + ( emp3 * 3.0 + + emp4 * 4.0 * t ) * t ) * t ); + +/* Mean distance of the Moon from its ascending node. */ + f = DD2R * fmod ( f0 + + ( f1 + + ( f2 + + ( f3 + + f4 * t ) * t ) * t ) * t, 360.0 ); + df = DD2R * ( f1 + + ( f2 * 2.0 + + ( f3 * 3.0 + + f4 * 4.0 * t ) * t ) * t ); + +/* Meeus further arguments. */ + a1 = DD2R * ( a10 + a11*t ); + da1 = DD2R * al1; + a2 = DD2R * ( a20 + a21*t ); + da2 = DD2R * a21; + a3 = DD2R * ( a30 + a31*t ); + da3 = DD2R * a31; + +/* E-factor, and square. */ + e = 1.0 + ( e1 + e2*t ) * t; + de = e1 + 2.0*e2*t; + esq = e*e; + desq = 2.0*e*de; + +/* Use the Meeus additive terms (deg) to start off the summations. */ + elpmf = elp - f; + delpmf = delp - df; + vel = al1 * sin(a1) + + al2 * sin(elpmf) + + al3 * sin(a2); + vdel = al1 * cos(a1) * da1 + + al2 * cos(elpmf) * delpmf + + al3 * cos(a2) * da2; + + vr = 0.0; + vdr = 0.0; + + a1mf = a1 - f; + da1mf = da1 - df; + a1pf = a1 + f; + da1pf = da1 + df; + dlpmp = elp - emp; + slpmp = elp + emp; + vb = ab1 * sin(elp) + + ab2 * sin(a3) + + ab3 * sin(a1mf) + + ab4 * sin(a1pf) + + ab5 * sin(dlpmp) + + ab6 * sin(slpmp); + vdb = ab1 * cos(elp) * delp + + ab2 * cos(a3) * da3 + + ab3 * cos(a1mf) * da1mf + + ab4 * cos(a1pf) * da1pf + + ab5 * cos(dlpmp) * (delp-demp) + + ab6 * cos(slpmp) * (delp+demp); + +/* ----------------- */ +/* Series expansions */ +/* ----------------- */ + +/* Longitude and distance plus derivatives. */ + for ( n = NLR-1; n >= 0; n-- ) { + dn = (double) tlr[n].nd; + emn = (double) ( i = tlr[n].nem ); + empn = (double) tlr[n].nemp; + fn = (double) tlr[n].nf; + switch ( abs(i) ) { + case 1: + en = e; + den = de; + break; + case 2: + en = esq; + den = desq; + break; + default: + en = 1.0; + den = 0.0; + } + arg = dn*d + emn*em + empn*emp + fn*f; + darg = dn*dd + emn*dem + empn*demp + fn*df; + farg = sin(arg); + v = farg * en; + dv = cos(arg)*darg*en + farg*den; + coeff = tlr[n].coefl; + vel += coeff * v; + vdel += coeff * dv; + farg = cos(arg); + v = farg * en; + dv = -sin(arg)*darg*en + farg*den; + coeff = tlr[n].coefr; + vr += coeff * v; + vdr += coeff * dv; + } + el = elp + DD2R*vel; + del = ( delp + DD2R*vdel ) / DJC; + r = ( vr + r0 ) / DAU; + dr = vdr / DAU / DJC; + +/* Latitude plus derivative. */ + for ( n = NB-1; n >= 0; n-- ) { + dn = (double) tb[n].nd; + emn = (double) ( i = tb[n].nem ); + empn = (double) tb[n].nemp; + fn = (double) tb[n].nf; + switch ( abs(i) ) { + case 1: + en = e; + den = de; + break; + case 2: + en = esq; + den = desq; + break; + default: + en = 1.0; + den = 0.0; + } + arg = dn*d + emn*em + empn*emp + fn*f; + darg = dn*dd + emn*dem + empn*demp + fn*df; + farg = sin(arg); + v = farg * en; + dv = cos(arg)*darg*en + farg*den; + coeff = tb[n].coefb; + vb += coeff * v; + vdb += coeff * dv; + } + b = vb * DD2R; + db = vdb * DD2R / DJC; + +/* ------------------------------ */ +/* Transformation into final form */ +/* ------------------------------ */ + +/* Longitude, latitude to x, y, z (au). */ + iauS2pv ( el, b, r, del, db, dr, pv ); + +/* IAU 2006 Fukushima-Williams bias+precession angles. */ + iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa ); + +/* Mean ecliptic coordinates to GCRS rotation matrix. */ + iauIr ( rm ); + iauRz ( psib, rm ); + iauRx ( -phib, rm ); + iauRz ( -gamb, rm ); + +/* Rotate the Moon position and velocity into GCRS (Note 6). */ + iauRxpv ( rm, pv, pv ); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/num00a.c b/deps/sofa/20231011/c/src/num00a.c new file mode 100644 index 0000000..2852f7a --- /dev/null +++ b/deps/sofa/20231011/c/src/num00a.c @@ -0,0 +1,171 @@ +#include "sofa.h" + +void iauNum00a(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u m 0 0 a +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 2000A model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** 3) A faster, but slightly less accurate, result (about 1 mas) can be +** obtained by using instead the iauNum00b function. +** +** Called: +** iauPn00a bias/precession/nutation, IAU 2000A +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rbpn[3][3]; + + +/* Obtain the required matrix (discarding other results). */ + iauPn00a(date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rmatn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/num00b.c b/deps/sofa/20231011/c/src/num00b.c new file mode 100644 index 0000000..908e45d --- /dev/null +++ b/deps/sofa/20231011/c/src/num00b.c @@ -0,0 +1,171 @@ +#include "sofa.h" + +void iauNum00b(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u m 0 0 b +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 2000B model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauNum00a function. +** +** Called: +** iauPn00b bias/precession/nutation, IAU 2000B +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rbpn[3][3]; + + +/* Obtain the required matrix (discarding other results). */ + iauPn00b(date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rmatn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/num06a.c b/deps/sofa/20231011/c/src/num06a.c new file mode 100644 index 0000000..1706a49 --- /dev/null +++ b/deps/sofa/20231011/c/src/num06a.c @@ -0,0 +1,175 @@ +#include "sofa.h" + +void iauNum06a(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u m 0 6 a +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 2006/2000A model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** iauNut06a nutation, IAU 2006/2000A +** iauNumat form nutation matrix +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double eps, dp, de; + + +/* Mean obliquity. */ + eps = iauObl06(date1, date2); + +/* Nutation components. */ + iauNut06a(date1, date2, &dp, &de); + +/* Nutation matrix. */ + iauNumat(eps, dp, de, rmatn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/numat.c b/deps/sofa/20231011/c/src/numat.c new file mode 100644 index 0000000..08fd7b8 --- /dev/null +++ b/deps/sofa/20231011/c/src/numat.c @@ -0,0 +1,159 @@ +#include "sofa.h" + +void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) +/* +** - - - - - - - - - +** i a u N u m a t +** - - - - - - - - - +** +** Form the matrix of nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epsa double mean obliquity of date (Note 1) +** dpsi,deps double nutation (Note 2) +** +** Returned: +** rmatn double[3][3] nutation matrix (Note 3) +** +** Notes: +** +** +** 1) The supplied mean obliquity epsa, must be consistent with the +** precession-nutation models from which dpsi and deps were obtained. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. +** +** 3) The matrix operates in the sense V(true) = rmatn * V(mean), +** where the p-vector V(true) is with respect to the true +** equatorial triad of date and the p-vector V(mean) is with +** respect to the mean equatorial triad of date. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRz rotate around Z-axis +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Build the rotation matrix. */ + iauIr(rmatn); + iauRx(epsa, rmatn); + iauRz(-dpsi, rmatn); + iauRx(-(epsa + deps), rmatn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/nut00a.c b/deps/sofa/20231011/c/src/nut00a.c new file mode 100644 index 0000000..dbc69af --- /dev/null +++ b/deps/sofa/20231011/c/src/nut00a.c @@ -0,0 +1,2098 @@ +#include "sofa.h" +#include "sofam.h" + +void iauNut00a(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - - +** i a u N u t 0 0 a +** - - - - - - - - - - +** +** Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation +** with free core nutation omitted). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the equinox and ecliptic of date. The +** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) +** value of 84381.448 arcsec. +** +** Both the luni-solar and planetary nutations are included. The +** latter are due to direct planetary nutations and the +** perturbations of the lunar and terrestrial orbits. +** +** 3) The function computes the MHB2000 nutation series with the +** associated corrections for planetary nutations. It is an +** implementation of the nutation part of the IAU 2000A precession- +** nutation model, formally adopted by the IAU General Assembly in +** 2000, namely MHB2000 (Mathews et al. 2002), but with the free +** core nutation (FCN - see Note 4) omitted. +** +** 4) The full MHB2000 model also contains contributions to the +** nutations in longitude and obliquity due to the free-excitation +** of the free-core-nutation during the period 1979-2000. These FCN +** terms, which are time-dependent and unpredictable, are NOT +** included in the present function and, if required, must be +** independently computed. With the FCN corrections included, the +** present function delivers a pole which is at current epochs +** accurate to a few hundred microarcseconds. The omission of FCN +** introduces further errors of about that size. +** +** 5) The present function provides classical nutation. The MHB2000 +** algorithm, from which it is adapted, deals also with (i) the +** offsets between the GCRS and mean poles and (ii) the adjustments +** in longitude and obliquity due to the changed precession rates. +** These additional functions, namely frame bias and precession +** adjustments, are supported by the SOFA functions iauBi00 and +** iauPr00. +** +** 6) The MHB2000 algorithm also provides "total" nutations, comprising +** the arithmetic sum of the frame bias, precession adjustments, +** luni-solar nutation and planetary nutation. These total +** nutations can be used in combination with an existing IAU 1976 +** precession implementation, such as iauPmat76, to deliver GCRS- +** to-true predictions of sub-mas accuracy at current dates. +** However, there are three shortcomings in the MHB2000 model that +** must be taken into account if more accurate or definitive results +** are required (see Wallace 2002): +** +** (i) The MHB2000 total nutations are simply arithmetic sums, +** yet in reality the various components are successive Euler +** rotations. This slight lack of rigor leads to cross terms +** that exceed 1 mas after a century. The rigorous procedure +** is to form the GCRS-to-true rotation matrix by applying the +** bias, precession and nutation in that order. +** +** (ii) Although the precession adjustments are stated to be with +** respect to Lieske et al. (1977), the MHB2000 model does +** not specify which set of Euler angles are to be used and +** how the adjustments are to be applied. The most literal +** and straightforward procedure is to adopt the 4-rotation +** epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR +** to psi_A and DEPSPR to both omega_A and eps_A. +** +** (iii) The MHB2000 model predates the determination by Chapront +** et al. (2002) of a 14.6 mas displacement between the +** J2000.0 mean equinox and the origin of the ICRS frame. It +** should, however, be noted that neglecting this displacement +** when calculating star coordinates does not lead to a +** 14.6 mas change in right ascension, only a small second- +** order distortion in the pattern of the precession-nutation +** effect. +** +** For these reasons, the SOFA functions do not generate the "total +** nutations" directly, though they can of course easily be +** generated by calling iauBi00, iauPr00 and the present function +** and adding the results. +** +** 7) The MHB2000 model contains 41 instances where the same frequency +** appears multiple times, of which 38 are duplicates and three are +** triplicates. To keep the present code close to the original MHB +** algorithm, this small inefficiency has not been corrected. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFaf03 mean argument of the latitude of the Moon +** iauFaom03 mean longitude of the Moon's ascending node +** iauFame03 mean longitude of Mercury +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFama03 mean longitude of Mars +** iauFaju03 mean longitude of Jupiter +** iauFasa03 mean longitude of Saturn +** iauFaur03 mean longitude of Uranus +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, +** Astron.Astrophys. 387, 700 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. +** 107, B4. The MHB_2000 code itself was obtained on 9th September +** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002) +** +** This revision: 2021 July 20 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int i; + double t, el, elp, f, d, om, arg, dp, de, sarg, carg, + al, af, ad, aom, alme, alve, alea, alma, + alju, alsa, alur, alne, apa, dpsils, depsls, + dpsipl, depspl; + +/* Units of 0.1 microarcsecond to radians */ + const double U2R = DAS2R / 1e7; + +/* ------------------------- */ +/* Luni-Solar nutation model */ +/* ------------------------- */ + +/* The units for the sine and cosine coefficients are */ +/* 0.1 microarcsecond and the same per Julian century */ + + static const struct { + int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */ + double sp,spt,cp; /* longitude sin, t*sin, cos coefficients */ + double ce,cet,se; /* obliquity cos, t*cos, sin coefficients */ + } xls[] = { + + /* 1- 10 */ + { 0, 0, 0, 0, 1, + -172064161.0, -174666.0, 33386.0, 92052331.0, 9086.0, 15377.0}, + { 0, 0, 2,-2, 2, + -13170906.0, -1675.0, -13696.0, 5730336.0, -3015.0, -4587.0}, + { 0, 0, 2, 0, 2,-2276413.0,-234.0,2796.0,978459.0,-485.0, 1374.0}, + { 0, 0, 0, 0, 2,2074554.0, 207.0, -698.0,-897492.0,470.0, -291.0}, + { 0, 1, 0, 0, 0,1475877.0,-3633.0,11817.0,73871.0,-184.0,-1924.0}, + { 0, 1, 2,-2, 2,-516821.0,1226.0, -524.0,224386.0,-677.0, -174.0}, + { 1, 0, 0, 0, 0, 711159.0, 73.0, -872.0, -6750.0, 0.0, 358.0}, + { 0, 0, 2, 0, 1,-387298.0,-367.0, 380.0, 200728.0, 18.0, 318.0}, + { 1, 0, 2, 0, 2,-301461.0, -36.0, 816.0, 129025.0,-63.0, 367.0}, + { 0,-1, 2,-2, 2, 215829.0,-494.0, 111.0, -95929.0,299.0, 132.0}, + + /* 11-20 */ + { 0, 0, 2,-2, 1, 128227.0, 137.0, 181.0, -68982.0, -9.0, 39.0}, + {-1, 0, 2, 0, 2, 123457.0, 11.0, 19.0, -53311.0, 32.0, -4.0}, + {-1, 0, 0, 2, 0, 156994.0, 10.0, -168.0, -1235.0, 0.0, 82.0}, + { 1, 0, 0, 0, 1, 63110.0, 63.0, 27.0, -33228.0, 0.0, -9.0}, + {-1, 0, 0, 0, 1, -57976.0, -63.0, -189.0, 31429.0, 0.0, -75.0}, + {-1, 0, 2, 2, 2, -59641.0, -11.0, 149.0, 25543.0,-11.0, 66.0}, + { 1, 0, 2, 0, 1, -51613.0, -42.0, 129.0, 26366.0, 0.0, 78.0}, + {-2, 0, 2, 0, 1, 45893.0, 50.0, 31.0, -24236.0,-10.0, 20.0}, + { 0, 0, 0, 2, 0, 63384.0, 11.0, -150.0, -1220.0, 0.0, 29.0}, + { 0, 0, 2, 2, 2, -38571.0, -1.0, 158.0, 16452.0,-11.0, 68.0}, + + /* 21-30 */ + { 0,-2, 2,-2, 2, 32481.0, 0.0, 0.0, -13870.0, 0.0, 0.0}, + {-2, 0, 0, 2, 0, -47722.0, 0.0, -18.0, 477.0, 0.0, -25.0}, + { 2, 0, 2, 0, 2, -31046.0, -1.0, 131.0, 13238.0,-11.0, 59.0}, + { 1, 0, 2,-2, 2, 28593.0, 0.0, -1.0, -12338.0, 10.0, -3.0}, + {-1, 0, 2, 0, 1, 20441.0, 21.0, 10.0, -10758.0, 0.0, -3.0}, + { 2, 0, 0, 0, 0, 29243.0, 0.0, -74.0, -609.0, 0.0, 13.0}, + { 0, 0, 2, 0, 0, 25887.0, 0.0, -66.0, -550.0, 0.0, 11.0}, + { 0, 1, 0, 0, 1, -14053.0, -25.0, 79.0, 8551.0, -2.0, -45.0}, + {-1, 0, 0, 2, 1, 15164.0, 10.0, 11.0, -8001.0, 0.0, -1.0}, + { 0, 2, 2,-2, 2, -15794.0, 72.0, -16.0, 6850.0,-42.0, -5.0}, + + /* 31-40 */ + { 0, 0,-2, 2, 0, 21783.0, 0.0, 13.0, -167.0, 0.0, 13.0}, + { 1, 0, 0,-2, 1, -12873.0, -10.0, -37.0, 6953.0, 0.0, -14.0}, + { 0,-1, 0, 0, 1, -12654.0, 11.0, 63.0, 6415.0, 0.0, 26.0}, + {-1, 0, 2, 2, 1, -10204.0, 0.0, 25.0, 5222.0, 0.0, 15.0}, + { 0, 2, 0, 0, 0, 16707.0, -85.0, -10.0, 168.0, -1.0, 10.0}, + { 1, 0, 2, 2, 2, -7691.0, 0.0, 44.0, 3268.0, 0.0, 19.0}, + {-2, 0, 2, 0, 0, -11024.0, 0.0, -14.0, 104.0, 0.0, 2.0}, + { 0, 1, 2, 0, 2, 7566.0, -21.0, -11.0, -3250.0, 0.0, -5.0}, + { 0, 0, 2, 2, 1, -6637.0, -11.0, 25.0, 3353.0, 0.0, 14.0}, + { 0,-1, 2, 0, 2, -7141.0, 21.0, 8.0, 3070.0, 0.0, 4.0}, + + /* 41-50 */ + { 0, 0, 0, 2, 1, -6302.0, -11.0, 2.0, 3272.0, 0.0, 4.0}, + { 1, 0, 2,-2, 1, 5800.0, 10.0, 2.0, -3045.0, 0.0, -1.0}, + { 2, 0, 2,-2, 2, 6443.0, 0.0, -7.0, -2768.0, 0.0, -4.0}, + {-2, 0, 0, 2, 1, -5774.0, -11.0, -15.0, 3041.0, 0.0, -5.0}, + { 2, 0, 2, 0, 1, -5350.0, 0.0, 21.0, 2695.0, 0.0, 12.0}, + { 0,-1, 2,-2, 1, -4752.0, -11.0, -3.0, 2719.0, 0.0, -3.0}, + { 0, 0, 0,-2, 1, -4940.0, -11.0, -21.0, 2720.0, 0.0, -9.0}, + {-1,-1, 0, 2, 0, 7350.0, 0.0, -8.0, -51.0, 0.0, 4.0}, + { 2, 0, 0,-2, 1, 4065.0, 0.0, 6.0, -2206.0, 0.0, 1.0}, + { 1, 0, 0, 2, 0, 6579.0, 0.0, -24.0, -199.0, 0.0, 2.0}, + + /* 51-60 */ + { 0, 1, 2,-2, 1, 3579.0, 0.0, 5.0, -1900.0, 0.0, 1.0}, + { 1,-1, 0, 0, 0, 4725.0, 0.0, -6.0, -41.0, 0.0, 3.0}, + {-2, 0, 2, 0, 2, -3075.0, 0.0, -2.0, 1313.0, 0.0, -1.0}, + { 3, 0, 2, 0, 2, -2904.0, 0.0, 15.0, 1233.0, 0.0, 7.0}, + { 0,-1, 0, 2, 0, 4348.0, 0.0, -10.0, -81.0, 0.0, 2.0}, + { 1,-1, 2, 0, 2, -2878.0, 0.0, 8.0, 1232.0, 0.0, 4.0}, + { 0, 0, 0, 1, 0, -4230.0, 0.0, 5.0, -20.0, 0.0, -2.0}, + {-1,-1, 2, 2, 2, -2819.0, 0.0, 7.0, 1207.0, 0.0, 3.0}, + {-1, 0, 2, 0, 0, -4056.0, 0.0, 5.0, 40.0, 0.0, -2.0}, + { 0,-1, 2, 2, 2, -2647.0, 0.0, 11.0, 1129.0, 0.0, 5.0}, + + /* 61-70 */ + {-2, 0, 0, 0, 1, -2294.0, 0.0, -10.0, 1266.0, 0.0, -4.0}, + { 1, 1, 2, 0, 2, 2481.0, 0.0, -7.0, -1062.0, 0.0, -3.0}, + { 2, 0, 0, 0, 1, 2179.0, 0.0, -2.0, -1129.0, 0.0, -2.0}, + {-1, 1, 0, 1, 0, 3276.0, 0.0, 1.0, -9.0, 0.0, 0.0}, + { 1, 1, 0, 0, 0, -3389.0, 0.0, 5.0, 35.0, 0.0, -2.0}, + { 1, 0, 2, 0, 0, 3339.0, 0.0, -13.0, -107.0, 0.0, 1.0}, + {-1, 0, 2,-2, 1, -1987.0, 0.0, -6.0, 1073.0, 0.0, -2.0}, + { 1, 0, 0, 0, 2, -1981.0, 0.0, 0.0, 854.0, 0.0, 0.0}, + {-1, 0, 0, 1, 0, 4026.0, 0.0, -353.0, -553.0, 0.0, -139.0}, + { 0, 0, 2, 1, 2, 1660.0, 0.0, -5.0, -710.0, 0.0, -2.0}, + + /* 71-80 */ + {-1, 0, 2, 4, 2, -1521.0, 0.0, 9.0, 647.0, 0.0, 4.0}, + {-1, 1, 0, 1, 1, 1314.0, 0.0, 0.0, -700.0, 0.0, 0.0}, + { 0,-2, 2,-2, 1, -1283.0, 0.0, 0.0, 672.0, 0.0, 0.0}, + { 1, 0, 2, 2, 1, -1331.0, 0.0, 8.0, 663.0, 0.0, 4.0}, + {-2, 0, 2, 2, 2, 1383.0, 0.0, -2.0, -594.0, 0.0, -2.0}, + {-1, 0, 0, 0, 2, 1405.0, 0.0, 4.0, -610.0, 0.0, 2.0}, + { 1, 1, 2,-2, 2, 1290.0, 0.0, 0.0, -556.0, 0.0, 0.0}, + {-2, 0, 2, 4, 2, -1214.0, 0.0, 5.0, 518.0, 0.0, 2.0}, + {-1, 0, 4, 0, 2, 1146.0, 0.0, -3.0, -490.0, 0.0, -1.0}, + { 2, 0, 2,-2, 1, 1019.0, 0.0, -1.0, -527.0, 0.0, -1.0}, + + /* 81-90 */ + { 2, 0, 2, 2, 2, -1100.0, 0.0, 9.0, 465.0, 0.0, 4.0}, + { 1, 0, 0, 2, 1, -970.0, 0.0, 2.0, 496.0, 0.0, 1.0}, + { 3, 0, 0, 0, 0, 1575.0, 0.0, -6.0, -50.0, 0.0, 0.0}, + { 3, 0, 2,-2, 2, 934.0, 0.0, -3.0, -399.0, 0.0, -1.0}, + { 0, 0, 4,-2, 2, 922.0, 0.0, -1.0, -395.0, 0.0, -1.0}, + { 0, 1, 2, 0, 1, 815.0, 0.0, -1.0, -422.0, 0.0, -1.0}, + { 0, 0,-2, 2, 1, 834.0, 0.0, 2.0, -440.0, 0.0, 1.0}, + { 0, 0, 2,-2, 3, 1248.0, 0.0, 0.0, -170.0, 0.0, 1.0}, + {-1, 0, 0, 4, 0, 1338.0, 0.0, -5.0, -39.0, 0.0, 0.0}, + { 2, 0,-2, 0, 1, 716.0, 0.0, -2.0, -389.0, 0.0, -1.0}, + + /* 91-100 */ + {-2, 0, 0, 4, 0, 1282.0, 0.0, -3.0, -23.0, 0.0, 1.0}, + {-1,-1, 0, 2, 1, 742.0, 0.0, 1.0, -391.0, 0.0, 0.0}, + {-1, 0, 0, 1, 1, 1020.0, 0.0, -25.0, -495.0, 0.0, -10.0}, + { 0, 1, 0, 0, 2, 715.0, 0.0, -4.0, -326.0, 0.0, 2.0}, + { 0, 0,-2, 0, 1, -666.0, 0.0, -3.0, 369.0, 0.0, -1.0}, + { 0,-1, 2, 0, 1, -667.0, 0.0, 1.0, 346.0, 0.0, 1.0}, + { 0, 0, 2,-1, 2, -704.0, 0.0, 0.0, 304.0, 0.0, 0.0}, + { 0, 0, 2, 4, 2, -694.0, 0.0, 5.0, 294.0, 0.0, 2.0}, + {-2,-1, 0, 2, 0, -1014.0, 0.0, -1.0, 4.0, 0.0, -1.0}, + { 1, 1, 0,-2, 1, -585.0, 0.0, -2.0, 316.0, 0.0, -1.0}, + + /* 101-110 */ + {-1, 1, 0, 2, 0, -949.0, 0.0, 1.0, 8.0, 0.0, -1.0}, + {-1, 1, 0, 1, 2, -595.0, 0.0, 0.0, 258.0, 0.0, 0.0}, + { 1,-1, 0, 0, 1, 528.0, 0.0, 0.0, -279.0, 0.0, 0.0}, + { 1,-1, 2, 2, 2, -590.0, 0.0, 4.0, 252.0, 0.0, 2.0}, + {-1, 1, 2, 2, 2, 570.0, 0.0, -2.0, -244.0, 0.0, -1.0}, + { 3, 0, 2, 0, 1, -502.0, 0.0, 3.0, 250.0, 0.0, 2.0}, + { 0, 1,-2, 2, 0, -875.0, 0.0, 1.0, 29.0, 0.0, 0.0}, + {-1, 0, 0,-2, 1, -492.0, 0.0, -3.0, 275.0, 0.0, -1.0}, + { 0, 1, 2, 2, 2, 535.0, 0.0, -2.0, -228.0, 0.0, -1.0}, + {-1,-1, 2, 2, 1, -467.0, 0.0, 1.0, 240.0, 0.0, 1.0}, + + /* 111-120 */ + { 0,-1, 0, 0, 2, 591.0, 0.0, 0.0, -253.0, 0.0, 0.0}, + { 1, 0, 2,-4, 1, -453.0, 0.0, -1.0, 244.0, 0.0, -1.0}, + {-1, 0,-2, 2, 0, 766.0, 0.0, 1.0, 9.0, 0.0, 0.0}, + { 0,-1, 2, 2, 1, -446.0, 0.0, 2.0, 225.0, 0.0, 1.0}, + { 2,-1, 2, 0, 2, -488.0, 0.0, 2.0, 207.0, 0.0, 1.0}, + { 0, 0, 0, 2, 2, -468.0, 0.0, 0.0, 201.0, 0.0, 0.0}, + { 1,-1, 2, 0, 1, -421.0, 0.0, 1.0, 216.0, 0.0, 1.0}, + {-1, 1, 2, 0, 2, 463.0, 0.0, 0.0, -200.0, 0.0, 0.0}, + { 0, 1, 0, 2, 0, -673.0, 0.0, 2.0, 14.0, 0.0, 0.0}, + { 0,-1,-2, 2, 0, 658.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 121-130 */ + { 0, 3, 2,-2, 2, -438.0, 0.0, 0.0, 188.0, 0.0, 0.0}, + { 0, 0, 0, 1, 1, -390.0, 0.0, 0.0, 205.0, 0.0, 0.0}, + {-1, 0, 2, 2, 0, 639.0, -11.0, -2.0, -19.0, 0.0, 0.0}, + { 2, 1, 2, 0, 2, 412.0, 0.0, -2.0, -176.0, 0.0, -1.0}, + { 1, 1, 0, 0, 1, -361.0, 0.0, 0.0, 189.0, 0.0, 0.0}, + { 1, 1, 2, 0, 1, 360.0, 0.0, -1.0, -185.0, 0.0, -1.0}, + { 2, 0, 0, 2, 0, 588.0, 0.0, -3.0, -24.0, 0.0, 0.0}, + { 1, 0,-2, 2, 0, -578.0, 0.0, 1.0, 5.0, 0.0, 0.0}, + {-1, 0, 0, 2, 2, -396.0, 0.0, 0.0, 171.0, 0.0, 0.0}, + { 0, 1, 0, 1, 0, 565.0, 0.0, -1.0, -6.0, 0.0, 0.0}, + + /* 131-140 */ + { 0, 1, 0,-2, 1, -335.0, 0.0, -1.0, 184.0, 0.0, -1.0}, + {-1, 0, 2,-2, 2, 357.0, 0.0, 1.0, -154.0, 0.0, 0.0}, + { 0, 0, 0,-1, 1, 321.0, 0.0, 1.0, -174.0, 0.0, 0.0}, + {-1, 1, 0, 0, 1, -301.0, 0.0, -1.0, 162.0, 0.0, 0.0}, + { 1, 0, 2,-1, 2, -334.0, 0.0, 0.0, 144.0, 0.0, 0.0}, + { 1,-1, 0, 2, 0, 493.0, 0.0, -2.0, -15.0, 0.0, 0.0}, + { 0, 0, 0, 4, 0, 494.0, 0.0, -2.0, -19.0, 0.0, 0.0}, + { 1, 0, 2, 1, 2, 337.0, 0.0, -1.0, -143.0, 0.0, -1.0}, + { 0, 0, 2, 1, 1, 280.0, 0.0, -1.0, -144.0, 0.0, 0.0}, + { 1, 0, 0,-2, 2, 309.0, 0.0, 1.0, -134.0, 0.0, 0.0}, + + /* 141-150 */ + {-1, 0, 2, 4, 1, -263.0, 0.0, 2.0, 131.0, 0.0, 1.0}, + { 1, 0,-2, 0, 1, 253.0, 0.0, 1.0, -138.0, 0.0, 0.0}, + { 1, 1, 2,-2, 1, 245.0, 0.0, 0.0, -128.0, 0.0, 0.0}, + { 0, 0, 2, 2, 0, 416.0, 0.0, -2.0, -17.0, 0.0, 0.0}, + {-1, 0, 2,-1, 1, -229.0, 0.0, 0.0, 128.0, 0.0, 0.0}, + {-2, 0, 2, 2, 1, 231.0, 0.0, 0.0, -120.0, 0.0, 0.0}, + { 4, 0, 2, 0, 2, -259.0, 0.0, 2.0, 109.0, 0.0, 1.0}, + { 2,-1, 0, 0, 0, 375.0, 0.0, -1.0, -8.0, 0.0, 0.0}, + { 2, 1, 2,-2, 2, 252.0, 0.0, 0.0, -108.0, 0.0, 0.0}, + { 0, 1, 2, 1, 2, -245.0, 0.0, 1.0, 104.0, 0.0, 0.0}, + + /* 151-160 */ + { 1, 0, 4,-2, 2, 243.0, 0.0, -1.0, -104.0, 0.0, 0.0}, + {-1,-1, 0, 0, 1, 208.0, 0.0, 1.0, -112.0, 0.0, 0.0}, + { 0, 1, 0, 2, 1, 199.0, 0.0, 0.0, -102.0, 0.0, 0.0}, + {-2, 0, 2, 4, 1, -208.0, 0.0, 1.0, 105.0, 0.0, 0.0}, + { 2, 0, 2, 0, 0, 335.0, 0.0, -2.0, -14.0, 0.0, 0.0}, + { 1, 0, 0, 1, 0, -325.0, 0.0, 1.0, 7.0, 0.0, 0.0}, + {-1, 0, 0, 4, 1, -187.0, 0.0, 0.0, 96.0, 0.0, 0.0}, + {-1, 0, 4, 0, 1, 197.0, 0.0, -1.0, -100.0, 0.0, 0.0}, + { 2, 0, 2, 2, 1, -192.0, 0.0, 2.0, 94.0, 0.0, 1.0}, + { 0, 0, 2,-3, 2, -188.0, 0.0, 0.0, 83.0, 0.0, 0.0}, + + /* 161-170 */ + {-1,-2, 0, 2, 0, 276.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2, 1, 0, 0, 0, -286.0, 0.0, 1.0, 6.0, 0.0, 0.0}, + { 0, 0, 4, 0, 2, 186.0, 0.0, -1.0, -79.0, 0.0, 0.0}, + { 0, 0, 0, 0, 3, -219.0, 0.0, 0.0, 43.0, 0.0, 0.0}, + { 0, 3, 0, 0, 0, 276.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0, 2,-4, 1, -153.0, 0.0, -1.0, 84.0, 0.0, 0.0}, + { 0,-1, 0, 2, 1, -156.0, 0.0, 0.0, 81.0, 0.0, 0.0}, + { 0, 0, 0, 4, 1, -154.0, 0.0, 1.0, 78.0, 0.0, 0.0}, + {-1,-1, 2, 4, 2, -174.0, 0.0, 1.0, 75.0, 0.0, 0.0}, + { 1, 0, 2, 4, 2, -163.0, 0.0, 2.0, 69.0, 0.0, 1.0}, + + /* 171-180 */ + {-2, 2, 0, 2, 0, -228.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-2,-1, 2, 0, 1, 91.0, 0.0, -4.0, -54.0, 0.0, -2.0}, + {-2, 0, 0, 2, 2, 175.0, 0.0, 0.0, -75.0, 0.0, 0.0}, + {-1,-1, 2, 0, 2, -159.0, 0.0, 0.0, 69.0, 0.0, 0.0}, + { 0, 0, 4,-2, 1, 141.0, 0.0, 0.0, -72.0, 0.0, 0.0}, + { 3, 0, 2,-2, 1, 147.0, 0.0, 0.0, -75.0, 0.0, 0.0}, + {-2,-1, 0, 2, 1, -132.0, 0.0, 0.0, 69.0, 0.0, 0.0}, + { 1, 0, 0,-1, 1, 159.0, 0.0, -28.0, -54.0, 0.0, 11.0}, + { 0,-2, 0, 2, 0, 213.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + {-2, 0, 0, 4, 1, 123.0, 0.0, 0.0, -64.0, 0.0, 0.0}, + + /* 181-190 */ + {-3, 0, 0, 0, 1, -118.0, 0.0, -1.0, 66.0, 0.0, 0.0}, + { 1, 1, 2, 2, 2, 144.0, 0.0, -1.0, -61.0, 0.0, 0.0}, + { 0, 0, 2, 4, 1, -121.0, 0.0, 1.0, 60.0, 0.0, 0.0}, + { 3, 0, 2, 2, 2, -134.0, 0.0, 1.0, 56.0, 0.0, 1.0}, + {-1, 1, 2,-2, 1, -105.0, 0.0, 0.0, 57.0, 0.0, 0.0}, + { 2, 0, 0,-4, 1, -102.0, 0.0, 0.0, 56.0, 0.0, 0.0}, + { 0, 0, 0,-2, 2, 120.0, 0.0, 0.0, -52.0, 0.0, 0.0}, + { 2, 0, 2,-4, 1, 101.0, 0.0, 0.0, -54.0, 0.0, 0.0}, + {-1, 1, 0, 2, 1, -113.0, 0.0, 0.0, 59.0, 0.0, 0.0}, + { 0, 0, 2,-1, 1, -106.0, 0.0, 0.0, 61.0, 0.0, 0.0}, + + /* 191-200 */ + { 0,-2, 2, 2, 2, -129.0, 0.0, 1.0, 55.0, 0.0, 0.0}, + { 2, 0, 0, 2, 1, -114.0, 0.0, 0.0, 57.0, 0.0, 0.0}, + { 4, 0, 2,-2, 2, 113.0, 0.0, -1.0, -49.0, 0.0, 0.0}, + { 2, 0, 0,-2, 2, -102.0, 0.0, 0.0, 44.0, 0.0, 0.0}, + { 0, 2, 0, 0, 1, -94.0, 0.0, 0.0, 51.0, 0.0, 0.0}, + { 1, 0, 0,-4, 1, -100.0, 0.0, -1.0, 56.0, 0.0, 0.0}, + { 0, 2, 2,-2, 1, 87.0, 0.0, 0.0, -47.0, 0.0, 0.0}, + {-3, 0, 0, 4, 0, 161.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-1, 1, 2, 0, 1, 96.0, 0.0, 0.0, -50.0, 0.0, 0.0}, + {-1,-1, 0, 4, 0, 151.0, 0.0, -1.0, -5.0, 0.0, 0.0}, + + /* 201-210 */ + {-1,-2, 2, 2, 2, -104.0, 0.0, 0.0, 44.0, 0.0, 0.0}, + {-2,-1, 2, 4, 2, -110.0, 0.0, 0.0, 48.0, 0.0, 0.0}, + { 1,-1, 2, 2, 1, -100.0, 0.0, 1.0, 50.0, 0.0, 0.0}, + {-2, 1, 0, 2, 0, 92.0, 0.0, -5.0, 12.0, 0.0, -2.0}, + {-2, 1, 2, 0, 1, 82.0, 0.0, 0.0, -45.0, 0.0, 0.0}, + { 2, 1, 0,-2, 1, 82.0, 0.0, 0.0, -45.0, 0.0, 0.0}, + {-3, 0, 2, 0, 1, -78.0, 0.0, 0.0, 41.0, 0.0, 0.0}, + {-2, 0, 2,-2, 1, -77.0, 0.0, 0.0, 43.0, 0.0, 0.0}, + {-1, 1, 0, 2, 2, 2.0, 0.0, 0.0, 54.0, 0.0, 0.0}, + { 0,-1, 2,-1, 2, 94.0, 0.0, 0.0, -40.0, 0.0, 0.0}, + + /* 211-220 */ + {-1, 0, 4,-2, 2, -93.0, 0.0, 0.0, 40.0, 0.0, 0.0}, + { 0,-2, 2, 0, 2, -83.0, 0.0, 10.0, 40.0, 0.0, -2.0}, + {-1, 0, 2, 1, 2, 83.0, 0.0, 0.0, -36.0, 0.0, 0.0}, + { 2, 0, 0, 0, 2, -91.0, 0.0, 0.0, 39.0, 0.0, 0.0}, + { 0, 0, 2, 0, 3, 128.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-2, 0, 4, 0, 2, -79.0, 0.0, 0.0, 34.0, 0.0, 0.0}, + {-1, 0,-2, 0, 1, -83.0, 0.0, 0.0, 47.0, 0.0, 0.0}, + {-1, 1, 2, 2, 1, 84.0, 0.0, 0.0, -44.0, 0.0, 0.0}, + { 3, 0, 0, 0, 1, 83.0, 0.0, 0.0, -43.0, 0.0, 0.0}, + {-1, 0, 2, 3, 2, 91.0, 0.0, 0.0, -39.0, 0.0, 0.0}, + + /* 221-230 */ + { 2,-1, 2, 0, 1, -77.0, 0.0, 0.0, 39.0, 0.0, 0.0}, + { 0, 1, 2, 2, 1, 84.0, 0.0, 0.0, -43.0, 0.0, 0.0}, + { 0,-1, 2, 4, 2, -92.0, 0.0, 1.0, 39.0, 0.0, 0.0}, + { 2,-1, 2, 2, 2, -92.0, 0.0, 1.0, 39.0, 0.0, 0.0}, + { 0, 2,-2, 2, 0, -94.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 2,-1, 1, 68.0, 0.0, 0.0, -36.0, 0.0, 0.0}, + { 0,-2, 0, 0, 1, -61.0, 0.0, 0.0, 32.0, 0.0, 0.0}, + { 1, 0, 2,-4, 2, 71.0, 0.0, 0.0, -31.0, 0.0, 0.0}, + { 1,-1, 0,-2, 1, 62.0, 0.0, 0.0, -34.0, 0.0, 0.0}, + {-1,-1, 2, 0, 1, -63.0, 0.0, 0.0, 33.0, 0.0, 0.0}, + + /* 231-240 */ + { 1,-1, 2,-2, 2, -73.0, 0.0, 0.0, 32.0, 0.0, 0.0}, + {-2,-1, 0, 4, 0, 115.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 0, 0, 3, 0, -103.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2,-1, 2, 2, 2, 63.0, 0.0, 0.0, -28.0, 0.0, 0.0}, + { 0, 2, 2, 0, 2, 74.0, 0.0, 0.0, -32.0, 0.0, 0.0}, + { 1, 1, 0, 2, 0, -103.0, 0.0, -3.0, 3.0, 0.0, -1.0}, + { 2, 0, 2,-1, 2, -69.0, 0.0, 0.0, 30.0, 0.0, 0.0}, + { 1, 0, 2, 1, 1, 57.0, 0.0, 0.0, -29.0, 0.0, 0.0}, + { 4, 0, 0, 0, 0, 94.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 2, 1, 2, 0, 1, 64.0, 0.0, 0.0, -33.0, 0.0, 0.0}, + + /* 241-250 */ + { 3,-1, 2, 0, 2, -63.0, 0.0, 0.0, 26.0, 0.0, 0.0}, + {-2, 2, 0, 2, 1, -38.0, 0.0, 0.0, 20.0, 0.0, 0.0}, + { 1, 0, 2,-3, 1, -43.0, 0.0, 0.0, 24.0, 0.0, 0.0}, + { 1, 1, 2,-4, 1, -45.0, 0.0, 0.0, 23.0, 0.0, 0.0}, + {-1,-1, 2,-2, 1, 47.0, 0.0, 0.0, -24.0, 0.0, 0.0}, + { 0,-1, 0,-1, 1, -48.0, 0.0, 0.0, 25.0, 0.0, 0.0}, + { 0,-1, 0,-2, 1, 45.0, 0.0, 0.0, -26.0, 0.0, 0.0}, + {-2, 0, 0, 0, 2, 56.0, 0.0, 0.0, -25.0, 0.0, 0.0}, + {-2, 0,-2, 2, 0, 88.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1, 0,-2, 4, 0, -75.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 251-260 */ + { 1,-2, 0, 0, 0, 85.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 0, 1, 1, 49.0, 0.0, 0.0, -26.0, 0.0, 0.0}, + {-1, 2, 0, 2, 0, -74.0, 0.0, -3.0, -1.0, 0.0, -1.0}, + { 1,-1, 2,-2, 1, -39.0, 0.0, 0.0, 21.0, 0.0, 0.0}, + { 1, 2, 2,-2, 2, 45.0, 0.0, 0.0, -20.0, 0.0, 0.0}, + { 2,-1, 2,-2, 2, 51.0, 0.0, 0.0, -22.0, 0.0, 0.0}, + { 1, 0, 2,-1, 1, -40.0, 0.0, 0.0, 21.0, 0.0, 0.0}, + { 2, 1, 2,-2, 1, 41.0, 0.0, 0.0, -21.0, 0.0, 0.0}, + {-2, 0, 0,-2, 1, -42.0, 0.0, 0.0, 24.0, 0.0, 0.0}, + { 1,-2, 2, 0, 2, -51.0, 0.0, 0.0, 22.0, 0.0, 0.0}, + + /* 261-270 */ + { 0, 1, 2, 1, 1, -42.0, 0.0, 0.0, 22.0, 0.0, 0.0}, + { 1, 0, 4,-2, 1, 39.0, 0.0, 0.0, -21.0, 0.0, 0.0}, + {-2, 0, 4, 2, 2, 46.0, 0.0, 0.0, -18.0, 0.0, 0.0}, + { 1, 1, 2, 1, 2, -53.0, 0.0, 0.0, 22.0, 0.0, 0.0}, + { 1, 0, 0, 4, 0, 82.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 1, 0, 2, 2, 0, 81.0, 0.0, -1.0, -4.0, 0.0, 0.0}, + { 2, 0, 2, 1, 2, 47.0, 0.0, 0.0, -19.0, 0.0, 0.0}, + { 3, 1, 2, 0, 2, 53.0, 0.0, 0.0, -23.0, 0.0, 0.0}, + { 4, 0, 2, 0, 1, -45.0, 0.0, 0.0, 22.0, 0.0, 0.0}, + {-2,-1, 2, 0, 0, -44.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 271-280 */ + { 0, 1,-2, 2, 1, -33.0, 0.0, 0.0, 16.0, 0.0, 0.0}, + { 1, 0,-2, 1, 0, -61.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 0,-1,-2, 2, 1, 28.0, 0.0, 0.0, -15.0, 0.0, 0.0}, + { 2,-1, 0,-2, 1, -38.0, 0.0, 0.0, 19.0, 0.0, 0.0}, + {-1, 0, 2,-1, 2, -33.0, 0.0, 0.0, 21.0, 0.0, 0.0}, + { 1, 0, 2,-3, 2, -60.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 2,-2, 3, 48.0, 0.0, 0.0, -10.0, 0.0, 0.0}, + { 0, 0, 2,-3, 1, 27.0, 0.0, 0.0, -14.0, 0.0, 0.0}, + {-1, 0,-2, 2, 1, 38.0, 0.0, 0.0, -20.0, 0.0, 0.0}, + { 0, 0, 2,-4, 2, 31.0, 0.0, 0.0, -13.0, 0.0, 0.0}, + + /* 281-290 */ + {-2, 1, 0, 0, 1, -29.0, 0.0, 0.0, 15.0, 0.0, 0.0}, + {-1, 0, 0,-1, 1, 28.0, 0.0, 0.0, -15.0, 0.0, 0.0}, + { 2, 0, 2,-4, 2, -32.0, 0.0, 0.0, 15.0, 0.0, 0.0}, + { 0, 0, 4,-4, 4, 45.0, 0.0, 0.0, -8.0, 0.0, 0.0}, + { 0, 0, 4,-4, 2, -44.0, 0.0, 0.0, 19.0, 0.0, 0.0}, + {-1,-2, 0, 2, 1, 28.0, 0.0, 0.0, -15.0, 0.0, 0.0}, + {-2, 0, 0, 3, 0, -51.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0,-2, 2, 1, -36.0, 0.0, 0.0, 20.0, 0.0, 0.0}, + {-3, 0, 2, 2, 2, 44.0, 0.0, 0.0, -19.0, 0.0, 0.0}, + {-3, 0, 2, 2, 1, 26.0, 0.0, 0.0, -14.0, 0.0, 0.0}, + + /* 291-300 */ + {-2, 0, 2, 2, 0, -60.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2,-1, 0, 0, 1, 35.0, 0.0, 0.0, -18.0, 0.0, 0.0}, + {-2, 1, 2, 2, 2, -27.0, 0.0, 0.0, 11.0, 0.0, 0.0}, + { 1, 1, 0, 1, 0, 47.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 0, 1, 4,-2, 2, 36.0, 0.0, 0.0, -15.0, 0.0, 0.0}, + {-1, 1, 0,-2, 1, -36.0, 0.0, 0.0, 20.0, 0.0, 0.0}, + { 0, 0, 0,-4, 1, -35.0, 0.0, 0.0, 19.0, 0.0, 0.0}, + { 1,-1, 0, 2, 1, -37.0, 0.0, 0.0, 19.0, 0.0, 0.0}, + { 1, 1, 0, 2, 1, 32.0, 0.0, 0.0, -16.0, 0.0, 0.0}, + {-1, 2, 2, 2, 2, 35.0, 0.0, 0.0, -14.0, 0.0, 0.0}, + + /* 301-310 */ + { 3, 1, 2,-2, 2, 32.0, 0.0, 0.0, -13.0, 0.0, 0.0}, + { 0,-1, 0, 4, 0, 65.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2,-1, 0, 2, 0, 47.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 0, 0, 4, 0, 1, 32.0, 0.0, 0.0, -16.0, 0.0, 0.0}, + { 2, 0, 4,-2, 2, 37.0, 0.0, 0.0, -16.0, 0.0, 0.0}, + {-1,-1, 2, 4, 1, -30.0, 0.0, 0.0, 15.0, 0.0, 0.0}, + { 1, 0, 0, 4, 1, -32.0, 0.0, 0.0, 16.0, 0.0, 0.0}, + { 1,-2, 2, 2, 2, -31.0, 0.0, 0.0, 13.0, 0.0, 0.0}, + { 0, 0, 2, 3, 2, 37.0, 0.0, 0.0, -16.0, 0.0, 0.0}, + {-1, 1, 2, 4, 2, 31.0, 0.0, 0.0, -13.0, 0.0, 0.0}, + + /* 311-320 */ + { 3, 0, 0, 2, 0, 49.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 0, 4, 2, 2, 32.0, 0.0, 0.0, -13.0, 0.0, 0.0}, + { 1, 1, 2, 2, 1, 23.0, 0.0, 0.0, -12.0, 0.0, 0.0}, + {-2, 0, 2, 6, 2, -43.0, 0.0, 0.0, 18.0, 0.0, 0.0}, + { 2, 1, 2, 2, 2, 26.0, 0.0, 0.0, -11.0, 0.0, 0.0}, + {-1, 0, 2, 6, 2, -32.0, 0.0, 0.0, 14.0, 0.0, 0.0}, + { 1, 0, 2, 4, 1, -29.0, 0.0, 0.0, 14.0, 0.0, 0.0}, + { 2, 0, 2, 4, 2, -27.0, 0.0, 0.0, 12.0, 0.0, 0.0}, + { 1, 1,-2, 1, 0, 30.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3, 1, 2, 1, 2, -11.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + + /* 321-330 */ + { 2, 0,-2, 0, 2, -21.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + {-1, 0, 0, 1, 2, -34.0, 0.0, 0.0, 15.0, 0.0, 0.0}, + {-4, 0, 2, 2, 1, -10.0, 0.0, 0.0, 6.0, 0.0, 0.0}, + {-1,-1, 0, 1, 0, -36.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0,-2, 2, 2, -9.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 1, 0, 0,-1, 2, -12.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + { 0,-1, 2,-2, 3, -21.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + {-2, 1, 2, 0, 0, -29.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 0, 0, 2,-2, 4, -15.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-2,-2, 0, 2, 0, -20.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 331-340 */ + {-2, 0,-2, 4, 0, 28.0, 0.0, 0.0, 0.0, 0.0, -2.0}, + { 0,-2,-2, 2, 0, 17.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 2, 0,-2, 1, -22.0, 0.0, 0.0, 12.0, 0.0, 0.0}, + { 3, 0, 0,-4, 1, -14.0, 0.0, 0.0, 7.0, 0.0, 0.0}, + {-1, 1, 2,-2, 2, 24.0, 0.0, 0.0, -11.0, 0.0, 0.0}, + { 1,-1, 2,-4, 1, 11.0, 0.0, 0.0, -6.0, 0.0, 0.0}, + { 1, 1, 0,-2, 2, 14.0, 0.0, 0.0, -6.0, 0.0, 0.0}, + {-3, 0, 2, 0, 0, 24.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3, 0, 2, 0, 2, 18.0, 0.0, 0.0, -8.0, 0.0, 0.0}, + {-2, 0, 0, 1, 0, -38.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 341-350 */ + { 0, 0,-2, 1, 0, -31.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3, 0, 0, 2, 1, -16.0, 0.0, 0.0, 8.0, 0.0, 0.0}, + {-1,-1,-2, 2, 0, 29.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 2,-4, 1, -18.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + { 2, 1, 0,-4, 1, -10.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + { 0, 2, 0,-2, 1, -17.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + { 1, 0, 0,-3, 1, 9.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + {-2, 0, 2,-2, 2, 16.0, 0.0, 0.0, -6.0, 0.0, 0.0}, + {-2,-1, 0, 0, 1, 22.0, 0.0, 0.0, -12.0, 0.0, 0.0}, + {-4, 0, 0, 2, 0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 351-360 */ + { 1, 1, 0,-4, 1, -13.0, 0.0, 0.0, 6.0, 0.0, 0.0}, + {-1, 0, 2,-4, 1, -17.0, 0.0, 0.0, 9.0, 0.0, 0.0}, + { 0, 0, 4,-4, 1, -14.0, 0.0, 0.0, 8.0, 0.0, 0.0}, + { 0, 3, 2,-2, 2, 0.0, 0.0, 0.0, -7.0, 0.0, 0.0}, + {-3,-1, 0, 4, 0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3, 0, 0, 4, 1, 19.0, 0.0, 0.0, -10.0, 0.0, 0.0}, + { 1,-1,-2, 2, 0, -34.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 0, 2, 2, -20.0, 0.0, 0.0, 8.0, 0.0, 0.0}, + { 1,-2, 0, 0, 1, 9.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + { 1,-1, 0, 0, 2, -18.0, 0.0, 0.0, 7.0, 0.0, 0.0}, + + /* 361-370 */ + { 0, 0, 0, 1, 2, 13.0, 0.0, 0.0, -6.0, 0.0, 0.0}, + {-1,-1, 2, 0, 0, 17.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1,-2, 2,-2, 2, -12.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + { 0,-1, 2,-1, 1, 15.0, 0.0, 0.0, -8.0, 0.0, 0.0}, + {-1, 0, 2, 0, 3, -11.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 1, 1, 0, 0, 2, 13.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + {-1, 1, 2, 0, 0, -18.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 2, 0, 0, 0, -35.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 2, 2, 0, 2, 9.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + {-1, 0, 4,-2, 1, -19.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + + /* 371-380 */ + { 3, 0, 2,-4, 2, -26.0, 0.0, 0.0, 11.0, 0.0, 0.0}, + { 1, 2, 2,-2, 1, 8.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 1, 0, 4,-4, 2, -10.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + {-2,-1, 0, 4, 1, 10.0, 0.0, 0.0, -6.0, 0.0, 0.0}, + { 0,-1, 0, 2, 2, -21.0, 0.0, 0.0, 9.0, 0.0, 0.0}, + {-2, 1, 0, 4, 0, -15.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2,-1, 2, 2, 1, 9.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + { 2, 0,-2, 2, 0, -29.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0, 0, 1, 1, -19.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + { 0, 1, 0, 2, 2, 12.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + + /* 381-390 */ + { 1,-1, 2,-1, 2, 22.0, 0.0, 0.0, -9.0, 0.0, 0.0}, + {-2, 0, 4, 0, 1, -10.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + { 2, 1, 0, 0, 1, -20.0, 0.0, 0.0, 11.0, 0.0, 0.0}, + { 0, 1, 2, 0, 0, -20.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0,-1, 4,-2, 2, -17.0, 0.0, 0.0, 7.0, 0.0, 0.0}, + { 0, 0, 4,-2, 4, 15.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 0, 2, 2, 0, 1, 8.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + {-3, 0, 0, 6, 0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 0, 4, 1, -12.0, 0.0, 0.0, 6.0, 0.0, 0.0}, + { 1,-2, 0, 2, 0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 391-400 */ + {-1, 0, 0, 4, 2, -13.0, 0.0, 0.0, 6.0, 0.0, 0.0}, + {-1,-2, 2, 2, 1, -14.0, 0.0, 0.0, 8.0, 0.0, 0.0}, + {-1, 0, 0,-2, 2, 13.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + { 1, 0,-2,-2, 1, -17.0, 0.0, 0.0, 9.0, 0.0, 0.0}, + { 0, 0,-2,-2, 1, -12.0, 0.0, 0.0, 6.0, 0.0, 0.0}, + {-2, 0,-2, 0, 1, -10.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + { 0, 0, 0, 3, 1, 10.0, 0.0, 0.0, -6.0, 0.0, 0.0}, + { 0, 0, 0, 3, 0, -15.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 1, 0, 4, 0, -22.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 2, 2, 0, 28.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + + /* 401-410 */ + {-2, 0, 2, 3, 2, 15.0, 0.0, 0.0, -7.0, 0.0, 0.0}, + { 1, 0, 0, 2, 2, 23.0, 0.0, 0.0, -10.0, 0.0, 0.0}, + { 0,-1, 2, 1, 2, 12.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + { 3,-1, 0, 0, 0, 29.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 2, 0, 0, 1, 0, -25.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 1,-1, 2, 0, 0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0, 2, 1, 0, -18.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0, 2, 0, 3, 15.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 3, 1, 0, 0, 0, -23.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 3,-1, 2,-2, 2, 12.0, 0.0, 0.0, -5.0, 0.0, 0.0}, + + /* 411-420 */ + { 2, 0, 2,-1, 1, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 1, 1, 2, 0, 0, -19.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0, 4,-1, 2, -10.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 1, 2, 2, 0, 2, 21.0, 0.0, 0.0, -9.0, 0.0, 0.0}, + {-2, 0, 0, 6, 0, 23.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 0,-1, 0, 4, 1, -16.0, 0.0, 0.0, 8.0, 0.0, 0.0}, + {-2,-1, 2, 4, 1, -19.0, 0.0, 0.0, 9.0, 0.0, 0.0}, + { 0,-2, 2, 2, 1, -22.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + { 0,-1, 2, 2, 0, 27.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-1, 0, 2, 3, 1, 16.0, 0.0, 0.0, -8.0, 0.0, 0.0}, + + /* 421-430 */ + {-2, 1, 2, 4, 2, 19.0, 0.0, 0.0, -8.0, 0.0, 0.0}, + { 2, 0, 0, 2, 2, 9.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 2,-2, 2, 0, 2, -9.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + {-1, 1, 2, 3, 2, -9.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 3, 0, 2,-1, 2, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 4, 0, 2,-2, 1, 18.0, 0.0, 0.0, -9.0, 0.0, 0.0}, + {-1, 0, 0, 6, 0, 16.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-1,-2, 2, 4, 2, -10.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + {-3, 0, 2, 6, 2, -23.0, 0.0, 0.0, 9.0, 0.0, 0.0}, + {-1, 0, 2, 4, 0, 16.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + + /* 431-440 */ + { 3, 0, 0, 2, 1, -12.0, 0.0, 0.0, 6.0, 0.0, 0.0}, + { 3,-1, 2, 0, 1, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 3, 0, 2, 0, 0, 30.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 1, 0, 4, 0, 2, 24.0, 0.0, 0.0, -10.0, 0.0, 0.0}, + { 5, 0, 2,-2, 2, 10.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 0,-1, 2, 4, 1, -16.0, 0.0, 0.0, 7.0, 0.0, 0.0}, + { 2,-1, 2, 2, 1, -16.0, 0.0, 0.0, 7.0, 0.0, 0.0}, + { 0, 1, 2, 4, 2, 17.0, 0.0, 0.0, -7.0, 0.0, 0.0}, + { 1,-1, 2, 4, 2, -24.0, 0.0, 0.0, 10.0, 0.0, 0.0}, + { 3,-1, 2, 2, 2, -12.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + + /* 441-450 */ + { 3, 0, 2, 2, 1, -24.0, 0.0, 0.0, 11.0, 0.0, 0.0}, + { 5, 0, 2, 0, 2, -23.0, 0.0, 0.0, 9.0, 0.0, 0.0}, + { 0, 0, 2, 6, 2, -13.0, 0.0, 0.0, 5.0, 0.0, 0.0}, + { 4, 0, 2, 2, 2, -15.0, 0.0, 0.0, 7.0, 0.0, 0.0}, + { 0,-1, 1,-1, 1, 0.0, 0.0,-1988.0, 0.0, 0.0,-1679.0}, + {-1, 0, 1, 0, 3, 0.0, 0.0, -63.0, 0.0, 0.0, -27.0}, + { 0,-2, 2,-2, 3, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0,-1, 0, 1, 0.0, 0.0, 5.0, 0.0, 0.0, 4.0}, + { 2,-2, 0,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + {-1, 0, 1, 0, 2, 0.0, 0.0, 364.0, 0.0, 0.0, 176.0}, + + /* 451-460 */ + {-1, 0, 1, 0, 1, 0.0, 0.0,-1044.0, 0.0, 0.0, -891.0}, + {-1,-1, 2,-1, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-2, 2, 0, 2, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 0, 1, 0, 0, 0.0, 0.0, 330.0, 0.0, 0.0, 0.0}, + {-4, 1, 2, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-3, 0, 2, 1, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-2,-1, 2, 0, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 1, 0,-2, 1, 1, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2,-1,-2, 0, 1, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-4, 0, 2, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 461-470 */ + {-3, 1, 0, 3, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 0,-1, 2, 0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0}, + { 0,-2, 0, 0, 2, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 0,-2, 0, 0, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-3, 0, 0, 3, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2,-1, 0, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 0,-2, 3, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-4, 0, 0, 4, 0, -12.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2, 1,-2, 0, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 2,-1, 0,-2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + + /* 471-480 */ + { 0, 0, 1,-1, 0, -5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 2, 0, 1, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2, 1, 2, 0, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 1, 1, 0,-1, 1, 7.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 1, 0, 1,-2, 1, 0.0, 0.0, -12.0, 0.0, 0.0, -10.0}, + { 0, 2, 0, 0, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 1,-1, 2,-3, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 1, 2,-1, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2, 0, 4,-2, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-2, 0, 4,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + + /* 481-490 */ + {-2,-2, 0, 2, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-2, 0,-2, 4, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 2, 2,-4, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 1, 1, 2,-4, 2, 7.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + {-1, 2, 2,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2, 0, 0,-3, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 2, 0, 0, 1, -5.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 0, 0, 0,-2, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 2,-2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1, 1, 0, 0, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 491-500 */ + { 0, 0, 0,-1, 2, -8.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-2, 1, 0, 1, 0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1,-2, 0,-2, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 1, 0,-2, 0, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-3, 1, 0, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 1,-2, 2, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 0, 0, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-3, 0, 0, 2, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3,-1, 0, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2, 0, 2,-6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + + /* 501-510 */ + { 0, 1, 2,-4, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2, 0, 0,-4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-2, 1, 2,-2, 1, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0,-1, 2,-4, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 0, 1, 0,-2, 2, 9.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + {-1, 0, 0,-2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2, 0,-2,-2, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-4, 0, 2, 0, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1,-1, 0,-1, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0,-2, 0, 2, 9.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + + /* 511-520 */ + {-3, 0, 0, 1, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 0,-2, 1, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2, 0,-2, 2, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 0, 0,-4, 2, 0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2,-1,-2, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0, 2,-6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1, 0, 2,-4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 1, 0, 0,-4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 2, 1, 2,-4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 2, 1, 2,-4, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + + /* 521-530 */ + { 0, 1, 4,-4, 4, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 4,-4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-1,-1,-2, 4, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-3, 0, 2, 0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 0,-2, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2,-1, 0, 3, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0,-2, 3, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2, 0, 0, 3, 1, -5.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 0,-1, 0, 1, 0, -13.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3, 0, 2, 2, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 531-540 */ + { 1, 1,-2, 2, 0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 1, 0, 2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 1,-2, 2,-2, 1, 10.0, 0.0, 13.0, 6.0, 0.0, -5.0}, + { 0, 0, 1, 0, 2, 0.0, 0.0, 30.0, 0.0, 0.0, 14.0}, + { 0, 0, 1, 0, 1, 0.0, 0.0, -162.0, 0.0, 0.0, -138.0}, + { 0, 0, 1, 0, 0, 0.0, 0.0, 75.0, 0.0, 0.0, 0.0}, + {-1, 2, 0, 2, 1, -7.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + { 0, 0, 2, 0, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2, 0, 2, 0, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2, 0, 0,-1, 1, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 541-550 */ + { 3, 0, 0,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 1, 0, 2,-2, 3, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 2, 0, 0, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2, 0, 2,-3, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1, 1, 4,-2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2,-2, 0, 4, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0,-3, 0, 2, 0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0,-2, 4, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 0, 3, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2, 0, 0, 4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + + /* 551-560 */ + {-1, 0, 0, 3, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2,-2, 0, 0, 0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1,-1, 0, 1, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 0, 0, 2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0,-2, 2, 0, 1, -6.0, 0.0, -3.0, 3.0, 0.0, 1.0}, + {-1, 0, 1, 2, 1, 0.0, 0.0, -3.0, 0.0, 0.0, -2.0}, + {-1, 1, 0, 3, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-1, 2, 1, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 0,-1, 2, 0, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2, 1, 2, 2, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + + /* 561-570 */ + { 2,-2, 2,-2, 2, -1.0, 0.0, 3.0, 3.0, 0.0, -1.0}, + { 1, 1, 0, 1, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 1, 0, 1, 0, 1, 0.0, 0.0, -13.0, 0.0, 0.0, -11.0}, + { 1, 0, 1, 0, 0, 3.0, 0.0, 6.0, 0.0, 0.0, 0.0}, + { 0, 2, 0, 2, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2,-1, 2,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 0,-1, 4,-2, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 0, 0, 4,-2, 3, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 4,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 4, 0, 2,-4, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + + /* 571-580 */ + { 2, 2, 2,-2, 2, 8.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 2, 0, 4,-4, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1,-2, 0, 4, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1,-3, 2, 2, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-3, 0, 2, 4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-3, 0, 2,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1,-1, 0,-2, 1, 8.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + {-3, 0, 0, 0, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-3, 0,-2, 2, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 0,-4, 1, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + + /* 581-590 */ + {-2, 1, 0,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-4, 0, 0, 0, 1, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + {-1, 0, 0,-4, 1, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-3, 0, 0,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0, 0, 3, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-1, 1, 0, 4, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 1,-2, 2, 0, 1, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 0, 1, 0, 3, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-1, 0, 2, 2, 3, 6.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 0, 0, 2, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 591-600 */ + {-2, 0, 2, 2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1, 1, 2, 2, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 3, 0, 0, 0, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2, 1, 0, 1, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2,-1, 2,-1, 2, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 0, 0, 2, 0, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0, 3, 0, 3, 0.0, 0.0, -26.0, 0.0, 0.0, -11.0}, + { 0, 0, 3, 0, 2, 0.0, 0.0, -10.0, 0.0, 0.0, -5.0}, + {-1, 2, 2, 2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + {-1, 0, 4, 0, 0, -13.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 601-610 */ + { 1, 2, 2, 0, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 3, 1, 2,-2, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 1, 1, 4,-2, 2, 7.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + {-2,-1, 0, 6, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0,-2, 0, 4, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-2, 0, 0, 6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2,-2, 2, 4, 2, -6.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0,-3, 2, 2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0, 0, 4, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-1,-1, 2, 3, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 611-620 */ + {-2, 0, 2, 4, 0, 13.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2,-1, 0, 2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 1, 0, 0, 3, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 0, 4, 1, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 0, 1, 0, 4, 0, -11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1,-1, 2, 1, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 0, 0, 2, 2, 3, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0, 2, 2, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-1, 0, 2, 2, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-2, 0, 4, 2, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + + /* 621-630 */ + { 2, 1, 0, 2, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2, 1, 0, 2, 0, -12.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2,-1, 2, 0, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0, 2, 1, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 1, 2, 2, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2, 0, 2, 0, 3, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 3, 0, 2, 0, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 1, 0, 2, 0, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 1, 0, 3, 0, 3, 0.0, 0.0, -5.0, 0.0, 0.0, -2.0}, + { 1, 1, 2, 1, 1, -7.0, 0.0, 0.0, 4.0, 0.0, 0.0}, + + /* 631-640 */ + { 0, 2, 2, 2, 2, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 2, 1, 2, 0, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2, 0, 4,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 4, 1, 2,-2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + {-1,-1, 0, 6, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {-3,-1, 2, 6, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + {-1, 0, 0, 6, 1, -5.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-3, 0, 2, 6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 1,-1, 0, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 1,-1, 0, 4, 0, 12.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 641-650 */ + {-2, 0, 2, 5, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 1,-2, 2, 2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 3,-1, 0, 2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1,-1, 2, 2, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0, 2, 3, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + {-1, 1, 2, 4, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 0, 1, 2, 3, 2, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-1, 0, 4, 2, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2, 0, 2, 1, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 5, 0, 0, 0, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 651-660 */ + { 2, 1, 2, 1, 2, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 1, 0, 4, 0, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 3, 1, 2, 0, 1, 7.0, 0.0, 0.0, -4.0, 0.0, 0.0}, + { 3, 0, 4,-2, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + {-2,-1, 2, 6, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0, 0, 6, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0,-2, 2, 4, 2, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + {-2, 0, 2, 6, 1, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, + { 2, 0, 0, 4, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 2, 0, 0, 4, 0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + + /* 661-670 */ + { 2,-2, 2, 2, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 0, 0, 2, 4, 0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 1, 0, 2, 3, 2, 7.0, 0.0, 0.0, -3.0, 0.0, 0.0}, + { 4, 0, 0, 2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 2, 0, 2, 2, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + { 0, 0, 4, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 4,-1, 2, 0, 2, -6.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 3, 0, 2, 1, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 2, 1, 2, 2, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 4, 1, 2, 0, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + + /* 671-678 */ + {-1,-1, 2, 6, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + {-1, 0, 2, 6, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 1,-1, 2, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, + { 1, 1, 2, 4, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, + { 3, 1, 2, 2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, + { 5, 0, 2, 0, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 2,-1, 2, 4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, + { 2, 0, 2, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0} + }; + +/* Number of terms in the luni-solar nutation model */ + const int NLS = (int) (sizeof xls / sizeof xls[0]); + +/* ------------------------ */ +/* Planetary nutation model */ +/* ------------------------ */ + +/* The units for the sine and cosine coefficients are */ +/* 0.1 microarcsecond */ + + static const struct { + int nl, /* coefficients of l, F, D and Omega */ + nf, + nd, + nom, + nme, /* coefficients of planetary longitudes */ + nve, + nea, + nma, + nju, + nsa, + nur, + nne, + npa; /* coefficient of general precession */ + int sp,cp; /* longitude sin, cos coefficients */ + int se,ce; /* obliquity sin, cos coefficients */ + } xpl[] = { + + /* 1-10 */ + { 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 0, 1440, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, -8, 16,-4,-5, 0, 0, 2, 56,-117, -42, -40}, + { 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 2, 125, -43, 0, -54}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 2, 2, 0, 5, 0, 0}, + { 0, 0, 0, 0, 0, 0, -4, 8,-1,-5, 0, 0, 2, 3, -7, -3, 0}, + { 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 1, 3, 0, 0, -2}, + { 0, 1,-1, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0, -114, 0, 0, 61}, + {-1, 0, 0, 0, 0, 10, -3, 0, 0, 0, 0, 0, 0, -219, 89, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0,-2, 6,-3, 0, 2, -3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, -462,1604, 0, 0}, + + /* 11-20 */ + { 0, 1,-1, 1, 0, 0, -5, 8,-3, 0, 0, 0, 0, 99, 0, 0, -53}, + { 0, 0, 0, 0, 0, 0, -4, 8,-3, 0, 0, 0, 1, -3, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, 2, 0, 6, 2, 0}, + { 0, 0, 0, 0, 0, -5, 6, 4, 0, 0, 0, 0, 2, 3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2,-5, 0, 0, 2, -12, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2,-5, 0, 0, 1, 14,-218, 117, 8}, + { 0, 1,-1, 1, 0, 0, -1, 0, 2,-5, 0, 0, 0, 31,-481, -257, -17}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2,-5, 0, 0, 0, -491, 128, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0,-2, 5, 0, 0, 0,-3084,5123, 2735,1647}, + { 0, 0, 0, 0, 0, 0, 0, 0,-2, 5, 0, 0, 1,-1444,2409,-1286,-771}, + + /* 21-30 */ + { 0, 0, 0, 0, 0, 0, 0, 0,-2, 5, 0, 0, 2, 11, -24, -11, -9}, + { 2,-1,-1, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0, 26, -9, 0, 0}, + { 1, 0,-2, 0, 0, 19,-21, 3, 0, 0, 0, 0, 0, 103, -60, 0, 0}, + { 0, 1,-1, 1, 0, 2, -4, 0,-3, 0, 0, 0, 0, 0, -13, -7, 0}, + { 1, 0,-1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0, -26, -29, -16, 14}, + { 0, 1,-1, 1, 0, 0, -1, 0,-4,10, 0, 0, 0, 9, -27, -14, -5}, + {-2, 0, 2, 1, 0, 0, 2, 0, 0,-5, 0, 0, 0, 12, 0, 0, -6}, + { 0, 0, 0, 0, 0, 3, -7, 4, 0, 0, 0, 0, 0, -7, 0, 0, 0}, + { 0,-1, 1, 0, 0, 0, 1, 0, 1,-1, 0, 0, 0, 0, 24, 0, 0}, + {-2, 0, 2, 1, 0, 0, 2, 0,-2, 0, 0, 0, 0, 284, 0, 0,-151}, + + /* 31-40 */ + {-1, 0, 0, 0, 0, 18,-16, 0, 0, 0, 0, 0, 0, 226, 101, 0, 0}, + {-2, 1, 1, 2, 0, 0, 1, 0,-2, 0, 0, 0, 0, 0, -8, -2, 0}, + {-1, 1,-1, 1, 0, 18,-17, 0, 0, 0, 0, 0, 0, 0, -6, -3, 0}, + {-1, 0, 1, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0, 5, 0, 0, -3}, + { 0, 0, 0, 0, 0, -8, 13, 0, 0, 0, 0, 0, 2, -41, 175, 76, 17}, + { 0, 2,-2, 2, 0, -8, 11, 0, 0, 0, 0, 0, 0, 0, 15, 6, 0}, + { 0, 0, 0, 0, 0, -8, 13, 0, 0, 0, 0, 0, 1, 425, 212, -133, 269}, + { 0, 1,-1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0, 1200, 598, 319,-641}, + { 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 0, 235, 334, 0, 0}, + { 0, 1,-1, 1, 0, 8,-14, 0, 0, 0, 0, 0, 0, 11, -12, -7, -6}, + + /* 41-50 */ + { 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 1, 5, -6, 3, 3}, + {-2, 0, 2, 1, 0, 0, 2, 0,-4, 5, 0, 0, 0, -5, 0, 0, 3}, + {-2, 0, 2, 2, 0, 3, -3, 0, 0, 0, 0, 0, 0, 6, 0, 0, -3}, + {-2, 0, 2, 0, 0, 0, 2, 0,-3, 1, 0, 0, 0, 15, 0, 0, 0}, + { 0, 0, 0, 1, 0, 3, -5, 0, 2, 0, 0, 0, 0, 13, 0, 0, -7}, + {-2, 0, 2, 0, 0, 0, 2, 0,-4, 3, 0, 0, 0, -6, -9, 0, 0}, + { 0,-1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 266, -78, 0, 0}, + { 0, 0, 0, 1, 0, 0, -1, 2, 0, 0, 0, 0, 0, -460,-435, -232, 246}, + { 0, 1,-1, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0, 15, 7, 0}, + {-1, 1, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0, -3, 0, 0, 2}, + + /* 51-60 */ + {-1, 0, 1, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0}, + {-2, 0, 2, 0, 0, 0, 2, 0,-2,-2, 0, 0, 0, 4, 0, 0, 0}, + {-2, 2, 0, 2, 0, 0, -5, 9, 0, 0, 0, 0, 0, 0, 3, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0, 0,-1, 0, 0, 0, 4, 2, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0, 0, 0, 2, 0, -17, -19, -10, 9}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, -9, -11, 6, -5}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, -6, 0, 0, 3}, + {-1, 0, 1, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -16, 8, 0, 0}, + { 0,-1, 1, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0}, + + /* 61-70 */ + { 0, 1,-1, 2, 0, 0, -1, 0, 0, 2, 0, 0, 0, 11, 24, 11, -5}, + { 0, 0, 0, 1, 0, 0, -9, 17, 0, 0, 0, 0, 0, -3, -4, -2, 1}, + { 0, 0, 0, 2, 0, -3, 5, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, + { 0, 1,-1, 1, 0, 0, -1, 0,-1, 2, 0, 0, 0, 0, -8, -4, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 1,-2, 0, 0, 0, 0, 3, 0, 0}, + { 1, 0,-2, 0, 0, 17,-16, 0,-2, 0, 0, 0, 0, 0, 5, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0, 1,-3, 0, 0, 0, 0, 3, 2, 0}, + {-2, 0, 2, 1, 0, 0, 5, -6, 0, 0, 0, 0, 0, -6, 4, 2, 3}, + { 0,-2, 2, 0, 0, 0, 9,-13, 0, 0, 0, 0, 0, -3, -5, 0, 0}, + { 0, 1,-1, 2, 0, 0, -1, 0, 0, 1, 0, 0, 0, -5, 0, 0, 2}, + + /* 71-80 */ + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 24, 13, -2}, + { 0,-1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -42, 20, 0, 0}, + { 0,-2, 2, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0, -10, 233, 0, 0}, + { 0,-1, 1, 1, 0, 5, -7, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, + {-2, 0, 2, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0, 78, -18, 0, 0}, + { 2, 1,-3, 1, 0, -6, 7, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, + { 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -3, -1, 0}, + { 0,-1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -4, -2, 1}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0, 0, 2, 0, 0, 0, -8, -4, -1}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, -5, 3, 0}, + + /* 81-90 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, -7, 0, 0, 3}, + { 0, 0, 0, 0, 0, 0, -8, 15, 0, 0, 0, 0, 2, -14, 8, 3, 6}, + { 0, 0, 0, 0, 0, 0, -8, 15, 0, 0, 0, 0, 1, 0, 8, -4, 0}, + { 0, 1,-1, 1, 0, 0, -9, 15, 0, 0, 0, 0, 0, 0, 19, 10, 0}, + { 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, 45, -22, 0, 0}, + { 1,-1,-1, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, -3, 0, 0, 0}, + { 2, 0,-2, 0, 0, 2, -5, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, + {-2, 0, 2, 0, 0, 0, 2, 0,-5, 5, 0, 0, 0, 0, 3, 0, 0}, + { 2, 0,-2, 1, 0, 0, -6, 8, 0, 0, 0, 0, 0, 3, 5, 3, -2}, + { 2, 0,-2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0, 89, -16, -9, -48}, + + /* 91-100 */ + {-2, 1, 1, 0, 0, 0, 1, 0,-3, 0, 0, 0, 0, 0, 3, 0, 0}, + {-2, 1, 1, 1, 0, 0, 1, 0,-3, 0, 0, 0, 0, -3, 7, 4, 2}, + {-2, 0, 2, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, -349, -62, 0, 0}, + {-2, 0, 2, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -15, 22, 0, 0}, + {-2, 0, 2, 0, 0, 0, 2, 0,-1,-5, 0, 0, 0, -3, 0, 0, 0}, + {-1, 0, 1, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, -53, 0, 0, 0}, + {-1, 1, 1, 1, 0,-20, 20, 0, 0, 0, 0, 0, 0, 5, 0, 0, -3}, + { 1, 0,-2, 0, 0, 20,-21, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0}, + { 0, 0, 0, 1, 0, 0, 8,-15, 0, 0, 0, 0, 0, 15, -7, -4, -8}, + { 0, 2,-2, 1, 0, 0,-10, 15, 0, 0, 0, 0, 0, -3, 0, 0, 1}, + + /* 101-110 */ + { 0,-1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, -21, -78, 0, 0}, + { 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 20, -70, -37, -11}, + { 0, 1,-1, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 6, 3, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0,-2, 4, 0, 0, 0, 5, 3, 2, -2}, + { 2, 0,-2, 1, 0, -6, 8, 0, 0, 0, 0, 0, 0, -17, -4, -2, 9}, + { 0,-2, 2, 1, 0, 5, -6, 0, 0, 0, 0, 0, 0, 0, 6, 3, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 1, 32, 15, -8, 17}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0,-1, 0, 0, 0, 174, 84, 45, -93}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 56, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -66, -12, -6, 35}, + + /* 111-120 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 47, 8, 4, -25}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 8, 4, 0}, + { 0, 2,-2, 1, 0, 0, -9, 13, 0, 0, 0, 0, 0, 10, -22, -12, -5}, + { 0, 0, 0, 1, 0, 0, 7,-13, 0, 0, 0, 0, 0, -3, 0, 0, 2}, + {-2, 0, 2, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -24, 12, 0, 0}, + { 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, 0, 5, -6, 0, 0}, + { 0, 0, 0, 0, 0, 0, -9, 17, 0, 0, 0, 0, 2, 3, 0, 0, -2}, + { 1, 0,-1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 4, 3, 1, -2}, + { 1, 0,-1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0, 0, 29, 15, 0}, + { 0, 0, 0, 2, 0, 0, -1, 2, 0, 0, 0, 0, 0, -5, -4, -2, 2}, + + /* 121-130 */ + { 0,-1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, -3, -1, -5}, + { 0,-2, 2, 0, 1, 0, -2, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, + { 0, 0, 0, 0, 0, 3, -5, 0, 2, 0, 0, 0, 0, 10, 0, 0, 0}, + {-2, 0, 2, 1, 0, 0, 2, 0,-3, 1, 0, 0, 0, 3, 0, 0, -2}, + {-2, 0, 2, 1, 0, 3, -3, 0, 0, 0, 0, 0, 0, -5, 0, 0, 3}, + { 0, 0, 0, 1, 0, 8,-13, 0, 0, 0, 0, 0, 0, 46, 66, 35, -25}, + { 0,-1, 1, 0, 0, 8,-12, 0, 0, 0, 0, 0, 0, -14, 7, 0, 0}, + { 0, 2,-2, 1, 0, -8, 11, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0}, + {-1, 0, 1, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -5, 0, 0, 0}, + {-1, 0, 0, 1, 0, 18,-16, 0, 0, 0, 0, 0, 0, -68, -34, -18, 36}, + + /* 131-140 */ + { 0, 1,-1, 1, 0, 0, -1, 0,-1, 1, 0, 0, 0, 0, 14, 7, 0}, + { 0, 0, 0, 1, 0, 3, -7, 4, 0, 0, 0, 0, 0, 10, -6, -3, -5}, + {-2, 1, 1, 1, 0, 0, -3, 7, 0, 0, 0, 0, 0, -5, -4, -2, 3}, + { 0, 1,-1, 2, 0, 0, -1, 0,-2, 5, 0, 0, 0, -3, 5, 2, 1}, + { 0, 0, 0, 1, 0, 0, 0, 0,-2, 5, 0, 0, 0, 76, 17, 9, -41}, + { 0, 0, 0, 1, 0, 0, -4, 8,-3, 0, 0, 0, 0, 84, 298, 159, -45}, + { 1, 0, 0, 1, 0,-10, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, + { 0, 2,-2, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0, -3, 0, 0, 2}, + {-1, 0, 0, 1, 0, 10, -3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, + { 0, 0, 0, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0, -82, 292, 156, 44}, + + /* 141-150 */ + { 0, 0, 0, 1, 0, 0, 0, 0, 2,-5, 0, 0, 0, -73, 17, 9, 39}, + { 0,-1, 1, 0, 0, 0, 1, 0, 2,-5, 0, 0, 0, -9, -16, 0, 0}, + { 2,-1,-1, 1, 0, 0, 3, -7, 0, 0, 0, 0, 0, 3, 0, -1, -2}, + {-2, 0, 2, 0, 0, 0, 2, 0, 0,-5, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 1, 0, -3, 7, -4, 0, 0, 0, 0, 0, -9, -5, -3, 5}, + {-2, 0, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -439, 0, 0, 0}, + { 1, 0, 0, 1, 0,-18, 16, 0, 0, 0, 0, 0, 0, 57, -28, -15, -30}, + {-2, 1, 1, 1, 0, 0, 1, 0,-2, 0, 0, 0, 0, 0, -6, -3, 0}, + { 0, 1,-1, 2, 0, -8, 12, 0, 0, 0, 0, 0, 0, -4, 0, 0, 2}, + { 0, 0, 0, 1, 0, -8, 13, 0, 0, 0, 0, 0, 0, -40, 57, 30, 21}, + + /* 151-160 */ + { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 1, 23, 7, 3, -13}, + { 0, 1,-1, 1, 0, 0, 0, -2, 0, 0, 0, 0, 0, 273, 80, 43,-146}, + { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -449, 430, 0, 0}, + { 0, 1,-1, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0, -8, -47, -25, 4}, + { 0, 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 1, 6, 47, 25, -3}, + {-1, 0, 1, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, 23, 13, 0}, + {-1, 0, 1, 1, 0, 0, 3, -4, 0, 0, 0, 0, 0, -3, 0, 0, 2}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0,-2, 0, 0, 0, 3, -4, -2, -2}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0, 2, 0, 0, 0, -48,-110, -59, 26}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 51, 114, 61, -27}, + + /* 161-170 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, -133, 0, 0, 57}, + { 0, 1,-1, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0}, + { 0, 0, 0, 1, 0, -3, 5, 0, 0, 0, 0, 0, 0, -21, -6, -3, 11}, + { 0, 1,-1, 2, 0, -3, 4, 0, 0, 0, 0, 0, 0, 0, -3, -1, 0}, + { 0, 0, 0, 1, 0, 0, -2, 4, 0, 0, 0, 0, 0, -11, -21, -11, 6}, + { 0, 2,-2, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0, -18,-436, -233, 9}, + { 0,-1, 1, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0, 35, -7, 0, 0}, + { 0, 0, 0, 1, 0, 5, -8, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, + {-2, 0, 2, 1, 0, 6, -8, 0, 0, 0, 0, 0, 0, 11, -3, -1, -6}, + { 0, 0, 0, 1, 0, 0, -8, 15, 0, 0, 0, 0, 0, -5, -3, -1, 3}, + + /* 171-180 */ + {-2, 0, 2, 1, 0, 0, 2, 0,-3, 0, 0, 0, 0, -53, -9, -5, 28}, + {-2, 0, 2, 1, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0, 3, 2, 1}, + { 1, 0,-1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 4, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 0, 0, 3,-5, 0, 0, 0, 0, -4, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0,-1, 0, 0, 0, 0, -50, 194, 103, 27}, + { 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 1, -13, 52, 28, 7}, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -91, 248, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 6, 49, 26, -3}, + { 0, 1,-1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, -6, -47, -25, 3}, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 3, 0}, + + /* 181-190 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 52, 23, 10, -23}, + { 0, 1,-1, 2, 0, 0, -1, 0, 0,-1, 0, 0, 0, -3, 0, 0, 1}, + { 0, 0, 0, 1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 5, 3, 0}, + { 0,-1, 1, 0, 0, 0, 1, 0, 0,-1, 0, 0, 0, -4, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, -7, 13, 0, 0, 0, 0, 2, -4, 8, 3, 2}, + { 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, 0, 10, 0, 0, 0}, + { 2, 0,-2, 1, 0, 0, -5, 6, 0, 0, 0, 0, 0, 3, 0, 0, -2}, + { 0, 2,-2, 1, 0, 0, -8, 11, 0, 0, 0, 0, 0, 0, 8, 4, 0}, + { 0, 2,-2, 1,-1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 4, 1}, + {-2, 0, 2, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0}, + + /* 191-200 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 0, -4, 0, 0, 0}, + { 0, 1,-1, 1, 0, 0, -1, 0, 0, 3, 0, 0, 0, -8, 4, 2, 4}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 8, -4, -2, -4}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 15, 7, 0}, + {-2, 0, 2, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, -138, 0, 0, 0}, + { 0, 0, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, -7, -3, 0}, + { 0, 0, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -7, -3, 0}, + { 2, 0,-2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0, 54, 0, 0, -29}, + { 0, 1,-1, 2, 0, 0, -1, 0, 2, 0, 0, 0, 0, 0, 10, 4, 0}, + { 0, 1,-1, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0, -7, 0, 0, 3}, + + /* 201-210 */ + { 0, 0, 0, 1, 0, 0, 1, -2, 0, 0, 0, 0, 0, -37, 35, 19, 20}, + { 0,-1, 1, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 4, 0, 0}, + { 0,-1, 1, 0, 0, 0, 1, 0, 0,-2, 0, 0, 0, -4, 9, 0, 0}, + { 0, 2,-2, 1, 0, 0, -2, 0, 0, 2, 0, 0, 0, 8, 0, 0, -4}, + { 0, 1,-1, 1, 0, 3, -6, 0, 0, 0, 0, 0, 0, -9, -14, -8, 5}, + { 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 1, -3, -9, -5, 3}, + { 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0, -145, 47, 0, 0}, + { 0, 1,-1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0, -10, 40, 21, 5}, + { 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 0, 1, 11, -49, -26, -7}, + { 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 0, 2,-2150, 0, 0, 932}, + + /* 211-220 */ + { 0, 2,-2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0, -12, 0, 0, 5}, + { 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 0, 2, 85, 0, 0, -37}, + { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 1, 4, 0, 0, -2}, + { 0, 1,-1, 1, 0, 0, 1, -4, 0, 0, 0, 0, 0, 3, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -86, 153, 0, 0}, + { 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 1, -6, 9, 5, 3}, + { 0, 1,-1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 9, -13, -7, -5}, + { 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 1, -8, 12, 6, 4}, + { 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 2, -51, 0, 0, 22}, + { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 2, -11,-268, -116, 5}, + + /* 221-230 */ + { 0, 2,-2, 2, 0, -5, 6, 0, 0, 0, 0, 0, 0, 0, 12, 5, 0}, + { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 2, 0, 7, 3, 0}, + { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 1, 31, 6, 3, -17}, + { 0, 1,-1, 1, 0, -5, 7, 0, 0, 0, 0, 0, 0, 140, 27, 14, -75}, + { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 1, 57, 11, 6, -30}, + { 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0, -14, -39, 0, 0}, + { 0, 1,-1, 2, 0, 0, -1, 0,-1, 0, 0, 0, 0, 0, -6, -2, 0}, + { 0, 0, 0, 1, 0, 0, 0, 0,-1, 0, 0, 0, 0, 4, 15, 8, -2}, + { 0,-1, 1, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 0, 4, 0, 0}, + { 0, 2,-2, 1, 0, 0, -2, 0, 1, 0, 0, 0, 0, -3, 0, 0, 1}, + + /* 231-240 */ + { 0, 0, 0, 0, 0, 0, -6, 11, 0, 0, 0, 0, 2, 0, 11, 5, 0}, + { 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, 0, 9, 6, 0, 0}, + { 0, 0, 0, 0,-1, 0, 4, 0, 0, 0, 0, 0, 2, -4, 10, 4, 2}, + { 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0}, + { 2, 0,-2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, -9}, + {-2, 0, 2, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, -3, 0, 0, 0}, + { 0, 2,-2, 1, 0, 0, -7, 9, 0, 0, 0, 0, 0, 0, 3, 2, -1}, + { 0, 0, 0, 0, 0, 0, 0, 0, 4,-5, 0, 0, 2, 7, 0, 0, -3}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, -25, 22, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 42, 223, 119, -22}, + + /* 241-250 */ + { 0, 1,-1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0, -27,-143, -77, 14}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 9, 49, 26, -5}, + { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2,-1166, 0, 0, 505}, + { 0, 2,-2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0, -5, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 2, -6, 0, 0, 3}, + { 0, 0, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0, -8, 0, 1, 4}, + { 0,-1, 1, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, + { 0, 2,-2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0, 117, 0, 0, -63}, + { 0, 0, 0, 1, 0, 0, 2, -4, 0, 0, 0, 0, 0, -4, 8, 4, 2}, + { 0, 2,-2, 1, 0, 0, -4, 4, 0, 0, 0, 0, 0, 3, 0, 0, -2}, + + /* 251-260 */ + { 0, 1,-1, 2, 0, -5, 7, 0, 0, 0, 0, 0, 0, -5, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0, 31, 0, 0}, + { 0, 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 1, -5, 0, 1, 3}, + { 0, 1,-1, 1, 0, 0, -4, 6, 0, 0, 0, 0, 0, 4, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 1, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 2, -24, -13, -6, 10}, + { 0,-1, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0}, + { 0, 0, 0, 1, 0, 2, -3, 0, 0, 0, 0, 0, 0, 0, -32, -17, 0}, + { 0, 0, 0, 0, 0, 0, -5, 9, 0, 0, 0, 0, 2, 8, 12, 5, -3}, + { 0, 0, 0, 0, 0, 0, -5, 9, 0, 0, 0, 0, 1, 3, 0, 0, -1}, + + /* 261-270 */ + { 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0, 7, 13, 0, 0}, + { 0,-1, 1, 0, 0, 0, 1, 0,-2, 0, 0, 0, 0, -3, 16, 0, 0}, + { 0, 2,-2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0, 50, 0, 0, -27}, + {-2, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -5, -3, 0}, + { 0,-2, 2, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0}, + { 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 0, 1, 0, 5, 3, 1}, + { 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 0, 2, 24, 5, 2, -11}, + { 0, 0, 0, 0, 0, -2, 3, 0, 0, 0, 0, 0, 2, 5, -11, -5, -2}, + { 0, 0, 0, 0, 0, -2, 3, 0, 0, 0, 0, 0, 1, 30, -3, -2, -16}, + { 0, 1,-1, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0, 18, 0, 0, -9}, + + /* 271-280 */ + { 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 0, 8, 614, 0, 0}, + { 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 1, 3, -3, -1, -2}, + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 6, 17, 9, -3}, + { 0, 1,-1, 1, 0, 0, -1, 0, 3, 0, 0, 0, 0, -3, -9, -5, 2}, + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 6, 3, -1}, + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, -127, 21, 9, 55}, + { 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0, 3, 5, 0, 0}, + { 0, 0, 0, 0, 0, 0, -4, 8, 0, 0, 0, 0, 2, -6, -10, -4, 3}, + { 0,-2, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 5, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 2, 16, 9, 4, -7}, + + /* 281-290 */ + { 0, 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 1, 3, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, 0, 22, 0, 0}, + { 0, 0, 0, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 19, 10, 0}, + { 0, 2,-2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0, 7, 0, 0, -4}, + { 0, 0, 0, 0, 0, 0, -5, 10, 0, 0, 0, 0, 2, 0, -5, -2, 0}, + { 0, 0, 0, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, -9, 3, 1, 4}, + { 0, 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 2, 17, 0, 0, -7}, + { 0, 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 1, 0, -3, -2, -1}, + { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -20, 34, 0, 0}, + + /* 291-300 */ + { 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 1, -10, 0, 1, 5}, + { 0, 1,-1, 1, 0, 1, -3, 0, 0, 0, 0, 0, 0, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, 22, -87, 0, 0}, + { 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 1, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 2, -3, -6, -2, 1}, + { 0, 0, 0, 0, 0, -7, 11, 0, 0, 0, 0, 0, 2, -16, -3, -1, 7}, + { 0, 0, 0, 0, 0, -7, 11, 0, 0, 0, 0, 0, 1, 0, -3, -2, 0}, + { 0,-2, 2, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -68, 39, 0, 0}, + { 0, 2,-2, 1, 0, -4, 4, 0, 0, 0, 0, 0, 0, 27, 0, 0, -14}, + + /* 301-310 */ + { 0,-1, 1, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -25, 0, 0, 0}, + { 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 0, 1, -12, -3, -2, 6}, + { 0, 1,-1, 1, 0, -4, 6, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 0, 2, 3, 66, 29, -1}, + { 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 0, 2, 490, 0, 0,-213}, + { 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 0, 1, -22, 93, 49, 12}, + { 0, 1,-1, 1, 0, -4, 5, 0, 0, 0, 0, 0, 0, -7, 28, 15, 4}, + { 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 0, 1, -3, 13, 7, 2}, + { 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, 0, -46, 14, 0, 0}, + + /* 311-320 */ + {-2, 0, 2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0}, + { 0,-1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, + { 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, -28, 0, 0, 15}, + { 0, 0, 0, 0, 0, 0, -1, 0, 5, 0, 0, 0, 2, 5, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0, 3, 0, 0}, + { 0, 0, 0, 0, 0, 0, -1, 3, 0, 0, 0, 0, 2, -11, 0, 0, 5}, + { 0, 0, 0, 0, 0, 0, -7, 12, 0, 0, 0, 0, 2, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, 25, 106, 57, -13}, + + /* 321-330 */ + { 0, 1,-1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 5, 21, 11, -3}, + { 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 1485, 0, 0, 0}, + { 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, -7, -32, -17, 4}, + { 0, 1,-1, 1, 0, 1, -2, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, + { 0, 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 2, -6, -3, -2, 3}, + { 0, 0, 0, 0, 0, 0, -1, 0, 4, 0, 0, 0, 2, 30, -6, -2, -13}, + { 0, 0, 0, 0, 0, 0, 1, 0,-4, 0, 0, 0, 0, -4, 4, 0, 0}, + { 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, -19, 0, 0, 10}, + { 0, 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 2, 0, 4, 2, -1}, + { 0, 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 0, 0, 3, 0, 0}, + + /* 331-340 */ + { 0, 2,-2, 1, 0, 0, -3, 0, 3, 0, 0, 0, 0, 4, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, -3, 7, 0, 0, 0, 0, 2, 0, -3, -1, 0}, + {-2, 0, 2, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 2, 5, 3, 1, -2}, + { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0, 11, 0, 0}, + { 0, 0, 0, 0, 0, 0, -1, 0, 3, 0, 0, 0, 2, 118, 0, 0, -52}, + { 0, 0, 0, 0, 0, 0, -1, 0, 3, 0, 0, 0, 1, 0, -5, -3, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0,-3, 0, 0, 0, 0, -28, 36, 0, 0}, + { 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, 0, 5, -5, 0, 0}, + { 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 0, 1, 14, -59, -31, -8}, + + /* 341-350 */ + { 0, 1,-1, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 9, 5, 1}, + { 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 0, 2, -458, 0, 0, 198}, + { 0, 0, 0, 0, 0, -6, 9, 0, 0, 0, 0, 0, 2, 0, -45, -20, 0}, + { 0, 0, 0, 0, 0, -6, 9, 0, 0, 0, 0, 0, 1, 9, 0, 0, -5}, + { 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, + { 0, 0, 0, 1, 0, 0, 1, 0,-2, 0, 0, 0, 0, 0, -4, -2, -1}, + { 0, 2,-2, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0, 11, 0, 0, -6}, + { 0, 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 2, 6, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -16, 23, 0, 0}, + { 0, 0, 0, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, -4, -2, 0}, + + /* 351-360 */ + { 0, 0, 0, 0, 0, 0, -1, 0, 2, 0, 0, 0, 2, -5, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 1, 0,-2, 0, 0, 0, 0, -166, 269, 0, 0}, + { 0, 0, 0, 1, 0, 0, 1, 0,-1, 0, 0, 0, 0, 15, 0, 0, -8}, + { 0, 0, 0, 0, 0, -5, 9, 0, 0, 0, 0, 0, 2, 10, 0, 0, -4}, + { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -78, 45, 0, 0}, + { 0, 0, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0, 2, 0, -5, -2, 0}, + { 0, 0, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0, 1, 7, 0, 0, -4}, + { 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0, -5, 328, 0, 0}, + { 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 1, 3, 0, 0, -2}, + { 0, 0, 0, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0, 5, 0, 0, -2}, + + /* 361-370 */ + { 0, 0, 0, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 0,-3, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 1,-5, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -4, -2, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0,-1223, -26, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 1, 0, 7, 3, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0,-3, 5, 0, 0, 0, 3, 0, 0, 0}, + { 0, 0, 0, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 0,-2, 0, 0, 0, -6, 20, 0, 0}, + { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -368, 0, 0, 0}, + + /* 371-380 */ + { 0, 0, 0, 0, 0, 0, 1, 0, 0,-1, 0, 0, 0, -75, 0, 0, 0}, + { 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 11, 0, 0, -6}, + { 0, 0, 0, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0, 3, 0, 0, -2}, + { 0, 0, 0, 0, 0, -8, 14, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 0, 0, 0, 0, 0, 1, 0, 2,-5, 0, 0, 0, -13, -30, 0, 0}, + { 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 0, 21, 3, 0, 0}, + { 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, -27, 0, 0}, + { 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, 0, -19, -11, 0, 0}, + + /* 381-390 */ + { 0, 0, 0, 0, 0, 0, -3, 8,-3, 0, 0, 0, 2, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 1, 0,-2, 5, 0, 0, 2, 0, 5, 2, 0}, + { 0, 0, 0, 0, 0, -8, 12, 0, 0, 0, 0, 0, 2, -6, 0, 0, 2}, + { 0, 0, 0, 0, 0, -8, 12, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 1,-2, 0, 0, 0, -1, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2, -14, 0, 0, 6}, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, -74, 0, 0, 32}, + { 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 2, 0, -3, -1, 0}, + { 0, 2,-2, 1, 0, -5, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2}, + + /* 391-400 */ + { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 8, 11, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 3, 2, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, -262, 0, 0, 114}, + { 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, + { 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 0, 1, -7, 0, 0, 4}, + { 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 0, 2, 0, -27, -12, 0}, + { 0, 0, 0, 0, 0, 0, -1, 4, 0, 0, 0, 0, 2, -19, -8, -4, 8}, + { 0, 0, 0, 0, 0, -5, 7, 0, 0, 0, 0, 0, 2, 202, 0, 0, -87}, + { 0, 0, 0, 0, 0, -5, 7, 0, 0, 0, 0, 0, 1, -8, 35, 19, 5}, + { 0, 1,-1, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0}, + + /* 401-410 */ + { 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0, 16, -5, 0, 0}, + { 0, 2,-2, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 5, 0, 0, -3}, + { 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, -3, 0, 0}, + { 0, 0, 0, 0,-1, 0, 3, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2, -35, -48, -21, 15}, + { 0, 0, 0, 0, 0, 0, -2, 6, 0, 0, 0, 0, 2, -3, -5, -2, 1}, + { 0, 0, 0, 1, 0, 2, -2, 0, 0, 0, 0, 0, 0, 6, 0, 0, -3}, + { 0, 0, 0, 0, 0, 0, -6, 9, 0, 0, 0, 0, 2, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0, -5, 0, 0}, + { 0, 0, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0, 1, 12, 55, 29, -6}, + + /* 411-420 */ + { 0, 1,-1, 1, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, + { 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, -598, 0, 0, 0}, + { 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1, -3, -13, -7, 1}, + { 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 2, -5, -7, -3, 2}, + { 0, 0, 0, 0, 0, 0, -5, 7, 0, 0, 0, 0, 2, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 5, -7, 0, 0}, + { 0, 0, 0, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 16, -6, 0, 0}, + { 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0, 8, -3, 0, 0}, + { 0, 0, 0, 0, 0, -1, 3, 0, 0, 0, 0, 0, 1, 8, -31, -16, -4}, + + /* 421-430 */ + { 0, 1,-1, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, -1, 3, 0, 0, 0, 0, 0, 2, 113, 0, 0, -49}, + { 0, 0, 0, 0, 0, -7, 10, 0, 0, 0, 0, 0, 2, 0, -24, -10, 0}, + { 0, 0, 0, 0, 0, -7, 10, 0, 0, 0, 0, 0, 1, 4, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 27, 0, 0, 0}, + { 0, 0, 0, 0, 0, -4, 8, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 0, 0, 0, 0, -4, 5, 0, 0, 0, 0, 0, 2, 0, -4, -2, 0}, + { 0, 0, 0, 0, 0, -4, 5, 0, 0, 0, 0, 0, 1, 5, 0, 0, -2}, + { 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, + { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2, -13, 0, 0, 6}, + + /* 431-440 */ + { 0, 0, 0, 0, 0, 0, -2, 0, 5, 0, 0, 0, 2, 5, 0, 0, -2}, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, -18, -10, -4, 8}, + { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -4, -28, 0, 0}, + { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, -5, 6, 3, 2}, + { 0, 0, 0, 0, 0, -9, 13, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 0, 0, 0, 0, 0, -1, 5, 0, 0, 0, 0, 2, -5, -9, -4, 2}, + { 0, 0, 0, 0, 0, 0, -2, 0, 4, 0, 0, 0, 2, 17, 0, 0, -7}, + { 0, 0, 0, 0, 0, 0, 2, 0,-4, 0, 0, 0, 0, 11, 4, 0, 0}, + { 0, 0, 0, 0, 0, 0, -2, 7, 0, 0, 0, 0, 2, 0, -6, -2, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, 83, 15, 0, 0}, + + /* 441-450 */ + { 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, 1, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, 2, 0,-114, -49, 0}, + { 0, 0, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0, 2, 117, 0, 0, -51}, + { 0, 0, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0, 1, -5, 19, 10, 2}, + { 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 1, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, -3, 9, 0, 0, 0, 0, 2, 0, -3, -1, 0}, + { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 2, 0, -6, -2, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 393, 3, 0, 0}, + + /* 451-460 */ + { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 1, -4, 21, 11, 2}, + { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 2, -6, 0, -1, 3}, + { 0, 0, 0, 0, 0, -5, 10, 0, 0, 0, 0, 0, 2, -3, 8, 4, 1}, + { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 8, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 2, 18, -29, -13, -8}, + { 0, 0, 0, 0, 0, -3, 3, 0, 0, 0, 0, 0, 1, 8, 34, 18, -4}, + { 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0}, + { 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 1, 3, 12, 6, -1}, + { 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 2, 54, -15, -7, -24}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0,-3, 0, 0, 0, 0, 3, 0, 0}, + + /* 461-470 */ + { 0, 0, 0, 0, 0, 0, -5, 13, 0, 0, 0, 0, 2, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 0, 2, 0,-1, 0, 0, 0, 0, 0, 35, 0, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0,-1, 0, 0, 0, 2, -154, -30, -13, 67}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, 15, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 1, 0, 4, 2, 0}, + { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 0, 9, 0, 0}, + { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 2, 80, -71, -31, -35}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0,-1, 0, 0, 2, 0, -20, -9, 0}, + { 0, 0, 0, 0, 0, 0, -6, 15, 0, 0, 0, 0, 2, 11, 5, 2, -5}, + { 0, 0, 0, 0, 0, -8, 15, 0, 0, 0, 0, 0, 2, 61, -96, -42, -27}, + + /* 471-480 */ + { 0, 0, 0, 0, 0, -3, 9, -4, 0, 0, 0, 0, 2, 14, 9, 4, -6}, + { 0, 0, 0, 0, 0, 0, 2, 0, 2,-5, 0, 0, 2, -11, -6, -3, 5}, + { 0, 0, 0, 0, 0, 0, -2, 8,-1,-5, 0, 0, 2, 0, -3, -1, 0}, + { 0, 0, 0, 0, 0, 0, 6, -8, 3, 0, 0, 0, 2, 123,-415, -180, -53}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 7, -32, -17, -4}, + { 0, 1,-1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -9, -5, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, -4, 2, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, -89, 0, 0, 38}, + + /* 481-490 */ + { 0, 0, 0, 0, 0, 0, -6, 16,-4,-5, 0, 0, 2, 0, -86, -19, -6}, + { 0, 0, 0, 0, 0, 0, -2, 8,-3, 0, 0, 0, 2, 0, 0, -19, 6}, + { 0, 0, 0, 0, 0, 0, -2, 8,-3, 0, 0, 0, 2, -123,-416, -180, 53}, + { 0, 0, 0, 0, 0, 0, 6, -8, 1, 5, 0, 0, 2, 0, -3, -1, 0}, + { 0, 0, 0, 0, 0, 0, 2, 0,-2, 5, 0, 0, 2, 12, -6, -3, -5}, + { 0, 0, 0, 0, 0, 3, -5, 4, 0, 0, 0, 0, 2, -13, 9, 4, 6}, + { 0, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 0, 2, 0, -15, -7, 0}, + { 0, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 0, 1, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 0, 2, -62, -97, -42, 27}, + { 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 2, -11, 5, 2, 5}, + + /* 491-500 */ + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 2, 0, -19, -8, 0}, + { 0, 0, 0, 0, 0, 3, -3, 0, 2, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 2,-2, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, 4, 2, 0}, + { 0, 1,-1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}, + { 0, 2,-2, 1, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, 4, 2, 0}, + { 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 2, -85, -70, -31, 37}, + { 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 163, -12, -5, -72}, + { 0, 0, 0, 0, 0, -3, 7, 0, 0, 0, 0, 0, 2, -63, -16, -7, 28}, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, -21, -32, -14, 9}, + { 0, 0, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0, 2, 0, -3, -1, 0}, + + /* 501-510 */ + { 0, 0, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0, 1, 3, 0, 0, -2}, + { 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0}, + { 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 2, 3, 10, 4, -1}, + { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 0, -1, 6, 0, 0, 0, 0, 2, 0, -7, -3, 0}, + { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 2, 0, -4, -2, 0}, + { 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 6, 19, 0, 0}, + { 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 2, 5,-173, -75, -2}, + { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 2, 0, -7, -3, 0}, + { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 2, 7, -12, -5, -3}, + + /* 511-520 */ + { 0, 0, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 1, -3, 0, 0, 2}, + { 0, 0, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 2, 3, -4, -2, -1}, + { 0, 0, 0, 0, 0, -7, 9, 0, 0, 0, 0, 0, 2, 74, 0, 0, -32}, + { 0, 0, 0, 0, 0, -7, 9, 0, 0, 0, 0, 0, 1, -3, 12, 6, 2}, + { 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 2, 26, -14, -6, -11}, + { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 2, 19, 0, 0, -8}, + { 0, 0, 0, 0, 0, -4, 4, 0, 0, 0, 0, 0, 1, 6, 24, 13, -3}, + { 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0}, + { 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 1, 0, -10, -5, 0}, + { 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 2, 11, -3, -1, -5}, + + /* 521-530 */ + { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 3, 0, 1, -1}, + { 0, 0, 0, 0, 0, 0, -3, 0, 5, 0, 0, 0, 2, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0}, + { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 5, -23, -12, -3}, + { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2, -339, 0, 0, 147}, + { 0, 0, 0, 0, 0, -9, 12, 0, 0, 0, 0, 0, 2, 0, -10, -5, 0}, + { 0, 0, 0, 0, 0, 0, 3, 0,-4, 0, 0, 0, 0, 5, 0, 0, 0}, + { 0, 2,-2, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 2, 0, -4, -2, 0}, + { 0, 0, 0, 0, 0, 0, 3, 0,-3, 0, 0, 0, 0, 18, -3, 0, 0}, + + /* 531-540 */ + { 0, 0, 0, 0, 0, 0, 3, 0,-3, 0, 0, 0, 2, 9, -11, -5, -4}, + { 0, 0, 0, 0, 0, -2, 6, 0, 0, 0, 0, 0, 2, -8, 0, 0, 4}, + { 0, 0, 0, 0, 0, -6, 7, 0, 0, 0, 0, 0, 1, 3, 0, 0, -1}, + { 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0}, + { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 2, 6, -9, -4, -2}, + { 0, 0, 0, 0, 0, 0, 3, 0,-2, 0, 0, 0, 0, -4, -12, 0, 0}, + { 0, 0, 0, 0, 0, 0, 3, 0,-2, 0, 0, 0, 2, 67, -91, -39, -29}, + { 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 2, 30, -18, -8, -13}, + { 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + { 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 2, 0,-114, -50, 0}, + + /* 541-550 */ + { 0, 0, 0, 0, 0, 0, 3, 0,-1, 0, 0, 0, 2, 0, 0, 0, 23}, + { 0, 0, 0, 0, 0, 0, 3, 0,-1, 0, 0, 0, 2, 517, 16, 7,-224}, + { 0, 0, 0, 0, 0, 0, 3, 0, 0,-2, 0, 0, 2, 0, -7, -3, 0}, + { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 2, 143, -3, -1, -62}, + { 0, 0, 0, 0, 0, 0, 3, 0, 0,-1, 0, 0, 2, 29, 0, 0, -13}, + { 0, 2,-2, 1, 0, 0, 1, 0,-1, 0, 0, 0, 0, -4, 0, 0, 2}, + { 0, 0, 0, 0, 0, -8, 16, 0, 0, 0, 0, 0, 2, -6, 0, 0, 3}, + { 0, 0, 0, 0, 0, 0, 3, 0, 2,-5, 0, 0, 2, 5, 12, 5, -2}, + { 0, 0, 0, 0, 0, 0, 7, -8, 3, 0, 0, 0, 2, -25, 0, 0, 11}, + { 0, 0, 0, 0, 0, 0, -5, 16,-4,-5, 0, 0, 2, -3, 0, 0, 1}, + + /* 551-560 */ + { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 4, 2, 0}, + { 0, 0, 0, 0, 0, 0, -1, 8,-3, 0, 0, 0, 2, -22, 12, 5, 10}, + { 0, 0, 0, 0, 0, -8, 10, 0, 0, 0, 0, 0, 2, 50, 0, 0, -22}, + { 0, 0, 0, 0, 0, -8, 10, 0, 0, 0, 0, 0, 1, 0, 7, 4, 0}, + { 0, 0, 0, 0, 0, -8, 10, 0, 0, 0, 0, 0, 2, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, -4, 4, 2, 2}, + { 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2, -5, -11, -5, 2}, + { 0, 0, 0, 0, 0, -3, 8, 0, 0, 0, 0, 0, 2, 0, 4, 2, 0}, + { 0, 0, 0, 0, 0, -5, 5, 0, 0, 0, 0, 0, 1, 4, 17, 9, -2}, + { 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0}, + + /* 561-570 */ + { 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 1, 0, -4, -2, 0}, + { 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 2, -8, 0, 0, 4}, + { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 4, -15, -8, -2}, + { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 370, -8, 0,-160}, + { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2, 0, 0, -3, 0}, + { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, 0, 6, -5, 0, 0, 0, 0, 2, -6, 3, 1, 3}, + { 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0}, + { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 2, -10, 0, 0, 4}, + + /* 571-580 */ + { 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 0, 2, 0, 9, 4, 0}, + { 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 2, 4, 17, 7, -2}, + { 0, 0, 0, 0, 0, -9, 11, 0, 0, 0, 0, 0, 2, 34, 0, 0, -15}, + { 0, 0, 0, 0, 0, -9, 11, 0, 0, 0, 0, 0, 1, 0, 5, 3, 0}, + { 0, 0, 0, 0, 0, 0, 4, 0,-4, 0, 0, 0, 2, -5, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 4, 0,-3, 0, 0, 0, 2, -37, -7, -3, 16}, + { 0, 0, 0, 0, 0, -6, 6, 0, 0, 0, 0, 0, 1, 3, 13, 7, -2}, + { 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0}, + { 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 1, 0, -3, -2, 0}, + { 0, 0, 0, 0, 0, 0, 4, 0,-2, 0, 0, 0, 2, -184, -3, -1, 80}, + + /* 581-590 */ + { 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 2, -3, 0, 0, 1}, + { 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, + { 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 1, 0, -10, -6, -1}, + { 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 2, 31, -6, 0, -13}, + { 0, 0, 0, 0, 0, 0, 4, 0,-1, 0, 0, 0, 2, -3, -32, -14, 1}, + { 0, 0, 0, 0, 0, 0, 4, 0, 0,-2, 0, 0, 2, -7, 0, 0, 3}, + { 0, 0, 0, 0, 0, 0, 5, -2, 0, 0, 0, 0, 2, 0, -8, -4, 0}, + { 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 3, -4, 0, 0}, + { 0, 0, 0, 0, 0, 8, -9, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0}, + { 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 2, 0, 3, 1, 0}, + + /* 591-600 */ + { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 2, 19, -23, -10, 2}, + { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -10}, + { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 3, 2, 0}, + { 0, 0, 0, 0, 0, -7, 7, 0, 0, 0, 0, 0, 1, 0, 9, 5, -1}, + { 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0}, + { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 1, 0, -7, -4, 0}, + { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 2, 8, -4, 0, -4}, + { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0}, + { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}, + { 0, 0, 0, 0, 0, 0, 5, 0,-4, 0, 0, 0, 2, -3, 0, 0, 1}, + + /* 601-610 */ + { 0, 0, 0, 0, 0, 0, 5, 0,-3, 0, 0, 0, 2, -9, 0, 1, 4}, + { 0, 0, 0, 0, 0, 0, 5, 0,-2, 0, 0, 0, 2, 3, 12, 5, -1}, + { 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 17, -3, -1, 0}, + { 0, 0, 0, 0, 0, -8, 8, 0, 0, 0, 0, 0, 1, 0, 7, 4, 0}, + { 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0}, + { 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 1, 0, -5, -3, 0}, + { 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 2, 14, -3, 0, -1}, + { 0, 0, 0, 0, 0, -9, 9, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0}, + { 0, 0, 0, 0, 0, -9, 9, 0, 0, 0, 0, 0, 1, 0, 0, 0, -5}, + { 0, 0, 0, 0, 0, -9, 9, 0, 0, 0, 0, 0, 1, 0, 5, 3, 0}, + + /* 611-620 */ + { 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0}, + { 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 0, 1, 0, -3, -2, 0}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 2, 9, 4, 3}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 4, 2, 0}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 6, 0, 0, -3}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 3, 1, 0}, + { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 5, 0, 0, -2}, + + /* 621-630 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, -1}, + { 1, 0,-2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 0}, + { 1, 0,-2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0}, + { 1, 0,-2, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 7, 0, 0, 0}, + { 1, 0,-2, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0}, + {-1, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 6, 0, 0, 0}, + {-1, 0, 2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -4, 0, 0}, + { 1, 0,-2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -4, 0, 0}, + {-2, 0, 2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 5, 0, 0, 0}, + + /* 631-640 */ + {-1, 0, 0, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, -3, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 4, 0, 0, 0}, + {-1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0}, + {-1, 0, 2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0}, + { 1,-1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}, + {-1, 0, 2, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, 13, 0, 0, 0}, + {-2, 0, 0, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, 21, 11, 0, 0}, + { 1, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -5, 0, 0}, + {-1, 1,-1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -5, -2, 0}, + { 1, 1,-1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, + + /* 641-650 */ + {-1, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -5, 0, 0}, + {-1, 0, 2, 1, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 2}, + { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 20, 10, 0, 0}, + {-1, 0, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -34, 0, 0, 0}, + {-1, 0, 2, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0}, + { 1, 0,-2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0, 3, 0, 0, -2}, + { 1, 2,-2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, + { 1, 2,-2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0, -6, 0, 0, 3}, + { 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0}, + { 1, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 3, 0, 0, 0}, + + /* 651-660 */ + { 0, 0,-2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0}, + { 0, 0,-2, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 4, 0, 0, 0}, + { 0, 2, 0, 2, 0, -2, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, + { 0, 2, 0, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0, 6, 0, 0, -3}, + { 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0, -8, 0, 0, 3}, + { 0, 2, 0, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, + { 0, 0, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 0}, + { 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -3, -2, 0}, + { 1, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 126, -63, -27, -55}, + {-1, 2, 0, 2, 0, 10, -3, 0, 0, 0, 0, 0, 0, -5, 0, 1, 2}, + + /* 661-670 */ + { 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -3, 28, 15, 2}, + { 1, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 5, 0, 1, -2}, + { 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, 9, 4, 1}, + { 0, 2, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, 9, 4, -1}, + {-1, 2, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, -126, -63, -27, 55}, + { 2, 2,-2, 2, 0, 0, -2, 0, 3, 0, 0, 0, 0, 3, 0, 0, -1}, + { 1, 2, 0, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0, 21, -11, -6, -11}, + { 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, + {-1, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -21, -11, -6, 11}, + {-2, 2, 2, 2, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 1}, + + /* 671-680 */ + { 0, 2, 0, 2, 0, 2, -3, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, + { 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0, 8, 0, 0, -4}, + { 0, 2, 0, 2, 0, 0, 1, 0,-1, 0, 0, 0, 0, -6, 0, 0, 3}, + { 0, 2, 0, 2, 0, 2, -2, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, + {-1, 2, 2, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0, 3, 0, 0, -1}, + { 1, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, + {-1, 2, 2, 2, 0, 0, 2, 0,-3, 0, 0, 0, 0, -5, 0, 0, 2}, + { 2, 2, 0, 2, 0, 0, 2, 0,-3, 0, 0, 0, 0, 24, -12, -5, -11}, + { 1, 2, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, 3, 1, 0}, + { 1, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, 3, 1, 0}, + + /* 681-687 */ + { 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0}, + { 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, -24, -12, -5, 10}, + { 2, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, -1, -2}, + {-1, 2, 2, 2, 0, 0, 2, 0,-2, 0, 0, 0, 0, 13, 0, 0, -6}, + {-1, 2, 2, 2, 0, 3, -3, 0, 0, 0, 0, 0, 0, 7, 0, 0, -3}, + { 1, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, + { 0, 2, 2, 2, 0, 0, 2, 0,-2, 0, 0, 0, 0, 3, 0, 0, -1} + }; + +/* Number of terms in the planetary nutation model */ + const int NPL = (int) (sizeof xpl / sizeof xpl[0]); + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental date J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* ------------------- */ +/* LUNI-SOLAR NUTATION */ +/* ------------------- */ + +/* Fundamental (Delaunay) arguments */ + +/* Mean anomaly of the Moon (IERS 2003). */ + el = iauFal03(t); + +/* Mean anomaly of the Sun (MHB2000). */ + elp = fmod(1287104.79305 + + t * (129596581.0481 + + t * (-0.5532 + + t * (0.000136 + + t * (-0.00001149)))), TURNAS) * DAS2R; + +/* Mean longitude of the Moon minus that of the ascending node */ +/* (IERS 2003). */ + f = iauFaf03(t); + +/* Mean elongation of the Moon from the Sun (MHB2000). */ + d = fmod(1072260.70369 + + t * (1602961601.2090 + + t * (-6.3706 + + t * (0.006593 + + t * (-0.00003169)))), TURNAS) * DAS2R; + +/* Mean longitude of the ascending node of the Moon (IERS 2003). */ + om = iauFaom03(t); + +/* Initialize the nutation values. */ + dp = 0.0; + de = 0.0; + +/* Summation of luni-solar nutation series (in reverse order). */ + for (i = NLS-1; i >= 0; i--) { + + /* Argument and functions. */ + arg = fmod((double)xls[i].nl * el + + (double)xls[i].nlp * elp + + (double)xls[i].nf * f + + (double)xls[i].nd * d + + (double)xls[i].nom * om, D2PI); + sarg = sin(arg); + carg = cos(arg); + + /* Term. */ + dp += (xls[i].sp + xls[i].spt * t) * sarg + xls[i].cp * carg; + de += (xls[i].ce + xls[i].cet * t) * carg + xls[i].se * sarg; + } + +/* Convert from 0.1 microarcsec units to radians. */ + dpsils = dp * U2R; + depsls = de * U2R; + +/* ------------------ */ +/* PLANETARY NUTATION */ +/* ------------------ */ + +/* n.b. The MHB2000 code computes the luni-solar and planetary nutation */ +/* in different functions, using slightly different Delaunay */ +/* arguments in the two cases. This behaviour is faithfully */ +/* reproduced here. Use of the IERS 2003 expressions for both */ +/* cases leads to negligible changes, well below */ +/* 0.1 microarcsecond. */ + +/* Mean anomaly of the Moon (MHB2000). */ + al = fmod(2.35555598 + 8328.6914269554 * t, D2PI); + +/* Mean longitude of the Moon minus that of the ascending node */ +/*(MHB2000). */ + af = fmod(1.627905234 + 8433.466158131 * t, D2PI); + +/* Mean elongation of the Moon from the Sun (MHB2000). */ + ad = fmod(5.198466741 + 7771.3771468121 * t, D2PI); + +/* Mean longitude of the ascending node of the Moon (MHB2000). */ + aom = fmod(2.18243920 - 33.757045 * t, D2PI); + +/* General accumulated precession in longitude (IERS 2003). */ + apa = iauFapa03(t); + +/* Planetary longitudes, Mercury through Uranus (IERS 2003). */ + alme = iauFame03(t); + alve = iauFave03(t); + alea = iauFae03(t); + alma = iauFama03(t); + alju = iauFaju03(t); + alsa = iauFasa03(t); + alur = iauFaur03(t); + +/* Neptune longitude (MHB2000). */ + alne = fmod(5.321159000 + 3.8127774000 * t, D2PI); + +/* Initialize the nutation values. */ + dp = 0.0; + de = 0.0; + +/* Summation of planetary nutation series (in reverse order). */ + for (i = NPL-1; i >= 0; i--) { + + /* Argument and functions. */ + arg = fmod((double)xpl[i].nl * al + + (double)xpl[i].nf * af + + (double)xpl[i].nd * ad + + (double)xpl[i].nom * aom + + (double)xpl[i].nme * alme + + (double)xpl[i].nve * alve + + (double)xpl[i].nea * alea + + (double)xpl[i].nma * alma + + (double)xpl[i].nju * alju + + (double)xpl[i].nsa * alsa + + (double)xpl[i].nur * alur + + (double)xpl[i].nne * alne + + (double)xpl[i].npa * apa, D2PI); + sarg = sin(arg); + carg = cos(arg); + + /* Term. */ + dp += (double)xpl[i].sp * sarg + (double)xpl[i].cp * carg; + de += (double)xpl[i].se * sarg + (double)xpl[i].ce * carg; + + } + +/* Convert from 0.1 microarcsec units to radians. */ + dpsipl = dp * U2R; + depspl = de * U2R; + +/* ------- */ +/* RESULTS */ +/* ------- */ + +/* Add luni-solar and planetary components. */ + *dpsi = dpsils + dpsipl; + *deps = depsls + depspl; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/nut00b.c b/deps/sofa/20231011/c/src/nut00b.c new file mode 100644 index 0000000..5a0a8e3 --- /dev/null +++ b/deps/sofa/20231011/c/src/nut00b.c @@ -0,0 +1,423 @@ +#include "sofa.h" +#include "sofam.h" + +void iauNut00b(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - - +** i a u N u t 0 0 b +** - - - - - - - - - - +** +** Nutation, IAU 2000B model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the equinox and ecliptic of date. The +** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) +** value of 84381.448 arcsec. (The errors that result from using +** this function with the IAU 2006 value of 84381.406 arcsec can be +** neglected.) +** +** The nutation model consists only of luni-solar terms, but +** includes also a fixed offset which compensates for certain long- +** period planetary terms (Note 7). +** +** 3) This function is an implementation of the IAU 2000B abridged +** nutation model formally adopted by the IAU General Assembly in +** 2000. The function computes the MHB_2000_SHORT luni-solar +** nutation series (Luzum 2001), but without the associated +** corrections for the precession rate adjustments and the offset +** between the GCRS and J2000.0 mean poles. +** +** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400 +** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only +** 77 terms, plus additional simplifications, yet still delivers +** results of 1 mas accuracy at present epochs. This combination of +** accuracy and size makes the IAU 2000B abridged nutation model +** suitable for most practical applications. +** +** The function delivers a pole accurate to 1 mas from 1900 to 2100 +** (usually better than 1 mas, very occasionally just outside +** 1 mas). The full IAU 2000A model, which is implemented in the +** function iauNut00a (q.v.), delivers considerably greater accuracy +** at current dates; however, to realize this improved accuracy, +** corrections for the essentially unpredictable free-core-nutation +** (FCN) must also be included. +** +** 5) The present function provides classical nutation. The +** MHB_2000_SHORT algorithm, from which it is adapted, deals also +** with (i) the offsets between the GCRS and mean poles and (ii) the +** adjustments in longitude and obliquity due to the changed +** precession rates. These additional functions, namely frame bias +** and precession adjustments, are supported by the SOFA functions +** iauBi00 and iauPr00. +** +** 6) The MHB_2000_SHORT algorithm also provides "total" nutations, +** comprising the arithmetic sum of the frame bias, precession +** adjustments, and nutation (luni-solar + planetary). These total +** nutations can be used in combination with an existing IAU 1976 +** precession implementation, such as iauPmat76, to deliver GCRS- +** to-true predictions of mas accuracy at current epochs. However, +** for symmetry with the iauNut00a function (q.v. for the reasons), +** the SOFA functions do not generate the "total nutations" +** directly. Should they be required, they could of course easily +** be generated by calling iauBi00, iauPr00 and the present function +** and adding the results. +** +** 7) The IAU 2000B model includes "planetary bias" terms that are +** fixed in size but compensate for long-period nutations. The +** amplitudes quoted in McCarthy & Luzum (2003), namely +** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for +** the "total nutations" method described in Note 6. The Luzum +** (2001) values used in this SOFA implementation, namely -0.135 mas +** and +0.388 mas, are optimized for the "rigorous" method, where +** frame bias, precession and nutation are applied separately and in +** that order. During the interval 1995-2050, the SOFA +** implementation delivers a maximum error of 1.001 mas (not +** including FCN). +** +** References: +** +** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions +** for the precession quantities based upon the IAU /1976/ system of +** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977) +** +** Luzum, B., private communication, 2001 (Fortran code +** MHB_2000_SHORT) +** +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. +** 85, 37-49 (2003) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, el, elp, f, d, om, arg, dp, de, sarg, carg, + dpsils, depsls, dpsipl, depspl; + int i; + +/* Units of 0.1 microarcsecond to radians */ + static const double U2R = DAS2R / 1e7; + +/* ---------------------------------------- */ +/* Fixed offsets in lieu of planetary terms */ +/* ---------------------------------------- */ + + static const double DPPLAN = -0.135 * DMAS2R; + static const double DEPLAN = 0.388 * DMAS2R; + +/* --------------------------------------------------- */ +/* Luni-solar nutation: argument and term coefficients */ +/* --------------------------------------------------- */ + +/* The units for the sine and cosine coefficients are */ +/* 0.1 microarcsec and the same per Julian century */ + + static const struct { + int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */ + double ps,pst,pc; /* longitude sin, t*sin, cos coefficients */ + double ec,ect,es; /* obliquity cos, t*cos, sin coefficients */ + + } x[] = { + + /* 1-10 */ + { 0, 0, 0, 0,1, + -172064161.0, -174666.0, 33386.0, 92052331.0, 9086.0, 15377.0}, + { 0, 0, 2,-2,2, + -13170906.0, -1675.0, -13696.0, 5730336.0, -3015.0, -4587.0}, + { 0, 0, 2, 0,2,-2276413.0,-234.0, 2796.0, 978459.0,-485.0,1374.0}, + { 0, 0, 0, 0,2,2074554.0, 207.0, -698.0,-897492.0, 470.0,-291.0}, + { 0, 1, 0, 0,0,1475877.0,-3633.0,11817.0, 73871.0,-184.0,-1924.0}, + { 0, 1, 2,-2,2,-516821.0, 1226.0, -524.0, 224386.0,-677.0,-174.0}, + { 1, 0, 0, 0,0, 711159.0, 73.0, -872.0, -6750.0, 0.0, 358.0}, + { 0, 0, 2, 0,1,-387298.0, -367.0, 380.0, 200728.0, 18.0, 318.0}, + { 1, 0, 2, 0,2,-301461.0, -36.0, 816.0, 129025.0, -63.0, 367.0}, + { 0,-1, 2,-2,2, 215829.0, -494.0, 111.0, -95929.0, 299.0, 132.0}, + + /* 11-20 */ + { 0, 0, 2,-2,1, 128227.0, 137.0, 181.0, -68982.0, -9.0, 39.0}, + {-1, 0, 2, 0,2, 123457.0, 11.0, 19.0, -53311.0, 32.0, -4.0}, + {-1, 0, 0, 2,0, 156994.0, 10.0, -168.0, -1235.0, 0.0, 82.0}, + { 1, 0, 0, 0,1, 63110.0, 63.0, 27.0, -33228.0, 0.0, -9.0}, + {-1, 0, 0, 0,1, -57976.0, -63.0, -189.0, 31429.0, 0.0, -75.0}, + {-1, 0, 2, 2,2, -59641.0, -11.0, 149.0, 25543.0, -11.0, 66.0}, + { 1, 0, 2, 0,1, -51613.0, -42.0, 129.0, 26366.0, 0.0, 78.0}, + {-2, 0, 2, 0,1, 45893.0, 50.0, 31.0, -24236.0, -10.0, 20.0}, + { 0, 0, 0, 2,0, 63384.0, 11.0, -150.0, -1220.0, 0.0, 29.0}, + { 0, 0, 2, 2,2, -38571.0, -1.0, 158.0, 16452.0, -11.0, 68.0}, + + /* 21-30 */ + { 0,-2, 2,-2,2, 32481.0, 0.0, 0.0, -13870.0, 0.0, 0.0}, + {-2, 0, 0, 2,0, -47722.0, 0.0, -18.0, 477.0, 0.0, -25.0}, + { 2, 0, 2, 0,2, -31046.0, -1.0, 131.0, 13238.0, -11.0, 59.0}, + { 1, 0, 2,-2,2, 28593.0, 0.0, -1.0, -12338.0, 10.0, -3.0}, + {-1, 0, 2, 0,1, 20441.0, 21.0, 10.0, -10758.0, 0.0, -3.0}, + { 2, 0, 0, 0,0, 29243.0, 0.0, -74.0, -609.0, 0.0, 13.0}, + { 0, 0, 2, 0,0, 25887.0, 0.0, -66.0, -550.0, 0.0, 11.0}, + { 0, 1, 0, 0,1, -14053.0, -25.0, 79.0, 8551.0, -2.0, -45.0}, + {-1, 0, 0, 2,1, 15164.0, 10.0, 11.0, -8001.0, 0.0, -1.0}, + { 0, 2, 2,-2,2, -15794.0, 72.0, -16.0, 6850.0, -42.0, -5.0}, + + /* 31-40 */ + { 0, 0,-2, 2,0, 21783.0, 0.0, 13.0, -167.0, 0.0, 13.0}, + { 1, 0, 0,-2,1, -12873.0, -10.0, -37.0, 6953.0, 0.0, -14.0}, + { 0,-1, 0, 0,1, -12654.0, 11.0, 63.0, 6415.0, 0.0, 26.0}, + {-1, 0, 2, 2,1, -10204.0, 0.0, 25.0, 5222.0, 0.0, 15.0}, + { 0, 2, 0, 0,0, 16707.0, -85.0, -10.0, 168.0, -1.0, 10.0}, + { 1, 0, 2, 2,2, -7691.0, 0.0, 44.0, 3268.0, 0.0, 19.0}, + {-2, 0, 2, 0,0, -11024.0, 0.0, -14.0, 104.0, 0.0, 2.0}, + { 0, 1, 2, 0,2, 7566.0, -21.0, -11.0, -3250.0, 0.0, -5.0}, + { 0, 0, 2, 2,1, -6637.0, -11.0, 25.0, 3353.0, 0.0, 14.0}, + { 0,-1, 2, 0,2, -7141.0, 21.0, 8.0, 3070.0, 0.0, 4.0}, + + /* 41-50 */ + { 0, 0, 0, 2,1, -6302.0, -11.0, 2.0, 3272.0, 0.0, 4.0}, + { 1, 0, 2,-2,1, 5800.0, 10.0, 2.0, -3045.0, 0.0, -1.0}, + { 2, 0, 2,-2,2, 6443.0, 0.0, -7.0, -2768.0, 0.0, -4.0}, + {-2, 0, 0, 2,1, -5774.0, -11.0, -15.0, 3041.0, 0.0, -5.0}, + { 2, 0, 2, 0,1, -5350.0, 0.0, 21.0, 2695.0, 0.0, 12.0}, + { 0,-1, 2,-2,1, -4752.0, -11.0, -3.0, 2719.0, 0.0, -3.0}, + { 0, 0, 0,-2,1, -4940.0, -11.0, -21.0, 2720.0, 0.0, -9.0}, + {-1,-1, 0, 2,0, 7350.0, 0.0, -8.0, -51.0, 0.0, 4.0}, + { 2, 0, 0,-2,1, 4065.0, 0.0, 6.0, -2206.0, 0.0, 1.0}, + { 1, 0, 0, 2,0, 6579.0, 0.0, -24.0, -199.0, 0.0, 2.0}, + + /* 51-60 */ + { 0, 1, 2,-2,1, 3579.0, 0.0, 5.0, -1900.0, 0.0, 1.0}, + { 1,-1, 0, 0,0, 4725.0, 0.0, -6.0, -41.0, 0.0, 3.0}, + {-2, 0, 2, 0,2, -3075.0, 0.0, -2.0, 1313.0, 0.0, -1.0}, + { 3, 0, 2, 0,2, -2904.0, 0.0, 15.0, 1233.0, 0.0, 7.0}, + { 0,-1, 0, 2,0, 4348.0, 0.0, -10.0, -81.0, 0.0, 2.0}, + { 1,-1, 2, 0,2, -2878.0, 0.0, 8.0, 1232.0, 0.0, 4.0}, + { 0, 0, 0, 1,0, -4230.0, 0.0, 5.0, -20.0, 0.0, -2.0}, + {-1,-1, 2, 2,2, -2819.0, 0.0, 7.0, 1207.0, 0.0, 3.0}, + {-1, 0, 2, 0,0, -4056.0, 0.0, 5.0, 40.0, 0.0, -2.0}, + { 0,-1, 2, 2,2, -2647.0, 0.0, 11.0, 1129.0, 0.0, 5.0}, + + /* 61-70 */ + {-2, 0, 0, 0,1, -2294.0, 0.0, -10.0, 1266.0, 0.0, -4.0}, + { 1, 1, 2, 0,2, 2481.0, 0.0, -7.0, -1062.0, 0.0, -3.0}, + { 2, 0, 0, 0,1, 2179.0, 0.0, -2.0, -1129.0, 0.0, -2.0}, + {-1, 1, 0, 1,0, 3276.0, 0.0, 1.0, -9.0, 0.0, 0.0}, + { 1, 1, 0, 0,0, -3389.0, 0.0, 5.0, 35.0, 0.0, -2.0}, + { 1, 0, 2, 0,0, 3339.0, 0.0, -13.0, -107.0, 0.0, 1.0}, + {-1, 0, 2,-2,1, -1987.0, 0.0, -6.0, 1073.0, 0.0, -2.0}, + { 1, 0, 0, 0,2, -1981.0, 0.0, 0.0, 854.0, 0.0, 0.0}, + {-1, 0, 0, 1,0, 4026.0, 0.0, -353.0, -553.0, 0.0,-139.0}, + { 0, 0, 2, 1,2, 1660.0, 0.0, -5.0, -710.0, 0.0, -2.0}, + + /* 71-77 */ + {-1, 0, 2, 4,2, -1521.0, 0.0, 9.0, 647.0, 0.0, 4.0}, + {-1, 1, 0, 1,1, 1314.0, 0.0, 0.0, -700.0, 0.0, 0.0}, + { 0,-2, 2,-2,1, -1283.0, 0.0, 0.0, 672.0, 0.0, 0.0}, + { 1, 0, 2, 2,1, -1331.0, 0.0, 8.0, 663.0, 0.0, 4.0}, + {-2, 0, 2, 2,2, 1383.0, 0.0, -2.0, -594.0, 0.0, -2.0}, + {-1, 0, 0, 0,2, 1405.0, 0.0, 4.0, -610.0, 0.0, 2.0}, + { 1, 1, 2,-2,2, 1290.0, 0.0, 0.0, -556.0, 0.0, 0.0} + }; + +/* Number of terms in the series */ + const int NLS = (int) (sizeof x / sizeof x[0]); + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental epoch J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* --------------------*/ +/* LUNI-SOLAR NUTATION */ +/* --------------------*/ + +/* Fundamental (Delaunay) arguments from Simon et al. (1994) */ + +/* Mean anomaly of the Moon. */ + el = fmod(485868.249036 + (1717915923.2178) * t, TURNAS) * DAS2R; + +/* Mean anomaly of the Sun. */ + elp = fmod(1287104.79305 + (129596581.0481) * t, TURNAS) * DAS2R; + +/* Mean argument of the latitude of the Moon. */ + f = fmod(335779.526232 + (1739527262.8478) * t, TURNAS) * DAS2R; + +/* Mean elongation of the Moon from the Sun. */ + d = fmod(1072260.70369 + (1602961601.2090) * t, TURNAS) * DAS2R; + +/* Mean longitude of the ascending node of the Moon. */ + om = fmod(450160.398036 + (-6962890.5431) * t, TURNAS) * DAS2R; + +/* Initialize the nutation values. */ + dp = 0.0; + de = 0.0; + +/* Summation of luni-solar nutation series (smallest terms first). */ + for (i = NLS-1; i >= 0; i--) { + + /* Argument and functions. */ + arg = fmod( (double)x[i].nl * el + + (double)x[i].nlp * elp + + (double)x[i].nf * f + + (double)x[i].nd * d + + (double)x[i].nom * om, D2PI ); + sarg = sin(arg); + carg = cos(arg); + + /* Term. */ + dp += (x[i].ps + x[i].pst * t) * sarg + x[i].pc * carg; + de += (x[i].ec + x[i].ect * t) * carg + x[i].es * sarg; + } + +/* Convert from 0.1 microarcsec units to radians. */ + dpsils = dp * U2R; + depsls = de * U2R; + +/* ------------------------------*/ +/* IN LIEU OF PLANETARY NUTATION */ +/* ------------------------------*/ + +/* Fixed offset to correct for missing terms in truncated series. */ + dpsipl = DPPLAN; + depspl = DEPLAN; + +/* --------*/ +/* RESULTS */ +/* --------*/ + +/* Add luni-solar and planetary components. */ + *dpsi = dpsils + dpsipl; + *deps = depsls + depspl; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/nut06a.c b/deps/sofa/20231011/c/src/nut06a.c new file mode 100644 index 0000000..948f975 --- /dev/null +++ b/deps/sofa/20231011/c/src/nut06a.c @@ -0,0 +1,201 @@ +#include "sofa.h" +#include "sofam.h" + +void iauNut06a(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - - +** i a u N u t 0 6 a +** - - - - - - - - - - +** +** IAU 2000A nutation with adjustments to match the IAU 2006 +** precession. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** +** Status: canonical model. +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the mean equinox and ecliptic of date, +** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. +** 2005). +** +** 3) The function first computes the IAU 2000A nutation, then applies +** adjustments for (i) the consequences of the change in obliquity +** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the +** secular variation in the Earth's dynamical form factor J2. +** +** 4) The present function provides classical nutation, complementing +** the IAU 2000 frame bias and IAU 2006 precession. It delivers a +** pole which is at current epochs accurate to a few tens of +** microarcseconds, apart from the free core nutation. +** +** Called: +** iauNut00a nutation, IAU 2000A +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, +** Astron.Astrophys. 387, 700 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. +** 107, B4. The MHB_2000 code itself was obtained on 9th September +** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, fj2, dp, de; + + +/* Interval between fundamental date J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Factor correcting for secular variation of J2. */ + fj2 = -2.7774e-6 * t; + +/* Obtain IAU 2000A nutation. */ + iauNut00a(date1, date2, &dp, &de); + +/* Apply P03 adjustments (Wallace & Capitaine, 2006, Eqs.5). */ + *dpsi = dp + dp * (0.4697e-6 + fj2); + *deps = de + de * fj2; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/nut80.c b/deps/sofa/20231011/c/src/nut80.c new file mode 100644 index 0000000..d839d2f --- /dev/null +++ b/deps/sofa/20231011/c/src/nut80.c @@ -0,0 +1,376 @@ +#include "sofa.h" +#include "sofam.h" + +void iauNut80(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - +** i a u N u t 8 0 +** - - - - - - - - - +** +** Nutation, IAU 1980 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi double nutation in longitude (radians) +** deps double nutation in obliquity (radians) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components are with respect to the ecliptic of +** date. +** +** Called: +** iauAnpm normalize angle into range +/- pi +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222 (p111). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, el, elp, f, d, om, dp, de, arg, s, c; + int j; + +/* Units of 0.1 milliarcsecond to radians */ + const double U2R = DAS2R / 1e4; + +/* ------------------------------------------------ */ +/* Table of multiples of arguments and coefficients */ +/* ------------------------------------------------ */ + +/* The units for the sine and cosine coefficients are 0.1 mas and */ +/* the same per Julian century */ + + static const struct { + int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */ + double sp,spt; /* longitude sine, 1 and t coefficients */ + double ce,cet; /* obliquity cosine, 1 and t coefficients */ + } x[] = { + + /* 1-10 */ + { 0, 0, 0, 0, 1, -171996.0, -174.2, 92025.0, 8.9 }, + { 0, 0, 0, 0, 2, 2062.0, 0.2, -895.0, 0.5 }, + { -2, 0, 2, 0, 1, 46.0, 0.0, -24.0, 0.0 }, + { 2, 0, -2, 0, 0, 11.0, 0.0, 0.0, 0.0 }, + { -2, 0, 2, 0, 2, -3.0, 0.0, 1.0, 0.0 }, + { 1, -1, 0, -1, 0, -3.0, 0.0, 0.0, 0.0 }, + { 0, -2, 2, -2, 1, -2.0, 0.0, 1.0, 0.0 }, + { 2, 0, -2, 0, 1, 1.0, 0.0, 0.0, 0.0 }, + { 0, 0, 2, -2, 2, -13187.0, -1.6, 5736.0, -3.1 }, + { 0, 1, 0, 0, 0, 1426.0, -3.4, 54.0, -0.1 }, + + /* 11-20 */ + { 0, 1, 2, -2, 2, -517.0, 1.2, 224.0, -0.6 }, + { 0, -1, 2, -2, 2, 217.0, -0.5, -95.0, 0.3 }, + { 0, 0, 2, -2, 1, 129.0, 0.1, -70.0, 0.0 }, + { 2, 0, 0, -2, 0, 48.0, 0.0, 1.0, 0.0 }, + { 0, 0, 2, -2, 0, -22.0, 0.0, 0.0, 0.0 }, + { 0, 2, 0, 0, 0, 17.0, -0.1, 0.0, 0.0 }, + { 0, 1, 0, 0, 1, -15.0, 0.0, 9.0, 0.0 }, + { 0, 2, 2, -2, 2, -16.0, 0.1, 7.0, 0.0 }, + { 0, -1, 0, 0, 1, -12.0, 0.0, 6.0, 0.0 }, + { -2, 0, 0, 2, 1, -6.0, 0.0, 3.0, 0.0 }, + + /* 21-30 */ + { 0, -1, 2, -2, 1, -5.0, 0.0, 3.0, 0.0 }, + { 2, 0, 0, -2, 1, 4.0, 0.0, -2.0, 0.0 }, + { 0, 1, 2, -2, 1, 4.0, 0.0, -2.0, 0.0 }, + { 1, 0, 0, -1, 0, -4.0, 0.0, 0.0, 0.0 }, + { 2, 1, 0, -2, 0, 1.0, 0.0, 0.0, 0.0 }, + { 0, 0, -2, 2, 1, 1.0, 0.0, 0.0, 0.0 }, + { 0, 1, -2, 2, 0, -1.0, 0.0, 0.0, 0.0 }, + { 0, 1, 0, 0, 2, 1.0, 0.0, 0.0, 0.0 }, + { -1, 0, 0, 1, 1, 1.0, 0.0, 0.0, 0.0 }, + { 0, 1, 2, -2, 0, -1.0, 0.0, 0.0, 0.0 }, + + /* 31-40 */ + { 0, 0, 2, 0, 2, -2274.0, -0.2, 977.0, -0.5 }, + { 1, 0, 0, 0, 0, 712.0, 0.1, -7.0, 0.0 }, + { 0, 0, 2, 0, 1, -386.0, -0.4, 200.0, 0.0 }, + { 1, 0, 2, 0, 2, -301.0, 0.0, 129.0, -0.1 }, + { 1, 0, 0, -2, 0, -158.0, 0.0, -1.0, 0.0 }, + { -1, 0, 2, 0, 2, 123.0, 0.0, -53.0, 0.0 }, + { 0, 0, 0, 2, 0, 63.0, 0.0, -2.0, 0.0 }, + { 1, 0, 0, 0, 1, 63.0, 0.1, -33.0, 0.0 }, + { -1, 0, 0, 0, 1, -58.0, -0.1, 32.0, 0.0 }, + { -1, 0, 2, 2, 2, -59.0, 0.0, 26.0, 0.0 }, + + /* 41-50 */ + { 1, 0, 2, 0, 1, -51.0, 0.0, 27.0, 0.0 }, + { 0, 0, 2, 2, 2, -38.0, 0.0, 16.0, 0.0 }, + { 2, 0, 0, 0, 0, 29.0, 0.0, -1.0, 0.0 }, + { 1, 0, 2, -2, 2, 29.0, 0.0, -12.0, 0.0 }, + { 2, 0, 2, 0, 2, -31.0, 0.0, 13.0, 0.0 }, + { 0, 0, 2, 0, 0, 26.0, 0.0, -1.0, 0.0 }, + { -1, 0, 2, 0, 1, 21.0, 0.0, -10.0, 0.0 }, + { -1, 0, 0, 2, 1, 16.0, 0.0, -8.0, 0.0 }, + { 1, 0, 0, -2, 1, -13.0, 0.0, 7.0, 0.0 }, + { -1, 0, 2, 2, 1, -10.0, 0.0, 5.0, 0.0 }, + + /* 51-60 */ + { 1, 1, 0, -2, 0, -7.0, 0.0, 0.0, 0.0 }, + { 0, 1, 2, 0, 2, 7.0, 0.0, -3.0, 0.0 }, + { 0, -1, 2, 0, 2, -7.0, 0.0, 3.0, 0.0 }, + { 1, 0, 2, 2, 2, -8.0, 0.0, 3.0, 0.0 }, + { 1, 0, 0, 2, 0, 6.0, 0.0, 0.0, 0.0 }, + { 2, 0, 2, -2, 2, 6.0, 0.0, -3.0, 0.0 }, + { 0, 0, 0, 2, 1, -6.0, 0.0, 3.0, 0.0 }, + { 0, 0, 2, 2, 1, -7.0, 0.0, 3.0, 0.0 }, + { 1, 0, 2, -2, 1, 6.0, 0.0, -3.0, 0.0 }, + { 0, 0, 0, -2, 1, -5.0, 0.0, 3.0, 0.0 }, + + /* 61-70 */ + { 1, -1, 0, 0, 0, 5.0, 0.0, 0.0, 0.0 }, + { 2, 0, 2, 0, 1, -5.0, 0.0, 3.0, 0.0 }, + { 0, 1, 0, -2, 0, -4.0, 0.0, 0.0, 0.0 }, + { 1, 0, -2, 0, 0, 4.0, 0.0, 0.0, 0.0 }, + { 0, 0, 0, 1, 0, -4.0, 0.0, 0.0, 0.0 }, + { 1, 1, 0, 0, 0, -3.0, 0.0, 0.0, 0.0 }, + { 1, 0, 2, 0, 0, 3.0, 0.0, 0.0, 0.0 }, + { 1, -1, 2, 0, 2, -3.0, 0.0, 1.0, 0.0 }, + { -1, -1, 2, 2, 2, -3.0, 0.0, 1.0, 0.0 }, + { -2, 0, 0, 0, 1, -2.0, 0.0, 1.0, 0.0 }, + + /* 71-80 */ + { 3, 0, 2, 0, 2, -3.0, 0.0, 1.0, 0.0 }, + { 0, -1, 2, 2, 2, -3.0, 0.0, 1.0, 0.0 }, + { 1, 1, 2, 0, 2, 2.0, 0.0, -1.0, 0.0 }, + { -1, 0, 2, -2, 1, -2.0, 0.0, 1.0, 0.0 }, + { 2, 0, 0, 0, 1, 2.0, 0.0, -1.0, 0.0 }, + { 1, 0, 0, 0, 2, -2.0, 0.0, 1.0, 0.0 }, + { 3, 0, 0, 0, 0, 2.0, 0.0, 0.0, 0.0 }, + { 0, 0, 2, 1, 2, 2.0, 0.0, -1.0, 0.0 }, + { -1, 0, 0, 0, 2, 1.0, 0.0, -1.0, 0.0 }, + { 1, 0, 0, -4, 0, -1.0, 0.0, 0.0, 0.0 }, + + /* 81-90 */ + { -2, 0, 2, 2, 2, 1.0, 0.0, -1.0, 0.0 }, + { -1, 0, 2, 4, 2, -2.0, 0.0, 1.0, 0.0 }, + { 2, 0, 0, -4, 0, -1.0, 0.0, 0.0, 0.0 }, + { 1, 1, 2, -2, 2, 1.0, 0.0, -1.0, 0.0 }, + { 1, 0, 2, 2, 1, -1.0, 0.0, 1.0, 0.0 }, + { -2, 0, 2, 4, 2, -1.0, 0.0, 1.0, 0.0 }, + { -1, 0, 4, 0, 2, 1.0, 0.0, 0.0, 0.0 }, + { 1, -1, 0, -2, 0, 1.0, 0.0, 0.0, 0.0 }, + { 2, 0, 2, -2, 1, 1.0, 0.0, -1.0, 0.0 }, + { 2, 0, 2, 2, 2, -1.0, 0.0, 0.0, 0.0 }, + + /* 91-100 */ + { 1, 0, 0, 2, 1, -1.0, 0.0, 0.0, 0.0 }, + { 0, 0, 4, -2, 2, 1.0, 0.0, 0.0, 0.0 }, + { 3, 0, 2, -2, 2, 1.0, 0.0, 0.0, 0.0 }, + { 1, 0, 2, -2, 0, -1.0, 0.0, 0.0, 0.0 }, + { 0, 1, 2, 0, 1, 1.0, 0.0, 0.0, 0.0 }, + { -1, -1, 0, 2, 1, 1.0, 0.0, 0.0, 0.0 }, + { 0, 0, -2, 0, 1, -1.0, 0.0, 0.0, 0.0 }, + { 0, 0, 2, -1, 2, -1.0, 0.0, 0.0, 0.0 }, + { 0, 1, 0, 2, 0, -1.0, 0.0, 0.0, 0.0 }, + { 1, 0, -2, -2, 0, -1.0, 0.0, 0.0, 0.0 }, + + /* 101-106 */ + { 0, -1, 2, 0, 1, -1.0, 0.0, 0.0, 0.0 }, + { 1, 1, 0, -2, 1, -1.0, 0.0, 0.0, 0.0 }, + { 1, 0, -2, 2, 0, -1.0, 0.0, 0.0, 0.0 }, + { 2, 0, 0, 2, 0, 1.0, 0.0, 0.0, 0.0 }, + { 0, 0, 2, 4, 2, -1.0, 0.0, 0.0, 0.0 }, + { 0, 1, 0, 1, 0, 1.0, 0.0, 0.0, 0.0 } + }; + +/* Number of terms in the series */ + const int NT = (int) (sizeof x / sizeof x[0]); + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental epoch J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* --------------------- */ +/* Fundamental arguments */ +/* --------------------- */ + +/* Mean longitude of Moon minus mean longitude of Moon's perigee. */ + el = iauAnpm( + (485866.733 + (715922.633 + (31.310 + 0.064 * t) * t) * t) + * DAS2R + fmod(1325.0 * t, 1.0) * D2PI); + +/* Mean longitude of Sun minus mean longitude of Sun's perigee. */ + elp = iauAnpm( + (1287099.804 + (1292581.224 + (-0.577 - 0.012 * t) * t) * t) + * DAS2R + fmod(99.0 * t, 1.0) * D2PI); + +/* Mean longitude of Moon minus mean longitude of Moon's node. */ + f = iauAnpm( + (335778.877 + (295263.137 + (-13.257 + 0.011 * t) * t) * t) + * DAS2R + fmod(1342.0 * t, 1.0) * D2PI); + +/* Mean elongation of Moon from Sun. */ + d = iauAnpm( + (1072261.307 + (1105601.328 + (-6.891 + 0.019 * t) * t) * t) + * DAS2R + fmod(1236.0 * t, 1.0) * D2PI); + +/* Longitude of the mean ascending node of the lunar orbit on the */ +/* ecliptic, measured from the mean equinox of date. */ + om = iauAnpm( + (450160.280 + (-482890.539 + (7.455 + 0.008 * t) * t) * t) + * DAS2R + fmod(-5.0 * t, 1.0) * D2PI); + +/* --------------- */ +/* Nutation series */ +/* --------------- */ + +/* Initialize nutation components. */ + dp = 0.0; + de = 0.0; + +/* Sum the nutation terms, ending with the biggest. */ + for (j = NT-1; j >= 0; j--) { + + /* Form argument for current term. */ + arg = (double)x[j].nl * el + + (double)x[j].nlp * elp + + (double)x[j].nf * f + + (double)x[j].nd * d + + (double)x[j].nom * om; + + /* Accumulate current nutation term. */ + s = x[j].sp + x[j].spt * t; + c = x[j].ce + x[j].cet * t; + if (s != 0.0) dp += s * sin(arg); + if (c != 0.0) de += c * cos(arg); + } + +/* Convert results from 0.1 mas units to radians. */ + *dpsi = dp * U2R; + *deps = de * U2R; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/nutm80.c b/deps/sofa/20231011/c/src/nutm80.c new file mode 100644 index 0000000..2a2e92b --- /dev/null +++ b/deps/sofa/20231011/c/src/nutm80.c @@ -0,0 +1,167 @@ +#include "sofa.h" + +void iauNutm80(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u t m 8 0 +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 1980 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TDB date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), +** where the p-vector V(true) is with respect to the true +** equatorial triad of date and the p-vector V(mean) is with +** respect to the mean equatorial triad of date. +** +** Called: +** iauNut80 nutation, IAU 1980 +** iauObl80 mean obliquity, IAU 1980 +** iauNumat form nutation matrix +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsi, deps, epsa; + + +/* Nutation components and mean obliquity. */ + iauNut80(date1, date2, &dpsi, &deps); + epsa = iauObl80(date1, date2); + +/* Build the rotation matrix. */ + iauNumat(epsa, dpsi, deps, rmatn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/obl06.c b/deps/sofa/20231011/c/src/obl06.c new file mode 100644 index 0000000..5cf2ea1 --- /dev/null +++ b/deps/sofa/20231011/c/src/obl06.c @@ -0,0 +1,171 @@ +#include "sofa.h" +#include "sofam.h" + +double iauObl06(double date1, double date2) +/* +** - - - - - - - - - +** i a u O b l 0 6 +** - - - - - - - - - +** +** Mean obliquity of the ecliptic, IAU 2006 precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double obliquity of the ecliptic (radians, Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result is the angle between the ecliptic and mean equator of +** date date1+date2. +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, eps0; + + +/* Interval between fundamental date J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Mean obliquity. */ + eps0 = (84381.406 + + (-46.836769 + + ( -0.0001831 + + ( 0.00200340 + + ( -0.000000576 + + ( -0.0000000434) * t) * t) * t) * t) * t) * DAS2R; + + return eps0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/obl80.c b/deps/sofa/20231011/c/src/obl80.c new file mode 100644 index 0000000..35890fa --- /dev/null +++ b/deps/sofa/20231011/c/src/obl80.c @@ -0,0 +1,171 @@ +#include "sofa.h" +#include "sofam.h" + +double iauObl80(double date1, double date2) +/* +** - - - - - - - - - +** i a u O b l 8 0 +** - - - - - - - - - +** +** Mean obliquity of the ecliptic, IAU 1980 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double obliquity of the ecliptic (radians, Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result is the angle between the ecliptic and mean equator of +** date date1+date2. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Expression 3.222-1 (p114). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, eps0; + + +/* Interval between fundamental epoch J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Mean obliquity of date. */ + eps0 = DAS2R * (84381.448 + + (-46.8150 + + (-0.00059 + + ( 0.001813) * t) * t) * t); + + return eps0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/p06e.c b/deps/sofa/20231011/c/src/p06e.c new file mode 100644 index 0000000..b24929a --- /dev/null +++ b/deps/sofa/20231011/c/src/p06e.c @@ -0,0 +1,379 @@ +#include "sofa.h" +#include "sofam.h" + +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) +/* +** - - - - - - - - +** i a u P 0 6 e +** - - - - - - - - +** +** Precession angles, IAU 2006, equinox based. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical models. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (see Note 2): +** eps0 double epsilon_0 +** psia double psi_A +** oma double omega_A +** bpa double P_A +** bqa double Q_A +** pia double pi_A +** bpia double Pi_A +** epsa double obliquity epsilon_A +** chia double chi_A +** za double z_A +** zetaa double zeta_A +** thetaa double theta_A +** pa double p_A +** gam double F-W angle gamma_J2000 +** phi double F-W angle phi_J2000 +** psi double F-W angle psi_J2000 +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) This function returns the set of equinox based angles for the +** Capitaine et al. "P03" precession theory, adopted by the IAU in +** 2006. The angles are set out in Table 1 of Hilton et al. (2006): +** +** eps0 epsilon_0 obliquity at J2000.0 +** psia psi_A luni-solar precession +** oma omega_A inclination of equator wrt J2000.0 ecliptic +** bpa P_A ecliptic pole x, J2000.0 ecliptic triad +** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad +** pia pi_A angle between moving and J2000.0 ecliptics +** bpia Pi_A longitude of ascending node of the ecliptic +** epsa epsilon_A obliquity of the ecliptic +** chia chi_A planetary precession +** za z_A equatorial precession: -3rd 323 Euler angle +** zetaa zeta_A equatorial precession: -1st 323 Euler angle +** thetaa theta_A equatorial precession: 2nd 323 Euler angle +** pa p_A general precession (n.b. see below) +** gam gamma_J2000 J2000.0 RA difference of ecliptic poles +** phi phi_J2000 J2000.0 codeclination of ecliptic pole +** psi psi_J2000 longitude difference of equator poles, J2000.0 +** +** The returned values are all radians. +** +** Note that the t^5 coefficient in the series for p_A from +** Capitaine et al. (2003) is incorrectly signed in Hilton et al. +** (2006). +** +** 3) Hilton et al. (2006) Table 1 also contains angles that depend on +** models distinct from the P03 precession theory itself, namely the +** IAU 2000A frame bias and nutation. The quoted polynomials are +** used in other SOFA functions: +** +** . iauXy06 contains the polynomial parts of the X and Y series. +** +** . iauS06 contains the polynomial part of the s+XY/2 series. +** +** . iauPfw06 implements the series for the Fukushima-Williams +** angles that are with respect to the GCRS pole (i.e. the variants +** that include frame bias). +** +** 4) The IAU resolution stipulated that the choice of parameterization +** was left to the user, and so an IAU compliant precession +** implementation can be constructed using various combinations of +** the angles returned by the present function. +** +** 5) The parameterization used by SOFA is the version of the Fukushima- +** Williams angles that refers directly to the GCRS pole. These +** angles may be calculated by calling the function iauPfw06. SOFA +** also supports the direct computation of the CIP GCRS X,Y by +** series, available by calling iauXy06. +** +** 6) The agreement between the different parameterizations is at the +** 1 microarcsecond level in the present era. +** +** 7) When constructing a precession formulation that refers to the GCRS +** pole rather than the dynamical pole, it may (depending on the +** choice of angles) be necessary to introduce the frame bias +** explicitly. +** +** 8) It is permissible to re-use the same variable in the returned +** arguments. The quantities are stored in the stated order. +** +** References: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, +** Astron.Astrophys., 412, 567 +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t; + + +/* Interval between fundamental date J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Obliquity at J2000.0. */ + + *eps0 = 84381.406 * DAS2R; + +/* Luni-solar precession. */ + + *psia = ( 5038.481507 + + ( -1.0790069 + + ( -0.00114045 + + ( 0.000132851 + + ( -0.0000000951 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Inclination of mean equator with respect to the J2000.0 ecliptic. */ + + *oma = *eps0 + ( -0.025754 + + ( 0.0512623 + + ( -0.00772503 + + ( -0.000000467 + + ( 0.0000003337 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Ecliptic pole x, J2000.0 ecliptic triad. */ + + *bpa = ( 4.199094 + + ( 0.1939873 + + ( -0.00022466 + + ( -0.000000912 + + ( 0.0000000120 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Ecliptic pole -y, J2000.0 ecliptic triad. */ + + *bqa = ( -46.811015 + + ( 0.0510283 + + ( 0.00052413 + + ( -0.000000646 + + ( -0.0000000172 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Angle between moving and J2000.0 ecliptics. */ + + *pia = ( 46.998973 + + ( -0.0334926 + + ( -0.00012559 + + ( 0.000000113 + + ( -0.0000000022 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Longitude of ascending node of the moving ecliptic. */ + + *bpia = ( 629546.7936 + + ( -867.95758 + + ( 0.157992 + + ( -0.0005371 + + ( -0.00004797 + + ( 0.000000072 ) + * t) * t) * t) * t) * t) * DAS2R; + +/* Mean obliquity of the ecliptic. */ + + *epsa = iauObl06(date1, date2); + +/* Planetary precession. */ + + *chia = ( 10.556403 + + ( -2.3814292 + + ( -0.00121197 + + ( 0.000170663 + + ( -0.0000000560 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Equatorial precession: minus the third of the 323 Euler angles. */ + + *za = ( -2.650545 + + ( 2306.077181 + + ( 1.0927348 + + ( 0.01826837 + + ( -0.000028596 + + ( -0.0000002904 ) + * t) * t) * t) * t) * t) * DAS2R; + +/* Equatorial precession: minus the first of the 323 Euler angles. */ + + *zetaa = ( 2.650545 + + ( 2306.083227 + + ( 0.2988499 + + ( 0.01801828 + + ( -0.000005971 + + ( -0.0000003173 ) + * t) * t) * t) * t) * t) * DAS2R; + +/* Equatorial precession: second of the 323 Euler angles. */ + + *thetaa = ( 2004.191903 + + ( -0.4294934 + + ( -0.04182264 + + ( -0.000007089 + + ( -0.0000001274 ) + * t) * t) * t) * t) * t * DAS2R; + +/* General precession. */ + + *pa = ( 5028.796195 + + ( 1.1054348 + + ( 0.00007964 + + ( -0.000023857 + + ( -0.0000000383 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Fukushima-Williams angles for precession. */ + + *gam = ( 10.556403 + + ( 0.4932044 + + ( -0.00031238 + + ( -0.000002788 + + ( 0.0000000260 ) + * t) * t) * t) * t) * t * DAS2R; + + *phi = *eps0 + ( -46.811015 + + ( 0.0511269 + + ( 0.00053289 + + ( -0.000000440 + + ( -0.0000000176 ) + * t) * t) * t) * t) * t * DAS2R; + + *psi = ( 5038.481507 + + ( 1.5584176 + + ( -0.00018522 + + ( -0.000026452 + + ( -0.0000000148 ) + * t) * t) * t) * t) * t * DAS2R; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/p2pv.c b/deps/sofa/20231011/c/src/p2pv.c new file mode 100644 index 0000000..6054fed --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauCp(p, pv[0]); + iauZp(pv[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/p2s.c b/deps/sofa/20231011/c/src/p2s.c new file mode 100644 index 0000000..8a5055d --- /dev/null +++ b/deps/sofa/20231011/c/src/p2s.c @@ -0,0 +1,141 @@ +#include "sofa.h" + +void iauP2s(double p[3], double *theta, double *phi, double *r) +/* +** - - - - - - - +** i a u P 2 s +** - - - - - - - +** +** P-vector to spherical polar coordinates. +** +** 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: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** +** Notes: +** +** 1) If P is null, zero theta, phi and r are returned. +** +** 2) At either pole, zero theta is returned. +** +** Called: +** iauC2s p-vector to spherical +** iauPm modulus of p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauC2s(p, theta, phi); + *r = iauPm(p); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pap.c b/deps/sofa/20231011/c/src/pap.c new file mode 100644 index 0000000..4e56c18 --- /dev/null +++ b/deps/sofa/20231011/c/src/pap.c @@ -0,0 +1,191 @@ +#include "sofa.h" + +double iauPap(double a[3], double b[3]) +/* +** - - - - - - - +** i a u P a p +** - - - - - - - +** +** Position-angle from two p-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[3] direction of reference point +** b double[3] direction of point whose PA is required +** +** Returned (function value): +** double position angle of b with respect to a (radians) +** +** Notes: +** +** 1) The result is the position angle, in radians, of direction b with +** respect to direction a. It is in the range -pi to +pi. The +** sense is such that if b is a small distance "north" of a the +** position angle is approximately zero, and if b is a small +** distance "east" of a the position angle is approximately +pi/2. +** +** 2) The vectors a and b need not be of unit length. +** +** 3) Zero is returned if the two directions are the same or if either +** vector is null. +** +** 4) If vector a is at a pole, the result is ill-defined. +** +** Called: +** iauPn decompose p-vector into modulus and direction +** iauPm modulus of p-vector +** iauPxp vector product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPdp scalar product of two p-vectors +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double am, au[3], bm, st, ct, xa, ya, za, eta[3], xi[3], a2b[3], pa; + + +/* Modulus and direction of the a vector. */ + iauPn(a, &am, au); + +/* Modulus of the b vector. */ + bm = iauPm(b); + +/* Deal with the case of a null vector. */ + if ((am == 0.0) || (bm == 0.0)) { + st = 0.0; + ct = 1.0; + } else { + + /* The "north" axis tangential from a (arbitrary length). */ + xa = a[0]; + ya = a[1]; + za = a[2]; + eta[0] = -xa * za; + eta[1] = -ya * za; + eta[2] = xa*xa + ya*ya; + + /* The "east" axis tangential from a (same length). */ + iauPxp(eta, au, xi); + + /* The vector from a to b. */ + iauPmp(b, a, a2b); + + /* Resolve into components along the north and east axes. */ + st = iauPdp(a2b, xi); + ct = iauPdp(a2b, eta); + + /* Deal with degenerate cases. */ + if ((st == 0.0) && (ct == 0.0)) ct = 1.0; + } + +/* Position angle. */ + pa = atan2(st, ct); + + return pa; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pas.c b/deps/sofa/20231011/c/src/pas.c new file mode 100644 index 0000000..6bfb044 --- /dev/null +++ b/deps/sofa/20231011/c/src/pas.c @@ -0,0 +1,148 @@ +#include "sofa.h" + +double iauPas(double al, double ap, double bl, double bp) +/* +** - - - - - - - +** i a u P a s +** - - - - - - - +** +** Position-angle from spherical coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** al double longitude of point A (e.g. RA) in radians +** ap double latitude of point A (e.g. Dec) in radians +** bl double longitude of point B +** bp double latitude of point B +** +** Returned (function value): +** double position angle of B with respect to A +** +** Notes: +** +** 1) The result is the bearing (position angle), in radians, of point +** B with respect to point A. It is in the range -pi to +pi. The +** sense is such that if B is a small distance "east" of point A, +** the bearing is approximately +pi/2. +** +** 2) Zero is returned if the two points are coincident. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dl, x, y, pa; + + + dl = bl - al; + y = sin(dl) * cos(bp); + x = sin(bp) * cos(ap) - cos(bp) * sin(ap) * cos(dl); + pa = ((x != 0.0) || (y != 0.0)) ? atan2(y, x) : 0.0; + + return pa; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pb06.c b/deps/sofa/20231011/c/src/pb06.c new file mode 100644 index 0000000..e466310 --- /dev/null +++ b/deps/sofa/20231011/c/src/pb06.c @@ -0,0 +1,202 @@ +#include "sofa.h" + +void iauPb06(double date1, double date2, + double *bzeta, double *bz, double *btheta) +/* +** - - - - - - - - +** i a u P b 0 6 +** - - - - - - - - +** +** This function forms three Euler angles which implement general +** precession from epoch J2000.0, using the IAU 2006 model. Frame +** bias (the offset between ICRS and mean J2000.0) is included. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** bzeta double 1st rotation: radians cw around z +** bz double 3rd rotation: radians cw around z +** btheta double 2nd rotation: radians ccw around y +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The traditional accumulated precession angles zeta_A, z_A, +** theta_A cannot be obtained in the usual way, namely through +** polynomial expressions, because of the frame bias. The latter +** means that two of the angles undergo rapid changes near this +** date. They are instead the results of decomposing the +** precession-bias matrix obtained by using the Fukushima-Williams +** method, which does not suffer from the problem. The +** decomposition returns values which can be used in the +** conventional formulation and which include frame bias. +** +** 3) The three angles are returned in the conventional order, which +** is not the same as the order of the corresponding Euler +** rotations. The precession-bias matrix is +** R_3(-z) x R_2(+theta) x R_3(-zeta). +** +** 4) Should zeta_A, z_A, theta_A angles be required that do not +** contain frame bias, they are available by calling the SOFA +** function iauP06e. +** +** Called: +** iauPmat06 PB matrix, IAU 2006 +** iauRz rotate around Z-axis +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r[3][3], y, x; + + +/* Precession matrix via Fukushima-Williams angles. */ + iauPmat06(date1, date2, r); + +/* Solve for z, choosing the +/- pi alternative. */ + y = r[1][2]; + x = -r[0][2]; + if ( x < 0.0 ) { + y = -y; + x = -x; + } + *bz = ( x != 0.0 || y != 0.0 ) ? - atan2(y,x) : 0.0; + +/* Derotate it out of the matrix. */ + iauRz ( *bz, r ); + +/* Solve for the remaining two angles. */ + y = r[0][2]; + x = r[2][2]; + *btheta = ( x != 0.0 || y != 0.0 ) ? - atan2(y,x) : 0.0; + + y = -r[1][0]; + x = r[1][1]; + *bzeta = ( x != 0.0 || y != 0.0 ) ? - atan2(y,x) : 0.0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pdp.c b/deps/sofa/20231011/c/src/pdp.c new file mode 100644 index 0000000..79c08a0 --- /dev/null +++ b/deps/sofa/20231011/c/src/pdp.c @@ -0,0 +1,136 @@ +#include "sofa.h" + +double iauPdp(double a[3], double b[3]) +/* +** - - - - - - - +** i a u P d p +** - - - - - - - +** +** p-vector inner (=scalar=dot) product. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned (function value): +** double a . b +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double w; + + + w = a[0] * b[0] + + a[1] * b[1] + + a[2] * b[2]; + + return w; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pfw06.c b/deps/sofa/20231011/c/src/pfw06.c new file mode 100644 index 0000000..cfc5c5e --- /dev/null +++ b/deps/sofa/20231011/c/src/pfw06.c @@ -0,0 +1,216 @@ +#include "sofa.h" +#include "sofam.h" + +void iauPfw06(double date1, double date2, + double *gamb, double *phib, double *psib, double *epsa) +/* +** - - - - - - - - - +** i a u P f w 0 6 +** - - - - - - - - - +** +** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psib double F-W angle psi_bar (radians) +** epsa double F-W angle epsilon_A (radians) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) Naming the following points: +** +** e = J2000.0 ecliptic pole, +** p = GCRS pole, +** E = mean ecliptic pole of date, +** and P = mean pole of date, +** +** the four Fukushima-Williams angles are as follows: +** +** gamb = gamma_bar = epE +** phib = phi_bar = pE +** psib = psi_bar = pEP +** epsa = epsilon_A = EP +** +** 3) The matrix representing the combined effects of frame bias and +** precession is: +** +** PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb) +** +** 4) The matrix representing the combined effects of frame bias, +** precession and nutation is simply: +** +** NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb) +** +** where dP and dE are the nutation components with respect to the +** ecliptic of date. +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t; + + +/* Interval between fundamental date J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* P03 bias+precession angles. */ + *gamb = ( -0.052928 + + ( 10.556378 + + ( 0.4932044 + + ( -0.00031238 + + ( -0.000002788 + + ( 0.0000000260 ) + * t) * t) * t) * t) * t) * DAS2R; + *phib = ( 84381.412819 + + ( -46.811016 + + ( 0.0511268 + + ( 0.00053289 + + ( -0.000000440 + + ( -0.0000000176 ) + * t) * t) * t) * t) * t) * DAS2R; + *psib = ( -0.041775 + + ( 5038.481484 + + ( 1.5584175 + + ( -0.00018522 + + ( -0.000026452 + + ( -0.0000000148 ) + * t) * t) * t) * t) * t) * DAS2R; + *epsa = iauObl06(date1, date2); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/plan94.c b/deps/sofa/20231011/c/src/plan94.c new file mode 100644 index 0000000..ca7e059 --- /dev/null +++ b/deps/sofa/20231011/c/src/plan94.c @@ -0,0 +1,569 @@ +#include "sofa.h" +#include "sofam.h" + +int iauPlan94(double date1, double date2, int np, double pv[2][3]) +/* +** - - - - - - - - - - +** i a u P l a n 9 4 +** - - - - - - - - - - +** +** Approximate heliocentric position and velocity of a nominated +** planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or +** Neptune (but not the Earth itself). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** n.b. Not IAU-endorsed and without canonical status. +** +** Given: +** date1 double TDB date part A (Note 1) +** date2 double TDB date part B (Note 1) +** np int planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, +** 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) +** +** Returned (argument): +** pv double[2][3] planet p,v (heliocentric, J2000.0, au,au/d) +** +** Returned (function value): +** int status: -1 = illegal NP (outside 1-8) +** 0 = OK +** +1 = warning: year outside 1000-3000 +** +2 = warning: failed to converge +** +** Notes: +** +** 1) The date date1+date2 is in the TDB time scale (in practice TT can +** be used) and is a Julian Date, apportioned in any convenient way +** between the two arguments. For example, JD(TDB)=2450123.7 could +** be expressed in any of these ways, among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. The limited +** accuracy of the present algorithm is such that any of the methods +** is satisfactory. +** +** 2) If an np value outside the range 1-8 is supplied, an error status +** (function value -1) is returned and the pv vector set to zeroes. +** +** 3) For np=3 the result is for the Earth-Moon barycenter (EMB). To +** obtain the heliocentric position and velocity of the Earth, use +** instead the SOFA function iauEpv00. +** +** 4) On successful return, the array pv contains the following: +** +** pv[0][0] x } +** pv[0][1] y } heliocentric position, au +** pv[0][2] z } +** +** pv[1][0] xdot } +** pv[1][1] ydot } heliocentric velocity, au/d +** pv[1][2] zdot } +** +** The reference frame is equatorial and is with respect to the +** mean equator and equinox of epoch J2000.0. +** +** 5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, +** M. Chapront-Touze, G. Francou and J. Laskar (Bureau des +** Longitudes, Paris, France). From comparisons with JPL +** ephemeris DE102, they quote the following maximum errors +** over the interval 1800-2050: +** +** L (arcsec) B (arcsec) R (km) +** +** Mercury 4 1 300 +** Venus 5 1 800 +** EMB 6 1 1000 +** Mars 17 1 7700 +** Jupiter 71 5 76000 +** Saturn 81 13 267000 +** Uranus 86 7 712000 +** Neptune 11 1 253000 +** +** Over the interval 1000-3000, they report that the accuracy is no +** worse than 1.5 times that over 1800-2050. Outside 1000-3000 the +** accuracy declines. +** +** Comparisons of the present function with the JPL DE200 ephemeris +** give the following RMS errors over the interval 1960-2025: +** +** position (km) velocity (m/s) +** +** Mercury 334 0.437 +** Venus 1060 0.855 +** EMB 2010 0.815 +** Mars 7690 1.98 +** Jupiter 71700 7.70 +** Saturn 199000 19.4 +** Uranus 564000 16.4 +** Neptune 158000 14.4 +** +** Comparisons against DE200 over the interval 1800-2100 gave the +** following maximum absolute differences (the results using +** DE406 were essentially the same): +** +** L (arcsec) B (arcsec) R (km) Rdot (m/s) +** +** Mercury 7 1 500 0.7 +** Venus 7 1 1100 0.9 +** EMB 9 1 1300 1.0 +** Mars 26 1 9000 2.5 +** Jupiter 78 6 82000 8.2 +** Saturn 87 14 263000 24.6 +** Uranus 86 7 661000 27.4 +** Neptune 11 2 248000 21.4 +** +** 6) The present SOFA re-implementation of the original Simon et al. +** Fortran code differs from the original in the following respects: +** +** * C instead of Fortran. +** +** * The date is supplied in two parts. +** +** * The result is returned only in equatorial Cartesian form; +** the ecliptic longitude, latitude and radius vector are not +** returned. +** +** * The result is in the J2000.0 equatorial frame, not ecliptic. +** +** * More is done in-line: there are fewer calls to subroutines. +** +** * Different error/warning status values are used. +** +** * A different Kepler's-equation-solver is used (avoiding +** use of double precision complex). +** +** * Polynomials in t are nested to minimize rounding errors. +** +** * Explicit double constants are used to avoid mixed-mode +** expressions. +** +** None of the above changes affects the result significantly. +** +** 7) The returned status indicates the most serious condition +** encountered during execution of the function. Illegal np is +** considered the most serious, overriding failure to converge, +** which in turn takes precedence over the remote date warning. +** +** Called: +** iauAnpm normalize angle into range +/- pi +** +** Reference: Simon, J.L, Bretagnon, P., Chapront, J., +** Chapront-Touze, M., Francou, G., and Laskar, J., +** Astron.Astrophys., 282, 663 (1994). +** +** This revision: 2023 May 5 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Gaussian constant */ + static const double GK = 0.017202098950; + +/* Sin and cos of J2000.0 mean obliquity (IAU 1976) */ + static const double SINEPS = 0.3977771559319137; + static const double COSEPS = 0.9174820620691818; + +/* Maximum number of iterations allowed to solve Kepler's equation */ + static const int KMAX = 10; + + int jstat, i, k; + double t, da, dl, de, dp, di, dom, dmu, arga, argl, am, + ae, dae, ae2, at, r, v, si2, xq, xp, tl, xsw, + xcw, xm2, xf, ci2, xms, xmc, xpxq2, x, y, z; + +/* Planetary inverse masses */ + static const double amas[] = { 6023600.0, /* Mercury */ + 408523.5, /* Venus */ + 328900.5, /* EMB */ + 3098710.0, /* Mars */ + 1047.355, /* Jupiter */ + 3498.5, /* Saturn */ + 22869.0, /* Uranus */ + 19314.0 }; /* Neptune */ + +/* +** Tables giving the mean Keplerian elements, limited to t^2 terms: +** +** a semi-major axis (au) +** dlm mean longitude (degree and arcsecond) +** e eccentricity +** pi longitude of the perihelion (degree and arcsecond) +** dinc inclination (degree and arcsecond) +** omega longitude of the ascending node (degree and arcsecond) +*/ + + static const double a[][3] = { + { 0.3870983098, 0.0, 0.0 }, /* Mercury */ + { 0.7233298200, 0.0, 0.0 }, /* Venus */ + { 1.0000010178, 0.0, 0.0 }, /* EMB */ + { 1.5236793419, 3e-10, 0.0 }, /* Mars */ + { 5.2026032092, 19132e-10, -39e-10 }, /* Jupiter */ + { 9.5549091915, -0.0000213896, 444e-10 }, /* Saturn */ + { 19.2184460618, -3716e-10, 979e-10 }, /* Uranus */ + { 30.1103868694, -16635e-10, 686e-10 } /* Neptune */ + }; + + static const double dlm[][3] = { + { 252.25090552, 5381016286.88982, -1.92789 }, + { 181.97980085, 2106641364.33548, 0.59381 }, + { 100.46645683, 1295977422.83429, -2.04411 }, + { 355.43299958, 689050774.93988, 0.94264 }, + { 34.35151874, 109256603.77991, -30.60378 }, + { 50.07744430, 43996098.55732, 75.61614 }, + { 314.05500511, 15424811.93933, -1.75083 }, + { 304.34866548, 7865503.20744, 0.21103 } + }; + + static const double e[][3] = { + { 0.2056317526, 0.0002040653, -28349e-10 }, + { 0.0067719164, -0.0004776521, 98127e-10 }, + { 0.0167086342, -0.0004203654, -0.0000126734 }, + { 0.0934006477, 0.0009048438, -80641e-10 }, + { 0.0484979255, 0.0016322542, -0.0000471366 }, + { 0.0555481426, -0.0034664062, -0.0000643639 }, + { 0.0463812221, -0.0002729293, 0.0000078913 }, + { 0.0094557470, 0.0000603263, 0.0 } + }; + + static const double pi[][3] = { + { 77.45611904, 5719.11590, -4.83016 }, + { 131.56370300, 175.48640, -498.48184 }, + { 102.93734808, 11612.35290, 53.27577 }, + { 336.06023395, 15980.45908, -62.32800 }, + { 14.33120687, 7758.75163, 259.95938 }, + { 93.05723748, 20395.49439, 190.25952 }, + { 173.00529106, 3215.56238, -34.09288 }, + { 48.12027554, 1050.71912, 27.39717 } + }; + + static const double dinc[][3] = { + { 7.00498625, -214.25629, 0.28977 }, + { 3.39466189, -30.84437, -11.67836 }, + { 0.0, 469.97289, -3.35053 }, + { 1.84972648, -293.31722, -8.11830 }, + { 1.30326698, -71.55890, 11.95297 }, + { 2.48887878, 91.85195, -17.66225 }, + { 0.77319689, -60.72723, 1.25759 }, + { 1.76995259, 8.12333, 0.08135 } + }; + + static const double omega[][3] = { + { 48.33089304, -4515.21727, -31.79892 }, + { 76.67992019, -10008.48154, -51.32614 }, + { 174.87317577, -8679.27034, 15.34191 }, + { 49.55809321, -10620.90088, -230.57416 }, + { 100.46440702, 6362.03561, 326.52178 }, + { 113.66550252, -9240.19942, -66.23743 }, + { 74.00595701, 2669.15033, 145.93964 }, + { 131.78405702, -221.94322, -0.78728 } + }; + +/* Tables for trigonometric terms to be added to the mean elements of */ +/* the semi-major axes */ + + static const double kp[][9] = { + { 69613, 75645, 88306, 59899, 15746, 71087, 142173, 3086, 0 }, + { 21863, 32794, 26934, 10931, 26250, 43725, 53867, 28939, 0 }, + { 16002, 21863, 32004, 10931, 14529, 16368, 15318, 32794, 0 }, + { 6345, 7818, 15636, 7077, 8184, 14163, 1107, 4872, 0 }, + { 1760, 1454, 1167, 880, 287, 2640, 19, 2047, 1454 }, + { 574, 0, 880, 287, 19, 1760, 1167, 306, 574 }, + { 204, 0, 177, 1265, 4, 385, 200, 208, 204 }, + { 0, 102, 106, 4, 98, 1367, 487, 204, 0 } + }; + + static const double ca[][9] = { + { 4, -13, 11, -9, -9, -3, -1, 4, 0 }, + { -156, 59, -42, 6, 19, -20, -10, -12, 0 }, + { 64, -152, 62, -8, 32, -41, 19, -11, 0 }, + { 124, 621, -145, 208, 54, -57, 30, 15, 0 }, + { -23437, -2634, 6601, 6259, -1507,-1821, 2620, -2115, -1489 }, + { 62911,-119919, 79336,17814,-24241,12068, 8306, -4893, 8902 }, + { 389061,-262125,-44088, 8387,-22976,-2093, -615, -9720, 6633 }, + { -412235,-157046,-31430,37817, -9740, -13, -7449, 9644, 0 } + }; + + static const double sa[][9] = { + { -29, -1, 9, 6, -6, 5, 4, 0, 0 }, + { -48, -125, -26, -37, 18, -13, -20, -2, 0 }, + { -150, -46, 68, 54, 14, 24, -28, 22, 0 }, + { -621, 532, -694, -20, 192, -94, 71, -73, 0 }, + { -14614,-19828, -5869, 1881, -4372, -2255, 782, 930, 913 }, + { 139737, 0, 24667, 51123, -5102, 7429, -4095, -1976, -9566 }, + { -138081, 0, 37205,-49039,-41901,-33872,-27037,-12474, 18797 }, + { 0, 28492,133236, 69654, 52322,-49577,-26430, -3593, 0 } + }; + +/* Tables giving the trigonometric terms to be added to the mean */ +/* elements of the mean longitudes */ + + static const double kq[][10] = { + { 3086,15746,69613,59899,75645,88306, 12661, 2658, 0, 0 }, + { 21863,32794,10931, 73, 4387,26934, 1473, 2157, 0, 0 }, + { 10,16002,21863,10931, 1473,32004, 4387, 73, 0, 0 }, + { 10, 6345, 7818, 1107,15636, 7077, 8184, 532, 10, 0 }, + { 19, 1760, 1454, 287, 1167, 880, 574, 2640, 19, 1454 }, + { 19, 574, 287, 306, 1760, 12, 31, 38, 19, 574 }, + { 4, 204, 177, 8, 31, 200, 1265, 102, 4, 204 }, + { 4, 102, 106, 8, 98, 1367, 487, 204, 4, 102 } + }; + + static const double cl[][10] = { + { 21, -95, -157, 41, -5, 42, 23, 30, 0, 0 }, + { -160, -313, -235, 60, -74, -76, -27, 34, 0, 0 }, + { -325, -322, -79, 232, -52, 97, 55, -41, 0, 0 }, + { 2268, -979, 802, 602, -668, -33, 345, 201, -55, 0 }, + { 7610, -4997,-7689,-5841,-2617, 1115,-748,-607, 6074, 354 }, + { -18549, 30125,20012, -730, 824, 23,1289,-352, -14767, -2062 }, + { -135245,-14594, 4197,-4030,-5630,-2898,2540,-306, 2939, 1986 }, + { 89948, 2103, 8963, 2695, 3682, 1648, 866,-154, -1963, -283 } + }; + + static const double sl[][10] = { + { -342, 136, -23, 62, 66, -52, -33, 17, 0, 0 }, + { 524, -149, -35, 117, 151, 122, -71, -62, 0, 0 }, + { -105, -137, 258, 35, -116, -88,-112, -80, 0, 0 }, + { 854, -205, -936, -240, 140, -341, -97, -232, 536, 0 }, + { -56980, 8016, 1012, 1448,-3024,-3710, 318, 503, 3767, 577 }, + { 138606,-13478,-4964, 1441,-1319,-1482, 427, 1236, -9167, -1918 }, + { 71234,-41116, 5334,-4935,-1848, 66, 434, -1748, 3780, -701 }, + { -47645, 11647, 2166, 3194, 679, 0,-244, -419, -2531, 48 } + }; + +/* ------------------------------------------------------------------ */ + +/* Validate the planet number. */ + if ((np < 1) || (np > 8)) { + jstat = -1; + + /* Reset the result in case of failure. */ + for (k = 0; k < 2; k++) { + for (i = 0; i < 3; i++) { + pv[k][i] = 0.0; + } + } + + } else { + + /* Decrement the planet number to start at zero. */ + np--; + + /* Time: Julian millennia since J2000.0. */ + t = ((date1 - DJ00) + date2) / DJM; + + /* OK status unless remote date. */ + jstat = fabs(t) <= 1.0 ? 0 : 1; + + /* Compute the mean elements. */ + da = a[np][0] + + (a[np][1] + + a[np][2] * t) * t; + dl = (3600.0 * dlm[np][0] + + (dlm[np][1] + + dlm[np][2] * t) * t) * DAS2R; + de = e[np][0] + + ( e[np][1] + + e[np][2] * t) * t; + dp = iauAnpm((3600.0 * pi[np][0] + + (pi[np][1] + + pi[np][2] * t) * t) * DAS2R); + di = (3600.0 * dinc[np][0] + + (dinc[np][1] + + dinc[np][2] * t) * t) * DAS2R; + dom = iauAnpm((3600.0 * omega[np][0] + + (omega[np][1] + + omega[np][2] * t) * t) * DAS2R); + + /* Apply the trigonometric terms. */ + dmu = 0.35953620 * t; + for (k = 0; k < 8; k++) { + arga = kp[np][k] * dmu; + argl = kq[np][k] * dmu; + da += (ca[np][k] * cos(arga) + + sa[np][k] * sin(arga)) * 1e-7; + dl += (cl[np][k] * cos(argl) + + sl[np][k] * sin(argl)) * 1e-7; + } + arga = kp[np][8] * dmu; + da += t * (ca[np][8] * cos(arga) + + sa[np][8] * sin(arga)) * 1e-7; + for (k = 8; k < 10; k++) { + argl = kq[np][k] * dmu; + dl += t * (cl[np][k] * cos(argl) + + sl[np][k] * sin(argl)) * 1e-7; + } + dl = fmod(dl, D2PI); + + /* Iterative soln. of Kepler's equation to get eccentric anomaly. */ + am = dl - dp; + ae = am + de * sin(am); + k = 0; + dae = 1.0; + while (k < KMAX && fabs(dae) > 1e-12) { + dae = (am - ae + de * sin(ae)) / (1.0 - de * cos(ae)); + ae += dae; + k++; + if (k == KMAX-1) jstat = 2; + } + + /* True anomaly. */ + ae2 = ae / 2.0; + at = 2.0 * atan2(sqrt((1.0 + de) / (1.0 - de)) * sin(ae2), + cos(ae2)); + + /* Distance (au) and speed (radians per day). */ + r = da * (1.0 - de * cos(ae)); + v = GK * sqrt((1.0 + 1.0 / amas[np]) / (da * da * da)); + + si2 = sin(di / 2.0); + xq = si2 * cos(dom); + xp = si2 * sin(dom); + tl = at + dp; + xsw = sin(tl); + xcw = cos(tl); + xm2 = 2.0 * (xp * xcw - xq * xsw); + xf = da / sqrt(1 - de * de); + ci2 = cos(di / 2.0); + xms = (de * sin(dp) + xsw) * xf; + xmc = (de * cos(dp) + xcw) * xf; + xpxq2 = 2 * xp * xq; + + /* Position (J2000.0 ecliptic x,y,z in au). */ + x = r * (xcw - xm2 * xp); + y = r * (xsw + xm2 * xq); + z = r * (-xm2 * ci2); + + /* Rotate to equatorial. */ + pv[0][0] = x; + pv[0][1] = y * COSEPS - z * SINEPS; + pv[0][2] = y * SINEPS + z * COSEPS; + + /* Velocity (J2000.0 ecliptic xdot,ydot,zdot in au/d). */ + x = v * (( -1.0 + 2.0 * xp * xp) * xms + xpxq2 * xmc); + y = v * (( 1.0 - 2.0 * xq * xq) * xmc - xpxq2 * xms); + z = v * (2.0 * ci2 * (xp * xms + xq * xmc)); + + /* Rotate to equatorial. */ + pv[1][0] = x; + pv[1][1] = y * COSEPS - z * SINEPS; + pv[1][2] = y * SINEPS + z * COSEPS; + + } + +/* Return the status. */ + return jstat; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pm.c b/deps/sofa/20231011/c/src/pm.c new file mode 100644 index 0000000..141b4c0 --- /dev/null +++ b/deps/sofa/20231011/c/src/pm.c @@ -0,0 +1,128 @@ +#include "sofa.h" + +double iauPm(double p[3]) +/* +** - - - - - - +** i a u P m +** - - - - - - +** +** Modulus of p-vector. +** +** 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 (function value): +** double modulus +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + return sqrt( p[0]*p[0] + p[1]*p[1] + p[2]*p[2] ); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pmat00.c b/deps/sofa/20231011/c/src/pmat00.c new file mode 100644 index 0000000..197f9c8 --- /dev/null +++ b/deps/sofa/20231011/c/src/pmat00.c @@ -0,0 +1,168 @@ +#include "sofa.h" + +void iauPmat00(double date1, double date2, double rbp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 0 0 +** - - - - - - - - - - +** +** Precession matrix (including frame bias) from GCRS to a specified +** date, IAU 2000 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbp double[3][3] bias-precession matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where +** the p-vector V(GCRS) is with respect to the Geocentric Celestial +** Reference System (IAU, 2000) and the p-vector V(date) is with +** respect to the mean equatorial triad of the given date. +** +** Called: +** iauBp00 frame bias and precession matrices, IAU 2000 +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rb[3][3], rp[3][3]; + + +/* Obtain the required matrix (discarding others). */ + iauBp00(date1, date2, rb, rp, rbp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pmat06.c b/deps/sofa/20231011/c/src/pmat06.c new file mode 100644 index 0000000..d8a0938 --- /dev/null +++ b/deps/sofa/20231011/c/src/pmat06.c @@ -0,0 +1,176 @@ +#include "sofa.h" + +void iauPmat06(double date1, double date2, double rbp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 0 6 +** - - - - - - - - - - +** +** Precession matrix (including frame bias) from GCRS to a specified +** date, IAU 2006 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbp double[3][3] bias-precession matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where +** the p-vector V(GCRS) is with respect to the Geocentric Celestial +** Reference System (IAU, 2000) and the p-vector V(date) is with +** respect to the mean equatorial triad of the given date. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gamb, phib, psib, epsa; + + +/* Bias-precession Fukushima-Williams angles. */ + iauPfw06(date1, date2, &gamb, &phib, &psib, &epsa); + +/* Form the matrix. */ + iauFw2m(gamb, phib, psib, epsa, rbp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pmat76.c b/deps/sofa/20231011/c/src/pmat76.c new file mode 100644 index 0000000..dab53db --- /dev/null +++ b/deps/sofa/20231011/c/src/pmat76.c @@ -0,0 +1,192 @@ +#include "sofa.h" +#include "sofam.h" + +void iauPmat76(double date1, double date2, double rmatp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 7 6 +** - - - - - - - - - - +** +** Precession matrix from J2000.0 to a specified date, IAU 1976 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double ending date, TT (Note 1) +** +** Returned: +** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2 +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = RMATP * V(J2000), +** where the p-vector V(J2000) is with respect to the mean +** equatorial triad of epoch J2000.0 and the p-vector V(date) +** is with respect to the mean equatorial triad of the given +** date. +** +** 3) Though the matrix method itself is rigorous, the precession +** angles are expressed through canonical polynomials which are +** valid only for a limited time span. In addition, the IAU 1976 +** precession rate is known to be imperfect. The absolute accuracy +** of the present formulation is better than 0.1 arcsec from +** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, +** and remains below 3 arcsec for the whole of the period +** 500BC to 3000AD. The errors exceed 10 arcsec outside the +** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to +** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD. +** +** Called: +** iauPrec76 accumulated precession angles, IAU 1976 +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauCr copy r-matrix +** +** References: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** equations (6) & (7), p283. +** +** Kaplan,G.H., 1981. USNO circular no. 163, pA2. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double zeta, z, theta, wmat[3][3]; + + +/* Precession Euler angles, J2000.0 to specified date. */ + iauPrec76(DJ00, 0.0, date1, date2, &zeta, &z, &theta); + +/* Form the rotation matrix. */ + iauIr( wmat); + iauRz( -zeta, wmat); + iauRy( theta, wmat); + iauRz( -z, wmat); + iauCr( wmat, rmatp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pmp.c b/deps/sofa/20231011/c/src/pmp.c new file mode 100644 index 0000000..280d02d --- /dev/null +++ b/deps/sofa/20231011/c/src/pmp.c @@ -0,0 +1,135 @@ +#include "sofa.h" + +void iauPmp(double a[3], double b[3], double amb[3]) +/* +** - - - - - - - +** i a u P m p +** - - - - - - - +** +** P-vector subtraction. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** amb double[3] a - b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + amb[0] = a[0] - b[0]; + amb[1] = a[1] - b[1]; + amb[2] = a[2] - b[2]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pmpx.c b/deps/sofa/20231011/c/src/pmpx.c new file mode 100644 index 0000000..1cecb23 --- /dev/null +++ b/deps/sofa/20231011/c/src/pmpx.c @@ -0,0 +1,195 @@ +#include "sofa.h" +#include "sofam.h" + +void iauPmpx(double rc, double dc, double pr, double pd, + double px, double rv, double pmt, double pob[3], + double pco[3]) +/* +** - - - - - - - - +** i a u P m p x +** - - - - - - - - +** +** Proper motion and parallax. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at catalog epoch (radians) +** pr double RA proper motion (radians/year, Note 1) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** pmt double proper motion time interval (SSB, Julian years) +** pob double[3] SSB to observer vector (au) +** +** Returned: +** pco double[3] coordinate direction (BCRS unit vector) +** +** Notes: +** +** 1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 2) The proper motion time interval is for when the starlight +** reaches the solar system barycenter. +** +** 3) To avoid the need for iteration, the Roemer effect (i.e. the +** small annual modulation of the proper motion coming from the +** changing light time) is applied approximately, using the +** direction of the star at the catalog epoch. +** +** References: +** +** 1984 Astronomical Almanac, pp B39-B41. +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013), Section 7.2. +** +** Called: +** iauPdp scalar product of two p-vectors +** iauPn decompose p-vector into modulus and direction +** +** This revision: 2021 April 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Km/s to au/year */ + const double VF = DAYSEC*DJM/DAU; + +/* Light time for 1 au, Julian years */ + const double AULTY = AULT/DAYSEC/DJY; + + int i; + double sr, cr, sd, cd, x, y, z, p[3], dt, pxr, w, pdz, pm[3]; + + +/* Spherical coordinates to unit vector (and useful functions). */ + sr = sin(rc); + cr = cos(rc); + sd = sin(dc); + cd = cos(dc); + p[0] = x = cr*cd; + p[1] = y = sr*cd; + p[2] = z = sd; + +/* Proper motion time interval (y) including Roemer effect. */ + dt = pmt + iauPdp(p,pob)*AULTY; + +/* Space motion (radians per year). */ + pxr = px * DAS2R; + w = VF * rv * pxr; + pdz = pd * z; + pm[0] = - pr*y - pdz*cr + w*x; + pm[1] = pr*x - pdz*sr + w*y; + pm[2] = pd*cd + w*z; + +/* Coordinate direction of star (unit vector, BCRS). */ + for (i = 0; i < 3; i++) { + p[i] += dt*pm[i] - pxr*pob[i]; + } + iauPn(p, &w, pco); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pmsafe.c b/deps/sofa/20231011/c/src/pmsafe.c new file mode 100644 index 0000000..46eeb85 --- /dev/null +++ b/deps/sofa/20231011/c/src/pmsafe.c @@ -0,0 +1,247 @@ +#include "sofa.h" + +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) +/* +** - - - - - - - - - - +** i a u P m s a f e +** - - - - - - - - - - +** +** Star proper motion: update star catalog data for space motion, with +** special handling to handle the zero parallax case. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ra1 double right ascension (radians), before +** dec1 double declination (radians), before +** pmr1 double RA proper motion (radians/year), before +** pmd1 double Dec proper motion (radians/year), before +** px1 double parallax (arcseconds), before +** rv1 double radial velocity (km/s, +ve = receding), before +** ep1a double "before" epoch, part A (Note 1) +** ep1b double "before" epoch, part B (Note 1) +** ep2a double "after" epoch, part A (Note 1) +** ep2b double "after" epoch, part B (Note 1) +** +** Returned: +** ra2 double right ascension (radians), after +** dec2 double declination (radians), after +** pmr2 double RA proper motion (radians/year), after +** pmd2 double Dec proper motion (radians/year), after +** px2 double parallax (arcseconds), after +** rv2 double radial velocity (km/s, +ve = receding), after +** +** Returned (function value): +** int status: +** -1 = system error (should not occur) +** 0 = no warnings or errors +** 1 = distance overridden (Note 6) +** 2 = excessive velocity (Note 7) +** 4 = solution didn't converge (Note 8) +** else = binary logical OR of the above warnings +** +** Notes: +** +** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are +** Julian Dates, apportioned in any convenient way between the two +** parts (A and B). For example, JD(TDB)=2450123.7 could be +** expressed in any of these ways, among others: +** +** epNa epNb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. +** +** 2) In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** The proper motions are the rate of change of the right ascension +** and declination at the catalog epoch and are in radians per TDB +** Julian year. +** +** The parallax and radial velocity are in the same frame. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds. +** +** 4) The RA proper motion is in terms of coordinate angle, not true +** angle. If the catalog uses arcseconds for both RA and Dec proper +** motions, the RA proper motion will need to be divided by cos(Dec) +** before use. +** +** 5) Straight-line motion at constant speed, in the inertial frame, is +** assumed. +** +** 6) An extremely small (or zero or negative) parallax is overridden +** to ensure that the object is at a finite but very large distance, +** but not so large that the proper motion is equivalent to a large +** but safe speed (about 0.1c using the chosen constant). A warning +** status of 1 is added to the status if this action has been taken. +** +** 7) If the space velocity is a significant fraction of c (see the +** constant VMAX in the function iauStarpv), it is arbitrarily set +** to zero. When this action occurs, 2 is added to the status. +** +** 8) The relativistic adjustment carried out in the iauStarpv function +** involves an iterative calculation. If the process fails to +** converge within a set number of iterations, 4 is added to the +** status. +** +** Called: +** iauSeps angle between two points +** iauStarpm update star catalog data for space motion +** +** This revision: 2023 April 7 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Minimum allowed parallax (arcsec) */ + const double PXMIN = 5e-7; + +/* Factor giving maximum allowed transverse speed of about 1% c */ + const double F = 326.0; + + int jpx, j; + double pm, px1a; + + +/* Proper motion in one year (radians). */ + pm = iauSeps(ra1, dec1, ra1+pmr1, dec1+pmd1); + +/* Override the parallax to reduce the chances of a warning status. */ + jpx = 0; + px1a = px1; + pm *= F; + if (px1a < pm) {jpx = 1; px1a = pm;} + if (px1a < PXMIN) {jpx = 1; px1a = PXMIN;} + +/* Carry out the transformation using the modified parallax. */ + j = iauStarpm(ra1, dec1, pmr1, pmd1, px1a, rv1, + ep1a, ep1b, ep2a, ep2b, + ra2, dec2, pmr2, pmd2, px2, rv2); + +/* Revise and return the status. */ + if ( !(j%2) ) j += jpx; + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pn.c b/deps/sofa/20231011/c/src/pn.c new file mode 100644 index 0000000..9e03614 --- /dev/null +++ b/deps/sofa/20231011/c/src/pn.c @@ -0,0 +1,159 @@ +#include "sofa.h" + +void iauPn(double p[3], double *r, double u[3]) +/* +** - - - - - - +** i a u P n +** - - - - - - +** +** Convert a p-vector into modulus and unit vector. +** +** 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: +** r double modulus +** u double[3] unit vector +** +** Notes: +** +** 1) If p is null, the result is null. Otherwise the result is a unit +** vector. +** +** 2) It is permissible to re-use the same array for any of the +** arguments. +** +** Called: +** iauPm modulus of p-vector +** iauZp zero p-vector +** iauSxp multiply p-vector by scalar +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double w; + + +/* Obtain the modulus and test for zero. */ + w = iauPm(p); + if (w == 0.0) { + + /* Null vector. */ + iauZp(u); + + } else { + + /* Unit vector. */ + iauSxp(1.0/w, p, u); + } + +/* Return the modulus. */ + *r = w; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pn00.c b/deps/sofa/20231011/c/src/pn00.c new file mode 100644 index 0000000..088458c --- /dev/null +++ b/deps/sofa/20231011/c/src/pn00.c @@ -0,0 +1,227 @@ +#include "sofa.h" + +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]) +/* +** - - - - - - - - +** i a u P n 0 0 +** - - - - - - - - +** +** Precession-nutation, IAU 2000 model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based +** use indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** dpsi,deps double nutation (Note 2) +** +** Returned: +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Note 8) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. For high-accuracy +** applications, free core nutation should be included as well as +** any other relevant corrections to the position of the CIP. +** +** 3) The returned mean obliquity is consistent with the IAU 2000 +** precession-nutation models. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox of +** date to true equator and equinox of date by applying the nutation +** (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the order given. +** +** Called: +** iauPr00 IAU 2000 precession adjustments +** iauObl80 mean obliquity, IAU 1980 +** iauBp00 frame bias and precession matrices, IAU 2000 +** iauCr copy r-matrix +** iauNumat form nutation matrix +** iauRxr product of two r-matrices +** +** Reference: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsipr, depspr, rbpw[3][3], rnw[3][3]; + + +/* IAU 2000 precession-rate adjustments. */ + iauPr00(date1, date2, &dpsipr, &depspr); + +/* Mean obliquity, consistent with IAU 2000 precession-nutation. */ + *epsa = iauObl80(date1, date2) + depspr; + +/* Frame bias and precession matrices and their product. */ + iauBp00(date1, date2, rb, rp, rbpw); + iauCr(rbpw, rbp); + +/* Nutation matrix. */ + iauNumat(*epsa, dpsi, deps, rnw); + iauCr(rnw, rn); + +/* Bias-precession-nutation matrix (classical). */ + iauRxr(rnw, rbpw, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pn00a.c b/deps/sofa/20231011/c/src/pn00a.c new file mode 100644 index 0000000..71957b6 --- /dev/null +++ b/deps/sofa/20231011/c/src/pn00a.c @@ -0,0 +1,213 @@ +#include "sofa.h" + +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]) +/* +** - - - - - - - - - +** i a u P n 0 0 a +** - - - - - - - - - +** +** Precession-nutation, IAU 2000A model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based +** use indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation (Note 2) +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components (luni-solar + planetary, IAU 2000A) in +** longitude and obliquity are in radians and with respect to the +** equinox and ecliptic of date. Free core nutation is omitted; +** for the utmost accuracy, use the iauPn00 function, where the +** nutation components are caller-specified. For faster but +** slightly less accurate results, use the iauPn00b function. +** +** 3) The mean obliquity is consistent with the IAU 2000 precession. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox +** of date to true equator and equinox of date by applying the +** nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the IAU 2000A Celestial Intermediate +** Pole are elements (3,1-3) of the GCRS-to-true matrix, +** i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauNut00a nutation, IAU 2000A +** iauPn00 bias/precession/nutation results, IAU 2000 +** +** Reference: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Nutation. */ + iauNut00a(date1, date2, dpsi, deps); + +/* Remaining results. */ + iauPn00(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pn00b.c b/deps/sofa/20231011/c/src/pn00b.c new file mode 100644 index 0000000..cd7dd09 --- /dev/null +++ b/deps/sofa/20231011/c/src/pn00b.c @@ -0,0 +1,213 @@ +#include "sofa.h" + +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]) +/* +** - - - - - - - - - +** i a u P n 0 0 b +** - - - - - - - - - +** +** Precession-nutation, IAU 2000B model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based +** use indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation (Note 2) +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components (luni-solar + planetary, IAU 2000B) in +** longitude and obliquity are in radians and with respect to the +** equinox and ecliptic of date. For more accurate results, but +** at the cost of increased computation, use the iauPn00a function. +** For the utmost accuracy, use the iauPn00 function, where the +** nutation components are caller-specified. +** +** 3) The mean obliquity is consistent with the IAU 2000 precession. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox +** of date to true equator and equinox of date by applying the +** nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the IAU 2000B Celestial Intermediate +** Pole are elements (3,1-3) of the GCRS-to-true matrix, +** i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauNut00b nutation, IAU 2000B +** iauPn00 bias/precession/nutation results, IAU 2000 +** +** Reference: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003). +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Nutation. */ + iauNut00b(date1, date2, dpsi, deps); + +/* Remaining results. */ + iauPn00(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pn06.c b/deps/sofa/20231011/c/src/pn06.c new file mode 100644 index 0000000..6145e97 --- /dev/null +++ b/deps/sofa/20231011/c/src/pn06.c @@ -0,0 +1,238 @@ +#include "sofa.h" +#include "sofam.h" + +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]) +/* +** - - - - - - - - +** i a u P n 0 6 +** - - - - - - - - +** +** Precession-nutation, IAU 2006 model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based use +** indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** dpsi,deps double nutation (Note 2) +** +** Returned: +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. For high-accuracy +** applications, free core nutation should be included as well as +** any other relevant corrections to the position of the CIP. +** +** 3) The returned mean obliquity is consistent with the IAU 2006 +** precession. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox +** of date to true equator and equinox of date by applying the +** nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the Celestial Intermediate Pole are +** elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** iauCr copy r-matrix +** iauTr transpose r-matrix +** iauRxr product of two r-matrices +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gamb, phib, psib, eps, r1[3][3], r2[3][3], rt[3][3]; + + +/* Bias-precession Fukushima-Williams angles of J2000.0 = frame bias. */ + iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &eps); + +/* B matrix. */ + iauFw2m(gamb, phib, psib, eps, r1); + iauCr(r1, rb); + +/* Bias-precession Fukushima-Williams angles of date. */ + iauPfw06(date1, date2, &gamb, &phib, &psib, &eps); + +/* Bias-precession matrix. */ + iauFw2m(gamb, phib, psib, eps, r2); + iauCr(r2, rbp); + +/* Solve for precession matrix. */ + iauTr(r1, rt); + iauRxr(r2, rt, rp); + +/* Equinox-based bias-precession-nutation matrix. */ + iauFw2m(gamb, phib, psib + dpsi, eps + deps, r1); + iauCr(r1, rbpn); + +/* Solve for nutation matrix. */ + iauTr(r2, rt); + iauRxr(r1, rt, rn); + +/* Obliquity, mean of date. */ + *epsa = eps; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pn06a.c b/deps/sofa/20231011/c/src/pn06a.c new file mode 100644 index 0000000..4433dbe --- /dev/null +++ b/deps/sofa/20231011/c/src/pn06a.c @@ -0,0 +1,203 @@ +#include "sofa.h" + +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]) +/* +** - - - - - - - - - +** i a u P n 0 6 a +** - - - - - - - - - +** +** Precession-nutation, IAU 2006/2000A models: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based use +** indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation (Note 2) +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components (luni-solar + planetary, IAU 2000A) in +** longitude and obliquity are in radians and with respect to the +** equinox and ecliptic of date. Free core nutation is omitted; +** for the utmost accuracy, use the iauPn06 function, where the +** nutation components are caller-specified. +** +** 3) The mean obliquity is consistent with the IAU 2006 precession. +** +** 4) The matrix rb transforms vectors from GCRS to mean J2000.0 by +** applying frame bias. +** +** 5) The matrix rp transforms vectors from mean J2000.0 to mean of +** date by applying precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean of date by +** applying frame bias then precession. It is the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean of date to true of +** date by applying the nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true of date +** (CIP/equinox). It is the product rn x rbp, applying frame bias, +** precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the IAU 2006/2000A Celestial +** Intermediate Pole are elements (3,1-3) of the GCRS-to-true +** matrix, i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauNut06a nutation, IAU 2006/2000A +** iauPn06 bias/precession/nutation results, IAU 2006 +** +** Reference: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Nutation. */ + iauNut06a(date1, date2, dpsi, deps); + +/* Remaining results. */ + iauPn06(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pnm00a.c b/deps/sofa/20231011/c/src/pnm00a.c new file mode 100644 index 0000000..12688b0 --- /dev/null +++ b/deps/sofa/20231011/c/src/pnm00a.c @@ -0,0 +1,171 @@ +#include "sofa.h" + +void iauPnm00a(double date1, double date2, double rbpn[3][3]) +/* +** - - - - - - - - - - +** i a u P n m 0 0 a +** - - - - - - - - - - +** +** Form the matrix of precession-nutation for a given date (including +** frame bias), equinox based, IAU 2000A model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbpn double[3][3] bias-precession-nutation matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where +** the p-vector V(date) is with respect to the true equatorial triad +** of date date1+date2 and the p-vector V(GCRS) is with respect to +** the Geocentric Celestial Reference System (IAU, 2000). +** +** 3) A faster, but slightly less accurate, result (about 1 mas) can be +** obtained by using instead the iauPnm00b function. +** +** Called: +** iauPn00a bias/precession/nutation, IAU 2000A +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3]; + + +/* Obtain the required matrix (discarding other results). */ + iauPn00a(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pnm00b.c b/deps/sofa/20231011/c/src/pnm00b.c new file mode 100644 index 0000000..cc11b50 --- /dev/null +++ b/deps/sofa/20231011/c/src/pnm00b.c @@ -0,0 +1,171 @@ +#include "sofa.h" + +void iauPnm00b(double date1, double date2, double rbpn[3][3]) +/* +** - - - - - - - - - - +** i a u P n m 0 0 b +** - - - - - - - - - - +** +** Form the matrix of precession-nutation for a given date (including +** frame bias), equinox-based, IAU 2000B model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbpn double[3][3] bias-precession-nutation matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where +** the p-vector V(date) is with respect to the true equatorial triad +** of date date1+date2 and the p-vector V(GCRS) is with respect to +** the Geocentric Celestial Reference System (IAU, 2000). +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauPnm00a function. +** +** Called: +** iauPn00b bias/precession/nutation, IAU 2000B +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3]; + + +/* Obtain the required matrix (discarding other results). */ + iauPn00b(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pnm06a.c b/deps/sofa/20231011/c/src/pnm06a.c new file mode 100644 index 0000000..a909931 --- /dev/null +++ b/deps/sofa/20231011/c/src/pnm06a.c @@ -0,0 +1,175 @@ +#include "sofa.h" + +void iauPnm06a(double date1, double date2, double rbpn[3][3]) +/* +** - - - - - - - - - - +** i a u P n m 0 6 a +** - - - - - - - - - - +** +** Form the matrix of precession-nutation for a given date (including +** frame bias), equinox based, IAU 2006 precession and IAU 2000A +** nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbpn double[3][3] bias-precession-nutation matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where +** the p-vector V(date) is with respect to the true equatorial triad +** of date date1+date2 and the p-vector V(GCRS) is with respect to +** the Geocentric Celestial Reference System (IAU, 2000). +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauNut06a nutation, IAU 2006/2000A +** iauFw2m F-W angles to r-matrix +** +** Reference: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double gamb, phib, psib, epsa, dp, de; + + +/* Fukushima-Williams angles for frame bias and precession. */ + iauPfw06(date1, date2, &gamb, &phib, &psib, &epsa); + +/* Nutation components. */ + iauNut06a(date1, date2, &dp, &de); + +/* Equinox based nutation x precession x bias matrix. */ + iauFw2m(gamb, phib, psib + dp, epsa + de, rbpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pnm80.c b/deps/sofa/20231011/c/src/pnm80.c new file mode 100644 index 0000000..3a2bb04 --- /dev/null +++ b/deps/sofa/20231011/c/src/pnm80.c @@ -0,0 +1,176 @@ +#include "sofa.h" + +void iauPnm80(double date1, double date2, double rmatpn[3][3]) +/* +** - - - - - - - - - +** i a u P n m 8 0 +** - - - - - - - - - +** +** Form the matrix of precession/nutation for a given date, IAU 1976 +** precession model, IAU 1980 nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatpn double[3][3] combined precession/nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rmatpn * V(J2000), +** where the p-vector V(date) is with respect to the true equatorial +** triad of date date1+date2 and the p-vector V(J2000) is with +** respect to the mean equatorial triad of epoch J2000.0. +** +** Called: +** iauPmat76 precession matrix, IAU 1976 +** iauNutm80 nutation matrix, IAU 1980 +** iauRxr product of two r-matrices +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.3 (p145). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rmatp[3][3], rmatn[3][3]; + + +/* Precession matrix, J2000.0 to date. */ + iauPmat76(date1, date2, rmatp); + +/* Nutation matrix. */ + iauNutm80(date1, date2, rmatn); + +/* Combine the matrices: PN = N x P. */ + iauRxr(rmatn, rmatp, rmatpn); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pom00.c b/deps/sofa/20231011/c/src/pom00.c new file mode 100644 index 0000000..10a0f9e --- /dev/null +++ b/deps/sofa/20231011/c/src/pom00.c @@ -0,0 +1,165 @@ +#include "sofa.h" + +void iauPom00(double xp, double yp, double sp, double rpom[3][3]) +/* +** - - - - - - - - - - +** i a u P o m 0 0 +** - - - - - - - - - - +** +** Form the matrix of polar motion for a given date, IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xp,yp double coordinates of the pole (radians, Note 1) +** sp double the TIO locator s' (radians, Note 2) +** +** Returned: +** rpom double[3][3] polar-motion matrix (Note 3) +** +** Notes: +** +** 1) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 2) The argument sp is the TIO locator s', in radians, which +** positions the Terrestrial Intermediate Origin on the equator. It +** is obtained from polar motion observations by numerical +** integration, and so is in essence unpredictable. However, it is +** dominated by a secular drift of about 47 microarcseconds per +** century, and so can be taken into account by using s' = -47*t, +** where t is centuries since J2000.0. The function iauSp00 +** implements this approximation. +** +** 3) The matrix operates in the sense V(TRS) = rpom * V(CIP), meaning +** that it is the final rotation when computing the pointing +** direction to a celestial source. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauRx rotate around X-axis +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Construct the matrix. */ + iauIr(rpom); + iauRz(sp, rpom); + iauRy(-xp, rpom); + iauRx(-yp, rpom); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ppp.c b/deps/sofa/20231011/c/src/ppp.c new file mode 100644 index 0000000..454765c --- /dev/null +++ b/deps/sofa/20231011/c/src/ppp.c @@ -0,0 +1,135 @@ +#include "sofa.h" + +void iauPpp(double a[3], double b[3], double apb[3]) +/* +** - - - - - - - +** i a u P p p +** - - - - - - - +** +** P-vector addition. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** apb double[3] a + b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + apb[0] = a[0] + b[0]; + apb[1] = a[1] + b[1]; + apb[2] = a[2] + b[2]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ppsp.c b/deps/sofa/20231011/c/src/ppsp.c new file mode 100644 index 0000000..4f5fd61 --- /dev/null +++ b/deps/sofa/20231011/c/src/ppsp.c @@ -0,0 +1,144 @@ +#include "sofa.h" + +void iauPpsp(double a[3], double s, double b[3], double apsb[3]) +/* +** - - - - - - - - +** i a u P p s p +** - - - - - - - - +** +** P-vector plus scaled p-vector. +** +** 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[3] first p-vector +** s double scalar (multiplier for b) +** b double[3] second p-vector +** +** Returned: +** apsb double[3] a + s*b +** +** Note: +** It is permissible for any of a, b and apsb to be the same array. +** +** Called: +** iauSxp multiply p-vector by scalar +** iauPpp p-vector plus p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double sb[3]; + + +/* s*b. */ + iauSxp(s, b, sb); + +/* a + s*b. */ + iauPpp(a, sb, apsb); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pr00.c b/deps/sofa/20231011/c/src/pr00.c new file mode 100644 index 0000000..ad5dacb --- /dev/null +++ b/deps/sofa/20231011/c/src/pr00.c @@ -0,0 +1,193 @@ +#include "sofa.h" +#include "sofam.h" + +void iauPr00(double date1, double date2, double *dpsipr, double *depspr) +/* +** - - - - - - - - +** i a u P r 0 0 +** - - - - - - - - +** +** Precession-rate part of the IAU 2000 precession-nutation models +** (part of MHB2000). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsipr,depspr double precession corrections (Notes 2,3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The precession adjustments are expressed as "nutation +** components", corrections in longitude and obliquity with respect +** to the J2000.0 equinox and ecliptic. +** +** 3) Although the precession adjustments are stated to be with respect +** to Lieske et al. (1977), the MHB2000 model does not specify which +** set of Euler angles are to be used and how the adjustments are to +** be applied. The most literal and straightforward procedure is to +** adopt the 4-rotation epsilon_0, psi_A, omega_A, xi_A option, and +** to add dpsipr to psi_A and depspr to both omega_A and eps_A. +** +** 4) This is an implementation of one aspect of the IAU 2000A nutation +** model, formally adopted by the IAU General Assembly in 2000, +** namely MHB2000 (Mathews et al. 2002). +** +** References: +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B., "Expressions +** for the precession quantities based upon the IAU (1976) System of +** Astronomical Constants", Astron.Astrophys., 58, 1-16 (1977) +** +** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation +** and precession New nutation series for nonrigid Earth and +** insights into the Earth's interior", J.Geophys.Res., 107, B4, +** 2002. The MHB2000 code itself was obtained on 9th September 2002 +** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002). +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t; + +/* Precession and obliquity corrections (radians per century) */ + static const double PRECOR = -0.29965 * DAS2R, + OBLCOR = -0.02524 * DAS2R; + + +/* Interval between fundamental epoch J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Precession rate contributions with respect to IAU 1976/80. */ + *dpsipr = PRECOR * t; + *depspr = OBLCOR * t; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/prec76.c b/deps/sofa/20231011/c/src/prec76.c new file mode 100644 index 0000000..5bd2ccc --- /dev/null +++ b/deps/sofa/20231011/c/src/prec76.c @@ -0,0 +1,199 @@ +#include "sofa.h" +#include "sofam.h" + +void iauPrec76(double date01, double date02, double date11, double date12, + double *zeta, double *z, double *theta) +/* +** - - - - - - - - - - +** i a u P r e c 7 6 +** - - - - - - - - - - +** +** IAU 1976 precession model. +** +** This function forms the three Euler angles which implement general +** precession between two dates, using the IAU 1976 model (as for the +** FK5 catalog). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date01,date02 double TDB starting date (Note 1) +** date11,date12 double TDB ending date (Note 1) +** +** Returned: +** zeta double 1st rotation: radians cw around z +** z double 3rd rotation: radians cw around z +** theta double 2nd rotation: radians ccw around y +** +** Notes: +** +** 1) The dates date01+date02 and date11+date12 are Julian Dates, +** apportioned in any convenient way between the arguments daten1 +** and daten2. For example, JD(TDB)=2450123.7 could be expressed in +** any of these ways, among others: +** +** daten1 daten2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** The two dates may be expressed using different methods, but at +** the risk of losing some resolution. +** +** 2) The accumulated precession angles zeta, z, theta are expressed +** through canonical polynomials which are valid only for a limited +** time span. In addition, the IAU 1976 precession rate is known to +** be imperfect. The absolute accuracy of the present formulation +** is better than 0.1 arcsec from 1960AD to 2040AD, better than +** 1 arcsec from 1640AD to 2360AD, and remains below 3 arcsec for +** the whole of the period 500BC to 3000AD. The errors exceed +** 10 arcsec outside the range 1200BC to 3900AD, exceed 100 arcsec +** outside 4200BC to 5600AD and exceed 1000 arcsec outside 6800BC to +** 8200AD. +** +** 3) The three angles are returned in the conventional order, which +** is not the same as the order of the corresponding Euler +** rotations. The precession matrix is +** R_3(-z) x R_2(+theta) x R_3(-zeta). +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282, equations +** (6) & (7), p283. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t0, t, tas2r, w; + + +/* Interval between fundamental epoch J2000.0 and start date (JC). */ + t0 = ((date01 - DJ00) + date02) / DJC; + +/* Interval over which precession required (JC). */ + t = ((date11 - date01) + (date12 - date02)) / DJC; + +/* Euler angles. */ + tas2r = t * DAS2R; + w = 2306.2181 + (1.39656 - 0.000139 * t0) * t0; + + *zeta = (w + ((0.30188 - 0.000344 * t0) + 0.017998 * t) * t) * tas2r; + + *z = (w + ((1.09468 + 0.000066 * t0) + 0.018203 * t) * t) * tas2r; + + *theta = ((2004.3109 + (-0.85330 - 0.000217 * t0) * t0) + + ((-0.42665 - 0.000217 * t0) - 0.041833 * t) * t) * tas2r; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pv2p.c b/deps/sofa/20231011/c/src/pv2p.c new file mode 100644 index 0000000..52c6768 --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauCp(pv[0], p); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pv2s.c b/deps/sofa/20231011/c/src/pv2s.c new file mode 100644 index 0000000..3072bb2 --- /dev/null +++ b/deps/sofa/20231011/c/src/pv2s.c @@ -0,0 +1,194 @@ +#include "sofa.h" + +void iauPv2s(double pv[2][3], + double *theta, double *phi, double *r, + double *td, double *pd, double *rd) +/* +** - - - - - - - - +** i a u P v 2 s +** - - - - - - - - +** +** Convert position/velocity from Cartesian to spherical coordinates. +** +** 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: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** td double rate of change of theta +** pd double rate of change of phi +** rd double rate of change of r +** +** Notes: +** +** 1) If the position part of pv is null, theta, phi, td and pd +** are indeterminate. This is handled by extrapolating the +** position through unit time by using the velocity part of +** pv. This moves the origin without changing the direction +** of the velocity component. If the position and velocity +** components of pv are both null, zeroes are returned for all +** six results. +** +** 2) If the position is a pole, theta, td and pd are indeterminate. +** In such cases zeroes are returned for all three. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, z, xd, yd, zd, rxy2, rxy, r2, rtrue, rw, xyp; + + +/* Components of position/velocity vector. */ + x = pv[0][0]; + y = pv[0][1]; + z = pv[0][2]; + xd = pv[1][0]; + yd = pv[1][1]; + zd = pv[1][2]; + +/* Component of r in XY plane squared. */ + rxy2 = x*x + y*y; + +/* Modulus squared. */ + r2 = rxy2 + z*z; + +/* Modulus. */ + rtrue = sqrt(r2); + +/* If null vector, move the origin along the direction of movement. */ + rw = rtrue; + if (rtrue == 0.0) { + x = xd; + y = yd; + z = zd; + rxy2 = x*x + y*y; + r2 = rxy2 + z*z; + rw = sqrt(r2); + } + +/* Position and velocity in spherical coordinates. */ + rxy = sqrt(rxy2); + xyp = x*xd + y*yd; + if (rxy2 != 0.0) { + *theta = atan2(y, x); + *phi = atan2(z, rxy); + *td = (x*yd - y*xd) / rxy2; + *pd = (zd*rxy2 - z*xyp) / (r2*rxy); + } else { + *theta = 0.0; + *phi = (z != 0.0) ? atan2(z, rxy) : 0.0; + *td = 0.0; + *pd = 0.0; + } + *r = rtrue; + *rd = (rw != 0.0) ? (xyp + z*zd) / rw : 0.0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvdpv.c b/deps/sofa/20231011/c/src/pvdpv.c new file mode 100644 index 0000000..d4fa759 --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 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; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvm.c b/deps/sofa/20231011/c/src/pvm.c new file mode 100644 index 0000000..a024814 --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Distance. */ + *r = iauPm(pv[0]); + +/* Speed. */ + *s = iauPm(pv[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvmpv.c b/deps/sofa/20231011/c/src/pvmpv.c new file mode 100644 index 0000000..eb69fae --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauPmp(a[0], b[0], amb[0]); + iauPmp(a[1], b[1], amb[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvppv.c b/deps/sofa/20231011/c/src/pvppv.c new file mode 100644 index 0000000..3802a17 --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauPpp(a[0], b[0], apb[0]); + iauPpp(a[1], b[1], apb[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvstar.c b/deps/sofa/20231011/c/src/pvstar.c new file mode 100644 index 0000000..4fd78ab --- /dev/null +++ b/deps/sofa/20231011/c/src/pvstar.c @@ -0,0 +1,258 @@ +#include "sofa.h" +#include "sofam.h" + +int iauPvstar(double pv[2][3], double *ra, double *dec, + double *pmr, double *pmd, double *px, double *rv) +/* +** - - - - - - - - - - +** i a u P v s t a r +** - - - - - - - - - - +** +** Convert star position+velocity vector to catalog coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (Note 1): +** pv double[2][3] pv-vector (au, au/day) +** +** Returned (Note 2): +** ra double right ascension (radians) +** dec double declination (radians) +** pmr double RA proper motion (radians/year) +** pmd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, positive = receding) +** +** Returned (function value): +** int status: +** 0 = OK +** -1 = superluminal speed (Note 5) +** -2 = null position vector +** +** Notes: +** +** 1) The specified pv-vector is the coordinate direction (and its rate +** of change) for the date at which the light leaving the star +** reached the solar-system barycenter. +** +** 2) The star data returned by this function are "observables" for an +** imaginary observer at the solar-system barycenter. Proper motion +** and radial velocity are, strictly, in terms of barycentric +** coordinate time, TCB. For most practical applications, it is +** permissible to neglect the distinction between TCB and ordinary +** "proper" time on Earth (TT/TAI). The result will, as a rule, be +** limited by the intrinsic accuracy of the proper-motion and +** radial-velocity data; moreover, the supplied pv-vector is likely +** to be merely an intermediate result (for example generated by the +** function iauStarpv), so that a change of time unit will cancel +** out overall. +** +** In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** Summarizing, the specified pv-vector is for most stars almost +** identical to the result of applying the standard geometrical +** "space motion" transformation to the catalog data. The +** differences, which are the subject of the Stumpff paper cited +** below, are: +** +** (i) In stars with significant radial velocity and proper motion, +** the constantly changing light-time distorts the apparent proper +** motion. Note that this is a classical, not a relativistic, +** effect. +** +** (ii) The transformation complies with special relativity. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds; the radial velocity is in km/s, but +** the pv-vector result is in au and au/day. +** +** 4) The proper motions are the rate of change of the right ascension +** and declination at the catalog epoch and are in radians per Julian +** year. The RA proper motion is in terms of coordinate angle, not +** true angle, and will thus be numerically larger at high +** declinations. +** +** 5) Straight-line motion at constant speed in the inertial frame is +** assumed. If the speed is greater than or equal to the speed of +** light, the function aborts with an error status. +** +** 6) The inverse transformation is performed by the function iauStarpv. +** +** Called: +** iauPn decompose p-vector into modulus and direction +** iauPdp scalar product of two p-vectors +** iauSxp multiply p-vector by scalar +** iauPmp p-vector minus p-vector +** iauPm modulus of p-vector +** iauPpp p-vector plus p-vector +** iauPv2s pv-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. +** +** This revision: 2023 May 4 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double r, pu[3], vr, ur[3], vt, ut[3], bett, betr, d, w, del, + usr[3], ust[3], a, rad, decd, rd; + + +/* Isolate the radial component of the velocity (au/day, inertial). */ + iauPn(pv[0], &r, pu); + vr = iauPdp(pu, pv[1]); + iauSxp(vr, pu, ur); + +/* Isolate the transverse component of the velocity (au/day, inertial). */ + iauPmp(pv[1], ur, ut); + vt = iauPm(ut); + +/* Special-relativity dimensionless parameters. */ + bett = vt / DC; + betr = vr / DC; + +/* The observed-to-inertial correction terms. */ + d = 1.0 + betr; + w = betr*betr + bett*bett; + if (d == 0.0 || w > 1.0) return -1; + del = - w / (sqrt(1.0-w) + 1.0); + +/* Scale inertial tangential velocity vector into observed (au/d). */ + iauSxp(1.0/d, ut, ust); + +/* Compute observed radial velocity vector (au/d). */ + iauSxp(DC*(betr-del)/d, pu, usr); + +/* Combine the two to obtain the observed velocity vector. */ + iauPpp(usr, ust, pv[1]); + +/* Cartesian to spherical. */ + iauPv2s(pv, &a, dec, &r, &rad, &decd, &rd); + if (r == 0.0) return -2; + +/* Return RA in range 0 to 2pi. */ + *ra = iauAnp(a); + +/* Return proper motions in radians per year. */ + *pmr = rad * DJY; + *pmd = decd * DJY; + +/* Return parallax in arcsec. */ + *px = DR2AS / r; + +/* Return radial velocity in km/s. */ + *rv = 1e-3 * rd * DAU / DAYSEC; + +/* Success. */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvtob.c b/deps/sofa/20231011/c/src/pvtob.c new file mode 100644 index 0000000..6462a15 --- /dev/null +++ b/deps/sofa/20231011/c/src/pvtob.c @@ -0,0 +1,204 @@ +#include "sofa.h" +#include "sofam.h" + +void iauPvtob(double elong, double phi, double hm, + double xp, double yp, double sp, double theta, + double pv[2][3]) +/* +** - - - - - - - - - +** i a u P v t o b +** - - - - - - - - - +** +** Position and velocity of a terrestrial observing station. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** elong double longitude (radians, east +ve, Note 1) +** phi double latitude (geodetic, radians, Note 1) +** hm double height above ref. ellipsoid (geodetic, m) +** xp,yp double coordinates of the pole (radians, Note 2) +** sp double the TIO locator s' (radians, Note 2) +** theta double Earth rotation angle (radians, Note 3) +** +** Returned: +** pv double[2][3] position/velocity vector (m, m/s, CIRS) +** +** Notes: +** +** 1) The terrestrial coordinates are with respect to the WGS84 +** reference ellipsoid. +** +** 2) xp and yp are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions), measured along the +** meridians 0 and 90 deg west respectively. sp is the TIO locator +** s', in radians, which positions the Terrestrial Intermediate +** Origin on the equator. For many applications, xp, yp and +** (especially) sp can be set to zero. +** +** 3) If theta is Greenwich apparent sidereal time instead of Earth +** rotation angle, the result is with respect to the true equator +** and equinox of date, i.e. with the x-axis at the equinox rather +** than the celestial intermediate origin. +** +** 4) The velocity units are meters per UT1 second, not per SI second. +** This is unlikely to have any practical consequences in the modern +** era. +** +** 5) No validation is performed on the arguments. Error cases that +** could lead to arithmetic exceptions are trapped by the iauGd2gc +** function, and the result set to zeros. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013), Section 7.4.3.3. +** +** Called: +** iauGd2gc geodetic to geocentric transformation +** iauPom00 polar motion matrix +** iauTrxp product of transpose of r-matrix and p-vector +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Earth rotation rate in radians per UT1 second */ + const double OM = 1.00273781191135448 * D2PI / DAYSEC; + + double xyzm[3], rpm[3][3], xyz[3], x, y, z, s, c; + + +/* Geodetic to geocentric transformation (WGS84). */ + (void) iauGd2gc(1, elong, phi, hm, xyzm); + +/* Polar motion and TIO position. */ + iauPom00(xp, yp, sp, rpm); + iauTrxp(rpm, xyzm, xyz); + x = xyz[0]; + y = xyz[1]; + z = xyz[2]; + +/* Functions of ERA. */ + s = sin(theta); + c = cos(theta); + +/* Position. */ + pv[0][0] = c*x - s*y; + pv[0][1] = s*x + c*y; + pv[0][2] = z; + +/* Velocity. */ + pv[1][0] = OM * ( -s*x - c*y ); + pv[1][1] = OM * ( c*x - s*y ); + pv[1][2] = 0.0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvu.c b/deps/sofa/20231011/c/src/pvu.c new file mode 100644 index 0000000..7ff8b7c --- /dev/null +++ b/deps/sofa/20231011/c/src/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: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauPpsp(pv[0], dt, pv[1], upv[0]); + iauCp(pv[1], upv[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvup.c b/deps/sofa/20231011/c/src/pvup.c new file mode 100644 index 0000000..d99d062 --- /dev/null +++ b/deps/sofa/20231011/c/src/pvup.c @@ -0,0 +1,138 @@ +#include "sofa.h" + +void iauPvup(double dt, double pv[2][3], double p[3]) +/* +** - - - - - - - - +** i a u P v u p +** - - - - - - - - +** +** Update a pv-vector, discarding the velocity component. +** +** 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: +** p double[3] p-vector +** +** 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. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + p[0] = pv[0][0] + dt * pv[1][0]; + p[1] = pv[0][1] + dt * pv[1][1]; + p[2] = pv[0][2] + dt * pv[1][2]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pvxpv.c b/deps/sofa/20231011/c/src/pvxpv.c new file mode 100644 index 0000000..b45187c --- /dev/null +++ b/deps/sofa/20231011/c/src/pvxpv.c @@ -0,0 +1,157 @@ +#include "sofa.h" + +void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]) +/* +** - - - - - - - - - +** i a u P v x p v +** - - - - - - - - - +** +** Outer (=vector=cross) 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: +** axb double[2][3] a x b +** +** Notes: +** +** 1) If the position and velocity components of the two pv-vectors are +** ( ap, av ) and ( bp, bv ), the result, a x b, is the pair of +** vectors ( ap x bp, ap x bv + av x bp ). The two vectors are the +** cross-product of the two p-vectors and its derivative. +** +** 2) It is permissible to re-use the same array for any of the +** arguments. +** +** Called: +** iauCpv copy pv-vector +** iauPxp vector product of two p-vectors +** iauPpp p-vector plus p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double wa[2][3], wb[2][3], axbd[3], adxb[3]; + + +/* Make copies of the inputs. */ + iauCpv(a, wa); + iauCpv(b, wb); + +/* a x b = position part of result. */ + iauPxp(wa[0], wb[0], axb[0]); + +/* a x bdot + adot x b = velocity part of result. */ + iauPxp(wa[0], wb[1], axbd); + iauPxp(wa[1], wb[0], adxb); + iauPpp(axbd, adxb, axb[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/pxp.c b/deps/sofa/20231011/c/src/pxp.c new file mode 100644 index 0000000..c764163 --- /dev/null +++ b/deps/sofa/20231011/c/src/pxp.c @@ -0,0 +1,144 @@ +#include "sofa.h" + +void iauPxp(double a[3], double b[3], double axb[3]) +/* +** - - - - - - - +** i a u P x p +** - - - - - - - +** +** p-vector outer (=vector=cross) product. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** axb double[3] a x b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double xa, ya, za, xb, yb, zb; + + + xa = a[0]; + ya = a[1]; + za = a[2]; + xb = b[0]; + yb = b[1]; + zb = b[2]; + axb[0] = ya*zb - za*yb; + axb[1] = za*xb - xa*zb; + axb[2] = xa*yb - ya*xb; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/refco.c b/deps/sofa/20231011/c/src/refco.c new file mode 100644 index 0000000..3eff043 --- /dev/null +++ b/deps/sofa/20231011/c/src/refco.c @@ -0,0 +1,308 @@ +#include "sofa.h" +#include "sofam.h" + +void iauRefco(double phpa, double tc, double rh, double wl, + double *refa, double *refb) +/* +** - - - - - - - - - +** i a u R e f c o +** - - - - - - - - - +** +** Determine the constants A and B in the atmospheric refraction model +** dZ = A tan Z + B tan^3 Z. +** +** Z is the "observed" zenith distance (i.e. affected by refraction) +** and dZ is what to add to Z to give the "topocentric" (i.e. in vacuo) +** zenith distance. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** phpa double pressure at the observer (hPa = millibar) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers) +** +** Returned: +** refa double* tan Z coefficient (radians) +** refb double* tan^3 Z coefficient (radians) +** +** Notes: +** +** 1) The model balances speed and accuracy to give good results in +** applications where performance at low altitudes is not paramount. +** Performance is maintained across a range of conditions, and +** applies to both optical/IR and radio. +** +** 2) The model omits the effects of (i) height above sea level (apart +** from the reduced pressure itself), (ii) latitude (i.e. the +** flattening of the Earth), (iii) variations in tropospheric lapse +** rate and (iv) dispersive effects in the radio. +** +** The model was tested using the following range of conditions: +** +** lapse rates 0.0055, 0.0065, 0.0075 deg/meter +** latitudes 0, 25, 50, 75 degrees +** heights 0, 2500, 5000 meters ASL +** pressures mean for height -10% to +5% in steps of 5% +** temperatures -10 deg to +20 deg with respect to 280 deg at SL +** relative humidity 0, 0.5, 1 +** wavelengths 0.4, 0.6, ... 2 micron, + radio +** zenith distances 15, 45, 75 degrees +** +** The accuracy with respect to raytracing through a model +** atmosphere was as follows: +** +** worst RMS +** +** optical/IR 62 mas 8 mas +** radio 319 mas 49 mas +** +** For this particular set of conditions: +** +** lapse rate 0.0065 K/meter +** latitude 50 degrees +** sea level +** pressure 1005 mb +** temperature 280.15 K +** humidity 80% +** wavelength 5740 Angstroms +** +** the results were as follows: +** +** ZD raytrace iauRefco Saastamoinen +** +** 10 10.27 10.27 10.27 +** 20 21.19 21.20 21.19 +** 30 33.61 33.61 33.60 +** 40 48.82 48.83 48.81 +** 45 58.16 58.18 58.16 +** 50 69.28 69.30 69.27 +** 55 82.97 82.99 82.95 +** 60 100.51 100.54 100.50 +** 65 124.23 124.26 124.20 +** 70 158.63 158.68 158.61 +** 72 177.32 177.37 177.31 +** 74 200.35 200.38 200.32 +** 76 229.45 229.43 229.42 +** 78 267.44 267.29 267.41 +** 80 319.13 318.55 319.10 +** +** deg arcsec arcsec arcsec +** +** The values for Saastamoinen's formula (which includes terms +** up to tan^5) are taken from Hohenkerk and Sinclair (1985). +** +** 3) A wl value in the range 0-100 selects the optical/IR case and is +** wavelength in micrometers. Any value outside this range selects +** the radio case. +** +** 4) Outlandish input parameters are silently limited to +** mathematically safe values. Zero pressure is permissible, and +** causes zeroes to be returned. +** +** 5) The algorithm draws on several sources, as follows: +** +** a) The formula for the saturation vapour pressure of water as +** a function of temperature and temperature is taken from +** Equations (A4.5-A4.7) of Gill (1982). +** +** b) The formula for the water vapour pressure, given the +** saturation pressure and the relative humidity, is from +** Crane (1976), Equation (2.5.5). +** +** c) The refractivity of air is a function of temperature, +** total pressure, water-vapour pressure and, in the case +** of optical/IR, wavelength. The formulae for the two cases are +** developed from Hohenkerk & Sinclair (1985) and Rueger (2002). +** The IAG (1999) optical refractivity for dry air is used. +** +** d) The formula for beta, the ratio of the scale height of the +** atmosphere to the geocentric distance of the observer, is +** an adaption of Equation (9) from Stone (1996). The +** adaptations, arrived at empirically, consist of (i) a small +** adjustment to the coefficient and (ii) a humidity term for the +** radio case only. +** +** e) The formulae for the refraction constants as a function of +** n-1 and beta are from Green (1987), Equation (4.31). +** +** References: +** +** Crane, R.K., Meeks, M.L. (ed), "Refraction Effects in the Neutral +** Atmosphere", Methods of Experimental Physics: Astrophysics 12B, +** Academic Press, 1976. +** +** Gill, Adrian E., "Atmosphere-Ocean Dynamics", Academic Press, +** 1982. +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987. +** +** Hohenkerk, C.Y., & Sinclair, A.T., NAO Technical Note No. 63, +** 1985. +** +** IAG Resolutions adopted at the XXIIth General Assembly in +** Birmingham, 1999, Resolution 3. +** +** Rueger, J.M., "Refractive Index Formulae for Electronic Distance +** Measurement with Radio and Millimetre Waves", in Unisurv Report +** S-68, School of Surveying and Spatial Information Systems, +** University of New South Wales, Sydney, Australia, 2002. +** +** Stone, Ronald C., P.A.S.P. 108, 1051-1058, 1996. +** +** This revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int optic; + double p, t, r, w, ps, pw, tk, wlsq, gamma, beta; + + +/* Decide whether optical/IR or radio case: switch at 100 microns. */ + optic = ( wl <= 100.0 ); + +/* Restrict parameters to safe values. */ + t = gmax ( tc, -150.0 ); + t = gmin ( t, 200.0 ); + p = gmax ( phpa, 0.0 ); + p = gmin ( p, 10000.0 ); + r = gmax ( rh, 0.0 ); + r = gmin ( r, 1.0 ); + w = gmax ( wl, 0.1 ); + w = gmin ( w, 1e6 ); + +/* Water vapour pressure at the observer. */ + if ( p > 0.0 ) { + ps = pow ( 10.0, ( 0.7859 + 0.03477*t ) / + ( 1.0 + 0.00412*t ) ) * + ( 1.0 + p * ( 4.5e-6 + 6e-10*t*t ) ); + pw = r * ps / ( 1.0 - (1.0-r)*ps/p ); + } else { + pw = 0.0; + } + +/* Refractive index minus 1 at the observer. */ + tk = t + 273.15; + if ( optic ) { + wlsq = w * w; + gamma = ( ( 77.53484e-6 + + ( 4.39108e-7 + 3.666e-9/wlsq ) / wlsq ) * p + - 11.2684e-6*pw ) / tk; + } else { + gamma = ( 77.6890e-6*p - ( 6.3938e-6 - 0.375463/tk ) * pw ) / tk; + } + +/* Formula for beta from Stone, with empirical adjustments. */ + beta = 4.4474e-6 * tk; + if ( ! optic ) beta -= 0.0074 * pw * beta; + +/* Refraction constants from Green. */ + *refa = gamma * ( 1.0 - beta ); + *refb = - gamma * ( beta - gamma / 2.0 ); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rm2v.c b/deps/sofa/20231011/c/src/rm2v.c new file mode 100644 index 0000000..53996bd --- /dev/null +++ b/deps/sofa/20231011/c/src/rm2v.c @@ -0,0 +1,161 @@ +#include "sofa.h" + +void iauRm2v(double r[3][3], double w[3]) +/* +** - - - - - - - - +** i a u R m 2 v +** - - - - - - - - +** +** Express an r-matrix as an r-vector. +** +** 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] rotation matrix +** +** Returned: +** w double[3] rotation vector (Note 1) +** +** Notes: +** +** 1) A rotation matrix describes a rotation through some angle about +** some arbitrary axis called the Euler axis. The "rotation vector" +** returned by this function has the same direction as the Euler axis, +** and its magnitude is the angle in radians. (The magnitude and +** direction can be separated by means of the function iauPn.) +** +** 2) If r is null, so is the result. If r is not a rotation matrix +** the result is undefined; r must be proper (i.e. have a positive +** determinant) and real orthogonal (inverse = transpose). +** +** 3) The reference frame rotates clockwise as seen looking along +** the rotation vector from the origin. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, z, s2, c2, phi, f; + + + x = r[1][2] - r[2][1]; + y = r[2][0] - r[0][2]; + z = r[0][1] - r[1][0]; + s2 = sqrt(x*x + y*y + z*z); + if (s2 > 0) { + c2 = r[0][0] + r[1][1] + r[2][2] - 1.0; + phi = atan2(s2, c2); + f = phi / s2; + w[0] = x * f; + w[1] = y * f; + w[2] = z * f; + } else { + w[0] = 0.0; + w[1] = 0.0; + w[2] = 0.0; + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rv2m.c b/deps/sofa/20231011/c/src/rv2m.c new file mode 100644 index 0000000..1aadd86 --- /dev/null +++ b/deps/sofa/20231011/c/src/rv2m.c @@ -0,0 +1,168 @@ +#include "sofa.h" + +void iauRv2m(double w[3], double r[3][3]) +/* +** - - - - - - - - +** i a u R v 2 m +** - - - - - - - - +** +** Form the r-matrix corresponding to a given r-vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** w double[3] rotation vector (Note 1) +** +** Returned: +** r double[3][3] rotation matrix +** +** Notes: +** +** 1) A rotation matrix describes a rotation through some angle about +** some arbitrary axis called the Euler axis. The "rotation vector" +** supplied to This function has the same direction as the Euler +** axis, and its magnitude is the angle in radians. +** +** 2) If w is null, the identity matrix is returned. +** +** 3) The reference frame rotates clockwise as seen looking along the +** rotation vector from the origin. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, z, phi, s, c, f; + + +/* Euler angle (magnitude of rotation vector) and functions. */ + x = w[0]; + y = w[1]; + z = w[2]; + phi = sqrt(x*x + y*y + z*z); + s = sin(phi); + c = cos(phi); + f = 1.0 - c; + +/* Euler axis (direction of rotation vector), perhaps null. */ + if (phi > 0.0) { + x /= phi; + y /= phi; + z /= phi; + } + +/* Form the rotation matrix. */ + r[0][0] = x*x*f + c; + r[0][1] = x*y*f + z*s; + r[0][2] = x*z*f - y*s; + r[1][0] = y*x*f - z*s; + r[1][1] = y*y*f + c; + r[1][2] = y*z*f + x*s; + r[2][0] = z*x*f + y*s; + r[2][1] = z*y*f - x*s; + r[2][2] = z*z*f + c; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rx.c b/deps/sofa/20231011/c/src/rx.c new file mode 100644 index 0000000..0e07b04 --- /dev/null +++ b/deps/sofa/20231011/c/src/rx.c @@ -0,0 +1,160 @@ +#include "sofa.h" + +void iauRx(double phi, double r[3][3]) +/* +** - - - - - - +** i a u R x +** - - - - - - +** +** Rotate an r-matrix about the x-axis. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** phi double angle (radians) +** +** Given and returned: +** r double[3][3] r-matrix, rotated +** +** Notes: +** +** 1) Calling this function with positive phi incorporates in the +** supplied r-matrix r an additional rotation, about the x-axis, +** anticlockwise as seen looking towards the origin from positive x. +** +** 2) The additional rotation can be represented by this matrix: +** +** ( 1 0 0 ) +** ( ) +** ( 0 + cos(phi) + sin(phi) ) +** ( ) +** ( 0 - sin(phi) + cos(phi) ) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double s, c, a10, a11, a12, a20, a21, a22; + + + s = sin(phi); + c = cos(phi); + + a10 = c*r[1][0] + s*r[2][0]; + a11 = c*r[1][1] + s*r[2][1]; + a12 = c*r[1][2] + s*r[2][2]; + a20 = - s*r[1][0] + c*r[2][0]; + a21 = - s*r[1][1] + c*r[2][1]; + a22 = - s*r[1][2] + c*r[2][2]; + + r[1][0] = a10; + r[1][1] = a11; + r[1][2] = a12; + r[2][0] = a20; + r[2][1] = a21; + r[2][2] = a22; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rxp.c b/deps/sofa/20231011/c/src/rxp.c new file mode 100644 index 0000000..b5e93dc --- /dev/null +++ b/deps/sofa/20231011/c/src/rxp.c @@ -0,0 +1,149 @@ +#include "sofa.h" + +void iauRxp(double r[3][3], double p[3], double rp[3]) +/* +** - - - - - - - +** i a u R x p +** - - - - - - - +** +** Multiply a p-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 +** p double[3] p-vector +** +** Returned: +** rp double[3] r * p +** +** Note: +** It is permissible for p and rp to be the same array. +** +** Called: +** iauCp copy p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double w, wrp[3]; + int i, j; + + +/* Matrix r * vector p. */ + for (j = 0; j < 3; j++) { + w = 0.0; + for (i = 0; i < 3; i++) { + w += r[j][i] * p[i]; + } + wrp[j] = w; + } + +/* Return the result. */ + iauCp(wrp, rp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rxpv.c b/deps/sofa/20231011/c/src/rxpv.c new file mode 100644 index 0000000..c3a9fb9 --- /dev/null +++ b/deps/sofa/20231011/c/src/rxpv.c @@ -0,0 +1,142 @@ +#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 +** +** Notes: +** +** 1) The algorithm is for the simple case where the r-matrix r is not +** a function of time. The case where r is a function of time leads +** to an additional velocity component equal to the product of the +** derivative of r and the position vector. +** +** 2) It is permissible for pv and rpv to be the same array. +** +** Called: +** iauRxp product of r-matrix and p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauRxp(r, pv[0], rpv[0]); + iauRxp(r, pv[1], rpv[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rxr.c b/deps/sofa/20231011/c/src/rxr.c new file mode 100644 index 0000000..4e0aded --- /dev/null +++ b/deps/sofa/20231011/c/src/rxr.c @@ -0,0 +1,149 @@ +#include "sofa.h" + +void iauRxr(double a[3][3], double b[3][3], double atb[3][3]) +/* +** - - - - - - - +** i a u R x r +** - - - - - - - +** +** Multiply two r-matrices. +** +** 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[3][3] first r-matrix +** b double[3][3] second r-matrix +** +** Returned: +** atb double[3][3] a * b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +** Called: +** iauCr copy r-matrix +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int i, j, k; + double w, wm[3][3]; + + + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + w = 0.0; + for (k = 0; k < 3; k++) { + w += a[i][k] * b[k][j]; + } + wm[i][j] = w; + } + } + iauCr(wm, atb); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ry.c b/deps/sofa/20231011/c/src/ry.c new file mode 100644 index 0000000..921535a --- /dev/null +++ b/deps/sofa/20231011/c/src/ry.c @@ -0,0 +1,160 @@ +#include "sofa.h" + +void iauRy(double theta, double r[3][3]) +/* +** - - - - - - +** i a u R y +** - - - - - - +** +** Rotate an r-matrix about the y-axis. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double angle (radians) +** +** Given and returned: +** r double[3][3] r-matrix, rotated +** +** Notes: +** +** 1) Calling this function with positive theta incorporates in the +** supplied r-matrix r an additional rotation, about the y-axis, +** anticlockwise as seen looking towards the origin from positive y. +** +** 2) The additional rotation can be represented by this matrix: +** +** ( + cos(theta) 0 - sin(theta) ) +** ( ) +** ( 0 1 0 ) +** ( ) +** ( + sin(theta) 0 + cos(theta) ) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double s, c, a00, a01, a02, a20, a21, a22; + + + s = sin(theta); + c = cos(theta); + + a00 = c*r[0][0] - s*r[2][0]; + a01 = c*r[0][1] - s*r[2][1]; + a02 = c*r[0][2] - s*r[2][2]; + a20 = s*r[0][0] + c*r[2][0]; + a21 = s*r[0][1] + c*r[2][1]; + a22 = s*r[0][2] + c*r[2][2]; + + r[0][0] = a00; + r[0][1] = a01; + r[0][2] = a02; + r[2][0] = a20; + r[2][1] = a21; + r[2][2] = a22; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/rz.c b/deps/sofa/20231011/c/src/rz.c new file mode 100644 index 0000000..baee877 --- /dev/null +++ b/deps/sofa/20231011/c/src/rz.c @@ -0,0 +1,160 @@ +#include "sofa.h" + +void iauRz(double psi, double r[3][3]) +/* +** - - - - - - +** i a u R z +** - - - - - - +** +** Rotate an r-matrix about the z-axis. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** psi double angle (radians) +** +** Given and returned: +** r double[3][3] r-matrix, rotated +** +** Notes: +** +** 1) Calling this function with positive psi incorporates in the +** supplied r-matrix r an additional rotation, about the z-axis, +** anticlockwise as seen looking towards the origin from positive z. +** +** 2) The additional rotation can be represented by this matrix: +** +** ( + cos(psi) + sin(psi) 0 ) +** ( ) +** ( - sin(psi) + cos(psi) 0 ) +** ( ) +** ( 0 0 1 ) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double s, c, a00, a01, a02, a10, a11, a12; + + + s = sin(psi); + c = cos(psi); + + a00 = c*r[0][0] + s*r[1][0]; + a01 = c*r[0][1] + s*r[1][1]; + a02 = c*r[0][2] + s*r[1][2]; + a10 = - s*r[0][0] + c*r[1][0]; + a11 = - s*r[0][1] + c*r[1][1]; + a12 = - s*r[0][2] + c*r[1][2]; + + r[0][0] = a00; + r[0][1] = a01; + r[0][2] = a02; + r[1][0] = a10; + r[1][1] = a11; + r[1][2] = a12; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s00.c b/deps/sofa/20231011/c/src/s00.c new file mode 100644 index 0000000..a026d3b --- /dev/null +++ b/deps/sofa/20231011/c/src/s00.c @@ -0,0 +1,424 @@ +#include "sofa.h" +#include "sofam.h" + +double iauS00(double date1, double date2, double x, double y) +/* +** - - - - - - - +** i a u S 0 0 +** - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, given the CIP's X,Y +** coordinates. Compatible with IAU 2000A precession-nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** x,y double CIP coordinates (Note 3) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems: the two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The quantity s remains below 0.1 arcsecond +** throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. This +** function requires X,Y to be supplied by the caller, who is +** responsible for providing values that are consistent with the +** supplied date. +** +** 4) The model is consistent with the IAU 2000A precession-nutation. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Time since J2000.0, in Julian centuries */ + double t; + +/* Miscellaneous */ + int i, j; + double a, w0, w1, w2, w3, w4, w5; + +/* Fundamental arguments */ + double fa[8]; + +/* Returned value */ + double s; + +/* --------------------- */ +/* The series for s+XY/2 */ +/* --------------------- */ + + typedef struct { + int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */ + double s, c; /* sine and cosine coefficients */ + } TERM; + +/* Polynomial coefficients */ + static const double sp[] = { + + /* 1-6 */ + 94.00e-6, + 3808.35e-6, + -119.94e-6, + -72574.09e-6, + 27.70e-6, + 15.61e-6 + }; + +/* Terms of order t^0 */ + static const TERM s0[] = { + + /* 1-10 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, -2640.73e-6, 0.39e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, -63.53e-6, 0.02e-6 }, + {{ 0, 0, 2, -2, 3, 0, 0, 0}, -11.75e-6, -0.01e-6 }, + {{ 0, 0, 2, -2, 1, 0, 0, 0}, -11.21e-6, -0.01e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, 4.57e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 3, 0, 0, 0}, -2.02e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 1, 0, 0, 0}, -1.98e-6, 0.00e-6 }, + {{ 0, 0, 0, 0, 3, 0, 0, 0}, 1.72e-6, 0.00e-6 }, + {{ 0, 1, 0, 0, 1, 0, 0, 0}, 1.41e-6, 0.01e-6 }, + {{ 0, 1, 0, 0, -1, 0, 0, 0}, 1.26e-6, 0.01e-6 }, + + /* 11-20 */ + {{ 1, 0, 0, 0, -1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, 1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 3, 0, 0, 0}, -0.46e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 1, 0, 0, 0}, -0.45e-6, 0.00e-6 }, + {{ 0, 0, 4, -4, 4, 0, 0, 0}, -0.36e-6, 0.00e-6 }, + {{ 0, 0, 1, -1, 1, -8, 12, 0}, 0.24e-6, 0.12e-6 }, + {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.32e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.28e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 3, 0, 0, 0}, -0.27e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 1, 0, 0, 0}, -0.26e-6, 0.00e-6 }, + + /* 21-30 */ + {{ 0, 0, 2, -2, 0, 0, 0, 0}, 0.21e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -3, 0, 0, 0}, -0.19e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -1, 0, 0, 0}, -0.18e-6, 0.00e-6 }, + {{ 0, 0, 0, 0, 0, 8,-13, -1}, 0.10e-6, -0.05e-6 }, + {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.15e-6, 0.00e-6 }, + {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 2, 0, 0, 0}, 0.14e-6, 0.00e-6 }, + {{ 1, 0, 0, -2, 1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, + {{ 1, 0, 0, -2, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, + {{ 0, 0, 4, -2, 4, 0, 0, 0}, -0.13e-6, 0.00e-6 }, + + /* 31-33 */ + {{ 0, 0, 2, -2, 4, 0, 0, 0}, 0.11e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -3, 0, 0, 0}, -0.11e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -1, 0, 0, 0}, -0.11e-6, 0.00e-6 } + }; + +/* Terms of order t^1 */ + static const TERM s1[] ={ + + /* 1-3 */ + {{ 0, 0, 0, 0, 2, 0, 0, 0}, -0.07e-6, 3.57e-6 }, + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 1.71e-6, -0.03e-6 }, + {{ 0, 0, 2, -2, 3, 0, 0, 0}, 0.00e-6, 0.48e-6 } + }; + +/* Terms of order t^2 */ + static const TERM s2[] ={ + + /* 1-10 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 743.53e-6, -0.17e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, 56.91e-6, 0.06e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, 9.84e-6, -0.01e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, -8.85e-6, 0.01e-6 }, + {{ 0, 1, 0, 0, 0, 0, 0, 0}, -6.38e-6, -0.05e-6 }, + {{ 1, 0, 0, 0, 0, 0, 0, 0}, -3.07e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 2, 0, 0, 0}, 2.23e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.67e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 2, 0, 0, 0}, 1.30e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -2, 0, 0, 0}, 0.93e-6, 0.00e-6 }, + + /* 11-20 */ + {{ 1, 0, 0, -2, 0, 0, 0, 0}, 0.68e-6, 0.00e-6 }, + {{ 0, 0, 2, -2, 1, 0, 0, 0}, -0.55e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -2, 0, 0, 0}, 0.53e-6, 0.00e-6 }, + {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.27e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.27e-6, 0.00e-6 }, + {{ 1, 0, -2, -2, -2, 0, 0, 0}, -0.26e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.25e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.22e-6, 0.00e-6 }, + {{ 2, 0, 0, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 }, + {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.20e-6, 0.00e-6 }, + + /* 21-25 */ + {{ 0, 0, 2, 2, 2, 0, 0, 0}, 0.17e-6, 0.00e-6 }, + {{ 2, 0, 2, 0, 2, 0, 0, 0}, 0.13e-6, 0.00e-6 }, + {{ 2, 0, 0, 0, 0, 0, 0, 0}, -0.13e-6, 0.00e-6 }, + {{ 1, 0, 2, -2, 2, 0, 0, 0}, -0.12e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.11e-6, 0.00e-6 } + }; + +/* Terms of order t^3 */ + static const TERM s3[] ={ + + /* 1-4 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 0.30e-6, -23.51e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, -0.03e-6, -1.39e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.01e-6, -0.24e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, 0.00e-6, 0.22e-6 } + }; + +/* Terms of order t^4 */ + static const TERM s4[] ={ + + /* 1-1 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.26e-6, -0.01e-6 } + }; + +/* Number of terms in the series */ + const int NS0 = (int) (sizeof s0 / sizeof (TERM)); + const int NS1 = (int) (sizeof s1 / sizeof (TERM)); + const int NS2 = (int) (sizeof s2 / sizeof (TERM)); + const int NS3 = (int) (sizeof s3 / sizeof (TERM)); + const int NS4 = (int) (sizeof s4 / sizeof (TERM)); + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental epoch J2000.0 and current date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Fundamental Arguments (from IERS Conventions 2003) */ + +/* Mean anomaly of the Moon. */ + fa[0] = iauFal03(t); + +/* Mean anomaly of the Sun. */ + fa[1] = iauFalp03(t); + +/* Mean longitude of the Moon minus that of the ascending node. */ + fa[2] = iauFaf03(t); + +/* Mean elongation of the Moon from the Sun. */ + fa[3] = iauFad03(t); + +/* Mean longitude of the ascending node of the Moon. */ + fa[4] = iauFaom03(t); + +/* Mean longitude of Venus. */ + fa[5] = iauFave03(t); + +/* Mean longitude of Earth. */ + fa[6] = iauFae03(t); + +/* General precession in longitude. */ + fa[7] = iauFapa03(t); + +/* Evaluate s. */ + w0 = sp[0]; + w1 = sp[1]; + w2 = sp[2]; + w3 = sp[3]; + w4 = sp[4]; + w5 = sp[5]; + + for (i = NS0-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s0[i].nfa[j] * fa[j]; + } + w0 += s0[i].s * sin(a) + s0[i].c * cos(a); + } + + for (i = NS1-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s1[i].nfa[j] * fa[j]; + } + w1 += s1[i].s * sin(a) + s1[i].c * cos(a); + } + + for (i = NS2-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s2[i].nfa[j] * fa[j]; + } + w2 += s2[i].s * sin(a) + s2[i].c * cos(a); + } + + for (i = NS3-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s3[i].nfa[j] * fa[j]; + } + w3 += s3[i].s * sin(a) + s3[i].c * cos(a); + } + + for (i = NS4-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s4[i].nfa[j] * fa[j]; + } + w4 += s4[i].s * sin(a) + s4[i].c * cos(a); + } + + s = (w0 + + (w1 + + (w2 + + (w3 + + (w4 + + w5 * t) * t) * t) * t) * t) * DAS2R - x*y/2.0; + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s00a.c b/deps/sofa/20231011/c/src/s00a.c new file mode 100644 index 0000000..c48a85e --- /dev/null +++ b/deps/sofa/20231011/c/src/s00a.c @@ -0,0 +1,195 @@ +#include "sofa.h" + +double iauS00a(double date1, double date2) +/* +** - - - - - - - - +** i a u S 0 0 a +** - - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, using the IAU 2000A +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems. The two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The CIO locator s remains a small fraction of +** 1 arcsecond throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. The present +** function uses the full IAU 2000A nutation model when predicting +** the CIP position. Faster results, with no significant loss of +** accuracy, can be obtained via the function iauS00b, which uses +** instead the IAU 2000B truncated model. +** +** Called: +** iauPnm00a classical NPB matrix, IAU 2000A +** iauBnp2xy extract CIP X,Y from the BPN matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3], x, y, s; + + +/* Bias-precession-nutation-matrix, IAU 2000A. */ + iauPnm00a(date1, date2, rbpn); + +/* Extract the CIP coordinates. */ + iauBpn2xy(rbpn, &x, &y); + +/* Compute the CIO locator s, given the CIP coordinates. */ + s = iauS00(date1, date2, x, y); + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s00b.c b/deps/sofa/20231011/c/src/s00b.c new file mode 100644 index 0000000..665b698 --- /dev/null +++ b/deps/sofa/20231011/c/src/s00b.c @@ -0,0 +1,195 @@ +#include "sofa.h" + +double iauS00b(double date1, double date2) +/* +** - - - - - - - - +** i a u S 0 0 b +** - - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, using the IAU 2000B +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems. The two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The CIO locator s remains a small fraction of +** 1 arcsecond throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. The present +** function uses the IAU 2000B truncated nutation model when +** predicting the CIP position. The function iauS00a uses instead +** the full IAU 2000A model, but with no significant increase in +** accuracy and at some cost in speed. +** +** Called: +** iauPnm00b classical NPB matrix, IAU 2000B +** iauBnp2xy extract CIP X,Y from the BPN matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3], x, y, s; + + +/* Bias-precession-nutation-matrix, IAU 2000B. */ + iauPnm00b(date1, date2, rbpn); + +/* Extract the CIP coordinates. */ + iauBpn2xy(rbpn, &x, &y); + +/* Compute the CIO locator s, given the CIP coordinates. */ + s = iauS00(date1, date2, x, y); + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s06.c b/deps/sofa/20231011/c/src/s06.c new file mode 100644 index 0000000..79c7e8c --- /dev/null +++ b/deps/sofa/20231011/c/src/s06.c @@ -0,0 +1,421 @@ +#include "sofa.h" +#include "sofam.h" + +double iauS06(double date1, double date2, double x, double y) +/* +** - - - - - - - +** i a u S 0 6 +** - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, given the CIP's X,Y +** coordinates. Compatible with IAU 2006/2000A precession-nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** x,y double CIP coordinates (Note 3) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems: the two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The quantity s remains below 0.1 arcsecond +** throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. This +** function requires X,Y to be supplied by the caller, who is +** responsible for providing values that are consistent with the +** supplied date. +** +** 4) The model is consistent with the "P03" precession (Capitaine et +** al. 2003), adopted by IAU 2006 Resolution 1, 2006, and the +** IAU 2000A nutation (with P03 adjustments). +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, Astron. +** Astrophys. 432, 355 +** +** McCarthy, D.D., Petit, G. (eds.) 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Time since J2000.0, in Julian centuries */ + double t; + +/* Miscellaneous */ + int i, j; + double a, w0, w1, w2, w3, w4, w5; + +/* Fundamental arguments */ + double fa[8]; + +/* Returned value */ + double s; + +/* --------------------- */ +/* The series for s+XY/2 */ +/* --------------------- */ + + typedef struct { + int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */ + double s, c; /* sine and cosine coefficients */ + } TERM; + +/* Polynomial coefficients */ + static const double sp[] = { + + /* 1-6 */ + 94.00e-6, + 3808.65e-6, + -122.68e-6, + -72574.11e-6, + 27.98e-6, + 15.62e-6 + }; + +/* Terms of order t^0 */ + static const TERM s0[] = { + + /* 1-10 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, -2640.73e-6, 0.39e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, -63.53e-6, 0.02e-6 }, + {{ 0, 0, 2, -2, 3, 0, 0, 0}, -11.75e-6, -0.01e-6 }, + {{ 0, 0, 2, -2, 1, 0, 0, 0}, -11.21e-6, -0.01e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, 4.57e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 3, 0, 0, 0}, -2.02e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 1, 0, 0, 0}, -1.98e-6, 0.00e-6 }, + {{ 0, 0, 0, 0, 3, 0, 0, 0}, 1.72e-6, 0.00e-6 }, + {{ 0, 1, 0, 0, 1, 0, 0, 0}, 1.41e-6, 0.01e-6 }, + {{ 0, 1, 0, 0, -1, 0, 0, 0}, 1.26e-6, 0.01e-6 }, + + /* 11-20 */ + {{ 1, 0, 0, 0, -1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, 1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 3, 0, 0, 0}, -0.46e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 1, 0, 0, 0}, -0.45e-6, 0.00e-6 }, + {{ 0, 0, 4, -4, 4, 0, 0, 0}, -0.36e-6, 0.00e-6 }, + {{ 0, 0, 1, -1, 1, -8, 12, 0}, 0.24e-6, 0.12e-6 }, + {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.32e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.28e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 3, 0, 0, 0}, -0.27e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 1, 0, 0, 0}, -0.26e-6, 0.00e-6 }, + + /* 21-30 */ + {{ 0, 0, 2, -2, 0, 0, 0, 0}, 0.21e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -3, 0, 0, 0}, -0.19e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -1, 0, 0, 0}, -0.18e-6, 0.00e-6 }, + {{ 0, 0, 0, 0, 0, 8,-13, -1}, 0.10e-6, -0.05e-6 }, + {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.15e-6, 0.00e-6 }, + {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 2, 0, 0, 0}, 0.14e-6, 0.00e-6 }, + {{ 1, 0, 0, -2, 1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, + {{ 1, 0, 0, -2, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, + {{ 0, 0, 4, -2, 4, 0, 0, 0}, -0.13e-6, 0.00e-6 }, + + /* 31-33 */ + {{ 0, 0, 2, -2, 4, 0, 0, 0}, 0.11e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -3, 0, 0, 0}, -0.11e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -1, 0, 0, 0}, -0.11e-6, 0.00e-6 } + }; + +/* Terms of order t^1 */ + static const TERM s1[] = { + + /* 1 - 3 */ + {{ 0, 0, 0, 0, 2, 0, 0, 0}, -0.07e-6, 3.57e-6 }, + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 1.73e-6, -0.03e-6 }, + {{ 0, 0, 2, -2, 3, 0, 0, 0}, 0.00e-6, 0.48e-6 } + }; + +/* Terms of order t^2 */ + static const TERM s2[] = { + + /* 1-10 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 743.52e-6, -0.17e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, 56.91e-6, 0.06e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, 9.84e-6, -0.01e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, -8.85e-6, 0.01e-6 }, + {{ 0, 1, 0, 0, 0, 0, 0, 0}, -6.38e-6, -0.05e-6 }, + {{ 1, 0, 0, 0, 0, 0, 0, 0}, -3.07e-6, 0.00e-6 }, + {{ 0, 1, 2, -2, 2, 0, 0, 0}, 2.23e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.67e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 2, 0, 0, 0}, 1.30e-6, 0.00e-6 }, + {{ 0, 1, -2, 2, -2, 0, 0, 0}, 0.93e-6, 0.00e-6 }, + + /* 11-20 */ + {{ 1, 0, 0, -2, 0, 0, 0, 0}, 0.68e-6, 0.00e-6 }, + {{ 0, 0, 2, -2, 1, 0, 0, 0}, -0.55e-6, 0.00e-6 }, + {{ 1, 0, -2, 0, -2, 0, 0, 0}, 0.53e-6, 0.00e-6 }, + {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.27e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.27e-6, 0.00e-6 }, + {{ 1, 0, -2, -2, -2, 0, 0, 0}, -0.26e-6, 0.00e-6 }, + {{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.25e-6, 0.00e-6 }, + {{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.22e-6, 0.00e-6 }, + {{ 2, 0, 0, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 }, + {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.20e-6, 0.00e-6 }, + + /* 21-25 */ + {{ 0, 0, 2, 2, 2, 0, 0, 0}, 0.17e-6, 0.00e-6 }, + {{ 2, 0, 2, 0, 2, 0, 0, 0}, 0.13e-6, 0.00e-6 }, + {{ 2, 0, 0, 0, 0, 0, 0, 0}, -0.13e-6, 0.00e-6 }, + {{ 1, 0, 2, -2, 2, 0, 0, 0}, -0.12e-6, 0.00e-6 }, + {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.11e-6, 0.00e-6 } + }; + +/* Terms of order t^3 */ + static const TERM s3[] = { + + /* 1-4 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, 0.30e-6, -23.42e-6 }, + {{ 0, 0, 2, -2, 2, 0, 0, 0}, -0.03e-6, -1.46e-6 }, + {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.01e-6, -0.25e-6 }, + {{ 0, 0, 0, 0, 2, 0, 0, 0}, 0.00e-6, 0.23e-6 } + }; + +/* Terms of order t^4 */ + static const TERM s4[] = { + + /* 1-1 */ + {{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.26e-6, -0.01e-6 } + }; + +/* Number of terms in the series */ + static const int NS0 = (int) (sizeof s0 / sizeof (TERM)); + static const int NS1 = (int) (sizeof s1 / sizeof (TERM)); + static const int NS2 = (int) (sizeof s2 / sizeof (TERM)); + static const int NS3 = (int) (sizeof s3 / sizeof (TERM)); + static const int NS4 = (int) (sizeof s4 / sizeof (TERM)); + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental epoch J2000.0 and current date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Fundamental Arguments (from IERS Conventions 2003) */ + +/* Mean anomaly of the Moon. */ + fa[0] = iauFal03(t); + +/* Mean anomaly of the Sun. */ + fa[1] = iauFalp03(t); + +/* Mean longitude of the Moon minus that of the ascending node. */ + fa[2] = iauFaf03(t); + +/* Mean elongation of the Moon from the Sun. */ + fa[3] = iauFad03(t); + +/* Mean longitude of the ascending node of the Moon. */ + fa[4] = iauFaom03(t); + +/* Mean longitude of Venus. */ + fa[5] = iauFave03(t); + +/* Mean longitude of Earth. */ + fa[6] = iauFae03(t); + +/* General precession in longitude. */ + fa[7] = iauFapa03(t); + +/* Evaluate s. */ + w0 = sp[0]; + w1 = sp[1]; + w2 = sp[2]; + w3 = sp[3]; + w4 = sp[4]; + w5 = sp[5]; + + for (i = NS0-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s0[i].nfa[j] * fa[j]; + } + w0 += s0[i].s * sin(a) + s0[i].c * cos(a); + } + + for (i = NS1-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s1[i].nfa[j] * fa[j]; + } + w1 += s1[i].s * sin(a) + s1[i].c * cos(a); + } + + for (i = NS2-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s2[i].nfa[j] * fa[j]; + } + w2 += s2[i].s * sin(a) + s2[i].c * cos(a); + } + + for (i = NS3-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s3[i].nfa[j] * fa[j]; + } + w3 += s3[i].s * sin(a) + s3[i].c * cos(a); + } + + for (i = NS4-1; i >= 0; i--) { + a = 0.0; + for (j = 0; j < 8; j++) { + a += (double)s4[i].nfa[j] * fa[j]; + } + w4 += s4[i].s * sin(a) + s4[i].c * cos(a); + } + + s = (w0 + + (w1 + + (w2 + + (w3 + + (w4 + + w5 * t) * t) * t) * t) * t) * DAS2R - x*y/2.0; + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s06a.c b/deps/sofa/20231011/c/src/s06a.c new file mode 100644 index 0000000..0f9f487 --- /dev/null +++ b/deps/sofa/20231011/c/src/s06a.c @@ -0,0 +1,197 @@ +#include "sofa.h" + +double iauS06a(double date1, double date2) +/* +** - - - - - - - - +** i a u S 0 6 a +** - - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, using the IAU 2006 +** precession and IAU 2000A nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems. The two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The CIO locator s remains a small fraction of +** 1 arcsecond throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series is +** more compact than a direct series for s would be. The present +** function uses the full IAU 2000A nutation model when predicting +** the CIP position. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rnpb[3][3], x, y, s; + + +/* Bias-precession-nutation-matrix, IAU 20006/2000A. */ + iauPnm06a(date1, date2, rnpb); + +/* Extract the CIP coordinates. */ + iauBpn2xy(rnpb, &x, &y); + +/* Compute the CIO locator s, given the CIP coordinates. */ + s = iauS06(date1, date2, x, y); + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s2c.c b/deps/sofa/20231011/c/src/s2c.c new file mode 100644 index 0000000..6ff105a --- /dev/null +++ b/deps/sofa/20231011/c/src/s2c.c @@ -0,0 +1,135 @@ +#include "sofa.h" + +void iauS2c(double theta, double phi, double c[3]) +/* +** - - - - - - - +** i a u S 2 c +** - - - - - - - +** +** Convert spherical coordinates to Cartesian. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** +** Returned: +** c double[3] direction cosines +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double cp; + + + cp = cos(phi); + c[0] = cos(theta) * cp; + c[1] = sin(theta) * cp; + c[2] = sin(phi); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s2p.c b/deps/sofa/20231011/c/src/s2p.c new file mode 100644 index 0000000..c7fe908 --- /dev/null +++ b/deps/sofa/20231011/c/src/s2p.c @@ -0,0 +1,138 @@ +#include "sofa.h" + +void iauS2p(double theta, double phi, double r, double p[3]) +/* +** - - - - - - - +** i a u S 2 p +** - - - - - - - +** +** Convert spherical polar coordinates to p-vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** +** Returned: +** p double[3] Cartesian coordinates +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauSxp multiply p-vector by scalar +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double u[3]; + + + iauS2c(theta, phi, u); + iauSxp(r, u, p); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s2pv.c b/deps/sofa/20231011/c/src/s2pv.c new file mode 100644 index 0000000..448541d --- /dev/null +++ b/deps/sofa/20231011/c/src/s2pv.c @@ -0,0 +1,153 @@ +#include "sofa.h" + +void iauS2pv(double theta, double phi, double r, + double td, double pd, double rd, + double pv[2][3]) +/* +** - - - - - - - - +** i a u S 2 p v +** - - - - - - - - +** +** Convert position/velocity from spherical to Cartesian coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** td double rate of change of theta +** pd double rate of change of phi +** rd double rate of change of r +** +** Returned: +** pv double[2][3] pv-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double st, ct, sp, cp, rcp, x, y, rpd, w; + + + st = sin(theta); + ct = cos(theta); + sp = sin(phi); + cp = cos(phi); + rcp = r * cp; + x = rcp * ct; + y = rcp * st; + rpd = r * pd; + w = rpd*sp - cp*rd; + + pv[0][0] = x; + pv[0][1] = y; + pv[0][2] = r * sp; + pv[1][0] = -y*td - w*ct; + pv[1][1] = x*td - w*st; + pv[1][2] = rpd*cp + sp*rd; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/s2xpv.c b/deps/sofa/20231011/c/src/s2xpv.c new file mode 100644 index 0000000..308ab86 --- /dev/null +++ b/deps/sofa/20231011/c/src/s2xpv.c @@ -0,0 +1,137 @@ +#include "sofa.h" + +void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]) +/* +** - - - - - - - - - +** i a u S 2 x p v +** - - - - - - - - - +** +** Multiply a pv-vector by two scalars. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** s1 double scalar to multiply position component by +** s2 double scalar to multiply velocity component by +** pv double[2][3] pv-vector +** +** Returned: +** spv double[2][3] pv-vector: p scaled by s1, v scaled by s2 +** +** Note: +** It is permissible for pv and spv to be the same array. +** +** Called: +** iauSxp multiply p-vector by scalar +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauSxp(s1, pv[0], spv[0]); + iauSxp(s2, pv[1], spv[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/sepp.c b/deps/sofa/20231011/c/src/sepp.c new file mode 100644 index 0000000..44fee7b --- /dev/null +++ b/deps/sofa/20231011/c/src/sepp.c @@ -0,0 +1,157 @@ +#include "sofa.h" + +double iauSepp(double a[3], double b[3]) +/* +** - - - - - - - - +** i a u S e p p +** - - - - - - - - +** +** Angular separation between two p-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[3] first p-vector (not necessarily unit length) +** b double[3] second p-vector (not necessarily unit length) +** +** Returned (function value): +** double angular separation (radians, always positive) +** +** Notes: +** +** 1) If either vector is null, a zero result is returned. +** +** 2) The angular separation is most simply formulated in terms of +** scalar product. However, this gives poor accuracy for angles +** near zero and pi. The present algorithm uses both cross product +** and dot product, to deliver full accuracy whatever the size of +** the angle. +** +** Called: +** iauPxp vector product of two p-vectors +** iauPm modulus of p-vector +** iauPdp scalar product of two p-vectors +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double axb[3], ss, cs, s; + + +/* Sine of angle between the vectors, multiplied by the two moduli. */ + iauPxp(a, b, axb); + ss = iauPm(axb); + +/* Cosine of the angle, multiplied by the two moduli. */ + cs = iauPdp(a, b); + +/* The angle. */ + s = ((ss != 0.0) || (cs != 0.0)) ? atan2(ss, cs) : 0.0; + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/seps.c b/deps/sofa/20231011/c/src/seps.c new file mode 100644 index 0000000..cc1e916 --- /dev/null +++ b/deps/sofa/20231011/c/src/seps.c @@ -0,0 +1,145 @@ +#include "sofa.h" + +double iauSeps(double al, double ap, double bl, double bp) +/* +** - - - - - - - - +** i a u S e p s +** - - - - - - - - +** +** Angular separation between two sets of spherical coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** al double first longitude (radians) +** ap double first latitude (radians) +** bl double second longitude (radians) +** bp double second latitude (radians) +** +** Returned (function value): +** double angular separation (radians) +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauSepp angular separation between two p-vectors +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double ac[3], bc[3], s; + + +/* Spherical to Cartesian. */ + iauS2c(al, ap, ac); + iauS2c(bl, bp, bc); + +/* Angle between the vectors. */ + s = iauSepp(ac, bc); + + return s; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/sofa.h b/deps/sofa/20231011/c/src/sofa.h new file mode 100644 index 0000000..b397769 --- /dev/null +++ b/deps/sofa/20231011/c/src/sofa.h @@ -0,0 +1,627 @@ +#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: 2023 April 16 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ + +#include "math.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* 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; + +/* 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 tc, 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 tc, double rh, double wl, + iauASTROM *astrom); +void iauAtcc13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ra, double *da); +void iauAtccq(double rc, double dc, + double pr, double pd, double px, double rv, + iauASTROM *astrom, double *ra, double *da); +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 tc, 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 tc, 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 tc, 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 tc, 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 pob[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 height, double xp, + double yp, double sp, double theta, double pv[2][3]); +void iauRefco(double phpa, double tc, double rh, double wl, + double *refa, double *refb); + +/* Astronomy/Ephemerides */ +int iauEpv00(double date1, double date2, + double pvh[2][3], double pvb[2][3]); +void iauMoon98(double date1, double date2, double pv[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 iauLtp(double epj, double rp[3][3]); +void iauLtpb(double epj, double rpb[3][3]); +void iauLtpecl(double epj, double vec[3]); +void iauLtpequ(double epj, double veq[3]); +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 date01, double date02, + double date11, double date12, + 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 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 iauFk425(double r1950, double d1950, + double dr1950, double dd1950, + double p1950, double v1950, + double *r2000, double *d2000, + double *dr2000, double *dd2000, + double *p2000, double *v2000); +void iauFk45z(double r1950, double d1950, double bepoch, + double *r2000, double *d2000); +void iauFk524(double r2000, double d2000, + double dr2000, double dd2000, + double p2000, double v2000, + double *r1950, double *d1950, + double *dr1950, double *dd1950, + double *p1950, double *v1950); +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 iauFk54z(double r2000, double d2000, double bepoch, + double *r1950, double *d1950, + double *dr1950, double *dd1950); +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/EclipticCoordinates */ +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd); +void iauEcm06(double date1, double date2, double rm[3][3]); +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db); +void iauLteceq(double epj, double dl, double db, double *dr, double *dd); +void iauLtecm(double epj, double rm[3][3]); +void iauLteqec(double epj, double dr, double dd, double *dl, double *db); + +/* Astronomy/GalacticCoordinates */ +void iauG2icrs(double dl, double db, double *dr, double *dd); +void iauIcrs2g(double dr, double dd, double *dl, double *db); + +/* 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]); + +/* 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); + +/* Astronomy/HorizonEquatorial */ +void iauAe2hd(double az, double el, double phi, + double *ha, double *dec); +void iauHd2ae(double ha, double dec, double phi, + double *az, double *el); +double iauHd2pa(double ha, double dec, double phi); + +/* Astronomy/Gnomonic */ +int iauTpors(double xi, double eta, double a, double b, + double *a01, double *b01, double *a02, double *b02); +int iauTporv(double xi, double eta, double v[3], + double v01[3], double v02[3]); +void iauTpsts(double xi, double eta, double a0, double b0, + double *a, double *b); +void iauTpstv(double xi, double eta, double v0[3], double v[3]); +int iauTpxes(double a, double b, double a0, double b0, + double *xi, double *eta); +int iauTpxev(double v[3], double v0[3], double *xi, double *eta); + +/* 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) 2023 +** 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 +** +**--------------------------------------------------------------------*/ diff --git a/deps/sofa/20231011/c/src/sofam.h b/deps/sofa/20231011/c/src/sofam.h new file mode 100644 index 0000000..9279f72 --- /dev/null +++ b/deps/sofa/20231011/c/src/sofam.h @@ -0,0 +1,222 @@ +#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: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ + +/* 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, IAU 2012) */ +#define DAU (149597870.7e3) + +/* Speed of light (m/s) */ +#define CMPS 299792458.0 + +/* Light time for 1 au (s) */ +#define AULT (DAU/CMPS) + +/* 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) (fabs(A)<0.5?0.0\ + :((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) 2023 +** 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 +** +**--------------------------------------------------------------------*/ diff --git a/deps/sofa/20231011/c/src/sp00.c b/deps/sofa/20231011/c/src/sp00.c new file mode 100644 index 0000000..c73a3ac --- /dev/null +++ b/deps/sofa/20231011/c/src/sp00.c @@ -0,0 +1,171 @@ +#include "sofa.h" +#include "sofam.h" + +double iauSp00(double date1, double date2) +/* +** - - - - - - - - +** i a u S p 0 0 +** - - - - - - - - +** +** The TIO locator s', positioning the Terrestrial Intermediate Origin +** on the equator of the Celestial Intermediate Pole. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the TIO locator s' in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The TIO locator s' is obtained from polar motion observations by +** numerical integration, and so is in essence unpredictable. +** However, it is dominated by a secular drift of about +** 47 microarcseconds per century, which is the approximation +** evaluated by the present function. +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double t, sp; + + +/* Interval between fundamental epoch J2000.0 and current date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Approximate s'. */ + sp = -47e-6 * t * DAS2R; + + return sp; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/starpm.c b/deps/sofa/20231011/c/src/starpm.c new file mode 100644 index 0000000..2e3b6a6 --- /dev/null +++ b/deps/sofa/20231011/c/src/starpm.c @@ -0,0 +1,258 @@ +#include "sofa.h" +#include "sofam.h" + +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) +/* +** - - - - - - - - - - +** i a u S t a r p m +** - - - - - - - - - - +** +** Star proper motion: update star catalog data for space motion. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ra1 double right ascension (radians), before +** dec1 double declination (radians), before +** pmr1 double RA proper motion (radians/year), before +** pmd1 double Dec proper motion (radians/year), before +** px1 double parallax (arcseconds), before +** rv1 double radial velocity (km/s, +ve = receding), before +** ep1a double "before" epoch, part A (Note 1) +** ep1b double "before" epoch, part B (Note 1) +** ep2a double "after" epoch, part A (Note 1) +** ep2b double "after" epoch, part B (Note 1) +** +** Returned: +** ra2 double right ascension (radians), after +** dec2 double declination (radians), after +** pmr2 double RA proper motion (radians/year), after +** pmd2 double Dec proper motion (radians/year), after +** px2 double parallax (arcseconds), after +** rv2 double radial velocity (km/s, +ve = receding), after +** +** Returned (function value): +** int status: +** -1 = system error (should not occur) +** 0 = no warnings or errors +** 1 = distance overridden (Note 6) +** 2 = excessive velocity (Note 7) +** 4 = solution didn't converge (Note 8) +** else = binary logical OR of the above warnings +** +** Notes: +** +** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are +** Julian Dates, apportioned in any convenient way between the two +** parts (A and B). For example, JD(TDB)=2450123.7 could be +** expressed in any of these ways, among others: +** +** epNa epNb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. +** +** 2) In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** The proper motions are the rate of change of the right ascension +** and declination at the catalog epoch and are in radians per TDB +** Julian year. +** +** The parallax and radial velocity are in the same frame. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds. +** +** 4) The RA proper motion is in terms of coordinate angle, not true +** angle. If the catalog uses arcseconds for both RA and Dec proper +** motions, the RA proper motion will need to be divided by cos(Dec) +** before use. +** +** 5) Straight-line motion at constant speed, in the inertial frame, +** is assumed. +** +** 6) An extremely small (or zero or negative) parallax is interpreted +** to mean that the object is on the "celestial sphere", the radius +** of which is an arbitrary (large) value (see the iauStarpv +** function for the value used). When the distance is overridden in +** this way, the status, initially zero, has 1 added to it. +** +** 7) If the space velocity is a significant fraction of c (see the +** constant VMAX in the function iauStarpv), it is arbitrarily set +** to zero. When this action occurs, 2 is added to the status. +** +** 8) The relativistic adjustment carried out in the iauStarpv function +** involves an iterative calculation. If the process fails to +** converge within a set number of iterations, 4 is added to the +** status. +** +** Called: +** iauStarpv star catalog data to space motion pv-vector +** iauPvu update a pv-vector +** iauPdp scalar product of two p-vectors +** iauPvstar space motion pv-vector to star catalog data +** +** This revision: 2023 May 3 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double pv1[2][3], tl1, dt, pv[2][3], r2, rdv, v2, c2mv2, tl2, + pv2[2][3]; + int j1, j2, j; + + +/* RA,Dec etc. at the "before" epoch to space motion pv-vector. */ + j1 = iauStarpv(ra1, dec1, pmr1, pmd1, px1, rv1, pv1); + +/* Light time when observed (days). */ + tl1 = iauPm(pv1[0]) / DC; + +/* Time interval, "before" to "after" (days). */ + dt = (ep2a - ep1a) + (ep2b - ep1b); + +/* Move star along track from the "before" observed position to the */ +/* "after" geometric position. */ + iauPvu(dt + tl1, pv1, pv); + +/* From this geometric position, deduce the observed light time (days) */ +/* at the "after" epoch (with theoretically unneccessary error check). */ + r2 = iauPdp(pv[0], pv[0]); + rdv = iauPdp(pv[0], pv[1]); + v2 = iauPdp(pv[1], pv[1]); + c2mv2 = DC*DC - v2; + if (c2mv2 <= 0.0) return -1; + tl2 = (-rdv + sqrt(rdv*rdv + c2mv2*r2)) / c2mv2; + +/* Move the position along track from the observed place at the */ +/* "before" epoch to the observed place at the "after" epoch. */ + iauPvu(dt + (tl1 - tl2), pv1, pv2); + +/* Space motion pv-vector to RA,Dec etc. at the "after" epoch. */ + j2 = iauPvstar(pv2, ra2, dec2, pmr2, pmd2, px2, rv2); + +/* Final status. */ + j = (j2 == 0) ? j1 : -1; + + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/starpv.c b/deps/sofa/20231011/c/src/starpv.c new file mode 100644 index 0000000..f041234 --- /dev/null +++ b/deps/sofa/20231011/c/src/starpv.c @@ -0,0 +1,317 @@ +#include "sofa.h" +#include "sofam.h" + +int iauStarpv(double ra, double dec, + double pmr, double pmd, double px, double rv, + double pv[2][3]) +/* +** - - - - - - - - - - +** i a u S t a r p v +** - - - - - - - - - - +** +** Convert star catalog coordinates to position+velocity vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (Note 1): +** ra double right ascension (radians) +** dec double declination (radians) +** pmr double RA proper motion (radians/year) +** pmd double Dec proper motion (radians/year) +** px double parallax (arcseconds) +** rv double radial velocity (km/s, positive = receding) +** +** Returned (Note 2): +** pv double[2][3] pv-vector (au, au/day) +** +** Returned (function value): +** int status: +** 0 = no warnings +** 1 = distance overridden (Note 6) +** 2 = excessive speed (Note 7) +** 4 = solution didn't converge (Note 8) +** else = binary logical OR of the above +** +** Notes: +** +** 1) The star data accepted by this function are "observables" for an +** imaginary observer at the solar-system barycenter. Proper motion +** and radial velocity are, strictly, in terms of barycentric +** coordinate time, TCB. For most practical applications, it is +** permissible to neglect the distinction between TCB and ordinary +** "proper" time on Earth (TT/TAI). The result will, as a rule, be +** limited by the intrinsic accuracy of the proper-motion and +** radial-velocity data; moreover, the pv-vector is likely to be +** merely an intermediate result, so that a change of time unit +** would cancel out overall. +** +** In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** 2) The resulting position and velocity pv-vector is with respect to +** the same frame and, like the catalog coordinates, is freed from +** the effects of secular aberration. Should the "coordinate +** direction", where the object was located at the catalog epoch, be +** required, it may be obtained by calculating the magnitude of the +** position vector pv[0][0-2] dividing by the speed of light in +** au/day to give the light-time, and then multiplying the space +** velocity pv[1][0-2] by this light-time and adding the result to +** pv[0][0-2]. +** +** Summarizing, the pv-vector returned is for most stars almost +** identical to the result of applying the standard geometrical +** "space motion" transformation. The differences, which are the +** subject of the Stumpff paper referenced below, are: +** +** (i) In stars with significant radial velocity and proper motion, +** the constantly changing light-time distorts the apparent proper +** motion. Note that this is a classical, not a relativistic, +** effect. +** +** (ii) The transformation complies with special relativity. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds; the radial velocity is in km/s, but +** the pv-vector result is in au and au/day. +** +** 4) The RA proper motion is in terms of coordinate angle, not true +** angle. If the catalog uses arcseconds for both RA and Dec proper +** motions, the RA proper motion will need to be divided by cos(Dec) +** before use. +** +** 5) Straight-line motion at constant speed, in the inertial frame, +** is assumed. +** +** 6) An extremely small (or zero or negative) parallax is interpreted +** to mean that the object is on the "celestial sphere", the radius +** of which is an arbitrary (large) value (see the constant PXMIN). +** When the distance is overridden in this way, the status, +** initially zero, has 1 added to it. +** +** 7) If the space velocity is a significant fraction of c (see the +** constant VMAX), it is arbitrarily set to zero. When this action +** occurs, 2 is added to the status. +** +** 8) The relativistic adjustment involves an iterative calculation. +** If the process fails to converge within a set number (IMAX) of +** iterations, 4 is added to the status. +** +** 9) The inverse transformation is performed by the function +** iauPvstar. +** +** Called: +** iauS2pv spherical coordinates to pv-vector +** iauPm modulus of p-vector +** iauZp zero p-vector +** iauPn decompose p-vector into modulus and direction +** iauPdp scalar product of two p-vectors +** iauSxp multiply p-vector by scalar +** iauPmp p-vector minus p-vector +** iauPpp p-vector plus p-vector +** +** Reference: +** +** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. +** +** This revision: 2023 May 4 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ +/* Smallest allowed parallax */ + static const double PXMIN = 1e-7; + +/* Largest allowed speed (fraction of c) */ + static const double VMAX = 0.5; + +/* Maximum number of iterations for relativistic solution */ + static const int IMAX = 100; + + int i, iwarn; + double w, r, rd, rad, decd, v, pu[3], usr[3], ust[3], + vsr, vst, betst, betsr, bett, betr, + dd, ddel, ur[3], ut[3], + d = 0.0, del = 0.0, /* to prevent */ + odd = 0.0, oddel = 0.0, /* compiler */ + od = 0.0, odel = 0.0; /* warnings */ + + +/* Distance (au). */ + if (px >= PXMIN) { + w = px; + iwarn = 0; + } else { + w = PXMIN; + iwarn = 1; + } + r = DR2AS / w; + +/* Radial speed (au/day). */ + rd = DAYSEC * rv * 1e3 / DAU; + +/* Proper motion (radian/day). */ + rad = pmr / DJY; + decd = pmd / DJY; + +/* To pv-vector (au,au/day). */ + iauS2pv(ra, dec, r, rad, decd, rd, pv); + +/* If excessive velocity, arbitrarily set it to zero. */ + v = iauPm(pv[1]); + if (v / DC > VMAX) { + iauZp(pv[1]); + iwarn += 2; + } + +/* Isolate the radial component of the velocity (au/day). */ + iauPn(pv[0], &w, pu); + vsr = iauPdp(pu, pv[1]); + iauSxp(vsr, pu, usr); + +/* Isolate the transverse component of the velocity (au/day). */ + iauPmp(pv[1], usr, ust); + vst = iauPm(ust); + +/* Special-relativity dimensionless parameters. */ + betsr = vsr / DC; + betst = vst / DC; + +/* Determine the observed-to-inertial correction terms. */ + bett = betst; + betr = betsr; + for (i = 0; i < IMAX; i++) { + d = 1.0 + betr; + w = betr*betr + bett*bett; + del = - w / (sqrt(1.0 - w) + 1.0); + betr = d * betsr + del; + bett = d * betst; + if (i > 0) { + dd = fabs(d - od); + ddel = fabs(del - odel); + if ((i > 1) && (dd >= odd) && (ddel >= oddel)) break; + odd = dd; + oddel = ddel; + } + od = d; + odel = del; + } + if (i >= IMAX) iwarn += 4; + +/* Scale observed tangential velocity vector into inertial (au/d). */ + iauSxp(d, ust, ut); + +/* Compute inertial radial velocity vector (au/d). */ + iauSxp(DC*(d*betsr+del), pu, ur); + +/* Combine the two to obtain the inertial space velocity vector. */ + iauPpp(ur, ut, pv[1]); + +/* Return the status. */ + return iwarn; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/sxp.c b/deps/sofa/20231011/c/src/sxp.c new file mode 100644 index 0000000..1e397bc --- /dev/null +++ b/deps/sofa/20231011/c/src/sxp.c @@ -0,0 +1,134 @@ +#include "sofa.h" + +void iauSxp(double s, double p[3], double sp[3]) +/* +** - - - - - - - +** i a u S x p +** - - - - - - - +** +** Multiply a p-vector by a scalar. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** s double scalar +** p double[3] p-vector +** +** Returned: +** sp double[3] s * p +** +** Note: +** It is permissible for p and sp to be the same array. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + sp[0] = s * p[0]; + sp[1] = s * p[1]; + sp[2] = s * p[2]; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/sxpv.c b/deps/sofa/20231011/c/src/sxpv.c new file mode 100644 index 0000000..3172e54 --- /dev/null +++ b/deps/sofa/20231011/c/src/sxpv.c @@ -0,0 +1,135 @@ +#include "sofa.h" + +void iauSxpv(double s, double pv[2][3], double spv[2][3]) +/* +** - - - - - - - - +** i a u S x p v +** - - - - - - - - +** +** Multiply a pv-vector by a scalar. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** s double scalar +** pv double[2][3] pv-vector +** +** Returned: +** spv double[2][3] s * pv +** +** Note: +** It is permissible for pv and spv to be the same array. +** +** Called: +** iauS2xpv multiply pv-vector by two scalars +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauS2xpv(s, s, pv, spv); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/t_sofa_c.c b/deps/sofa/20231011/c/src/t_sofa_c.c new file mode 100644 index 0000000..098813e --- /dev/null +++ b/deps/sofa/20231011/c/src/t_sofa_c.c @@ -0,0 +1,10367 @@ +#include +#include "sofam.h" +#include + +static int verbose = 0; + +/* +** - - - - - - - - - +** t _ s o f a _ c +** - - - - - - - - - +** +** Validate the SOFA C functions. +** +** Each SOFA function is at least called and a usually quite basic test +** is performed. Successful completion is signalled by a confirming +** message. Failure of a given function or group of functions results +** in error messages. +** +** All messages go to stdout. +** +** This revision: 2021 July 29 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ + +static void viv(int ival, int ivalok, + const char *func, const char *test, int *status) +/* +** - - - - +** v i v +** - - - - +** +** Validate an integer result. +** +** Internal function used by t_sofa_c program. +** +** Given: +** ival int value computed by function under test +** ivalok int correct value +** func char[] name of function under test +** test char[] name of individual test +** +** Given and returned: +** status int set to TRUE if test fails +** +** This revision: 2013 August 7 +*/ +{ + if (ival != ivalok) { + *status = 1; + printf("%s failed: %s want %d got %d\n", + func, test, ivalok, ival); + } else if (verbose) { + printf("%s passed: %s want %d got %d\n", + func, test, ivalok, ival); + } + +} + +static void vvd(double val, double valok, double dval, + const char *func, const char *test, int *status) +/* +** - - - - +** v v d +** - - - - +** +** Validate a double result. +** +** Internal function used by t_sofa_c program. +** +** Given: +** val double value computed by function under test +** valok double expected value +** dval double maximum allowable error +** func char[] name of function under test +** test char[] name of individual test +** +** Given and returned: +** status int set to TRUE if test fails +** +** This revision: 2016 April 21 +*/ +{ + double a, f; /* absolute and fractional error */ + + + a = val - valok; + if (a != 0.0 && fabs(a) > fabs(dval)) { + f = fabs(valok / a); + *status = 1; + printf("%s failed: %s want %.20g got %.20g (1/%.3g)\n", + func, test, valok, val, f); + } else if (verbose) { + printf("%s passed: %s want %.20g got %.20g\n", + func, test, valok, val); + } + +} + +static void t_a2af(int *status) +/* +** - - - - - - - +** t _ a 2 a f +** - - - - - - - +** +** Test iauA2af function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauA2af, viv +** +** This revision: 2013 August 7 +*/ +{ + int idmsf[4]; + char s; + + + iauA2af(4, 2.345, &s, idmsf); + + viv(s, '+', "iauA2af", "s", status); + + viv(idmsf[0], 134, "iauA2af", "0", status); + viv(idmsf[1], 21, "iauA2af", "1", status); + viv(idmsf[2], 30, "iauA2af", "2", status); + viv(idmsf[3], 9706, "iauA2af", "3", status); + +} + +static void t_a2tf(int *status) +/* +** - - - - - - - +** t _ a 2 t f +** - - - - - - - +** +** Test iauA2tf function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauA2tf, viv +** +** This revision: 2013 August 7 +*/ +{ + int ihmsf[4]; + char s; + + + iauA2tf(4, -3.01234, &s, ihmsf); + + viv((int)s, '-', "iauA2tf", "s", status); + + viv(ihmsf[0], 11, "iauA2tf", "0", status); + viv(ihmsf[1], 30, "iauA2tf", "1", status); + viv(ihmsf[2], 22, "iauA2tf", "2", status); + viv(ihmsf[3], 6484, "iauA2tf", "3", status); + +} + +static void t_ab(int *status) +/* +** - - - - - +** t _ a b +** - - - - - +** +** Test iauAb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAb, vvd +** +** This revision: 2013 October 1 +*/ +{ + double pnat[3], v[3], s, bm1, ppr[3]; + + + pnat[0] = -0.76321968546737951; + pnat[1] = -0.60869453983060384; + pnat[2] = -0.21676408580639883; + v[0] = 2.1044018893653786e-5; + v[1] = -8.9108923304429319e-5; + v[2] = -3.8633714797716569e-5; + s = 0.99980921395708788; + bm1 = 0.99999999506209258; + + iauAb(pnat, v, s, bm1, ppr); + + vvd(ppr[0], -0.7631631094219556269, 1e-12, "iauAb", "1", status); + vvd(ppr[1], -0.6087553082505590832, 1e-12, "iauAb", "2", status); + vvd(ppr[2], -0.2167926269368471279, 1e-12, "iauAb", "3", status); + +} + +static void t_ae2hd(int *status) +/* +** - - - - - - - - +** t _ a e 2 h d +** - - - - - - - - +** +** Test iauAe2hd function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAe2hd and vvd +** +** This revision: 2017 October 21 +*/ +{ + double a, e, p, h, d; + + + a = 5.5; + e = 1.1; + p = 0.7; + + iauAe2hd(a, e, p, &h, &d); + + vvd(h, 0.5933291115507309663, 1e-14, "iauAe2hd", "h", status); + vvd(d, 0.9613934761647817620, 1e-14, "iauAe2hd", "d", status); + +} + +static void t_af2a(int *status) +/* +** - - - - - - - +** t _ a f 2 a +** - - - - - - - +** +** Test iauAf2a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAf2a, viv +** +** This revision: 2013 August 7 +*/ +{ + double a; + int j; + + + j = iauAf2a('-', 45, 13, 27.2, &a); + + vvd(a, -0.7893115794313644842, 1e-12, "iauAf2a", "a", status); + viv(j, 0, "iauAf2a", "j", status); + +} + +static void t_anp(int *status) +/* +** - - - - - - +** t _ a n p +** - - - - - - +** +** Test iauAnp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAnp, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauAnp(-0.1), 6.183185307179586477, 1e-12, "iauAnp", "", status); +} + +static void t_anpm(int *status) +/* +** - - - - - - - +** t _ a n p m +** - - - - - - - +** +** Test iauAnpm function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAnpm, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauAnpm(-4.0), 2.283185307179586477, 1e-12, "iauAnpm", "", status); +} + +static void t_apcg(int *status) +/* +** - - - - - - - +** t _ a p c g +** - - - - - - - +** +** Test iauApcg function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApcg, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, ebpv[2][3], ehp[3]; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + ebpv[0][0] = 0.901310875; + ebpv[0][1] = -0.417402664; + ebpv[0][2] = -0.180982288; + ebpv[1][0] = 0.00742727954; + ebpv[1][1] = 0.0140507459; + ebpv[1][2] = 0.00609045792; + ehp[0] = 0.903358544; + ehp[1] = -0.415395237; + ehp[2] = -0.180084014; + + iauApcg(date1, date2, ebpv, ehp, &astrom); + + vvd(astrom.pmt, 12.65133794027378508, 1e-11, + "iauApcg", "pmt", status); + vvd(astrom.eb[0], 0.901310875, 1e-12, + "iauApcg", "eb(1)", status); + vvd(astrom.eb[1], -0.417402664, 1e-12, + "iauApcg", "eb(2)", status); + vvd(astrom.eb[2], -0.180982288, 1e-12, + "iauApcg", "eb(3)", status); + vvd(astrom.eh[0], 0.8940025429324143045, 1e-12, + "iauApcg", "eh(1)", status); + vvd(astrom.eh[1], -0.4110930268679817955, 1e-12, + "iauApcg", "eh(2)", status); + vvd(astrom.eh[2], -0.1782189004872870264, 1e-12, + "iauApcg", "eh(3)", status); + vvd(astrom.em, 1.010465295811013146, 1e-12, + "iauApcg", "em", status); + vvd(astrom.v[0], 0.4289638913597693554e-4, 1e-16, + "iauApcg", "v(1)", status); + vvd(astrom.v[1], 0.8115034051581320575e-4, 1e-16, + "iauApcg", "v(2)", status); + vvd(astrom.v[2], 0.3517555136380563427e-4, 1e-16, + "iauApcg", "v(3)", status); + vvd(astrom.bm1, 0.9999999951686012981, 1e-12, + "iauApcg", "bm1", status); + vvd(astrom.bpn[0][0], 1.0, 0.0, + "iauApcg", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0.0, 0.0, + "iauApcg", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0.0, 0.0, + "iauApcg", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], 0.0, 0.0, + "iauApcg", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 1.0, 0.0, + "iauApcg", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], 0.0, 0.0, + "iauApcg", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], 0.0, 0.0, + "iauApcg", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0.0, 0.0, + "iauApcg", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 1.0, 0.0, + "iauApcg", "bpn(3,3)", status); + +} + +static void t_apcg13(int *status) +/* +** - - - - - - - - - +** t _ a p c g 1 3 +** - - - - - - - - - +** +** Test iauApcg13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApcg13, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + + iauApcg13(date1, date2, &astrom); + + vvd(astrom.pmt, 12.65133794027378508, 1e-11, + "iauApcg13", "pmt", status); + vvd(astrom.eb[0], 0.9013108747340644755, 1e-12, + "iauApcg13", "eb(1)", status); + vvd(astrom.eb[1], -0.4174026640406119957, 1e-12, + "iauApcg13", "eb(2)", status); + vvd(astrom.eb[2], -0.1809822877867817771, 1e-12, + "iauApcg13", "eb(3)", status); + vvd(astrom.eh[0], 0.8940025429255499549, 1e-12, + "iauApcg13", "eh(1)", status); + vvd(astrom.eh[1], -0.4110930268331896318, 1e-12, + "iauApcg13", "eh(2)", status); + vvd(astrom.eh[2], -0.1782189006019749850, 1e-12, + "iauApcg13", "eh(3)", status); + vvd(astrom.em, 1.010465295964664178, 1e-12, + "iauApcg13", "em", status); + vvd(astrom.v[0], 0.4289638912941341125e-4, 1e-16, + "iauApcg13", "v(1)", status); + vvd(astrom.v[1], 0.8115034032405042132e-4, 1e-16, + "iauApcg13", "v(2)", status); + vvd(astrom.v[2], 0.3517555135536470279e-4, 1e-16, + "iauApcg13", "v(3)", status); + vvd(astrom.bm1, 0.9999999951686013142, 1e-12, + "iauApcg13", "bm1", status); + vvd(astrom.bpn[0][0], 1.0, 0.0, + "iauApcg13", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0.0, 0.0, + "iauApcg13", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0.0, 0.0, + "iauApcg13", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], 0.0, 0.0, + "iauApcg13", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 1.0, 0.0, + "iauApcg13", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], 0.0, 0.0, + "iauApcg13", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], 0.0, 0.0, + "iauApcg13", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0.0, 0.0, + "iauApcg13", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 1.0, 0.0, + "iauApcg13", "bpn(3,3)", status); + +} + +static void t_apci(int *status) +/* +** - - - - - - - +** t _ a p c i +** - - - - - - - +** +** Test iauApci function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, ebpv[2][3], ehp[3], x, y, s; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + ebpv[0][0] = 0.901310875; + ebpv[0][1] = -0.417402664; + ebpv[0][2] = -0.180982288; + ebpv[1][0] = 0.00742727954; + ebpv[1][1] = 0.0140507459; + ebpv[1][2] = 0.00609045792; + ehp[0] = 0.903358544; + ehp[1] = -0.415395237; + ehp[2] = -0.180084014; + x = 0.0013122272; + y = -2.92808623e-5; + s = 3.05749468e-8; + + iauApci(date1, date2, ebpv, ehp, x, y, s, &astrom); + + vvd(astrom.pmt, 12.65133794027378508, 1e-11, + "iauApci", "pmt", status); + vvd(astrom.eb[0], 0.901310875, 1e-12, + "iauApci", "eb(1)", status); + vvd(astrom.eb[1], -0.417402664, 1e-12, + "iauApci", "eb(2)", status); + vvd(astrom.eb[2], -0.180982288, 1e-12, + "iauApci", "eb(3)", status); + vvd(astrom.eh[0], 0.8940025429324143045, 1e-12, + "iauApci", "eh(1)", status); + vvd(astrom.eh[1], -0.4110930268679817955, 1e-12, + "iauApci", "eh(2)", status); + vvd(astrom.eh[2], -0.1782189004872870264, 1e-12, + "iauApci", "eh(3)", status); + vvd(astrom.em, 1.010465295811013146, 1e-12, + "iauApci", "em", status); + vvd(astrom.v[0], 0.4289638913597693554e-4, 1e-16, + "iauApci", "v(1)", status); + vvd(astrom.v[1], 0.8115034051581320575e-4, 1e-16, + "iauApci", "v(2)", status); + vvd(astrom.v[2], 0.3517555136380563427e-4, 1e-16, + "iauApci", "v(3)", status); + vvd(astrom.bm1, 0.9999999951686012981, 1e-12, + "iauApci", "bm1", status); + vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12, + "iauApci", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12, + "iauApci", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12, + "iauApci", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12, + "iauApci", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12, + "iauApci", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12, + "iauApci", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12, + "iauApci", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12, + "iauApci", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12, + "iauApci", "bpn(3,3)", status); + +} + +static void t_apci13(int *status) +/* +** - - - - - - - - - +** t _ a p c i 1 3 +** - - - - - - - - - +** +** Test iauApci13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, eo; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + + iauApci13(date1, date2, &astrom, &eo); + + vvd(astrom.pmt, 12.65133794027378508, 1e-11, + "iauApci13", "pmt", status); + vvd(astrom.eb[0], 0.9013108747340644755, 1e-12, + "iauApci13", "eb(1)", status); + vvd(astrom.eb[1], -0.4174026640406119957, 1e-12, + "iauApci13", "eb(2)", status); + vvd(astrom.eb[2], -0.1809822877867817771, 1e-12, + "iauApci13", "eb(3)", status); + vvd(astrom.eh[0], 0.8940025429255499549, 1e-12, + "iauApci13", "eh(1)", status); + vvd(astrom.eh[1], -0.4110930268331896318, 1e-12, + "iauApci13", "eh(2)", status); + vvd(astrom.eh[2], -0.1782189006019749850, 1e-12, + "iauApci13", "eh(3)", status); + vvd(astrom.em, 1.010465295964664178, 1e-12, + "iauApci13", "em", status); + vvd(astrom.v[0], 0.4289638912941341125e-4, 1e-16, + "iauApci13", "v(1)", status); + vvd(astrom.v[1], 0.8115034032405042132e-4, 1e-16, + "iauApci13", "v(2)", status); + vvd(astrom.v[2], 0.3517555135536470279e-4, 1e-16, + "iauApci13", "v(3)", status); + vvd(astrom.bm1, 0.9999999951686013142, 1e-12, + "iauApci13", "bm1", status); + vvd(astrom.bpn[0][0], 0.9999992060376761710, 1e-12, + "iauApci13", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0.4124244860106037157e-7, 1e-12, + "iauApci13", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0.1260128571051709670e-2, 1e-12, + "iauApci13", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], -0.1282291987222130690e-7, 1e-12, + "iauApci13", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 0.9999999997456835325, 1e-12, + "iauApci13", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], -0.2255288829420524935e-4, 1e-12, + "iauApci13", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], -0.1260128571661374559e-2, 1e-12, + "iauApci13", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0.2255285422953395494e-4, 1e-12, + "iauApci13", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 0.9999992057833604343, 1e-12, + "iauApci13", "bpn(3,3)", status); + vvd(eo, -0.2900618712657375647e-2, 1e-12, + "iauApci13", "eo", status); + +} + +static void t_apco(int *status) +/* +** - - - - - - - +** t _ a p c o +** - - - - - - - +** +** Test iauApco function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApco, vvd +** +** This revision: 2021 January 5 +*/ +{ + double date1, date2, ebpv[2][3], ehp[3], x, y, s, + theta, elong, phi, hm, xp, yp, sp, refa, refb; + iauASTROM astrom; + + + date1 = 2456384.5; + date2 = 0.970031644; + ebpv[0][0] = -0.974170438; + ebpv[0][1] = -0.211520082; + ebpv[0][2] = -0.0917583024; + ebpv[1][0] = 0.00364365824; + ebpv[1][1] = -0.0154287319; + ebpv[1][2] = -0.00668922024; + ehp[0] = -0.973458265; + ehp[1] = -0.209215307; + ehp[2] = -0.0906996477; + x = 0.0013122272; + y = -2.92808623e-5; + s = 3.05749468e-8; + theta = 3.14540971; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + sp = -3.01974337e-11; + refa = 0.000201418779; + refb = -2.36140831e-7; + + iauApco(date1, date2, ebpv, ehp, x, y, s, + theta, elong, phi, hm, xp, yp, sp, + refa, refb, &astrom); + + vvd(astrom.pmt, 13.25248468622587269, 1e-11, + "iauApco", "pmt", status); + vvd(astrom.eb[0], -0.9741827110630322720, 1e-12, + "iauApco", "eb(1)", status); + vvd(astrom.eb[1], -0.2115130190135344832, 1e-12, + "iauApco", "eb(2)", status); + vvd(astrom.eb[2], -0.09179840186949532298, 1e-12, + "iauApco", "eb(3)", status); + vvd(astrom.eh[0], -0.9736425571689739035, 1e-12, + "iauApco", "eh(1)", status); + vvd(astrom.eh[1], -0.2092452125849330936, 1e-12, + "iauApco", "eh(2)", status); + vvd(astrom.eh[2], -0.09075578152243272599, 1e-12, + "iauApco", "eh(3)", status); + vvd(astrom.em, 0.9998233241709957653, 1e-12, + "iauApco", "em", status); + vvd(astrom.v[0], 0.2078704992916728762e-4, 1e-16, + "iauApco", "v(1)", status); + vvd(astrom.v[1], -0.8955360107151952319e-4, 1e-16, + "iauApco", "v(2)", status); + vvd(astrom.v[2], -0.3863338994288951082e-4, 1e-16, + "iauApco", "v(3)", status); + vvd(astrom.bm1, 0.9999999950277561236, 1e-12, + "iauApco", "bm1", status); + vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12, + "iauApco", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12, + "iauApco", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12, + "iauApco", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12, + "iauApco", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12, + "iauApco", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12, + "iauApco", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12, + "iauApco", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12, + "iauApco", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12, + "iauApco", "bpn(3,3)", status); + vvd(astrom.along, -0.5278008060295995734, 1e-12, + "iauApco", "along", status); + vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, + "iauApco", "xpl", status); + vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, + "iauApco", "ypl", status); + vvd(astrom.sphi, -0.9440115679003211329, 1e-12, + "iauApco", "sphi", status); + vvd(astrom.cphi, 0.3299123514971474711, 1e-12, + "iauApco", "cphi", status); + vvd(astrom.diurab, 0, 0, + "iauApco", "diurab", status); + vvd(astrom.eral, 2.617608903970400427, 1e-12, + "iauApco", "eral", status); + vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15, + "iauApco", "refa", status); + vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18, + "iauApco", "refb", status); + +} + +static void t_apco13(int *status) +/* +** - - - - - - - - - +** t _ a p c o 1 3 +** - - - - - - - - - +** +** Test iauApco13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApco13, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, eo; + iauASTROM astrom; + int j; + + + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + + j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom, &eo); + + vvd(astrom.pmt, 13.25248468622475727, 1e-11, + "iauApco13", "pmt", status); + vvd(astrom.eb[0], -0.9741827107320875162, 1e-12, + "iauApco13", "eb(1)", status); + vvd(astrom.eb[1], -0.2115130190489716682, 1e-12, + "iauApco13", "eb(2)", status); + vvd(astrom.eb[2], -0.09179840189496755339, 1e-12, + "iauApco13", "eb(3)", status); + vvd(astrom.eh[0], -0.9736425572586935247, 1e-12, + "iauApco13", "eh(1)", status); + vvd(astrom.eh[1], -0.2092452121603336166, 1e-12, + "iauApco13", "eh(2)", status); + vvd(astrom.eh[2], -0.09075578153885665295, 1e-12, + "iauApco13", "eh(3)", status); + vvd(astrom.em, 0.9998233240913898141, 1e-12, + "iauApco13", "em", status); + vvd(astrom.v[0], 0.2078704994520489246e-4, 1e-16, + "iauApco13", "v(1)", status); + vvd(astrom.v[1], -0.8955360133238868938e-4, 1e-16, + "iauApco13", "v(2)", status); + vvd(astrom.v[2], -0.3863338993055887398e-4, 1e-16, + "iauApco13", "v(3)", status); + vvd(astrom.bm1, 0.9999999950277561004, 1e-12, + "iauApco13", "bm1", status); + vvd(astrom.bpn[0][0], 0.9999991390295147999, 1e-12, + "iauApco13", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0.4978650075315529277e-7, 1e-12, + "iauApco13", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0.001312227200850293372, 1e-12, + "iauApco13", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], -0.1136336652812486604e-7, 1e-12, + "iauApco13", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 0.9999999995713154865, 1e-12, + "iauApco13", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], -0.2928086230975367296e-4, 1e-12, + "iauApco13", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], -0.001312227201745553566, 1e-12, + "iauApco13", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0.2928082218847679162e-4, 1e-12, + "iauApco13", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 0.9999991386008312212, 1e-12, + "iauApco13", "bpn(3,3)", status); + vvd(astrom.along, -0.5278008060295995733, 1e-12, + "iauApco13", "along", status); + vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, + "iauApco13", "xpl", status); + vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, + "iauApco13", "ypl", status); + vvd(astrom.sphi, -0.9440115679003211329, 1e-12, + "iauApco13", "sphi", status); + vvd(astrom.cphi, 0.3299123514971474711, 1e-12, + "iauApco13", "cphi", status); + vvd(astrom.diurab, 0, 0, + "iauApco13", "diurab", status); + vvd(astrom.eral, 2.617608909189664000, 1e-12, + "iauApco13", "eral", status); + vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15, + "iauApco13", "refa", status); + vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18, + "iauApco13", "refb", status); + vvd(eo, -0.003020548354802412839, 1e-14, + "iauApco13", "eo", status); + viv(j, 0, "iauApco13", "j", status); + +} + +static void t_apcs(int *status) +/* +** - - - - - - - +** t _ a p c s +** - - - - - - - +** +** Test iauApcs function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApcs, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, pv[2][3], ebpv[2][3], ehp[3]; + iauASTROM astrom; + + + date1 = 2456384.5; + date2 = 0.970031644; + pv[0][0] = -1836024.09; + pv[0][1] = 1056607.72; + pv[0][2] = -5998795.26; + pv[1][0] = -77.0361767; + pv[1][1] = -133.310856; + pv[1][2] = 0.0971855934; + ebpv[0][0] = -0.974170438; + ebpv[0][1] = -0.211520082; + ebpv[0][2] = -0.0917583024; + ebpv[1][0] = 0.00364365824; + ebpv[1][1] = -0.0154287319; + ebpv[1][2] = -0.00668922024; + ehp[0] = -0.973458265; + ehp[1] = -0.209215307; + ehp[2] = -0.0906996477; + + iauApcs(date1, date2, pv, ebpv, ehp, &astrom); + + vvd(astrom.pmt, 13.25248468622587269, 1e-11, + "iauApcs", "pmt", status); + vvd(astrom.eb[0], -0.9741827110629881886, 1e-12, + "iauApcs", "eb(1)", status); + vvd(astrom.eb[1], -0.2115130190136415986, 1e-12, + "iauApcs", "eb(2)", status); + vvd(astrom.eb[2], -0.09179840186954412099, 1e-12, + "iauApcs", "eb(3)", status); + vvd(astrom.eh[0], -0.9736425571689454706, 1e-12, + "iauApcs", "eh(1)", status); + vvd(astrom.eh[1], -0.2092452125850435930, 1e-12, + "iauApcs", "eh(2)", status); + vvd(astrom.eh[2], -0.09075578152248299218, 1e-12, + "iauApcs", "eh(3)", status); + vvd(astrom.em, 0.9998233241709796859, 1e-12, + "iauApcs", "em", status); + vvd(astrom.v[0], 0.2078704993282685510e-4, 1e-16, + "iauApcs", "v(1)", status); + vvd(astrom.v[1], -0.8955360106989405683e-4, 1e-16, + "iauApcs", "v(2)", status); + vvd(astrom.v[2], -0.3863338994289409097e-4, 1e-16, + "iauApcs", "v(3)", status); + vvd(astrom.bm1, 0.9999999950277561237, 1e-12, + "iauApcs", "bm1", status); + vvd(astrom.bpn[0][0], 1, 0, + "iauApcs", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0, 0, + "iauApcs", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0, 0, + "iauApcs", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], 0, 0, + "iauApcs", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 1, 0, + "iauApcs", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], 0, 0, + "iauApcs", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], 0, 0, + "iauApcs", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0, 0, + "iauApcs", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 1, 0, + "iauApcs", "bpn(3,3)", status); + +} + +static void t_apcs13(int *status) +/* +** - - - - - - - - - +** t _ a p c s 1 3 +** - - - - - - - - - +** +** Test iauApcs13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApcs13, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, pv[2][3]; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + pv[0][0] = -6241497.16; + pv[0][1] = 401346.896; + pv[0][2] = -1251136.04; + pv[1][0] = -29.264597; + pv[1][1] = -455.021831; + pv[1][2] = 0.0266151194; + + iauApcs13(date1, date2, pv, &astrom); + + vvd(astrom.pmt, 12.65133794027378508, 1e-11, + "iauApcs13", "pmt", status); + vvd(astrom.eb[0], 0.9012691529025250644, 1e-12, + "iauApcs13", "eb(1)", status); + vvd(astrom.eb[1], -0.4173999812023194317, 1e-12, + "iauApcs13", "eb(2)", status); + vvd(astrom.eb[2], -0.1809906511146429670, 1e-12, + "iauApcs13", "eb(3)", status); + vvd(astrom.eh[0], 0.8939939101760130792, 1e-12, + "iauApcs13", "eh(1)", status); + vvd(astrom.eh[1], -0.4111053891734021478, 1e-12, + "iauApcs13", "eh(2)", status); + vvd(astrom.eh[2], -0.1782336880636997374, 1e-12, + "iauApcs13", "eh(3)", status); + vvd(astrom.em, 1.010428384373491095, 1e-12, + "iauApcs13", "em", status); + vvd(astrom.v[0], 0.4279877294121697570e-4, 1e-16, + "iauApcs13", "v(1)", status); + vvd(astrom.v[1], 0.7963255087052120678e-4, 1e-16, + "iauApcs13", "v(2)", status); + vvd(astrom.v[2], 0.3517564013384691531e-4, 1e-16, + "iauApcs13", "v(3)", status); + vvd(astrom.bm1, 0.9999999952947980978, 1e-12, + "iauApcs13", "bm1", status); + vvd(astrom.bpn[0][0], 1, 0, + "iauApcs13", "bpn(1,1)", status); + vvd(astrom.bpn[1][0], 0, 0, + "iauApcs13", "bpn(2,1)", status); + vvd(astrom.bpn[2][0], 0, 0, + "iauApcs13", "bpn(3,1)", status); + vvd(astrom.bpn[0][1], 0, 0, + "iauApcs13", "bpn(1,2)", status); + vvd(astrom.bpn[1][1], 1, 0, + "iauApcs13", "bpn(2,2)", status); + vvd(astrom.bpn[2][1], 0, 0, + "iauApcs13", "bpn(3,2)", status); + vvd(astrom.bpn[0][2], 0, 0, + "iauApcs13", "bpn(1,3)", status); + vvd(astrom.bpn[1][2], 0, 0, + "iauApcs13", "bpn(2,3)", status); + vvd(astrom.bpn[2][2], 1, 0, + "iauApcs13", "bpn(3,3)", status); + +} + +static void t_aper(int *status) +/* +** - - - - - - - +** t _ a p e r +** - - - - - - - +* +** Test iauAper function. +* +** Returned: +** status int FALSE = success, TRUE = fail +* +** Called: iauAper, vvd +* +** This revision: 2013 October 3 +*/ +{ + double theta; + iauASTROM astrom; + + + astrom.along = 1.234; + theta = 5.678; + + iauAper(theta, &astrom); + + vvd(astrom.eral, 6.912000000000000000, 1e-12, + "iauAper", "pmt", status); + +} + +static void t_aper13(int *status) +/* +** - - - - - - - - - +** t _ a p e r 1 3 +** - - - - - - - - - +** +** Test iauAper13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAper13, vvd +** +** This revision: 2013 October 3 +*/ +{ + double ut11, ut12; + iauASTROM astrom; + + + astrom.along = 1.234; + ut11 = 2456165.5; + ut12 = 0.401182685; + + iauAper13(ut11, ut12, &astrom); + + vvd(astrom.eral, 3.316236661789694933, 1e-12, + "iauAper13", "pmt", status); + +} + +static void t_apio(int *status) +/* +** - - - - - - - +** t _ a p i o +** - - - - - - - +** +** Test iauApio function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApio, vvd +** +** This revision: 2021 January 5 +*/ +{ + double sp, theta, elong, phi, hm, xp, yp, refa, refb; + iauASTROM astrom; + + + sp = -3.01974337e-11; + theta = 3.14540971; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + refa = 0.000201418779; + refb = -2.36140831e-7; + + iauApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, &astrom); + + vvd(astrom.along, -0.5278008060295995734, 1e-12, + "iauApio", "along", status); + vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, + "iauApio", "xpl", status); + vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, + "iauApio", "ypl", status); + vvd(astrom.sphi, -0.9440115679003211329, 1e-12, + "iauApio", "sphi", status); + vvd(astrom.cphi, 0.3299123514971474711, 1e-12, + "iauApio", "cphi", status); + vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12, + "iauApio", "diurab", status); + vvd(astrom.eral, 2.617608903970400427, 1e-12, + "iauApio", "eral", status); + vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15, + "iauApio", "refa", status); + vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18, + "iauApio", "refb", status); + +} + +static void t_apio13(int *status) +/* +** - - - - - - - - - +** t _ a p i o 1 3 +** - - - - - - - - - +** +** Test iauApio13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApio13, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl; + int j; + iauASTROM astrom; + + + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + + j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom); + + vvd(astrom.along, -0.5278008060295995733, 1e-12, + "iauApio13", "along", status); + vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, + "iauApio13", "xpl", status); + vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, + "iauApio13", "ypl", status); + vvd(astrom.sphi, -0.9440115679003211329, 1e-12, + "iauApio13", "sphi", status); + vvd(astrom.cphi, 0.3299123514971474711, 1e-12, + "iauApio13", "cphi", status); + vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12, + "iauApio13", "diurab", status); + vvd(astrom.eral, 2.617608909189664000, 1e-12, + "iauApio13", "eral", status); + vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15, + "iauApio13", "refa", status); + vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18, + "iauApio13", "refb", status); + viv(j, 0, "iauApio13", "j", status); + +} + +static void t_atcc13(int *status) +/* +** - - - - - - - - - +** t _ a t c c 1 3 +** - - - - - - - - - +** +** Test iauAtcc13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtcc13, vvd +** +** This revision: 2021 April 18 +*/ +{ + double rc, dc, pr, pd, px, rv, date1, date2, ra, da; + + + rc = 2.71; + dc = 0.174; + pr = 1e-5; + pd = 5e-6; + px = 0.1; + rv = 55.0; + date1 = 2456165.5; + date2 = 0.401182685; + + iauAtcc13(rc, dc, pr, pd, px, rv, date1, date2, &ra, &da); + + vvd(ra, 2.710126504531372384, 1e-12, + "iauAtcc13", "ra", status); + vvd(da, 0.1740632537628350152, 1e-12, + "iauAtcc13", "da", status); + +} + +static void t_atccq(int *status) +/* +** - - - - - - - - +** t _ a t c c q +** - - - - - - - - +** +** Test iauAtccq function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, iauAtccq, vvd +** +** This revision: 2021 July 29 +*/ +{ + double date1, date2, eo, rc, dc, pr, pd, px, rv, ra, da; + iauASTROM astrom; + + date1 = 2456165.5; + date2 = 0.401182685; + iauApci13(date1, date2, &astrom, &eo); + rc = 2.71; + dc = 0.174; + pr = 1e-5; + pd = 5e-6; + px = 0.1; + rv = 55.0; + + iauAtccq(rc, dc, pr, pd, px, rv, &astrom, &ra, &da); + + vvd(ra, 2.710126504531372384, 1e-12, "iauAtccq", "ra", status); + vvd(da, 0.1740632537628350152, 1e-12, "iauAtccq", "da", status); + +} + +static void t_atci13(int *status) +/* +** - - - - - - - - - +** t _ a t c i 1 3 +** - - - - - - - - - +** +** Test iauAtci13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtci13, vvd +** +** This revision: 2017 March 15 +*/ +{ + double rc, dc, pr, pd, px, rv, date1, date2, ri, di, eo; + + + rc = 2.71; + dc = 0.174; + pr = 1e-5; + pd = 5e-6; + px = 0.1; + rv = 55.0; + date1 = 2456165.5; + date2 = 0.401182685; + + iauAtci13(rc, dc, pr, pd, px, rv, date1, date2, &ri, &di, &eo); + + vvd(ri, 2.710121572968696744, 1e-12, + "iauAtci13", "ri", status); + vvd(di, 0.1729371367219539137, 1e-12, + "iauAtci13", "di", status); + vvd(eo, -0.002900618712657375647, 1e-14, + "iauAtci13", "eo", status); + +} + +static void t_atciq(int *status) +/* +** - - - - - - - - +** t _ a t c i q +** - - - - - - - - +** +** Test iauAtciq function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, iauAtciq, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, eo, rc, dc, pr, pd, px, rv, ri, di; + iauASTROM astrom; + + date1 = 2456165.5; + date2 = 0.401182685; + iauApci13(date1, date2, &astrom, &eo); + rc = 2.71; + dc = 0.174; + pr = 1e-5; + pd = 5e-6; + px = 0.1; + rv = 55.0; + + iauAtciq(rc, dc, pr, pd, px, rv, &astrom, &ri, &di); + + vvd(ri, 2.710121572968696744, 1e-12, "iauAtciq", "ri", status); + vvd(di, 0.1729371367219539137, 1e-12, "iauAtciq", "di", status); + +} + +static void t_atciqn(int *status) +/* +** - - - - - - - - - +** t _ a t c i q n +** - - - - - - - - - +** +** Test iauAtciqn function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, iauAtciqn, vvd +** +** This revision: 2017 March 15 +*/ +{ + iauLDBODY b[3]; + double date1, date2, eo, rc, dc, pr, pd, px, rv, ri, di; + iauASTROM astrom; + + date1 = 2456165.5; + date2 = 0.401182685; + iauApci13(date1, date2, &astrom, &eo); + rc = 2.71; + dc = 0.174; + pr = 1e-5; + pd = 5e-6; + px = 0.1; + rv = 55.0; + b[0].bm = 0.00028574; + b[0].dl = 3e-10; + b[0].pv[0][0] = -7.81014427; + b[0].pv[0][1] = -5.60956681; + b[0].pv[0][2] = -1.98079819; + b[0].pv[1][0] = 0.0030723249; + b[0].pv[1][1] = -0.00406995477; + b[0].pv[1][2] = -0.00181335842; + b[1].bm = 0.00095435; + b[1].dl = 3e-9; + b[1].pv[0][0] = 0.738098796; + b[1].pv[0][1] = 4.63658692; + b[1].pv[0][2] = 1.9693136; + b[1].pv[1][0] = -0.00755816922; + b[1].pv[1][1] = 0.00126913722; + b[1].pv[1][2] = 0.000727999001; + b[2].bm = 1.0; + b[2].dl = 6e-6; + b[2].pv[0][0] = -0.000712174377; + b[2].pv[0][1] = -0.00230478303; + b[2].pv[0][2] = -0.00105865966; + b[2].pv[1][0] = 6.29235213e-6; + b[2].pv[1][1] = -3.30888387e-7; + b[2].pv[1][2] = -2.96486623e-7; + + iauAtciqn ( rc, dc, pr, pd, px, rv, &astrom, 3, b, &ri, &di); + + vvd(ri, 2.710122008104983335, 1e-12, "iauAtciqn", "ri", status); + vvd(di, 0.1729371916492767821, 1e-12, "iauAtciqn", "di", status); + +} + +static void t_atciqz(int *status) +/* +** - - - - - - - - - +** t _ a t c i q z +** - - - - - - - - - +** +** Test iauAtciqz function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, iauAtciqz, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, eo, rc, dc, ri, di; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + iauApci13(date1, date2, &astrom, &eo); + rc = 2.71; + dc = 0.174; + + iauAtciqz(rc, dc, &astrom, &ri, &di); + + vvd(ri, 2.709994899247256984, 1e-12, "iauAtciqz", "ri", status); + vvd(di, 0.1728740720984931891, 1e-12, "iauAtciqz", "di", status); + +} + +static void t_atco13(int *status) +/* +** - - - - - - - - - +** t _ a t c o 1 3 +** - - - - - - - - - +** +** Test iauAtco13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtco13, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double rc, dc, pr, pd, px, rv, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + aob, zob, hob, dob, rob, eo; + int j; + + + rc = 2.71; + dc = 0.174; + pr = 1e-5; + pd = 5e-6; + px = 0.1; + rv = 55.0; + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + + j = iauAtco13(rc, dc, pr, pd, px, rv, + utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, + &aob, &zob, &hob, &dob, &rob, &eo); + + vvd(aob, 0.9251774485485515207e-1, 1e-12, "iauAtco13", "aob", status); + vvd(zob, 1.407661405256499357, 1e-12, "iauAtco13", "zob", status); + vvd(hob, -0.9265154431529724692e-1, 1e-12, "iauAtco13", "hob", status); + vvd(dob, 0.1716626560072526200, 1e-12, "iauAtco13", "dob", status); + vvd(rob, 2.710260453504961012, 1e-12, "iauAtco13", "rob", status); + vvd(eo, -0.003020548354802412839, 1e-14, "iauAtco13", "eo", status); + viv(j, 0, "iauAtco13", "j", status); + +} + +static void t_atic13(int *status) +/* +** - - - - - - - - - +** t _ a t i c 1 3 +** - - - - - - - - - +** +** Test iauAtic13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtic13, vvd +** +** This revision: 2017 March 15 +*/ +{ + double ri, di, date1, date2, rc, dc, eo; + + + ri = 2.710121572969038991; + di = 0.1729371367218230438; + date1 = 2456165.5; + date2 = 0.401182685; + + iauAtic13(ri, di, date1, date2, &rc, &dc, &eo); + + vvd(rc, 2.710126504531716819, 1e-12, "iauAtic13", "rc", status); + vvd(dc, 0.1740632537627034482, 1e-12, "iauAtic13", "dc", status); + vvd(eo, -0.002900618712657375647, 1e-14, "iauAtic13", "eo", status); + +} + +static void t_aticq(int *status) +/* +** - - - - - - - - +** t _ a t i c q +** - - - - - - - - +** +** Test iauAticq function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, iauAticq, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, eo, ri, di, rc, dc; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + iauApci13(date1, date2, &astrom, &eo); + ri = 2.710121572969038991; + di = 0.1729371367218230438; + + iauAticq(ri, di, &astrom, &rc, &dc); + + vvd(rc, 2.710126504531716819, 1e-12, "iauAticq", "rc", status); + vvd(dc, 0.1740632537627034482, 1e-12, "iauAticq", "dc", status); + +} + +static void t_aticqn(int *status) +/* +** - - - - - - - - - +** t _ a t i c q n +** - - - - - - - - - +** +** Test iauAticqn function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApci13, iauAticqn, vvd +** +** This revision: 2017 March 15 +*/ +{ + double date1, date2, eo, ri, di, rc, dc; + iauLDBODY b[3]; + iauASTROM astrom; + + + date1 = 2456165.5; + date2 = 0.401182685; + iauApci13(date1, date2, &astrom, &eo); + ri = 2.709994899247599271; + di = 0.1728740720983623469; + b[0].bm = 0.00028574; + b[0].dl = 3e-10; + b[0].pv[0][0] = -7.81014427; + b[0].pv[0][1] = -5.60956681; + b[0].pv[0][2] = -1.98079819; + b[0].pv[1][0] = 0.0030723249; + b[0].pv[1][1] = -0.00406995477; + b[0].pv[1][2] = -0.00181335842; + b[1].bm = 0.00095435; + b[1].dl = 3e-9; + b[1].pv[0][0] = 0.738098796; + b[1].pv[0][1] = 4.63658692; + b[1].pv[0][2] = 1.9693136; + b[1].pv[1][0] = -0.00755816922; + b[1].pv[1][1] = 0.00126913722; + b[1].pv[1][2] = 0.000727999001; + b[2].bm = 1.0; + b[2].dl = 6e-6; + b[2].pv[0][0] = -0.000712174377; + b[2].pv[0][1] = -0.00230478303; + b[2].pv[0][2] = -0.00105865966; + b[2].pv[1][0] = 6.29235213e-6; + b[2].pv[1][1] = -3.30888387e-7; + b[2].pv[1][2] = -2.96486623e-7; + + iauAticqn(ri, di, &astrom, 3, b, &rc, &dc); + + vvd(rc, 2.709999575033027333, 1e-12, "iauAtciqn", "rc", status); + vvd(dc, 0.1739999656316469990, 1e-12, "iauAtciqn", "dc", status); + +} + +static void t_atio13(int *status) +/* +** - - - - - - - - - +** t _ a t i o 1 3 +** - - - - - - - - - +** +** Test iauAtio13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtio13, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, aob, zob, hob, dob, rob; + int j; + + + ri = 2.710121572969038991; + di = 0.1729371367218230438; + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + + j = iauAtio13(ri, di, utc1, utc2, dut1, elong, phi, hm, + xp, yp, phpa, tc, rh, wl, + &aob, &zob, &hob, &dob, &rob); + + vvd(aob, 0.9233952224895122499e-1, 1e-12, "iauAtio13", "aob", status); + vvd(zob, 1.407758704513549991, 1e-12, "iauAtio13", "zob", status); + vvd(hob, -0.9247619879881698140e-1, 1e-12, "iauAtio13", "hob", status); + vvd(dob, 0.1717653435756234676, 1e-12, "iauAtio13", "dob", status); + vvd(rob, 2.710085107988480746, 1e-12, "iauAtio13", "rob", status); + viv(j, 0, "iauAtio13", "j", status); + +} + +static void t_atioq(int *status) +/* +** - - - - - - - - +** t _ a t i o q +** - - - - - - - - +** +** Test iauAtioq function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauApio13, iauAtioq, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, ri, di, aob, zob, hob, dob, rob; + iauASTROM astrom; + + + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + (void) iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom); + ri = 2.710121572969038991; + di = 0.1729371367218230438; + + iauAtioq(ri, di, &astrom, &aob, &zob, &hob, &dob, &rob); + + vvd(aob, 0.9233952224895122499e-1, 1e-12, "iauAtioq", "aob", status); + vvd(zob, 1.407758704513549991, 1e-12, "iauAtioq", "zob", status); + vvd(hob, -0.9247619879881698140e-1, 1e-12, "iauAtioq", "hob", status); + vvd(dob, 0.1717653435756234676, 1e-12, "iauAtioq", "dob", status); + vvd(rob, 2.710085107988480746, 1e-12, "iauAtioq", "rob", status); + +} + +static void t_atoc13(int *status) +/* +** - - - - - - - - - +** t _ a t o c 1 3 +** - - - - - - - - - +** +** Test iauAtoc13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtoc13, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + ob1, ob2, rc, dc; + int j; + + + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + + ob1 = 2.710085107986886201; + ob2 = 0.1717653435758265198; + j = iauAtoc13 ( "R", ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &rc, &dc); + vvd(rc, 2.709956744659136129, 1e-12, "iauAtoc13", "R/rc", status); + vvd(dc, 0.1741696500898471362, 1e-12, "iauAtoc13", "R/dc", status); + viv(j, 0, "iauAtoc13", "R/j", status); + + ob1 = -0.09247619879782006106; + ob2 = 0.1717653435758265198; + j = iauAtoc13 ( "H", ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &rc, &dc); + vvd(rc, 2.709956744659734086, 1e-12, "iauAtoc13", "H/rc", status); + vvd(dc, 0.1741696500898471362, 1e-12, "iauAtoc13", "H/dc", status); + viv(j, 0, "iauAtoc13", "H/j", status); + + ob1 = 0.09233952224794989993; + ob2 = 1.407758704513722461; + j = iauAtoc13 ( "A", ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &rc, &dc); + vvd(rc, 2.709956744659734086, 1e-12, "iauAtoc13", "A/rc", status); + vvd(dc, 0.1741696500898471366, 1e-12, "iauAtoc13", "A/dc", status); + viv(j, 0, "iauAtoc13", "A/j", status); + +} + +static void t_atoi13(int *status) +/* +** - - - - - - - - - +** t _ a t o i 1 3 +** - - - - - - - - - +** +** Test iauAtoi13 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauAtoi13, vvd, viv +** +** This revision: 2021 January 5 +*/ +{ + double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, + ob1, ob2, ri, di; + int j; + + + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + + ob1 = 2.710085107986886201; + ob2 = 0.1717653435758265198; + j = iauAtoi13 ( "R", ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &ri, &di); + vvd(ri, 2.710121574447540810, 1e-12, "iauAtoi13", "R/ri", status); + vvd(di, 0.1729371839116608778, 1e-12, "iauAtoi13", "R/di", status); + viv(j, 0, "iauAtoi13", "R/J", status); + + ob1 = -0.09247619879782006106; + ob2 = 0.1717653435758265198; + j = iauAtoi13 ( "H", ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &ri, &di); + vvd(ri, 2.710121574448138676, 1e-12, "iauAtoi13", "H/ri", status); + vvd(di, 0.1729371839116608778, 1e-12, "iauAtoi13", "H/di", status); + viv(j, 0, "iauAtoi13", "H/J", status); + + ob1 = 0.09233952224794989993; + ob2 = 1.407758704513722461; + j = iauAtoi13 ( "A", ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &ri, &di); + vvd(ri, 2.710121574448138676, 1e-12, "iauAtoi13", "A/ri", status); + vvd(di, 0.1729371839116608781, 1e-12, "iauAtoi13", "A/di", status); + viv(j, 0, "iauAtoi13", "A/J", status); + +} + +static void t_atoiq(int *status) +/* +** - - - - - - - - +** t _ a t o i q +** - - - - - - - - +* +** Test iauAtoiq function. +* +** Returned: +** status int FALSE = success, TRUE = fail +* +** Called: iauApio13, iauAtoiq, vvd +* +** This revision: 2021 January 5 +*/ +{ + double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, + ob1, ob2, ri, di; + iauASTROM astrom; + + + utc1 = 2456384.5; + utc2 = 0.969254051; + dut1 = 0.1550675; + elong = -0.527800806; + phi = -1.2345856; + hm = 2738.0; + xp = 2.47230737e-7; + yp = 1.82640464e-6; + phpa = 731.0; + tc = 12.8; + rh = 0.59; + wl = 0.55; + (void) iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom); + + ob1 = 2.710085107986886201; + ob2 = 0.1717653435758265198; + iauAtoiq("R", ob1, ob2, &astrom, &ri, &di); + vvd(ri, 2.710121574447540810, 1e-12, + "iauAtoiq", "R/ri", status); + vvd(di, 0.17293718391166087785, 1e-12, + "iauAtoiq", "R/di", status); + + ob1 = -0.09247619879782006106; + ob2 = 0.1717653435758265198; + iauAtoiq("H", ob1, ob2, &astrom, &ri, &di); + vvd(ri, 2.710121574448138676, 1e-12, + "iauAtoiq", "H/ri", status); + vvd(di, 0.1729371839116608778, 1e-12, + "iauAtoiq", "H/di", status); + + ob1 = 0.09233952224794989993; + ob2 = 1.407758704513722461; + iauAtoiq("A", ob1, ob2, &astrom, &ri, &di); + vvd(ri, 2.710121574448138676, 1e-12, + "iauAtoiq", "A/ri", status); + vvd(di, 0.1729371839116608781, 1e-12, + "iauAtoiq", "A/di", status); + +} + +static void t_bi00(int *status) +/* +** - - - - - - - +** t _ b i 0 0 +** - - - - - - - +** +** Test iauBi00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauBi00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsibi, depsbi, dra; + + iauBi00(&dpsibi, &depsbi, &dra); + + vvd(dpsibi, -0.2025309152835086613e-6, 1e-12, + "iauBi00", "dpsibi", status); + vvd(depsbi, -0.3306041454222147847e-7, 1e-12, + "iauBi00", "depsbi", status); + vvd(dra, -0.7078279744199225506e-7, 1e-12, + "iauBi00", "dra", status); +} + +static void t_bp00(int *status) +/* +** - - - - - - - +** t _ b p 0 0 +** - - - - - - - +** +** Test iauBp00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauBp00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rb[3][3], rp[3][3], rbp[3][3]; + + + iauBp00(2400000.5, 50123.9999, rb, rp, rbp); + + vvd(rb[0][0], 0.9999999999999942498, 1e-12, + "iauBp00", "rb11", status); + vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, + "iauBp00", "rb12", status); + vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, + "iauBp00", "rb13", status); + vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, + "iauBp00", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauBp00", "rb22", status); + vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, + "iauBp00", "rb23", status); + vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, + "iauBp00", "rb31", status); + vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, + "iauBp00", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauBp00", "rb33", status); + + vvd(rp[0][0], 0.9999995504864048241, 1e-12, + "iauBp00", "rp11", status); + vvd(rp[0][1], 0.8696113836207084411e-3, 1e-14, + "iauBp00", "rp12", status); + vvd(rp[0][2], 0.3778928813389333402e-3, 1e-14, + "iauBp00", "rp13", status); + vvd(rp[1][0], -0.8696113818227265968e-3, 1e-14, + "iauBp00", "rp21", status); + vvd(rp[1][1], 0.9999996218879365258, 1e-12, + "iauBp00", "rp22", status); + vvd(rp[1][2], -0.1690679263009242066e-6, 1e-14, + "iauBp00", "rp23", status); + vvd(rp[2][0], -0.3778928854764695214e-3, 1e-14, + "iauBp00", "rp31", status); + vvd(rp[2][1], -0.1595521004195286491e-6, 1e-14, + "iauBp00", "rp32", status); + vvd(rp[2][2], 0.9999999285984682756, 1e-12, + "iauBp00", "rp33", status); + + vvd(rbp[0][0], 0.9999995505175087260, 1e-12, + "iauBp00", "rbp11", status); + vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14, + "iauBp00", "rbp12", status); + vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14, + "iauBp00", "rbp13", status); + vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14, + "iauBp00", "rbp21", status); + vvd(rbp[1][1], 0.9999996219494925900, 1e-12, + "iauBp00", "rbp22", status); + vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14, + "iauBp00", "rbp23", status); + vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14, + "iauBp00", "rbp31", status); + vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14, + "iauBp00", "rbp32", status); + vvd(rbp[2][2], 0.9999999285680153377, 1e-12, + "iauBp00", "rbp33", status); +} + +static void t_bp06(int *status) +/* +** - - - - - - - +** t _ b p 0 6 +** - - - - - - - +** +** Test iauBp06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauBp06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rb[3][3], rp[3][3], rbp[3][3]; + + + iauBp06(2400000.5, 50123.9999, rb, rp, rbp); + + vvd(rb[0][0], 0.9999999999999942497, 1e-12, + "iauBp06", "rb11", status); + vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, + "iauBp06", "rb12", status); + vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, + "iauBp06", "rb13", status); + vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, + "iauBp06", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauBp06", "rb22", status); + vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, + "iauBp06", "rb23", status); + vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, + "iauBp06", "rb31", status); + vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, + "iauBp06", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauBp06", "rb33", status); + + vvd(rp[0][0], 0.9999995504864960278, 1e-12, + "iauBp06", "rp11", status); + vvd(rp[0][1], 0.8696112578855404832e-3, 1e-14, + "iauBp06", "rp12", status); + vvd(rp[0][2], 0.3778929293341390127e-3, 1e-14, + "iauBp06", "rp13", status); + vvd(rp[1][0], -0.8696112560510186244e-3, 1e-14, + "iauBp06", "rp21", status); + vvd(rp[1][1], 0.9999996218880458820, 1e-12, + "iauBp06", "rp22", status); + vvd(rp[1][2], -0.1691646168941896285e-6, 1e-14, + "iauBp06", "rp23", status); + vvd(rp[2][0], -0.3778929335557603418e-3, 1e-14, + "iauBp06", "rp31", status); + vvd(rp[2][1], -0.1594554040786495076e-6, 1e-14, + "iauBp06", "rp32", status); + vvd(rp[2][2], 0.9999999285984501222, 1e-12, + "iauBp06", "rp33", status); + + vvd(rbp[0][0], 0.9999995505176007047, 1e-12, + "iauBp06", "rbp11", status); + vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14, + "iauBp06", "rbp12", status); + vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14, + "iauBp06", "rbp13", status); + vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14, + "iauBp06", "rbp21", status); + vvd(rbp[1][1], 0.9999996219496027161, 1e-12, + "iauBp06", "rbp22", status); + vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14, + "iauBp06", "rbp23", status); + vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14, + "iauBp06", "rbp31", status); + vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14, + "iauBp06", "rbp32", status); + vvd(rbp[2][2], 0.9999999285679971958, 1e-12, + "iauBp06", "rbp33", status); +} + +static void t_bpn2xy(int *status) +/* +** - - - - - - - - - +** t _ b p n 2 x y +** - - - - - - - - - +** +** Test iauBpn2xy function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauBpn2xy, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbpn[3][3], x, y; + + + rbpn[0][0] = 9.999962358680738e-1; + rbpn[0][1] = -2.516417057665452e-3; + rbpn[0][2] = -1.093569785342370e-3; + + rbpn[1][0] = 2.516462370370876e-3; + rbpn[1][1] = 9.999968329010883e-1; + rbpn[1][2] = 4.006159587358310e-5; + + rbpn[2][0] = 1.093465510215479e-3; + rbpn[2][1] = -4.281337229063151e-5; + rbpn[2][2] = 9.999994012499173e-1; + + iauBpn2xy(rbpn, &x, &y); + + vvd(x, 1.093465510215479e-3, 1e-12, "iauBpn2xy", "x", status); + vvd(y, -4.281337229063151e-5, 1e-12, "iauBpn2xy", "y", status); + +} + +static void t_c2i00a(int *status) +/* +** - - - - - - - - - +** t _ c 2 i 0 0 a +** - - - - - - - - - +** +** Test iauC2i00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2i00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rc2i[3][3]; + + + iauC2i00a(2400000.5, 53736.0, rc2i); + + vvd(rc2i[0][0], 0.9999998323037165557, 1e-12, + "iauC2i00a", "11", status); + vvd(rc2i[0][1], 0.5581526348992140183e-9, 1e-12, + "iauC2i00a", "12", status); + vvd(rc2i[0][2], -0.5791308477073443415e-3, 1e-12, + "iauC2i00a", "13", status); + + vvd(rc2i[1][0], -0.2384266227870752452e-7, 1e-12, + "iauC2i00a", "21", status); + vvd(rc2i[1][1], 0.9999999991917405258, 1e-12, + "iauC2i00a", "22", status); + vvd(rc2i[1][2], -0.4020594955028209745e-4, 1e-12, + "iauC2i00a", "23", status); + + vvd(rc2i[2][0], 0.5791308472168152904e-3, 1e-12, + "iauC2i00a", "31", status); + vvd(rc2i[2][1], 0.4020595661591500259e-4, 1e-12, + "iauC2i00a", "32", status); + vvd(rc2i[2][2], 0.9999998314954572304, 1e-12, + "iauC2i00a", "33", status); + +} + +static void t_c2i00b(int *status) +/* +** - - - - - - - - - +** t _ c 2 i 0 0 b +** - - - - - - - - - +** +** Test iauC2i00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2i00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rc2i[3][3]; + + + iauC2i00b(2400000.5, 53736.0, rc2i); + + vvd(rc2i[0][0], 0.9999998323040954356, 1e-12, + "iauC2i00b", "11", status); + vvd(rc2i[0][1], 0.5581526349131823372e-9, 1e-12, + "iauC2i00b", "12", status); + vvd(rc2i[0][2], -0.5791301934855394005e-3, 1e-12, + "iauC2i00b", "13", status); + + vvd(rc2i[1][0], -0.2384239285499175543e-7, 1e-12, + "iauC2i00b", "21", status); + vvd(rc2i[1][1], 0.9999999991917574043, 1e-12, + "iauC2i00b", "22", status); + vvd(rc2i[1][2], -0.4020552974819030066e-4, 1e-12, + "iauC2i00b", "23", status); + + vvd(rc2i[2][0], 0.5791301929950208873e-3, 1e-12, + "iauC2i00b", "31", status); + vvd(rc2i[2][1], 0.4020553681373720832e-4, 1e-12, + "iauC2i00b", "32", status); + vvd(rc2i[2][2], 0.9999998314958529887, 1e-12, + "iauC2i00b", "33", status); + +} + +static void t_c2i06a(int *status) +/* +** - - - - - - - - - +** t _ c 2 i 0 6 a +** - - - - - - - - - +** +** Test iauC2i06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2i06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rc2i[3][3]; + + + iauC2i06a(2400000.5, 53736.0, rc2i); + + vvd(rc2i[0][0], 0.9999998323037159379, 1e-12, + "iauC2i06a", "11", status); + vvd(rc2i[0][1], 0.5581121329587613787e-9, 1e-12, + "iauC2i06a", "12", status); + vvd(rc2i[0][2], -0.5791308487740529749e-3, 1e-12, + "iauC2i06a", "13", status); + + vvd(rc2i[1][0], -0.2384253169452306581e-7, 1e-12, + "iauC2i06a", "21", status); + vvd(rc2i[1][1], 0.9999999991917467827, 1e-12, + "iauC2i06a", "22", status); + vvd(rc2i[1][2], -0.4020579392895682558e-4, 1e-12, + "iauC2i06a", "23", status); + + vvd(rc2i[2][0], 0.5791308482835292617e-3, 1e-12, + "iauC2i06a", "31", status); + vvd(rc2i[2][1], 0.4020580099454020310e-4, 1e-12, + "iauC2i06a", "32", status); + vvd(rc2i[2][2], 0.9999998314954628695, 1e-12, + "iauC2i06a", "33", status); + +} + +static void t_c2ibpn(int *status) +/* +** - - - - - - - - - +** t _ c 2 i b p n +** - - - - - - - - - +** +** Test iauC2ibpn function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2ibpn, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbpn[3][3], rc2i[3][3]; + + + rbpn[0][0] = 9.999962358680738e-1; + rbpn[0][1] = -2.516417057665452e-3; + rbpn[0][2] = -1.093569785342370e-3; + + rbpn[1][0] = 2.516462370370876e-3; + rbpn[1][1] = 9.999968329010883e-1; + rbpn[1][2] = 4.006159587358310e-5; + + rbpn[2][0] = 1.093465510215479e-3; + rbpn[2][1] = -4.281337229063151e-5; + rbpn[2][2] = 9.999994012499173e-1; + + iauC2ibpn(2400000.5, 50123.9999, rbpn, rc2i); + + vvd(rc2i[0][0], 0.9999994021664089977, 1e-12, + "iauC2ibpn", "11", status); + vvd(rc2i[0][1], -0.3869195948017503664e-8, 1e-12, + "iauC2ibpn", "12", status); + vvd(rc2i[0][2], -0.1093465511383285076e-2, 1e-12, + "iauC2ibpn", "13", status); + + vvd(rc2i[1][0], 0.5068413965715446111e-7, 1e-12, + "iauC2ibpn", "21", status); + vvd(rc2i[1][1], 0.9999999990835075686, 1e-12, + "iauC2ibpn", "22", status); + vvd(rc2i[1][2], 0.4281334246452708915e-4, 1e-12, + "iauC2ibpn", "23", status); + + vvd(rc2i[2][0], 0.1093465510215479000e-2, 1e-12, + "iauC2ibpn", "31", status); + vvd(rc2i[2][1], -0.4281337229063151000e-4, 1e-12, + "iauC2ibpn", "32", status); + vvd(rc2i[2][2], 0.9999994012499173103, 1e-12, + "iauC2ibpn", "33", status); + +} + +static void t_c2ixy(int *status) +/* +** - - - - - - - - +** t _ c 2 i x y +** - - - - - - - - +** +** Test iauC2ixy function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2ixy, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, rc2i[3][3]; + + + x = 0.5791308486706011000e-3; + y = 0.4020579816732961219e-4; + + iauC2ixy(2400000.5, 53736, x, y, rc2i); + + vvd(rc2i[0][0], 0.9999998323037157138, 1e-12, + "iauC2ixy", "11", status); + vvd(rc2i[0][1], 0.5581526349032241205e-9, 1e-12, + "iauC2ixy", "12", status); + vvd(rc2i[0][2], -0.5791308491611263745e-3, 1e-12, + "iauC2ixy", "13", status); + + vvd(rc2i[1][0], -0.2384257057469842953e-7, 1e-12, + "iauC2ixy", "21", status); + vvd(rc2i[1][1], 0.9999999991917468964, 1e-12, + "iauC2ixy", "22", status); + vvd(rc2i[1][2], -0.4020579110172324363e-4, 1e-12, + "iauC2ixy", "23", status); + + vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12, + "iauC2ixy", "31", status); + vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12, + "iauC2ixy", "32", status); + vvd(rc2i[2][2], 0.9999998314954627590, 1e-12, + "iauC2ixy", "33", status); + +} + +static void t_c2ixys(int *status) +/* +** - - - - - - - - - +** t _ c 2 i x y s +** - - - - - - - - - +** +** Test iauC2ixys function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2ixys, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, s, rc2i[3][3]; + + + x = 0.5791308486706011000e-3; + y = 0.4020579816732961219e-4; + s = -0.1220040848472271978e-7; + + iauC2ixys(x, y, s, rc2i); + + vvd(rc2i[0][0], 0.9999998323037157138, 1e-12, + "iauC2ixys", "11", status); + vvd(rc2i[0][1], 0.5581984869168499149e-9, 1e-12, + "iauC2ixys", "12", status); + vvd(rc2i[0][2], -0.5791308491611282180e-3, 1e-12, + "iauC2ixys", "13", status); + + vvd(rc2i[1][0], -0.2384261642670440317e-7, 1e-12, + "iauC2ixys", "21", status); + vvd(rc2i[1][1], 0.9999999991917468964, 1e-12, + "iauC2ixys", "22", status); + vvd(rc2i[1][2], -0.4020579110169668931e-4, 1e-12, + "iauC2ixys", "23", status); + + vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12, + "iauC2ixys", "31", status); + vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12, + "iauC2ixys", "32", status); + vvd(rc2i[2][2], 0.9999998314954627590, 1e-12, + "iauC2ixys", "33", status); + +} + +static void t_c2s(int *status) +/* +** - - - - - - +** t _ c 2 s +** - - - - - - +** +** Test iauC2s function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2s, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3], theta, phi; + + + p[0] = 100.0; + p[1] = -50.0; + p[2] = 25.0; + + iauC2s(p, &theta, &phi); + + vvd(theta, -0.4636476090008061162, 1e-14, "iauC2s", "theta", status); + vvd(phi, 0.2199879773954594463, 1e-14, "iauC2s", "phi", status); + +} + +static void t_c2t00a(int *status) +/* +** - - - - - - - - - +** t _ c 2 t 0 0 a +** - - - - - - - - - +** +** Test iauC2t00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2t00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double tta, ttb, uta, utb, xp, yp, rc2t[3][3]; + + + tta = 2400000.5; + uta = 2400000.5; + ttb = 53736.0; + utb = 53736.0; + xp = 2.55060238e-7; + yp = 1.860359247e-6; + + iauC2t00a(tta, ttb, uta, utb, xp, yp, rc2t); + + vvd(rc2t[0][0], -0.1810332128307182668, 1e-12, + "iauC2t00a", "11", status); + vvd(rc2t[0][1], 0.9834769806938457836, 1e-12, + "iauC2t00a", "12", status); + vvd(rc2t[0][2], 0.6555535638688341725e-4, 1e-12, + "iauC2t00a", "13", status); + + vvd(rc2t[1][0], -0.9834768134135984552, 1e-12, + "iauC2t00a", "21", status); + vvd(rc2t[1][1], -0.1810332203649520727, 1e-12, + "iauC2t00a", "22", status); + vvd(rc2t[1][2], 0.5749801116141056317e-3, 1e-12, + "iauC2t00a", "23", status); + + vvd(rc2t[2][0], 0.5773474014081406921e-3, 1e-12, + "iauC2t00a", "31", status); + vvd(rc2t[2][1], 0.3961832391770163647e-4, 1e-12, + "iauC2t00a", "32", status); + vvd(rc2t[2][2], 0.9999998325501692289, 1e-12, + "iauC2t00a", "33", status); + +} + +static void t_c2t00b(int *status) +/* +** - - - - - - - - - +** t _ c 2 t 0 0 b +** - - - - - - - - - +** +** Test iauC2t00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2t00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double tta, ttb, uta, utb, xp, yp, rc2t[3][3]; + + + tta = 2400000.5; + uta = 2400000.5; + ttb = 53736.0; + utb = 53736.0; + xp = 2.55060238e-7; + yp = 1.860359247e-6; + + iauC2t00b(tta, ttb, uta, utb, xp, yp, rc2t); + + vvd(rc2t[0][0], -0.1810332128439678965, 1e-12, + "iauC2t00b", "11", status); + vvd(rc2t[0][1], 0.9834769806913872359, 1e-12, + "iauC2t00b", "12", status); + vvd(rc2t[0][2], 0.6555565082458415611e-4, 1e-12, + "iauC2t00b", "13", status); + + vvd(rc2t[1][0], -0.9834768134115435923, 1e-12, + "iauC2t00b", "21", status); + vvd(rc2t[1][1], -0.1810332203784001946, 1e-12, + "iauC2t00b", "22", status); + vvd(rc2t[1][2], 0.5749793922030017230e-3, 1e-12, + "iauC2t00b", "23", status); + + vvd(rc2t[2][0], 0.5773467471863534901e-3, 1e-12, + "iauC2t00b", "31", status); + vvd(rc2t[2][1], 0.3961790411549945020e-4, 1e-12, + "iauC2t00b", "32", status); + vvd(rc2t[2][2], 0.9999998325505635738, 1e-12, + "iauC2t00b", "33", status); + +} + +static void t_c2t06a(int *status) +/* +** - - - - - - - - - +** t _ c 2 t 0 6 a +** - - - - - - - - - +** +** Test iauC2t06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2t06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double tta, ttb, uta, utb, xp, yp, rc2t[3][3]; + + + tta = 2400000.5; + uta = 2400000.5; + ttb = 53736.0; + utb = 53736.0; + xp = 2.55060238e-7; + yp = 1.860359247e-6; + + iauC2t06a(tta, ttb, uta, utb, xp, yp, rc2t); + + vvd(rc2t[0][0], -0.1810332128305897282, 1e-12, + "iauC2t06a", "11", status); + vvd(rc2t[0][1], 0.9834769806938592296, 1e-12, + "iauC2t06a", "12", status); + vvd(rc2t[0][2], 0.6555550962998436505e-4, 1e-12, + "iauC2t06a", "13", status); + + vvd(rc2t[1][0], -0.9834768134136214897, 1e-12, + "iauC2t06a", "21", status); + vvd(rc2t[1][1], -0.1810332203649130832, 1e-12, + "iauC2t06a", "22", status); + vvd(rc2t[1][2], 0.5749800844905594110e-3, 1e-12, + "iauC2t06a", "23", status); + + vvd(rc2t[2][0], 0.5773474024748545878e-3, 1e-12, + "iauC2t06a", "31", status); + vvd(rc2t[2][1], 0.3961816829632690581e-4, 1e-12, + "iauC2t06a", "32", status); + vvd(rc2t[2][2], 0.9999998325501747785, 1e-12, + "iauC2t06a", "33", status); + +} + +static void t_c2tcio(int *status) +/* +** - - - - - - - - - +** t _ c 2 t c i o +** - - - - - - - - - +** +** Test iauC2tcio function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2tcio, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rc2i[3][3], era, rpom[3][3], rc2t[3][3]; + + + rc2i[0][0] = 0.9999998323037164738; + rc2i[0][1] = 0.5581526271714303683e-9; + rc2i[0][2] = -0.5791308477073443903e-3; + + rc2i[1][0] = -0.2384266227524722273e-7; + rc2i[1][1] = 0.9999999991917404296; + rc2i[1][2] = -0.4020594955030704125e-4; + + rc2i[2][0] = 0.5791308472168153320e-3; + rc2i[2][1] = 0.4020595661593994396e-4; + rc2i[2][2] = 0.9999998314954572365; + + era = 1.75283325530307; + + rpom[0][0] = 0.9999999999999674705; + rpom[0][1] = -0.1367174580728847031e-10; + rpom[0][2] = 0.2550602379999972723e-6; + + rpom[1][0] = 0.1414624947957029721e-10; + rpom[1][1] = 0.9999999999982694954; + rpom[1][2] = -0.1860359246998866338e-5; + + rpom[2][0] = -0.2550602379741215275e-6; + rpom[2][1] = 0.1860359247002413923e-5; + rpom[2][2] = 0.9999999999982369658; + + + iauC2tcio(rc2i, era, rpom, rc2t); + + vvd(rc2t[0][0], -0.1810332128307110439, 1e-12, + "iauC2tcio", "11", status); + vvd(rc2t[0][1], 0.9834769806938470149, 1e-12, + "iauC2tcio", "12", status); + vvd(rc2t[0][2], 0.6555535638685466874e-4, 1e-12, + "iauC2tcio", "13", status); + + vvd(rc2t[1][0], -0.9834768134135996657, 1e-12, + "iauC2tcio", "21", status); + vvd(rc2t[1][1], -0.1810332203649448367, 1e-12, + "iauC2tcio", "22", status); + vvd(rc2t[1][2], 0.5749801116141106528e-3, 1e-12, + "iauC2tcio", "23", status); + + vvd(rc2t[2][0], 0.5773474014081407076e-3, 1e-12, + "iauC2tcio", "31", status); + vvd(rc2t[2][1], 0.3961832391772658944e-4, 1e-12, + "iauC2tcio", "32", status); + vvd(rc2t[2][2], 0.9999998325501691969, 1e-12, + "iauC2tcio", "33", status); + +} + +static void t_c2teqx(int *status) +/* +** - - - - - - - - - +** t _ c 2 t e q x +** - - - - - - - - - +** +** Test iauC2teqx function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2teqx, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbpn[3][3], gst, rpom[3][3], rc2t[3][3]; + + + rbpn[0][0] = 0.9999989440476103608; + rbpn[0][1] = -0.1332881761240011518e-2; + rbpn[0][2] = -0.5790767434730085097e-3; + + rbpn[1][0] = 0.1332858254308954453e-2; + rbpn[1][1] = 0.9999991109044505944; + rbpn[1][2] = -0.4097782710401555759e-4; + + rbpn[2][0] = 0.5791308472168153320e-3; + rbpn[2][1] = 0.4020595661593994396e-4; + rbpn[2][2] = 0.9999998314954572365; + + gst = 1.754166138040730516; + + rpom[0][0] = 0.9999999999999674705; + rpom[0][1] = -0.1367174580728847031e-10; + rpom[0][2] = 0.2550602379999972723e-6; + + rpom[1][0] = 0.1414624947957029721e-10; + rpom[1][1] = 0.9999999999982694954; + rpom[1][2] = -0.1860359246998866338e-5; + + rpom[2][0] = -0.2550602379741215275e-6; + rpom[2][1] = 0.1860359247002413923e-5; + rpom[2][2] = 0.9999999999982369658; + + iauC2teqx(rbpn, gst, rpom, rc2t); + + vvd(rc2t[0][0], -0.1810332128528685730, 1e-12, + "iauC2teqx", "11", status); + vvd(rc2t[0][1], 0.9834769806897685071, 1e-12, + "iauC2teqx", "12", status); + vvd(rc2t[0][2], 0.6555535639982634449e-4, 1e-12, + "iauC2teqx", "13", status); + + vvd(rc2t[1][0], -0.9834768134095211257, 1e-12, + "iauC2teqx", "21", status); + vvd(rc2t[1][1], -0.1810332203871023800, 1e-12, + "iauC2teqx", "22", status); + vvd(rc2t[1][2], 0.5749801116126438962e-3, 1e-12, + "iauC2teqx", "23", status); + + vvd(rc2t[2][0], 0.5773474014081539467e-3, 1e-12, + "iauC2teqx", "31", status); + vvd(rc2t[2][1], 0.3961832391768640871e-4, 1e-12, + "iauC2teqx", "32", status); + vvd(rc2t[2][2], 0.9999998325501691969, 1e-12, + "iauC2teqx", "33", status); + +} + +static void t_c2tpe(int *status) +/* +** - - - - - - - - +** t _ c 2 t p e +** - - - - - - - - +** +** Test iauC2tpe function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2tpe, vvd +** +** This revision: 2013 August 7 +*/ +{ + double tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t[3][3]; + + + tta = 2400000.5; + uta = 2400000.5; + ttb = 53736.0; + utb = 53736.0; + deps = 0.4090789763356509900; + dpsi = -0.9630909107115582393e-5; + xp = 2.55060238e-7; + yp = 1.860359247e-6; + + iauC2tpe(tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t); + + vvd(rc2t[0][0], -0.1813677995763029394, 1e-12, + "iauC2tpe", "11", status); + vvd(rc2t[0][1], 0.9023482206891683275, 1e-12, + "iauC2tpe", "12", status); + vvd(rc2t[0][2], -0.3909902938641085751, 1e-12, + "iauC2tpe", "13", status); + + vvd(rc2t[1][0], -0.9834147641476804807, 1e-12, + "iauC2tpe", "21", status); + vvd(rc2t[1][1], -0.1659883635434995121, 1e-12, + "iauC2tpe", "22", status); + vvd(rc2t[1][2], 0.7309763898042819705e-1, 1e-12, + "iauC2tpe", "23", status); + + vvd(rc2t[2][0], 0.1059685430673215247e-2, 1e-12, + "iauC2tpe", "31", status); + vvd(rc2t[2][1], 0.3977631855605078674, 1e-12, + "iauC2tpe", "32", status); + vvd(rc2t[2][2], 0.9174875068792735362, 1e-12, + "iauC2tpe", "33", status); + +} + +static void t_c2txy(int *status) +/* +** - - - - - - - - +** t _ c 2 t x y +** - - - - - - - - +** +** Test iauC2txy function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauC2txy, vvd +** +** This revision: 2013 August 7 +*/ +{ + double tta, ttb, uta, utb, x, y, xp, yp, rc2t[3][3]; + + + tta = 2400000.5; + uta = 2400000.5; + ttb = 53736.0; + utb = 53736.0; + x = 0.5791308486706011000e-3; + y = 0.4020579816732961219e-4; + xp = 2.55060238e-7; + yp = 1.860359247e-6; + + iauC2txy(tta, ttb, uta, utb, x, y, xp, yp, rc2t); + + vvd(rc2t[0][0], -0.1810332128306279253, 1e-12, + "iauC2txy", "11", status); + vvd(rc2t[0][1], 0.9834769806938520084, 1e-12, + "iauC2txy", "12", status); + vvd(rc2t[0][2], 0.6555551248057665829e-4, 1e-12, + "iauC2txy", "13", status); + + vvd(rc2t[1][0], -0.9834768134136142314, 1e-12, + "iauC2txy", "21", status); + vvd(rc2t[1][1], -0.1810332203649529312, 1e-12, + "iauC2txy", "22", status); + vvd(rc2t[1][2], 0.5749800843594139912e-3, 1e-12, + "iauC2txy", "23", status); + + vvd(rc2t[2][0], 0.5773474028619264494e-3, 1e-12, + "iauC2txy", "31", status); + vvd(rc2t[2][1], 0.3961816546911624260e-4, 1e-12, + "iauC2txy", "32", status); + vvd(rc2t[2][2], 0.9999998325501746670, 1e-12, + "iauC2txy", "33", status); + +} + +static void t_cal2jd(int *status) +/* +** - - - - - - - - - +** t _ c a l 2 j d +** - - - - - - - - - +** +** Test iauCal2jd function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauCal2jd, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + int j; + double djm0, djm; + + + j = iauCal2jd(2003, 06, 01, &djm0, &djm); + + vvd(djm0, 2400000.5, 0.0, "iauCal2jd", "djm0", status); + vvd(djm, 52791.0, 0.0, "iauCal2jd", "djm", status); + + viv(j, 0, "iauCal2jd", "j", status); + +} + +static void t_cp(int *status) +/* +** - - - - - +** t _ c p +** - - - - - +** +** Test iauCp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauCp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3], c[3]; + + + p[0] = 0.3; + p[1] = 1.2; + p[2] = -2.5; + + iauCp(p, c); + + vvd(c[0], 0.3, 0.0, "iauCp", "1", status); + vvd(c[1], 1.2, 0.0, "iauCp", "2", status); + vvd(c[2], -2.5, 0.0, "iauCp", "3", status); +} + +static void t_cpv(int *status) +/* +** - - - - - - +** t _ c p v +** - - - - - - +** +** Test iauCpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauCpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double pv[2][3], c[2][3]; + + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = -0.5; + pv[1][1] = 3.1; + pv[1][2] = 0.9; + + iauCpv(pv, c); + + vvd(c[0][0], 0.3, 0.0, "iauCpv", "p1", status); + vvd(c[0][1], 1.2, 0.0, "iauCpv", "p2", status); + vvd(c[0][2], -2.5, 0.0, "iauCpv", "p3", status); + + vvd(c[1][0], -0.5, 0.0, "iauCpv", "v1", status); + vvd(c[1][1], 3.1, 0.0, "iauCpv", "v2", status); + vvd(c[1][2], 0.9, 0.0, "iauCpv", "v3", status); + +} + +static void t_cr(int *status) +/* +** - - - - - +** t _ c r +** - - - - - +** +** Test iauCr function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauCr, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], c[3][3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + iauCr(r, c); + + vvd(c[0][0], 2.0, 0.0, "iauCr", "11", status); + vvd(c[0][1], 3.0, 0.0, "iauCr", "12", status); + vvd(c[0][2], 2.0, 0.0, "iauCr", "13", status); + + vvd(c[1][0], 3.0, 0.0, "iauCr", "21", status); + vvd(c[1][1], 2.0, 0.0, "iauCr", "22", status); + vvd(c[1][2], 3.0, 0.0, "iauCr", "23", status); + + vvd(c[2][0], 3.0, 0.0, "iauCr", "31", status); + vvd(c[2][1], 4.0, 0.0, "iauCr", "32", status); + vvd(c[2][2], 5.0, 0.0, "iauCr", "33", status); +} + +static void t_d2dtf(int *status ) +/* +** - - - - - - - - +** t _ d 2 d t f +** - - - - - - - - +** +** Test iauD2dtf function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauD2dtf, viv +** +** This revision: 2013 August 7 +*/ +{ + int j, iy, im, id, ihmsf[4]; + + + j = iauD2dtf("UTC", 5, 2400000.5, 49533.99999, &iy, &im, &id, ihmsf); + + viv(iy, 1994, "iauD2dtf", "y", status); + viv(im, 6, "iauD2dtf", "mo", status); + viv(id, 30, "iauD2dtf", "d", status); + viv(ihmsf[0], 23, "iauD2dtf", "h", status); + viv(ihmsf[1], 59, "iauD2dtf", "m", status); + viv(ihmsf[2], 60, "iauD2dtf", "s", status); + viv(ihmsf[3], 13599, "iauD2dtf", "f", status); + viv(j, 0, "iauD2dtf", "j", status); + +} + +static void t_d2tf(int *status) +/* +** - - - - - - - +** t _ d 2 t f +** - - - - - - - +** +** Test iauD2tf function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauD2tf, viv, vvd +** +** This revision: 2013 August 7 +*/ +{ + int ihmsf[4]; + char s; + + + iauD2tf(4, -0.987654321, &s, ihmsf); + + viv((int)s, '-', "iauD2tf", "s", status); + + viv(ihmsf[0], 23, "iauD2tf", "0", status); + viv(ihmsf[1], 42, "iauD2tf", "1", status); + viv(ihmsf[2], 13, "iauD2tf", "2", status); + viv(ihmsf[3], 3333, "iauD2tf", "3", status); + +} + +static void t_dat(int *status) +/* +** - - - - - - +** t _ d a t +** - - - - - - +** +** Test iauDat function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauDat, vvd, viv +** +** This revision: 2016 July 11 +*/ +{ + int j; + double deltat; + + + j = iauDat(2003, 6, 1, 0.0, &deltat); + + vvd(deltat, 32.0, 0.0, "iauDat", "d1", status); + viv(j, 0, "iauDat", "j1", status); + + j = iauDat(2008, 1, 17, 0.0, &deltat); + + vvd(deltat, 33.0, 0.0, "iauDat", "d2", status); + viv(j, 0, "iauDat", "j2", status); + + j = iauDat(2017, 9, 1, 0.0, &deltat); + + vvd(deltat, 37.0, 0.0, "iauDat", "d3", status); + viv(j, 0, "iauDat", "j3", status); + +} + +static void t_dtdb(int *status) +/* +** - - - - - - - +** t _ d t d b +** - - - - - - - +** +** Test iauDtdb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauDtdb, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dtdb; + + + dtdb = iauDtdb(2448939.5, 0.123, 0.76543, 5.0123, 5525.242, 3190.0); + + vvd(dtdb, -0.1280368005936998991e-2, 1e-15, "iauDtdb", "", status); + +} + +static void t_dtf2d(int *status) +/* +** - - - - - - - - +** t _ d t f 2 d +** - - - - - - - - +** +** Test iauDtf2d function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauDtf2d, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double u1, u2; + int j; + + + j = iauDtf2d("UTC", 1994, 6, 30, 23, 59, 60.13599, &u1, &u2); + + vvd(u1+u2, 2449534.49999, 1e-6, "iauDtf2d", "u", status); + viv(j, 0, "iauDtf2d", "j", status); + +} + +static void t_eceq06(int *status) +/* +** - - - - - +** t _ e c e q 0 6 +** - - - - - +** +** Test iauEceq06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEceq06, vvd +** +** This revision: 2016 March 12 +*/ +{ + double date1, date2, dl, db, dr, dd; + + + date1 = 2456165.5; + date2 = 0.401182685; + dl = 5.1; + db = -0.9; + + iauEceq06(date1, date2, dl, db, &dr, &dd); + + vvd(dr, 5.533459733613627767, 1e-14, "iauEceq06", "dr", status); + vvd(dd, -1.246542932554480576, 1e-14, "iauEceq06", "dd", status); + +} + +static void t_ecm06(int *status) +/* +** - - - - - - - - +** t _ e c m 0 6 +** - - - - - - - - +** +** Test iauEcm06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEcm06, vvd +** +** This revision: 2016 March 12 +*/ +{ + double date1, date2, rm[3][3]; + + + date1 = 2456165.5; + date2 = 0.401182685; + + iauEcm06(date1, date2, rm); + + vvd(rm[0][0], 0.9999952427708701137, 1e-14, + "iauEcm06", "rm11", status); + vvd(rm[0][1], -0.2829062057663042347e-2, 1e-14, + "iauEcm06", "rm12", status); + vvd(rm[0][2], -0.1229163741100017629e-2, 1e-14, + "iauEcm06", "rm13", status); + vvd(rm[1][0], 0.3084546876908653562e-2, 1e-14, + "iauEcm06", "rm21", status); + vvd(rm[1][1], 0.9174891871550392514, 1e-14, + "iauEcm06", "rm22", status); + vvd(rm[1][2], 0.3977487611849338124, 1e-14, + "iauEcm06", "rm23", status); + vvd(rm[2][0], 0.2488512951527405928e-5, 1e-14, + "iauEcm06", "rm31", status); + vvd(rm[2][1], -0.3977506604161195467, 1e-14, + "iauEcm06", "rm32", status); + vvd(rm[2][2], 0.9174935488232863071, 1e-14, + "iauEcm06", "rm33", status); + +} + +static void t_ee00(int *status) +/* +** - - - - - - - +** t _ e e 0 0 +** - - - - - - - +** +** Test iauEe00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEe00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double epsa, dpsi, ee; + + + epsa = 0.4090789763356509900; + dpsi = -0.9630909107115582393e-5; + + ee = iauEe00(2400000.5, 53736.0, epsa, dpsi); + + vvd(ee, -0.8834193235367965479e-5, 1e-18, "iauEe00", "", status); + +} + +static void t_ee00a(int *status) +/* +** - - - - - - - - +** t _ e e 0 0 a +** - - - - - - - - +** +** Test iauEe00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEe00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double ee; + + + ee = iauEe00a(2400000.5, 53736.0); + + vvd(ee, -0.8834192459222588227e-5, 1e-18, "iauEe00a", "", status); + +} + +static void t_ee00b(int *status) +/* +** - - - - - - - - +** t _ e e 0 0 b +** - - - - - - - - +** +** Test iauEe00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEe00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double ee; + + + ee = iauEe00b(2400000.5, 53736.0); + + vvd(ee, -0.8835700060003032831e-5, 1e-18, "iauEe00b", "", status); + +} + +static void t_ee06a(int *status) +/* +** - - - - - - - - +** t _ e e 0 6 a +** - - - - - - - - +** +** Test iauEe06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEe06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double ee; + + + ee = iauEe06a(2400000.5, 53736.0); + + vvd(ee, -0.8834195072043790156e-5, 1e-15, "iauEe06a", "", status); +} + +static void t_eect00(int *status) +/* +** - - - - - - - - - +** t _ e e c t 0 0 +** - - - - - - - - - +** +** Test iauEect00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEect00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double eect; + + + eect = iauEect00(2400000.5, 53736.0); + + vvd(eect, 0.2046085004885125264e-8, 1e-20, "iauEect00", "", status); + +} + +static void t_eform(int *status) +/* +** - - - - - - - - +** t _ e f o r m +** - - - - - - - - +** +** Test iauEform function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEform, viv, vvd +** +** This revision: 2016 March 12 +*/ +{ + int j; + double a, f; + + j = iauEform(0, &a, &f); + + viv(j, -1, "iauEform", "j0", status); + + j = iauEform(WGS84, &a, &f); + + viv(j, 0, "iauEform", "j1", status); + vvd(a, 6378137.0, 1e-10, "iauEform", "a1", status); + vvd(f, 0.3352810664747480720e-2, 1e-18, "iauEform", "f1", status); + + j = iauEform(GRS80, &a, &f); + + viv(j, 0, "iauEform", "j2", status); + vvd(a, 6378137.0, 1e-10, "iauEform", "a2", status); + vvd(f, 0.3352810681182318935e-2, 1e-18, "iauEform", "f2", status); + + j = iauEform(WGS72, &a, &f); + + viv(j, 0, "iauEform", "j2", status); + vvd(a, 6378135.0, 1e-10, "iauEform", "a3", status); + vvd(f, 0.3352779454167504862e-2, 1e-18, "iauEform", "f3", status); + + j = iauEform(4, &a, &f); + viv(j, -1, "iauEform", "j3", status); +} + +static void t_eo06a(int *status) +/* +** - - - - - - - - +** t _ e o 0 6 a +** - - - - - - - - +** +** Test iauEo06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEo06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double eo; + + + eo = iauEo06a(2400000.5, 53736.0); + + vvd(eo, -0.1332882371941833644e-2, 1e-15, "iauEo06a", "", status); + +} + +static void t_eors(int *status) +/* +** - - - - - - - +** t _ e o r s +** - - - - - - - +** +** Test iauEors function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEors, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rnpb[3][3], s, eo; + + + rnpb[0][0] = 0.9999989440476103608; + rnpb[0][1] = -0.1332881761240011518e-2; + rnpb[0][2] = -0.5790767434730085097e-3; + + rnpb[1][0] = 0.1332858254308954453e-2; + rnpb[1][1] = 0.9999991109044505944; + rnpb[1][2] = -0.4097782710401555759e-4; + + rnpb[2][0] = 0.5791308472168153320e-3; + rnpb[2][1] = 0.4020595661593994396e-4; + rnpb[2][2] = 0.9999998314954572365; + + s = -0.1220040848472271978e-7; + + eo = iauEors(rnpb, s); + + vvd(eo, -0.1332882715130744606e-2, 1e-14, "iauEors", "", status); + +} + +static void t_epb(int *status) +/* +** - - - - - - +** t _ e p b +** - - - - - - +** +** Test iauEpb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEpb, vvd +** +** This revision: 2013 August 7 +*/ +{ + double epb; + + + epb = iauEpb(2415019.8135, 30103.18648); + + vvd(epb, 1982.418424159278580, 1e-12, "iauEpb", "", status); + +} + +static void t_epb2jd(int *status) +/* +** - - - - - - - - - +** t _ e p b 2 j d +** - - - - - - - - - +** +** Test iauEpb2jd function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEpb2jd, vvd +** +** This revision: 2013 August 7 +*/ +{ + double epb, djm0, djm; + + + epb = 1957.3; + + iauEpb2jd(epb, &djm0, &djm); + + vvd(djm0, 2400000.5, 1e-9, "iauEpb2jd", "djm0", status); + vvd(djm, 35948.1915101513, 1e-9, "iauEpb2jd", "mjd", status); + +} + +static void t_epj(int *status) +/* +** - - - - - - +** t _ e p j +** - - - - - - +** +** Test iauEpj function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEpj, vvd +** +** This revision: 2013 August 7 +*/ +{ + double epj; + + + epj = iauEpj(2451545, -7392.5); + + vvd(epj, 1979.760438056125941, 1e-12, "iauEpj", "", status); + +} + +static void t_epj2jd(int *status) +/* +** - - - - - - - - - +** t _ e p j 2 j d +** - - - - - - - - - +** +** Test iauEpj2jd function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEpj2jd, vvd +** +** This revision: 2013 August 7 +*/ +{ + double epj, djm0, djm; + + + epj = 1996.8; + + iauEpj2jd(epj, &djm0, &djm); + + vvd(djm0, 2400000.5, 1e-9, "iauEpj2jd", "djm0", status); + vvd(djm, 50375.7, 1e-9, "iauEpj2jd", "mjd", status); + +} + +static void t_epv00(int *status) +/* +** - - - - - - - - +** t _ e p v 0 0 +** - - - - - - - - +** +** Test iauEpv00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEpv00, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double pvh[2][3], pvb[2][3]; + int j; + + + j = iauEpv00(2400000.5, 53411.52501161, pvh, pvb); + + vvd(pvh[0][0], -0.7757238809297706813, 1e-14, + "iauEpv00", "ph(x)", status); + vvd(pvh[0][1], 0.5598052241363340596, 1e-14, + "iauEpv00", "ph(y)", status); + vvd(pvh[0][2], 0.2426998466481686993, 1e-14, + "iauEpv00", "ph(z)", status); + + vvd(pvh[1][0], -0.1091891824147313846e-1, 1e-15, + "iauEpv00", "vh(x)", status); + vvd(pvh[1][1], -0.1247187268440845008e-1, 1e-15, + "iauEpv00", "vh(y)", status); + vvd(pvh[1][2], -0.5407569418065039061e-2, 1e-15, + "iauEpv00", "vh(z)", status); + + vvd(pvb[0][0], -0.7714104440491111971, 1e-14, + "iauEpv00", "pb(x)", status); + vvd(pvb[0][1], 0.5598412061824171323, 1e-14, + "iauEpv00", "pb(y)", status); + vvd(pvb[0][2], 0.2425996277722452400, 1e-14, + "iauEpv00", "pb(z)", status); + + vvd(pvb[1][0], -0.1091874268116823295e-1, 1e-15, + "iauEpv00", "vb(x)", status); + vvd(pvb[1][1], -0.1246525461732861538e-1, 1e-15, + "iauEpv00", "vb(y)", status); + vvd(pvb[1][2], -0.5404773180966231279e-2, 1e-15, + "iauEpv00", "vb(z)", status); + + viv(j, 0, "iauEpv00", "j", status); + +} + +static void t_eqec06(int *status) +/* +** - - - - - - - - - +** t _ e q e c 0 6 +** - - - - - - - - - +** +** Test iauEqec06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEqec06, vvd +** +** This revision: 2016 March 12 +*/ +{ + double date1, date2, dr, dd, dl, db; + + + date1 = 1234.5; + date2 = 2440000.5; + dr = 1.234; + dd = 0.987; + + iauEqec06(date1, date2, dr, dd, &dl, &db); + + vvd(dl, 1.342509918994654619, 1e-14, "iauEqec06", "dl", status); + vvd(db, 0.5926215259704608132, 1e-14, "iauEqec06", "db", status); + +} + +static void t_eqeq94(int *status) +/* +** - - - - - - - - - +** t _ e q e q 9 4 +** - - - - - - - - - +** +** Test iauEqeq94 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEqeq94, vvd +** +** This revision: 2013 August 7 +*/ +{ + double eqeq; + + + eqeq = iauEqeq94(2400000.5, 41234.0); + + vvd(eqeq, 0.5357758254609256894e-4, 1e-17, "iauEqeq94", "", status); + +} + +static void t_era00(int *status) +/* +** - - - - - - - - +** t _ e r a 0 0 +** - - - - - - - - +** +** Test iauEra00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauEra00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double era00; + + + era00 = iauEra00(2400000.5, 54388.0); + + vvd(era00, 0.4022837240028158102, 1e-12, "iauEra00", "", status); + +} + +static void t_fad03(int *status) +/* +** - - - - - - - - +** t _ f a d 0 3 +** - - - - - - - - +** +** Test iauFad03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFad03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFad03(0.80), 1.946709205396925672, 1e-12, + "iauFad03", "", status); +} + +static void t_fae03(int *status) +/* +** - - - - - - - - +** t _ f a e 0 3 +** - - - - - - - - +** +** Test iauFae03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFae03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFae03(0.80), 1.744713738913081846, 1e-12, + "iauFae03", "", status); +} + +static void t_faf03(int *status) +/* +** - - - - - - - - +** t _ f a f 0 3 +** - - - - - - - - +** +** Test iauFaf03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFaf03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFaf03(0.80), 0.2597711366745499518, 1e-12, + "iauFaf03", "", status); +} + +static void t_faju03(int *status) +/* +** - - - - - - - - - +** t _ f a j u 0 3 +** - - - - - - - - - +** +** Test iauFaju03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFaju03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFaju03(0.80), 5.275711665202481138, 1e-12, + "iauFaju03", "", status); +} + +static void t_fal03(int *status) +/* +** - - - - - - - - +** t _ f a l 0 3 +** - - - - - - - - +** +** Test iauFal03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFal03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFal03(0.80), 5.132369751108684150, 1e-12, + "iauFal03", "", status); +} + +static void t_falp03(int *status) +/* +** - - - - - - - - - +** t _ f a l p 0 3 +** - - - - - - - - - +** +** Test iauFalp03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFalp03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFalp03(0.80), 6.226797973505507345, 1e-12, + "iauFalp03", "", status); +} + +static void t_fama03(int *status) +/* +** - - - - - - - - - +** t _ f a m a 0 3 +** - - - - - - - - - +** +** Test iauFama03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFama03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFama03(0.80), 3.275506840277781492, 1e-12, + "iauFama03", "", status); +} + +static void t_fame03(int *status) +/* +** - - - - - - - - - +** t _ f a m e 0 3 +** - - - - - - - - - +** +** Test iauFame03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFame03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFame03(0.80), 5.417338184297289661, 1e-12, + "iauFame03", "", status); +} + +static void t_fane03(int *status) +/* +** - - - - - - - - - +** t _ f a n e 0 3 +** - - - - - - - - - +** +** Test iauFane03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFane03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFane03(0.80), 2.079343830860413523, 1e-12, + "iauFane03", "", status); +} + +static void t_faom03(int *status) +/* +** - - - - - - - - - +** t _ f a o m 0 3 +** - - - - - - - - - +** +** Test iauFaom03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFaom03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFaom03(0.80), -5.973618440951302183, 1e-12, + "iauFaom03", "", status); +} + +static void t_fapa03(int *status) +/* +** - - - - - - - - - +** t _ f a p a 0 3 +** - - - - - - - - - +** +** Test iauFapa03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFapa03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFapa03(0.80), 0.1950884762240000000e-1, 1e-12, + "iauFapa03", "", status); +} + +static void t_fasa03(int *status) +/* +** - - - - - - - - - +** t _ f a s a 0 3 +** - - - - - - - - - +** +** Test iauFasa03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFasa03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFasa03(0.80), 5.371574539440827046, 1e-12, + "iauFasa03", "", status); +} + +static void t_faur03(int *status) +/* +** - - - - - - - - - +** t _ f a u r 0 3 +** - - - - - - - - - +** +** Test iauFaur03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFaur03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFaur03(0.80), 5.180636450180413523, 1e-12, + "iauFaur03", "", status); +} + +static void t_fave03(int *status) +/* +** - - - - - - - - - +** t _ f a v e 0 3 +** - - - - - - - - - +** +** Test iauFave03 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFave03, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauFave03(0.80), 3.424900460533758000, 1e-12, + "iauFave03", "", status); +} + +static void t_fk425(int *status) +/* +** - - - - - - - - +** t _ f k 4 2 5 +** - - - - - - - - +** +** Test iauFk425 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk425, vvd +** +** This revision: 2018 December 6 +*/ +{ + double r1950, d1950, dr1950, dd1950, p1950, v1950, + r2000, d2000, dr2000, dd2000, p2000, v2000; + + + r1950 = 0.07626899753879587532; + d1950 = -1.137405378399605780; + dr1950 = 0.1973749217849087460e-4; + dd1950 = 0.5659714913272723189e-5; + p1950 = 0.134; + v1950 = 8.7; + + iauFk425(r1950, d1950, dr1950, dd1950, p1950, v1950, + &r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000); + + vvd(r2000, 0.08757989933556446040, 1e-14, + "iauFk425", "r2000", status); + vvd(d2000, -1.132279113042091895, 1e-12, + "iauFk425", "d2000", status); + vvd(dr2000, 0.1953670614474396139e-4, 1e-17, + "iauFk425", "dr2000", status); + vvd(dd2000, 0.5637686678659640164e-5, 1e-18, + "iauFk425", "dd2000", status); + vvd(p2000, 0.1339919950582767871, 1e-13, "iauFk425", "p2000", status); + vvd(v2000, 8.736999669183529069, 1e-12, "iauFk425", "v2000", status); + +} + +static void t_fk45z(int *status) +/* +** - - - - - - - - +** t _ f k 4 5 z +** - - - - - - - - +** +** Test iauFk45z function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk45z, vvd +** +** This revision: 2018 December 6 +*/ +{ + double r1950, d1950, bepoch, r2000, d2000; + + + r1950 = 0.01602284975382960982; + d1950 = -0.1164347929099906024; + bepoch = 1954.677617625256806; + + iauFk45z(r1950, d1950, bepoch, &r2000, &d2000); + + vvd(r2000, 0.02719295911606862303, 1e-15, + "iauFk45z", "r2000", status); + vvd(d2000, -0.1115766001565926892, 1e-13, + "iauFk45z", "d2000", status); + +} + +static void t_fk524(int *status) +/* +** - - - - - - - - +** t _ f k 5 2 4 +** - - - - - - - - +** +** Test iauFk524 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk524, vvd +** +** This revision: 2018 December 6 +*/ +{ + double r2000, d2000, dr2000, dd2000, p2000, v2000, + r1950, d1950, dr1950, dd1950, p1950, v1950; + + + r2000 = 0.8723503576487275595; + d2000 = -0.7517076365138887672; + dr2000 = 0.2019447755430472323e-4; + dd2000 = 0.3541563940505160433e-5; + p2000 = 0.1559; + v2000 = 86.87; + + iauFk524(r2000, d2000, dr2000, dd2000, p2000, v2000, + &r1950, &d1950, &dr1950,&dd1950, &p1950, &v1950); + + vvd(r1950, 0.8636359659799603487, 1e-13, + "iauFk524", "r1950", status); + vvd(d1950, -0.7550281733160843059, 1e-13, + "iauFk524", "d1950", status); + vvd(dr1950, 0.2023628192747172486e-4, 1e-17, + "iauFk524", "dr1950", status); + vvd(dd1950, 0.3624459754935334718e-5, 1e-18, + "iauFk524", "dd1950", status); + vvd(p1950, 0.1560079963299390241, 1e-13, + "iauFk524", "p1950", status); + vvd(v1950, 86.79606353469163751, 1e-11, "iauFk524", "v1950", status); + +} + +static void t_fk52h(int *status) +/* +** - - - - - - - - +** t _ f k 5 2 h +** - - - - - - - - +** +** Test iauFk52h function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk52h, vvd +** +** This revision: 2021 January 5 +*/ +{ + double r5, d5, dr5, dd5, px5, rv5, rh, dh, drh, ddh, pxh, rvh; + + + r5 = 1.76779433; + d5 = -0.2917517103; + dr5 = -1.91851572e-7; + dd5 = -5.8468475e-6; + px5 = 0.379210; + rv5 = -7.6; + + iauFk52h(r5, d5, dr5, dd5, px5, rv5, + &rh, &dh, &drh, &ddh, &pxh, &rvh); + + vvd(rh, 1.767794226299947632, 1e-14, + "iauFk52h", "ra", status); + vvd(dh, -0.2917516070530391757, 1e-14, + "iauFk52h", "dec", status); + vvd(drh, -0.1961874125605721270e-6,1e-19, + "iauFk52h", "dr5", status); + vvd(ddh, -0.58459905176693911e-5, 1e-19, + "iauFk52h", "dd5", status); + vvd(pxh, 0.37921, 1e-14, + "iauFk52h", "px", status); + vvd(rvh, -7.6000000940000254, 1e-11, + "iauFk52h", "rv", status); + +} + +static void t_fk54z(int *status) +/* +** - - - - - - - - +** t _ f k 5 4 z +** - - - - - - - - +** +** Test iauFk54z function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk54z, vvd +** +** This revision: 2018 December 6 +*/ +{ + double r2000, d2000, bepoch, r1950, d1950, dr1950, dd1950; + + + r2000 = 0.02719026625066316119; + d2000 = -0.1115815170738754813; + bepoch = 1954.677308160316374; + + iauFk54z(r2000, d2000, bepoch, &r1950, &d1950, &dr1950, &dd1950); + + vvd(r1950, 0.01602015588390065476, 1e-14, + "iauFk54z", "r1950", status); + vvd(d1950, -0.1164397101110765346, 1e-13, + "iauFk54z", "d1950", status); + vvd(dr1950, -0.1175712648471090704e-7, 1e-20, + "iauFk54z", "dr1950", status); + vvd(dd1950, 0.2108109051316431056e-7, 1e-20, + "iauFk54z", "dd1950", status); + +} + +static void t_fk5hip(int *status) +/* +** - - - - - - - - - +** t _ f k 5 h i p +** - - - - - - - - - +** +** Test iauFk5hip function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk5hip, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r5h[3][3], s5h[3]; + + + iauFk5hip(r5h, s5h); + + vvd(r5h[0][0], 0.9999999999999928638, 1e-14, + "iauFk5hip", "11", status); + vvd(r5h[0][1], 0.1110223351022919694e-6, 1e-17, + "iauFk5hip", "12", status); + vvd(r5h[0][2], 0.4411803962536558154e-7, 1e-17, + "iauFk5hip", "13", status); + vvd(r5h[1][0], -0.1110223308458746430e-6, 1e-17, + "iauFk5hip", "21", status); + vvd(r5h[1][1], 0.9999999999999891830, 1e-14, + "iauFk5hip", "22", status); + vvd(r5h[1][2], -0.9647792498984142358e-7, 1e-17, + "iauFk5hip", "23", status); + vvd(r5h[2][0], -0.4411805033656962252e-7, 1e-17, + "iauFk5hip", "31", status); + vvd(r5h[2][1], 0.9647792009175314354e-7, 1e-17, + "iauFk5hip", "32", status); + vvd(r5h[2][2], 0.9999999999999943728, 1e-14, + "iauFk5hip", "33", status); + vvd(s5h[0], -0.1454441043328607981e-8, 1e-17, + "iauFk5hip", "s1", status); + vvd(s5h[1], 0.2908882086657215962e-8, 1e-17, + "iauFk5hip", "s2", status); + vvd(s5h[2], 0.3393695767766751955e-8, 1e-17, + "iauFk5hip", "s3", status); + +} + +static void t_fk5hz(int *status) +/* +** - - - - - - - - +** t _ f k 5 h z +** - - - - - - - - +** +** Test iauFk5hz function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFk5hz, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r5, d5, rh, dh; + + + r5 = 1.76779433; + d5 = -0.2917517103; + + iauFk5hz(r5, d5, 2400000.5, 54479.0, &rh, &dh); + + vvd(rh, 1.767794191464423978, 1e-12, "iauFk5hz", "ra", status); + vvd(dh, -0.2917516001679884419, 1e-12, "iauFk5hz", "dec", status); + +} + +static void t_fw2m(int *status) +/* +** - - - - - - - +** t _ f w 2 m +** - - - - - - - +** +** Test iauFw2m function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFw2m, vvd +** +** This revision: 2013 August 7 +*/ +{ + double gamb, phib, psi, eps, r[3][3]; + + + gamb = -0.2243387670997992368e-5; + phib = 0.4091014602391312982; + psi = -0.9501954178013015092e-3; + eps = 0.4091014316587367472; + + iauFw2m(gamb, phib, psi, eps, r); + + vvd(r[0][0], 0.9999995505176007047, 1e-12, + "iauFw2m", "11", status); + vvd(r[0][1], 0.8695404617348192957e-3, 1e-12, + "iauFw2m", "12", status); + vvd(r[0][2], 0.3779735201865582571e-3, 1e-12, + "iauFw2m", "13", status); + + vvd(r[1][0], -0.8695404723772016038e-3, 1e-12, + "iauFw2m", "21", status); + vvd(r[1][1], 0.9999996219496027161, 1e-12, + "iauFw2m", "22", status); + vvd(r[1][2], -0.1361752496887100026e-6, 1e-12, + "iauFw2m", "23", status); + + vvd(r[2][0], -0.3779734957034082790e-3, 1e-12, + "iauFw2m", "31", status); + vvd(r[2][1], -0.1924880848087615651e-6, 1e-12, + "iauFw2m", "32", status); + vvd(r[2][2], 0.9999999285679971958, 1e-12, + "iauFw2m", "33", status); + +} + +static void t_fw2xy(int *status) +/* +** - - - - - - - - +** t _ f w 2 x y +** - - - - - - - - +** +** Test iauFw2xy function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauFw2xy, vvd +** +** This revision: 2013 August 7 +*/ +{ + double gamb, phib, psi, eps, x, y; + + + gamb = -0.2243387670997992368e-5; + phib = 0.4091014602391312982; + psi = -0.9501954178013015092e-3; + eps = 0.4091014316587367472; + + iauFw2xy(gamb, phib, psi, eps, &x, &y); + + vvd(x, -0.3779734957034082790e-3, 1e-14, "iauFw2xy", "x", status); + vvd(y, -0.1924880848087615651e-6, 1e-14, "iauFw2xy", "y", status); + +} + +static void t_g2icrs(int *status) +/* +** - - - - - - - - - +** t _ g 2 i c r s +** - - - - - - - - - +** +** Test iauG2icrs function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauG2icrs, vvd +** +** This revision: 2015 January 30 +*/ +{ + double dl, db, dr, dd; + + + dl = 5.5850536063818546461558105; + db = -0.7853981633974483096156608; + iauG2icrs (dl, db, &dr, &dd); + vvd(dr, 5.9338074302227188048671, 1e-14, "iauG2icrs", "R", status); + vvd(dd, -1.1784870613579944551541, 1e-14, "iauG2icrs", "D", status); + } + +static void t_gc2gd(int *status) +/* +** - - - - - - - - +** t _ g c 2 g d +** - - - - - - - - +** +** Test iauGc2gd function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGc2gd, viv, vvd +** +** This revision: 2016 March 12 +*/ +{ + int j; + double xyz[] = {2e6, 3e6, 5.244e6}; + double e, p, h; + + j = iauGc2gd(0, xyz, &e, &p, &h); + + viv(j, -1, "iauGc2gd", "j0", status); + + j = iauGc2gd(WGS84, xyz, &e, &p, &h); + + viv(j, 0, "iauGc2gd", "j1", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e1", status); + vvd(p, 0.97160184819075459, 1e-14, "iauGc2gd", "p1", status); + vvd(h, 331.4172461426059892, 1e-8, "iauGc2gd", "h1", status); + + j = iauGc2gd(GRS80, xyz, &e, &p, &h); + + viv(j, 0, "iauGc2gd", "j2", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e2", status); + vvd(p, 0.97160184820607853, 1e-14, "iauGc2gd", "p2", status); + vvd(h, 331.41731754844348, 1e-8, "iauGc2gd", "h2", status); + + j = iauGc2gd(WGS72, xyz, &e, &p, &h); + + viv(j, 0, "iauGc2gd", "j3", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e3", status); + vvd(p, 0.9716018181101511937, 1e-14, "iauGc2gd", "p3", status); + vvd(h, 333.2770726130318123, 1e-8, "iauGc2gd", "h3", status); + + j = iauGc2gd(4, xyz, &e, &p, &h); + + viv(j, -1, "iauGc2gd", "j4", status); +} + +static void t_gc2gde(int *status) +/* +** - - - - - - - - - +** t _ g c 2 g d e +** - - - - - - - - - +** +** Test iauGc2gde function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGc2gde, viv, vvd +** +** This revision: 2016 March 12 +*/ +{ + int j; + double a = 6378136.0, f = 0.0033528; + double xyz[] = {2e6, 3e6, 5.244e6}; + double e, p, h; + + j = iauGc2gde(a, f, xyz, &e, &p, &h); + + viv(j, 0, "iauGc2gde", "j", status); + vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gde", "e", status); + vvd(p, 0.9716018377570411532, 1e-14, "iauGc2gde", "p", status); + vvd(h, 332.36862495764397, 1e-8, "iauGc2gde", "h", status); +} + +static void t_gd2gc(int *status) +/* +** - - - - - - - - +** t _ g d 2 g c +** - - - - - - - - +** +** Test iauGd2gc function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGd2gc, viv, vvd +** +** This revision: 2016 March 12 +*/ +{ + int j; + double e = 3.1, p = -0.5, h = 2500.0; + double xyz[3]; + + j = iauGd2gc(0, e, p, h, xyz); + + viv(j, -1, "iauGd2gc", "j0", status); + + j = iauGd2gc(WGS84, e, p, h, xyz); + + viv(j, 0, "iauGd2gc", "j1", status); + vvd(xyz[0], -5599000.5577049947, 1e-7, "iauGd2gc", "1/1", status); + vvd(xyz[1], 233011.67223479203, 1e-7, "iauGd2gc", "2/1", status); + vvd(xyz[2], -3040909.4706983363, 1e-7, "iauGd2gc", "3/1", status); + + j = iauGd2gc(GRS80, e, p, h, xyz); + + viv(j, 0, "iauGd2gc", "j2", status); + vvd(xyz[0], -5599000.5577260984, 1e-7, "iauGd2gc", "1/2", status); + vvd(xyz[1], 233011.6722356702949, 1e-7, "iauGd2gc", "2/2", status); + vvd(xyz[2], -3040909.4706095476, 1e-7, "iauGd2gc", "3/2", status); + + j = iauGd2gc(WGS72, e, p, h, xyz); + + viv(j, 0, "iauGd2gc", "j3", status); + vvd(xyz[0], -5598998.7626301490, 1e-7, "iauGd2gc", "1/3", status); + vvd(xyz[1], 233011.5975297822211, 1e-7, "iauGd2gc", "2/3", status); + vvd(xyz[2], -3040908.6861467111, 1e-7, "iauGd2gc", "3/3", status); + + j = iauGd2gc(4, e, p, h, xyz); + + viv(j, -1, "iauGd2gc", "j4", status); +} + +static void t_gd2gce(int *status) +/* +** - - - - - - - - - +** t _ g d 2 g c e +** - - - - - - - - - +** +** Test iauGd2gce function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGd2gce, viv, vvd +** +** This revision: 2016 March 12 +*/ +{ + int j; + double a = 6378136.0, f = 0.0033528; + double e = 3.1, p = -0.5, h = 2500.0; + double xyz[3]; + + j = iauGd2gce(a, f, e, p, h, xyz); + + viv(j, 0, "iauGd2gce", "j", status); + vvd(xyz[0], -5598999.6665116328, 1e-7, "iauGd2gce", "1", status); + vvd(xyz[1], 233011.6351463057189, 1e-7, "iauGd2gce", "2", status); + vvd(xyz[2], -3040909.0517314132, 1e-7, "iauGd2gce", "3", status); +} + +static void t_gmst00(int *status) +/* +** - - - - - - - - - +** t _ g m s t 0 0 +** - - - - - - - - - +** +** Test iauGmst00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGmst00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGmst00(2400000.5, 53736.0, 2400000.5, 53736.0); + + vvd(theta, 1.754174972210740592, 1e-12, "iauGmst00", "", status); + +} + +static void t_gmst06(int *status) +/* +** - - - - - - - - - +** t _ g m s t 0 6 +** - - - - - - - - - +** +** Test iauGmst06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGmst06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGmst06(2400000.5, 53736.0, 2400000.5, 53736.0); + + vvd(theta, 1.754174971870091203, 1e-12, "iauGmst06", "", status); + +} + +static void t_gmst82(int *status) +/* +** - - - - - - - - - +** t _ g m s t 8 2 +** - - - - - - - - - +** +** Test iauGmst82 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGmst82, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGmst82(2400000.5, 53736.0); + + vvd(theta, 1.754174981860675096, 1e-12, "iauGmst82", "", status); + +} + +static void t_gst00a(int *status) +/* +** - - - - - - - - - +** t _ g s t 0 0 a +** - - - - - - - - - +** +** Test iauGst00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGst00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGst00a(2400000.5, 53736.0, 2400000.5, 53736.0); + + vvd(theta, 1.754166138018281369, 1e-12, "iauGst00a", "", status); + +} + +static void t_gst00b(int *status) +/* +** - - - - - - - - - +** t _ g s t 0 0 b +** - - - - - - - - - +** +** Test iauGst00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGst00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGst00b(2400000.5, 53736.0); + + vvd(theta, 1.754166136510680589, 1e-12, "iauGst00b", "", status); + +} + +static void t_gst06(int *status) +/* +** - - - - - - - - +** t _ g s t 0 6 +** - - - - - - - - +** +** Test iauGst06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGst06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rnpb[3][3], theta; + + + rnpb[0][0] = 0.9999989440476103608; + rnpb[0][1] = -0.1332881761240011518e-2; + rnpb[0][2] = -0.5790767434730085097e-3; + + rnpb[1][0] = 0.1332858254308954453e-2; + rnpb[1][1] = 0.9999991109044505944; + rnpb[1][2] = -0.4097782710401555759e-4; + + rnpb[2][0] = 0.5791308472168153320e-3; + rnpb[2][1] = 0.4020595661593994396e-4; + rnpb[2][2] = 0.9999998314954572365; + + theta = iauGst06(2400000.5, 53736.0, 2400000.5, 53736.0, rnpb); + + vvd(theta, 1.754166138018167568, 1e-12, "iauGst06", "", status); + +} + +static void t_gst06a(int *status) +/* +** - - - - - - - - - +** t _ g s t 0 6 a +** - - - - - - - - - +** +** Test iauGst06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGst06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGst06a(2400000.5, 53736.0, 2400000.5, 53736.0); + + vvd(theta, 1.754166137675019159, 1e-12, "iauGst06a", "", status); + +} + +static void t_gst94(int *status) +/* +** - - - - - - - - +** t _ g s t 9 4 +** - - - - - - - - +** +** Test iauGst94 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauGst94, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta; + + + theta = iauGst94(2400000.5, 53736.0); + + vvd(theta, 1.754166136020645203, 1e-12, "iauGst94", "", status); + +} + +static void t_icrs2g(int *status) +/* +** - - - - - - - - - +** t _ i c r s 2 g +** - - - - - - - - - +** +** Test iauIcrs2g function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauIcrs2g, vvd +** +** This revision: 2015 January 30 +*/ +{ + double dr, dd, dl, db; + + dr = 5.9338074302227188048671087; + dd = -1.1784870613579944551540570; + iauIcrs2g (dr, dd, &dl, &db); + vvd(dl, 5.5850536063818546461558, 1e-14, "iauIcrs2g", "L", status); + vvd(db, -0.7853981633974483096157, 1e-14, "iauIcrs2g", "B", status); + } + +static void t_h2fk5(int *status) +/* +** - - - - - - - - +** t _ h 2 f k 5 +** - - - - - - - - +** +** Test iauH2fk5 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauH2fk5, vvd +** +** This revision: 2017 January 3 +*/ +{ + double rh, dh, drh, ddh, pxh, rvh, r5, d5, dr5, dd5, px5, rv5; + + + rh = 1.767794352; + dh = -0.2917512594; + drh = -2.76413026e-6; + ddh = -5.92994449e-6; + pxh = 0.379210; + rvh = -7.6; + + iauH2fk5(rh, dh, drh, ddh, pxh, rvh, + &r5, &d5, &dr5, &dd5, &px5, &rv5); + + vvd(r5, 1.767794455700065506, 1e-13, + "iauH2fk5", "ra", status); + vvd(d5, -0.2917513626469638890, 1e-13, + "iauH2fk5", "dec", status); + vvd(dr5, -0.27597945024511204e-5, 1e-18, + "iauH2fk5", "dr5", status); + vvd(dd5, -0.59308014093262838e-5, 1e-18, + "iauH2fk5", "dd5", status); + vvd(px5, 0.37921, 1e-13, + "iauH2fk5", "px", status); + vvd(rv5, -7.6000001309071126, 1e-11, + "iauH2fk5", "rv", status); + +} + +static void t_hd2ae(int *status) +/* +** - - - - - - - - +** t _ h d 2 a e +** - - - - - - - - +** +** Test iauHd2ae function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauHd2ae and vvd +** +** This revision: 2017 October 21 +*/ +{ + double h, d, p, a, e; + + + h = 1.1; + d = 1.2; + p = 0.3; + + iauHd2ae(h, d, p, &a, &e); + + vvd(a, 5.916889243730066194, 1e-13, "iauHd2ae", "a", status); + vvd(e, 0.4472186304990486228, 1e-14, "iauHd2ae", "e", status); + +} + +static void t_hd2pa(int *status) +/* +** - - - - - - - - +** t _ h d 2 p a +** - - - - - - - - +** +** Test iauHd2pa function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauHd2pa and vvd +** +** This revision: 2017 October 21 +*/ +{ + double h, d, p, q; + + + h = 1.1; + d = 1.2; + p = 0.3; + + q = iauHd2pa(h, d, p); + + vvd(q, 1.906227428001995580, 1e-13, "iauHd2pa", "q", status); + +} + +static void t_hfk5z(int *status) +/* +** - - - - - - - - +** t _ h f k 5 z +** - - - - - - - - +** +** Test iauHfk5z function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauHfk5z, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rh, dh, r5, d5, dr5, dd5; + + + + rh = 1.767794352; + dh = -0.2917512594; + + iauHfk5z(rh, dh, 2400000.5, 54479.0, &r5, &d5, &dr5, &dd5); + + vvd(r5, 1.767794490535581026, 1e-13, + "iauHfk5z", "ra", status); + vvd(d5, -0.2917513695320114258, 1e-14, + "iauHfk5z", "dec", status); + vvd(dr5, 0.4335890983539243029e-8, 1e-22, + "iauHfk5z", "dr5", status); + vvd(dd5, -0.8569648841237745902e-9, 1e-23, + "iauHfk5z", "dd5", status); + +} + +static void t_ir(int *status) +/* +** - - - - - +** t _ i r +** - - - - - +** +** Test iauIr function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauIr, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + iauIr(r); + + vvd(r[0][0], 1.0, 0.0, "iauIr", "11", status); + vvd(r[0][1], 0.0, 0.0, "iauIr", "12", status); + vvd(r[0][2], 0.0, 0.0, "iauIr", "13", status); + + vvd(r[1][0], 0.0, 0.0, "iauIr", "21", status); + vvd(r[1][1], 1.0, 0.0, "iauIr", "22", status); + vvd(r[1][2], 0.0, 0.0, "iauIr", "23", status); + + vvd(r[2][0], 0.0, 0.0, "iauIr", "31", status); + vvd(r[2][1], 0.0, 0.0, "iauIr", "32", status); + vvd(r[2][2], 1.0, 0.0, "iauIr", "33", status); + +} + +static void t_jd2cal(int *status) +/* +** - - - - - - - - - +** t _ j d 2 c a l +** - - - - - - - - - +** +** Test iauJd2cal function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauJd2cal, viv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dj1, dj2, fd; + int iy, im, id, j; + + + dj1 = 2400000.5; + dj2 = 50123.9999; + + j = iauJd2cal(dj1, dj2, &iy, &im, &id, &fd); + + viv(iy, 1996, "iauJd2cal", "y", status); + viv(im, 2, "iauJd2cal", "m", status); + viv(id, 10, "iauJd2cal", "d", status); + vvd(fd, 0.9999, 1e-7, "iauJd2cal", "fd", status); + viv(j, 0, "iauJd2cal", "j", status); + +} + +static void t_jdcalf(int *status) +/* +** - - - - - - - - - +** t _ j d c a l f +** - - - - - - - - - +** +** Test iauJdcalf function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauJdcalf, viv +** +** This revision: 2013 August 7 +*/ +{ + double dj1, dj2; + int iydmf[4], j; + + + dj1 = 2400000.5; + dj2 = 50123.9999; + + j = iauJdcalf(4, dj1, dj2, iydmf); + + viv(iydmf[0], 1996, "iauJdcalf", "y", status); + viv(iydmf[1], 2, "iauJdcalf", "m", status); + viv(iydmf[2], 10, "iauJdcalf", "d", status); + viv(iydmf[3], 9999, "iauJdcalf", "f", status); + + viv(j, 0, "iauJdcalf", "j", status); + +} + +static void t_ld(int *status) +/* +** - - - - - +** t _ l d +** - - - - - +** +** Test iauLd function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLd, vvd +* +** This revision: 2013 October 2 +*/ +{ + double bm, p[3], q[3], e[3], em, dlim, p1[3]; + + + bm = 0.00028574; + p[0] = -0.763276255; + p[1] = -0.608633767; + p[2] = -0.216735543; + q[0] = -0.763276255; + q[1] = -0.608633767; + q[2] = -0.216735543; + e[0] = 0.76700421; + e[1] = 0.605629598; + e[2] = 0.211937094; + em = 8.91276983; + dlim = 3e-10; + + iauLd(bm, p, q, e, em, dlim, p1); + + vvd(p1[0], -0.7632762548968159627, 1e-12, + "iauLd", "1", status); + vvd(p1[1], -0.6086337670823762701, 1e-12, + "iauLd", "2", status); + vvd(p1[2], -0.2167355431320546947, 1e-12, + "iauLd", "3", status); + +} + +static void t_ldn(int *status) +/* +** - - - - - - +** t _ l d n +** - - - - - - +** +** Test iauLdn function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLdn, vvd +** +** This revision: 2013 October 2 +*/ +{ + int n; + iauLDBODY b[3]; + double ob[3], sc[3], sn[3]; + + + n = 3; + b[0].bm = 0.00028574; + b[0].dl = 3e-10; + b[0].pv[0][0] = -7.81014427; + b[0].pv[0][1] = -5.60956681; + b[0].pv[0][2] = -1.98079819; + b[0].pv[1][0] = 0.0030723249; + b[0].pv[1][1] = -0.00406995477; + b[0].pv[1][2] = -0.00181335842; + b[1].bm = 0.00095435; + b[1].dl = 3e-9; + b[1].pv[0][0] = 0.738098796; + b[1].pv[0][1] = 4.63658692; + b[1].pv[0][2] = 1.9693136; + b[1].pv[1][0] = -0.00755816922; + b[1].pv[1][1] = 0.00126913722; + b[1].pv[1][2] = 0.000727999001; + b[2].bm = 1.0; + b[2].dl = 6e-6; + b[2].pv[0][0] = -0.000712174377; + b[2].pv[0][1] = -0.00230478303; + b[2].pv[0][2] = -0.00105865966; + b[2].pv[1][0] = 6.29235213e-6; + b[2].pv[1][1] = -3.30888387e-7; + b[2].pv[1][2] = -2.96486623e-7; + ob[0] = -0.974170437; + ob[1] = -0.2115201; + ob[2] = -0.0917583114; + sc[0] = -0.763276255; + sc[1] = -0.608633767; + sc[2] = -0.216735543; + + iauLdn(n, b, ob, sc, sn); + + vvd(sn[0], -0.7632762579693333866, 1e-12, + "iauLdn", "1", status); + vvd(sn[1], -0.6086337636093002660, 1e-12, + "iauLdn", "2", status); + vvd(sn[2], -0.2167355420646328159, 1e-12, + "iauLdn", "3", status); + +} + +static void t_ldsun(int *status) +/* +** - - - - - - - - +** t _ l d s u n +** - - - - - - - - +** +** Test iauLdsun function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLdsun, vvd +** +** This revision: 2013 October 2 +*/ +{ + double p[3], e[3], em, p1[3]; + + + p[0] = -0.763276255; + p[1] = -0.608633767; + p[2] = -0.216735543; + e[0] = -0.973644023; + e[1] = -0.20925523; + e[2] = -0.0907169552; + em = 0.999809214; + + iauLdsun(p, e, em, p1); + + vvd(p1[0], -0.7632762580731413169, 1e-12, + "iauLdsun", "1", status); + vvd(p1[1], -0.6086337635262647900, 1e-12, + "iauLdsun", "2", status); + vvd(p1[2], -0.2167355419322321302, 1e-12, + "iauLdsun", "3", status); + +} + +static void t_lteceq(int *status) +/* +** - - - - - - - - - +** t _ l t e c e q +** - - - - - - - - - +** +** Test iauLteceq function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLteceq, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, dl, db, dr, dd; + + + epj = 2500.0; + dl = 1.5; + db = 0.6; + + iauLteceq(epj, dl, db, &dr, &dd); + + vvd(dr, 1.275156021861921167, 1e-14, "iauLteceq", "dr", status); + vvd(dd, 0.9966573543519204791, 1e-14, "iauLteceq", "dd", status); + +} + +static void t_ltecm(int *status) +/* +** - - - - - - - - +** t _ l t e c m +** - - - - - - - - +** +** Test iauLtecm function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtecm, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, rm[3][3]; + + + epj = -3000.0; + + iauLtecm(epj, rm); + + vvd(rm[0][0], 0.3564105644859788825, 1e-14, + "iauLtecm", "rm11", status); + vvd(rm[0][1], 0.8530575738617682284, 1e-14, + "iauLtecm", "rm12", status); + vvd(rm[0][2], 0.3811355207795060435, 1e-14, + "iauLtecm", "rm13", status); + vvd(rm[1][0], -0.9343283469640709942, 1e-14, + "iauLtecm", "rm21", status); + vvd(rm[1][1], 0.3247830597681745976, 1e-14, + "iauLtecm", "rm22", status); + vvd(rm[1][2], 0.1467872751535940865, 1e-14, + "iauLtecm", "rm23", status); + vvd(rm[2][0], 0.1431636191201167793e-2, 1e-14, + "iauLtecm", "rm31", status); + vvd(rm[2][1], -0.4084222566960599342, 1e-14, + "iauLtecm", "rm32", status); + vvd(rm[2][2], 0.9127919865189030899, 1e-14, + "iauLtecm", "rm33", status); + +} + +static void t_lteqec(int *status) +/* +** - - - - - - - - - +** t _ l t e q e c +** - - - - - - - - - +** +** Test iauLteqec function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLteqec, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, dr, dd, dl, db; + + + epj = -1500.0; + dr = 1.234; + dd = 0.987; + + iauLteqec(epj, dr, dd, &dl, &db); + + vvd(dl, 0.5039483649047114859, 1e-14, "iauLteqec", "dl", status); + vvd(db, 0.5848534459726224882, 1e-14, "iauLteqec", "db", status); + +} + +static void t_ltp(int *status) +/* +** - - - - - - +** t _ l t p +** - - - - - - +** +** Test iauLtp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtp, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, rp[3][3]; + + + epj = 1666.666; + + iauLtp(epj, rp); + + vvd(rp[0][0], 0.9967044141159213819, 1e-14, + "iauLtp", "rp11", status); + vvd(rp[0][1], 0.7437801893193210840e-1, 1e-14, + "iauLtp", "rp12", status); + vvd(rp[0][2], 0.3237624409345603401e-1, 1e-14, + "iauLtp", "rp13", status); + vvd(rp[1][0], -0.7437802731819618167e-1, 1e-14, + "iauLtp", "rp21", status); + vvd(rp[1][1], 0.9972293894454533070, 1e-14, + "iauLtp", "rp22", status); + vvd(rp[1][2], -0.1205768842723593346e-2, 1e-14, + "iauLtp", "rp23", status); + vvd(rp[2][0], -0.3237622482766575399e-1, 1e-14, + "iauLtp", "rp31", status); + vvd(rp[2][1], -0.1206286039697609008e-2, 1e-14, + "iauLtp", "rp32", status); + vvd(rp[2][2], 0.9994750246704010914, 1e-14, + "iauLtp", "rp33", status); + +} + +static void t_ltpb(int *status) +/* +** - - - - - - - +** t _ l t p b +** - - - - - - - +** +** Test iauLtpb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtpb, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, rpb[3][3]; + + + epj = 1666.666; + + iauLtpb(epj, rpb); + + vvd(rpb[0][0], 0.9967044167723271851, 1e-14, + "iauLtpb", "rpb11", status); + vvd(rpb[0][1], 0.7437794731203340345e-1, 1e-14, + "iauLtpb", "rpb12", status); + vvd(rpb[0][2], 0.3237632684841625547e-1, 1e-14, + "iauLtpb", "rpb13", status); + vvd(rpb[1][0], -0.7437795663437177152e-1, 1e-14, + "iauLtpb", "rpb21", status); + vvd(rpb[1][1], 0.9972293947500013666, 1e-14, + "iauLtpb", "rpb22", status); + vvd(rpb[1][2], -0.1205741865911243235e-2, 1e-14, + "iauLtpb", "rpb23", status); + vvd(rpb[2][0], -0.3237630543224664992e-1, 1e-14, + "iauLtpb", "rpb31", status); + vvd(rpb[2][1], -0.1206316791076485295e-2, 1e-14, + "iauLtpb", "rpb32", status); + vvd(rpb[2][2], 0.9994750220222438819, 1e-14, + "iauLtpb", "rpb33", status); + +} + +static void t_ltpecl(int *status) +/* +** - - - - - - - - - +** t _ l t p e c l +** - - - - - - - - - +** +** Test iauLtpecl function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtpecl, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, vec[3]; + + + epj = -1500.0; + + iauLtpecl(epj, vec); + + vvd(vec[0], 0.4768625676477096525e-3, 1e-14, + "iauLtpecl", "vec1", status); + vvd(vec[1], -0.4052259533091875112, 1e-14, + "iauLtpecl", "vec2", status); + vvd(vec[2], 0.9142164401096448012, 1e-14, + "iauLtpecl", "vec3", status); + +} + +static void t_ltpequ(int *status) +/* +** - - - - - - - - - +** t _ l t p e q u +** - - - - - - - - - +** +** Test iauLtpequ function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauLtpequ, vvd +** +** This revision: 2016 March 12 +*/ +{ + double epj, veq[3]; + + + epj = -2500.0; + + iauLtpequ(epj, veq); + + vvd(veq[0], -0.3586652560237326659, 1e-14, + "iauLtpequ", "veq1", status); + vvd(veq[1], -0.1996978910771128475, 1e-14, + "iauLtpequ", "veq2", status); + vvd(veq[2], 0.9118552442250819624, 1e-14, + "iauLtpequ", "veq3", status); + +} + +static void t_moon98(int *status) +/* +** - - - - - - - - - +** t _ m o o n 9 8 +** - - - - - - - - - +** +** Test iauMoon98 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauMoon98, vvd, viv +** +** This revision: 2021 April 12 +*/ +{ + double pv[2][3]; + + + iauMoon98(2400000.5, 43999.9, pv); + + vvd(pv[0][0], -0.2601295959971044180e-2, 1e-11, + "iauMoon98", "x 4", status); + vvd(pv[0][1], 0.6139750944302742189e-3, 1e-11, + "iauMoon98", "y 4", status); + vvd(pv[0][2], 0.2640794528229828909e-3, 1e-11, + "iauMoon98", "z 4", status); + + vvd(pv[1][0], -0.1244321506649895021e-3, 1e-11, + "iauMoon98", "xd 4", status); + vvd(pv[1][1], -0.5219076942678119398e-3, 1e-11, + "iauMoon98", "yd 4", status); + vvd(pv[1][2], -0.1716132214378462047e-3, 1e-11, + "iauMoon98", "zd 4", status); + +} + +static void t_num00a(int *status) +/* +** - - - - - - - - - +** t _ n u m 0 0 a +** - - - - - - - - - +** +** Test iauNum00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNum00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rmatn[3][3]; + + + iauNum00a(2400000.5, 53736.0, rmatn); + + vvd(rmatn[0][0], 0.9999999999536227949, 1e-12, + "iauNum00a", "11", status); + vvd(rmatn[0][1], 0.8836238544090873336e-5, 1e-12, + "iauNum00a", "12", status); + vvd(rmatn[0][2], 0.3830835237722400669e-5, 1e-12, + "iauNum00a", "13", status); + + vvd(rmatn[1][0], -0.8836082880798569274e-5, 1e-12, + "iauNum00a", "21", status); + vvd(rmatn[1][1], 0.9999999991354655028, 1e-12, + "iauNum00a", "22", status); + vvd(rmatn[1][2], -0.4063240865362499850e-4, 1e-12, + "iauNum00a", "23", status); + + vvd(rmatn[2][0], -0.3831194272065995866e-5, 1e-12, + "iauNum00a", "31", status); + vvd(rmatn[2][1], 0.4063237480216291775e-4, 1e-12, + "iauNum00a", "32", status); + vvd(rmatn[2][2], 0.9999999991671660338, 1e-12, + "iauNum00a", "33", status); + +} + +static void t_num00b(int *status) +/* +** - - - - - - - - - +** t _ n u m 0 0 b +** - - - - - - - - - +** +** Test iauNum00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNum00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rmatn[3][3]; + + iauNum00b(2400000.5, 53736, rmatn); + + vvd(rmatn[0][0], 0.9999999999536069682, 1e-12, + "iauNum00b", "11", status); + vvd(rmatn[0][1], 0.8837746144871248011e-5, 1e-12, + "iauNum00b", "12", status); + vvd(rmatn[0][2], 0.3831488838252202945e-5, 1e-12, + "iauNum00b", "13", status); + + vvd(rmatn[1][0], -0.8837590456632304720e-5, 1e-12, + "iauNum00b", "21", status); + vvd(rmatn[1][1], 0.9999999991354692733, 1e-12, + "iauNum00b", "22", status); + vvd(rmatn[1][2], -0.4063198798559591654e-4, 1e-12, + "iauNum00b", "23", status); + + vvd(rmatn[2][0], -0.3831847930134941271e-5, 1e-12, + "iauNum00b", "31", status); + vvd(rmatn[2][1], 0.4063195412258168380e-4, 1e-12, + "iauNum00b", "32", status); + vvd(rmatn[2][2], 0.9999999991671806225, 1e-12, + "iauNum00b", "33", status); + +} + +static void t_num06a(int *status) +/* +** - - - - - - - - - +** t _ n u m 0 6 a +** - - - - - - - - - +** +** Test iauNum06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNum06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rmatn[3][3]; + + iauNum06a(2400000.5, 53736, rmatn); + + vvd(rmatn[0][0], 0.9999999999536227668, 1e-12, + "iauNum06a", "11", status); + vvd(rmatn[0][1], 0.8836241998111535233e-5, 1e-12, + "iauNum06a", "12", status); + vvd(rmatn[0][2], 0.3830834608415287707e-5, 1e-12, + "iauNum06a", "13", status); + + vvd(rmatn[1][0], -0.8836086334870740138e-5, 1e-12, + "iauNum06a", "21", status); + vvd(rmatn[1][1], 0.9999999991354657474, 1e-12, + "iauNum06a", "22", status); + vvd(rmatn[1][2], -0.4063240188248455065e-4, 1e-12, + "iauNum06a", "23", status); + + vvd(rmatn[2][0], -0.3831193642839398128e-5, 1e-12, + "iauNum06a", "31", status); + vvd(rmatn[2][1], 0.4063236803101479770e-4, 1e-12, + "iauNum06a", "32", status); + vvd(rmatn[2][2], 0.9999999991671663114, 1e-12, + "iauNum06a", "33", status); + +} + +static void t_numat(int *status) +/* +** - - - - - - - - +** t _ n u m a t +** - - - - - - - - +** +** Test iauNumat function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNumat, vvd +** +** This revision: 2013 August 7 +*/ +{ + double epsa, dpsi, deps, rmatn[3][3]; + + + epsa = 0.4090789763356509900; + dpsi = -0.9630909107115582393e-5; + deps = 0.4063239174001678826e-4; + + iauNumat(epsa, dpsi, deps, rmatn); + + vvd(rmatn[0][0], 0.9999999999536227949, 1e-12, + "iauNumat", "11", status); + vvd(rmatn[0][1], 0.8836239320236250577e-5, 1e-12, + "iauNumat", "12", status); + vvd(rmatn[0][2], 0.3830833447458251908e-5, 1e-12, + "iauNumat", "13", status); + + vvd(rmatn[1][0], -0.8836083657016688588e-5, 1e-12, + "iauNumat", "21", status); + vvd(rmatn[1][1], 0.9999999991354654959, 1e-12, + "iauNumat", "22", status); + vvd(rmatn[1][2], -0.4063240865361857698e-4, 1e-12, + "iauNumat", "23", status); + + vvd(rmatn[2][0], -0.3831192481833385226e-5, 1e-12, + "iauNumat", "31", status); + vvd(rmatn[2][1], 0.4063237480216934159e-4, 1e-12, + "iauNumat", "32", status); + vvd(rmatn[2][2], 0.9999999991671660407, 1e-12, + "iauNumat", "33", status); + +} + +static void t_nut00a(int *status) +/* +** - - - - - - - - - +** t _ n u t 0 0 a +** - - - - - - - - - +** +** Test iauNut00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNut00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps; + + + iauNut00a(2400000.5, 53736.0, &dpsi, &deps); + + vvd(dpsi, -0.9630909107115518431e-5, 1e-13, + "iauNut00a", "dpsi", status); + vvd(deps, 0.4063239174001678710e-4, 1e-13, + "iauNut00a", "deps", status); + +} + +static void t_nut00b(int *status) +/* +** - - - - - - - - - +** t _ n u t 0 0 b +** - - - - - - - - - +** +** Test iauNut00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNut00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps; + + + iauNut00b(2400000.5, 53736.0, &dpsi, &deps); + + vvd(dpsi, -0.9632552291148362783e-5, 1e-13, + "iauNut00b", "dpsi", status); + vvd(deps, 0.4063197106621159367e-4, 1e-13, + "iauNut00b", "deps", status); + +} + +static void t_nut06a(int *status) +/* +** - - - - - - - - - +** t _ n u t 0 6 a +** - - - - - - - - - +** +** Test iauNut06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNut06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps; + + + iauNut06a(2400000.5, 53736.0, &dpsi, &deps); + + vvd(dpsi, -0.9630912025820308797e-5, 1e-13, + "iauNut06a", "dpsi", status); + vvd(deps, 0.4063238496887249798e-4, 1e-13, + "iauNut06a", "deps", status); + +} + +static void t_nut80(int *status) +/* +** - - - - - - - - +** t _ n u t 8 0 +** - - - - - - - - +** +** Test iauNut80 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNut80, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps; + + + iauNut80(2400000.5, 53736.0, &dpsi, &deps); + + vvd(dpsi, -0.9643658353226563966e-5, 1e-13, + "iauNut80", "dpsi", status); + vvd(deps, 0.4060051006879713322e-4, 1e-13, + "iauNut80", "deps", status); + +} + +static void t_nutm80(int *status) +/* +** - - - - - - - - - +** t _ n u t m 8 0 +** - - - - - - - - - +** +** Test iauNutm80 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauNutm80, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rmatn[3][3]; + + + iauNutm80(2400000.5, 53736.0, rmatn); + + vvd(rmatn[0][0], 0.9999999999534999268, 1e-12, + "iauNutm80", "11", status); + vvd(rmatn[0][1], 0.8847935789636432161e-5, 1e-12, + "iauNutm80", "12", status); + vvd(rmatn[0][2], 0.3835906502164019142e-5, 1e-12, + "iauNutm80", "13", status); + + vvd(rmatn[1][0], -0.8847780042583435924e-5, 1e-12, + "iauNutm80", "21", status); + vvd(rmatn[1][1], 0.9999999991366569963, 1e-12, + "iauNutm80", "22", status); + vvd(rmatn[1][2], -0.4060052702727130809e-4, 1e-12, + "iauNutm80", "23", status); + + vvd(rmatn[2][0], -0.3836265729708478796e-5, 1e-12, + "iauNutm80", "31", status); + vvd(rmatn[2][1], 0.4060049308612638555e-4, 1e-12, + "iauNutm80", "32", status); + vvd(rmatn[2][2], 0.9999999991684415129, 1e-12, + "iauNutm80", "33", status); + +} + +static void t_obl06(int *status) +/* +** - - - - - - - - +** t _ o b l 0 6 +** - - - - - - - - +** +** Test iauObl06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauObl06, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauObl06(2400000.5, 54388.0), 0.4090749229387258204, 1e-14, + "iauObl06", "", status); +} + +static void t_obl80(int *status) +/* +** - - - - - - - - +** t _ o b l 8 0 +** - - - - - - - - +** +** Test iauObl80 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauObl80, vvd +** +** This revision: 2013 August 7 +*/ +{ + double eps0; + + + eps0 = iauObl80(2400000.5, 54388.0); + + vvd(eps0, 0.4090751347643816218, 1e-14, "iauObl80", "", status); + +} + +static void t_p06e(int *status) +/* +** - - - - - - - +** t _ p 0 6 e +** - - - - - - - +** +** Test iauP06e function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauP06e, vvd +** +** This revision: 2020 May 30 +*/ +{ + double eps0, psia, oma, bpa, bqa, pia, bpia, + epsa, chia, za, zetaa, thetaa, pa, gam, phi, psi; + + + iauP06e(2400000.5, 52541.0, &eps0, &psia, &oma, &bpa, + &bqa, &pia, &bpia, &epsa, &chia, &za, + &zetaa, &thetaa, &pa, &gam, &phi, &psi); + + vvd(eps0, 0.4090926006005828715, 1e-14, + "iauP06e", "eps0", status); + vvd(psia, 0.6664369630191613431e-3, 1e-14, + "iauP06e", "psia", status); + vvd(oma , 0.4090925973783255982, 1e-14, + "iauP06e", "oma", status); + vvd(bpa, 0.5561149371265209445e-6, 1e-14, + "iauP06e", "bpa", status); + vvd(bqa, -0.6191517193290621270e-5, 1e-14, + "iauP06e", "bqa", status); + vvd(pia, 0.6216441751884382923e-5, 1e-14, + "iauP06e", "pia", status); + vvd(bpia, 3.052014180023779882, 1e-14, + "iauP06e", "bpia", status); + vvd(epsa, 0.4090864054922431688, 1e-14, + "iauP06e", "epsa", status); + vvd(chia, 0.1387703379530915364e-5, 1e-14, + "iauP06e", "chia", status); + vvd(za, 0.2921789846651790546e-3, 1e-14, + "iauP06e", "za", status); + vvd(zetaa, 0.3178773290332009310e-3, 1e-14, + "iauP06e", "zetaa", status); + vvd(thetaa, 0.2650932701657497181e-3, 1e-14, + "iauP06e", "thetaa", status); + vvd(pa, 0.6651637681381016288e-3, 1e-14, + "iauP06e", "pa", status); + vvd(gam, 0.1398077115963754987e-5, 1e-14, + "iauP06e", "gam", status); + vvd(phi, 0.4090864090837462602, 1e-14, + "iauP06e", "phi", status); + vvd(psi, 0.6664464807480920325e-3, 1e-14, + "iauP06e", "psi", status); + +} + +static void t_p2pv(int *status) +/* +** - - - - - - - +** t _ p 2 p v +** - - - - - - - +** +** Test iauP2pv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauP2pv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3], pv[2][3]; + + + p[0] = 0.25; + p[1] = 1.2; + p[2] = 3.0; + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = -0.5; + pv[1][1] = 3.1; + pv[1][2] = 0.9; + + iauP2pv(p, pv); + + vvd(pv[0][0], 0.25, 0.0, "iauP2pv", "p1", status); + vvd(pv[0][1], 1.2, 0.0, "iauP2pv", "p2", status); + vvd(pv[0][2], 3.0, 0.0, "iauP2pv", "p3", status); + + vvd(pv[1][0], 0.0, 0.0, "iauP2pv", "v1", status); + vvd(pv[1][1], 0.0, 0.0, "iauP2pv", "v2", status); + vvd(pv[1][2], 0.0, 0.0, "iauP2pv", "v3", status); + +} + +static void t_p2s(int *status) +/* +** - - - - - - +** t _ p 2 s +** - - - - - - +** +** Test iauP2s function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauP2s, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3], theta, phi, r; + + + p[0] = 100.0; + p[1] = -50.0; + p[2] = 25.0; + + iauP2s(p, &theta, &phi, &r); + + vvd(theta, -0.4636476090008061162, 1e-12, "iauP2s", "theta", status); + vvd(phi, 0.2199879773954594463, 1e-12, "iauP2s", "phi", status); + vvd(r, 114.5643923738960002, 1e-9, "iauP2s", "r", status); + +} + +static void t_pap(int *status) +/* +** - - - - - - +** t _ p a p +** - - - - - - +** +** Test iauPap function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPap, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], b[3], theta; + + + a[0] = 1.0; + a[1] = 0.1; + a[2] = 0.2; + + b[0] = -3.0; + b[1] = 1e-3; + b[2] = 0.2; + + theta = iauPap(a, b); + + vvd(theta, 0.3671514267841113674, 1e-12, "iauPap", "", status); + +} + +static void t_pas(int *status) +/* +** - - - - - - +** t _ p a s +** - - - - - - +** +** Test iauPas function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPas, vvd +** +** This revision: 2013 August 7 +*/ +{ + double al, ap, bl, bp, theta; + + + al = 1.0; + ap = 0.1; + bl = 0.2; + bp = -1.0; + + theta = iauPas(al, ap, bl, bp); + + vvd(theta, -2.724544922932270424, 1e-12, "iauPas", "", status); + +} + +static void t_pb06(int *status) +/* +** - - - - - - - +** t _ p b 0 6 +** - - - - - - - +** +** Test iauPb06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPb06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double bzeta, bz, btheta; + + + iauPb06(2400000.5, 50123.9999, &bzeta, &bz, &btheta); + + vvd(bzeta, -0.5092634016326478238e-3, 1e-12, + "iauPb06", "bzeta", status); + vvd(bz, -0.3602772060566044413e-3, 1e-12, + "iauPb06", "bz", status); + vvd(btheta, -0.3779735537167811177e-3, 1e-12, + "iauPb06", "btheta", status); + +} + +static void t_pdp(int *status) +/* +** - - - - - - +** t _ p d p +** - - - - - - +** +** Test iauPdp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPdp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], b[3], adb; + + + a[0] = 2.0; + a[1] = 2.0; + a[2] = 3.0; + + b[0] = 1.0; + b[1] = 3.0; + b[2] = 4.0; + + adb = iauPdp(a, b); + + vvd(adb, 20, 1e-12, "iauPdp", "", status); + +} + +static void t_pfw06(int *status) +/* +** - - - - - - - - +** t _ p f w 0 6 +** - - - - - - - - +** +** Test iauPfw06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPfw06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double gamb, phib, psib, epsa; + + + iauPfw06(2400000.5, 50123.9999, &gamb, &phib, &psib, &epsa); + + vvd(gamb, -0.2243387670997995690e-5, 1e-16, + "iauPfw06", "gamb", status); + vvd(phib, 0.4091014602391312808, 1e-12, + "iauPfw06", "phib", status); + vvd(psib, -0.9501954178013031895e-3, 1e-14, + "iauPfw06", "psib", status); + vvd(epsa, 0.4091014316587367491, 1e-12, + "iauPfw06", "epsa", status); + +} + +static void t_plan94(int *status) +/* +** - - - - - - - - - +** t _ p l a n 9 4 +** - - - - - - - - - +** +** Test iauPlan94 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPlan94, vvd, viv +** +** This revision: 2013 October 2 +*/ +{ + double pv[2][3]; + int j; + + + j = iauPlan94(2400000.5, 1e6, 0, pv); + + vvd(pv[0][0], 0.0, 0.0, "iauPlan94", "x 1", status); + vvd(pv[0][1], 0.0, 0.0, "iauPlan94", "y 1", status); + vvd(pv[0][2], 0.0, 0.0, "iauPlan94", "z 1", status); + + vvd(pv[1][0], 0.0, 0.0, "iauPlan94", "xd 1", status); + vvd(pv[1][1], 0.0, 0.0, "iauPlan94", "yd 1", status); + vvd(pv[1][2], 0.0, 0.0, "iauPlan94", "zd 1", status); + + viv(j, -1, "iauPlan94", "j 1", status); + + j = iauPlan94(2400000.5, 1e6, 10, pv); + + viv(j, -1, "iauPlan94", "j 2", status); + + j = iauPlan94(2400000.5, -320000, 3, pv); + + vvd(pv[0][0], 0.9308038666832975759, 1e-11, + "iauPlan94", "x 3", status); + vvd(pv[0][1], 0.3258319040261346000, 1e-11, + "iauPlan94", "y 3", status); + vvd(pv[0][2], 0.1422794544481140560, 1e-11, + "iauPlan94", "z 3", status); + + vvd(pv[1][0], -0.6429458958255170006e-2, 1e-11, + "iauPlan94", "xd 3", status); + vvd(pv[1][1], 0.1468570657704237764e-1, 1e-11, + "iauPlan94", "yd 3", status); + vvd(pv[1][2], 0.6406996426270981189e-2, 1e-11, + "iauPlan94", "zd 3", status); + + viv(j, 1, "iauPlan94", "j 3", status); + + j = iauPlan94(2400000.5, 43999.9, 1, pv); + + vvd(pv[0][0], 0.2945293959257430832, 1e-11, + "iauPlan94", "x 4", status); + vvd(pv[0][1], -0.2452204176601049596, 1e-11, + "iauPlan94", "y 4", status); + vvd(pv[0][2], -0.1615427700571978153, 1e-11, + "iauPlan94", "z 4", status); + + vvd(pv[1][0], 0.1413867871404614441e-1, 1e-11, + "iauPlan94", "xd 4", status); + vvd(pv[1][1], 0.1946548301104706582e-1, 1e-11, + "iauPlan94", "yd 4", status); + vvd(pv[1][2], 0.8929809783898904786e-2, 1e-11, + "iauPlan94", "zd 4", status); + + viv(j, 0, "iauPlan94", "j 4", status); + +} + +static void t_pmat00(int *status) +/* +** - - - - - - - - - +** t _ p m a t 0 0 +** - - - - - - - - - +** +** Test iauPmat00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPmat00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbp[3][3]; + + + iauPmat00(2400000.5, 50123.9999, rbp); + + vvd(rbp[0][0], 0.9999995505175087260, 1e-12, + "iauPmat00", "11", status); + vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14, + "iauPmat00", "12", status); + vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14, + "iauPmat00", "13", status); + + vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14, + "iauPmat00", "21", status); + vvd(rbp[1][1], 0.9999996219494925900, 1e-12, + "iauPmat00", "22", status); + vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14, + "iauPmat00", "23", status); + + vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14, + "iauPmat00", "31", status); + vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14, + "iauPmat00", "32", status); + vvd(rbp[2][2], 0.9999999285680153377, 1e-12, + "iauPmat00", "33", status); + +} + +static void t_pmat06(int *status) +/* +** - - - - - - - - - +** t _ p m a t 0 6 +** - - - - - - - - - +** +** Test iauPmat06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPmat06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbp[3][3]; + + + iauPmat06(2400000.5, 50123.9999, rbp); + + vvd(rbp[0][0], 0.9999995505176007047, 1e-12, + "iauPmat06", "11", status); + vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14, + "iauPmat06", "12", status); + vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14, + "iauPmat06", "13", status); + + vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14, + "iauPmat06", "21", status); + vvd(rbp[1][1], 0.9999996219496027161, 1e-12, + "iauPmat06", "22", status); + vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14, + "iauPmat06", "23", status); + + vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14, + "iauPmat06", "31", status); + vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14, + "iauPmat06", "32", status); + vvd(rbp[2][2], 0.9999999285679971958, 1e-12, + "iauPmat06", "33", status); + +} + +static void t_pmat76(int *status) +/* +** - - - - - - - - - +** t _ p m a t 7 6 +** - - - - - - - - - +** +** Test iauPmat76 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPmat76, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rmatp[3][3]; + + + iauPmat76(2400000.5, 50123.9999, rmatp); + + vvd(rmatp[0][0], 0.9999995504328350733, 1e-12, + "iauPmat76", "11", status); + vvd(rmatp[0][1], 0.8696632209480960785e-3, 1e-14, + "iauPmat76", "12", status); + vvd(rmatp[0][2], 0.3779153474959888345e-3, 1e-14, + "iauPmat76", "13", status); + + vvd(rmatp[1][0], -0.8696632209485112192e-3, 1e-14, + "iauPmat76", "21", status); + vvd(rmatp[1][1], 0.9999996218428560614, 1e-12, + "iauPmat76", "22", status); + vvd(rmatp[1][2], -0.1643284776111886407e-6, 1e-14, + "iauPmat76", "23", status); + + vvd(rmatp[2][0], -0.3779153474950335077e-3, 1e-14, + "iauPmat76", "31", status); + vvd(rmatp[2][1], -0.1643306746147366896e-6, 1e-14, + "iauPmat76", "32", status); + vvd(rmatp[2][2], 0.9999999285899790119, 1e-12, + "iauPmat76", "33", status); + +} + +static void t_pm(int *status) +/* +** - - - - - +** t _ p m +** - - - - - +** +** Test iauPm function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPm, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3], r; + + + p[0] = 0.3; + p[1] = 1.2; + p[2] = -2.5; + + r = iauPm(p); + + vvd(r, 2.789265136196270604, 1e-12, "iauPm", "", status); + +} + +static void t_pmp(int *status) +/* +** - - - - - - +** t _ p m p +** - - - - - - +** +** Test iauPmp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPmp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], b[3], amb[3]; + + + a[0] = 2.0; + a[1] = 2.0; + a[2] = 3.0; + + b[0] = 1.0; + b[1] = 3.0; + b[2] = 4.0; + + iauPmp(a, b, amb); + + vvd(amb[0], 1.0, 1e-12, "iauPmp", "0", status); + vvd(amb[1], -1.0, 1e-12, "iauPmp", "1", status); + vvd(amb[2], -1.0, 1e-12, "iauPmp", "2", status); + +} + +static void t_pmpx(int *status) +/* +** - - - - - - - +** t _ p m p x +** - - - - - - - +** +** Test iauPmpx function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPmpx, vvd +** +** This revision: 2017 March 15 +*/ +{ + double rc, dc, pr, pd, px, rv, pmt, pob[3], pco[3]; + + + rc = 1.234; + dc = 0.789; + pr = 1e-5; + pd = -2e-5; + px = 1e-2; + rv = 10.0; + pmt = 8.75; + pob[0] = 0.9; + pob[1] = 0.4; + pob[2] = 0.1; + + iauPmpx(rc, dc, pr, pd, px, rv, pmt, pob, pco); + + vvd(pco[0], 0.2328137623960308438, 1e-12, + "iauPmpx", "1", status); + vvd(pco[1], 0.6651097085397855328, 1e-12, + "iauPmpx", "2", status); + vvd(pco[2], 0.7095257765896359837, 1e-12, + "iauPmpx", "3", status); + +} + +static void t_pmsafe(int *status) +/* +** - - - - - - - - - +** t _ p m s a f e +** - - - - - - - - - +** +** Test iauPmsafe function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPmsafe, vvd, viv +** +** This revision: 2017 March 15 +*/ +{ + int j; + double ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b, + ra2, dec2, pmr2, pmd2, px2, rv2; + + + ra1 = 1.234; + dec1 = 0.789; + pmr1 = 1e-5; + pmd1 = -2e-5; + px1 = 1e-2; + rv1 = 10.0; + ep1a = 2400000.5; + ep1b = 48348.5625; + ep2a = 2400000.5; + ep2b = 51544.5; + + j = iauPmsafe(ra1, dec1, pmr1, pmd1, px1, rv1, + ep1a, ep1b, ep2a, ep2b, + &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); + + vvd(ra2, 1.234087484501017061, 1e-12, + "iauPmsafe", "ra2", status); + vvd(dec2, 0.7888249982450468567, 1e-12, + "iauPmsafe", "dec2", status); + vvd(pmr2, 0.9996457663586073988e-5, 1e-12, + "iauPmsafe", "pmr2", status); + vvd(pmd2, -0.2000040085106754565e-4, 1e-16, + "iauPmsafe", "pmd2", status); + vvd(px2, 0.9999997295356830666e-2, 1e-12, + "iauPmsafe", "px2", status); + vvd(rv2, 10.38468380293920069, 1e-10, + "iauPmsafe", "rv2", status); + viv ( j, 0, "iauPmsafe", "j", status); + +} + +static void t_pn(int *status) +/* +** - - - - - +** t _ p n +** - - - - - +** +** Test iauPn function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPn, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3], r, u[3]; + + + p[0] = 0.3; + p[1] = 1.2; + p[2] = -2.5; + + iauPn(p, &r, u); + + vvd(r, 2.789265136196270604, 1e-12, "iauPn", "r", status); + + vvd(u[0], 0.1075552109073112058, 1e-12, "iauPn", "u1", status); + vvd(u[1], 0.4302208436292448232, 1e-12, "iauPn", "u2", status); + vvd(u[2], -0.8962934242275933816, 1e-12, "iauPn", "u3", status); + +} + +static void t_pn00(int *status) +/* +** - - - - - - - +** t _ p n 0 0 +** - - - - - - - +** +** Test iauPn00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPn00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps, epsa, + rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; + + + dpsi = -0.9632552291149335877e-5; + deps = 0.4063197106621141414e-4; + + iauPn00(2400000.5, 53736.0, dpsi, deps, + &epsa, rb, rp, rbp, rn, rbpn); + + vvd(epsa, 0.4090791789404229916, 1e-12, "iauPn00", "epsa", status); + + vvd(rb[0][0], 0.9999999999999942498, 1e-12, + "iauPn00", "rb11", status); + vvd(rb[0][1], -0.7078279744199196626e-7, 1e-18, + "iauPn00", "rb12", status); + vvd(rb[0][2], 0.8056217146976134152e-7, 1e-18, + "iauPn00", "rb13", status); + + vvd(rb[1][0], 0.7078279477857337206e-7, 1e-18, + "iauPn00", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauPn00", "rb22", status); + vvd(rb[1][2], 0.3306041454222136517e-7, 1e-18, + "iauPn00", "rb23", status); + + vvd(rb[2][0], -0.8056217380986972157e-7, 1e-18, + "iauPn00", "rb31", status); + vvd(rb[2][1], -0.3306040883980552500e-7, 1e-18, + "iauPn00", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauPn00", "rb33", status); + + vvd(rp[0][0], 0.9999989300532289018, 1e-12, + "iauPn00", "rp11", status); + vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, + "iauPn00", "rp12", status); + vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, + "iauPn00", "rp13", status); + + vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, + "iauPn00", "rp21", status); + vvd(rp[1][1], 0.9999990999908750433, 1e-12, + "iauPn00", "rp22", status); + vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, + "iauPn00", "rp23", status); + + vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, + "iauPn00", "rp31", status); + vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, + "iauPn00", "rp32", status); + vvd(rp[2][2], 0.9999998300623538046, 1e-12, + "iauPn00", "rp33", status); + + vvd(rbp[0][0], 0.9999989300052243993, 1e-12, + "iauPn00", "rbp11", status); + vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14, + "iauPn00", "rbp12", status); + vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14, + "iauPn00", "rbp13", status); + + vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, + "iauPn00", "rbp21", status); + vvd(rbp[1][1], 0.9999990998959191343, 1e-12, + "iauPn00", "rbp22", status); + vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14, + "iauPn00", "rbp23", status); + + vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, + "iauPn00", "rbp31", status); + vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14, + "iauPn00", "rbp32", status); + vvd(rbp[2][2], 0.9999998301093036269, 1e-12, + "iauPn00", "rbp33", status); + + vvd(rn[0][0], 0.9999999999536069682, 1e-12, + "iauPn00", "rn11", status); + vvd(rn[0][1], 0.8837746144872140812e-5, 1e-16, + "iauPn00", "rn12", status); + vvd(rn[0][2], 0.3831488838252590008e-5, 1e-16, + "iauPn00", "rn13", status); + + vvd(rn[1][0], -0.8837590456633197506e-5, 1e-16, + "iauPn00", "rn21", status); + vvd(rn[1][1], 0.9999999991354692733, 1e-12, + "iauPn00", "rn22", status); + vvd(rn[1][2], -0.4063198798559573702e-4, 1e-16, + "iauPn00", "rn23", status); + + vvd(rn[2][0], -0.3831847930135328368e-5, 1e-16, + "iauPn00", "rn31", status); + vvd(rn[2][1], 0.4063195412258150427e-4, 1e-16, + "iauPn00", "rn32", status); + vvd(rn[2][2], 0.9999999991671806225, 1e-12, + "iauPn00", "rn33", status); + + vvd(rbpn[0][0], 0.9999989440499982806, 1e-12, + "iauPn00", "rbpn11", status); + vvd(rbpn[0][1], -0.1332880253640848301e-2, 1e-14, + "iauPn00", "rbpn12", status); + vvd(rbpn[0][2], -0.5790760898731087295e-3, 1e-14, + "iauPn00", "rbpn13", status); + + vvd(rbpn[1][0], 0.1332856746979948745e-2, 1e-14, + "iauPn00", "rbpn21", status); + vvd(rbpn[1][1], 0.9999991109064768883, 1e-12, + "iauPn00", "rbpn22", status); + vvd(rbpn[1][2], -0.4097740555723063806e-4, 1e-14, + "iauPn00", "rbpn23", status); + + vvd(rbpn[2][0], 0.5791301929950205000e-3, 1e-14, + "iauPn00", "rbpn31", status); + vvd(rbpn[2][1], 0.4020553681373702931e-4, 1e-14, + "iauPn00", "rbpn32", status); + vvd(rbpn[2][2], 0.9999998314958529887, 1e-12, + "iauPn00", "rbpn33", status); + +} + +static void t_pn00a(int *status) +/* +** - - - - - - - - +** t _ p n 0 0 a +** - - - - - - - - +** +** Test iauPn00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPn00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps, epsa, + rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; + + + iauPn00a(2400000.5, 53736.0, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); + + vvd(dpsi, -0.9630909107115518431e-5, 1e-12, + "iauPn00a", "dpsi", status); + vvd(deps, 0.4063239174001678710e-4, 1e-12, + "iauPn00a", "deps", status); + vvd(epsa, 0.4090791789404229916, 1e-12, "iauPn00a", "epsa", status); + + vvd(rb[0][0], 0.9999999999999942498, 1e-12, + "iauPn00a", "rb11", status); + vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, + "iauPn00a", "rb12", status); + vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, + "iauPn00a", "rb13", status); + + vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, + "iauPn00a", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauPn00a", "rb22", status); + vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, + "iauPn00a", "rb23", status); + + vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, + "iauPn00a", "rb31", status); + vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, + "iauPn00a", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauPn00a", "rb33", status); + + vvd(rp[0][0], 0.9999989300532289018, 1e-12, + "iauPn00a", "rp11", status); + vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, + "iauPn00a", "rp12", status); + vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, + "iauPn00a", "rp13", status); + + vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, + "iauPn00a", "rp21", status); + vvd(rp[1][1], 0.9999990999908750433, 1e-12, + "iauPn00a", "rp22", status); + vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, + "iauPn00a", "rp23", status); + + vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, + "iauPn00a", "rp31", status); + vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, + "iauPn00a", "rp32", status); + vvd(rp[2][2], 0.9999998300623538046, 1e-12, + "iauPn00a", "rp33", status); + + vvd(rbp[0][0], 0.9999989300052243993, 1e-12, + "iauPn00a", "rbp11", status); + vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14, + "iauPn00a", "rbp12", status); + vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14, + "iauPn00a", "rbp13", status); + + vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, + "iauPn00a", "rbp21", status); + vvd(rbp[1][1], 0.9999990998959191343, 1e-12, + "iauPn00a", "rbp22", status); + vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14, + "iauPn00a", "rbp23", status); + + vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, + "iauPn00a", "rbp31", status); + vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14, + "iauPn00a", "rbp32", status); + vvd(rbp[2][2], 0.9999998301093036269, 1e-12, + "iauPn00a", "rbp33", status); + + vvd(rn[0][0], 0.9999999999536227949, 1e-12, + "iauPn00a", "rn11", status); + vvd(rn[0][1], 0.8836238544090873336e-5, 1e-14, + "iauPn00a", "rn12", status); + vvd(rn[0][2], 0.3830835237722400669e-5, 1e-14, + "iauPn00a", "rn13", status); + + vvd(rn[1][0], -0.8836082880798569274e-5, 1e-14, + "iauPn00a", "rn21", status); + vvd(rn[1][1], 0.9999999991354655028, 1e-12, + "iauPn00a", "rn22", status); + vvd(rn[1][2], -0.4063240865362499850e-4, 1e-14, + "iauPn00a", "rn23", status); + + vvd(rn[2][0], -0.3831194272065995866e-5, 1e-14, + "iauPn00a", "rn31", status); + vvd(rn[2][1], 0.4063237480216291775e-4, 1e-14, + "iauPn00a", "rn32", status); + vvd(rn[2][2], 0.9999999991671660338, 1e-12, + "iauPn00a", "rn33", status); + + vvd(rbpn[0][0], 0.9999989440476103435, 1e-12, + "iauPn00a", "rbpn11", status); + vvd(rbpn[0][1], -0.1332881761240011763e-2, 1e-14, + "iauPn00a", "rbpn12", status); + vvd(rbpn[0][2], -0.5790767434730085751e-3, 1e-14, + "iauPn00a", "rbpn13", status); + + vvd(rbpn[1][0], 0.1332858254308954658e-2, 1e-14, + "iauPn00a", "rbpn21", status); + vvd(rbpn[1][1], 0.9999991109044505577, 1e-12, + "iauPn00a", "rbpn22", status); + vvd(rbpn[1][2], -0.4097782710396580452e-4, 1e-14, + "iauPn00a", "rbpn23", status); + + vvd(rbpn[2][0], 0.5791308472168152904e-3, 1e-14, + "iauPn00a", "rbpn31", status); + vvd(rbpn[2][1], 0.4020595661591500259e-4, 1e-14, + "iauPn00a", "rbpn32", status); + vvd(rbpn[2][2], 0.9999998314954572304, 1e-12, + "iauPn00a", "rbpn33", status); + +} + +static void t_pn00b(int *status) +/* +** - - - - - - - - +** t _ p n 0 0 b +** - - - - - - - - +** +** Test iauPn00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPn00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps, epsa, + rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; + + + iauPn00b(2400000.5, 53736.0, &dpsi, &deps, &epsa, + rb, rp, rbp, rn, rbpn); + + vvd(dpsi, -0.9632552291148362783e-5, 1e-12, + "iauPn00b", "dpsi", status); + vvd(deps, 0.4063197106621159367e-4, 1e-12, + "iauPn00b", "deps", status); + vvd(epsa, 0.4090791789404229916, 1e-12, "iauPn00b", "epsa", status); + + vvd(rb[0][0], 0.9999999999999942498, 1e-12, + "iauPn00b", "rb11", status); + vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, + "iauPn00b", "rb12", status); + vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, + "iauPn00b", "rb13", status); + + vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, + "iauPn00b", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauPn00b", "rb22", status); + vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, + "iauPn00b", "rb23", status); + + vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, + "iauPn00b", "rb31", status); + vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, + "iauPn00b", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauPn00b", "rb33", status); + + vvd(rp[0][0], 0.9999989300532289018, 1e-12, + "iauPn00b", "rp11", status); + vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, + "iauPn00b", "rp12", status); + vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, + "iauPn00b", "rp13", status); + + vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, + "iauPn00b", "rp21", status); + vvd(rp[1][1], 0.9999990999908750433, 1e-12, + "iauPn00b", "rp22", status); + vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, + "iauPn00b", "rp23", status); + + vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, + "iauPn00b", "rp31", status); + vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, + "iauPn00b", "rp32", status); + vvd(rp[2][2], 0.9999998300623538046, 1e-12, + "iauPn00b", "rp33", status); + + vvd(rbp[0][0], 0.9999989300052243993, 1e-12, + "iauPn00b", "rbp11", status); + vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14, + "iauPn00b", "rbp12", status); + vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14, + "iauPn00b", "rbp13", status); + + vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, + "iauPn00b", "rbp21", status); + vvd(rbp[1][1], 0.9999990998959191343, 1e-12, + "iauPn00b", "rbp22", status); + vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14, + "iauPn00b", "rbp23", status); + + vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, + "iauPn00b", "rbp31", status); + vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14, + "iauPn00b", "rbp32", status); + vvd(rbp[2][2], 0.9999998301093036269, 1e-12, + "iauPn00b", "rbp33", status); + + vvd(rn[0][0], 0.9999999999536069682, 1e-12, + "iauPn00b", "rn11", status); + vvd(rn[0][1], 0.8837746144871248011e-5, 1e-14, + "iauPn00b", "rn12", status); + vvd(rn[0][2], 0.3831488838252202945e-5, 1e-14, + "iauPn00b", "rn13", status); + + vvd(rn[1][0], -0.8837590456632304720e-5, 1e-14, + "iauPn00b", "rn21", status); + vvd(rn[1][1], 0.9999999991354692733, 1e-12, + "iauPn00b", "rn22", status); + vvd(rn[1][2], -0.4063198798559591654e-4, 1e-14, + "iauPn00b", "rn23", status); + + vvd(rn[2][0], -0.3831847930134941271e-5, 1e-14, + "iauPn00b", "rn31", status); + vvd(rn[2][1], 0.4063195412258168380e-4, 1e-14, + "iauPn00b", "rn32", status); + vvd(rn[2][2], 0.9999999991671806225, 1e-12, + "iauPn00b", "rn33", status); + + vvd(rbpn[0][0], 0.9999989440499982806, 1e-12, + "iauPn00b", "rbpn11", status); + vvd(rbpn[0][1], -0.1332880253640849194e-2, 1e-14, + "iauPn00b", "rbpn12", status); + vvd(rbpn[0][2], -0.5790760898731091166e-3, 1e-14, + "iauPn00b", "rbpn13", status); + + vvd(rbpn[1][0], 0.1332856746979949638e-2, 1e-14, + "iauPn00b", "rbpn21", status); + vvd(rbpn[1][1], 0.9999991109064768883, 1e-12, + "iauPn00b", "rbpn22", status); + vvd(rbpn[1][2], -0.4097740555723081811e-4, 1e-14, + "iauPn00b", "rbpn23", status); + + vvd(rbpn[2][0], 0.5791301929950208873e-3, 1e-14, + "iauPn00b", "rbpn31", status); + vvd(rbpn[2][1], 0.4020553681373720832e-4, 1e-14, + "iauPn00b", "rbpn32", status); + vvd(rbpn[2][2], 0.9999998314958529887, 1e-12, + "iauPn00b", "rbpn33", status); + +} + +static void t_pn06a(int *status) +/* +** - - - - - - - - +** t _ p n 0 6 a +** - - - - - - - - +** +** Test iauPn06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPn06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps, epsa; + double rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; + + + iauPn06a(2400000.5, 53736.0, &dpsi, &deps, &epsa, + rb, rp, rbp, rn, rbpn); + + vvd(dpsi, -0.9630912025820308797e-5, 1e-12, + "iauPn06a", "dpsi", status); + vvd(deps, 0.4063238496887249798e-4, 1e-12, + "iauPn06a", "deps", status); + vvd(epsa, 0.4090789763356509926, 1e-12, "iauPn06a", "epsa", status); + + vvd(rb[0][0], 0.9999999999999942497, 1e-12, + "iauPn06a", "rb11", status); + vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, + "iauPn06a", "rb12", status); + vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, + "iauPn06a", "rb13", status); + + vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, + "iauPn06a", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauPn06a", "rb22", status); + vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, + "iauPn06a", "rb23", status); + + vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, + "iauPn06a", "rb31", status); + vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, + "iauPn06a", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauPn06a", "rb33", status); + + vvd(rp[0][0], 0.9999989300536854831, 1e-12, + "iauPn06a", "rp11", status); + vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14, + "iauPn06a", "rp12", status); + vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14, + "iauPn06a", "rp13", status); + + vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14, + "iauPn06a", "rp21", status); + vvd(rp[1][1], 0.9999990999913319321, 1e-12, + "iauPn06a", "rp22", status); + vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14, + "iauPn06a", "rp23", status); + + vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14, + "iauPn06a", "rp31", status); + vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14, + "iauPn06a", "rp32", status); + vvd(rp[2][2], 0.9999998300623534950, 1e-12, + "iauPn06a", "rp33", status); + + vvd(rbp[0][0], 0.9999989300056797893, 1e-12, + "iauPn06a", "rbp11", status); + vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14, + "iauPn06a", "rbp12", status); + vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14, + "iauPn06a", "rbp13", status); + + vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14, + "iauPn06a", "rbp21", status); + vvd(rbp[1][1], 0.9999990998963748448, 1e-12, + "iauPn06a", "rbp22", status); + vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14, + "iauPn06a", "rbp23", status); + + vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14, + "iauPn06a", "rbp31", status); + vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14, + "iauPn06a", "rbp32", status); + vvd(rbp[2][2], 0.9999998301093032943, 1e-12, + "iauPn06a", "rbp33", status); + + vvd(rn[0][0], 0.9999999999536227668, 1e-12, + "iauPn06a", "rn11", status); + vvd(rn[0][1], 0.8836241998111535233e-5, 1e-14, + "iauPn06a", "rn12", status); + vvd(rn[0][2], 0.3830834608415287707e-5, 1e-14, + "iauPn06a", "rn13", status); + + vvd(rn[1][0], -0.8836086334870740138e-5, 1e-14, + "iauPn06a", "rn21", status); + vvd(rn[1][1], 0.9999999991354657474, 1e-12, + "iauPn06a", "rn22", status); + vvd(rn[1][2], -0.4063240188248455065e-4, 1e-14, + "iauPn06a", "rn23", status); + + vvd(rn[2][0], -0.3831193642839398128e-5, 1e-14, + "iauPn06a", "rn31", status); + vvd(rn[2][1], 0.4063236803101479770e-4, 1e-14, + "iauPn06a", "rn32", status); + vvd(rn[2][2], 0.9999999991671663114, 1e-12, + "iauPn06a", "rn33", status); + + vvd(rbpn[0][0], 0.9999989440480669738, 1e-12, + "iauPn06a", "rbpn11", status); + vvd(rbpn[0][1], -0.1332881418091915973e-2, 1e-14, + "iauPn06a", "rbpn12", status); + vvd(rbpn[0][2], -0.5790767447612042565e-3, 1e-14, + "iauPn06a", "rbpn13", status); + + vvd(rbpn[1][0], 0.1332857911250989133e-2, 1e-14, + "iauPn06a", "rbpn21", status); + vvd(rbpn[1][1], 0.9999991109049141908, 1e-12, + "iauPn06a", "rbpn22", status); + vvd(rbpn[1][2], -0.4097767128546784878e-4, 1e-14, + "iauPn06a", "rbpn23", status); + + vvd(rbpn[2][0], 0.5791308482835292617e-3, 1e-14, + "iauPn06a", "rbpn31", status); + vvd(rbpn[2][1], 0.4020580099454020310e-4, 1e-14, + "iauPn06a", "rbpn32", status); + vvd(rbpn[2][2], 0.9999998314954628695, 1e-12, + "iauPn06a", "rbpn33", status); + +} + +static void t_pn06(int *status) +/* +** - - - - - - - +** t _ p n 0 6 +** - - - - - - - +** +** Test iauPn06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPn06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsi, deps, epsa, + rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; + + + dpsi = -0.9632552291149335877e-5; + deps = 0.4063197106621141414e-4; + + iauPn06(2400000.5, 53736.0, dpsi, deps, + &epsa, rb, rp, rbp, rn, rbpn); + + vvd(epsa, 0.4090789763356509926, 1e-12, "iauPn06", "epsa", status); + + vvd(rb[0][0], 0.9999999999999942497, 1e-12, + "iauPn06", "rb11", status); + vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, + "iauPn06", "rb12", status); + vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, + "iauPn06", "rb13", status); + + vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, + "iauPn06", "rb21", status); + vvd(rb[1][1], 0.9999999999999969484, 1e-12, + "iauPn06", "rb22", status); + vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, + "iauPn06", "rb23", status); + + vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, + "iauPn06", "rb31", status); + vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, + "iauPn06", "rb32", status); + vvd(rb[2][2], 0.9999999999999962084, 1e-12, + "iauPn06", "rb33", status); + + vvd(rp[0][0], 0.9999989300536854831, 1e-12, + "iauPn06", "rp11", status); + vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14, + "iauPn06", "rp12", status); + vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14, + "iauPn06", "rp13", status); + + vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14, + "iauPn06", "rp21", status); + vvd(rp[1][1], 0.9999990999913319321, 1e-12, + "iauPn06", "rp22", status); + vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14, + "iauPn06", "rp23", status); + + vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14, + "iauPn06", "rp31", status); + vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14, + "iauPn06", "rp32", status); + vvd(rp[2][2], 0.9999998300623534950, 1e-12, + "iauPn06", "rp33", status); + + vvd(rbp[0][0], 0.9999989300056797893, 1e-12, + "iauPn06", "rbp11", status); + vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14, + "iauPn06", "rbp12", status); + vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14, + "iauPn06", "rbp13", status); + + vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14, + "iauPn06", "rbp21", status); + vvd(rbp[1][1], 0.9999990998963748448, 1e-12, + "iauPn06", "rbp22", status); + vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14, + "iauPn06", "rbp23", status); + + vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14, + "iauPn06", "rbp31", status); + vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14, + "iauPn06", "rbp32", status); + vvd(rbp[2][2], 0.9999998301093032943, 1e-12, + "iauPn06", "rbp33", status); + + vvd(rn[0][0], 0.9999999999536069682, 1e-12, + "iauPn06", "rn11", status); + vvd(rn[0][1], 0.8837746921149881914e-5, 1e-14, + "iauPn06", "rn12", status); + vvd(rn[0][2], 0.3831487047682968703e-5, 1e-14, + "iauPn06", "rn13", status); + + vvd(rn[1][0], -0.8837591232983692340e-5, 1e-14, + "iauPn06", "rn21", status); + vvd(rn[1][1], 0.9999999991354692664, 1e-12, + "iauPn06", "rn22", status); + vvd(rn[1][2], -0.4063198798558931215e-4, 1e-14, + "iauPn06", "rn23", status); + + vvd(rn[2][0], -0.3831846139597250235e-5, 1e-14, + "iauPn06", "rn31", status); + vvd(rn[2][1], 0.4063195412258792914e-4, 1e-14, + "iauPn06", "rn32", status); + vvd(rn[2][2], 0.9999999991671806293, 1e-12, + "iauPn06", "rn33", status); + + vvd(rbpn[0][0], 0.9999989440504506688, 1e-12, + "iauPn06", "rbpn11", status); + vvd(rbpn[0][1], -0.1332879913170492655e-2, 1e-14, + "iauPn06", "rbpn12", status); + vvd(rbpn[0][2], -0.5790760923225655753e-3, 1e-14, + "iauPn06", "rbpn13", status); + + vvd(rbpn[1][0], 0.1332856406595754748e-2, 1e-14, + "iauPn06", "rbpn21", status); + vvd(rbpn[1][1], 0.9999991109069366795, 1e-12, + "iauPn06", "rbpn22", status); + vvd(rbpn[1][2], -0.4097725651142641812e-4, 1e-14, + "iauPn06", "rbpn23", status); + + vvd(rbpn[2][0], 0.5791301952321296716e-3, 1e-14, + "iauPn06", "rbpn31", status); + vvd(rbpn[2][1], 0.4020538796195230577e-4, 1e-14, + "iauPn06", "rbpn32", status); + vvd(rbpn[2][2], 0.9999998314958576778, 1e-12, + "iauPn06", "rbpn33", status); + +} + +static void t_pnm00a(int *status) +/* +** - - - - - - - - - +** t _ p n m 0 0 a +** - - - - - - - - - +** +** Test iauPnm00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPnm00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbpn[3][3]; + + + iauPnm00a(2400000.5, 50123.9999, rbpn); + + vvd(rbpn[0][0], 0.9999995832793134257, 1e-12, + "iauPnm00a", "11", status); + vvd(rbpn[0][1], 0.8372384254137809439e-3, 1e-14, + "iauPnm00a", "12", status); + vvd(rbpn[0][2], 0.3639684306407150645e-3, 1e-14, + "iauPnm00a", "13", status); + + vvd(rbpn[1][0], -0.8372535226570394543e-3, 1e-14, + "iauPnm00a", "21", status); + vvd(rbpn[1][1], 0.9999996486491582471, 1e-12, + "iauPnm00a", "22", status); + vvd(rbpn[1][2], 0.4132915262664072381e-4, 1e-14, + "iauPnm00a", "23", status); + + vvd(rbpn[2][0], -0.3639337004054317729e-3, 1e-14, + "iauPnm00a", "31", status); + vvd(rbpn[2][1], -0.4163386925461775873e-4, 1e-14, + "iauPnm00a", "32", status); + vvd(rbpn[2][2], 0.9999999329094390695, 1e-12, + "iauPnm00a", "33", status); + +} + +static void t_pnm00b(int *status) +/* +** - - - - - - - - - +** t _ p n m 0 0 b +** - - - - - - - - - +** +** Test iauPnm00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPnm00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbpn[3][3]; + + + iauPnm00b(2400000.5, 50123.9999, rbpn); + + vvd(rbpn[0][0], 0.9999995832776208280, 1e-12, + "iauPnm00b", "11", status); + vvd(rbpn[0][1], 0.8372401264429654837e-3, 1e-14, + "iauPnm00b", "12", status); + vvd(rbpn[0][2], 0.3639691681450271771e-3, 1e-14, + "iauPnm00b", "13", status); + + vvd(rbpn[1][0], -0.8372552234147137424e-3, 1e-14, + "iauPnm00b", "21", status); + vvd(rbpn[1][1], 0.9999996486477686123, 1e-12, + "iauPnm00b", "22", status); + vvd(rbpn[1][2], 0.4132832190946052890e-4, 1e-14, + "iauPnm00b", "23", status); + + vvd(rbpn[2][0], -0.3639344385341866407e-3, 1e-14, + "iauPnm00b", "31", status); + vvd(rbpn[2][1], -0.4163303977421522785e-4, 1e-14, + "iauPnm00b", "32", status); + vvd(rbpn[2][2], 0.9999999329092049734, 1e-12, + "iauPnm00b", "33", status); + +} + +static void t_pnm06a(int *status) +/* +** - - - - - - - - - +** t _ p n m 0 6 a +** - - - - - - - - - +** +** Test iauPnm06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPnm06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rbpn[3][3]; + + + iauPnm06a(2400000.5, 50123.9999, rbpn); + + vvd(rbpn[0][0], 0.9999995832794205484, 1e-12, + "iauPnm06a", "11", status); + vvd(rbpn[0][1], 0.8372382772630962111e-3, 1e-14, + "iauPnm06a", "12", status); + vvd(rbpn[0][2], 0.3639684771140623099e-3, 1e-14, + "iauPnm06a", "13", status); + + vvd(rbpn[1][0], -0.8372533744743683605e-3, 1e-14, + "iauPnm06a", "21", status); + vvd(rbpn[1][1], 0.9999996486492861646, 1e-12, + "iauPnm06a", "22", status); + vvd(rbpn[1][2], 0.4132905944611019498e-4, 1e-14, + "iauPnm06a", "23", status); + + vvd(rbpn[2][0], -0.3639337469629464969e-3, 1e-14, + "iauPnm06a", "31", status); + vvd(rbpn[2][1], -0.4163377605910663999e-4, 1e-14, + "iauPnm06a", "32", status); + vvd(rbpn[2][2], 0.9999999329094260057, 1e-12, + "iauPnm06a", "33", status); + +} + +static void t_pnm80(int *status) +/* +** - - - - - - - - +** t _ p n m 8 0 +** - - - - - - - - +** +** Test iauPnm80 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPnm80, vvd +** +** This revision: 2013 August 7 +*/ +{ + double rmatpn[3][3]; + + + iauPnm80(2400000.5, 50123.9999, rmatpn); + + vvd(rmatpn[0][0], 0.9999995831934611169, 1e-12, + "iauPnm80", "11", status); + vvd(rmatpn[0][1], 0.8373654045728124011e-3, 1e-14, + "iauPnm80", "12", status); + vvd(rmatpn[0][2], 0.3639121916933106191e-3, 1e-14, + "iauPnm80", "13", status); + + vvd(rmatpn[1][0], -0.8373804896118301316e-3, 1e-14, + "iauPnm80", "21", status); + vvd(rmatpn[1][1], 0.9999996485439674092, 1e-12, + "iauPnm80", "22", status); + vvd(rmatpn[1][2], 0.4130202510421549752e-4, 1e-14, + "iauPnm80", "23", status); + + vvd(rmatpn[2][0], -0.3638774789072144473e-3, 1e-14, + "iauPnm80", "31", status); + vvd(rmatpn[2][1], -0.4160674085851722359e-4, 1e-14, + "iauPnm80", "32", status); + vvd(rmatpn[2][2], 0.9999999329310274805, 1e-12, + "iauPnm80", "33", status); + +} + +static void t_pom00(int *status) +/* +** - - - - - - - - +** t _ p o m 0 0 +** - - - - - - - - +** +** Test iauPom00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPom00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double xp, yp, sp, rpom[3][3]; + + + xp = 2.55060238e-7; + yp = 1.860359247e-6; + sp = -0.1367174580728891460e-10; + + iauPom00(xp, yp, sp, rpom); + + vvd(rpom[0][0], 0.9999999999999674721, 1e-12, + "iauPom00", "11", status); + vvd(rpom[0][1], -0.1367174580728846989e-10, 1e-16, + "iauPom00", "12", status); + vvd(rpom[0][2], 0.2550602379999972345e-6, 1e-16, + "iauPom00", "13", status); + + vvd(rpom[1][0], 0.1414624947957029801e-10, 1e-16, + "iauPom00", "21", status); + vvd(rpom[1][1], 0.9999999999982695317, 1e-12, + "iauPom00", "22", status); + vvd(rpom[1][2], -0.1860359246998866389e-5, 1e-16, + "iauPom00", "23", status); + + vvd(rpom[2][0], -0.2550602379741215021e-6, 1e-16, + "iauPom00", "31", status); + vvd(rpom[2][1], 0.1860359247002414021e-5, 1e-16, + "iauPom00", "32", status); + vvd(rpom[2][2], 0.9999999999982370039, 1e-12, + "iauPom00", "33", status); + +} + +static void t_ppp(int *status) +/* +** - - - - - - +** t _ p p p +** - - - - - - +** +** Test iauPpp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPpp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], b[3], apb[3]; + + + a[0] = 2.0; + a[1] = 2.0; + a[2] = 3.0; + + b[0] = 1.0; + b[1] = 3.0; + b[2] = 4.0; + + iauPpp(a, b, apb); + + vvd(apb[0], 3.0, 1e-12, "iauPpp", "0", status); + vvd(apb[1], 5.0, 1e-12, "iauPpp", "1", status); + vvd(apb[2], 7.0, 1e-12, "iauPpp", "2", status); + +} + +static void t_ppsp(int *status) +/* +** - - - - - - - +** t _ p p s p +** - - - - - - - +** +** Test iauPpsp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPpsp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], s, b[3], apsb[3]; + + + a[0] = 2.0; + a[1] = 2.0; + a[2] = 3.0; + + s = 5.0; + + b[0] = 1.0; + b[1] = 3.0; + b[2] = 4.0; + + iauPpsp(a, s, b, apsb); + + vvd(apsb[0], 7.0, 1e-12, "iauPpsp", "0", status); + vvd(apsb[1], 17.0, 1e-12, "iauPpsp", "1", status); + vvd(apsb[2], 23.0, 1e-12, "iauPpsp", "2", status); + +} + +static void t_pr00(int *status) +/* +** - - - - - - - +** t _ p r 0 0 +** - - - - - - - +** +** Test iauPr00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPr00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double dpsipr, depspr; + + iauPr00(2400000.5, 53736, &dpsipr, &depspr); + + vvd(dpsipr, -0.8716465172668347629e-7, 1e-22, + "iauPr00", "dpsipr", status); + vvd(depspr, -0.7342018386722813087e-8, 1e-22, + "iauPr00", "depspr", status); + +} + +static void t_prec76(int *status) +/* +** - - - - - - - - - +** t _ p r e c 7 6 +** - - - - - - - - - +** +** Test iauPrec76 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPrec76, vvd +** +** This revision: 2013 August 7 +*/ +{ + double ep01, ep02, ep11, ep12, zeta, z, theta; + + + ep01 = 2400000.5; + ep02 = 33282.0; + ep11 = 2400000.5; + ep12 = 51544.0; + + iauPrec76(ep01, ep02, ep11, ep12, &zeta, &z, &theta); + + vvd(zeta, 0.5588961642000161243e-2, 1e-12, + "iauPrec76", "zeta", status); + vvd(z, 0.5589922365870680624e-2, 1e-12, + "iauPrec76", "z", status); + vvd(theta, 0.4858945471687296760e-2, 1e-12, + "iauPrec76", "theta", status); + +} + +static void t_pv2p(int *status) +/* +** - - - - - - - +** t _ p v 2 p +** - - - - - - - +** +** Test iauPv2p function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPv2p, vvd +** +** This revision: 2013 August 7 +*/ +{ + double pv[2][3], p[3]; + + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = -0.5; + pv[1][1] = 3.1; + pv[1][2] = 0.9; + + iauPv2p(pv, p); + + vvd(p[0], 0.3, 0.0, "iauPv2p", "1", status); + vvd(p[1], 1.2, 0.0, "iauPv2p", "2", status); + vvd(p[2], -2.5, 0.0, "iauPv2p", "3", status); + +} + +static void t_pv2s(int *status) +/* +** - - - - - - - +** t _ p v 2 s +** - - - - - - - +** +** Test iauPv2s function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPv2s, vvd +** +** This revision: 2013 August 7 +*/ +{ + double pv[2][3], theta, phi, r, td, pd, rd; + + + pv[0][0] = -0.4514964673880165; + pv[0][1] = 0.03093394277342585; + pv[0][2] = 0.05594668105108779; + + pv[1][0] = 1.292270850663260e-5; + pv[1][1] = 2.652814182060692e-6; + pv[1][2] = 2.568431853930293e-6; + + iauPv2s(pv, &theta, &phi, &r, &td, &pd, &rd); + + vvd(theta, 3.073185307179586515, 1e-12, "iauPv2s", "theta", status); + vvd(phi, 0.1229999999999999992, 1e-12, "iauPv2s", "phi", status); + vvd(r, 0.4559999999999999757, 1e-12, "iauPv2s", "r", status); + vvd(td, -0.7800000000000000364e-5, 1e-16, "iauPv2s", "td", status); + vvd(pd, 0.9010000000000001639e-5, 1e-16, "iauPv2s", "pd", status); + vvd(rd, -0.1229999999999999832e-4, 1e-16, "iauPv2s", "rd", status); + +} + +static void t_pvdpv(int *status) +/* +** - - - - - - - - +** t _ p v d p v +** - - - - - - - - +** +** Test iauPvdpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvdpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[2][3], b[2][3], adb[2]; + + + a[0][0] = 2.0; + a[0][1] = 2.0; + a[0][2] = 3.0; + + a[1][0] = 6.0; + a[1][1] = 0.0; + a[1][2] = 4.0; + + b[0][0] = 1.0; + b[0][1] = 3.0; + b[0][2] = 4.0; + + b[1][0] = 0.0; + b[1][1] = 2.0; + b[1][2] = 8.0; + + iauPvdpv(a, b, adb); + + vvd(adb[0], 20.0, 1e-12, "iauPvdpv", "1", status); + vvd(adb[1], 50.0, 1e-12, "iauPvdpv", "2", status); + +} + +static void t_pvm(int *status) +/* +** - - - - - - +** t _ p v m +** - - - - - - +** +** Test iauPvm function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvm, vvd +** +** This revision: 2013 August 7 +*/ +{ + double pv[2][3], r, s; + + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = 0.45; + pv[1][1] = -0.25; + pv[1][2] = 1.1; + + iauPvm(pv, &r, &s); + + vvd(r, 2.789265136196270604, 1e-12, "iauPvm", "r", status); + vvd(s, 1.214495780149111922, 1e-12, "iauPvm", "s", status); + +} + +static void t_pvmpv(int *status) +/* +** - - - - - - - - +** t _ p v m p v +** - - - - - - - - +** +** Test iauPvmpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvmpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[2][3], b[2][3], amb[2][3]; + + + a[0][0] = 2.0; + a[0][1] = 2.0; + a[0][2] = 3.0; + + a[1][0] = 5.0; + a[1][1] = 6.0; + a[1][2] = 3.0; + + b[0][0] = 1.0; + b[0][1] = 3.0; + b[0][2] = 4.0; + + b[1][0] = 3.0; + b[1][1] = 2.0; + b[1][2] = 1.0; + + iauPvmpv(a, b, amb); + + vvd(amb[0][0], 1.0, 1e-12, "iauPvmpv", "11", status); + vvd(amb[0][1], -1.0, 1e-12, "iauPvmpv", "21", status); + vvd(amb[0][2], -1.0, 1e-12, "iauPvmpv", "31", status); + + vvd(amb[1][0], 2.0, 1e-12, "iauPvmpv", "12", status); + vvd(amb[1][1], 4.0, 1e-12, "iauPvmpv", "22", status); + vvd(amb[1][2], 2.0, 1e-12, "iauPvmpv", "32", status); + +} + +static void t_pvppv(int *status) +/* +** - - - - - - - - +** t _ p v p p v +** - - - - - - - - +** +** Test iauPvppv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvppv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[2][3], b[2][3], apb[2][3]; + + + a[0][0] = 2.0; + a[0][1] = 2.0; + a[0][2] = 3.0; + + a[1][0] = 5.0; + a[1][1] = 6.0; + a[1][2] = 3.0; + + b[0][0] = 1.0; + b[0][1] = 3.0; + b[0][2] = 4.0; + + b[1][0] = 3.0; + b[1][1] = 2.0; + b[1][2] = 1.0; + + iauPvppv(a, b, apb); + + vvd(apb[0][0], 3.0, 1e-12, "iauPvppv", "p1", status); + vvd(apb[0][1], 5.0, 1e-12, "iauPvppv", "p2", status); + vvd(apb[0][2], 7.0, 1e-12, "iauPvppv", "p3", status); + + vvd(apb[1][0], 8.0, 1e-12, "iauPvppv", "v1", status); + vvd(apb[1][1], 8.0, 1e-12, "iauPvppv", "v2", status); + vvd(apb[1][2], 4.0, 1e-12, "iauPvppv", "v3", status); + +} + +static void t_pvstar(int *status) +/* +** - - - - - - - - - +** t _ p v s t a r +** - - - - - - - - - +** +** Test iauPvstar function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvstar, vvd, viv +** +** This revision: 2017 March 15 +*/ +{ + double pv[2][3], ra, dec, pmr, pmd, px, rv; + int j; + + + pv[0][0] = 126668.5912743160601; + pv[0][1] = 2136.792716839935195; + pv[0][2] = -245251.2339876830091; + + pv[1][0] = -0.4051854035740712739e-2; + pv[1][1] = -0.6253919754866173866e-2; + pv[1][2] = 0.1189353719774107189e-1; + + j = iauPvstar(pv, &ra, &dec, &pmr, &pmd, &px, &rv); + + vvd(ra, 0.1686756e-1, 1e-12, "iauPvstar", "ra", status); + vvd(dec, -1.093989828, 1e-12, "iauPvstar", "dec", status); + vvd(pmr, -0.1783235160000472788e-4, 1e-16, "iauPvstar", "pmr", status); + vvd(pmd, 0.2336024047000619347e-5, 1e-16, "iauPvstar", "pmd", status); + vvd(px, 0.74723, 1e-12, "iauPvstar", "px", status); + vvd(rv, -21.60000010107306010, 1e-11, "iauPvstar", "rv", status); + + viv(j, 0, "iauPvstar", "j", status); + +} + +static void t_pvtob(int *status) +/* +** - - - - - - - - +** t _ p v t o b +** - - - - - - - - +** +** Test iauPvtob function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvtob, vvd +** +** This revision: 2013 October 2 +*/ +{ + double elong, phi, hm, xp, yp, sp, theta, pv[2][3]; + + + elong = 2.0; + phi = 0.5; + hm = 3000.0; + xp = 1e-6; + yp = -0.5e-6; + sp = 1e-8; + theta = 5.0; + + iauPvtob(elong, phi, hm, xp, yp, sp, theta, pv); + + vvd(pv[0][0], 4225081.367071159207, 1e-5, + "iauPvtob", "p(1)", status); + vvd(pv[0][1], 3681943.215856198144, 1e-5, + "iauPvtob", "p(2)", status); + vvd(pv[0][2], 3041149.399241260785, 1e-5, + "iauPvtob", "p(3)", status); + vvd(pv[1][0], -268.4915389365998787, 1e-9, + "iauPvtob", "v(1)", status); + vvd(pv[1][1], 308.0977983288903123, 1e-9, + "iauPvtob", "v(2)", status); + vvd(pv[1][2], 0, 0, + "iauPvtob", "v(3)", status); + +} + +static void t_pvu(int *status) +/* +** - - - - - - +** t _ p v u +** - - - - - - +** +** Test iauPvu function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvu, vvd +** +** This revision: 2021 January 5 +*/ +{ + double pv[2][3], upv[2][3]; + + + pv[0][0] = 126668.5912743160734; + pv[0][1] = 2136.792716839935565; + pv[0][2] = -245251.2339876830229; + + pv[1][0] = -0.4051854035740713039e-2; + pv[1][1] = -0.6253919754866175788e-2; + pv[1][2] = 0.1189353719774107615e-1; + + iauPvu(2920.0, pv, upv); + + vvd(upv[0][0], 126656.7598605317105, 1e-6, + "iauPvu", "p1", status); + vvd(upv[0][1], 2118.531271155726332, 1e-8, + "iauPvu", "p2", status); + vvd(upv[0][2], -245216.5048590656190, 1e-6, + "iauPvu", "p3", status); + + vvd(upv[1][0], -0.4051854035740713039e-2, 1e-12, + "iauPvu", "v1", status); + vvd(upv[1][1], -0.6253919754866175788e-2, 1e-12, + "iauPvu", "v2", status); + vvd(upv[1][2], 0.1189353719774107615e-1, 1e-12, + "iauPvu", "v3", status); + +} + +static void t_pvup(int *status) +/* +** - - - - - - - +** t _ p v u p +** - - - - - - - +** +** Test iauPvup function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvup, vvd +** +** This revision: 2021 January 5 +*/ +{ + double pv[2][3], p[3]; + + + pv[0][0] = 126668.5912743160734; + pv[0][1] = 2136.792716839935565; + pv[0][2] = -245251.2339876830229; + + pv[1][0] = -0.4051854035740713039e-2; + pv[1][1] = -0.6253919754866175788e-2; + pv[1][2] = 0.1189353719774107615e-1; + + iauPvup(2920.0, pv, p); + + vvd(p[0], 126656.7598605317105, 1e-6, "iauPvup", "1", status); + vvd(p[1], 2118.531271155726332, 1e-8, "iauPvup", "2", status); + vvd(p[2], -245216.5048590656190, 1e-6, "iauPvup", "3", status); + +} + +static void t_pvxpv(int *status) +/* +** - - - - - - - - +** t _ p v x p v +** - - - - - - - - +** +** Test iauPvxpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPvxpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[2][3], b[2][3], axb[2][3]; + + + a[0][0] = 2.0; + a[0][1] = 2.0; + a[0][2] = 3.0; + + a[1][0] = 6.0; + a[1][1] = 0.0; + a[1][2] = 4.0; + + b[0][0] = 1.0; + b[0][1] = 3.0; + b[0][2] = 4.0; + + b[1][0] = 0.0; + b[1][1] = 2.0; + b[1][2] = 8.0; + + iauPvxpv(a, b, axb); + + vvd(axb[0][0], -1.0, 1e-12, "iauPvxpv", "p1", status); + vvd(axb[0][1], -5.0, 1e-12, "iauPvxpv", "p2", status); + vvd(axb[0][2], 4.0, 1e-12, "iauPvxpv", "p3", status); + + vvd(axb[1][0], -2.0, 1e-12, "iauPvxpv", "v1", status); + vvd(axb[1][1], -36.0, 1e-12, "iauPvxpv", "v2", status); + vvd(axb[1][2], 22.0, 1e-12, "iauPvxpv", "v3", status); + +} + +static void t_pxp(int *status) +/* +** - - - - - - +** t _ p x p +** - - - - - - +** +** Test iauPxp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauPxp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], b[3], axb[3]; + + + a[0] = 2.0; + a[1] = 2.0; + a[2] = 3.0; + + b[0] = 1.0; + b[1] = 3.0; + b[2] = 4.0; + + iauPxp(a, b, axb); + + vvd(axb[0], -1.0, 1e-12, "iauPxp", "1", status); + vvd(axb[1], -5.0, 1e-12, "iauPxp", "2", status); + vvd(axb[2], 4.0, 1e-12, "iauPxp", "3", status); + +} + +static void t_refco(int *status) +/* +** - - - - - - - - +** t _ r e f c o +** - - - - - - - - +** +** Test iauRefco function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRefco, vvd +** +** This revision: 2013 October 2 +*/ +{ + double phpa, tc, rh, wl, refa, refb; + + + phpa = 800.0; + tc = 10.0; + rh = 0.9; + wl = 0.4; + + iauRefco(phpa, tc, rh, wl, &refa, &refb); + + vvd(refa, 0.2264949956241415009e-3, 1e-15, + "iauRefco", "refa", status); + vvd(refb, -0.2598658261729343970e-6, 1e-18, + "iauRefco", "refb", status); + +} + +static void t_rm2v(int *status) +/* +** - - - - - - - +** t _ r m 2 v +** - - - - - - - +** +** Test iauRm2v function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRm2v, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], w[3]; + + + r[0][0] = 0.00; + r[0][1] = -0.80; + r[0][2] = -0.60; + + r[1][0] = 0.80; + r[1][1] = -0.36; + r[1][2] = 0.48; + + r[2][0] = 0.60; + r[2][1] = 0.48; + r[2][2] = -0.64; + + iauRm2v(r, w); + + vvd(w[0], 0.0, 1e-12, "iauRm2v", "1", status); + vvd(w[1], 1.413716694115406957, 1e-12, "iauRm2v", "2", status); + vvd(w[2], -1.884955592153875943, 1e-12, "iauRm2v", "3", status); + +} + +static void t_rv2m(int *status) +/* +** - - - - - - - +** t _ r v 2 m +** - - - - - - - +** +** Test iauRv2m function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRv2m, vvd +** +** This revision: 2013 August 7 +*/ +{ + double w[3], r[3][3]; + + + w[0] = 0.0; + w[1] = 1.41371669; + w[2] = -1.88495559; + + iauRv2m(w, r); + + vvd(r[0][0], -0.7071067782221119905, 1e-14, "iauRv2m", "11", status); + vvd(r[0][1], -0.5656854276809129651, 1e-14, "iauRv2m", "12", status); + vvd(r[0][2], -0.4242640700104211225, 1e-14, "iauRv2m", "13", status); + + vvd(r[1][0], 0.5656854276809129651, 1e-14, "iauRv2m", "21", status); + vvd(r[1][1], -0.0925483394532274246, 1e-14, "iauRv2m", "22", status); + vvd(r[1][2], -0.8194112531408833269, 1e-14, "iauRv2m", "23", status); + + vvd(r[2][0], 0.4242640700104211225, 1e-14, "iauRv2m", "31", status); + vvd(r[2][1], -0.8194112531408833269, 1e-14, "iauRv2m", "32", status); + vvd(r[2][2], 0.3854415612311154341, 1e-14, "iauRv2m", "33", status); + +} + +static void t_rx(int *status) +/* +** - - - - - +** t _ r x +** - - - - - +** +** Test iauRx function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRx, vvd +** +** This revision: 2013 August 7 +*/ +{ + double phi, r[3][3]; + + + phi = 0.3456789; + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + iauRx(phi, r); + + vvd(r[0][0], 2.0, 0.0, "iauRx", "11", status); + vvd(r[0][1], 3.0, 0.0, "iauRx", "12", status); + vvd(r[0][2], 2.0, 0.0, "iauRx", "13", status); + + vvd(r[1][0], 3.839043388235612460, 1e-12, "iauRx", "21", status); + vvd(r[1][1], 3.237033249594111899, 1e-12, "iauRx", "22", status); + vvd(r[1][2], 4.516714379005982719, 1e-12, "iauRx", "23", status); + + vvd(r[2][0], 1.806030415924501684, 1e-12, "iauRx", "31", status); + vvd(r[2][1], 3.085711545336372503, 1e-12, "iauRx", "32", status); + vvd(r[2][2], 3.687721683977873065, 1e-12, "iauRx", "33", status); + +} + +static void t_rxp(int *status) +/* +** - - - - - - +** t _ r x p +** - - - - - - +** +** Test iauRxp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRxp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], p[3], rp[3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + p[0] = 0.2; + p[1] = 1.5; + p[2] = 0.1; + + iauRxp(r, p, rp); + + vvd(rp[0], 5.1, 1e-12, "iauRxp", "1", status); + vvd(rp[1], 3.9, 1e-12, "iauRxp", "2", status); + vvd(rp[2], 7.1, 1e-12, "iauRxp", "3", status); + +} + +static void t_rxpv(int *status) +/* +** - - - - - - - +** t _ r x p v +** - - - - - - - +** +** Test iauRxpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRxpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], pv[2][3], rpv[2][3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + pv[0][0] = 0.2; + pv[0][1] = 1.5; + pv[0][2] = 0.1; + + pv[1][0] = 1.5; + pv[1][1] = 0.2; + pv[1][2] = 0.1; + + iauRxpv(r, pv, rpv); + + vvd(rpv[0][0], 5.1, 1e-12, "iauRxpv", "11", status); + vvd(rpv[1][0], 3.8, 1e-12, "iauRxpv", "12", status); + + vvd(rpv[0][1], 3.9, 1e-12, "iauRxpv", "21", status); + vvd(rpv[1][1], 5.2, 1e-12, "iauRxpv", "22", status); + + vvd(rpv[0][2], 7.1, 1e-12, "iauRxpv", "31", status); + vvd(rpv[1][2], 5.8, 1e-12, "iauRxpv", "32", status); + +} + +static void t_rxr(int *status) +/* +** - - - - - - +** t _ r x r +** - - - - - - +** +** Test iauRxr function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRxr, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3][3], b[3][3], atb[3][3]; + + + a[0][0] = 2.0; + a[0][1] = 3.0; + a[0][2] = 2.0; + + a[1][0] = 3.0; + a[1][1] = 2.0; + a[1][2] = 3.0; + + a[2][0] = 3.0; + a[2][1] = 4.0; + a[2][2] = 5.0; + + b[0][0] = 1.0; + b[0][1] = 2.0; + b[0][2] = 2.0; + + b[1][0] = 4.0; + b[1][1] = 1.0; + b[1][2] = 1.0; + + b[2][0] = 3.0; + b[2][1] = 0.0; + b[2][2] = 1.0; + + iauRxr(a, b, atb); + + vvd(atb[0][0], 20.0, 1e-12, "iauRxr", "11", status); + vvd(atb[0][1], 7.0, 1e-12, "iauRxr", "12", status); + vvd(atb[0][2], 9.0, 1e-12, "iauRxr", "13", status); + + vvd(atb[1][0], 20.0, 1e-12, "iauRxr", "21", status); + vvd(atb[1][1], 8.0, 1e-12, "iauRxr", "22", status); + vvd(atb[1][2], 11.0, 1e-12, "iauRxr", "23", status); + + vvd(atb[2][0], 34.0, 1e-12, "iauRxr", "31", status); + vvd(atb[2][1], 10.0, 1e-12, "iauRxr", "32", status); + vvd(atb[2][2], 15.0, 1e-12, "iauRxr", "33", status); + +} + +static void t_ry(int *status) +/* +** - - - - - +** t _ r y +** - - - - - +** +** Test iauRy function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRy, vvd +** +** This revision: 2013 August 7 +*/ +{ + double theta, r[3][3]; + + + theta = 0.3456789; + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + iauRy(theta, r); + + vvd(r[0][0], 0.8651847818978159930, 1e-12, "iauRy", "11", status); + vvd(r[0][1], 1.467194920539316554, 1e-12, "iauRy", "12", status); + vvd(r[0][2], 0.1875137911274457342, 1e-12, "iauRy", "13", status); + + vvd(r[1][0], 3, 1e-12, "iauRy", "21", status); + vvd(r[1][1], 2, 1e-12, "iauRy", "22", status); + vvd(r[1][2], 3, 1e-12, "iauRy", "23", status); + + vvd(r[2][0], 3.500207892850427330, 1e-12, "iauRy", "31", status); + vvd(r[2][1], 4.779889022262298150, 1e-12, "iauRy", "32", status); + vvd(r[2][2], 5.381899160903798712, 1e-12, "iauRy", "33", status); + +} + +static void t_rz(int *status) +/* +** - - - - - +** t _ r z +** - - - - - +** +** Test iauRz function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauRz, vvd +** +** This revision: 2013 August 7 +*/ +{ + double psi, r[3][3]; + + + psi = 0.3456789; + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + iauRz(psi, r); + + vvd(r[0][0], 2.898197754208926769, 1e-12, "iauRz", "11", status); + vvd(r[0][1], 3.500207892850427330, 1e-12, "iauRz", "12", status); + vvd(r[0][2], 2.898197754208926769, 1e-12, "iauRz", "13", status); + + vvd(r[1][0], 2.144865911309686813, 1e-12, "iauRz", "21", status); + vvd(r[1][1], 0.865184781897815993, 1e-12, "iauRz", "22", status); + vvd(r[1][2], 2.144865911309686813, 1e-12, "iauRz", "23", status); + + vvd(r[2][0], 3.0, 1e-12, "iauRz", "31", status); + vvd(r[2][1], 4.0, 1e-12, "iauRz", "32", status); + vvd(r[2][2], 5.0, 1e-12, "iauRz", "33", status); + +} + +static void t_s00a(int *status) +/* +** - - - - - - - +** t _ s 0 0 a +** - - - - - - - +** +** Test iauS00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double s; + + + s = iauS00a(2400000.5, 52541.0); + + vvd(s, -0.1340684448919163584e-7, 1e-18, "iauS00a", "", status); + +} + +static void t_s00b(int *status) +/* +** - - - - - - - +** t _ s 0 0 b +** - - - - - - - +** +** Test iauS00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double s; + + + s = iauS00b(2400000.5, 52541.0); + + vvd(s, -0.1340695782951026584e-7, 1e-18, "iauS00b", "", status); + +} + +static void t_s00(int *status) +/* +** - - - - - - +** t _ s 0 0 +** - - - - - - +** +** Test iauS00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS00, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, s; + + + x = 0.5791308486706011000e-3; + y = 0.4020579816732961219e-4; + + s = iauS00(2400000.5, 53736.0, x, y); + + vvd(s, -0.1220036263270905693e-7, 1e-18, "iauS00", "", status); + +} + +static void t_s06a(int *status) +/* +** - - - - - - - +** t _ s 0 6 a +** - - - - - - - +** +** Test iauS06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double s; + + + s = iauS06a(2400000.5, 52541.0); + + vvd(s, -0.1340680437291812383e-7, 1e-18, "iauS06a", "", status); + +} + +static void t_s06(int *status) +/* +** - - - - - - +** t _ s 0 6 +** - - - - - - +** +** Test iauS06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, s; + + + x = 0.5791308486706011000e-3; + y = 0.4020579816732961219e-4; + + s = iauS06(2400000.5, 53736.0, x, y); + + vvd(s, -0.1220032213076463117e-7, 1e-18, "iauS06", "", status); + +} + +static void t_s2c(int *status) +/* +** - - - - - - +** t _ s 2 c +** - - - - - - +** +** Test iauS2c function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS2c, vvd +** +** This revision: 2013 August 7 +*/ +{ + double c[3]; + + + iauS2c(3.0123, -0.999, c); + + vvd(c[0], -0.5366267667260523906, 1e-12, "iauS2c", "1", status); + vvd(c[1], 0.0697711109765145365, 1e-12, "iauS2c", "2", status); + vvd(c[2], -0.8409302618566214041, 1e-12, "iauS2c", "3", status); + +} + +static void t_s2p(int *status) +/* +** - - - - - - +** t _ s 2 p +** - - - - - - +** +** Test iauS2p function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS2p, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3]; + + + iauS2p(-3.21, 0.123, 0.456, p); + + vvd(p[0], -0.4514964673880165228, 1e-12, "iauS2p", "x", status); + vvd(p[1], 0.0309339427734258688, 1e-12, "iauS2p", "y", status); + vvd(p[2], 0.0559466810510877933, 1e-12, "iauS2p", "z", status); + +} + +static void t_s2pv(int *status) +/* +** - - - - - - - +** t _ s 2 p v +** - - - - - - - +** +** Test iauS2pv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS2pv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double pv[2][3]; + + + iauS2pv(-3.21, 0.123, 0.456, -7.8e-6, 9.01e-6, -1.23e-5, pv); + + vvd(pv[0][0], -0.4514964673880165228, 1e-12, "iauS2pv", "x", status); + vvd(pv[0][1], 0.0309339427734258688, 1e-12, "iauS2pv", "y", status); + vvd(pv[0][2], 0.0559466810510877933, 1e-12, "iauS2pv", "z", status); + + vvd(pv[1][0], 0.1292270850663260170e-4, 1e-16, + "iauS2pv", "vx", status); + vvd(pv[1][1], 0.2652814182060691422e-5, 1e-16, + "iauS2pv", "vy", status); + vvd(pv[1][2], 0.2568431853930292259e-5, 1e-16, + "iauS2pv", "vz", status); + +} + +static void t_s2xpv(int *status) +/* +** - - - - - - - - +** t _ s 2 x p v +** - - - - - - - - +** +** Test iauS2xpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauS2xpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double s1, s2, pv[2][3], spv[2][3]; + + + s1 = 2.0; + s2 = 3.0; + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = 0.5; + pv[1][1] = 2.3; + pv[1][2] = -0.4; + + iauS2xpv(s1, s2, pv, spv); + + vvd(spv[0][0], 0.6, 1e-12, "iauS2xpv", "p1", status); + vvd(spv[0][1], 2.4, 1e-12, "iauS2xpv", "p2", status); + vvd(spv[0][2], -5.0, 1e-12, "iauS2xpv", "p3", status); + + vvd(spv[1][0], 1.5, 1e-12, "iauS2xpv", "v1", status); + vvd(spv[1][1], 6.9, 1e-12, "iauS2xpv", "v2", status); + vvd(spv[1][2], -1.2, 1e-12, "iauS2xpv", "v3", status); + +} + +static void t_sepp(int *status) +/* +** - - - - - - - +** t _ s e p p +** - - - - - - - +** +** Test iauSepp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauSepp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double a[3], b[3], s; + + + a[0] = 1.0; + a[1] = 0.1; + a[2] = 0.2; + + b[0] = -3.0; + b[1] = 1e-3; + b[2] = 0.2; + + s = iauSepp(a, b); + + vvd(s, 2.860391919024660768, 1e-12, "iauSepp", "", status); + +} + +static void t_seps(int *status) +/* +** - - - - - - - +** t _ s e p s +** - - - - - - - +** +** Test iauSeps function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauSeps, vvd +** +** This revision: 2013 August 7 +*/ +{ + double al, ap, bl, bp, s; + + + al = 1.0; + ap = 0.1; + + bl = 0.2; + bp = -3.0; + + s = iauSeps(al, ap, bl, bp); + + vvd(s, 2.346722016996998842, 1e-14, "iauSeps", "", status); + +} + +static void t_sp00(int *status) +/* +** - - - - - - - +** t _ s p 0 0 +** - - - - - - - +** +** Test iauSp00 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauSp00, vvd +** +** This revision: 2013 August 7 +*/ +{ + vvd(iauSp00(2400000.5, 52541.0), + -0.6216698469981019309e-11, 1e-12, "iauSp00", "", status); + +} + +static void t_starpm(int *status) +/* +** - - - - - - - - - +** t _ s t a r p m +** - - - - - - - - - +** +** Test iauStarpm function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauStarpm, vvd, viv +** +** This revision: 2017 March 15 +*/ +{ + double ra1, dec1, pmr1, pmd1, px1, rv1; + double ra2, dec2, pmr2, pmd2, px2, rv2; + int j; + + + ra1 = 0.01686756; + dec1 = -1.093989828; + pmr1 = -1.78323516e-5; + pmd1 = 2.336024047e-6; + px1 = 0.74723; + rv1 = -21.6; + + j = iauStarpm(ra1, dec1, pmr1, pmd1, px1, rv1, + 2400000.5, 50083.0, 2400000.5, 53736.0, + &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); + + vvd(ra2, 0.01668919069414256149, 1e-13, + "iauStarpm", "ra", status); + vvd(dec2, -1.093966454217127897, 1e-13, + "iauStarpm", "dec", status); + vvd(pmr2, -0.1783662682153176524e-4, 1e-17, + "iauStarpm", "pmr", status); + vvd(pmd2, 0.2338092915983989595e-5, 1e-17, + "iauStarpm", "pmd", status); + vvd(px2, 0.7473533835317719243, 1e-13, + "iauStarpm", "px", status); + vvd(rv2, -21.59905170476417175, 1e-11, + "iauStarpm", "rv", status); + + viv(j, 0, "iauStarpm", "j", status); + +} + +static void t_starpv(int *status) +/* +** - - - - - - - - - +** t _ s t a r p v +** - - - - - - - - - +** +** Test iauStarpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauStarpv, vvd, viv +** +** This revision: 2017 March 15 +*/ +{ + double ra, dec, pmr, pmd, px, rv, pv[2][3]; + int j; + + + ra = 0.01686756; + dec = -1.093989828; + pmr = -1.78323516e-5; + pmd = 2.336024047e-6; + px = 0.74723; + rv = -21.6; + + j = iauStarpv(ra, dec, pmr, pmd, px, rv, pv); + + vvd(pv[0][0], 126668.5912743160601, 1e-10, + "iauStarpv", "11", status); + vvd(pv[0][1], 2136.792716839935195, 1e-12, + "iauStarpv", "12", status); + vvd(pv[0][2], -245251.2339876830091, 1e-10, + "iauStarpv", "13", status); + + vvd(pv[1][0], -0.4051854008955659551e-2, 1e-13, + "iauStarpv", "21", status); + vvd(pv[1][1], -0.6253919754414777970e-2, 1e-15, + "iauStarpv", "22", status); + vvd(pv[1][2], 0.1189353714588109341e-1, 1e-13, + "iauStarpv", "23", status); + + viv(j, 0, "iauStarpv", "j", status); + +} + +static void t_sxp(int *status) +/* +** - - - - - - +** t _ s x p +** - - - - - - +** +** Test iauSxp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauSxp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double s, p[3], sp[3]; + + + s = 2.0; + + p[0] = 0.3; + p[1] = 1.2; + p[2] = -2.5; + + iauSxp(s, p, sp); + + vvd(sp[0], 0.6, 0.0, "iauSxp", "1", status); + vvd(sp[1], 2.4, 0.0, "iauSxp", "2", status); + vvd(sp[2], -5.0, 0.0, "iauSxp", "3", status); + +} + + +static void t_sxpv(int *status) +/* +** - - - - - - - +** t _ s x p v +** - - - - - - - +** +** Test iauSxpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauSxpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double s, pv[2][3], spv[2][3]; + + + s = 2.0; + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = 0.5; + pv[1][1] = 3.2; + pv[1][2] = -0.7; + + iauSxpv(s, pv, spv); + + vvd(spv[0][0], 0.6, 0.0, "iauSxpv", "p1", status); + vvd(spv[0][1], 2.4, 0.0, "iauSxpv", "p2", status); + vvd(spv[0][2], -5.0, 0.0, "iauSxpv", "p3", status); + + vvd(spv[1][0], 1.0, 0.0, "iauSxpv", "v1", status); + vvd(spv[1][1], 6.4, 0.0, "iauSxpv", "v2", status); + vvd(spv[1][2], -1.4, 0.0, "iauSxpv", "v3", status); + +} + +static void t_taitt(int *status) +/* +** - - - - - - - - +** t _ t a i t t +** - - - - - - - - +** +** Test iauTaitt function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTaitt, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double t1, t2; + int j; + + + j = iauTaitt(2453750.5, 0.892482639, &t1, &t2); + + vvd(t1, 2453750.5, 1e-6, "iauTaitt", "t1", status); + vvd(t2, 0.892855139, 1e-12, "iauTaitt", "t2", status); + viv(j, 0, "iauTaitt", "j", status); + +} + +static void t_taiut1(int *status) +/* +** - - - - - - - - - +** t _ t a i u t 1 +** - - - - - - - - - +** +** Test iauTaiut1 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTaiut1, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double u1, u2; + int j; + + + j = iauTaiut1(2453750.5, 0.892482639, -32.6659, &u1, &u2); + + vvd(u1, 2453750.5, 1e-6, "iauTaiut1", "u1", status); + vvd(u2, 0.8921045614537037037, 1e-12, "iauTaiut1", "u2", status); + viv(j, 0, "iauTaiut1", "j", status); + +} + +static void t_taiutc(int *status) +/* +** - - - - - - - - - +** t _ t a i u t c +** - - - - - - - - - +** +** Test iauTaiutc function. +** +** Returned: +** status LOGICAL TRUE = success, FALSE = fail +** +** Called: iauTaiutc, vvd, viv +** +** This revision: 2013 October 3 +*/ +{ + double u1, u2; + int j; + + + j = iauTaiutc(2453750.5, 0.892482639, &u1, &u2); + + vvd(u1, 2453750.5, 1e-6, "iauTaiutc", "u1", status); + vvd(u2, 0.8921006945555555556, 1e-12, "iauTaiutc", "u2", status); + viv(j, 0, "iauTaiutc", "j", status); + +} + +static void t_tcbtdb(int *status) +/* +** - - - - - - - - - +** t _ t c b t d b +** - - - - - - - - - +** +** Test iauTcbtdb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTcbtdb, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double b1, b2; + int j; + + + j = iauTcbtdb(2453750.5, 0.893019599, &b1, &b2); + + vvd(b1, 2453750.5, 1e-6, "iauTcbtdb", "b1", status); + vvd(b2, 0.8928551362746343397, 1e-12, "iauTcbtdb", "b2", status); + viv(j, 0, "iauTcbtdb", "j", status); + +} + +static void t_tcgtt(int *status) +/* +** - - - - - - - - +** t _ t c g t t +** - - - - - - - - +** +** Test iauTcgtt function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTcgtt, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double t1, t2; + int j; + + + j = iauTcgtt(2453750.5, 0.892862531, &t1, &t2); + + vvd(t1, 2453750.5, 1e-6, "iauTcgtt", "t1", status); + vvd(t2, 0.8928551387488816828, 1e-12, "iauTcgtt", "t2", status); + viv(j, 0, "iauTcgtt", "j", status); + +} + +static void t_tdbtcb(int *status) +/* +** - - - - - - - - - +** t _ t d b t c b +** - - - - - - - - - +** +** Test iauTdbtcb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTdbtcb, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double b1, b2; + int j; + + + j = iauTdbtcb(2453750.5, 0.892855137, &b1, &b2); + + vvd( b1, 2453750.5, 1e-6, "iauTdbtcb", "b1", status); + vvd( b2, 0.8930195997253656716, 1e-12, "iauTdbtcb", "b2", status); + viv(j, 0, "iauTdbtcb", "j", status); + +} + +static void t_tdbtt(int *status) +/* +** - - - - - - - - +** t _ t d b t t +** - - - - - - - - +** +** Test iauTdbtt function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTdbtt, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double t1, t2; + int j; + + + j = iauTdbtt(2453750.5, 0.892855137, -0.000201, &t1, &t2); + + vvd(t1, 2453750.5, 1e-6, "iauTdbtt", "t1", status); + vvd(t2, 0.8928551393263888889, 1e-12, "iauTdbtt", "t2", status); + viv(j, 0, "iauTdbtt", "j", status); + +} + +static void t_tf2a(int *status) +/* +** - - - - - - - +** t _ t f 2 a +** - - - - - - - +** +** Test iauTf2a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTf2a, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double a; + int j; + + + j = iauTf2a('+', 4, 58, 20.2, &a); + + vvd(a, 1.301739278189537429, 1e-12, "iauTf2a", "a", status); + viv(j, 0, "iauTf2a", "j", status); + +} + +static void t_tf2d(int *status) +/* +** - - - - - - - +** t _ t f 2 d +** - - - - - - - +** +** Test iauTf2d function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTf2d, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double d; + int j; + + + j = iauTf2d(' ', 23, 55, 10.9, &d); + + vvd(d, 0.9966539351851851852, 1e-12, "iauTf2d", "d", status); + viv(j, 0, "iauTf2d", "j", status); + +} + +static void t_tpors(int *status) +/* +** - - - - - - - - +** t _ t p o r s +** - - - - - - - - +** +** Test iauTpors function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTpors, vvd, viv +** +** This revision: 2017 October 21 +*/ +{ + double xi, eta, ra, dec, az1, bz1, az2, bz2; + int n; + + + xi = -0.03; + eta = 0.07; + ra = 1.3; + dec = 1.5; + + n = iauTpors(xi, eta, ra, dec, &az1, &bz1, &az2, &bz2); + + vvd(az1, 1.736621577783208748, 1e-13, "iauTpors", "az1", status); + vvd(bz1, 1.436736561844090323, 1e-13, "iauTpors", "bz1", status); + + vvd(az2, 4.004971075806584490, 1e-13, "iauTpors", "az2", status); + vvd(bz2, 1.565084088476417917, 1e-13, "iauTpors", "bz2", status); + + viv(n, 2, "iauTpors", "n", status); + +} + +static void t_tporv(int *status) +/* +** - - - - - - - - +** t _ t p o r v +** - - - - - - - - +** +** Test iauTporv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTporv, iauS2c, vvd, viv +** +** This revision: 2017 October 21 +*/ +{ + double xi, eta, ra, dec, v[3], vz1[3], vz2[3]; + int n; + + + xi = -0.03; + eta = 0.07; + ra = 1.3; + dec = 1.5; + iauS2c(ra, dec, v); + + n = iauTporv(xi, eta, v, vz1, vz2); + + vvd(vz1[0], -0.02206252822366888610, 1e-15, + "iauTporv", "x1", status); + vvd(vz1[1], 0.1318251060359645016, 1e-14, + "iauTporv", "y1", status); + vvd(vz1[2], 0.9910274397144543895, 1e-14, + "iauTporv", "z1", status); + + vvd(vz2[0], -0.003712211763801968173, 1e-16, + "iauTporv", "x2", status); + vvd(vz2[1], -0.004341519956299836813, 1e-16, + "iauTporv", "y2", status); + vvd(vz2[2], 0.9999836852110587012, 1e-14, + "iauTporv", "z2", status); + + viv(n, 2, "iauTporv", "n", status); + +} + +static void t_tpsts(int *status) +/* +** - - - - - - - - +** t _ t p s t s +** - - - - - - - - +** +** Test iauTpsts function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTpsts, vvd +** +** This revision: 2017 October 21 +*/ +{ + double xi, eta, raz, decz, ra, dec; + + + xi = -0.03; + eta = 0.07; + raz = 2.3; + decz = 1.5; + + iauTpsts(xi, eta, raz, decz, &ra, &dec); + + vvd(ra, 0.7596127167359629775, 1e-14, "iauTpsts", "ra", status); + vvd(dec, 1.540864645109263028, 1e-13, "iauTpsts", "dec", status); + +} + +static void t_tpstv(int *status) +/* +** - - - - - - - - +** t _ t p s t v +** - - - - - - - - +** +** Test iauTpstv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTpstv, iauS2c, vvd +** +** This revision: 2017 October 21 +*/ +{ + double xi, eta, raz, decz, vz[3], v[3]; + + + xi = -0.03; + eta = 0.07; + raz = 2.3; + decz = 1.5; + iauS2c(raz, decz, vz); + + iauTpstv(xi, eta, vz, v); + + vvd(v[0], 0.02170030454907376677, 1e-15, "iauTpstv", "x", status); + vvd(v[1], 0.02060909590535367447, 1e-15, "iauTpstv", "y", status); + vvd(v[2], 0.9995520806583523804, 1e-14, "iauTpstv", "z", status); + +} + +static void t_tpxes(int *status) +/* +** - - - - - - - - +** t _ t p x e s +** - - - - - - - - +** +** Test iauTpxes function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTpxes, vvd, viv +** +** This revision: 2017 October 21 +*/ +{ + double ra, dec, raz, decz, xi, eta; + int j; + + + ra = 1.3; + dec = 1.55; + raz = 2.3; + decz = 1.5; + + j = iauTpxes(ra, dec, raz, decz, &xi, &eta); + + vvd(xi, -0.01753200983236980595, 1e-15, "iauTpxes", "xi", status); + vvd(eta, 0.05962940005778712891, 1e-15, "iauTpxes", "eta", status); + + viv(j, 0, "iauTpxes", "j", status); + +} + +static void t_tpxev(int *status) +/* +** - - - - - - - - +** t _ t p x e v +** - - - - - - - - +** +** Test iauTpxev function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTpxev, iauS2c, vvd +** +** This revision: 2017 October 21 +*/ +{ + double ra, dec, raz, decz, v[3], vz[3], xi, eta; + int j; + + + ra = 1.3; + dec = 1.55; + raz = 2.3; + decz = 1.5; + iauS2c(ra, dec, v); + iauS2c(raz, decz, vz); + + j = iauTpxev(v, vz, &xi, &eta); + + vvd(xi, -0.01753200983236980595, 1e-15, "iauTpxev", "xi", status); + vvd(eta, 0.05962940005778712891, 1e-15, "iauTpxev", "eta", status); + + viv(j, 0, "iauTpxev", "j", status); + +} + +static void t_tr(int *status) +/* +** - - - - - +** t _ t r +** - - - - - +** +** Test iauTr function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTr, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], rt[3][3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + iauTr(r, rt); + + vvd(rt[0][0], 2.0, 0.0, "iauTr", "11", status); + vvd(rt[0][1], 3.0, 0.0, "iauTr", "12", status); + vvd(rt[0][2], 3.0, 0.0, "iauTr", "13", status); + + vvd(rt[1][0], 3.0, 0.0, "iauTr", "21", status); + vvd(rt[1][1], 2.0, 0.0, "iauTr", "22", status); + vvd(rt[1][2], 4.0, 0.0, "iauTr", "23", status); + + vvd(rt[2][0], 2.0, 0.0, "iauTr", "31", status); + vvd(rt[2][1], 3.0, 0.0, "iauTr", "32", status); + vvd(rt[2][2], 5.0, 0.0, "iauTr", "33", status); + +} + +static void t_trxp(int *status) +/* +** - - - - - - - +** t _ t r x p +** - - - - - - - +** +** Test iauTrxp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTrxp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], p[3], trp[3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + p[0] = 0.2; + p[1] = 1.5; + p[2] = 0.1; + + iauTrxp(r, p, trp); + + vvd(trp[0], 5.2, 1e-12, "iauTrxp", "1", status); + vvd(trp[1], 4.0, 1e-12, "iauTrxp", "2", status); + vvd(trp[2], 5.4, 1e-12, "iauTrxp", "3", status); + +} + +static void t_trxpv(int *status) +/* +** - - - - - - - - +** t _ t r x p v +** - - - - - - - - +** +** Test iauTrxpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTrxpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3], pv[2][3], trpv[2][3]; + + + r[0][0] = 2.0; + r[0][1] = 3.0; + r[0][2] = 2.0; + + r[1][0] = 3.0; + r[1][1] = 2.0; + r[1][2] = 3.0; + + r[2][0] = 3.0; + r[2][1] = 4.0; + r[2][2] = 5.0; + + pv[0][0] = 0.2; + pv[0][1] = 1.5; + pv[0][2] = 0.1; + + pv[1][0] = 1.5; + pv[1][1] = 0.2; + pv[1][2] = 0.1; + + iauTrxpv(r, pv, trpv); + + vvd(trpv[0][0], 5.2, 1e-12, "iauTrxpv", "p1", status); + vvd(trpv[0][1], 4.0, 1e-12, "iauTrxpv", "p1", status); + vvd(trpv[0][2], 5.4, 1e-12, "iauTrxpv", "p1", status); + + vvd(trpv[1][0], 3.9, 1e-12, "iauTrxpv", "v1", status); + vvd(trpv[1][1], 5.3, 1e-12, "iauTrxpv", "v2", status); + vvd(trpv[1][2], 4.1, 1e-12, "iauTrxpv", "v3", status); + +} + +static void t_tttai(int *status) +/* +** - - - - - - - - +** t _ t t t a i +** - - - - - - - - +** +** Test iauTttai function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTttai, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double a1, a2; + int j; + + + j = iauTttai(2453750.5, 0.892482639, &a1, &a2); + + vvd(a1, 2453750.5, 1e-6, "iauTttai", "a1", status); + vvd(a2, 0.892110139, 1e-12, "iauTttai", "a2", status); + viv(j, 0, "iauTttai", "j", status); + +} + +static void t_tttcg(int *status) +/* +** - - - - - - - - +** t _ t t t c g +** - - - - - - - - +** +** Test iauTttcg function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTttcg, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double g1, g2; + int j; + + + j = iauTttcg(2453750.5, 0.892482639, &g1, &g2); + + vvd( g1, 2453750.5, 1e-6, "iauTttcg", "g1", status); + vvd( g2, 0.8924900312508587113, 1e-12, "iauTttcg", "g2", status); + viv(j, 0, "iauTttcg", "j", status); + +} + +static void t_tttdb(int *status) +/* +** - - - - - - - - +** t _ t t t d b +** - - - - - - - - +** +** Test iauTttdb function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTttdb, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double b1, b2; + int j; + + + j = iauTttdb(2453750.5, 0.892855139, -0.000201, &b1, &b2); + + vvd(b1, 2453750.5, 1e-6, "iauTttdb", "b1", status); + vvd(b2, 0.8928551366736111111, 1e-12, "iauTttdb", "b2", status); + viv(j, 0, "iauTttdb", "j", status); + +} + +static void t_ttut1(int *status) +/* +** - - - - - - - - +** t _ t t u t 1 +** - - - - - - - - +** +** Test iauTtut1 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauTtut1, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double u1, u2; + int j; + + + j = iauTtut1(2453750.5, 0.892855139, 64.8499, &u1, &u2); + + vvd(u1, 2453750.5, 1e-6, "iauTtut1", "u1", status); + vvd(u2, 0.8921045614537037037, 1e-12, "iauTtut1", "u2", status); + viv(j, 0, "iauTtut1", "j", status); + +} + +static void t_ut1tai(int *status) +/* +** - - - - - - - - - +** t _ u t 1 t a i +** - - - - - - - - - +** +** Test iauUt1tai function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauUt1tai, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double a1, a2; + int j; + + + j = iauUt1tai(2453750.5, 0.892104561, -32.6659, &a1, &a2); + + vvd(a1, 2453750.5, 1e-6, "iauUt1tai", "a1", status); + vvd(a2, 0.8924826385462962963, 1e-12, "iauUt1tai", "a2", status); + viv(j, 0, "iauUt1tai", "j", status); + +} + +static void t_ut1tt(int *status) +/* +** - - - - - - - - +** t _ u t 1 t t +** - - - - - - - - +** +** Test iauUt1tt function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauUt1tt, vvd, viv +** +** This revision: 2013 October 3 +*/ +{ + double t1, t2; + int j; + + + j = iauUt1tt(2453750.5, 0.892104561, 64.8499, &t1, &t2); + + vvd(t1, 2453750.5, 1e-6, "iauUt1tt", "t1", status); + vvd(t2, 0.8928551385462962963, 1e-12, "iauUt1tt", "t2", status); + viv(j, 0, "iauUt1tt", "j", status); + +} + +static void t_ut1utc(int *status) +/* +** - - - - - - - - - +** t _ u t 1 u t c +** - - - - - - - - - +** +** Test iauUt1utc function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauUt1utc, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double u1, u2; + int j; + + + j = iauUt1utc(2453750.5, 0.892104561, 0.3341, &u1, &u2); + + vvd(u1, 2453750.5, 1e-6, "iauUt1utc", "u1", status); + vvd(u2, 0.8921006941018518519, 1e-12, "iauUt1utc", "u2", status); + viv(j, 0, "iauUt1utc", "j", status); + +} + +static void t_utctai(int *status) +/* +** - - - - - - - - - +** t _ u t c t a i +** - - - - - - - - - +** +** Test iauUtctai function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauUtctai, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double u1, u2; + int j; + + + j = iauUtctai(2453750.5, 0.892100694, &u1, &u2); + + vvd(u1, 2453750.5, 1e-6, "iauUtctai", "u1", status); + vvd(u2, 0.8924826384444444444, 1e-12, "iauUtctai", "u2", status); + viv(j, 0, "iauUtctai", "j", status); + +} + +static void t_utcut1(int *status) +/* +** - - - - - - - - - +** t _ u t c u t 1 +** - - - - - - - - - +** +** Test iauUtcut1 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauUtcut1, vvd, viv +** +** This revision: 2013 August 7 +*/ +{ + double u1, u2; + int j; + + + j = iauUtcut1(2453750.5, 0.892100694, 0.3341, &u1, &u2); + + vvd(u1, 2453750.5, 1e-6, "iauUtcut1", "u1", status); + vvd(u2, 0.8921045608981481481, 1e-12, "iauUtcut1", "u2", status); + viv(j, 0, "iauUtcut1", "j", status); + +} + +static void t_xy06(int *status) +/* +** - - - - - - - +** t _ x y 0 6 +** - - - - - - - +** +** Test iauXy06 function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauXy06, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y; + + + iauXy06(2400000.5, 53736.0, &x, &y); + + vvd(x, 0.5791308486706010975e-3, 1e-15, "iauXy06", "x", status); + vvd(y, 0.4020579816732958141e-4, 1e-16, "iauXy06", "y", status); + +} + +static void t_xys00a(int *status) +/* +** - - - - - - - - - +** t _ x y s 0 0 a +** - - - - - - - - - +** +** Test iauXys00a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauXys00a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, s; + + + iauXys00a(2400000.5, 53736.0, &x, &y, &s); + + vvd(x, 0.5791308472168152904e-3, 1e-14, "iauXys00a", "x", status); + vvd(y, 0.4020595661591500259e-4, 1e-15, "iauXys00a", "y", status); + vvd(s, -0.1220040848471549623e-7, 1e-18, "iauXys00a", "s", status); + +} + +static void t_xys00b(int *status) +/* +** - - - - - - - - - +** t _ x y s 0 0 b +** - - - - - - - - - +** +** Test iauXys00b function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauXys00b, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, s; + + + iauXys00b(2400000.5, 53736.0, &x, &y, &s); + + vvd(x, 0.5791301929950208873e-3, 1e-14, "iauXys00b", "x", status); + vvd(y, 0.4020553681373720832e-4, 1e-15, "iauXys00b", "y", status); + vvd(s, -0.1220027377285083189e-7, 1e-18, "iauXys00b", "s", status); + +} + +static void t_xys06a(int *status) +/* +** - - - - - - - - - +** t _ x y s 0 6 a +** - - - - - - - - - +** +** Test iauXys06a function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauXys06a, vvd +** +** This revision: 2013 August 7 +*/ +{ + double x, y, s; + + + iauXys06a(2400000.5, 53736.0, &x, &y, &s); + + vvd(x, 0.5791308482835292617e-3, 1e-14, "iauXys06a", "x", status); + vvd(y, 0.4020580099454020310e-4, 1e-15, "iauXys06a", "y", status); + vvd(s, -0.1220032294164579896e-7, 1e-18, "iauXys06a", "s", status); + +} + +static void t_zp(int *status) +/* +** - - - - - +** t _ z p +** - - - - - +** +** Test iauZp function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauZp, vvd +** +** This revision: 2013 August 7 +*/ +{ + double p[3]; + + + p[0] = 0.3; + p[1] = 1.2; + p[2] = -2.5; + + iauZp(p); + + vvd(p[0], 0.0, 0.0, "iauZp", "1", status); + vvd(p[1], 0.0, 0.0, "iauZp", "2", status); + vvd(p[2], 0.0, 0.0, "iauZp", "3", status); + +} + +static void t_zpv(int *status) +/* +** - - - - - - +** t _ z p v +** - - - - - - +** +** Test iauZpv function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauZpv, vvd +** +** This revision: 2013 August 7 +*/ +{ + double pv[2][3]; + + + pv[0][0] = 0.3; + pv[0][1] = 1.2; + pv[0][2] = -2.5; + + pv[1][0] = -0.5; + pv[1][1] = 3.1; + pv[1][2] = 0.9; + + iauZpv(pv); + + vvd(pv[0][0], 0.0, 0.0, "iauZpv", "p1", status); + vvd(pv[0][1], 0.0, 0.0, "iauZpv", "p2", status); + vvd(pv[0][2], 0.0, 0.0, "iauZpv", "p3", status); + + vvd(pv[1][0], 0.0, 0.0, "iauZpv", "v1", status); + vvd(pv[1][1], 0.0, 0.0, "iauZpv", "v2", status); + vvd(pv[1][2], 0.0, 0.0, "iauZpv", "v3", status); + +} + +static void t_zr(int *status) +/* +** - - - - - +** t _ z r +** - - - - - +** +** Test iauZr function. +** +** Returned: +** status int FALSE = success, TRUE = fail +** +** Called: iauZr, vvd +** +** This revision: 2013 August 7 +*/ +{ + double r[3][3]; + + + r[0][0] = 2.0; + r[1][0] = 3.0; + r[2][0] = 2.0; + + r[0][1] = 3.0; + r[1][1] = 2.0; + r[2][1] = 3.0; + + r[0][2] = 3.0; + r[1][2] = 4.0; + r[2][2] = 5.0; + + iauZr(r); + + vvd(r[0][0], 0.0, 0.0, "iauZr", "00", status); + vvd(r[1][0], 0.0, 0.0, "iauZr", "01", status); + vvd(r[2][0], 0.0, 0.0, "iauZr", "02", status); + + vvd(r[0][1], 0.0, 0.0, "iauZr", "10", status); + vvd(r[1][1], 0.0, 0.0, "iauZr", "11", status); + vvd(r[2][1], 0.0, 0.0, "iauZr", "12", status); + + vvd(r[0][2], 0.0, 0.0, "iauZr", "20", status); + vvd(r[1][2], 0.0, 0.0, "iauZr", "21", status); + vvd(r[2][2], 0.0, 0.0, "iauZr", "22", status); + +} + +int main(int argc, char *argv[]) +/* +** - - - - - +** m a i n +** - - - - - +** +** This revision: 2021 April 18 +*/ +{ + int status; + + +/* If any command-line argument, switch to verbose reporting. */ + if (argc > 1) { + verbose = 1; + argv[0][0] += 0; /* to avoid compiler warnings */ + } + +/* Preset the &status to FALSE = success. */ + status = 0; + +/* Test all of the SOFA functions. */ + t_a2af(&status); + t_a2tf(&status); + t_ab(&status); + t_ae2hd(&status); + t_af2a(&status); + t_anp(&status); + t_anpm(&status); + t_apcg(&status); + t_apcg13(&status); + t_apci(&status); + t_apci13(&status); + t_apco(&status); + t_apco13(&status); + t_apcs(&status); + t_apcs13(&status); + t_aper(&status); + t_aper13(&status); + t_apio(&status); + t_apio13(&status); + t_atcc13(&status); + t_atccq(&status); + t_atci13(&status); + t_atciq(&status); + t_atciqn(&status); + t_atciqz(&status); + t_atco13(&status); + t_atic13(&status); + t_aticq(&status); + t_aticqn(&status); + t_atio13(&status); + t_atioq(&status); + t_atoc13(&status); + t_atoi13(&status); + t_atoiq(&status); + t_bi00(&status); + t_bp00(&status); + t_bp06(&status); + t_bpn2xy(&status); + t_c2i00a(&status); + t_c2i00b(&status); + t_c2i06a(&status); + t_c2ibpn(&status); + t_c2ixy(&status); + t_c2ixys(&status); + t_c2s(&status); + t_c2t00a(&status); + t_c2t00b(&status); + t_c2t06a(&status); + t_c2tcio(&status); + t_c2teqx(&status); + t_c2tpe(&status); + t_c2txy(&status); + t_cal2jd(&status); + t_cp(&status); + t_cpv(&status); + t_cr(&status); + t_d2dtf(&status); + t_d2tf(&status); + t_dat(&status); + t_dtdb(&status); + t_dtf2d(&status); + t_eceq06(&status); + t_ecm06(&status); + t_ee00(&status); + t_ee00a(&status); + t_ee00b(&status); + t_ee06a(&status); + t_eect00(&status); + t_eform(&status); + t_eo06a(&status); + t_eors(&status); + t_epb(&status); + t_epb2jd(&status); + t_epj(&status); + t_epj2jd(&status); + t_epv00(&status); + t_eqec06(&status); + t_eqeq94(&status); + t_era00(&status); + t_fad03(&status); + t_fae03(&status); + t_faf03(&status); + t_faju03(&status); + t_fal03(&status); + t_falp03(&status); + t_fama03(&status); + t_fame03(&status); + t_fane03(&status); + t_faom03(&status); + t_fapa03(&status); + t_fasa03(&status); + t_faur03(&status); + t_fave03(&status); + t_fk425(&status); + t_fk45z(&status); + t_fk524(&status); + t_fk52h(&status); + t_fk54z(&status); + t_fk5hip(&status); + t_fk5hz(&status); + t_fw2m(&status); + t_fw2xy(&status); + t_g2icrs(&status); + t_gc2gd(&status); + t_gc2gde(&status); + t_gd2gc(&status); + t_gd2gce(&status); + t_gmst00(&status); + t_gmst06(&status); + t_gmst82(&status); + t_gst00a(&status); + t_gst00b(&status); + t_gst06(&status); + t_gst06a(&status); + t_gst94(&status); + t_h2fk5(&status); + t_hd2ae(&status); + t_hd2pa(&status); + t_hfk5z(&status); + t_icrs2g(&status); + t_ir(&status); + t_jd2cal(&status); + t_jdcalf(&status); + t_ld(&status); + t_ldn(&status); + t_ldsun(&status); + t_lteceq(&status); + t_ltecm(&status); + t_lteqec(&status); + t_ltp(&status); + t_ltpb(&status); + t_ltpecl(&status); + t_ltpequ(&status); + t_moon98(&status); + t_num00a(&status); + t_num00b(&status); + t_num06a(&status); + t_numat(&status); + t_nut00a(&status); + t_nut00b(&status); + t_nut06a(&status); + t_nut80(&status); + t_nutm80(&status); + t_obl06(&status); + t_obl80(&status); + t_p06e(&status); + t_p2pv(&status); + t_p2s(&status); + t_pap(&status); + t_pas(&status); + t_pb06(&status); + t_pdp(&status); + t_pfw06(&status); + t_plan94(&status); + t_pmat00(&status); + t_pmat06(&status); + t_pmat76(&status); + t_pm(&status); + t_pmp(&status); + t_pmpx(&status); + t_pmsafe(&status); + t_pn(&status); + t_pn00(&status); + t_pn00a(&status); + t_pn00b(&status); + t_pn06a(&status); + t_pn06(&status); + t_pnm00a(&status); + t_pnm00b(&status); + t_pnm06a(&status); + t_pnm80(&status); + t_pom00(&status); + t_ppp(&status); + t_ppsp(&status); + t_pr00(&status); + t_prec76(&status); + t_pv2p(&status); + t_pv2s(&status); + t_pvdpv(&status); + t_pvm(&status); + t_pvmpv(&status); + t_pvppv(&status); + t_pvstar(&status); + t_pvtob(&status); + t_pvu(&status); + t_pvup(&status); + t_pvxpv(&status); + t_pxp(&status); + t_refco(&status); + t_rm2v(&status); + t_rv2m(&status); + t_rx(&status); + t_rxp(&status); + t_rxpv(&status); + t_rxr(&status); + t_ry(&status); + t_rz(&status); + t_s00a(&status); + t_s00b(&status); + t_s00(&status); + t_s06a(&status); + t_s06(&status); + t_s2c(&status); + t_s2p(&status); + t_s2pv(&status); + t_s2xpv(&status); + t_sepp(&status); + t_seps(&status); + t_sp00(&status); + t_starpm(&status); + t_starpv(&status); + t_sxp(&status); + t_sxpv(&status); + t_taitt(&status); + t_taiut1(&status); + t_taiutc(&status); + t_tcbtdb(&status); + t_tcgtt(&status); + t_tdbtcb(&status); + t_tdbtt(&status); + t_tf2a(&status); + t_tf2d(&status); + t_tpors(&status); + t_tporv(&status); + t_tpsts(&status); + t_tpstv(&status); + t_tpxes(&status); + t_tpxev(&status); + t_tr(&status); + t_trxp(&status); + t_trxpv(&status); + t_tttai(&status); + t_tttcg(&status); + t_tttdb(&status); + t_ttut1(&status); + t_ut1tai(&status); + t_ut1tt(&status) ; + t_ut1utc(&status); + t_utctai(&status); + t_utcut1(&status); + t_xy06(&status); + t_xys00a(&status); + t_xys00b(&status); + t_xys06a(&status); + t_zp(&status); + t_zpv(&status); + t_zr(&status); + +/* Report, set up an appropriate exit status, and finish. */ + if (status) { + printf("t_sofa_c validation failed!\n"); + } else { + printf("t_sofa_c validation successful\n"); + } + return status; + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/taitt.c b/deps/sofa/20231011/c/src/taitt.c new file mode 100644 index 0000000..170d199 --- /dev/null +++ b/deps/sofa/20231011/c/src/taitt.c @@ -0,0 +1,163 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTaitt(double tai1, double tai2, double *tt1, double *tt2) +/* +** - - - - - - - - - +** i a u T a i t t +** - - - - - - - - - +** +** Time scale transformation: International Atomic Time, TAI, to +** Terrestrial Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tai1,tai2 double TAI as a 2-part Julian Date +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tai1+tai2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tai1 is the Julian +** Day Number and tai2 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* TT minus TAI (days). */ + static const double dtat = TTMTAI/DAYSEC; + + +/* Result, safeguarding precision. */ + if ( fabs(tai1) > fabs(tai2) ) { + *tt1 = tai1; + *tt2 = tai2 + dtat; + } else { + *tt1 = tai1 + dtat; + *tt2 = tai2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/taiut1.c b/deps/sofa/20231011/c/src/taiut1.c new file mode 100644 index 0000000..ea639b0 --- /dev/null +++ b/deps/sofa/20231011/c/src/taiut1.c @@ -0,0 +1,165 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTaiut1(double tai1, double tai2, double dta, + double *ut11, double *ut12) +/* +** - - - - - - - - - - +** i a u T a i u t 1 +** - - - - - - - - - - +** +** Time scale transformation: International Atomic Time, TAI, to +** Universal Time, UT1. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tai1,tai2 double TAI as a 2-part Julian Date +** dta double UT1-TAI in seconds +** +** Returned: +** ut11,ut12 double UT1 as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tai1+tai2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tai1 is the Julian +** Day Number and tai2 is the fraction of a day. The returned +** UT11,UT12 follow suit. +** +** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is +** available from IERS tabulations. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +** +*/ +{ + double dtad; + + +/* Result, safeguarding precision. */ + dtad = dta / DAYSEC; + if ( fabs(tai1) > fabs(tai2) ) { + *ut11 = tai1; + *ut12 = tai2 + dtad; + } else { + *ut11 = tai1 + dtad; + *ut12 = tai2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/taiutc.c b/deps/sofa/20231011/c/src/taiutc.c new file mode 100644 index 0000000..4570068 --- /dev/null +++ b/deps/sofa/20231011/c/src/taiutc.c @@ -0,0 +1,211 @@ +#include "sofa.h" + +int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2) +/* +** - - - - - - - - - - +** i a u T a i u t c +** - - - - - - - - - - +** +** Time scale transformation: International Atomic Time, TAI, to +** Coordinated Universal Time, UTC. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tai1,tai2 double TAI as a 2-part Julian Date (Note 1) +** +** Returned: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3) +** +** Returned (function value): +** int status: +1 = dubious year (Note 4) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) tai1+tai2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tai1 is the Julian +** Day Number and tai2 is the fraction of a day. The returned utc1 +** and utc2 form an analogous pair, except that a special convention +** is used, to deal with the problem of leap seconds - see the next +** note. +** +** 2) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the JD day represents UTC days whether the +** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era +** there were smaller jumps (in either direction) each time the +** linear UTC(TAI) expression was changed, and these "mini-leaps" +** are also included in the SOFA convention. +** +** 3) The function iauD2dtf can be used to transform the UTC quasi-JD +** into calendar date and clock time, including UTC leap second +** handling. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** Called: +** iauUtctai UTC to TAI +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int big1; + int i, j; + double a1, a2, u1, u2, g1, g2; + + +/* Put the two parts of the TAI into big-first order. */ + big1 = ( fabs(tai1) >= fabs(tai2) ); + if ( big1 ) { + a1 = tai1; + a2 = tai2; + } else { + a1 = tai2; + a2 = tai1; + } + +/* Initial guess for UTC. */ + u1 = a1; + u2 = a2; + +/* Iterate (though in most cases just once is enough). */ + for ( i = 0; i < 3; i++ ) { + + /* Guessed UTC to TAI. */ + j = iauUtctai(u1, u2, &g1, &g2); + if ( j < 0 ) return j; + + /* Adjust guessed UTC. */ + u2 += a1 - g1; + u2 += a2 - g2; + } + +/* Return the UTC result, preserving the TAI order. */ + if ( big1 ) { + *utc1 = u1; + *utc2 = u2; + } else { + *utc1 = u2; + *utc2 = u1; + } + +/* Status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tcbtdb.c b/deps/sofa/20231011/c/src/tcbtdb.c new file mode 100644 index 0000000..939e3f1 --- /dev/null +++ b/deps/sofa/20231011/c/src/tcbtdb.c @@ -0,0 +1,185 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) +/* +** - - - - - - - - - - +** i a u T c b t d b +** - - - - - - - - - - +** +** Time scale transformation: Barycentric Coordinate Time, TCB, to +** Barycentric Dynamical Time, TDB. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tcb1,tcb2 double TCB as a 2-part Julian Date +** +** Returned: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tcb1+tcb2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tcb1 is the Julian +** Day Number and tcb2 is the fraction of a day. The returned +** tdb1,tdb2 follow suit. +** +** 2) The 2006 IAU General Assembly introduced a conventional linear +** transformation between TDB and TCB. This transformation +** compensates for the drift between TCB and terrestrial time TT, +** and keeps TDB approximately centered on TT. Because the +** relationship between TT and TCB depends on the adopted solar +** system ephemeris, the degree of alignment between TDB and TT over +** long intervals will vary according to which ephemeris is used. +** Former definitions of TDB attempted to avoid this problem by +** stipulating that TDB and TT should differ only by periodic +** effects. This is a good description of the nature of the +** relationship but eluded precise mathematical formulation. The +** conventional linear relationship adopted in 2006 sidestepped +** these difficulties whilst delivering a TDB that in practice was +** consistent with values before that date. +** +** 3) TDB is essentially the same as Teph, the time argument for the +** JPL solar system ephemerides. +** +** Reference: +** +** IAU 2006 Resolution B3 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* 1977 Jan 1 00:00:32.184 TT, as two-part JD */ + static const double t77td = DJM0 + DJM77; + static const double t77tf = TTMTAI/DAYSEC; + +/* TDB (days) at TAI 1977 Jan 1.0 */ + static const double tdb0 = TDB0/DAYSEC; + + double d; + + +/* Result, safeguarding precision. */ + if ( fabs(tcb1) > fabs(tcb2) ) { + d = tcb1 - t77td; + *tdb1 = tcb1; + *tdb2 = tcb2 + tdb0 - ( d + ( tcb2 - t77tf ) ) * ELB; + } else { + d = tcb2 - t77td; + *tdb1 = tcb1 + tdb0 - ( d + ( tcb1 - t77tf ) ) * ELB; + *tdb2 = tcb2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tcgtt.c b/deps/sofa/20231011/c/src/tcgtt.c new file mode 100644 index 0000000..728e6e8 --- /dev/null +++ b/deps/sofa/20231011/c/src/tcgtt.c @@ -0,0 +1,162 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2) +/* +** - - - - - - - - - +** i a u T c g t t +** - - - - - - - - - +** +** Time scale transformation: Geocentric Coordinate Time, TCG, to +** Terrestrial Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tcg1,tcg2 double TCG as a 2-part Julian Date +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tcg1+tcg2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tcg1 is the Julian +** Day Number and tcg22 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2000 Resolution B1.9 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* 1977 Jan 1 00:00:32.184 TT, as MJD */ + static const double t77t = DJM77 + TTMTAI/DAYSEC; + + +/* Result, safeguarding precision. */ + if ( fabs(tcg1) > fabs(tcg2) ) { + *tt1 = tcg1; + *tt2 = tcg2 - ( ( tcg1 - DJM0 ) + ( tcg2 - t77t ) ) * ELG; + } else { + *tt1 = tcg1 - ( ( tcg2 - DJM0 ) + ( tcg1 - t77t ) ) * ELG; + *tt2 = tcg2; + } + +/* OK status. */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tdbtcb.c b/deps/sofa/20231011/c/src/tdbtcb.c new file mode 100644 index 0000000..c32b5e3 --- /dev/null +++ b/deps/sofa/20231011/c/src/tdbtcb.c @@ -0,0 +1,190 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) +/* +** - - - - - - - - - - +** i a u T d b t c b +** - - - - - - - - - - +** +** Time scale transformation: Barycentric Dynamical Time, TDB, to +** Barycentric Coordinate Time, TCB. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** +** Returned: +** tcb1,tcb2 double TCB as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tdb1 is the Julian +** Day Number and tdb2 is the fraction of a day. The returned +** tcb1,tcb2 follow suit. +** +** 2) The 2006 IAU General Assembly introduced a conventional linear +** transformation between TDB and TCB. This transformation +** compensates for the drift between TCB and terrestrial time TT, +** and keeps TDB approximately centered on TT. Because the +** relationship between TT and TCB depends on the adopted solar +** system ephemeris, the degree of alignment between TDB and TT over +** long intervals will vary according to which ephemeris is used. +** Former definitions of TDB attempted to avoid this problem by +** stipulating that TDB and TT should differ only by periodic +** effects. This is a good description of the nature of the +** relationship but eluded precise mathematical formulation. The +** conventional linear relationship adopted in 2006 sidestepped +** these difficulties whilst delivering a TDB that in practice was +** consistent with values before that date. +** +** 3) TDB is essentially the same as Teph, the time argument for the +** JPL solar system ephemerides. +** +** Reference: +** +** IAU 2006 Resolution B3 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* 1977 Jan 1 00:00:32.184 TT, as two-part JD */ + static const double t77td = DJM0 + DJM77; + static const double t77tf = TTMTAI/DAYSEC; + +/* TDB (days) at TAI 1977 Jan 1.0 */ + static const double tdb0 = TDB0/DAYSEC; + +/* TDB to TCB rate */ + static const double elbb = ELB/(1.0-ELB); + + double d, f; + + +/* Result, preserving date format but safeguarding precision. */ + if ( fabs(tdb1) > fabs(tdb2) ) { + d = t77td - tdb1; + f = tdb2 - tdb0; + *tcb1 = tdb1; + *tcb2 = f - ( d - ( f - t77tf ) ) * elbb; + } else { + d = t77td - tdb2; + f = tdb1 - tdb0; + *tcb1 = f - ( d - ( f - t77tf ) ) * elbb; + *tcb2 = tdb2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tdbtt.c b/deps/sofa/20231011/c/src/tdbtt.c new file mode 100644 index 0000000..3b8fae5 --- /dev/null +++ b/deps/sofa/20231011/c/src/tdbtt.c @@ -0,0 +1,175 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTdbtt(double tdb1, double tdb2, double dtr, + double *tt1, double *tt2 ) +/* +** - - - - - - - - - +** i a u T d b t t +** - - - - - - - - - +** +** Time scale transformation: Barycentric Dynamical Time, TDB, to +** Terrestrial Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** dtr double TDB-TT in seconds +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tdb1 is the Julian +** Day Number and tdb2 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** 2) The argument dtr represents the quasi-periodic component of the +** GR transformation between TT and TCB. It is dependent upon the +** adopted solar-system ephemeris, and can be obtained by numerical +** integration, by interrogating a precomputed time ephemeris or by +** evaluating a model such as that implemented in the SOFA function +** iauDtdb. The quantity is dominated by an annual term of 1.7 ms +** amplitude. +** +** 3) TDB is essentially the same as Teph, the time argument for the +** JPL solar system ephemerides. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2006 Resolution 3 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +** +*/ +{ + double dtrd; + + +/* Result, safeguarding precision. */ + dtrd = dtr / DAYSEC; + if ( fabs(tdb1) > fabs(tdb2) ) { + *tt1 = tdb1; + *tt2 = tdb2 - dtrd; + } else { + *tt1 = tdb1 - dtrd; + *tt2 = tdb2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tf2a.c b/deps/sofa/20231011/c/src/tf2a.c new file mode 100644 index 0000000..1606755 --- /dev/null +++ b/deps/sofa/20231011/c/src/tf2a.c @@ -0,0 +1,160 @@ +#include "sofa.h" +#include "sofam.h" +#include + +int iauTf2a(char s, int ihour, int imin, double sec, double *rad) +/* +** - - - - - - - - +** i a u T f 2 a +** - - - - - - - - +** +** Convert hours, minutes, seconds to radians. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** s char sign: '-' = negative, otherwise positive +** ihour int hours +** imin int minutes +** sec double seconds +** +** Returned: +** rad double angle in radians +** +** Returned (function value): +** int status: 0 = OK +** 1 = ihour outside range 0-23 +** 2 = imin outside range 0-59 +** 3 = sec outside range 0-59.999... +** +** Notes: +** +** 1) The result is computed even if any of the range checks fail. +** +** 2) Negative ihour, imin and/or sec produce a warning status, but +** the absolute value is used in the conversion. +** +** 3) If there are multiple errors, the status value reflects only the +** first, the smallest taking precedence. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Compute the interval. */ + *rad = ( s == '-' ? -1.0 : 1.0 ) * + ( 60.0 * ( 60.0 * ( (double) abs(ihour) ) + + ( (double) abs(imin) ) ) + + fabs(sec) ) * DS2R; + +/* Validate arguments and return status. */ + if ( ihour < 0 || ihour > 23 ) return 1; + if ( imin < 0 || imin > 59 ) return 2; + if ( sec < 0.0 || sec >= 60.0 ) return 3; + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tf2d.c b/deps/sofa/20231011/c/src/tf2d.c new file mode 100644 index 0000000..42dbbb5 --- /dev/null +++ b/deps/sofa/20231011/c/src/tf2d.c @@ -0,0 +1,160 @@ +#include "sofa.h" +#include "sofam.h" +#include + +int iauTf2d(char s, int ihour, int imin, double sec, double *days) +/* +** - - - - - - - - +** i a u T f 2 d +** - - - - - - - - +** +** Convert hours, minutes, seconds to days. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** s char sign: '-' = negative, otherwise positive +** ihour int hours +** imin int minutes +** sec double seconds +** +** Returned: +** days double interval in days +** +** Returned (function value): +** int status: 0 = OK +** 1 = ihour outside range 0-23 +** 2 = imin outside range 0-59 +** 3 = sec outside range 0-59.999... +** +** Notes: +** +** 1) The result is computed even if any of the range checks fail. +** +** 2) Negative ihour, imin and/or sec produce a warning status, but +** the absolute value is used in the conversion. +** +** 3) If there are multiple errors, the status value reflects only the +** first, the smallest taking precedence. +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Compute the interval. */ + *days = ( s == '-' ? -1.0 : 1.0 ) * + ( 60.0 * ( 60.0 * ( (double) abs(ihour) ) + + ( (double) abs(imin) ) ) + + fabs(sec) ) / DAYSEC; + +/* Validate arguments and return status. */ + if ( ihour < 0 || ihour > 23 ) return 1; + if ( imin < 0 || imin > 59 ) return 2; + if ( sec < 0.0 || sec >= 60.0 ) return 3; + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tpors.c b/deps/sofa/20231011/c/src/tpors.c new file mode 100644 index 0000000..8b0ae12 --- /dev/null +++ b/deps/sofa/20231011/c/src/tpors.c @@ -0,0 +1,222 @@ +#include "sofa.h" + +int iauTpors(double xi, double eta, double a, double b, + double *a01, double *b01, double *a02, double *b02) +/* +** - - - - - - - - - +** i a u T p o r s +** - - - - - - - - - +** +** In the tangent plane projection, given the rectangular coordinates +** of a star and its spherical coordinates, determine the spherical +** coordinates of the tangent point. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** a,b double star's spherical coordinates (Note 3) +** +** Returned: +** *a01,*b01 double tangent point's spherical coordinates, Soln. 1 +** *a02,*b02 double tangent point's spherical coordinates, Soln. 2 +** +** Returned (function value): +** int number of solutions: +** 0 = no solutions returned (Note 5) +** 1 = only the first solution is useful (Note 6) +** 2 = both solutions are useful (Note 6) +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the spherical coordinates are observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the spherical coordinates are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) All angular arguments are in radians. +** +** 4) The angles a01 and a02 are returned in the range 0-2pi. The +** angles b01 and b02 are returned in the range +/-pi, but in the +** usual, non-pole-crossing, case, the range is +/-pi/2. +** +** 5) Cases where there is no solution can arise only near the poles. +** For example, it is clearly impossible for a star at the pole +** itself to have a non-zero xi value, and hence it is meaningless +** to ask where the tangent point would have to be to bring about +** this combination of xi and dec. +** +** 6) Also near the poles, cases can arise where there are two useful +** solutions. The return value indicates whether the second of the +** two solutions returned is useful; 1 indicates only one useful +** solution, the usual case. +** +** 7) The basis of the algorithm is to solve the spherical triangle PSC, +** where P is the north celestial pole, S is the star and C is the +** tangent point. The spherical coordinates of the tangent point are +** [a0,b0]; writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), side c +** is then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be +** found) is (pi/2-b0). Angle C is given by sin(C) = xi/rho and +** cos(C) = eta/rho. Angle P (to be found) is the longitude +** difference between star and tangent point (a-a0). +** +** 8) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** iauTpsts iauTpstv star +** > iauTpors < iauTporv origin +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +** This revision: 2018 January 2 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double xi2, r, sb, cb, rsb, rcb, w2, w, s, c; + + + xi2 = xi*xi; + r = sqrt(1.0 + xi2 + eta*eta); + sb = sin(b); + cb = cos(b); + rsb = r*sb; + rcb = r*cb; + w2 = rcb*rcb - xi2; + if ( w2 >= 0.0 ) { + w = sqrt(w2); + s = rsb - eta*w; + c = rsb*eta + w; + if ( xi == 0.0 && w == 0.0 ) w = 1.0; + *a01 = iauAnp(a - atan2(xi,w)); + *b01 = atan2(s,c); + w = -w; + s = rsb - eta*w; + c = rsb*eta + w; + *a02 = iauAnp(a - atan2(xi,w)); + *b02 = atan2(s,c); + return (fabs(rsb) < 1.0) ? 1 : 2; + } else { + return 0; + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tporv.c b/deps/sofa/20231011/c/src/tporv.c new file mode 100644 index 0000000..a9e2086 --- /dev/null +++ b/deps/sofa/20231011/c/src/tporv.c @@ -0,0 +1,219 @@ +#include "sofa.h" + +int iauTporv(double xi, double eta, double v[3], + double v01[3], double v02[3]) +/* +** - - - - - - - - - +** i a u T p o r v +** - - - - - - - - - +** +** In the tangent plane projection, given the rectangular coordinates +** of a star and its direction cosines, determine the direction +** cosines of the tangent point. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** v double[3] star's direction cosines (Note 3) +** +** Returned: +** v01 double[3] tangent point's direction cosines, Solution 1 +** v02 double[3] tangent point's direction cosines, Solution 2 +** +** Returned (function value): +** int number of solutions: +** 0 = no solutions returned (Note 4) +** 1 = only the first solution is useful (Note 5) +** 2 = both solutions are useful (Note 5) +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the direction cosines represent observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the direction cosines are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) The vector v must be of unit length or the result will be wrong. +** +** 4) Cases where there is no solution can arise only near the poles. +** For example, it is clearly impossible for a star at the pole +** itself to have a non-zero xi value, and hence it is meaningless +** to ask where the tangent point would have to be. +** +** 5) Also near the poles, cases can arise where there are two useful +** solutions. The return value indicates whether the second of the +** two solutions returned is useful; 1 indicates only one useful +** solution, the usual case. +** +** 6) The basis of the algorithm is to solve the spherical triangle +** PSC, where P is the north celestial pole, S is the star and C is +** the tangent point. Calling the celestial spherical coordinates +** of the star and tangent point (a,b) and (a0,b0) respectively, and +** writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), and +** transforming the vector v into (a,b) in the normal way, side c is +** then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be +** found) is (pi/2-b0), while angle C is given by sin(C) = xi/rho +** and cos(C) = eta/rho; angle P (to be found) is (a-a0). After +** solving the spherical triangle, the result (a0,b0) can be +** expressed in vector form as v0. +** +** 7) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** iauTpsts iauTpstv star +** iauTpors > iauTporv < origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +** This revision: 2018 January 2 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, z, rxy2, xi2, eta2p1, r, rsb, rcb, w2, w, c; + + + x = v[0]; + y = v[1]; + z = v[2]; + rxy2 = x*x + y*y; + xi2 = xi*xi; + eta2p1 = eta*eta + 1.0; + r = sqrt(xi2 + eta2p1); + rsb = r*z; + rcb = r*sqrt(x*x + y*y); + w2 = rcb*rcb - xi2; + if ( w2 > 0.0 ) { + w = sqrt(w2); + c = (rsb*eta + w) / (eta2p1*sqrt(rxy2*(w2+xi2))); + v01[0] = c * (x*w + y*xi); + v01[1] = c * (y*w - x*xi); + v01[2] = (rsb - eta*w) / eta2p1; + w = - w; + c = (rsb*eta + w) / (eta2p1*sqrt(rxy2*(w2+xi2))); + v02[0] = c * (x*w + y*xi); + v02[1] = c * (y*w - x*xi); + v02[2] = (rsb - eta*w) / eta2p1; + return (fabs(rsb) < 1.0) ? 1 : 2; + } else { + return 0; + } + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tpsts.c b/deps/sofa/20231011/c/src/tpsts.c new file mode 100644 index 0000000..8d71f70 --- /dev/null +++ b/deps/sofa/20231011/c/src/tpsts.c @@ -0,0 +1,170 @@ +#include "sofa.h" + +void iauTpsts(double xi, double eta, double a0, double b0, + double *a, double *b) +/* +** - - - - - - - - - +** i a u T p s t s +** - - - - - - - - - +** +** In the tangent plane projection, given the star's rectangular +** coordinates and the spherical coordinates of the tangent point, +** solve for the spherical coordinates of the star. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** a0,b0 double tangent point's spherical coordinates +** +** Returned: +** *a,*b double star's spherical coordinates +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the spherical coordinates are observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the spherical coordinates are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) All angular arguments are in radians. +** +** 4) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** > iauTpsts < iauTpstv star +** iauTpors iauTporv origin +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +** This revision: 2018 January 2 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double sb0, cb0, d; + + sb0 = sin(b0); + cb0 = cos(b0); + d = cb0 - eta*sb0; + *a = iauAnp(atan2(xi,d) + a0); + *b = atan2(sb0+eta*cb0, sqrt(xi*xi+d*d)); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tpstv.c b/deps/sofa/20231011/c/src/tpstv.c new file mode 100644 index 0000000..0d13845 --- /dev/null +++ b/deps/sofa/20231011/c/src/tpstv.c @@ -0,0 +1,194 @@ +#include "sofa.h" + +void iauTpstv(double xi, double eta, double v0[3], double v[3]) +/* +** - - - - - - - - - +** i a u T p s t v +** - - - - - - - - - +** +** In the tangent plane projection, given the star's rectangular +** coordinates and the direction cosines of the tangent point, solve +** for the direction cosines of the star. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** v0 double[3] tangent point's direction cosines +** +** Returned: +** v double[3] star's direction cosines +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the direction cosines represent observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the direction cosines are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) The method used is to complete the star vector in the (xi,eta) +** based triad and normalize it, then rotate the triad to put the +** tangent point at the pole with the x-axis aligned to zero +** longitude. Writing (a0,b0) for the celestial spherical +** coordinates of the tangent point, the sequence of rotations is +** (b-pi/2) around the x-axis followed by (-a-pi/2) around the +** z-axis. +** +** 4) If vector v0 is not of unit length, the returned vector v will +** be wrong. +** +** 5) If vector v0 points at a pole, the returned vector v will be +** based on the arbitrary assumption that the longitude coordinate +** of the tangent point is zero. +** +** 6) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** iauTpsts > iauTpstv < star +** iauTpors iauTporv origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +** This revision: 2018 January 2 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double x, y, z, f, r; + + +/* Tangent point. */ + x = v0[0]; + y = v0[1]; + z = v0[2]; + +/* Deal with polar case. */ + r = sqrt(x*x + y*y); + if ( r == 0.0 ) { + r = 1e-20; + x = r; + } + +/* Star vector length to tangent plane. */ + f = sqrt(1.0 + xi*xi + eta*eta); + +/* Apply the transformation and normalize. */ + v[0] = (x - (xi*y + eta*x*z) / r) / f; + v[1] = (y + (xi*x - eta*y*z) / r) / f; + v[2] = (z + eta*r) / f; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tpxes.c b/deps/sofa/20231011/c/src/tpxes.c new file mode 100644 index 0000000..955451a --- /dev/null +++ b/deps/sofa/20231011/c/src/tpxes.c @@ -0,0 +1,203 @@ +#include "sofa.h" + +int iauTpxes(double a, double b, double a0, double b0, + double *xi, double *eta) +/* +** - - - - - - - - - +** i a u T p x e s +** - - - - - - - - - +** +** In the tangent plane projection, given celestial spherical +** coordinates for a star and the tangent point, solve for the star's +** rectangular coordinates in the tangent plane. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** a,b double star's spherical coordinates +** a0,b0 double tangent point's spherical coordinates +** +** Returned: +** *xi,*eta double rectangular coordinates of star image (Note 2) +** +** Returned (function value): +** int status: 0 = OK +** 1 = star too far from axis +** 2 = antistar on tangent plane +** 3 = antistar too far from axis +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the spherical coordinates are observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". For right-handed spherical coordinates, +** (xi,eta) are also right-handed. The units of (xi,eta) are, +** effectively, radians at the tangent point. +** +** 3) All angular arguments are in radians. +** +** 4) This function is a member of the following set: +** +** spherical vector solve for +** +** > iauTpxes < iauTpxev xi,eta +** iauTpsts iauTpstv star +** iauTpors iauTporv origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +** This revision: 2018 January 2 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + const double TINY = 1e-6; + int j; + double sb0, sb, cb0, cb, da, sda, cda, d; + + +/* Functions of the spherical coordinates. */ + sb0 = sin(b0); + sb = sin(b); + cb0 = cos(b0); + cb = cos(b); + da = a - a0; + sda = sin(da); + cda = cos(da); + +/* Reciprocal of star vector length to tangent plane. */ + d = sb*sb0 + cb*cb0*cda; + +/* Check for error cases. */ + if ( d > TINY ) { + j = 0; + } else if ( d >= 0.0 ) { + j = 1; + d = TINY; + } else if ( d > -TINY ) { + j = 2; + d = -TINY; + } else { + j = 3; + } + +/* Return the tangent plane coordinates (even in dubious cases). */ + *xi = cb*sda / d; + *eta = (sb*cb0 - cb*sb0*cda) / d; + +/* Return the status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tpxev.c b/deps/sofa/20231011/c/src/tpxev.c new file mode 100644 index 0000000..814c9e5 --- /dev/null +++ b/deps/sofa/20231011/c/src/tpxev.c @@ -0,0 +1,223 @@ +#include "sofa.h" + +int iauTpxev(double v[3], double v0[3], double *xi, double *eta) +/* +** - - - - - - - - - +** i a u T p x e v +** - - - - - - - - - +** +** In the tangent plane projection, given celestial direction cosines +** for a star and the tangent point, solve for the star's rectangular +** coordinates in the tangent plane. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** v double[3] direction cosines of star (Note 4) +** v0 double[3] direction cosines of tangent point (Note 4) +** +** Returned: +** *xi,*eta double tangent plane coordinates of star +** +** Returned (function value): +** int status: 0 = OK +** 1 = star too far from axis +** 2 = antistar on tangent plane +** 3 = antistar too far from axis +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the direction cosines represent observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the direction cosines are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) The method used is to extend the star vector to the tangent +** plane and then rotate the triad so that (x,y) becomes (xi,eta). +** Writing (a,b) for the celestial spherical coordinates of the +** star, the sequence of rotations is (a+pi/2) around the z-axis +** followed by (pi/2-b) around the x-axis. +** +** 4) If vector v0 is not of unit length, or if vector v is of zero +** length, the results will be wrong. +** +** 5) If v0 points at a pole, the returned (xi,eta) will be based on +** the arbitrary assumption that the longitude coordinate of the +** tangent point is zero. +** +** 6) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes > iauTpxev < xi,eta +** iauTpsts iauTpstv star +** iauTpors iauTporv origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +** This revision: 2018 January 2 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + const double TINY = 1e-6; + int j; + double x, y, z, x0, y0, z0, r2, r, w, d; + + +/* Star and tangent point. */ + x = v[0]; + y = v[1]; + z = v[2]; + x0 = v0[0]; + y0 = v0[1]; + z0 = v0[2]; + +/* Deal with polar case. */ + r2 = x0*x0 + y0*y0; + r = sqrt(r2); + if ( r == 0.0 ) { + r = 1e-20; + x0 = r; + } + +/* Reciprocal of star vector length to tangent plane. */ + w = x*x0 + y*y0; + d = w + z*z0; + +/* Check for error cases. */ + if ( d > TINY ) { + j = 0; + } else if ( d >= 0.0 ) { + j = 1; + d = TINY; + } else if ( d > -TINY ) { + j = 2; + d = -TINY; + } else { + j = 3; + } + +/* Return the tangent plane coordinates (even in dubious cases). */ + d *= r; + *xi = (y*x0 - x*y0) / d; + *eta = (z*r2 - z0*w) / d; + +/* Return the status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tr.c b/deps/sofa/20231011/c/src/tr.c new file mode 100644 index 0000000..2f94553 --- /dev/null +++ b/deps/sofa/20231011/c/src/tr.c @@ -0,0 +1,143 @@ +#include "sofa.h" + +void iauTr(double r[3][3], double rt[3][3]) +/* +** - - - - - - +** i a u T r +** - - - - - - +** +** Transpose 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 +** +** Returned: +** rt double[3][3] transpose +** +** Note: +** It is permissible for r and rt to be the same array. +** +** Called: +** iauCr copy r-matrix +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double wm[3][3]; + int i, j; + + + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + wm[i][j] = r[j][i]; + } + } + iauCr(wm, rt); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/trxp.c b/deps/sofa/20231011/c/src/trxp.c new file mode 100644 index 0000000..df5d8fb --- /dev/null +++ b/deps/sofa/20231011/c/src/trxp.c @@ -0,0 +1,143 @@ +#include "sofa.h" + +void iauTrxp(double r[3][3], double p[3], double trp[3]) +/* +** - - - - - - - - +** i a u T r x p +** - - - - - - - - +** +** Multiply a p-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 +** p double[3] p-vector +** +** Returned: +** trp double[3] r^T * p +** +** Note: +** It is permissible for p and trp to be the same array. +** +** Called: +** iauTr transpose r-matrix +** iauRxp product of r-matrix and p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double tr[3][3]; + + +/* Transpose of matrix r. */ + iauTr(r, tr); + +/* Matrix tr * vector p -> vector trp. */ + iauRxp(tr, p, trp); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/trxpv.c b/deps/sofa/20231011/c/src/trxpv.c new file mode 100644 index 0000000..bffbb73 --- /dev/null +++ b/deps/sofa/20231011/c/src/trxpv.c @@ -0,0 +1,149 @@ +#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^T * pv +** +** Notes: +** +** 1) The algorithm is for the simple case where the r-matrix r is not +** a function of time. The case where r is a function of time leads +** to an additional velocity component equal to the product of the +** derivative of the transpose of r and the position vector. +** +** 2) It is permissible for pv and rpv to be the same array. +** +** Called: +** iauTr transpose r-matrix +** iauRxpv product of r-matrix and pv-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 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); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tttai.c b/deps/sofa/20231011/c/src/tttai.c new file mode 100644 index 0000000..905e384 --- /dev/null +++ b/deps/sofa/20231011/c/src/tttai.c @@ -0,0 +1,163 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTttai(double tt1, double tt2, double *tai1, double *tai2) +/* +** - - - - - - - - - +** i a u T t t a i +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to International +** Atomic Time, TAI. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned: +** tai1,tai2 double TAI as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned tai1,tai2 follow +** suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* TT minus TAI (days). */ + static const double dtat = TTMTAI/DAYSEC; + + +/* Result, safeguarding precision. */ + if ( fabs(tt1) > fabs(tt2) ) { + *tai1 = tt1; + *tai2 = tt2 - dtat; + } else { + *tai1 = tt1 - dtat; + *tai2 = tt2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tttcg.c b/deps/sofa/20231011/c/src/tttcg.c new file mode 100644 index 0000000..a1d7098 --- /dev/null +++ b/deps/sofa/20231011/c/src/tttcg.c @@ -0,0 +1,165 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) +/* +** - - - - - - - - - +** i a u T t t c g +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to Geocentric +** Coordinate Time, TCG. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned: +** tcg1,tcg2 double TCG as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned tcg1,tcg2 follow +** suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2000 Resolution B1.9 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* 1977 Jan 1 00:00:32.184 TT, as MJD */ + static const double t77t = DJM77 + TTMTAI/DAYSEC; + +/* TT to TCG rate */ + static const double elgg = ELG/(1.0-ELG); + + +/* Result, safeguarding precision. */ + if ( fabs(tt1) > fabs(tt2) ) { + *tcg1 = tt1; + *tcg2 = tt2 + ( ( tt1 - DJM0 ) + ( tt2 - t77t ) ) * elgg; + } else { + *tcg1 = tt1 + ( ( tt2 - DJM0 ) + ( tt1 - t77t ) ) * elgg; + *tcg2 = tt2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/tttdb.c b/deps/sofa/20231011/c/src/tttdb.c new file mode 100644 index 0000000..d61d795 --- /dev/null +++ b/deps/sofa/20231011/c/src/tttdb.c @@ -0,0 +1,174 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTttdb(double tt1, double tt2, double dtr, + double *tdb1, double *tdb2) +/* +** - - - - - - - - - +** i a u T t t d b +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to Barycentric +** Dynamical Time, TDB. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** dtr double TDB-TT in seconds +** +** Returned: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned tdb1,tdb2 follow +** suit. +** +** 2) The argument dtr represents the quasi-periodic component of the +** GR transformation between TT and TCB. It is dependent upon the +** adopted solar-system ephemeris, and can be obtained by numerical +** integration, by interrogating a precomputed time ephemeris or by +** evaluating a model such as that implemented in the SOFA function +** iauDtdb. The quantity is dominated by an annual term of 1.7 ms +** amplitude. +** +** 3) TDB is essentially the same as Teph, the time argument for the JPL +** solar system ephemerides. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2006 Resolution 3 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dtrd; + + +/* Result, safeguarding precision. */ + dtrd = dtr / DAYSEC; + if ( fabs(tt1) > fabs(tt2) ) { + *tdb1 = tt1; + *tdb2 = tt2 + dtrd; + } else { + *tdb1 = tt1 + dtrd; + *tdb2 = tt2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ttut1.c b/deps/sofa/20231011/c/src/ttut1.c new file mode 100644 index 0000000..0803ef5 --- /dev/null +++ b/deps/sofa/20231011/c/src/ttut1.c @@ -0,0 +1,163 @@ +#include "sofa.h" +#include "sofam.h" + +int iauTtut1(double tt1, double tt2, double dt, + double *ut11, double *ut12) +/* +** - - - - - - - - - +** i a u T t u t 1 +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to Universal Time, +** UT1. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** dt double TT-UT1 in seconds +** +** Returned: +** ut11,ut12 double UT1 as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned ut11,ut12 follow +** suit. +** +** 2) The argument dt is classical Delta T. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dtd; + + +/* Result, safeguarding precision. */ + dtd = dt / DAYSEC; + if ( fabs(tt1) > fabs(tt2) ) { + *ut11 = tt1; + *ut12 = tt2 - dtd; + } else { + *ut11 = tt1 - dtd; + *ut12 = tt2; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ut1tai.c b/deps/sofa/20231011/c/src/ut1tai.c new file mode 100644 index 0000000..a41d88f --- /dev/null +++ b/deps/sofa/20231011/c/src/ut1tai.c @@ -0,0 +1,164 @@ +#include "sofa.h" +#include "sofam.h" + +int iauUt1tai(double ut11, double ut12, double dta, + double *tai1, double *tai2) +/* +** - - - - - - - - - - +** i a u U t 1 t a i +** - - - - - - - - - - +** +** Time scale transformation: Universal Time, UT1, to International +** Atomic Time, TAI. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** ut11,ut12 double UT1 as a 2-part Julian Date +** dta double UT1-TAI in seconds +** +** Returned: +** tai1,tai2 double TAI as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) ut11+ut12 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where ut11 is the Julian +** Day Number and ut12 is the fraction of a day. The returned +** tai1,tai2 follow suit. +** +** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is +** available from IERS tabulations. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dtad; + + +/* Result, safeguarding precision. */ + dtad = dta / DAYSEC; + if ( fabs(ut11) > fabs(ut12) ) { + *tai1 = ut11; + *tai2 = ut12 - dtad; + } else { + *tai1 = ut11 - dtad; + *tai2 = ut12; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ut1tt.c b/deps/sofa/20231011/c/src/ut1tt.c new file mode 100644 index 0000000..c04b5d0 --- /dev/null +++ b/deps/sofa/20231011/c/src/ut1tt.c @@ -0,0 +1,163 @@ +#include "sofa.h" +#include "sofam.h" + +int iauUt1tt(double ut11, double ut12, double dt, + double *tt1, double *tt2) +/* +** - - - - - - - - - +** i a u U t 1 t t +** - - - - - - - - - +** +** Time scale transformation: Universal Time, UT1, to Terrestrial +** Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** ut11,ut12 double UT1 as a 2-part Julian Date +** dt double TT-UT1 in seconds +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) ut11+ut12 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where ut11 is the Julian +** Day Number and ut12 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** 2) The argument dt is classical Delta T. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double dtd; + + +/* Result, safeguarding precision. */ + dtd = dt / DAYSEC; + if ( fabs(ut11) > fabs(ut12) ) { + *tt1 = ut11; + *tt2 = ut12 + dtd; + } else { + *tt1 = ut11 + dtd; + *tt2 = ut12; + } + +/* Status (always OK). */ + return 0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/ut1utc.c b/deps/sofa/20231011/c/src/ut1utc.c new file mode 100644 index 0000000..a18e1e2 --- /dev/null +++ b/deps/sofa/20231011/c/src/ut1utc.c @@ -0,0 +1,246 @@ +#include "sofa.h" +#include "sofam.h" + +int iauUt1utc(double ut11, double ut12, double dut1, + double *utc1, double *utc2) +/* +** - - - - - - - - - - +** i a u U t 1 u t c +** - - - - - - - - - - +** +** Time scale transformation: Universal Time, UT1, to Coordinated +** Universal Time, UTC. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** ut11,ut12 double UT1 as a 2-part Julian Date (Note 1) +** dut1 double Delta UT1: UT1-UTC in seconds (Note 2) +** +** Returned: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 3,4) +** +** Returned (function value): +** int status: +1 = dubious year (Note 5) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) ut11+ut12 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where ut11 is the Julian +** Day Number and ut12 is the fraction of a day. The returned utc1 +** and utc2 form an analogous pair, except that a special convention +** is used, to deal with the problem of leap seconds - see Note 3. +** +** 2) Delta UT1 can be obtained from tabulations provided by the +** International Earth Rotation and Reference Systems Service. The +** value changes abruptly by 1s at a leap second; however, close to +** a leap second the algorithm used here is tolerant of the "wrong" +** choice of value being made. +** +** 3) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the returned quasi-JD UTC1+UTC2 represents UTC +** days whether the length is 86399, 86400 or 86401 SI seconds. +** +** 4) The function iauD2dtf can be used to transform the UTC quasi-JD +** into calendar date and clock time, including UTC leap second +** handling. +** +** 5) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauDat delta(AT) = TAI-UTC +** iauCal2jd Gregorian calendar to JD +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2023 May 6 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int big1; + int i, iy, im, id, js; + double duts, u1, u2, d1, dats1, d2, fd, dats2, ddats, us1, us2, du; + + +/* UT1-UTC in seconds. */ + duts = dut1; + +/* Put the two parts of the UT1 into big-first order. */ + big1 = ( fabs(ut11) >= fabs(ut12) ); + if ( big1 ) { + u1 = ut11; + u2 = ut12; + } else { + u1 = ut12; + u2 = ut11; + } + +/* See if the UT1 can possibly be in a leap-second day. */ + d1 = u1; + dats1 = 0; + for ( i = -1; i <= 3; i++ ) { + d2 = u2 + (double) i; + if ( iauJd2cal(d1, d2, &iy, &im, &id, &fd) ) return -1; + js = iauDat(iy, im, id, 0.0, &dats2); + if ( js < 0 ) return -1; + if ( i == - 1 ) dats1 = dats2; + ddats = dats2 - dats1; + if ( fabs(ddats) >= 0.5 ) { + + /* Yes, leap second nearby: ensure UT1-UTC is "before" value. */ + if ( ddats*duts >= 0.0 ) duts -= ddats; + + /* UT1 for the start of the UTC day that ends in a leap. */ + if ( iauCal2jd(iy, im, id, &d1, &d2) ) return -1; + us1 = d1; + us2 = d2 - 1.0 + duts/DAYSEC; + + /* Is the UT1 after this point? */ + du = u1 - us1; + du += u2 - us2; + if ( du > 0.0 ) { + + /* Yes: fraction of the current UTC day that has elapsed. */ + fd = du * DAYSEC / ( DAYSEC + ddats ); + + /* Ramp UT1-UTC to bring about SOFA's JD(UTC) convention. */ + duts += ddats * ( fd <= 1.0 ? fd : 1.0 ); + } + + /* Done. */ + break; + } + dats1 = dats2; + } + +/* Subtract the (possibly adjusted) UT1-UTC from UT1 to give UTC. */ + u2 -= duts / DAYSEC; + +/* Result, safeguarding precision. */ + if ( big1 ) { + *utc1 = u1; + *utc2 = u2; + } else { + *utc1 = u2; + *utc2 = u1; + } + +/* Status. */ + return js; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/utctai.c b/deps/sofa/20231011/c/src/utctai.c new file mode 100644 index 0000000..a62e9d4 --- /dev/null +++ b/deps/sofa/20231011/c/src/utctai.c @@ -0,0 +1,231 @@ +#include "sofa.h" +#include "sofam.h" + +int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) +/* +** - - - - - - - - - - +** i a u U t c t a i +** - - - - - - - - - - +** +** Time scale transformation: Coordinated Universal Time, UTC, to +** International Atomic Time, TAI. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) +** +** Returned: +** tai1,tai2 double TAI as a 2-part Julian Date (Note 5) +** +** Returned (function value): +** int status: +1 = dubious year (Note 3) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** 2) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the JD day represents UTC days whether the +** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era +** there were smaller jumps (in either direction) each time the +** linear UTC(TAI) expression was changed, and these "mini-leaps" +** are also included in the SOFA convention. +** +** 3) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 4) The function iauDtf2d converts from calendar date and time of day +** into 2-part Julian Date, and in the case of UTC implements the +** leap-second-ambiguity convention described above. +** +** 5) The returned TAI1,TAI2 are such that their sum is the TAI Julian +** Date. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauDat delta(AT) = TAI-UTC +** iauCal2jd Gregorian calendar to JD +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +** +*/ +{ + int big1; + int iy, im, id, j, iyt, imt, idt; + double u1, u2, fd, dat0, dat12, w, dat24, dlod, dleap, z1, z2, a2; + + +/* Put the two parts of the UTC into big-first order. */ + big1 = ( fabs(utc1) >= fabs(utc2) ); + if ( big1 ) { + u1 = utc1; + u2 = utc2; + } else { + u1 = utc2; + u2 = utc1; + } + +/* Get TAI-UTC at 0h today. */ + j = iauJd2cal(u1, u2, &iy, &im, &id, &fd); + if ( j ) return j; + j = iauDat(iy, im, id, 0.0, &dat0); + if ( j < 0 ) return j; + +/* Get TAI-UTC at 12h today (to detect drift). */ + j = iauDat(iy, im, id, 0.5, &dat12); + if ( j < 0 ) return j; + +/* Get TAI-UTC at 0h tomorrow (to detect jumps). */ + j = iauJd2cal(u1+1.5, u2-fd, &iyt, &imt, &idt, &w); + if ( j ) return j; + j = iauDat(iyt, imt, idt, 0.0, &dat24); + if ( j < 0 ) return j; + +/* Separate TAI-UTC change into per-day (DLOD) and any jump (DLEAP). */ + dlod = 2.0 * (dat12 - dat0); + dleap = dat24 - (dat0 + dlod); + +/* Remove any scaling applied to spread leap into preceding day. */ + fd *= (DAYSEC+dleap)/DAYSEC; + +/* Scale from (pre-1972) UTC seconds to SI seconds. */ + fd *= (DAYSEC+dlod)/DAYSEC; + +/* Today's calendar date to 2-part JD. */ + if ( iauCal2jd(iy, im, id, &z1, &z2) ) return -1; + +/* Assemble the TAI result, preserving the UTC split and order. */ + a2 = z1 - u1; + a2 += z2; + a2 += fd + dat0/DAYSEC; + if ( big1 ) { + *tai1 = u1; + *tai2 = a2; + } else { + *tai1 = a2; + *tai2 = u1; + } + +/* Status. */ + return j; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/utcut1.c b/deps/sofa/20231011/c/src/utcut1.c new file mode 100644 index 0000000..886c542 --- /dev/null +++ b/deps/sofa/20231011/c/src/utcut1.c @@ -0,0 +1,199 @@ +#include "sofa.h" + +int iauUtcut1(double utc1, double utc2, double dut1, + double *ut11, double *ut12) +/* +** - - - - - - - - - - +** i a u U t c u t 1 +** - - - - - - - - - - +** +** Time scale transformation: Coordinated Universal Time, UTC, to +** Universal Time, UT1. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) +** dut1 double Delta UT1 = UT1-UTC in seconds (Note 5) +** +** Returned: +** ut11,ut12 double UT1 as a 2-part Julian Date (Note 6) +** +** Returned (function value): +** int status: +1 = dubious year (Note 3) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** 2) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the JD day represents UTC days whether the +** length is 86399, 86400 or 86401 SI seconds. +** +** 3) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 4) The function iauDtf2d converts from calendar date and time of +** day into 2-part Julian Date, and in the case of UTC implements +** the leap-second-ambiguity convention described above. +** +** 5) Delta UT1 can be obtained from tabulations provided by the +** International Earth Rotation and Reference Systems Service. +** It is the caller's responsibility to supply a dut1 argument +** containing the UT1-UTC value that matches the given UTC. +** +** 6) The returned ut11,ut12 are such that their sum is the UT1 Julian +** Date. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauDat delta(AT) = TAI-UTC +** iauUtctai UTC to TAI +** iauTaiut1 TAI to UT1 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + int iy, im, id, js, jw; + double w, dat, dta, tai1, tai2; + + +/* Look up TAI-UTC. */ + if ( iauJd2cal(utc1, utc2, &iy, &im, &id, &w) ) return -1; + js = iauDat ( iy, im, id, 0.0, &dat); + if ( js < 0 ) return -1; + +/* Form UT1-TAI. */ + dta = dut1 - dat; + +/* UTC to TAI to UT1. */ + jw = iauUtctai(utc1, utc2, &tai1, &tai2); + if ( jw < 0 ) { + return -1; + } else if ( jw > 0 ) { + js = jw; + } + if ( iauTaiut1(tai1, tai2, dta, ut11, ut12) ) return -1; + +/* Status. */ + return js; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/xy06.c b/deps/sofa/20231011/c/src/xy06.c new file mode 100644 index 0000000..6629a8d --- /dev/null +++ b/deps/sofa/20231011/c/src/xy06.c @@ -0,0 +1,2809 @@ +#include "sofa.h" +#include "sofam.h" + +void iauXy06(double date1, double date2, double *x, double *y) +/* +** - - - - - - - - +** i a u X y 0 6 +** - - - - - - - - +** +** X,Y coordinates of celestial intermediate pole from series based +** on IAU 2006 precession and IAU 2000A nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double CIP X,Y coordinates (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The X,Y coordinates are those of the unit vector towards the +** celestial intermediate pole. They represent the combined effects +** of frame bias, precession and nutation. +** +** 3) The fundamental arguments used are as adopted in IERS Conventions +** (2003) and are from Simon et al. (1994) and Souchay et al. +** (1999). +** +** 4) This is an alternative to the angles-based method, via the SOFA +** function iauFw2xy and as used in iauXys06a for example. The two +** methods agree at the 1 microarcsecond level (at present), a +** negligible amount compared with the intrinsic accuracy of the +** models. However, it would be unwise to mix the two methods +** (angles-based and series-based) in a single application. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFame03 mean longitude of Mercury +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFama03 mean longitude of Mars +** iauFaju03 mean longitude of Jupiter +** iauFasa03 mean longitude of Saturn +** iauFaur03 mean longitude of Uranus +** iauFane03 mean longitude of Neptune +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, +** Astron.Astrophys., 412, 567 +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M., 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + +/* Maximum power of T in the polynomials for X and Y */ + enum { MAXPT = 5 }; + +/* Polynomial coefficients (arcsec, X then Y). */ + static const double xyp[2][MAXPT+1] = { + + { -0.016617, + 2004.191898, + -0.4297829, + -0.19861834, + 0.000007578, + 0.0000059285 + }, + { -0.006951, + -0.025896, + -22.4072747, + 0.00190059, + 0.001112526, + 0.0000001358 + } + }; + +/* Fundamental-argument multipliers: luni-solar terms */ + static const int mfals[][5] = { + + /* 1-10 */ + { 0, 0, 0, 0, 1 }, + { 0, 0, 2, -2, 2 }, + { 0, 0, 2, 0, 2 }, + { 0, 0, 0, 0, 2 }, + { 0, 1, 0, 0, 0 }, + { 0, 1, 2, -2, 2 }, + { 1, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 1 }, + { 1, 0, 2, 0, 2 }, + { 0, 1, -2, 2, -2 }, + + /* 11-20 */ + { 0, 0, 2, -2, 1 }, + { 1, 0, -2, 0, -2 }, + { 1, 0, 0, -2, 0 }, + { 1, 0, 0, 0, 1 }, + { 1, 0, 0, 0, -1 }, + { 1, 0, -2, -2, -2 }, + { 1, 0, 2, 0, 1 }, + { 2, 0, -2, 0, -1 }, + { 0, 0, 0, 2, 0 }, + { 0, 0, 2, 2, 2 }, + + /* 21-30 */ + { 2, 0, 0, -2, 0 }, + { 0, 2, -2, 2, -2 }, + { 2, 0, 2, 0, 2 }, + { 1, 0, 2, -2, 2 }, + { 1, 0, -2, 0, -1 }, + { 2, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 0 }, + { 0, 1, 0, 0, 1 }, + { 1, 0, 0, -2, -1 }, + { 0, 2, 2, -2, 2 }, + + /* 31-40 */ + { 0, 0, 2, -2, 0 }, + { 1, 0, 0, -2, 1 }, + { 0, 1, 0, 0, -1 }, + { 0, 2, 0, 0, 0 }, + { 1, 0, -2, -2, -1 }, + { 1, 0, 2, 2, 2 }, + { 0, 1, 2, 0, 2 }, + { 2, 0, -2, 0, 0 }, + { 0, 0, 2, 2, 1 }, + { 0, 1, -2, 0, -2 }, + + /* 41-50 */ + { 0, 0, 0, 2, 1 }, + { 1, 0, 2, -2, 1 }, + { 2, 0, 0, -2, -1 }, + { 2, 0, 2, -2, 2 }, + { 2, 0, 2, 0, 1 }, + { 0, 0, 0, 2, -1 }, + { 0, 1, -2, 2, -1 }, + { 1, 1, 0, -2, 0 }, + { 2, 0, 0, -2, 1 }, + { 1, 0, 0, 2, 0 }, + + /* 51-60 */ + { 0, 1, 2, -2, 1 }, + { 1, -1, 0, 0, 0 }, + { 0, 1, -1, 1, -1 }, + { 2, 0, -2, 0, -2 }, + { 0, 1, 0, -2, 0 }, + { 1, 0, 0, -1, 0 }, + { 3, 0, 2, 0, 2 }, + { 0, 0, 0, 1, 0 }, + { 1, -1, 2, 0, 2 }, + { 1, 1, -2, -2, -2 }, + + /* 61-70 */ + { 1, 0, -2, 0, 0 }, + { 2, 0, 0, 0, -1 }, + { 0, 1, -2, -2, -2 }, + { 1, 1, 2, 0, 2 }, + { 2, 0, 0, 0, 1 }, + { 1, 1, 0, 0, 0 }, + { 1, 0, -2, 2, -1 }, + { 1, 0, 2, 0, 0 }, + { 1, -1, 0, -1, 0 }, + { 1, 0, 0, 0, 2 }, + + /* 71-80 */ + { 1, 0, -1, 0, -1 }, + { 0, 0, 2, 1, 2 }, + { 1, 0, -2, -4, -2 }, + { 1, -1, 0, -1, -1 }, + { 1, 0, 2, 2, 1 }, + { 0, 2, -2, 2, -1 }, + { 1, 0, 0, 0, -2 }, + { 2, 0, -2, -2, -2 }, + { 1, 1, 2, -2, 2 }, + { 2, 0, -2, -4, -2 }, + + /* 81-90 */ + { 1, 0, -4, 0, -2 }, + { 2, 0, 2, -2, 1 }, + { 1, 0, 0, -1, -1 }, + { 2, 0, 2, 2, 2 }, + { 3, 0, 0, 0, 0 }, + { 1, 0, 0, 2, 1 }, + { 0, 0, 2, -2, -1 }, + { 3, 0, 2, -2, 2 }, + { 0, 0, 4, -2, 2 }, + { 1, 0, 0, -4, 0 }, + + /* 91-100 */ + { 0, 1, 2, 0, 1 }, + { 2, 0, 0, -4, 0 }, + { 1, 1, 0, -2, -1 }, + { 2, 0, -2, 0, 1 }, + { 0, 0, 2, 0, -1 }, + { 0, 1, -2, 0, -1 }, + { 0, 1, 0, 0, 2 }, + { 0, 0, 2, -1, 2 }, + { 0, 0, 2, 4, 2 }, + { 2, 1, 0, -2, 0 }, + + /* 101-110 */ + { 1, 1, 0, -2, 1 }, + { 1, -1, 0, -2, 0 }, + { 1, -1, 0, -1, -2 }, + { 1, -1, 0, 0, 1 }, + { 0, 1, -2, 2, 0 }, + { 0, 1, 0, 0, -2 }, + { 1, -1, 2, 2, 2 }, + { 1, 0, 0, 2, -1 }, + { 1, -1, -2, -2, -2 }, + { 3, 0, 2, 0, 1 }, + + /* 111-120 */ + { 0, 1, 2, 2, 2 }, + { 1, 0, 2, -2, 0 }, + { 1, 1, -2, -2, -1 }, + { 1, 0, 2, -4, 1 }, + { 0, 1, -2, -2, -1 }, + { 2, -1, 2, 0, 2 }, + { 0, 0, 0, 2, 2 }, + { 1, -1, 2, 0, 1 }, + { 1, -1, -2, 0, -2 }, + { 0, 1, 0, 2, 0 }, + + /* 121-130 */ + { 0, 1, 2, -2, 0 }, + { 0, 0, 0, 1, 1 }, + { 1, 0, -2, -2, 0 }, + { 0, 3, 2, -2, 2 }, + { 2, 1, 2, 0, 2 }, + { 1, 1, 0, 0, 1 }, + { 2, 0, 0, 2, 0 }, + { 1, 1, 2, 0, 1 }, + { 1, 0, 0, -2, -2 }, + { 1, 0, -2, 2, 0 }, + + /* 131-140 */ + { 1, 0, -1, 0, -2 }, + { 0, 1, 0, -2, 1 }, + { 0, 1, 0, 1, 0 }, + { 0, 0, 0, 1, -1 }, + { 1, 0, -2, 2, -2 }, + { 1, -1, 0, 0, -1 }, + { 0, 0, 0, 4, 0 }, + { 1, -1, 0, 2, 0 }, + { 1, 0, 2, 1, 2 }, + { 1, 0, 2, -1, 2 }, + + /* 141-150 */ + { 0, 0, 2, 1, 1 }, + { 1, 0, 0, -2, 2 }, + { 1, 0, -2, 0, 1 }, + { 1, 0, -2, -4, -1 }, + { 0, 0, 2, 2, 0 }, + { 1, 1, 2, -2, 1 }, + { 1, 0, -2, 1, -1 }, + { 0, 0, 1, 0, 1 }, + { 2, 0, -2, -2, -1 }, + { 4, 0, 2, 0, 2 }, + + /* 151-160 */ + { 2, -1, 0, 0, 0 }, + { 2, 1, 2, -2, 2 }, + { 0, 1, 2, 1, 2 }, + { 1, 0, 4, -2, 2 }, + { 1, 1, 0, 0, -1 }, + { 2, 0, 2, 0, 0 }, + { 2, 0, -2, -4, -1 }, + { 1, 0, -1, 0, 0 }, + { 1, 0, 0, 1, 0 }, + { 0, 1, 0, 2, 1 }, + + /* 161-170 */ + { 1, 0, -4, 0, -1 }, + { 1, 0, 0, -4, -1 }, + { 2, 0, 2, 2, 1 }, + { 2, 1, 0, 0, 0 }, + { 0, 0, 2, -3, 2 }, + { 1, 2, 0, -2, 0 }, + { 0, 3, 0, 0, 0 }, + { 0, 0, 4, 0, 2 }, + { 0, 0, 2, -4, 1 }, + { 2, 0, 0, -2, -2 }, + + /* 171-180 */ + { 1, 1, -2, -4, -2 }, + { 0, 1, 0, -2, -1 }, + { 0, 0, 0, 4, 1 }, + { 3, 0, 2, -2, 1 }, + { 1, 0, 2, 4, 2 }, + { 1, 1, -2, 0, -2 }, + { 0, 0, 4, -2, 1 }, + { 2, -2, 0, -2, 0 }, + { 2, 1, 0, -2, -1 }, + { 0, 2, 0, -2, 0 }, + + /* 181-190 */ + { 1, 0, 0, -1, 1 }, + { 1, 1, 2, 2, 2 }, + { 3, 0, 0, 0, -1 }, + { 2, 0, 0, -4, -1 }, + { 3, 0, 2, 2, 2 }, + { 0, 0, 2, 4, 1 }, + { 0, 2, -2, -2, -2 }, + { 1, -1, 0, -2, -1 }, + { 0, 0, 2, -1, 1 }, + { 2, 0, 0, 2, 1 }, + + /* 191-200 */ + { 1, -1, -2, 2, -1 }, + { 0, 0, 0, 2, -2 }, + { 2, 0, 0, -4, 1 }, + { 1, 0, 0, -4, 1 }, + { 2, 0, 2, -4, 1 }, + { 4, 0, 2, -2, 2 }, + { 2, 1, -2, 0, -1 }, + { 2, 1, -2, -4, -2 }, + { 3, 0, 0, -4, 0 }, + { 1, -1, 2, 2, 1 }, + + /* 201-210 */ + { 1, -1, -2, 0, -1 }, + { 0, 2, 0, 0, 1 }, + { 1, 2, -2, -2, -2 }, + { 1, 1, 0, -4, 0 }, + { 2, 0, 0, -2, 2 }, + { 0, 2, 2, -2, 1 }, + { 1, 0, 2, 0, -1 }, + { 2, 1, 0, -2, 1 }, + { 2, -1, -2, 0, -1 }, + { 1, -1, -2, -2, -1 }, + + /* 211-220 */ + { 0, 1, -2, 1, -2 }, + { 1, 0, -4, 2, -2 }, + { 0, 1, 2, 2, 1 }, + { 3, 0, 0, 0, 1 }, + { 2, -1, 2, 2, 2 }, + { 0, 1, -2, -4, -2 }, + { 1, 0, -2, -3, -2 }, + { 2, 0, 0, 0, 2 }, + { 1, -1, 0, -2, -2 }, + { 2, 0, -2, 2, -1 }, + + /* 221-230 */ + { 0, 2, -2, 0, -2 }, + { 3, 0, -2, 0, -1 }, + { 2, -1, 2, 0, 1 }, + { 1, 0, -2, -1, -2 }, + { 0, 0, 2, 0, 3 }, + { 2, 0, -4, 0, -2 }, + { 2, 1, 0, -4, 0 }, + { 1, 1, -2, 1, -1 }, + { 0, 2, 2, 0, 2 }, + { 1, -1, 2, -2, 2 }, + + /* 231-240 */ + { 1, -1, 0, -2, 1 }, + { 2, 1, 2, 0, 1 }, + { 1, 0, 2, -4, 2 }, + { 1, 1, -2, 0, -1 }, + { 1, 1, 0, 2, 0 }, + { 1, 0, 0, -3, 0 }, + { 2, 0, 2, -1, 2 }, + { 0, 2, 0, 0, -1 }, + { 2, -1, 0, -2, 0 }, + { 4, 0, 0, 0, 0 }, + + /* 241-250 */ + { 2, 1, -2, -2, -2 }, + { 0, 2, -2, 2, 0 }, + { 1, 0, 2, 1, 1 }, + { 1, 0, -1, 0, -3 }, + { 3, -1, 2, 0, 2 }, + { 2, 0, 2, -2, 0 }, + { 1, -2, 0, 0, 0 }, + { 2, 0, 0, 0, -2 }, + { 1, 0, 0, 4, 0 }, + { 0, 1, 0, 1, 1 }, + + /* 251-260 */ + { 1, 0, 2, 2, 0 }, + { 0, 1, 0, 2, -1 }, + { 0, 1, 0, 1, -1 }, + { 0, 0, 2, -2, 3 }, + { 3, 1, 2, 0, 2 }, + { 1, 1, 2, 1, 2 }, + { 1, 1, -2, 2, -1 }, + { 2, -1, 2, -2, 2 }, + { 1, -2, 2, 0, 2 }, + { 1, 0, 2, -4, 0 }, + + /* 261-270 */ + { 0, 0, 1, 0, 0 }, + { 1, 0, 2, -3, 1 }, + { 1, -2, 0, -2, 0 }, + { 2, 0, 0, 2, -1 }, + { 1, 1, 2, -4, 1 }, + { 4, 0, 2, 0, 1 }, + { 0, 1, 2, 1, 1 }, + { 1, 2, 2, -2, 2 }, + { 2, 0, 2, 1, 2 }, + { 2, 1, 2, -2, 1 }, + + /* 271-280 */ + { 1, 0, 2, -1, 1 }, + { 1, 0, 4, -2, 1 }, + { 1, -1, 2, -2, 1 }, + { 0, 1, 0, -4, 0 }, + { 3, 0, -2, -2, -2 }, + { 0, 0, 4, -4, 2 }, + { 2, 0, -4, -2, -2 }, + { 2, -2, 0, -2, -1 }, + { 1, 0, 2, -2, -1 }, + { 2, 0, -2, -6, -2 }, + + /* 281-290 */ + { 1, 0, -2, 1, -2 }, + { 1, 0, -2, 2, 1 }, + { 1, -1, 0, 2, -1 }, + { 1, 0, -2, 1, 0 }, + { 2, -1, 0, -2, 1 }, + { 1, -1, 0, 2, 1 }, + { 2, 0, -2, -2, 0 }, + { 1, 0, 2, -3, 2 }, + { 0, 0, 0, 4, -1 }, + { 2, -1, 0, 0, 1 }, + + /* 291-300 */ + { 2, 0, 4, -2, 2 }, + { 0, 0, 2, 3, 2 }, + { 0, 1, 4, -2, 2 }, + { 0, 1, -2, 2, 1 }, + { 1, 1, 0, 2, 1 }, + { 1, 0, 0, 4, 1 }, + { 0, 0, 4, 0, 1 }, + { 2, 0, 0, -3, 0 }, + { 1, 0, 0, -1, -2 }, + { 1, -2, -2, -2, -2 }, + + /* 301-310 */ + { 3, 0, 0, 2, 0 }, + { 2, 0, 2, -4, 2 }, + { 1, 1, -2, -4, -1 }, + { 1, 0, -2, -6, -2 }, + { 2, -1, 0, 0, -1 }, + { 2, -1, 0, 2, 0 }, + { 0, 1, 2, -2, -1 }, + { 1, 1, 0, 1, 0 }, + { 1, 2, 0, -2, -1 }, + { 1, 0, 0, 1, -1 }, + + /* 311-320 */ + { 0, 0, 1, 0, 2 }, + { 3, 1, 2, -2, 2 }, + { 1, 0, -4, -2, -2 }, + { 1, 0, 2, 4, 1 }, + { 1, -2, 2, 2, 2 }, + { 1, -1, -2, -4, -2 }, + { 0, 0, 2, -4, 2 }, + { 0, 0, 2, -3, 1 }, + { 2, 1, -2, 0, 0 }, + { 3, 0, -2, -2, -1 }, + + /* 321-330 */ + { 2, 0, 2, 4, 2 }, + { 0, 0, 0, 0, 3 }, + { 2, -1, -2, -2, -2 }, + { 2, 0, 0, -1, 0 }, + { 3, 0, 2, -4, 2 }, + { 2, 1, 2, 2, 2 }, + { 0, 0, 3, 0, 3 }, + { 1, 1, 2, 2, 1 }, + { 2, 1, 0, 0, -1 }, + { 1, 2, 0, -2, 1 }, + + /* 331-340 */ + { 3, 0, 2, 2, 1 }, + { 1, -1, -2, 2, -2 }, + { 1, 1, 0, -1, 0 }, + { 1, 2, 0, 0, 0 }, + { 1, 0, 4, 0, 2 }, + { 1, -1, 2, 4, 2 }, + { 2, 1, 0, 0, 1 }, + { 1, 0, 0, 2, 2 }, + { 1, -1, -2, 2, 0 }, + { 0, 2, -2, -2, -1 }, + + /* 341-350 */ + { 2, 0, -2, 0, 2 }, + { 5, 0, 2, 0, 2 }, + { 3, 0, -2, -6, -2 }, + { 1, -1, 2, -1, 2 }, + { 3, 0, 0, -4, -1 }, + { 1, 0, 0, 1, 1 }, + { 1, 0, -4, 2, -1 }, + { 0, 1, 2, -4, 1 }, + { 1, 2, 2, 0, 2 }, + { 0, 1, 0, -2, -2 }, + + /* 351-360 */ + { 0, 0, 2, -1, 0 }, + { 1, 0, 1, 0, 1 }, + { 0, 2, 0, -2, 1 }, + { 3, 0, 2, 0, 0 }, + { 1, 1, -2, 1, 0 }, + { 2, 1, -2, -4, -1 }, + { 3, -1, 0, 0, 0 }, + { 2, -1, -2, 0, 0 }, + { 4, 0, 2, -2, 1 }, + { 2, 0, -2, 2, 0 }, + + /* 361-370 */ + { 1, 1, 2, -2, 0 }, + { 1, 0, -2, 4, -1 }, + { 1, 0, -2, -2, 1 }, + { 2, 0, 2, -4, 0 }, + { 1, 1, 0, -2, -2 }, + { 1, 1, -2, -2, 0 }, + { 1, 0, 1, -2, 1 }, + { 2, -1, -2, -4, -2 }, + { 3, 0, -2, 0, -2 }, + { 0, 1, -2, -2, 0 }, + + /* 371-380 */ + { 3, 0, 0, -2, -1 }, + { 1, 0, -2, -3, -1 }, + { 0, 1, 0, -4, -1 }, + { 1, -2, 2, -2, 1 }, + { 0, 1, -2, 1, -1 }, + { 1, -1, 0, 0, 2 }, + { 2, 0, 0, 1, 0 }, + { 1, -2, 0, 2, 0 }, + { 1, 2, -2, -2, -1 }, + { 0, 0, 4, -4, 1 }, + + /* 381-390 */ + { 0, 1, 2, 4, 2 }, + { 0, 1, -4, 2, -2 }, + { 3, 0, -2, 0, 0 }, + { 2, -1, 2, 2, 1 }, + { 0, 1, -2, -4, -1 }, + { 4, 0, 2, 2, 2 }, + { 2, 0, -2, -3, -2 }, + { 2, 0, 0, -6, 0 }, + { 1, 0, 2, 0, 3 }, + { 3, 1, 0, 0, 0 }, + + /* 391-400 */ + { 3, 0, 0, -4, 1 }, + { 1, -1, 2, 0, 0 }, + { 1, -1, 0, -4, 0 }, + { 2, 0, -2, 2, -2 }, + { 1, 1, 0, -2, 2 }, + { 4, 0, 0, -2, 0 }, + { 2, 2, 0, -2, 0 }, + { 0, 1, 2, 0, 0 }, + { 1, 1, 0, -4, 1 }, + { 1, 0, 0, -4, -2 }, + + /* 401-410 */ + { 0, 0, 0, 1, 2 }, + { 3, 0, 0, 2, 1 }, + { 1, 1, 0, -4, -1 }, + { 0, 0, 2, 2, -1 }, + { 1, 1, 2, 0, 0 }, + { 1, -1, 2, -4, 1 }, + { 1, 1, 0, 0, 2 }, + { 0, 0, 2, 6, 2 }, + { 4, 0, -2, -2, -1 }, + { 2, 1, 0, -4, -1 }, + + /* 411-420 */ + { 0, 0, 0, 3, 1 }, + { 1, -1, -2, 0, 0 }, + { 0, 0, 2, 1, 0 }, + { 1, 0, 0, 2, -2 }, + { 3, -1, 2, 2, 2 }, + { 3, -1, 2, -2, 2 }, + { 1, 0, 0, -1, 2 }, + { 1, -2, 2, -2, 2 }, + { 0, 1, 0, 2, 2 }, + { 0, 1, -2, -1, -2 }, + + /* 421-430 */ + { 1, 1, -2, 0, 0 }, + { 0, 2, 2, -2, 0 }, + { 3, -1, -2, -1, -2 }, + { 1, 0, 0, -6, 0 }, + { 1, 0, -2, -4, 0 }, + { 2, 1, 0, -4, 1 }, + { 2, 0, 2, 0, -1 }, + { 2, 0, -4, 0, -1 }, + { 0, 0, 3, 0, 2 }, + { 2, 1, -2, -2, -1 }, + + /* 431-440 */ + { 1, -2, 0, 0, 1 }, + { 2, -1, 0, -4, 0 }, + { 0, 0, 0, 3, 0 }, + { 5, 0, 2, -2, 2 }, + { 1, 2, -2, -4, -2 }, + { 1, 0, 4, -4, 2 }, + { 0, 0, 4, -1, 2 }, + { 3, 1, 0, -4, 0 }, + { 3, 0, 0, -6, 0 }, + { 2, 0, 0, 2, 2 }, + + /* 441-450 */ + { 2, -2, 2, 0, 2 }, + { 1, 0, 0, -3, 1 }, + { 1, -2, -2, 0, -2 }, + { 1, -1, -2, -3, -2 }, + { 0, 0, 2, -2, -2 }, + { 2, 0, -2, -4, 0 }, + { 1, 0, -4, 0, 0 }, + { 0, 1, 0, -1, 0 }, + { 4, 0, 0, 0, -1 }, + { 3, 0, 2, -1, 2 }, + + /* 451-460 */ + { 3, -1, 2, 0, 1 }, + { 2, 0, 2, -1, 1 }, + { 1, 2, 2, -2, 1 }, + { 1, 1, 0, 2, -1 }, + { 0, 2, 2, 0, 1 }, + { 3, 1, 2, 0, 1 }, + { 1, 1, 2, 1, 1 }, + { 1, 1, 0, -1, 1 }, + { 1, -2, 0, -2, -1 }, + { 4, 0, 0, -4, 0 }, + + /* 461-470 */ + { 2, 1, 0, 2, 0 }, + { 1, -1, 0, 4, 0 }, + { 0, 1, 0, -2, 2 }, + { 0, 0, 2, 0, -2 }, + { 1, 0, -1, 0, 1 }, + { 3, 0, 2, -2, 0 }, + { 2, 0, 2, 2, 0 }, + { 1, 2, 0, -4, 0 }, + { 1, -1, 0, -3, 0 }, + { 0, 1, 0, 4, 0 }, + + /* 471 - 480 */ + { 0, 1, -2, 0, 0 }, + { 2, 2, 2, -2, 2 }, + { 0, 0, 0, 1, -2 }, + { 0, 2, -2, 0, -1 }, + { 4, 0, 2, -4, 2 }, + { 2, 0, -4, 2, -2 }, + { 2, -1, -2, 0, -2 }, + { 1, 1, 4, -2, 2 }, + { 1, 1, 2, -4, 2 }, + { 1, 0, 2, 3, 2 }, + + /* 481-490 */ + { 1, 0, 0, 4, -1 }, + { 0, 0, 0, 4, 2 }, + { 2, 0, 0, 4, 0 }, + { 1, 1, -2, 2, 0 }, + { 2, 1, 2, 1, 2 }, + { 2, 1, 2, -4, 1 }, + { 2, 0, 2, 1, 1 }, + { 2, 0, -4, -2, -1 }, + { 2, 0, -2, -6, -1 }, + { 2, -1, 2, -1, 2 }, + + /* 491-500 */ + { 1, -2, 2, 0, 1 }, + { 1, -2, 0, -2, 1 }, + { 1, -1, 0, -4, -1 }, + { 0, 2, 2, 2, 2 }, + { 0, 2, -2, -4, -2 }, + { 0, 1, 2, 3, 2 }, + { 0, 1, 0, -4, 1 }, + { 3, 0, 0, -2, 1 }, + { 2, 1, -2, 0, 1 }, + { 2, 0, 4, -2, 1 }, + + /* 501-510 */ + { 2, 0, 0, -3, -1 }, + { 2, -2, 0, -2, 1 }, + { 2, -1, 2, -2, 1 }, + { 1, 0, 0, -6, -1 }, + { 1, -2, 0, 0, -1 }, + { 1, -2, -2, -2, -1 }, + { 0, 1, 4, -2, 1 }, + { 0, 0, 2, 3, 1 }, + { 2, -1, 0, -1, 0 }, + { 1, 3, 0, -2, 0 }, + + /* 511-520 */ + { 0, 3, 0, -2, 0 }, + { 2, -2, 2, -2, 2 }, + { 0, 0, 4, -2, 0 }, + { 4, -1, 2, 0, 2 }, + { 2, 2, -2, -4, -2 }, + { 4, 1, 2, 0, 2 }, + { 4, -1, -2, -2, -2 }, + { 2, 1, 0, -2, -2 }, + { 2, 1, -2, -6, -2 }, + { 2, 0, 0, -1, 1 }, + + /* 521-530 */ + { 2, -1, -2, 2, -1 }, + { 1, 1, -2, 2, -2 }, + { 1, 1, -2, -3, -2 }, + { 1, 0, 3, 0, 3 }, + { 1, 0, -2, 1, 1 }, + { 1, 0, -2, 0, 2 }, + { 1, -1, 2, 1, 2 }, + { 1, -1, 0, 0, -2 }, + { 1, -1, -4, 2, -2 }, + { 0, 3, -2, -2, -2 }, + + /* 531-540 */ + { 0, 1, 0, 4, 1 }, + { 0, 0, 4, 2, 2 }, + { 3, 0, -2, -2, 0 }, + { 2, -2, 0, 0, 0 }, + { 1, 1, 2, -4, 0 }, + { 1, 1, 0, -3, 0 }, + { 1, 0, 2, -3, 0 }, + { 1, -1, 2, -2, 0 }, + { 0, 2, 0, 2, 0 }, + { 0, 0, 2, 4, 0 }, + + /* 541-550 */ + { 1, 0, 1, 0, 0 }, + { 3, 1, 2, -2, 1 }, + { 3, 0, 4, -2, 2 }, + { 3, 0, 2, 1, 2 }, + { 3, 0, 0, 2, -1 }, + { 3, 0, 0, 0, 2 }, + { 3, 0, -2, 2, -1 }, + { 2, 0, 4, -4, 2 }, + { 2, 0, 2, -3, 2 }, + { 2, 0, 0, 4, 1 }, + + /* 551-560 */ + { 2, 0, 0, -3, 1 }, + { 2, 0, -4, 2, -1 }, + { 2, 0, -2, -2, 1 }, + { 2, -2, 2, 2, 2 }, + { 2, -2, 0, -2, -2 }, + { 2, -1, 0, 2, 1 }, + { 2, -1, 0, 2, -1 }, + { 1, 1, 2, 4, 2 }, + { 1, 1, 0, 1, 1 }, + { 1, 1, 0, 1, -1 }, + + /* 561-570 */ + { 1, 1, -2, -6, -2 }, + { 1, 0, 0, -3, -1 }, + { 1, 0, -4, -2, -1 }, + { 1, 0, -2, -6, -1 }, + { 1, -2, 2, 2, 1 }, + { 1, -2, -2, 2, -1 }, + { 1, -1, -2, -4, -1 }, + { 0, 2, 0, 0, 2 }, + { 0, 1, 2, -4, 2 }, + { 0, 1, -2, 4, -1 }, + + /* 571-580 */ + { 5, 0, 0, 0, 0 }, + { 3, 0, 0, -3, 0 }, + { 2, 2, 0, -4, 0 }, + { 1, -1, 2, 2, 0 }, + { 0, 1, 0, 3, 0 }, + { 4, 0, -2, 0, -1 }, + { 3, 0, -2, -6, -1 }, + { 3, 0, -2, -1, -1 }, + { 2, 1, 2, 2, 1 }, + { 2, 1, 0, 2, 1 }, + + /* 581-590 */ + { 2, 0, 2, 4, 1 }, + { 2, 0, 2, -6, 1 }, + { 2, 0, 2, -2, -1 }, + { 2, 0, 0, -6, -1 }, + { 2, -1, -2, -2, -1 }, + { 1, 2, 2, 0, 1 }, + { 1, 2, 0, 0, 1 }, + { 1, 0, 4, 0, 1 }, + { 1, 0, 2, -6, 1 }, + { 1, 0, 2, -4, -1 }, + + /* 591-600 */ + { 1, 0, -1, -2, -1 }, + { 1, -1, 2, 4, 1 }, + { 1, -1, 2, -3, 1 }, + { 1, -1, 0, 4, 1 }, + { 1, -1, -2, 1, -1 }, + { 0, 1, 2, -2, 3 }, + { 3, 0, 0, -2, 0 }, + { 1, 0, 1, -2, 0 }, + { 0, 2, 0, -4, 0 }, + { 0, 0, 2, -4, 0 }, + + /* 601-610 */ + { 0, 0, 1, -1, 0 }, + { 0, 0, 0, 6, 0 }, + { 0, 2, 0, 0, -2 }, + { 0, 1, -2, 2, -3 }, + { 4, 0, 0, 2, 0 }, + { 3, 0, 0, -1, 0 }, + { 3, -1, 0, 2, 0 }, + { 2, 1, 0, 1, 0 }, + { 2, 1, 0, -6, 0 }, + { 2, -1, 2, 0, 0 }, + + /* 611-620 */ + { 1, 0, 2, -1, 0 }, + { 1, -1, 0, 1, 0 }, + { 1, -1, -2, -2, 0 }, + { 0, 1, 2, 2, 0 }, + { 0, 0, 2, -3, 0 }, + { 2, 2, 0, -2, -1 }, + { 2, -1, -2, 0, 1 }, + { 1, 2, 2, -4, 1 }, + { 0, 1, 4, -4, 2 }, + { 0, 0, 0, 3, 2 }, + + /* 621-630 */ + { 5, 0, 2, 0, 1 }, + { 4, 1, 2, -2, 2 }, + { 4, 0, -2, -2, 0 }, + { 3, 1, 2, 2, 2 }, + { 3, 1, 0, -2, 0 }, + { 3, 1, -2, -6, -2 }, + { 3, 0, 0, 0, -2 }, + { 3, 0, -2, -4, -2 }, + { 3, -1, 0, -3, 0 }, + { 3, -1, 0, -2, 0 }, + + /* 631-640 */ + { 2, 1, 2, 0, 0 }, + { 2, 1, 2, -4, 2 }, + { 2, 1, 2, -2, 0 }, + { 2, 1, 0, -3, 0 }, + { 2, 1, -2, 0, -2 }, + { 2, 0, 0, -4, 2 }, + { 2, 0, 0, -4, -2 }, + { 2, 0, -2, -5, -2 }, + { 2, -1, 2, 4, 2 }, + { 2, -1, 0, -2, 2 }, + + /* 641-650 */ + { 1, 3, -2, -2, -2 }, + { 1, 1, 0, 0, -2 }, + { 1, 1, 0, -6, 0 }, + { 1, 1, -2, 1, -2 }, + { 1, 1, -2, -1, -2 }, + { 1, 0, 2, 1, 0 }, + { 1, 0, 0, 3, 0 }, + { 1, 0, 0, -4, 2 }, + { 1, 0, -2, 4, -2 }, + { 1, -2, 0, -1, 0 }, + + /* 651-NFLS */ + { 0, 1, -4, 2, -1 }, + { 1, 0, -2, 0, -3 }, + { 0, 0, 4, -4, 4 } + }; + +/* Number of frequencies: luni-solar */ + static const int NFLS = (int) (sizeof mfals / sizeof (int) / 5); + +/* Fundamental-argument multipliers: planetary terms */ + static const int mfapl[][14] = { + + /* 1-10 */ + { 0, 0, 1, -1, 1, 0, 0, -1, 0, -2, 5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -1, 2, 0, 0, 0, 0, 0 }, + + /* 11-20 */ + { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 2, -5, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -1, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -8, 3, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 6, -8, 3, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 0 }, + + /* 21-30 */ + { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 1, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 1, -1, 1, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, -1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + + /* 31-40 */ + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 1 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, -1, 0, 0, 0 }, + + /* 41-50 */ + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, -2, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 2 }, + { 1, 0, 0, 0, 0, 0,-18, 16, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2 }, + + /* 51-60 */ + { 0, 0, 1, -1, 1, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 0, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 2 }, + { 1, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1 }, + { 1, 0, -2, 0, -2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 2, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + + /* 61-70 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, -2 }, + { 0, 0, 1, -1, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8,-11, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0 }, + + /* 71-80 */ + { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -2, 0, 0, 0, 2 }, + { 0, 0, 1, -1, 1, 0, 0, -5, 8, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0 }, + + /* 81-90 */ + { 2, 0, 0, -2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, -1 }, + { 2, 0, 0, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 8,-13, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 0, 0, -2, 5, 0, 0, 0 }, + { 1, 0, 0, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2 }, + { 1, 0, 0, 0, -1, 0,-18, 16, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, -5, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, + + /* 91-100 */ + { 1, 0, 0, -2, 0, 0, 19,-21, 3, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -8, 13, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 }, + { 1, 0, 0, 0, 1, 0,-18, 16, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 6,-16, 4, 5, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0, -2 }, + + /* 101-110 */ + { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 }, + { 2, 0, 0, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, -1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 }, + + /* 111-120 */ + { 0, 0, 0, 0, 1, 0, 0, 1, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2 }, + { 0, 0, 2, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, -6, 8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, + + /* 121-130 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8,-10, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, -2 }, + { 1, 0, 0, -1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + + /* 131-140 */ + { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, -3, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 1, 0, 2, -3, 0, 0, 0, 0, 0, 0 }, + + /* 141-150 */ + { 1, 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 9,-11, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -4, 5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, -1, 0, 0, 0, 2 }, + + /* 151-160 */ + { 1, 0, 0, -1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, -4, 10, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, -2 }, + { 0, 0, 2, -2, 1, 0, -4, 4, 0, 0, 0, 0, 0, 0 }, + + /* 161-170 */ + { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 2 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 2, 0 }, + { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -9, 13, 0, 0, 0, 0, 0 }, + { 2, 0, 2, 0, 2, 0, 0, 2, 0, -3, 0, 0, 0, 0 }, + + /* 171-180 */ + { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, 2, 0, 0, 0 }, + { 1, 0, 0, -1, -1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1 }, + { 1, 0, 2, 0, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 1, 0, -2, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -2, 4, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0 }, + + /* 181-190 */ + { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -8, 3, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 7, -8, 3, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 1, 0, -3, 5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 1 }, + + /* 191-200 */ + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7,-10, 0, 0, 0, 0, 0, -2 }, + { 1, 0, 0, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 1, -1, 1, 0, 0, -9, 15, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0 }, + + /* 201-210 */ + { 0, 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -1, 0, 0, 2 }, + { 2, 0, 0, -2, 1, 0, -6, 8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 1, -1, 1, 0, 3, -6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 8,-14, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + + /* 211-220 */ + { 0, 0, 0, 0, 1, 0, 0, 8,-15, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 2 }, + { 2, 0, -1, -1, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, + + /* 221-230 */ + { 2, 0, 0, -2, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -9, 4, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, -2 }, + + /* 231-240 */ + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -4, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1 }, + { 0, 0, 0, 0, 0, 0, 7,-11, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 3, -5, 4, 0, 0, 0, 0, 2 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0 }, + { 2, 0, 0, 0, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, -1 }, + + /* 241-250 */ + { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 2, -4, 0, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 3, -5, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -3, 0, 0, 0, 2 }, + { 0, 0, 2, -2, 2, 0, -8, 11, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -2, 0, 0, 0 }, + + /* 251-260 */ + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, -2, -2, -2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 1 }, + + /* 261-270 */ + { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, -5, 0, 0, 2 }, + { 2, 0, 0, -2, -1, 0, 0, -2, 0, 0, 5, 0, 0, 0 }, + { 2, 0, 0, -2, -1, 0, -6, 8, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, -5, 0, 0, 2 }, + { 0, 0, 0, 0, 1, 0, 3, -7, 4, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + + /* 271-280 */ + { 0, 0, 1, -1, 0, 0, 0, -1, 0, -2, 5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 6,-15, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2 }, + { 1, 0, 0, -1, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -3, 7, -4, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, 0, -2, 0, 0, 0, 2 }, + + /* 281-290 */ + { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 2, -2, 2, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, -2 }, + + /* 291-300 */ + { 0, 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 9,-12, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 1, -1, 0, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, -1 }, + + /* 301-310 */ + { 0, 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 1, -1, -1, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 0, 0, -2 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 3, -1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -2, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 2 }, + + /* 311-320 */ + { 0, 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 3, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 2, -4, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1 }, + { 0, 0, 1, -1, 2, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2 }, + { 0, 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + + /* 321-330 */ + { 0, 0, 2, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, 0, -3, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 }, + { 2, 0, -1, -1, -1, 0, 0, -1, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 5,-10, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 2, -2, 1, -1, 0, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 2, 0, 0 }, + + /* 331-340 */ + { 0, 0, 0, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -8, 11, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -2, 0, 0, 2, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 2, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 2, -6, 0, 0, 0, 0, 0, -2 }, + + /* 341-350 */ + { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -2, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 2 }, + { 0, 0, 2, -2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 8,-10, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 1 }, + + /* 351-360 */ + { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -4, 0, 0, 0, 0 }, + { 2, 0, 0, -2, -1, 0, 0, -5, 6, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, -2 }, + { 2, 0, -1, -1, -1, 0, 0, 3, -7, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, + + /* 361-370 */ + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 4, -3, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 1, 0, 0, -6, 8, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 6, -5, 0, 0, 0, 0, 2 }, + { 1, 0, -2, -2, -2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1 }, + + /* 371-380 */ + { 0, 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -2, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 3, -5, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 2 }, + + /* 381-390 */ + { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -8, 15, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, -2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 2, 0, -1, -1, -1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + { 1, 0, 2, -2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 1, 0, -1, 1, -1, 0,-18, 17, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 2, -2, -1, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + + /* 391-400 */ + { 0, 0, 0, 0, 1, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8,-16, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 }, + { 0, 0, 0, 0, 2, 0, 0, -1, 2, 0, 0, 0, 0, 0 }, + { 2, 0, -1, -1, -2, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, -2, 4, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2 }, + { 2, 0, 0, -2, -1, 0, 0, -2, 0, 4, -5, 0, 0, 0 }, + + /* 401-410 */ + { 2, 0, 0, -2, -1, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 2, 0, -1, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -1, -1, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, + { 1, 0, -1, -1, -1, 0, 20,-20, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 1, -2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -2, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 5, -8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0 }, + + /* 411-420 */ + { 0, 0, 0, 0, 0, 0, 9,-11, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, -2, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, 0, -1, 0, -2, 5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0 }, + + /* 421-430 */ + { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -6, 0, 0, 0, 0, -2 }, + { 1, 0, 0, -2, 0, 0, 20,-21, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8,-12, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 8,-12, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, 0 }, + + /* 431-440 */ + { 0, 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -7, 0, 0, 0, 0, -2 }, + { 1, 0, 0, -1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, + { 1, 0, -2, 0, -2, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -9, 17, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, 0, -2 }, + { 1, 0, -2, -2, -2, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 1, 0, -1, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + + /* 441-450 */ + { 0, 0, 2, -2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, 1, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5,-10, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, -4, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, -5, 0, 0, 0, -2 }, + + /* 451-460 */ + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -5, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 1 }, + { 1, 0, 0, -2, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -7, 4, 0, 0, 0, 0, 0 }, + { 2, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 1, 0, -2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, -2 }, + + /* 461-470 */ + { 1, 0, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -3, 0, 3, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, -5, 5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 1, -3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -4, 6, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, + + /* 471-480 */ + { 0, 0, 0, 0, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7,-10, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 3, -8, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 2 }, + + /* 481-490 */ + { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -2, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1 }, + { 2, 0, 0, -2, -1, 0, 0, -6, 8, 0, 0, 0, 0, 0 }, + { 2, 0, -1, -1, 1, 0, 0, 3, -7, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -7, 9, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, -1 }, + + /* 491-500 */ + { 0, 0, 1, -1, 2, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 1, 0, 0, -5, 6, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, -1, 0, 0, -2, 0, 3, -1, 0, 0, 0 }, + { 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 1, 0, 0, -2, -1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + + /* 501-510 */ + { 1, 0, 0, -1, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, + { 1, 0, -1, 0, -1, 0, -3, 5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -4, 4, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, -8, 11, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 0, 0, 0, -9, 13, 0, 0, 0, 0, 0 }, + { 0, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, 1, -4, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, -3, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 7,-13, 0, 0, 0, 0, 0 }, + + /* 511-520 */ + { 0, 0, 0, 0, 1, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 7,-11, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 1 }, + + /* 521-530 */ + { 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + + /* 531-540 */ + { 2, 0, 0, -2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 17,-16, 0, -2, 0, 0, 0, 0 }, + { 1, 0, 0, -1, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -4, 0, 0, 0, 0 }, + + /* 541-550 */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2 }, + { 2, 0, 0, -2, 0, 0, 0, -4, 4, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 2, 2, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + + /* 551-560 */ + { 1, 0, 0, -2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 0, 0, -4, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, -4, 5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 2, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, + + /* 561-570 */ + { 0, 0, 0, 0, 0, 0, 8, -9, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0 }, + { 2, 0, -2, -2, -2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 1, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, -1, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, 2, -3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, + + /* 571-580 */ + { 0, 0, 2, 0, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 0, 2, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, + { 2, 0, 2, -2, 2, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 2, 0, 1, -3, 1, 0, -6, 7, 0, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 2, -5, 0, 0, 0, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 5, -5, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 1, 5, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 0, 5, 0, 0, 0 }, + + /* 581-590 */ + { 2, 0, 0, -2, 0, 0, 0, -2, 0, 0, 2, 0, 0, 0 }, + { 2, 0, 0, -2, 0, 0, -4, 4, 0, 0, 0, 0, 0, 0 }, + { 2, 0, -2, 0, -2, 0, 0, 5, -9, 0, 0, 0, 0, 0 }, + { 2, 0, -1, -1, 0, 0, 0, -1, 0, 3, 0, 0, 0, 0 }, + { 1, 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, + { 1, 0, 2, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, + { 1, 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 2, -2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + + /* 591-600 */ + { 1, 0, 0, 0, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, + { 1, 0, 0, -2, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, + { 1, 0, -2, -2, -2, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, + { 1, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, -1, -1, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0 }, + { 0, 0, 2, 2, 2, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0, -2, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 1, 0, 0,-10, 15, 0, 0, 0, 0, 0 }, + { 0, 0, 2, -2, 0, -1, 0, 2, 0, 0, 0, 0, 0, 0 }, + + /* 601-610 */ + { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, -1, 0, 0, 0 }, + { 0, 0, 1, -1, 2, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -4, 6, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -2, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, -1, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 2, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, + + /* 611-620 */ + { 0, 0, 0, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 2, 0, -3, 5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 9,-13, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 8,-14, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 8,-11, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -2 }, + + /* 621-630 */ + { 0, 0, 0, 0, 0, 0, 5, -6, -4, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 3, -3, 0, 2, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 7,-12, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, -2 }, + + /* 631-640 */ + { 0, 0, 0, 0, 0, 0, 0, 6, -8, 1, 5, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5, 0, -4, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, -1 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 5,-16, 4, 5, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 5,-13, 0, 0, 0, 0, -2 }, + + /* 641-650 */ + { 0, 0, 0, 0, 0, 0, 0, 3, 0, -5, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -9, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 3, -7, 0, 0, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -3, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 2, -8, 1, 5, 0, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -5, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -3, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 5, 0, 0, 0 }, + + /* 651-NFPL */ + { 0, 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -6, 3, 0, -2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } + }; + +/* Number of frequencies: planetary */ + static const int NFPL = (int) (sizeof mfapl / sizeof (int) / 14); + +/* Pointers into amplitudes array, one pointer per frequency */ + static const int nc[] = { + + /* 1-100 */ + 1, 21, 37, 51, 65, 79, 91, 103, 115, 127, + 139, 151, 163, 172, 184, 196, 207, 219, 231, 240, + 252, 261, 273, 285, 297, 309, 318, 327, 339, 351, + 363, 372, 384, 396, 405, 415, 423, 435, 444, 452, + 460, 467, 474, 482, 490, 498, 506, 513, 521, 528, + 536, 543, 551, 559, 566, 574, 582, 590, 597, 605, + 613, 620, 628, 636, 644, 651, 658, 666, 674, 680, + 687, 695, 702, 710, 717, 725, 732, 739, 746, 753, + 760, 767, 774, 782, 790, 798, 805, 812, 819, 826, + 833, 840, 846, 853, 860, 867, 874, 881, 888, 895, + + /* 101-200 */ + 901, 908, 914, 921, 928, 934, 941, 948, 955, 962, + 969, 976, 982, 989, 996, 1003, 1010, 1017, 1024, 1031, + 1037, 1043, 1050, 1057, 1064, 1071, 1078, 1084, 1091, 1098, + 1104, 1112, 1118, 1124, 1131, 1138, 1145, 1151, 1157, 1164, + 1171, 1178, 1185, 1192, 1199, 1205, 1212, 1218, 1226, 1232, + 1239, 1245, 1252, 1259, 1266, 1272, 1278, 1284, 1292, 1298, + 1304, 1310, 1316, 1323, 1329, 1335, 1341, 1347, 1353, 1359, + 1365, 1371, 1377, 1383, 1389, 1396, 1402, 1408, 1414, 1420, + 1426, 1434, 1440, 1446, 1452, 1459, 1465, 1471, 1477, 1482, + 1488, 1493, 1499, 1504, 1509, 1514, 1520, 1527, 1532, 1538, + + /* 201-300 */ + 1543, 1548, 1553, 1558, 1564, 1569, 1574, 1579, 1584, 1589, + 1594, 1596, 1598, 1600, 1602, 1605, 1608, 1610, 1612, 1617, + 1619, 1623, 1625, 1627, 1629, 1632, 1634, 1640, 1642, 1644, + 1646, 1648, 1650, 1652, 1654, 1658, 1660, 1662, 1664, 1668, + 1670, 1672, 1673, 1675, 1679, 1681, 1683, 1684, 1686, 1688, + 1690, 1693, 1695, 1697, 1701, 1703, 1705, 1707, 1709, 1711, + 1712, 1715, 1717, 1721, 1723, 1725, 1727, 1729, 1731, 1733, + 1735, 1737, 1739, 1741, 1743, 1745, 1747, 1749, 1751, 1753, + 1755, 1757, 1759, 1761, 1762, 1764, 1766, 1768, 1769, 1771, + 1773, 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1788, 1790, + + /* 301-400 */ + 1792, 1794, 1796, 1798, 1800, 1802, 1804, 1806, 1807, 1809, + 1811, 1815, 1817, 1819, 1821, 1823, 1825, 1827, 1829, 1831, + 1833, 1835, 1837, 1839, 1840, 1842, 1844, 1848, 1850, 1852, + 1854, 1856, 1858, 1859, 1860, 1862, 1864, 1866, 1868, 1869, + 1871, 1873, 1875, 1877, 1879, 1881, 1883, 1885, 1887, 1889, + 1891, 1892, 1896, 1898, 1900, 1901, 1903, 1905, 1907, 1909, + 1910, 1911, 1913, 1915, 1919, 1921, 1923, 1927, 1929, 1931, + 1933, 1935, 1937, 1939, 1943, 1945, 1947, 1948, 1949, 1951, + 1953, 1955, 1957, 1958, 1960, 1962, 1964, 1966, 1968, 1970, + 1971, 1973, 1974, 1975, 1977, 1979, 1980, 1981, 1982, 1984, + + /* 401-500 */ + 1986, 1988, 1990, 1992, 1994, 1995, 1997, 1999, 2001, 2003, + 2005, 2007, 2008, 2009, 2011, 2013, 2015, 2017, 2019, 2021, + 2023, 2024, 2025, 2027, 2029, 2031, 2033, 2035, 2037, 2041, + 2043, 2045, 2046, 2047, 2049, 2051, 2053, 2055, 2056, 2057, + 2059, 2061, 2063, 2065, 2067, 2069, 2070, 2071, 2072, 2074, + 2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, + 2095, 2096, 2097, 2099, 2101, 2105, 2106, 2107, 2108, 2109, + 2110, 2111, 2113, 2115, 2119, 2121, 2123, 2125, 2127, 2129, + 2131, 2133, 2135, 2136, 2137, 2139, 2141, 2143, 2145, 2147, + 2149, 2151, 2153, 2155, 2157, 2159, 2161, 2163, 2165, 2167, + + /* 501-600 */ + 2169, 2171, 2173, 2175, 2177, 2179, 2181, 2183, 2185, 2186, + 2187, 2188, 2192, 2193, 2195, 2197, 2199, 2201, 2203, 2205, + 2207, 2209, 2211, 2213, 2217, 2219, 2221, 2223, 2225, 2227, + 2229, 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, + 2241, 2244, 2246, 2248, 2250, 2252, 2254, 2256, 2258, 2260, + 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280, + 2282, 2284, 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300, + 2302, 2303, 2304, 2305, 2306, 2307, 2309, 2311, 2313, 2315, + 2317, 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, 2335, + 2337, 2341, 2343, 2345, 2347, 2349, 2351, 2352, 2355, 2356, + + /* 601-700 */ + 2357, 2358, 2359, 2361, 2363, 2364, 2365, 2366, 2367, 2368, + 2369, 2370, 2371, 2372, 2373, 2374, 2376, 2378, 2380, 2382, + 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, + 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, + 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, + 2414, 2415, 2417, 2418, 2430, 2438, 2445, 2453, 2460, 2468, + 2474, 2480, 2488, 2496, 2504, 2512, 2520, 2527, 2535, 2543, + 2550, 2558, 2566, 2574, 2580, 2588, 2596, 2604, 2612, 2619, + 2627, 2634, 2642, 2648, 2656, 2664, 2671, 2679, 2685, 2693, + 2701, 2709, 2717, 2725, 2733, 2739, 2747, 2753, 2761, 2769, + + /* 701-800 */ + 2777, 2785, 2793, 2801, 2809, 2817, 2825, 2833, 2841, 2848, + 2856, 2864, 2872, 2878, 2884, 2892, 2898, 2906, 2914, 2922, + 2930, 2938, 2944, 2952, 2958, 2966, 2974, 2982, 2988, 2996, + 3001, 3009, 3017, 3025, 3032, 3039, 3045, 3052, 3059, 3067, + 3069, 3076, 3083, 3090, 3098, 3105, 3109, 3111, 3113, 3120, + 3124, 3128, 3132, 3136, 3140, 3144, 3146, 3150, 3158, 3161, + 3165, 3166, 3168, 3172, 3176, 3180, 3182, 3185, 3189, 3193, + 3194, 3197, 3200, 3204, 3208, 3212, 3216, 3219, 3221, 3222, + 3226, 3230, 3234, 3238, 3242, 3243, 3247, 3251, 3254, 3258, + 3262, 3266, 3270, 3274, 3275, 3279, 3283, 3287, 3289, 3293, + + /* 801-900 */ + 3296, 3300, 3303, 3307, 3311, 3315, 3319, 3321, 3324, 3327, + 3330, 3334, 3338, 3340, 3342, 3346, 3350, 3354, 3358, 3361, + 3365, 3369, 3373, 3377, 3381, 3385, 3389, 3393, 3394, 3398, + 3402, 3406, 3410, 3413, 3417, 3421, 3425, 3429, 3433, 3435, + 3439, 3443, 3446, 3450, 3453, 3457, 3458, 3461, 3464, 3468, + 3472, 3476, 3478, 3481, 3485, 3489, 3493, 3497, 3501, 3505, + 3507, 3511, 3514, 3517, 3521, 3524, 3525, 3527, 3529, 3533, + 3536, 3540, 3541, 3545, 3548, 3551, 3555, 3559, 3563, 3567, + 3569, 3570, 3574, 3576, 3578, 3582, 3586, 3590, 3593, 3596, + 3600, 3604, 3608, 3612, 3616, 3620, 3623, 3626, 3630, 3632, + + /* 901-1000 */ + 3636, 3640, 3643, 3646, 3648, 3652, 3656, 3660, 3664, 3667, + 3669, 3671, 3675, 3679, 3683, 3687, 3689, 3693, 3694, 3695, + 3699, 3703, 3705, 3707, 3710, 3713, 3717, 3721, 3725, 3729, + 3733, 3736, 3740, 3744, 3748, 3752, 3754, 3757, 3759, 3763, + 3767, 3770, 3773, 3777, 3779, 3783, 3786, 3790, 3794, 3798, + 3801, 3805, 3809, 3813, 3817, 3821, 3825, 3827, 3831, 3835, + 3836, 3837, 3840, 3844, 3848, 3852, 3856, 3859, 3863, 3867, + 3869, 3871, 3875, 3879, 3883, 3887, 3890, 3894, 3898, 3901, + 3905, 3909, 3913, 3917, 3921, 3922, 3923, 3924, 3926, 3930, + 3932, 3936, 3938, 3940, 3944, 3948, 3952, 3956, 3959, 3963, + + /* 1001-1100 */ + 3965, 3969, 3973, 3977, 3979, 3981, 3982, 3986, 3989, 3993, + 3997, 4001, 4004, 4006, 4009, 4012, 4016, 4020, 4024, 4026, + 4028, 4032, 4036, 4040, 4044, 4046, 4050, 4054, 4058, 4060, + 4062, 4063, 4064, 4068, 4071, 4075, 4077, 4081, 4083, 4087, + 4089, 4091, 4095, 4099, 4101, 4103, 4105, 4107, 4111, 4115, + 4119, 4123, 4127, 4129, 4131, 4135, 4139, 4141, 4143, 4145, + 4149, 4153, 4157, 4161, 4165, 4169, 4173, 4177, 4180, 4183, + 4187, 4191, 4195, 4198, 4201, 4205, 4209, 4212, 4213, 4216, + 4217, 4221, 4223, 4226, 4230, 4234, 4236, 4240, 4244, 4248, + 4252, 4256, 4258, 4262, 4264, 4266, 4268, 4270, 4272, 4276, + + /* 1101-1200 */ + 4279, 4283, 4285, 4287, 4289, 4293, 4295, 4299, 4300, 4301, + 4305, 4309, 4313, 4317, 4319, 4323, 4325, 4329, 4331, 4333, + 4335, 4337, 4341, 4345, 4349, 4351, 4353, 4357, 4361, 4365, + 4367, 4369, 4373, 4377, 4381, 4383, 4387, 4389, 4391, 4395, + 4399, 4403, 4407, 4411, 4413, 4414, 4415, 4418, 4419, 4421, + 4423, 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4443, 4446, + 4450, 4452, 4456, 4458, 4460, 4462, 4466, 4469, 4473, 4477, + 4481, 4483, 4487, 4489, 4491, 4493, 4497, 4499, 4501, 4504, + 4506, 4510, 4513, 4514, 4515, 4518, 4521, 4522, 4525, 4526, + 4527, 4530, 4533, 4534, 4537, 4541, 4542, 4543, 4544, 4545, + + /* 1201-1300 */ + 4546, 4547, 4550, 4553, 4554, 4555, 4558, 4561, 4564, 4567, + 4568, 4571, 4574, 4575, 4578, 4581, 4582, 4585, 4586, 4588, + 4590, 4592, 4596, 4598, 4602, 4604, 4608, 4612, 4613, 4616, + 4619, 4622, 4623, 4624, 4625, 4626, 4629, 4632, 4633, 4636, + 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4648, 4649, 4650, + 4651, 4652, 4653, 4656, 4657, 4660, 4661, 4664, 4667, 4670, + 4671, 4674, 4675, 4676, 4677, 4678, 4681, 4682, 4683, 4684, + 4687, 4688, 4689, 4692, 4693, 4696, 4697, 4700, 4701, 4702, + 4703, 4704, 4707, 4708, 4711, 4712, 4715, 4716, 4717, 4718, + 4719, 4720, 4721, 4722, 4723, 4726, 4729, 4730, 4733, 4736, + + /* 1301-(NFLS+NFPL) */ + 4737, 4740, 4741, 4742, 4745, 4746, 4749, 4752, 4753 + }; + +/* Amplitude coefficients (microarcsec); indexed using the nc array. */ + static const double a[] = { + + /* 1-105 */ + -6844318.44, 9205236.26,1328.67,1538.18, 205833.11, + 153041.79, -3309.73, 853.32,2037.98, -2301.27, + 81.46, 120.56, -20.39, -15.22, 1.73, -1.61, -0.10, 0.11, + -0.02, -0.02, -523908.04, 573033.42,-544.75,-458.66, + 12814.01, 11714.49, 198.97,-290.91, 155.74,-143.27, + -2.75, -1.03, -1.27, -1.16, 0.00, -0.01, -90552.22, + 97846.69, 111.23, 137.41,2187.91,2024.68, 41.44, -51.26, + 26.92, -24.46, -0.46, -0.28, -0.22, -0.20, 82168.76, + -89618.24, -27.64, -29.05, -2004.36, -1837.32, + -36.07, 48.00, -24.43, 22.41, 0.47, 0.24, 0.20, 0.18, + 58707.02,7387.02, 470.05,-192.40, 164.33, -1312.21, + -179.73, -28.93, -17.36, -1.83, -0.50, 3.57, 0.00, 0.13, + -20557.78, 22438.42, -20.84, -17.40, 501.82, 459.68, + 59.20, -67.30, 6.08, -5.61, -1.36, -1.19, 28288.28, + -674.99, -34.69, 35.80, -15.07,-632.54, -11.19, 0.78, -8.41, + 0.17, 0.01, 0.07, -15406.85, 20069.50, 15.12, + + /* 106-219 */ + 31.80, 448.76, 344.50, -5.77, 1.41, 4.59, -5.02, 0.17, + 0.24, -11991.74, 12902.66, 32.46, 36.70, 288.49, + 268.14, 5.70, -7.06, 3.57, -3.23, -0.06, -0.04, + -8584.95, -9592.72, 4.42, -13.20,-214.50, 192.06, + 23.87, 29.83, 2.54, 2.40, 0.60, -0.48,5095.50, + -6918.22, 7.19, 3.92,-154.91,-113.94, 2.86, -1.04, + -1.52, 1.73, -0.07, -0.10, -4910.93, -5331.13, + 0.76, 0.40,-119.21, 109.81, 2.16, 3.20, 1.46, 1.33, + 0.04, -0.02, -6245.02,-123.48, -6.68, -8.20, -2.76, + 139.64, 2.71, 0.15, 1.86,2511.85, -3323.89, 1.07, + -0.90, -74.33, -56.17, 1.16, -0.01, -0.75, 0.83, -0.02, + -0.04,2307.58,3143.98, -7.52, 7.50, 70.31, -51.60, 1.46, + 0.16, -0.69, -0.79, 0.02, -0.05,2372.58,2554.51, 5.93, + -6.60, 57.12, -53.05, -0.96, -1.24, -0.71, -0.64, -0.01, + -2053.16,2636.13, 5.13, 7.80, 58.94, 45.91, -0.42, + -0.12, 0.61, -0.66, 0.02, 0.03, -1825.49, + + /* 220-339 */ + -2423.59, 1.23, -2.00, -54.19, 40.82, -1.07, -1.02, + 0.54, 0.61, -0.04, 0.04,2521.07,-122.28, -5.97, 2.90, + -2.73, -56.37, -0.82, 0.13, -0.75, -1534.09,1645.01, + 6.29, 6.80, 36.78, 34.30, 0.92, -1.25, 0.46, -0.41, + -0.02, -0.01,1898.27, 47.70, -0.72, 2.50, 1.07, -42.45, + -0.94, 0.02, -0.56, -1292.02, -1387.00, 0.00, + 0.00, -31.01, 28.89, 0.68, 0.00, 0.38, 0.35, -0.01, + -0.01, -1234.96,1323.81, 5.21, 5.90, 29.60, 27.61, + 0.74, -1.22, 0.37, -0.33, -0.02, -0.01,1137.48, + -1233.89, -0.04, -0.30, -27.59, -25.43, -0.61, 1.00, + -0.34, 0.31, 0.01, 0.01,-813.13, -1075.60, 0.40, + 0.30, -24.05, 18.18, -0.40, -0.01, 0.24, 0.27, -0.01, + 0.01,1163.22, -60.90, -2.94, 1.30, -1.36, -26.01, -0.58, + 0.07, -0.35,1029.70, -55.55, -2.63, 1.10, -1.25, -23.02, + -0.52, 0.06, -0.31,-556.26, 852.85, 3.16, -4.48, 19.06, + 12.44, -0.81, -0.27, 0.17, -0.21, 0.00, 0.02,-603.52, + + /* 340-467 */ + -800.34, 0.44, 0.10, -17.90, 13.49, -0.08, -0.01, 0.18, + 0.20, -0.01, 0.01,-628.24, 684.99, -0.64, -0.50, 15.32, + 14.05, 3.18, -4.19, 0.19, -0.17, -0.09, -0.07,-866.48, + -16.26, 0.52, -1.30, -0.36, 19.37, 0.43, -0.01, 0.26, + -512.37, 695.54, -1.47, -1.40, 15.55, 11.46, -0.16, 0.03, + 0.15, -0.17, 0.01, 0.01, 506.65, 643.75, 2.54, -2.62, + 14.40, -11.33, -0.77, -0.06, -0.15, -0.16, 0.00, 0.01, + 664.57, 16.81, -0.40, 1.00, 0.38, -14.86, -3.71, -0.09, + -0.20, 405.91, 522.11, 0.99, -1.50, 11.67, -9.08, -0.25, + -0.02, -0.12, -0.13,-305.78, 326.60, 1.75, 1.90, 7.30, + 6.84, 0.20, -0.04, 300.99,-325.03, -0.44, -0.50, -7.27, + -6.73, -1.01, 0.01, 0.00, 0.08, 0.00, 0.02, 438.51, + 10.47, -0.56, -0.20, 0.24, -9.81, -0.24, 0.01, -0.13, + -264.02, 335.24, 0.99, 1.40, 7.49, 5.90, -0.27, -0.02, + 284.09, 307.03, 0.32, -0.40, 6.87, -6.35, -0.99, -0.01, + -250.54, 327.11, 0.08, 0.40, 7.31, 5.60, -0.30, 230.72, + + /* 468-595 */ + -304.46, 0.08, -0.10, -6.81, -5.16, 0.27, 229.78, 304.17, + -0.60, 0.50, 6.80, -5.14, 0.33, 0.01, 256.30,-276.81, + -0.28, -0.40, -6.19, -5.73, -0.14, 0.01,-212.82, 269.45, + 0.84, 1.20, 6.02, 4.76, 0.14, -0.02, 196.64, 272.05, + -0.84, 0.90, 6.08, -4.40, 0.35, 0.02, 188.95, 272.22, + -0.12, 0.30, 6.09, -4.22, 0.34,-292.37, -5.10, -0.32, + -0.40, -0.11, 6.54, 0.14, 0.01, 161.79,-220.67, 0.24, + 0.10, -4.93, -3.62, -0.08, 261.54, -19.94, -0.95, 0.20, + -0.45, -5.85, -0.13, 0.02, 142.16,-190.79, 0.20, 0.10, + -4.27, -3.18, -0.07, 187.95, -4.11, -0.24, 0.30, -0.09, + -4.20, -0.09, 0.01, 0.00, 0.00, -79.08, 167.90, 0.04, + 0.00, 3.75, 1.77, 121.98, 131.04, -0.08, 0.10, 2.93, + -2.73, -0.06,-172.95, -8.11, -0.40, -0.20, -0.18, 3.87, + 0.09, 0.01,-160.15, -55.30, -14.04, 13.90, -1.23, 3.58, + 0.40, 0.31,-115.40, 123.20, 0.60, 0.70, 2.75, 2.58, + 0.08, -0.01,-168.26, -2.00, 0.20, -0.20, -0.04, 3.76, + + /* 596-723 */ + 0.08,-114.49, 123.20, 0.32, 0.40, 2.75, 2.56, 0.07, + -0.01, 112.14, 120.70, 0.28, -0.30, 2.70, -2.51, -0.07, + -0.01, 161.34, 4.03, 0.20, 0.20, 0.09, -3.61, -0.08, + 91.31, 126.64, -0.40, 0.40, 2.83, -2.04, -0.04, 0.01, + 105.29, 112.90, 0.44, -0.50, 2.52, -2.35, -0.07, -0.01, + 98.69,-106.20, -0.28, -0.30, -2.37, -2.21, -0.06, 0.01, + 86.74,-112.94, -0.08, -0.20, -2.53, -1.94, -0.05,-134.81, + 3.51, 0.20, -0.20, 0.08, 3.01, 0.07, 79.03, 107.31, + -0.24, 0.20, 2.40, -1.77, -0.04, 0.01, 132.81, -10.77, + -0.52, 0.10, -0.24, -2.97, -0.07, 0.01,-130.31, -0.90, + 0.04, 0.00, 0.00, 2.91, -78.56, 85.32, 0.00, 0.00, + 1.91, 1.76, 0.04, 0.00, 0.00, -41.53, 89.10, 0.02, + 0.00, 1.99, 0.93, 66.03, -71.00, -0.20, -0.20, -1.59, + -1.48, -0.04, 60.50, 64.70, 0.36, -0.40, 1.45, -1.35, + -0.04, -0.01, -52.27, -70.01, 0.00, 0.00, -1.57, 1.17, + 0.03, -52.95, 66.29, 0.32, 0.40, 1.48, 1.18, 0.04, + + /* 724-851 */ + -0.01, 51.02, 67.25, 0.00, 0.00, 1.50, -1.14, -0.03, + -55.66, -60.92, 0.16, -0.20, -1.36, 1.24, 0.03, -54.81, + -59.20, -0.08, 0.20, -1.32, 1.23, 0.03, 51.32, -55.60, + 0.00, 0.00, -1.24, -1.15, -0.03, 48.29, 51.80, 0.20, + -0.20, 1.16, -1.08, -0.03, -45.59, -49.00, -0.12, 0.10, + -1.10, 1.02, 0.03, 40.54, -52.69, -0.04, -0.10, -1.18, + -0.91, -0.02, -40.58, -49.51, -1.00, 1.00, -1.11, 0.91, + 0.04, 0.02, -43.76, 46.50, 0.36, 0.40, 1.04, 0.98, + 0.03, -0.01, 62.65, -5.00, -0.24, 0.00, -0.11, -1.40, + -0.03, 0.01, -38.57, 49.59, 0.08, 0.10, 1.11, 0.86, + 0.02, -33.22, -44.04, 0.08, -0.10, -0.98, 0.74, 0.02, + 37.15, -39.90, -0.12, -0.10, -0.89, -0.83, -0.02, 36.68, + -39.50, -0.04, -0.10, -0.88, -0.82, -0.02, -53.22, -3.91, + -0.20, 0.00, -0.09, 1.19, 0.03, 32.43, -42.19, -0.04, + -0.10, -0.94, -0.73, -0.02, -51.00, -2.30, -0.12, -0.10, + 0.00, 1.14, -29.53, -39.11, 0.04, 0.00, -0.87, 0.66, + + /* 852-979 */ + 0.02, 28.50, -38.92, -0.08, -0.10, -0.87, -0.64, -0.02, + 26.54, 36.95, -0.12, 0.10, 0.83, -0.59, -0.01, 26.54, + 34.59, 0.04, -0.10, 0.77, -0.59, -0.02, 28.35, -32.55, + -0.16, 0.20, -0.73, -0.63, -0.01, -28.00, 30.40, 0.00, + 0.00, 0.68, 0.63, 0.01, -27.61, 29.40, 0.20, 0.20, + 0.66, 0.62, 0.02, 40.33, 0.40, -0.04, 0.10, 0.00, + -0.90, -23.28, 31.61, -0.08, -0.10, 0.71, 0.52, 0.01, + 37.75, 0.80, 0.04, 0.10, 0.00, -0.84, 23.66, 25.80, + 0.00, 0.00, 0.58, -0.53, -0.01, 21.01, -27.91, 0.00, + 0.00, -0.62, -0.47, -0.01, -34.81, 2.89, 0.04, 0.00, + 0.00, 0.78, -23.49, -25.31, 0.00, 0.00, -0.57, 0.53, + 0.01, -23.47, 25.20, 0.16, 0.20, 0.56, 0.52, 0.02, + 19.58, 27.50, -0.12, 0.10, 0.62, -0.44, -0.01, -22.67, + -24.40, -0.08, 0.10, -0.55, 0.51, 0.01, -19.97, 25.00, + 0.12, 0.20, 0.56, 0.45, 0.01, 21.28, -22.80, -0.08, + -0.10, -0.51, -0.48, -0.01, -30.47, 0.91, 0.04, 0.00, + + /* 980-1107 */ + 0.00, 0.68, 18.58, 24.00, 0.04, -0.10, 0.54, -0.42, + -0.01, -18.02, 24.40, -0.04, -0.10, 0.55, 0.40, 0.01, + 17.74, 22.50, 0.08, -0.10, 0.50, -0.40, -0.01, -19.41, + 20.70, 0.08, 0.10, 0.46, 0.43, 0.01, -18.64, 20.11, + 0.00, 0.00, 0.45, 0.42, 0.01, -16.75, 21.60, 0.04, + 0.10, 0.48, 0.37, 0.01, -18.42, -20.00, 0.00, 0.00, + -0.45, 0.41, 0.01, -26.77, 1.41, 0.08, 0.00, 0.00, + 0.60, -26.17, -0.19, 0.00, 0.00, 0.00, 0.59, -15.52, + 20.51, 0.00, 0.00, 0.46, 0.35, 0.01, -25.42, -1.91, + -0.08, 0.00, -0.04, 0.57, 0.45, -17.42, 18.10, 0.00, + 0.00, 0.40, 0.39, 0.01, 16.39, -17.60, -0.08, -0.10, + -0.39, -0.37, -0.01, -14.37, 18.91, 0.00, 0.00, 0.42, + 0.32, 0.01, 23.39, -2.40, -0.12, 0.00, 0.00, -0.52, + 14.32, -18.50, -0.04, -0.10, -0.41, -0.32, -0.01, 15.69, + 17.08, 0.00, 0.00, 0.38, -0.35, -0.01, -22.99, 0.50, + 0.04, 0.00, 0.00, 0.51, 0.00, 0.00, 14.47, -17.60, + + /* 1108-1235 */ + -0.01, 0.00, -0.39, -0.32, -13.33, 18.40, -0.04, -0.10, + 0.41, 0.30, 22.47, -0.60, -0.04, 0.00, 0.00, -0.50, + -12.78, -17.41, 0.04, 0.00, -0.39, 0.29, 0.01, -14.10, + -15.31, 0.04, 0.00, -0.34, 0.32, 0.01, 11.98, 16.21, + -0.04, 0.00, 0.36, -0.27, -0.01, 19.65, -1.90, -0.08, + 0.00, 0.00, -0.44, 19.61, -1.50, -0.08, 0.00, 0.00, + -0.44, 13.41, -14.30, -0.04, -0.10, -0.32, -0.30, -0.01, + -13.29, 14.40, 0.00, 0.00, 0.32, 0.30, 0.01, 11.14, + -14.40, -0.04, 0.00, -0.32, -0.25, -0.01, 12.24, -13.38, + 0.04, 0.00, -0.30, -0.27, -0.01, 10.07, -13.81, 0.04, + 0.00, -0.31, -0.23, -0.01, 10.46, 13.10, 0.08, -0.10, + 0.29, -0.23, -0.01, 16.55, -1.71, -0.08, 0.00, 0.00, + -0.37, 9.75, -12.80, 0.00, 0.00, -0.29, -0.22, -0.01, + 9.11, 12.80, 0.00, 0.00, 0.29, -0.20, 0.00, 0.00, + -6.44, -13.80, 0.00, 0.00, -0.31, 0.14, -9.19, -12.00, + 0.00, 0.00, -0.27, 0.21, -10.30, 10.90, 0.08, 0.10, + + /* 1236-1363 */ + 0.24, 0.23, 0.01, 14.92, -0.80, -0.04, 0.00, 0.00, + -0.33, 10.02, -10.80, 0.00, 0.00, -0.24, -0.22, -0.01, + -9.75, 10.40, 0.04, 0.00, 0.23, 0.22, 0.01, 9.67, + -10.40, -0.04, 0.00, -0.23, -0.22, -0.01, -8.28, -11.20, + 0.04, 0.00, -0.25, 0.19, 13.32, -1.41, -0.08, 0.00, + 0.00, -0.30, 8.27, 10.50, 0.04, 0.00, 0.23, -0.19, + 0.00, 0.00, 13.13, 0.00, 0.00, 0.00, 0.00, -0.29, + -12.93, 0.70, 0.04, 0.00, 0.00, 0.29, 7.91, -10.20, + 0.00, 0.00, -0.23, -0.18, -7.84, -10.00, -0.04, 0.00, + -0.22, 0.18, 7.44, 9.60, 0.00, 0.00, 0.21, -0.17, + -7.64, 9.40, 0.08, 0.10, 0.21, 0.17, 0.01, -11.38, + 0.60, 0.04, 0.00, 0.00, 0.25, -7.48, 8.30, 0.00, + 0.00, 0.19, 0.17, -10.98, -0.20, 0.00, 0.00, 0.00, + 0.25, 10.98, 0.20, 0.00, 0.00, 0.00, -0.25, 7.40, + -7.90, -0.04, 0.00, -0.18, -0.17, -6.09, 8.40, -0.04, + 0.00, 0.19, 0.14, -6.94, -7.49, 0.00, 0.00, -0.17, + + /* 1364-1491 */ + 0.16, 6.92, 7.50, 0.04, 0.00, 0.17, -0.15, 6.20, + 8.09, 0.00, 0.00, 0.18, -0.14, -6.12, 7.80, 0.04, + 0.00, 0.17, 0.14, 5.85, -7.50, 0.00, 0.00, -0.17, + -0.13, -6.48, 6.90, 0.08, 0.10, 0.15, 0.14, 0.01, + 6.32, 6.90, 0.00, 0.00, 0.15, -0.14, 5.61, -7.20, + 0.00, 0.00, -0.16, -0.13, 9.07, 0.00, 0.00, 0.00, + 0.00, -0.20, 5.25, 6.90, 0.00, 0.00, 0.15, -0.12, + -8.47, -0.40, 0.00, 0.00, 0.00, 0.19, 6.32, -5.39, + -1.11, 1.10, -0.12, -0.14, 0.02, 0.02, 5.73, -6.10, + -0.04, 0.00, -0.14, -0.13, 4.70, 6.60, -0.04, 0.00, + 0.15, -0.11, -4.90, -6.40, 0.00, 0.00, -0.14, 0.11, + -5.33, 5.60, 0.04, 0.10, 0.13, 0.12, 0.01, -4.81, + 6.00, 0.04, 0.00, 0.13, 0.11, 5.13, 5.50, 0.04, + 0.00, 0.12, -0.11, 4.50, 5.90, 0.00, 0.00, 0.13, + -0.10, -4.22, 6.10, 0.00, 0.00, 0.14, -4.53, 5.70, + 0.00, 0.00, 0.13, 0.10, 4.18, 5.70, 0.00, 0.00, + + /* 1492-1619 */ + 0.13, -4.75, -5.19, 0.00, 0.00, -0.12, 0.11, -4.06, + 5.60, 0.00, 0.00, 0.13, -3.98, 5.60, -0.04, 0.00, + 0.13, 4.02, -5.40, 0.00, 0.00, -0.12, 4.49, -4.90, + -0.04, 0.00, -0.11, -0.10, -3.62, -5.40, -0.16, 0.20, + -0.12, 0.00, 0.01, 4.38, 4.80, 0.00, 0.00, 0.11, + -6.40, -0.10, 0.00, 0.00, 0.00, 0.14, -3.98, 5.00, + 0.04, 0.00, 0.11, -3.82, -5.00, 0.00, 0.00, -0.11, + -3.71, 5.07, 0.00, 0.00, 0.11, 4.14, 4.40, 0.00, + 0.00, 0.10, -6.01, -0.50, -0.04, 0.00, 0.00, 0.13, + -4.04, 4.39, 0.00, 0.00, 0.10, 3.45, -4.72, 0.00, + 0.00, -0.11, 3.31, 4.71, 0.00, 0.00, 0.11, 3.26, + -4.50, 0.00, 0.00, -0.10, -3.26, -4.50, 0.00, 0.00, + -0.10, -3.34, -4.40, 0.00, 0.00, -0.10, -3.74, -4.00, + 3.70, 4.00, 3.34, -4.30, 3.30, -4.30, -3.66, 3.90, + 0.04, 3.66, 3.90, 0.04, -3.62, -3.90, -3.61, 3.90, + -0.20, 5.30, 0.00, 0.00, 0.12, 3.06, 4.30, 3.30, + + /* 1620-1747 */ + 4.00, 0.40, 0.20, 3.10, 4.10, -3.06, 3.90, -3.30, + -3.60, -3.30, 3.36, 0.01, 3.14, 3.40, -4.57, -0.20, + 0.00, 0.00, 0.00, 0.10, -2.70, -3.60, 2.94, -3.20, + -2.90, 3.20, 2.47, -3.40, 2.55, -3.30, 2.80, -3.08, + 2.51, 3.30, -4.10, 0.30, -0.12, -0.10, 4.10, 0.20, + -2.74, 3.00, 2.46, 3.23, -3.66, 1.20, -0.20, 0.20, + 3.74, -0.40, -2.51, -2.80, -3.74, 2.27, -2.90, 0.00, + 0.00, -2.50, 2.70, -2.51, 2.60, -3.50, 0.20, 3.38, + -2.22, -2.50, 3.26, -0.40, 1.95, -2.60, 3.22, -0.40, + -0.04, -1.79, -2.60, 1.91, 2.50, 0.74, 3.05, -0.04, + 0.08, 2.11, -2.30, -2.11, 2.20, -1.87, -2.40, 2.03, + -2.20, -2.03, 2.20, 2.98, 0.00, 0.00, 2.98, -1.71, + 2.40, 2.94, -0.10, -0.12, 0.10, 1.67, 2.40, -1.79, + 2.30, -1.79, 2.20, -1.67, 2.20, 1.79, -2.00, 1.87, + -1.90, 1.63, -2.10, -1.59, 2.10, 1.55, -2.10, -1.55, + 2.10, -2.59, -0.20, -1.75, -1.90, -1.75, 1.90, -1.83, + + /* 1748-1875 */ + -1.80, 1.51, 2.00, -1.51, -2.00, 1.71, 1.80, 1.31, + 2.10, -1.43, 2.00, 1.43, 2.00, -2.43, -1.51, 1.90, + -1.47, 1.90, 2.39, 0.20, -2.39, 1.39, 1.90, 1.39, + -1.80, 1.47, -1.60, 1.47, -1.60, 1.43, -1.50, -1.31, + 1.60, 1.27, -1.60, -1.27, 1.60, 1.27, -1.60, 2.03, + 1.35, 1.50, -1.39, -1.40, 1.95, -0.20, -1.27, 1.49, + 1.19, 1.50, 1.27, 1.40, 1.15, 1.50, 1.87, -0.10, + -1.12, -1.50, 1.87, -1.11, -1.50, -1.11, -1.50, 0.00, + 0.00, 1.19, 1.40, 1.27, -1.30, -1.27, -1.30, -1.15, + 1.40, -1.23, 1.30, -1.23, -1.30, 1.22, -1.29, 1.07, + -1.40, 1.75, -0.20, -1.03, -1.40, -1.07, 1.20, -1.03, + 1.15, 1.07, 1.10, 1.51, -1.03, 1.10, 1.03, -1.10, + 0.00, 0.00, -1.03, -1.10, 0.91, -1.20, -0.88, -1.20, + -0.88, 1.20, -0.95, 1.10, -0.95, -1.10, 1.43, -1.39, + 0.95, -1.00, -0.95, 1.00, -0.80, 1.10, 0.91, -1.00, + -1.35, 0.88, 1.00, -0.83, 1.00, -0.91, 0.90, 0.91, + + /* 1876-2003 */ + 0.90, 0.88, -0.90, -0.76, -1.00, -0.76, 1.00, 0.76, + 1.00, -0.72, 1.00, 0.84, -0.90, 0.84, 0.90, 1.23, + 0.00, 0.00, -0.52, -1.10, -0.68, 1.00, 1.19, -0.20, + 1.19, 0.76, 0.90, 1.15, -0.10, 1.15, -0.10, 0.72, + -0.90, -1.15, -1.15, 0.68, 0.90, -0.68, 0.90, -1.11, + 0.00, 0.00, 0.20, 0.79, 0.80, -1.11, -0.10, 0.00, + 0.00, -0.48, -1.00, -0.76, -0.80, -0.72, -0.80, -1.07, + -0.10, 0.64, 0.80, -0.64, -0.80, 0.64, 0.80, 0.40, + 0.60, 0.52, -0.50, -0.60, -0.80, -0.71, 0.70, -0.99, + 0.99, 0.56, 0.80, -0.56, 0.80, 0.68, -0.70, 0.68, + 0.70, -0.95, -0.64, 0.70, 0.64, 0.70, -0.60, 0.70, + -0.60, -0.70, -0.91, -0.10, -0.51, 0.76, -0.91, -0.56, + 0.70, 0.88, 0.88, -0.63, -0.60, 0.55, -0.60, -0.80, + 0.80, -0.80, -0.52, 0.60, 0.52, 0.60, 0.52, -0.60, + -0.48, 0.60, 0.48, 0.60, 0.48, 0.60, -0.76, 0.44, + -0.60, 0.52, -0.50, -0.52, 0.50, 0.40, 0.60, -0.40, + + /* 2004-2131 */ + -0.60, 0.40, -0.60, 0.72, -0.72, -0.51, -0.50, -0.48, + 0.50, 0.48, -0.50, -0.48, 0.50, -0.48, 0.50, 0.48, + -0.50, -0.48, -0.50, -0.68, -0.68, 0.44, 0.50, -0.64, + -0.10, -0.64, -0.10, -0.40, 0.50, 0.40, 0.50, 0.40, + 0.50, 0.00, 0.00, -0.40, -0.50, -0.36, -0.50, 0.36, + -0.50, 0.60, -0.60, 0.40, -0.40, 0.40, 0.40, -0.40, + 0.40, -0.40, 0.40, -0.56, -0.56, 0.36, -0.40, -0.36, + 0.40, 0.36, -0.40, -0.36, -0.40, 0.36, 0.40, 0.36, + 0.40, -0.52, 0.52, 0.52, 0.32, 0.40, -0.32, 0.40, + -0.32, 0.40, -0.32, 0.40, 0.32, -0.40, -0.32, -0.40, + 0.32, -0.40, 0.28, -0.40, -0.28, 0.40, 0.28, -0.40, + 0.28, 0.40, 0.48, -0.48, 0.48, 0.36, -0.30, -0.36, + -0.30, 0.00, 0.00, 0.20, 0.40, -0.44, 0.44, -0.44, + -0.44, -0.44, -0.44, 0.32, -0.30, 0.32, 0.30, 0.24, + 0.30, -0.12, -0.10, -0.28, 0.30, 0.28, 0.30, 0.28, + 0.30, 0.28, -0.30, 0.28, -0.30, 0.28, -0.30, 0.28, + + /* 2132-2259 */ + 0.30, -0.28, 0.30, 0.40, 0.40, -0.24, 0.30, 0.24, + -0.30, 0.24, -0.30, -0.24, -0.30, 0.24, 0.30, 0.24, + -0.30, -0.24, 0.30, 0.24, -0.30, -0.24, -0.30, 0.24, + -0.30, 0.24, 0.30, -0.24, 0.30, -0.24, 0.30, 0.20, + -0.30, 0.20, -0.30, 0.20, -0.30, 0.20, 0.30, 0.20, + -0.30, 0.20, -0.30, 0.20, 0.30, 0.20, 0.30, -0.20, + -0.30, 0.20, -0.30, 0.20, -0.30, -0.36, -0.36, -0.36, + -0.04, 0.30, 0.12, -0.10, -0.32, -0.24, 0.20, 0.24, + 0.20, 0.20, -0.20, -0.20, -0.20, -0.20, -0.20, 0.20, + 0.20, 0.20, -0.20, 0.20, 0.20, 0.20, 0.20, -0.20, + -0.20, 0.00, 0.00, -0.20, -0.20, -0.20, 0.20, -0.20, + 0.20, 0.20, -0.20, -0.20, -0.20, 0.20, 0.20, 0.20, + 0.20, 0.20, -0.20, 0.20, -0.20, 0.28, 0.28, 0.28, + 0.28, 0.28, 0.28, -0.28, 0.28, 0.12, 0.00, 0.24, + 0.16, -0.20, 0.16, -0.20, 0.16, -0.20, 0.16, 0.20, + -0.16, 0.20, 0.16, 0.20, -0.16, 0.20, -0.16, 0.20, + + /* 2260-2387 */ + -0.16, 0.20, 0.16, -0.20, 0.16, 0.20, 0.16, -0.20, + -0.16, 0.20, -0.16, -0.20, -0.16, 0.20, 0.16, 0.20, + 0.16, -0.20, 0.16, -0.20, 0.16, 0.20, 0.16, 0.20, + 0.16, 0.20, -0.16, -0.20, 0.16, 0.20, -0.16, 0.20, + 0.16, 0.20, -0.16, -0.20, 0.16, -0.20, 0.16, -0.20, + -0.16, -0.20, 0.24, -0.24, -0.24, 0.24, 0.24, 0.12, + 0.20, 0.12, 0.20, -0.12, -0.20, 0.12, -0.20, 0.12, + -0.20, -0.12, 0.20, -0.12, 0.20, -0.12, -0.20, 0.12, + 0.20, 0.12, 0.20, 0.12, -0.20, -0.12, 0.20, 0.12, + -0.20, -0.12, 0.20, 0.12, 0.20, 0.00, 0.00, -0.12, + 0.20, -0.12, 0.20, 0.12, -0.20, -0.12, 0.20, 0.12, + 0.20, 0.00, -0.21, -0.20, 0.00, 0.00, 0.20, -0.20, + -0.20, -0.20, 0.20, -0.16, -0.10, 0.00, 0.17, 0.16, + 0.16, 0.16, 0.16, -0.16, 0.16, 0.16, -0.16, 0.16, + -0.16, 0.16, 0.12, 0.10, 0.12, -0.10, -0.12, 0.10, + -0.12, 0.10, 0.12, -0.10, -0.12, 0.12, -0.12, 0.12, + + /* 2388-2515 */ + -0.12, 0.12, -0.12, -0.12, -0.12, -0.12, -0.12, -0.12, + -0.12, 0.12, 0.12, 0.12, 0.12, -0.12, -0.12, 0.12, + 0.12, 0.12, -0.12, 0.12, -0.12, -0.12, -0.12, 0.12, + -0.12, -0.12, 0.12, 0.00, 0.11, 0.11,-122.67, 164.70, + 203.78, 273.50, 3.58, 2.74, 6.18, -4.56, 0.00, -0.04, + 0.00, -0.07, 57.44, -77.10, 95.82, 128.60, -1.77, -1.28, + 2.85, -2.14, 82.14, 89.50, 0.00, 0.00, 2.00, -1.84, + -0.04, 47.73, -64.10, 23.79, 31.90, -1.45, -1.07, 0.69, + -0.53, -46.38, 50.50, 0.00, 0.00, 1.13, 1.04, 0.02, + -18.38, 0.00, 63.80, 0.00, 0.00, 0.41, 0.00, -1.43, + 59.07, 0.00, 0.00, 0.00, 0.00, -1.32, 57.28, 0.00, + 0.00, 0.00, 0.00, -1.28, -48.65, 0.00, -1.15, 0.00, + 0.00, 1.09, 0.00, 0.03, -18.30, 24.60, -17.30, -23.20, + 0.56, 0.41, -0.51, 0.39, -16.91, 26.90, 8.43, 13.30, + 0.60, 0.38, 0.31, -0.19, 1.23, -1.70, -19.13, -25.70, + -0.03, -0.03, -0.58, 0.43, -0.72, 0.90, -17.34, -23.30, + + /* 2516-2643 */ + 0.03, 0.02, -0.52, 0.39, -19.49, -21.30, 0.00, 0.00, + -0.48, 0.44, 0.01, 20.57, -20.10, 0.64, 0.70, -0.45, + -0.46, 0.00, -0.01, 4.89, 5.90, -16.55, 19.90, 0.14, + -0.11, 0.44, 0.37, 18.22, 19.80, 0.00, 0.00, 0.44, + -0.41, -0.01, 4.89, -5.30, -16.51, -18.00, -0.11, -0.11, + -0.41, 0.37, -17.86, 0.00, 17.10, 0.00, 0.00, 0.40, + 0.00, -0.38, 0.32, 0.00, 24.42, 0.00, 0.00, -0.01, + 0.00, -0.55, -23.79, 0.00, 0.00, 0.00, 0.00, 0.53, + 14.72, -16.00, -0.32, 0.00, -0.36, -0.33, -0.01, 0.01, + 3.34, -4.50, 11.86, 15.90, -0.11, -0.07, 0.35, -0.27, + -3.26, 4.40, 11.62, 15.60, 0.09, 0.07, 0.35, -0.26, + -19.53, 0.00, 5.09, 0.00, 0.00, 0.44, 0.00, -0.11, + -13.48, 14.70, 0.00, 0.00, 0.33, 0.30, 0.01, 10.86, + -14.60, 3.18, 4.30, -0.33, -0.24, 0.09, -0.07, -11.30, + -15.10, 0.00, 0.00, -0.34, 0.25, 0.01, 2.03, -2.70, + 10.82, 14.50, -0.07, -0.05, 0.32, -0.24, 17.46, 0.00, + + /* 2644-2771 */ + 0.00, 0.00, 0.00, -0.39, 16.43, 0.00, 0.52, 0.00, + 0.00, -0.37, 0.00, -0.01, 9.35, 0.00, 13.29, 0.00, + 0.00, -0.21, 0.00, -0.30, -10.42, 11.40, 0.00, 0.00, + 0.25, 0.23, 0.01, 0.44, 0.50, -10.38, 11.30, 0.02, + -0.01, 0.25, 0.23, -14.64, 0.00, 0.00, 0.00, 0.00, + 0.33, 0.56, 0.80, -8.67, 11.70, 0.02, -0.01, 0.26, + 0.19, 13.88, 0.00, -2.47, 0.00, 0.00, -0.31, 0.00, + 0.06, -1.99, 2.70, 7.72, 10.30, 0.06, 0.04, 0.23, + -0.17, -0.20, 0.00, 13.05, 0.00, 0.00, 0.00, 0.00, + -0.29, 6.92, -9.30, 3.34, 4.50, -0.21, -0.15, 0.10, + -0.07, -6.60, 0.00, 10.70, 0.00, 0.00, 0.15, 0.00, + -0.24, -8.04, -8.70, 0.00, 0.00, -0.19, 0.18, -10.58, + 0.00, -3.10, 0.00, 0.00, 0.24, 0.00, 0.07, -7.32, + 8.00, -0.12, -0.10, 0.18, 0.16, 1.63, 1.70, 6.96, + -7.60, 0.03, -0.04, -0.17, -0.16, -3.62, 0.00, 9.86, + 0.00, 0.00, 0.08, 0.00, -0.22, 0.20, -0.20, -6.88, + + /* 2772-2899 */ + -7.50, 0.00, 0.00, -0.17, 0.15, -8.99, 0.00, 4.02, + 0.00, 0.00, 0.20, 0.00, -0.09, -1.07, 1.40, -5.69, + -7.70, 0.03, 0.02, -0.17, 0.13, 6.48, -7.20, -0.48, + -0.50, -0.16, -0.14, -0.01, 0.01, 5.57, -7.50, 1.07, + 1.40, -0.17, -0.12, 0.03, -0.02, 8.71, 0.00, 3.54, + 0.00, 0.00, -0.19, 0.00, -0.08, 0.40, 0.00, 9.27, + 0.00, 0.00, -0.01, 0.00, -0.21, -6.13, 6.70, -1.19, + -1.30, 0.15, 0.14, -0.03, 0.03, 5.21, -5.70, -2.51, + -2.60, -0.13, -0.12, -0.06, 0.06, 5.69, -6.20, -0.12, + -0.10, -0.14, -0.13, -0.01, 2.03, -2.70, 4.53, 6.10, + -0.06, -0.05, 0.14, -0.10, 5.01, 5.50, -2.51, 2.70, + 0.12, -0.11, 0.06, 0.06, -1.91, 2.60, -4.38, -5.90, + 0.06, 0.04, -0.13, 0.10, 4.65, -6.30, 0.00, 0.00, + -0.14, -0.10, -5.29, 5.70, 0.00, 0.00, 0.13, 0.12, + -2.23, -4.00, -4.65, 4.20, -0.09, 0.05, 0.10, 0.10, + -4.53, 6.10, 0.00, 0.00, 0.14, 0.10, 2.47, 2.70, + + /* 2900-3027 */ + -4.46, 4.90, 0.06, -0.06, 0.11, 0.10, -5.05, 5.50, + 0.84, 0.90, 0.12, 0.11, 0.02, -0.02, 4.97, -5.40, + -1.71, 0.00, -0.12, -0.11, 0.00, 0.04, -0.99, -1.30, + 4.22, -5.70, -0.03, 0.02, -0.13, -0.09, 0.99, 1.40, + 4.22, -5.60, 0.03, -0.02, -0.13, -0.09, -4.69, -5.20, + 0.00, 0.00, -0.12, 0.10, -3.42, 0.00, 6.09, 0.00, + 0.00, 0.08, 0.00, -0.14, -4.65, -5.10, 0.00, 0.00, + -0.11, 0.10, 0.00, 0.00, -4.53, -5.00, 0.00, 0.00, + -0.11, 0.10, -2.43, -2.70, -3.82, 4.20, -0.06, 0.05, + 0.10, 0.09, 0.00, 0.00, -4.53, 4.90, 0.00, 0.00, + 0.11, 0.10, -4.49, -4.90, 0.00, 0.00, -0.11, 0.10, + 2.67, -2.90, -3.62, -3.90, -0.06, -0.06, -0.09, 0.08, + 3.94, -5.30, 0.00, 0.00, -0.12, -3.38, 3.70, -2.78, + -3.10, 0.08, 0.08, -0.07, 0.06, 3.18, -3.50, -2.82, + -3.10, -0.08, -0.07, -0.07, 0.06, -5.77, 0.00, 1.87, + 0.00, 0.00, 0.13, 0.00, -0.04, 3.54, -4.80, -0.64, + + /* 3028-3155 */ + -0.90, -0.11, 0.00, -0.02, -3.50, -4.70, 0.68, -0.90, + -0.11, 0.00, -0.02, 5.49, 0.00, 0.00, 0.00, 0.00, + -0.12, 1.83, -2.50, 2.63, 3.50, -0.06, 0.00, 0.08, + 3.02, -4.10, 0.68, 0.90, -0.09, 0.00, 0.02, 0.00, + 0.00, 5.21, 0.00, 0.00, 0.00, 0.00, -0.12, -3.54, + 3.80, 2.70, 3.60, -1.35, 1.80, 0.08, 0.00, 0.04, + -2.90, 3.90, 0.68, 0.90, 0.09, 0.00, 0.02, 0.80, + -1.10, -2.78, -3.70, -0.02, 0.00, -0.08, 4.10, 0.00, + -2.39, 0.00, 0.00, -0.09, 0.00, 0.05, -1.59, 2.10, + 2.27, 3.00, 0.05, 0.00, 0.07, -2.63, 3.50, -0.48, + -0.60, -2.94, -3.20, -2.94, 3.20, 2.27, -3.00, -1.11, + -1.50, -0.07, 0.00, -0.03, -0.56, -0.80, -2.35, 3.10, + 0.00, -0.60, -3.42, 1.90, -0.12, -0.10, 2.63, -2.90, + 2.51, 2.80, -0.64, 0.70, -0.48, -0.60, 2.19, -2.90, + 0.24, -0.30, 2.15, 2.90, 2.15, -2.90, 0.52, 0.70, + 2.07, -2.80, -3.10, 0.00, 1.79, 0.00, 0.00, 0.07, + + /* 3156-3283 */ + 0.00, -0.04, 0.88, 0.00, -3.46, 2.11, 2.80, -0.36, + 0.50, 3.54, -0.20, -3.50, -1.39, 1.50, -1.91, -2.10, + -1.47, 2.00, 1.39, 1.90, 2.07, -2.30, 0.91, 1.00, + 1.99, -2.70, 3.30, 0.00, 0.60, -0.44, -0.70, -1.95, + 2.60, 2.15, -2.40, -0.60, -0.70, 3.30, 0.84, 0.00, + -3.10, -3.10, 0.00, -0.72, -0.32, 0.40, -1.87, -2.50, + 1.87, -2.50, 0.32, 0.40, -0.24, 0.30, -1.87, -2.50, + -0.24, -0.30, 1.87, -2.50, -2.70, 0.00, 1.55, 2.03, + 2.20, -2.98, -1.99, -2.20, 0.12, -0.10, -0.40, 0.50, + 1.59, 2.10, 0.00, 0.00, -1.79, 2.00, -1.03, 1.40, + -1.15, -1.60, 0.32, 0.50, 1.39, -1.90, 2.35, -1.27, + 1.70, 0.60, 0.80, -0.32, -0.40, 1.35, -1.80, 0.44, + 0.00, 2.23, -0.84, 0.90, -1.27, -1.40, -1.47, 1.60, + -0.28, -0.30, -0.28, 0.40, -1.27, -1.70, 0.28, -0.40, + -1.43, -1.50, 0.00, 0.00, -1.27, -1.70, 2.11, -0.32, + -0.40, -1.23, 1.60, 1.19, -1.30, -0.72, -0.80, 0.72, + + /* 3284-3411 */ + -0.80, -1.15, -1.30, -1.35, -1.50, -1.19, -1.60, -0.12, + 0.20, 1.79, 0.00, -0.88, -0.28, 0.40, 1.11, 1.50, + -1.83, 0.00, 0.56, -0.12, 0.10, -1.27, -1.40, 0.00, + 0.00, 1.15, 1.50, -0.12, 0.20, 1.11, 1.50, 0.36, + -0.50, -1.07, -1.40, -1.11, 1.50, 1.67, 0.00, 0.80, + -1.11, 0.00, 1.43, 1.23, -1.30, -0.24, -1.19, -1.30, + -0.24, 0.20, -0.44, -0.90, -0.95, 1.10, 1.07, -1.40, + 1.15, -1.30, 1.03, -1.10, -0.56, -0.60, -0.68, 0.90, + -0.76, -1.00, -0.24, -0.30, 0.95, -1.30, 0.56, 0.70, + 0.84, -1.10, -0.56, 0.00, -1.55, 0.91, -1.30, 0.28, + 0.30, 0.16, -0.20, 0.95, 1.30, 0.40, -0.50, -0.88, + -1.20, 0.95, -1.10, -0.48, -0.50, 0.00, 0.00, -1.07, + 1.20, 0.44, -0.50, 0.95, 1.10, 0.00, 0.00, 0.92, + -1.30, 0.95, 1.00, -0.52, 0.60, 1.59, 0.24, -0.40, + 0.91, 1.20, 0.84, -1.10, -0.44, -0.60, 0.84, 1.10, + -0.44, 0.60, -0.44, 0.60, -0.84, -1.10, -0.80, 0.00, + + /* 3412-3539 */ + 1.35, 0.76, 0.20, -0.91, -1.00, 0.20, -0.30, -0.91, + -1.20, -0.95, 1.00, -0.48, -0.50, 0.88, 1.00, 0.48, + -0.50, -0.95, -1.10, 0.20, -0.20, -0.99, 1.10, -0.84, + 1.10, -0.24, -0.30, 0.20, -0.30, 0.84, 1.10, -1.39, + 0.00, -0.28, -0.16, 0.20, 0.84, 1.10, 0.00, 0.00, + 1.39, 0.00, 0.00, -0.95, 1.00, 1.35, -0.99, 0.00, + 0.88, -0.52, 0.00, -1.19, 0.20, 0.20, 0.76, -1.00, + 0.00, 0.00, 0.76, 1.00, 0.00, 0.00, 0.76, 1.00, + -0.76, 1.00, 0.00, 0.00, 1.23, 0.76, 0.80, -0.32, + 0.40, -0.72, 0.80, -0.40, -0.40, 0.00, 0.00, -0.80, + -0.90, -0.68, 0.90, -0.16, -0.20, -0.16, -0.20, 0.68, + -0.90, -0.36, 0.50, -0.56, -0.80, 0.72, -0.90, 0.44, + -0.60, -0.48, -0.70, -0.16, 0.00, -1.11, 0.32, 0.00, + -1.07, 0.60, -0.80, -0.28, -0.40, -0.64, 0.00, 0.91, + 1.11, 0.64, -0.90, 0.76, -0.80, 0.00, 0.00, -0.76, + -0.80, 1.03, 0.00, -0.36, -0.64, -0.70, 0.36, -0.40, + + /* 3540-3667 */ + 1.07, 0.36, -0.50, -0.52, -0.70, 0.60, 0.00, 0.88, + 0.95, 0.00, 0.48, 0.16, -0.20, 0.60, 0.80, 0.16, + -0.20, -0.60, -0.80, 0.00, -1.00, 0.12, 0.20, 0.16, + -0.20, 0.68, 0.70, 0.59, -0.80, -0.99, -0.56, -0.60, + 0.36, -0.40, -0.68, -0.70, -0.68, -0.70, -0.36, -0.50, + -0.44, 0.60, 0.64, 0.70, -0.12, 0.10, -0.52, 0.60, + 0.36, 0.40, 0.00, 0.00, 0.95, -0.84, 0.00, 0.44, + 0.56, 0.60, 0.32, -0.30, 0.00, 0.00, 0.60, 0.70, + 0.00, 0.00, 0.60, 0.70, -0.12, -0.20, 0.52, -0.70, + 0.00, 0.00, 0.56, 0.70, -0.12, 0.10, -0.52, -0.70, + 0.00, 0.00, 0.88, -0.76, 0.00, -0.44, 0.00, 0.00, + -0.52, -0.70, 0.52, -0.70, 0.36, -0.40, -0.44, -0.50, + 0.00, 0.00, 0.60, 0.60, 0.84, 0.00, 0.12, -0.24, + 0.00, 0.80, -0.56, 0.60, -0.32, -0.30, 0.48, -0.50, + 0.28, -0.30, -0.48, -0.50, 0.12, 0.20, 0.48, -0.60, + 0.48, 0.60, -0.12, 0.20, 0.24, 0.00, 0.76, -0.52, + + /* 3668-3795 */ + -0.60, -0.52, 0.60, 0.48, -0.50, -0.24, -0.30, 0.12, + -0.10, 0.48, 0.60, 0.52, -0.20, 0.36, 0.40, -0.44, + 0.50, -0.24, -0.30, -0.48, -0.60, -0.44, -0.60, -0.12, + 0.10, 0.76, 0.76, 0.20, -0.20, 0.48, 0.50, 0.40, + -0.50, -0.24, -0.30, 0.44, -0.60, 0.44, -0.60, 0.36, + 0.00, -0.64, 0.72, 0.00, -0.12, 0.00, -0.10, -0.40, + -0.60, -0.20, -0.20, -0.44, 0.50, -0.44, 0.50, 0.20, + 0.20, -0.44, -0.50, 0.20, -0.20, -0.20, 0.20, -0.44, + -0.50, 0.64, 0.00, 0.32, -0.36, 0.50, -0.20, -0.30, + 0.12, -0.10, 0.48, 0.50, -0.12, 0.30, -0.36, -0.50, + 0.00, 0.00, 0.48, 0.50, -0.48, 0.50, 0.68, 0.00, + -0.12, 0.56, -0.40, 0.44, -0.50, -0.12, -0.10, 0.24, + 0.30, -0.40, 0.40, 0.64, 0.00, -0.24, 0.64, 0.00, + -0.20, 0.00, 0.00, 0.44, -0.50, 0.44, 0.50, -0.12, + 0.20, -0.36, -0.50, 0.12, 0.00, 0.64, -0.40, 0.50, + 0.00, 0.10, 0.00, 0.00, -0.40, 0.50, 0.00, 0.00, + + /* 3796-3923 */ + -0.40, -0.50, 0.56, 0.00, 0.28, 0.00, 0.10, 0.36, + 0.50, 0.00, -0.10, 0.36, -0.50, 0.36, 0.50, 0.00, + -0.10, 0.24, -0.20, -0.36, -0.40, 0.16, 0.20, 0.40, + -0.40, 0.00, 0.00, -0.36, -0.50, -0.36, -0.50, -0.32, + -0.50, -0.12, 0.10, 0.20, 0.20, -0.36, 0.40, -0.60, + 0.60, 0.28, 0.00, 0.52, 0.12, -0.10, 0.40, 0.40, + 0.00, -0.50, 0.20, -0.20, -0.32, 0.40, 0.16, 0.20, + -0.16, 0.20, 0.32, 0.40, 0.56, 0.00, -0.12, 0.32, + -0.40, -0.16, -0.20, 0.00, 0.00, 0.40, 0.40, -0.40, + -0.40, -0.40, 0.40, -0.36, 0.40, 0.12, 0.10, 0.00, + 0.10, 0.36, 0.40, 0.00, -0.10, 0.36, 0.40, -0.36, + 0.40, 0.00, 0.10, 0.32, 0.00, 0.44, 0.12, 0.20, + 0.28, -0.40, 0.00, 0.00, 0.36, 0.40, 0.32, -0.40, + -0.16, 0.12, 0.10, 0.32, -0.40, 0.20, 0.30, -0.24, + 0.30, 0.00, 0.10, 0.32, 0.40, 0.00, -0.10, -0.32, + -0.40, -0.32, 0.40, 0.00, 0.10, -0.52, -0.52, 0.52, + + /* 3924-4051 */ + 0.32, -0.40, 0.00, 0.00, 0.32, 0.40, 0.32, -0.40, + 0.00, 0.00, -0.32, -0.40, -0.32, 0.40, 0.32, 0.40, + 0.00, 0.00, 0.32, 0.40, 0.00, 0.00, -0.32, -0.40, + 0.00, 0.00, 0.32, 0.40, 0.16, 0.20, 0.32, -0.30, + -0.16, 0.00, -0.48, -0.20, 0.20, -0.28, -0.30, 0.28, + -0.40, 0.00, 0.00, 0.28, -0.40, 0.00, 0.00, 0.28, + -0.40, 0.00, 0.00, -0.28, -0.40, 0.28, 0.40, -0.28, + -0.40, -0.48, -0.20, 0.20, 0.24, 0.30, 0.44, 0.00, + 0.16, 0.24, 0.30, 0.16, -0.20, 0.24, 0.30, -0.12, + 0.20, 0.20, 0.30, -0.16, 0.20, 0.00, 0.00, 0.44, + -0.32, 0.30, 0.24, 0.00, -0.36, 0.36, 0.00, 0.24, + 0.12, -0.20, 0.20, 0.30, -0.12, 0.00, -0.28, 0.30, + -0.24, 0.30, 0.12, 0.10, -0.28, -0.30, -0.28, 0.30, + 0.00, 0.00, -0.28, -0.30, 0.00, 0.00, -0.28, -0.30, + 0.00, 0.00, 0.28, 0.30, 0.00, 0.00, -0.28, -0.30, + -0.28, 0.30, 0.00, 0.00, -0.28, -0.30, 0.00, 0.00, + + /* 4052-4179 */ + 0.28, 0.30, 0.00, 0.00, -0.28, 0.30, 0.28, -0.30, + -0.28, 0.30, 0.40, 0.40, -0.24, 0.30, 0.00, -0.10, + 0.16, 0.00, 0.36, -0.20, 0.30, -0.12, -0.10, -0.24, + -0.30, 0.00, 0.00, -0.24, 0.30, -0.24, 0.30, 0.00, + 0.00, -0.24, 0.30, -0.24, 0.30, 0.24, -0.30, 0.00, + 0.00, 0.24, -0.30, 0.00, 0.00, 0.24, 0.30, 0.24, + -0.30, 0.24, 0.30, -0.24, 0.30, -0.24, 0.30, -0.20, + 0.20, -0.16, -0.20, 0.00, 0.00, -0.32, 0.20, 0.00, + 0.10, 0.20, -0.30, 0.20, -0.20, 0.12, 0.20, -0.16, + 0.20, 0.16, 0.20, 0.20, 0.30, 0.20, 0.30, 0.00, + 0.00, -0.20, 0.30, 0.00, 0.00, 0.20, 0.30, -0.20, + -0.30, -0.20, -0.30, 0.20, -0.30, 0.00, 0.00, 0.20, + 0.30, 0.00, 0.00, 0.20, 0.30, 0.00, 0.00, 0.20, + 0.30, 0.00, 0.00, 0.20, 0.30, 0.00, 0.00, 0.20, + -0.30, 0.00, 0.00, -0.20, -0.30, 0.00, 0.00, -0.20, + 0.30, 0.00, 0.00, -0.20, 0.30, 0.00, 0.00, 0.36, + + /* 4180-4307 */ + 0.00, 0.00, 0.36, 0.12, 0.10, -0.24, 0.20, 0.12, + -0.20, -0.16, -0.20, -0.13, 0.10, 0.22, 0.21, 0.20, + 0.00, -0.28, 0.32, 0.00, -0.12, -0.20, -0.20, 0.12, + -0.10, 0.12, 0.10, -0.20, 0.20, 0.00, 0.00, -0.32, + 0.32, 0.00, 0.00, 0.32, 0.32, 0.00, 0.00, -0.24, + -0.20, 0.24, 0.20, 0.20, 0.00, -0.24, 0.00, 0.00, + -0.24, -0.20, 0.00, 0.00, 0.24, 0.20, -0.24, -0.20, + 0.00, 0.00, -0.24, 0.20, 0.16, -0.20, 0.12, 0.10, + 0.20, 0.20, 0.00, -0.10, -0.12, 0.10, -0.16, -0.20, + -0.12, -0.10, -0.16, 0.20, 0.20, 0.20, 0.00, 0.00, + -0.20, 0.20, -0.20, 0.20, -0.20, 0.20, -0.20, 0.20, + 0.20, -0.20, -0.20, -0.20, 0.00, 0.00, -0.20, 0.20, + 0.20, 0.00, -0.20, 0.00, 0.00, -0.20, 0.20, -0.20, + 0.20, -0.20, -0.20, -0.20, -0.20, 0.00, 0.00, 0.20, + 0.20, 0.20, 0.20, 0.12, -0.20, -0.12, -0.10, 0.28, + -0.28, 0.16, -0.20, 0.00, -0.10, 0.00, 0.10, -0.16, + + /* 4308-4435 */ + 0.20, 0.00, -0.10, -0.16, -0.20, 0.00, -0.10, 0.16, + -0.20, 0.16, -0.20, 0.00, 0.00, 0.16, 0.20, -0.16, + 0.20, 0.00, 0.00, 0.16, 0.20, 0.16, -0.20, 0.16, + -0.20, -0.16, 0.20, 0.16, -0.20, 0.00, 0.00, 0.16, + 0.20, 0.00, 0.00, 0.16, 0.20, 0.00, 0.00, -0.16, + -0.20, 0.16, -0.20, -0.16, -0.20, 0.00, 0.00, -0.16, + -0.20, 0.00, 0.00, -0.16, 0.20, 0.00, 0.00, 0.16, + -0.20, 0.16, 0.20, 0.16, 0.20, 0.00, 0.00, -0.16, + -0.20, 0.00, 0.00, -0.16, -0.20, 0.00, 0.00, 0.16, + 0.20, 0.16, 0.20, 0.00, 0.00, 0.16, 0.20, 0.16, + -0.20, 0.16, 0.20, 0.00, 0.00, -0.16, 0.20, 0.00, + 0.10, 0.12, -0.20, 0.12, -0.20, 0.00, -0.10, 0.00, + -0.10, 0.12, 0.20, 0.00, -0.10, -0.12, 0.20, -0.15, + 0.20, -0.24, 0.24, 0.00, 0.00, 0.24, 0.24, 0.12, + -0.20, -0.12, -0.20, 0.00, 0.00, 0.12, 0.20, 0.12, + -0.20, 0.12, 0.20, 0.12, 0.20, 0.12, 0.20, 0.12, + + /* 4436-4563 */ + -0.20, -0.12, 0.20, 0.00, 0.00, 0.12, 0.20, 0.12, + 0.00, -0.20, 0.00, 0.00, -0.12, -0.20, 0.12, -0.20, + 0.00, 0.00, 0.12, 0.20, -0.12, 0.20, -0.12, 0.20, + 0.12, -0.20, 0.00, 0.00, 0.12, 0.20, 0.20, 0.00, + 0.12, 0.00, 0.00, -0.12, 0.20, 0.00, 0.00, -0.12, + -0.20, 0.00, 0.00, -0.12, -0.20, -0.12, -0.20, 0.00, + 0.00, 0.12, -0.20, 0.12, -0.20, 0.12, 0.20, -0.12, + -0.20, 0.00, 0.00, 0.12, -0.20, 0.12, -0.20, 0.12, + 0.20, 0.12, 0.00, 0.20, -0.12, -0.20, 0.00, 0.00, + 0.12, 0.20, -0.16, 0.00, 0.16, -0.20, 0.20, 0.00, + 0.00, -0.20, 0.00, 0.00, -0.20, 0.20, 0.00, 0.00, + 0.20, 0.20, -0.20, 0.00, 0.00, -0.20, 0.12, 0.00, + -0.16, 0.20, 0.00, 0.00, 0.20, 0.12, -0.10, 0.00, + 0.10, 0.16, -0.16, -0.16, -0.16, -0.16, -0.16, 0.00, + 0.00, -0.16, 0.00, 0.00, -0.16, -0.16, -0.16, 0.00, + 0.00, -0.16, 0.00, 0.00, 0.16, 0.00, 0.00, 0.16, + + /* 4564-4691 */ + 0.00, 0.00, 0.16, 0.16, 0.00, 0.00, -0.16, 0.00, + 0.00, -0.16, -0.16, 0.00, 0.00, 0.16, 0.00, 0.00, + -0.16, -0.16, 0.00, 0.00, -0.16, -0.16, 0.12, 0.10, + 0.12, -0.10, 0.12, 0.10, 0.00, 0.00, 0.12, 0.10, + -0.12, 0.10, 0.00, 0.00, 0.12, 0.10, 0.12, -0.10, + 0.00, 0.00, -0.12, -0.10, 0.00, 0.00, 0.12, 0.10, + 0.12, 0.00, 0.00, 0.12, 0.00, 0.00, -0.12, 0.00, + 0.00, 0.12, 0.12, 0.12, 0.12, 0.12, 0.00, 0.00, + 0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, 0.12, + 0.00, 0.00, 0.12, -0.12, -0.12, 0.12, 0.12, -0.12, + -0.12, 0.00, 0.00, 0.12, -0.12, 0.12, 0.12, -0.12, + -0.12, 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, -0.12, + 0.12, 0.00, 0.00, 0.12, 0.00, 0.00, 0.12, 0.00, + 0.00, 0.12, -0.12, 0.00, 0.00, -0.12, 0.12, -0.12, + -0.12, 0.12, 0.00, 0.00, 0.12, 0.12, 0.12, -0.12, + 0.00, 0.00, -0.12, -0.12, -0.12, 0.00, 0.00, -0.12, + + /* 4692-NA */ + -0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, -0.12, + -0.12, -0.12, -0.12, 0.12, 0.00, 0.00, 0.12, -0.12, + 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, 0.12, -0.12, + -0.12, -0.12, -0.12, 0.12, 0.12, -0.12, -0.12, 0.00, + 0.00, -0.12, 0.00, 0.00, -0.12, 0.12, 0.00, 0.00, + 0.12, 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, -0.12, + -0.12, 0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, + 0.12, 0.00, 0.00, 0.12, 0.12, 0.08, 0.00, 0.04 + }; + +/* Number of amplitude coefficients */ + static const int NA = (int) (sizeof a / sizeof (double)); + +/* Amplitude usage: X or Y, sin or cos, power of T. */ + static const int jaxy[] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}; + static const int jasc[] = {0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0}; + static const int japt[] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4}; + +/* Miscellaneous */ + double t, w, pt[MAXPT+1], fa[14], xypr[2], xypl[2], xyls[2], arg, + sc[2]; + int jpt, i, j, jxy, ialast, ifreq, m, ia, jsc; + +/* ------------------------------------------------------------------ */ + +/* Interval between fundamental date J2000.0 and given date (JC). */ + t = ((date1 - DJ00) + date2) / DJC; + +/* Powers of T. */ + w = 1.0; + for (jpt = 0; jpt <= MAXPT; jpt++) { + pt[jpt] = w; + w *= t; + } + +/* Initialize totals in X and Y: polynomial, luni-solar, planetary. */ + for (jxy = 0; jxy < 2; jxy++) { + xypr[jxy] = 0.0; + xyls[jxy] = 0.0; + xypl[jxy] = 0.0; + } + +/* --------------------------------- */ +/* Fundamental arguments (IERS 2003) */ +/* --------------------------------- */ + +/* Mean anomaly of the Moon. */ + fa[0] = iauFal03(t); + +/* Mean anomaly of the Sun. */ + fa[1] = iauFalp03(t); + +/* Mean argument of the latitude of the Moon. */ + fa[2] = iauFaf03(t); + +/* Mean elongation of the Moon from the Sun. */ + fa[3] = iauFad03(t); + +/* Mean longitude of the ascending node of the Moon. */ + fa[4] = iauFaom03(t); + +/* Planetary longitudes, Mercury through Neptune. */ + fa[5] = iauFame03(t); + fa[6] = iauFave03(t); + fa[7] = iauFae03(t); + fa[8] = iauFama03(t); + fa[9] = iauFaju03(t); + fa[10] = iauFasa03(t); + fa[11] = iauFaur03(t); + fa[12] = iauFane03(t); + +/* General accumulated precession in longitude. */ + fa[13] = iauFapa03(t); + +/* -------------------------------------- */ +/* Polynomial part of precession-nutation */ +/* -------------------------------------- */ + + for (jxy = 0; jxy < 2; jxy++) { + for (j = MAXPT; j >= 0; j--) { + xypr[jxy] += xyp[jxy][j] * pt[j]; + } + } + +/* ---------------------------------- */ +/* Nutation periodic terms, planetary */ +/* ---------------------------------- */ + +/* Work backwards through the coefficients per frequency list. */ + ialast = NA; + for (ifreq = NFPL-1; ifreq >= 0; ifreq--) { + + /* Obtain the argument functions. */ + arg = 0.0; + for (i = 0; i < 14; i++) { + m = mfapl[ifreq][i]; + if (m != 0) arg += (double)m * fa[i]; + } + sc[0] = sin(arg); + sc[1] = cos(arg); + + /* Work backwards through the amplitudes at this frequency. */ + ia = nc[ifreq+NFLS]; + for (i = ialast; i >= ia; i--) { + + /* Coefficient number (0 = 1st). */ + j = i-ia; + + /* X or Y. */ + jxy = jaxy[j]; + + /* Sin or cos. */ + jsc = jasc[j]; + + /* Power of T. */ + jpt = japt[j]; + + /* Accumulate the component. */ + xypl[jxy] += a[i-1] * sc[jsc] * pt[jpt]; + } + ialast = ia-1; + } + +/* ----------------------------------- */ +/* Nutation periodic terms, luni-solar */ +/* ----------------------------------- */ + +/* Continue working backwards through the number of coefficients list. */ + for (ifreq = NFLS-1; ifreq >= 0; ifreq--) { + + /* Obtain the argument functions. */ + arg = 0.0; + for (i = 0; i < 5; i++) { + m = mfals[ifreq][i]; + if (m != 0) arg += (double)m * fa[i]; + } + sc[0] = sin(arg); + sc[1] = cos(arg); + + /* Work backwards through the amplitudes at this frequency. */ + ia = nc[ifreq]; + for (i = ialast; i >= ia; i--) { + + /* Coefficient number (0 = 1st). */ + j = i-ia; + + /* X or Y. */ + jxy = jaxy[j]; + + /* Sin or cos. */ + jsc = jasc[j]; + + /* Power of T. */ + jpt = japt[j]; + + /* Accumulate the component. */ + xyls[jxy] += a[i-1] * sc[jsc] * pt[jpt]; + } + ialast = ia-1; + } + +/* ------------------------------------ */ +/* Results: CIP unit vector components */ +/* ------------------------------------ */ + + *x = DAS2R * (xypr[0] + (xyls[0] + xypl[0]) / 1e6); + *y = DAS2R * (xypr[1] + (xyls[1] + xypl[1]) / 1e6); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/xys00a.c b/deps/sofa/20231011/c/src/xys00a.c new file mode 100644 index 0000000..c922039 --- /dev/null +++ b/deps/sofa/20231011/c/src/xys00a.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +void iauXys00a(double date1, double date2, + double *x, double *y, double *s) +/* +** - - - - - - - - - - +** i a u X y s 0 0 a +** - - - - - - - - - - +** +** For a given TT date, compute the X,Y coordinates of the Celestial +** Intermediate Pole and the CIO locator s, using the IAU 2000A +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** s double the CIO locator s (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 3) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 4) A faster, but slightly less accurate result (about 1 mas for +** X,Y), can be obtained by using instead the iauXys00b function. +** +** Called: +** iauPnm00a classical NPB matrix, IAU 2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3]; + + +/* Form the bias-precession-nutation matrix, IAU 2000A. */ + iauPnm00a(date1, date2, rbpn); + +/* Extract X,Y. */ + iauBpn2xy(rbpn, x, y); + +/* Obtain s. */ + *s = iauS00(date1, date2, *x, *y); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/xys00b.c b/deps/sofa/20231011/c/src/xys00b.c new file mode 100644 index 0000000..74c6228 --- /dev/null +++ b/deps/sofa/20231011/c/src/xys00b.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +void iauXys00b(double date1, double date2, + double *x, double *y, double *s) +/* +** - - - - - - - - - - +** i a u X y s 0 0 b +** - - - - - - - - - - +** +** For a given TT date, compute the X,Y coordinates of the Celestial +** Intermediate Pole and the CIO locator s, using the IAU 2000B +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** s double the CIO locator s (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 3) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 4) The present function is faster, but slightly less accurate (about +** 1 mas in X,Y), than the iauXys00a function. +** +** Called: +** iauPnm00b classical NPB matrix, IAU 2000B +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3]; + + +/* Form the bias-precession-nutation matrix, IAU 2000A. */ + iauPnm00b(date1, date2, rbpn); + +/* Extract X,Y. */ + iauBpn2xy(rbpn, x, y); + +/* Obtain s. */ + *s = iauS00(date1, date2, *x, *y); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/xys06a.c b/deps/sofa/20231011/c/src/xys06a.c new file mode 100644 index 0000000..becae30 --- /dev/null +++ b/deps/sofa/20231011/c/src/xys06a.c @@ -0,0 +1,183 @@ +#include "sofa.h" + +void iauXys06a(double date1, double date2, + double *x, double *y, double *s) +/* +** - - - - - - - - - - +** i a u X y s 0 6 a +** - - - - - - - - - - +** +** For a given TT date, compute the X,Y coordinates of the Celestial +** Intermediate Pole and the CIO locator s, using the IAU 2006 +** precession and IAU 2000A nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** s double the CIO locator s (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y components +** of the unit vector in the Geocentric Celestial Reference System. +** +** 3) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 4) Series-based solutions for generating X and Y are also available: +** see Capitaine & Wallace (2006) and iauXy06. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double rbpn[3][3]; + + +/* Form the bias-precession-nutation matrix, IAU 2006/2000A. */ + iauPnm06a(date1, date2, rbpn); + +/* Extract X,Y. */ + iauBpn2xy(rbpn, x, y); + +/* Obtain s. */ + *s = iauS06(date1, date2, *x, *y); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/zp.c b/deps/sofa/20231011/c/src/zp.c new file mode 100644 index 0000000..443b204 --- /dev/null +++ b/deps/sofa/20231011/c/src/zp.c @@ -0,0 +1,127 @@ +#include "sofa.h" + +void iauZp(double p[3]) +/* +** - - - - - - +** i a u Z p +** - - - - - - +** +** Zero a p-vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Returned: +** p double[3] zero p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + p[0] = 0.0; + p[1] = 0.0; + p[2] = 0.0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/zpv.c b/deps/sofa/20231011/c/src/zpv.c new file mode 100644 index 0000000..bab4dbf --- /dev/null +++ b/deps/sofa/20231011/c/src/zpv.c @@ -0,0 +1,129 @@ +#include "sofa.h" + +void iauZpv(double pv[2][3]) +/* +** - - - - - - - +** i a u Z p v +** - - - - - - - +** +** Zero 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. +** +** Returned: +** pv double[2][3] zero pv-vector +** +** Called: +** iauZp zero p-vector +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + iauZp(pv[0]); + iauZp(pv[1]); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/deps/sofa/20231011/c/src/zr.c b/deps/sofa/20231011/c/src/zr.c new file mode 100644 index 0000000..66b2f67 --- /dev/null +++ b/deps/sofa/20231011/c/src/zr.c @@ -0,0 +1,133 @@ +#include "sofa.h" + +void iauZr(double r[3][3]) +/* +** - - - - - - +** i a u Z r +** - - - - - - +** +** Initialize an r-matrix to the null matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Returned: +** r double[3][3] r-matrix +** +** This revision: 2021 May 11 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + r[0][0] = 0.0; + r[0][1] = 0.0; + r[0][2] = 0.0; + r[1][0] = 0.0; + r[1][1] = 0.0; + r[1][2] = 0.0; + r[2][0] = 0.0; + r[2][1] = 0.0; + r[2][2] = 0.0; + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} diff --git a/include/AstriFitsProcessor.h b/include/AstriFitsProcessor.h index 8168a3a..447bbef 100644 --- a/include/AstriFitsProcessor.h +++ b/include/AstriFitsProcessor.h @@ -24,6 +24,7 @@ protected: Packets::PacketStructureJson *structureVLG; std::string computeFitsFileName(int); + bool isFileNameConform(); public: AstriFitsProcessor(std::string file_to_process); diff --git a/include/FitsHelperC14.h b/include/FitsHelperC14.h index 37b0689..c5cf6be 100644 --- a/include/FitsHelperC14.h +++ b/include/FitsHelperC14.h @@ -8,8 +8,12 @@ #include #include #include +#include +#include +#include #include +#include namespace FitsElements { namespace C14{ @@ -19,8 +23,12 @@ static int num_highgains = 64; static int num_lowgains = 64; static int num_timetriggers = 64; static std::string time_utc; +double start_time; +double stop_time; + + namespace filename_params { - std::string date, tel_id, obs_mode, run_id, mode_id, daq_id; + std::string date, tel_id, obs_mode, run_id, mode_id, daq_id, target_id; }; namespace database_params { @@ -124,12 +132,29 @@ static void initC14FitsSchema(){ } } -static int initFitsFileC14(fitsfile *fits_file, std::string filename) { - // TODO check filename regex with conventions and extract filename_params - // .. +static int initFitsFileC14(fitsfile *fits_file, std::string fitsFile, std::string rawFile) { // rawFileName to extract params + using namespace FitsElements::C14; + std::regex pattern(RAW_FILE_NAMING_CONV); + std::smatch match; + std::filesystem::path rawFilePath(rawFile); + std::string rawFileName(rawFilePath.filename()); + std::filesystem::path fitsFilePath(fitsFile); + std::string fitsFileName(fitsFilePath.filename()); + if (!std::regex_match(rawFileName, match, pattern)) { + std::cerr << "Error extracting params from file name: " << rawFileName << std::endl; + return -1; + } + filename_params::date = match[1]; + filename_params::tel_id = match[2]; + filename_params::target_id = match[3]; + filename_params::obs_mode = match[4]; + filename_params::run_id = match[5]; + filename_params::mode_id = match[6]; + filename_params::daq_id = match[7]; + + // TODO check db connection and extract database_params - using namespace FitsElements::C14; int status = 0; int simple = 1; @@ -146,7 +171,7 @@ static int initFitsFileC14(fitsfile *fits_file, std::string filename) { fits_write_key_str(fits_file, "TEL_ID", filename_params::tel_id.c_str(),"Telescope ID", &status); fits_write_key_str(fits_file, "ORIGIN","ASTRIDPS","Name of organization making file", &status); fits_write_key_str(fits_file, "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS", &status); - fits_write_key_str(fits_file, "FILENAME",filename.c_str(),"Filename", &status); + fits_write_key_str(fits_file, "FILENAME",fitsFileName.c_str(),"Filename", &status); int16_t filevers = 1; fits_write_key(fits_file, TSHORT, "FILEVERS",&filevers,"File version", &status); fits_write_key_str(fits_file, "ORIGIN_ID",database_params::orig_id.c_str(),"Date origin and context", &status); @@ -206,15 +231,19 @@ static int addC14StartTimesToFits(Packets::AstriMaGeneric *packet, int status = 0; fits_movabs_hdu(fitsfile, 1, nullptr, &status); - // TODO scrivere il tstart nel giusto formato - fits_update_key_str(fitsfile, "TSTART", "X", "First event time", &status); - int year = packet->operator []("year").value(); int month = packet->operator []("month").value(); int day = packet->operator []("day").value(); int hours = packet->operator []("hours").value(); int minutes = packet->operator []("minutes").value(); int seconds = packet->operator []("seconds").value(); + + double d1 = 0, d2 = 0; + iauDtf2d("UTC", year, month, day, hours, minutes, seconds, &d1, &d2); + FitsElements::C14::start_time = d1+d2; + + fits_update_key_str(fitsfile, "TSTART", std::to_string(FitsElements::C14::start_time).c_str(), "First event time", &status); + std::stringstream ss; ss << year; ss << "-"; @@ -238,10 +267,19 @@ static int addC14EndTimesToFits(Packets::AstriMaGeneric *packet, int status = 0; fits_movabs_hdu(fitsfile, 1, nullptr, &status); - // TODO scrivere il tstop nel giusto formato - fits_update_key_str(fitsfile, "TSTOP", "X", "Last event time", &status); - // TODO compute telapse - fits_update_key_str(fitsfile, "TELAPSE", "X", "Diff of start and end times", + int year = packet->operator []("year").value(); + int month = packet->operator []("month").value(); + int day = packet->operator []("day").value(); + int hours = packet->operator []("hours").value(); + int minutes = packet->operator []("minutes").value(); + int seconds = packet->operator []("seconds").value(); + double d1 = 0, d2 = 0; + iauDtf2d("UTC", year, month, day, hours, minutes, seconds, &d1, &d2); + FitsElements::C14::stop_time = d1 + d2; + fits_update_key_str(fitsfile, "TSTOP", std::to_string(FitsElements::C14::stop_time).c_str(), "Last event time", &status); + + double telapse = FitsElements::C14::stop_time - FitsElements::C14::start_time; + fits_update_key_str(fitsfile, "TELAPSE", std::to_string(telapse).c_str(), "Diff of start and end times", &status); fits_update_key_str(fitsfile, "DATE-END", FitsElements::C14::time_utc.c_str(), diff --git a/include/constants.h b/include/constants.h new file mode 100644 index 0000000..ed0d8f3 --- /dev/null +++ b/include/constants.h @@ -0,0 +1,6 @@ +#ifndef ASTRI_PACKETS_PATH // is already defined in cmake +#define ASTRI_PACKETS_PATH std::string(std::getenv("HOME")).append("/BIAS/config/AstriPackets") +#endif + +//[DATE]_MA[TEL_ID]_[TARGET_ID]_[OBS_MODE]_[RUN_ID]_[MODE_ID]_[DAQ_ID].raw +#define RAW_FILE_NAMING_CONV R"((\d{8})_MA([0-9][0-9])_([^_]+)_([^_]+)_([0-9]{8})_([FIR])_([0-9]{6})\.raw)" diff --git a/src/AstriFitsProcessor.cpp b/src/AstriFitsProcessor.cpp index f8da751..b146403 100644 --- a/src/AstriFitsProcessor.cpp +++ b/src/AstriFitsProcessor.cpp @@ -1,12 +1,13 @@ #include #include #include +#include +#include +#include using namespace inaf::oasbo; -#ifndef ASTRI_PACKETS_PATH // is already defined in cmake -#define ASTRI_PACKETS_PATH std::string(std::getenv("HOME")).append("/BIAS/config/AstriPackets") -#endif + AstriFitsProcessor::AstriFitsProcessor(std::string file_to_process) { this->file_to_process = file_to_process; @@ -58,6 +59,11 @@ std::string AstriFitsProcessor::getFileToProcess() { } int AstriFitsProcessor::startProcessing() { + if(!this->isFileNameConform()){ + std::cerr << "[ERROR] File name is not conform to naming convention:\n\tFileName:" << this->file_to_process << std::endl; + return -1; + } + using namespace FitsElements; if (this->receiver->connectToClient() < 0) { std::cerr << "Cannot open file: " << receiver->getHost() << std::endl; @@ -74,17 +80,18 @@ int AstriFitsProcessor::startProcessing() { if (rcv > 0) { // packet read if (packet->getType() == 1 && packet->getSubType() == 4) { if (firstC14) { - std::string filename = computeFitsFileName(14); + std::string fitsFilename = computeFitsFileName(14); int status = 0; - fits_create_file(&fptr_c14, filename.c_str(), &status); + fits_create_file(&fptr_c14, fitsFilename.c_str(), &status); if (status != 0) { fits_report_error(stderr, status); // print error message return -1; } status = 0; - int done = FitsFunctions::initFitsFileC14(fptr_c14, filename); + int done = FitsFunctions::initFitsFileC14(fptr_c14, fitsFilename, this->file_to_process); if(done < 1){ // error initiating the file - break; // exit + std::cerr << "Error error initiating the file" << std::endl; + return -1; // exit } FitsFunctions::addC14StartTimesToFits(this->packet, fptr_c14); firstC14 = false; @@ -114,8 +121,18 @@ int AstriFitsProcessor::startProcessing() { return 1; } +bool AstriFitsProcessor::isFileNameConform() { + std::regex pattern(RAW_FILE_NAMING_CONV); + std::filesystem::path filePath(this->file_to_process); + std::string fileName(filePath.filename()); + if (std::regex_match(fileName, pattern)) { + return true; + } + return false; +} + std::string AstriFitsProcessor::computeFitsFileName(int type_subtype) { - std::string ret = this->file_to_process; // TODO to check real naming conv + std::string ret = this->file_to_process; if (type_subtype == 14) { ret = ret.substr(0, ret.length() - 4).append("_14.lv0.fits"); return ret; diff --git a/src/main.cpp b/src/main.cpp index 87950f9..2f6cb59 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,24 +1,17 @@ +#include + #include #include #include -#include -#include -#include -#include - - namespace fs = std::filesystem; int main(int argc, char **argv) { - if (argc != 2) { std::cout << "Usage: " << argv[0] << " \n"; return 1; } - const fs::path path(argv[1]); - try { if (!fs::exists(path) || !fs::is_directory(path)) { std::cerr << "Invalid directory path: " << path << std::endl; @@ -31,19 +24,9 @@ int main(int argc, char **argv) { continue; } const std::string filePath = entry.path().string(); - - // TODO Check regular expr file name - // if not regular {continue} - - std::cout << "Reading file: " << filePath << std::endl; AstriFitsProcessor fitsproc(filePath); - // TODO fitsproc.paramfromfilename = param - // TODO fitsproc.from_file.run_id = 1; - fitsproc.startProcessing(); - } - } catch (const std::exception &e) { std::cerr << "An error occurred: " << e.what() << std::endl; return 1; -- GitLab From f5532ef09ecb60e0feb7a97561726a090e1d3eb6 Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Thu, 21 Mar 2024 14:17:49 +0100 Subject: [PATCH 6/7] S22 and C14 --- CMakeLists.txt | 1 + include/AstriFitsProcessor.h | 5 + include/FitsHelperC14.h | 365 ++++++++++++++++++------------- include/FitsHelperS22.h | 402 +++++++++++++++++++++-------------- src/AstriFitsProcessor.cpp | 100 +++++++-- src/main.cpp | 19 +- 6 files changed, 564 insertions(+), 328 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7aa4f67..fd25681 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ target_include_directories (FitsPreprocessor.lnx PUBLIC ${INC_DIR}) set(LIBS) find_library(libcfitsio cfitsio REQUIRED) list(APPEND LIBS cfitsio) +list(APPEND LIBS pthread) list(APPEND LIBS "${PROJECT_SOURCE_DIR}/deps/sofa/20231011/c/src/libsofa_c.a") list(APPEND LIBS AstriPacket) list(APPEND LIBS FileReceiver) diff --git a/include/AstriFitsProcessor.h b/include/AstriFitsProcessor.h index 447bbef..137ed87 100644 --- a/include/AstriFitsProcessor.h +++ b/include/AstriFitsProcessor.h @@ -14,6 +14,7 @@ protected: Receivers::FileReceiver *receiver; Packets::AstriMaGeneric *packet; std::string file_to_process; + std::string destinationPath; Packets::PacketStructureJson *structureGen; Packets::PacketStructureJson *structureS22; @@ -25,6 +26,8 @@ protected: std::string computeFitsFileName(int); bool isFileNameConform(); + void printLog(std::ostream &os, std::string message); + public: AstriFitsProcessor(std::string file_to_process); @@ -32,6 +35,8 @@ public: void setFileToProcess(std::string file_to_process); std::string getFileToProcess(); int startProcessing(); + void setDestinationPath(std::string destPath); + std::string getDestinationPath(); }; diff --git a/include/FitsHelperC14.h b/include/FitsHelperC14.h index c5cf6be..674dd5d 100644 --- a/include/FitsHelperC14.h +++ b/include/FitsHelperC14.h @@ -22,10 +22,16 @@ static int num_pdm = 37; static int num_highgains = 64; static int num_lowgains = 64; static int num_timetriggers = 64; +static int num_hitpix = 64; +static int num_maskpix = 64; + static std::string time_utc; double start_time; double stop_time; +namespace last_event_time { + int year, month, day, hours, minutes,seconds; +}; namespace filename_params { std::string date, tel_id, obs_mode, run_id, mode_id, daq_id, target_id; @@ -152,7 +158,6 @@ static int initFitsFileC14(fitsfile *fits_file, std::string fitsFile, std::strin filename_params::mode_id = match[6]; filename_params::daq_id = match[7]; - // TODO check db connection and extract database_params int status = 0; @@ -245,7 +250,7 @@ static int addC14StartTimesToFits(Packets::AstriMaGeneric *packet, fits_update_key_str(fitsfile, "TSTART", std::to_string(FitsElements::C14::start_time).c_str(), "First event time", &status); std::stringstream ss; - ss << year; + ss << std::setfill('0') << std::setw(4) << year; ss << "-"; ss << std::setfill('0') << std::setw(2) << month; ss << "-"; @@ -262,17 +267,13 @@ static int addC14StartTimesToFits(Packets::AstriMaGeneric *packet, fits_movabs_hdu(fitsfile, 2, nullptr, &status); return 1; } -static int addC14EndTimesToFits(Packets::AstriMaGeneric *packet, - fitsfile *fitsfile) { +static int addC14EndTimesToFits(fitsfile *fitsfile) { + using namespace FitsElements::C14::last_event_time; int status = 0; fits_movabs_hdu(fitsfile, 1, nullptr, &status); - int year = packet->operator []("year").value(); - int month = packet->operator []("month").value(); - int day = packet->operator []("day").value(); - int hours = packet->operator []("hours").value(); - int minutes = packet->operator []("minutes").value(); - int seconds = packet->operator []("seconds").value(); + using namespace FitsElements::C14::last_event_time; + double d1 = 0, d2 = 0; iauDtf2d("UTC", year, month, day, hours, minutes, seconds, &d1, &d2); FitsElements::C14::stop_time = d1 + d2; @@ -289,192 +290,260 @@ static int addC14EndTimesToFits(Packets::AstriMaGeneric *packet, } -static int addC14EventPacketToFits(Packets::AstriMaGeneric *packet, fitsfile *fitsfile, int nrow) { +static int addC14EventPacketToFits(Packets::AstriMaGeneric *packet, + fitsfile *fitsfile, int nrow) { using namespace FitsElements::C14; - std::vector values; + int count = 0; + int res = 0; bool vt = packet->operator []("vt").value(); - values.push_back(&vt); - int year = packet->operator []("year").value(); - int month = packet->operator []("month").value(); - int day = packet->operator []("day").value(); - int hours = packet->operator []("hours").value(); - int minutes = packet->operator []("minutes").value(); - int seconds = packet->operator []("seconds").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &vt, &res); + last_event_time::year = packet->operator []("year").value(); + last_event_time::month = packet->operator []("month").value(); + last_event_time::day = packet->operator []("day").value(); + last_event_time::hours = packet->operator []("hours").value(); + last_event_time::minutes = packet->operator []("minutes").value(); + last_event_time::seconds = packet->operator []("seconds").value(); std::stringstream ss; - ss << year; + ss << std::setfill('0') << std::setw(4) << last_event_time::year ; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << last_event_time::month ; ss << "-"; - ss << std::setfill('0') << std::setw(2) << month; - ss << "-"; - ss << std::setfill('0') << std::setw(2) << day; - ss << "T"; - ss << std::setfill('0') << std::setw(2) << hours; - ss << ":"; - ss << std::setfill('0') << std::setw(2) << minutes; - ss << ":"; - ss << std::setfill('0') << std::setw(2) << seconds; - FitsElements::C14::time_utc = ss.str(); - values.push_back(&FitsElements::C14::time_utc); - values.push_back(&seconds); - uint32_t time_tag_ns = packet->operator []("Time Tag Nanoseconds").value(); - values.push_back(&time_tag_ns); - uint16_t ssc = packet->operator []("Source Sequence Counter SSC").value(); - values.push_back(&ssc); - uint16_t packet_len = packet->operator []("Packet Length").value(); - values.push_back(&packet_len); - uint32_t evt_counter = packet->operator []("Event Counter").value(); - values.push_back(&evt_counter); + ss << std::setfill('0') << std::setw(2) << last_event_time::day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << last_event_time::hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << last_event_time::minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << last_event_time::seconds; + FitsElements::C14::time_utc = ss.str(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &FitsElements::C14::time_utc, &res); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &last_event_time::seconds, &res); + uint32_t time_tag_ns = packet->operator []("Time Tag Nanoseconds").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &time_tag_ns, &res); + uint16_t ssc = packet->operator []("Source Sequence Counter SSC").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &ssc, &res); + uint16_t packet_len = packet->operator []("Packet Length").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &packet_len, &res); + uint32_t evt_counter = packet->operator []("Event Counter").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &evt_counter, &res); bool lid = packet->operator []("lid").value(); - values.push_back(&lid); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &lid, &res); bool fib_st = packet->operator []("fib st").value(); - values.push_back(&fib_st); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &fib_st, &res); bool fib_cont = packet->operator []("fib cont").value(); - values.push_back(&fib_cont); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &fib_cont, &res); bool fib_puls = packet->operator []("fib puls").value(); - values.push_back(&fib_puls); - int8_t rgb_cont = packet->operator []("rgb cont").value(); - values.push_back(&rgb_cont); - int8_t rgb_puls = packet->operator []("rgb puls").value(); - values.push_back(&rgb_puls); - uint16_t pix_trg_dt = packet->operator []("pixel trigger discriminator threshold").value(); - values.push_back(&pix_trg_dt); - uint16_t pix_trg_charge_dt = packet->operator []("pixel trigger charge discriminator threshold").value(); - values.push_back(&pix_trg_charge_dt); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &fib_puls, &res); + int16_t rgb_cont = packet->operator []("rgb cont").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &rgb_cont, &res); + int16_t rgb_puls = packet->operator []("rgb puls").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &rgb_puls, &res); + uint16_t pix_trg_dt = packet->operator []( + "pixel trigger discriminator threshold").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &pix_trg_dt, &res); + uint16_t pix_trg_charge_dt = packet->operator []( + "pixel trigger charge discriminator threshold").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &pix_trg_charge_dt, &res); bool ptm = packet->operator []("PTM").value(); - values.push_back(&ptm); - uint8_t trg_pix_id = packet->operator []("triggered pixel id").value(); - values.push_back(&trg_pix_id); - int16_t trg_type = packet->operator []("trg type").value(); - values.push_back(&trg_type); - int16_t trg_config = packet->operator []("trigger config").value(); - values.push_back(&trg_config); - int16_t etrg_type = packet->operator []("ext trigger type").value(); - values.push_back(&etrg_type); - int16_t etrg_freq = packet->operator []("ext trigger frequency").value(); - values.push_back(&etrg_freq); - bool pdm_vals[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "pdm val_#" << i; - pdm_vals[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&pdm_vals); - bool trg_enbs[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "trg enb_#" << i; - trg_enbs[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&trg_enbs); - bool trg_pdms[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "trg pdm_#" << i; - trg_pdms[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&trg_pdms); - bool evt_vals[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "evt val_#" << i; - evt_vals[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&evt_vals); - uint16_t high_gains[num_pdm][num_highgains]; + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &ptm, &res); + uint8_t trg_pix_id = packet->operator []("triggered pixel id").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_pix_id, &res); + int16_t trg_type = packet->operator []("trg type").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_type, &res); + int16_t trg_config = packet->operator []("trigger config").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_config, &res); + int16_t etrg_type = packet->operator []("ext trigger type").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &etrg_type, &res); + int16_t etrg_freq = packet->operator []("ext trigger frequency").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &etrg_freq, &res); + bool pdm_vals[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "pdm val_#" << i; + pdm_vals[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &pdm_vals, &res); + bool trg_enbs[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "trg enb_#" << i; + trg_enbs[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_enbs, &res); + bool trg_pdms[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "trg pdm_#" << i; + trg_pdms[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_pdms, &res); + bool evt_vals[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "evt val_#" << i; + evt_vals[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, 1, &evt_vals, &res); + uint16_t high_gains[num_pdm][num_highgains]; for (int i = 0; i < num_pdm; i++) { for (int j = 0; j < num_highgains; j++) { std::stringstream ss; ss << "high gain pixel_#" << j << "_#" << i; high_gains[i][j] = packet->operator [](ss.str()).value(); } - values.push_back(&high_gains[i]); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_highgains, &high_gains[i], &res); } - uint16_t low_gains[num_pdm][num_highgains]; + uint16_t low_gains[num_pdm][num_highgains]; for (int i = 0; i < num_pdm; i++) { for (int j = 0; j < num_highgains; j++) { std::stringstream ss; ss << "low gain pixel_#" << j << "_#" << i; low_gains[i][j] = packet->operator [](ss.str()).value(); } - values.push_back(&low_gains[i]); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_lowgains, &low_gains[i], &res); } - uint8_t time_triggers[num_pdm][num_highgains]; + uint8_t time_triggers[num_pdm][num_timetriggers]; for (int i = 0; i < num_pdm; i++) { - for (int j = 0; j < num_highgains; j++) { + for (int j = 0; j < num_timetriggers; j++) { std::stringstream ss; ss << "time trigger pixel_#" << j << "_#" << i; time_triggers[i][j] = packet->operator [](ss.str()).value(); } - values.push_back(&time_triggers[i]); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_timetriggers, &time_triggers[i], &res); } - bool hit_registers[num_pdm*num_highgains] = {}; + bool hit_registers[num_pdm * num_hitpix] = { }; for (int i = 0; i < num_pdm; i++) { std::stringstream ss; ss << "HIT register_#" << i; size_t hit = packet->operator [](ss.str()).value(); - for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + for (int j = num_hitpix * i + num_hitpix - 1; + j >= num_hitpix * i; j--) { hit_registers[j] = (hit & 1); hit >>= 1; } } - values.push_back(&hit_registers); + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm * num_hitpix, &hit_registers, &res); - bool trigger_mask[num_pdm*num_highgains] = {}; + bool trigger_mask[num_pdm * num_maskpix] = { }; for (int i = 0; i < num_pdm; i++) { std::stringstream ss; ss << "Trigger Mask_#" << i; size_t mask = packet->operator [](ss.str()).value(); - for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + for (int j = num_maskpix * i + num_maskpix - 1; + j >= num_maskpix * i; j--) { trigger_mask[j] = (mask & 1); mask >>= 1; } } - values.push_back(&trigger_mask); - - uint16_t sipm_t1[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 1_#" << i; - sipm_t1[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t1); - uint16_t sipm_t2[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 2_#" << i; - sipm_t2[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t2); - uint16_t sipm_t3[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 3_#" << i; - sipm_t3[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t3); - uint16_t sipm_hv[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM High Voltage_#" << i; - sipm_hv[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_hv); - uint32_t sipm_cu[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM current_#" << i; - sipm_cu[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_cu); - - for (int i = 0; i < values.size(); i++) { - int res = 0; - fits_write_col(fitsfile, std::get<3>(FitsElements::C14::events_hdu[i]), - i + 1, nrow, 1, 1, &values[i], &res); - if (res != 0) { // error - fits_report_error(stderr, res); - } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm * num_maskpix, &trigger_mask, &res); + + uint16_t sipm_t1[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM temperature 1_#" << i; + sipm_t1[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_t1, &res); + uint16_t sipm_t2[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM temperature 2_#" << i; + sipm_t2[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_t2, &res); + uint16_t sipm_t3[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM temperature 3_#" << i; + sipm_t3[i] = packet->operator [](ss.str()).value(); } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_t3, &res); + uint16_t sipm_hv[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM High Voltage_#" << i; + sipm_hv[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_hv, &res); + uint32_t sipm_cu[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM current_#" << i; + sipm_cu[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::C14::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_cu, &res); + return 1; } diff --git a/include/FitsHelperS22.h b/include/FitsHelperS22.h index 1fc64ed..2b4d12b 100644 --- a/include/FitsHelperS22.h +++ b/include/FitsHelperS22.h @@ -8,8 +8,12 @@ #include #include #include +#include +#include +#include #include +#include namespace FitsElements { namespace S22{ @@ -18,9 +22,19 @@ static int num_pdm = 37; static int num_highgains = 64; static int num_lowgains = 64; static int num_timetriggers = 64; +static int num_hitpix = 64; +static int num_maskpix = 64; + static std::string time_utc; +double start_time; +double stop_time; + +namespace last_event_time { + int year, month, day, hours, minutes,seconds; +}; + namespace filename_params { - std::string date, tel_id, obs_mode, run_id, mode_id, daq_id, object; + std::string date, tel_id, obs_mode, run_id, mode_id, daq_id, target_id; }; namespace database_params { @@ -62,12 +76,8 @@ static void initS22FitsSchema(){ {"RGB_PULS","1I","", TSHORT}, {"TRG_DT","1U","pe", TUSHORT}, {"TRG_CDT","1U","pe", TUSHORT}, - {"PTM","1L","", TLOGICAL}, - {"TRG_PXL_ID","1B","", TBYTE}, {"TRG_TYPE","1I","", TSHORT}, {"TRG_CONF","1I","", TSHORT}, - {"ETRG_TYPE","1I","", TSHORT}, - {"ETRG_FREQ","1I","", TSHORT}, {"PDM_VAL","37L","", TLOGICAL}, {"TRG_ENB","37L","", TLOGICAL}, {"TRG_PDM","37L","", TLOGICAL}, @@ -125,12 +135,28 @@ static void initS22FitsSchema(){ } } -static int initFitsFileS22(fitsfile *fits_file, std::string filename) { - // TODO check filename regex with conventions and extract filename_params - // .. +static int initFitsFileS22(fitsfile *fits_file, std::string fitsFile, std::string rawFile) { // rawFileName to extract params + using namespace FitsElements::S22; + std::regex pattern(RAW_FILE_NAMING_CONV); + std::smatch match; + std::filesystem::path rawFilePath(rawFile); + std::string rawFileName(rawFilePath.filename()); + std::filesystem::path fitsFilePath(fitsFile); + std::string fitsFileName(fitsFilePath.filename()); + if (!std::regex_match(rawFileName, match, pattern)) { + std::cerr << "Error extracting params from file name: " << rawFileName << std::endl; + return -1; + } + filename_params::date = match[1]; + filename_params::tel_id = match[2]; + filename_params::target_id = match[3]; + filename_params::obs_mode = match[4]; + filename_params::run_id = match[5]; + filename_params::mode_id = match[6]; + filename_params::daq_id = match[7]; + // TODO check db connection and extract database_params - using namespace FitsElements::S22; int status = 0; int simple = 1; @@ -147,7 +173,7 @@ static int initFitsFileS22(fitsfile *fits_file, std::string filename) { fits_write_key_str(fits_file, "TEL_ID", filename_params::tel_id.c_str(),"Telescope ID", &status); fits_write_key_str(fits_file, "ORIGIN","ASTRIDPS","Name of organization making file", &status); fits_write_key_str(fits_file, "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS", &status); - fits_write_key_str(fits_file, "FILENAME",filename.c_str(),"Filename", &status); + fits_write_key_str(fits_file, "FILENAME",fitsFileName.c_str(),"Filename", &status); int16_t filevers = 1; fits_write_key(fits_file, TSHORT, "FILEVERS",&filevers,"File version", &status); fits_write_key_str(fits_file, "ORIGIN_ID",database_params::orig_id.c_str(),"Date origin and context", &status); @@ -180,7 +206,7 @@ static int initFitsFileS22(fitsfile *fits_file, std::string filename) { std::stringstream oss; oss << std::put_time(&tm_utc, "%Y-%m-%dT%H:%M:%S"); fits_write_key_str(fits_file, "DATE",oss.str().c_str(),"File creation date (UTC)", &status); - fits_write_key_str(fits_file, "OBJECT",filename_params::object.c_str(),"Name of observed object", &status); + fits_write_key_str(fits_file, "OBJECT",filename_params::target_id.c_str(),"Name of observed object", &status); fits_write_key_str(fits_file, "RADECSYS","FK5","Coordinate reference frame", &status); fits_write_key_str(fits_file, "EQUINOX","2000.0","Coordinate epoch", &status); float RA_OBJ = 83.6331; // TODO check se questi paramtri da db o fissi @@ -219,17 +245,21 @@ static int addS22StartTimesToFits(Packets::AstriMaGeneric *packet, int status = 0; fits_movabs_hdu(fitsfile, 1, nullptr, &status); - // TODO scrivere il tstart nel giusto formato - fits_update_key_str(fitsfile, "TSTART", "X", "First event time", &status); - int year = packet->operator []("year").value(); int month = packet->operator []("month").value(); int day = packet->operator []("day").value(); int hours = packet->operator []("hours").value(); int minutes = packet->operator []("minutes").value(); int seconds = packet->operator []("seconds").value(); + + double d1 = 0, d2 = 0; + iauDtf2d("UTC", year, month, day, hours, minutes, seconds, &d1, &d2); + FitsElements::S22::start_time = d1+d2; + + fits_update_key_str(fitsfile, "TSTART", std::to_string(FitsElements::S22::start_time).c_str(), "First event time", &status); + std::stringstream ss; - ss << year; + ss << std::setfill('0') << std::setw(4) << year; ss << "-"; ss << std::setfill('0') << std::setw(2) << month; ss << "-"; @@ -246,15 +276,18 @@ static int addS22StartTimesToFits(Packets::AstriMaGeneric *packet, fits_movabs_hdu(fitsfile, 2, nullptr, &status); return 1; } -static int addS22EndTimesToFits(Packets::AstriMaGeneric *packet, - fitsfile *fitsfile) { +static int addS22EndTimesToFits(fitsfile *fitsfile) { + using namespace FitsElements::S22::last_event_time; int status = 0; fits_movabs_hdu(fitsfile, 1, nullptr, &status); - // TODO scrivere il tstop nel giusto formato - fits_update_key_str(fitsfile, "TSTOP", "X", "Last event time", &status); - // TODO compute telapse - fits_update_key_str(fitsfile, "TELAPSE", "X", "Diff of start and end times", + double d1 = 0, d2 = 0; + iauDtf2d("UTC", year, month, day, hours, minutes, seconds, &d1, &d2); + FitsElements::S22::stop_time = d1 + d2; + fits_update_key_str(fitsfile, "TSTOP", std::to_string(FitsElements::S22::stop_time).c_str(), "Last event time", &status); + + double telapse = FitsElements::S22::stop_time - FitsElements::S22::start_time; + fits_update_key_str(fitsfile, "TELAPSE", std::to_string(telapse).c_str(), "Diff of start and end times", &status); fits_update_key_str(fitsfile, "DATE-END", FitsElements::S22::time_utc.c_str(), @@ -266,190 +299,241 @@ static int addS22EndTimesToFits(Packets::AstriMaGeneric *packet, static int addS22EventPacketToFits(Packets::AstriMaGeneric *packet, fitsfile *fitsfile, int nrow) { using namespace FitsElements::S22; - std::vector values; + int count = 0; + int res = 0; bool vt = packet->operator []("vt").value(); - values.push_back(&vt); - int year = packet->operator []("year").value(); - int month = packet->operator []("month").value(); - int day = packet->operator []("day").value(); - int hours = packet->operator []("hours").value(); - int minutes = packet->operator []("minutes").value(); - int seconds = packet->operator []("seconds").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &vt, &res); + last_event_time::year = packet->operator []("year").value(); + last_event_time::month = packet->operator []("month").value(); + last_event_time::day = packet->operator []("day").value(); + last_event_time::hours = packet->operator []("hours").value(); + last_event_time::minutes = packet->operator []("minutes").value(); + last_event_time::seconds = packet->operator []("seconds").value(); std::stringstream ss; - ss << year; + ss << std::setfill('0') << std::setw(4) << last_event_time::year ; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << last_event_time::month ; ss << "-"; - ss << std::setfill('0') << std::setw(2) << month; - ss << "-"; - ss << std::setfill('0') << std::setw(2) << day; - ss << "T"; - ss << std::setfill('0') << std::setw(2) << hours; - ss << ":"; - ss << std::setfill('0') << std::setw(2) << minutes; - ss << ":"; - ss << std::setfill('0') << std::setw(2) << seconds; - FitsElements::S22::time_utc = ss.str(); - values.push_back(&FitsElements::S22::time_utc); - values.push_back(&seconds); - uint32_t time_tag_ns = packet->operator []("Time Tag Nanoseconds").value(); - values.push_back(&time_tag_ns); - uint16_t ssc = packet->operator []("Source Sequence Counter SSC").value(); - values.push_back(&ssc); - uint16_t packet_len = packet->operator []("Packet Length").value(); - values.push_back(&packet_len); - uint32_t evt_counter = packet->operator []("Event Counter").value(); - values.push_back(&evt_counter); + ss << std::setfill('0') << std::setw(2) << last_event_time::day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << last_event_time::hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << last_event_time::minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << last_event_time::seconds; + FitsElements::S22::time_utc = ss.str(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &FitsElements::S22::time_utc, &res); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &last_event_time::seconds, &res); + uint32_t time_tag_ns = packet->operator []("Time Tag Nanoseconds").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &time_tag_ns, &res); + uint16_t ssc = packet->operator []("Source Sequence Counter SSC").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &ssc, &res); + uint16_t packet_len = packet->operator []("Packet Length").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &packet_len, &res); + uint32_t evt_counter = packet->operator []("Event Counter").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &evt_counter, &res); bool lid = packet->operator []("lid").value(); - values.push_back(&lid); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &lid, &res); bool fib_st = packet->operator []("fib st").value(); - values.push_back(&fib_st); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &fib_st, &res); bool fib_cont = packet->operator []("fib cont").value(); - values.push_back(&fib_cont); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &fib_cont, &res); bool fib_puls = packet->operator []("fib puls").value(); - values.push_back(&fib_puls); - int8_t rgb_cont = packet->operator []("rgb cont").value(); - values.push_back(&rgb_cont); - int8_t rgb_puls = packet->operator []("rgb puls").value(); - values.push_back(&rgb_puls); - uint16_t pix_trg_dt = packet->operator []("pixel trigger discriminator threshold").value(); - values.push_back(&pix_trg_dt); - uint16_t pix_trg_charge_dt = packet->operator []("pixel trigger charge discriminator threshold").value(); - values.push_back(&pix_trg_charge_dt); - bool ptm = packet->operator []("PTM").value(); - values.push_back(&ptm); - uint8_t trg_pix_id = packet->operator []("triggered pixel id").value(); - values.push_back(&trg_pix_id); - int16_t trg_type = packet->operator []("trg type").value(); - values.push_back(&trg_type); - int16_t trg_config = packet->operator []("trigger config").value(); - values.push_back(&trg_config); - int16_t etrg_type = packet->operator []("ext trigger type").value(); - values.push_back(&etrg_type); - int16_t etrg_freq = packet->operator []("ext trigger frequency").value(); - values.push_back(&etrg_freq); - bool pdm_vals[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "pdm val_#" << i; - pdm_vals[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&pdm_vals); - bool trg_enbs[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "trg enb_#" << i; - trg_enbs[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&trg_enbs); - bool trg_pdms[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "trg pdm_#" << i; - trg_pdms[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&trg_pdms); - bool evt_vals[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "evt val_#" << i; - evt_vals[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&evt_vals); - uint16_t high_gains[num_pdm][num_highgains]; + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &fib_puls, &res); + int16_t rgb_cont = packet->operator []("rgb cont").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &rgb_cont, &res); + int16_t rgb_puls = packet->operator []("rgb puls").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &rgb_puls, &res); + uint16_t pix_trg_dt = packet->operator []( + "pixel trigger discriminator threshold").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &pix_trg_dt, &res); + uint16_t pix_trg_charge_dt = packet->operator []( + "pixel trigger charge discriminator threshold").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &pix_trg_charge_dt, &res); + int16_t trg_type = packet->operator []("trg type").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_type, &res); + int16_t trg_config = packet->operator []("trigger config").value(); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_config, &res); + bool pdm_vals[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "pdm val_#" << i; + pdm_vals[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &pdm_vals, &res); + bool trg_enbs[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "trg enb_#" << i; + trg_enbs[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_enbs, &res); + bool trg_pdms[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "trg pdm_#" << i; + trg_pdms[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &trg_pdms, &res); + bool evt_vals[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "evt val_#" << i; + evt_vals[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, 1, &evt_vals, &res); + uint16_t high_gains[num_pdm][num_highgains]; for (int i = 0; i < num_pdm; i++) { for (int j = 0; j < num_highgains; j++) { std::stringstream ss; ss << "high gain pixel_#" << j << "_#" << i; high_gains[i][j] = packet->operator [](ss.str()).value(); } - values.push_back(&high_gains[i]); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_highgains, &high_gains[i], &res); } - uint16_t low_gains[num_pdm][num_highgains]; + uint16_t low_gains[num_pdm][num_highgains]; for (int i = 0; i < num_pdm; i++) { for (int j = 0; j < num_highgains; j++) { std::stringstream ss; ss << "low gain pixel_#" << j << "_#" << i; low_gains[i][j] = packet->operator [](ss.str()).value(); } - values.push_back(&low_gains[i]); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_lowgains, &low_gains[i], &res); } - uint8_t time_triggers[num_pdm][num_highgains]; + uint8_t time_triggers[num_pdm][num_timetriggers]; for (int i = 0; i < num_pdm; i++) { - for (int j = 0; j < num_highgains; j++) { + for (int j = 0; j < num_timetriggers; j++) { std::stringstream ss; ss << "time trigger pixel_#" << j << "_#" << i; time_triggers[i][j] = packet->operator [](ss.str()).value(); } - values.push_back(&time_triggers[i]); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_timetriggers, &time_triggers[i], &res); } - bool hit_registers[num_pdm*num_highgains] = {}; + bool hit_registers[num_pdm * num_hitpix] = { }; for (int i = 0; i < num_pdm; i++) { std::stringstream ss; ss << "HIT register_#" << i; size_t hit = packet->operator [](ss.str()).value(); - for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + for (int j = num_hitpix * i + num_hitpix - 1; + j >= num_hitpix * i; j--) { hit_registers[j] = (hit & 1); hit >>= 1; } } - values.push_back(&hit_registers); + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm * num_hitpix, &hit_registers, &res); - bool trigger_mask[num_pdm*num_highgains] = {}; + bool trigger_mask[num_pdm * num_maskpix] = { }; for (int i = 0; i < num_pdm; i++) { std::stringstream ss; ss << "Trigger Mask_#" << i; size_t mask = packet->operator [](ss.str()).value(); - for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + for (int j = num_maskpix * i + num_maskpix - 1; + j >= num_maskpix * i; j--) { trigger_mask[j] = (mask & 1); mask >>= 1; } } - values.push_back(&trigger_mask); - - uint16_t sipm_t1[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 1_#" << i; - sipm_t1[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t1); - uint16_t sipm_t2[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 2_#" << i; - sipm_t2[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t2); - uint16_t sipm_t3[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 3_#" << i; - sipm_t3[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t3); - uint16_t sipm_hv[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM High Voltage_#" << i; - sipm_hv[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_hv); - uint32_t sipm_cu[num_pdm]; - for(int i = 0; i < num_pdm; i++){ - std::stringstream ss; - ss << "SiPM current_#" << i; - sipm_cu[i] = packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_cu); - - for (int i = 0; i < values.size(); i++) { - int res = 0; - fits_write_col(fitsfile, std::get<3>(FitsElements::S22::events_hdu[i]), - i + 1, nrow, 1, 1, &values[i], &res); - if (res != 0) { // error - fits_report_error(stderr, res); - } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm * num_maskpix, &trigger_mask, &res); + + uint16_t sipm_t1[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM temperature 1_#" << i; + sipm_t1[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_t1, &res); + uint16_t sipm_t2[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM temperature 2_#" << i; + sipm_t2[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_t2, &res); + uint16_t sipm_t3[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM temperature 3_#" << i; + sipm_t3[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_t3, &res); + uint16_t sipm_hv[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM High Voltage_#" << i; + sipm_hv[i] = packet->operator [](ss.str()).value(); + } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_hv, &res); + uint32_t sipm_cu[num_pdm]; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "SiPM current_#" << i; + sipm_cu[i] = packet->operator [](ss.str()).value(); } + fits_write_col(fitsfile, + std::get<3>(FitsElements::S22::events_hdu[count++]), count + 1, + nrow, 1, num_pdm, &sipm_cu, &res); + return 1; } diff --git a/src/AstriFitsProcessor.cpp b/src/AstriFitsProcessor.cpp index b146403..d370892 100644 --- a/src/AstriFitsProcessor.cpp +++ b/src/AstriFitsProcessor.cpp @@ -7,10 +7,15 @@ using namespace inaf::oasbo; - +void AstriFitsProcessor::printLog(std::ostream &os, std::string message) { + time_t now = time(nullptr); + os << "[" << std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S") + << "]\t[Fits Processor]" << "\t" << message << std::endl; +} AstriFitsProcessor::AstriFitsProcessor(std::string file_to_process) { this->file_to_process = file_to_process; + this->destinationPath = std::string("./"); // current dir this->receiver = Receivers::FileReceiverBuilder().setSource(file_to_process)->setRate( 0)->getReceiver(); @@ -47,6 +52,7 @@ AstriFitsProcessor::AstriFitsProcessor(std::string file_to_process) { std::string(ASTRI_PACKETS_PATH).append("/AstriMA/101.json")); this->structureHK = new Packets::PacketStructureJson(pathHK); FitsFunctions::initC14FitsSchema(); + FitsFunctions::initS22FitsSchema(); } void AstriFitsProcessor::setFileToProcess(std::string file_to_process) { @@ -60,37 +66,46 @@ std::string AstriFitsProcessor::getFileToProcess() { int AstriFitsProcessor::startProcessing() { if(!this->isFileNameConform()){ - std::cerr << "[ERROR] File name is not conform to naming convention:\n\tFileName:" << this->file_to_process << std::endl; + printLog(std::cerr, " Error: File name is not conform to naming convention:\n\tFileName:" + this->file_to_process); return -1; } using namespace FitsElements; if (this->receiver->connectToClient() < 0) { - std::cerr << "Cannot open file: " << receiver->getHost() << std::endl; + printLog(std::cerr, "Error, cannot open file: " + receiver->getHost()); return -1; } + // C14 fitsfile *fptr_c14; + std::string fits14Filename; bool firstC14 = true; int nrow14 = 0; + //S22 + fitsfile *fptr_s22; + std::string fits22Filename; + bool firstS22 = true; + int nrow22 = 0; + while (true) { // go ahead until no packet to read int rcv = this->receiver->receiveFromClient(*this->packet); if (rcv > 0) { // packet read + // C14 if (packet->getType() == 1 && packet->getSubType() == 4) { if (firstC14) { - std::string fitsFilename = computeFitsFileName(14); + fits14Filename = computeFitsFileName(14); int status = 0; - fits_create_file(&fptr_c14, fitsFilename.c_str(), &status); + fits_create_file(&fptr_c14, (this->destinationPath+fits14Filename).c_str(), &status); if (status != 0) { fits_report_error(stderr, status); // print error message return -1; } status = 0; - int done = FitsFunctions::initFitsFileC14(fptr_c14, fitsFilename, this->file_to_process); + int done = FitsFunctions::initFitsFileC14(fptr_c14, fits14Filename, this->file_to_process); if(done < 1){ // error initiating the file - std::cerr << "Error error initiating the file" << std::endl; + printLog(std::cerr,"Error error initiating the file " + fits14Filename); return -1; // exit } FitsFunctions::addC14StartTimesToFits(this->packet, fptr_c14); @@ -102,19 +117,57 @@ int AstriFitsProcessor::startProcessing() { this->packet->updatePacketStructure(*this->structureGen); continue; } + //S22 + if (packet->getType() == 2 && packet->getSubType() == 2) { + if (firstS22) { + fits22Filename = computeFitsFileName(22); + int status = 0; + fits_create_file(&fptr_s22, + (this->destinationPath + fits22Filename).c_str(), + &status); + if (status != 0) { + fits_report_error(stderr, status); // print error message + return -1; + } + status = 0; + int done = FitsFunctions::initFitsFileS22(fptr_s22, + fits22Filename, this->file_to_process); + if (done < 1) { // error initiating the file + printLog(std::cerr, "Error error initiating the file " + fits22Filename); + return -1; // exit + } + FitsFunctions::addS22StartTimesToFits(this->packet, + fptr_s22); + firstS22 = false; + } + nrow22++; + this->packet->updatePacketStructure(*this->structureS22); + FitsFunctions::addS22EventPacketToFits(this->packet, fptr_s22, + nrow22); + this->packet->updatePacketStructure(*this->structureGen); + continue; + } // other packets } if (rcv < 0) { // error reading packet - std::cerr << "Error reading packet" << std::endl; + printLog(std::cerr,"Error reading packet"); continue; // go to next packet } if (rcv == 0) { // no more packets to read int status = 0; + // C14 if (!firstC14) { //at least one packet received -> file created - FitsFunctions::addC14EndTimesToFits(this->packet, fptr_c14); + FitsFunctions::addC14EndTimesToFits(fptr_c14); fits_close_file(fptr_c14, &status); + printLog(std::cout, "File C14 completed: " + fits14Filename); } - break; + // S22 + if (!firstS22) { //at least one packet received -> file created + FitsFunctions::addS22EndTimesToFits(fptr_s22); + fits_close_file(fptr_s22, &status); + printLog(std::cout, "File S22 completed: " + fits22Filename); + } + break; // exit } } @@ -132,12 +185,27 @@ bool AstriFitsProcessor::isFileNameConform() { } std::string AstriFitsProcessor::computeFitsFileName(int type_subtype) { - std::string ret = this->file_to_process; - if (type_subtype == 14) { - ret = ret.substr(0, ret.length() - 4).append("_14.lv0.fits"); - return ret; - } + std::filesystem::path rawfilePath(this->file_to_process); + std::string rawfileName = rawfilePath.filename().string(); + std::string fitsFileName(rawfileName.substr(0, rawfileName.length() - 4).append("_").append(std::to_string(type_subtype)).append(".lv0.fits")); + return fitsFileName; +} - return ret; +void AstriFitsProcessor::setDestinationPath(std::string destPath){ + if(!destPath.back() != '/'){ + destPath+='/'; + } + namespace fs = std::filesystem; + fs::path destination(destPath); + if (!fs::exists(destination)) { + if (!fs::create_directories(destination)) { + printLog(std::cerr,"Error: Unable to create directory " + destPath); + return; + } + } + this->destinationPath = destPath; } +std::string AstriFitsProcessor::getDestinationPath(){ + return this->destinationPath; +} diff --git a/src/main.cpp b/src/main.cpp index 2f6cb59..1abca27 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,29 +6,38 @@ namespace fs = std::filesystem; +void printLog(std::ostream &os, std::string message) { + time_t now = time(nullptr); + os << "[" << std::put_time(localtime(&now), "%Y-%m-%d %H:%M:%S") + << "]\t[Fits Processor]" << "\t" << message << std::endl; +} + int main(int argc, char **argv) { - if (argc != 2) { - std::cout << "Usage: " << argv[0] << " \n"; + if (argc != 3) { + std::cout << "Usage: " << argv[0] << " \n"; return 1; } + + const fs::path path(argv[1]); try { if (!fs::exists(path) || !fs::is_directory(path)) { - std::cerr << "Invalid directory path: " << path << std::endl; + printLog(std::cerr, "Invalid source directory path: " + path.string()); return 1; } for (const auto &entry : fs::recursive_directory_iterator(path)) { // for each file in the directory if (!entry.is_regular_file()) { std::string filePath = entry.path().string(); - std::cerr << filePath << " not a valid file" << std::endl; + printLog(std::cerr, filePath + " not a valid file"); continue; } const std::string filePath = entry.path().string(); AstriFitsProcessor fitsproc(filePath); + fitsproc.setDestinationPath(argv[2]); fitsproc.startProcessing(); } } catch (const std::exception &e) { - std::cerr << "An error occurred: " << e.what() << std::endl; + printLog(std::cerr, "An error occurred: " + std::string(e.what())); return 1; } return 0; -- GitLab From 67c138dbd8b9ba7debd8a72be9605f778bb6669a Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Thu, 21 Mar 2024 14:22:10 +0100 Subject: [PATCH 7/7] . --- src/main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1abca27..30327f2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,8 +27,6 @@ int main(int argc, char **argv) { } for (const auto &entry : fs::recursive_directory_iterator(path)) { // for each file in the directory if (!entry.is_regular_file()) { - std::string filePath = entry.path().string(); - printLog(std::cerr, filePath + " not a valid file"); continue; } const std::string filePath = entry.path().string(); -- GitLab

xMrJ^CR#Cb+7)$toU&m<$Mddd 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ⅈ+2mXTf>jSRsPBsES-cO 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 U*G}yxR`!E^?!B - -void iauMoon98 ( double date1, double date2, double pv[2][3] ) -/* -** - - - - - - - - - - -** i a u M o o n 9 8 -** - - - - - - - - - - -** -** Approximate geocentric position and velocity of the Moon. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** n.b. Not IAU-endorsed and without canonical status. -** -** Given: -** date1 double TT date part A (Notes 1,4) -** date2 double TT date part B (Notes 1,4) -** -** Returned: -** pv double[2][3] Moon p,v, GCRS (au, au/d, Note 5) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. The limited -** accuracy of the present algorithm is such that any of the methods -** is satisfactory. -** -** 2) This function is a full implementation of the algorithm -** published by Meeus (see reference) except that the light-time -** correction to the Moon's mean longitude has been omitted. -** -** 3) Comparisons with ELP/MPP02 over the interval 1950-2100 gave RMS -** errors of 2.9 arcsec in geocentric direction, 6.1 km in position -** and 36 mm/s in velocity. The worst case errors were 18.3 arcsec -** in geocentric direction, 31.7 km in position and 172 mm/s in -** velocity. -** -** 4) The original algorithm is expressed in terms of "dynamical time", -** which can either be TDB or TT without any significant change in -** accuracy. UT cannot be used without incurring significant errors -** (30 arcsec in the present era) due to the Moon's 0.5 arcsec/sec -** movement. -** -** 5) The result is with respect to the GCRS (the same as J2000.0 mean -** equator and equinox to within 23 mas). -** -** 6) Velocity is obtained by a complete analytical differentiation -** of the Meeus model. -** -** 7) The Meeus algorithm generates position and velocity in mean -** ecliptic coordinates of date, which the present function then -** rotates into GCRS. Because the ecliptic system is precessing, -** there is a coupling between this spin (about 1.4 degrees per -** century) and the Moon position that produces a small velocity -** contribution. In the present function this effect is neglected -** as it corresponds to a maximum difference of less than 3 mm/s and -** increases the RMS error by only 0.4%. -** -** References: -** -** Meeus, J., Astronomical Algorithms, 2nd edition, Willmann-Bell, -** 1998, p337. -** -** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 -** -** Defined in sofam.h: -** DAU astronomical unit (m) -** DJC days per Julian century -** DJ00 reference epoch (J2000.0), Julian Date -** DD2R degrees to radians -** -** Called: -** iauS2pv spherical coordinates to pv-vector -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRx rotate around X-axis -** iauRxpv product of r-matrix and pv-vector -** -** This revision: 2023 March 20 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* -** Coefficients for fundamental arguments: -** -** . Powers of time in Julian centuries -** . Units are degrees. -*/ - -/* Moon's mean longitude (wrt mean equinox and ecliptic of date) */ - static double elp0 = 218.31665436, /* Simon et al. (1994). */ - elp1 = 481267.88123421, - elp2 = -0.0015786, - elp3 = 1.0 / 538841.0, - elp4 = -1.0 / 65194000.0; - double elp, delp; - -/* Moon's mean elongation */ - static double d0 = 297.8501921, - d1 = 445267.1114034, - d2 = -0.0018819, - d3 = 1.0 / 545868.0, - d4 = 1.0 / 113065000.0; - double d, dd; - -/* Sun's mean anomaly */ - static double em0 = 357.5291092, - em1 = 35999.0502909, - em2 = -0.0001536, - em3 = 1.0 / 24490000.0, - em4 = 0.0; - double em, dem; - -/* Moon's mean anomaly */ - static double emp0 = 134.9633964, - emp1 = 477198.8675055, - emp2 = 0.0087414, - emp3 = 1.0 / 69699.0, - emp4 = -1.0 / 14712000.0; - double emp, demp; - -/* Mean distance of the Moon from its ascending node */ - static double f0 = 93.2720950, - f1 = 483202.0175233, - f2 = -0.0036539, - f3 = 1.0 / 3526000.0, - f4 = 1.0 / 863310000.0; - double f, df; - -/* -** Other arguments -*/ - -/* Meeus A_1, due to Venus (deg) */ - static double a10 = 119.75, - a11 = 131.849; - double a1, da1; - -/* Meeus A_2, due to Jupiter (deg) */ - static double a20 = 53.09, - a21 = 479264.290; - double a2, da2; - -/* Meeus A_3, due to sidereal motion of the Moon in longitude (deg) */ - static double a30 = 313.45, - a31 = 481266.484; - double a3, da3; - -/* Coefficients for Meeus "additive terms" (deg) */ - static double al1 = 0.003958, - al2 = 0.001962, - al3 = 0.000318; - static double ab1 = -0.002235, - ab2 = 0.000382, - ab3 = 0.000175, - ab4 = 0.000175, - ab5 = 0.000127, - ab6 = -0.000115; - -/* Fixed term in distance (m) */ - static double r0 = 385000560.0; - -/* Coefficients for (dimensionless) E factor */ - static double e1 = -0.002516, - e2 = -0.0000074; - double e, de, esq, desq; - -/* -** Coefficients for Moon longitude and distance series -*/ - struct termlr { - int nd; /* multiple of D in argument */ - int nem; /* " " M " " */ - int nemp; /* " " M' " " */ - int nf; /* " " F " " */ - double coefl; /* coefficient of L sine argument (deg) */ - double coefr; /* coefficient of R cosine argument (m) */ - }; - -static struct termlr tlr[] = {{0, 0, 1, 0, 6.288774, -20905355.0}, - {2, 0, -1, 0, 1.274027, -3699111.0}, - {2, 0, 0, 0, 0.658314, -2955968.0}, - {0, 0, 2, 0, 0.213618, -569925.0}, - {0, 1, 0, 0, -0.185116, 48888.0}, - {0, 0, 0, 2, -0.114332, -3149.0}, - {2, 0, -2, 0, 0.058793, 246158.0}, - {2, -1, -1, 0, 0.057066, -152138.0}, - {2, 0, 1, 0, 0.053322, -170733.0}, - {2, -1, 0, 0, 0.045758, -204586.0}, - {0, 1, -1, 0, -0.040923, -129620.0}, - {1, 0, 0, 0, -0.034720, 108743.0}, - {0, 1, 1, 0, -0.030383, 104755.0}, - {2, 0, 0, -2, 0.015327, 10321.0}, - {0, 0, 1, 2, -0.012528, 0.0}, - {0, 0, 1, -2, 0.010980, 79661.0}, - {4, 0, -1, 0, 0.010675, -34782.0}, - {0, 0, 3, 0, 0.010034, -23210.0}, - {4, 0, -2, 0, 0.008548, -21636.0}, - {2, 1, -1, 0, -0.007888, 24208.0}, - {2, 1, 0, 0, -0.006766, 30824.0}, - {1, 0, -1, 0, -0.005163, -8379.0}, - {1, 1, 0, 0, 0.004987, -16675.0}, - {2, -1, 1, 0, 0.004036, -12831.0}, - {2, 0, 2, 0, 0.003994, -10445.0}, - {4, 0, 0, 0, 0.003861, -11650.0}, - {2, 0, -3, 0, 0.003665, 14403.0}, - {0, 1, -2, 0, -0.002689, -7003.0}, - {2, 0, -1, 2, -0.002602, 0.0}, - {2, -1, -2, 0, 0.002390, 10056.0}, - {1, 0, 1, 0, -0.002348, 6322.0}, - {2, -2, 0, 0, 0.002236, -9884.0}, - {0, 1, 2, 0, -0.002120, 5751.0}, - {0, 2, 0, 0, -0.002069, 0.0}, - {2, -2, -1, 0, 0.002048, -4950.0}, - {2, 0, 1, -2, -0.001773, 4130.0}, - {2, 0, 0, 2, -0.001595, 0.0}, - {4, -1, -1, 0, 0.001215, -3958.0}, - {0, 0, 2, 2, -0.001110, 0.0}, - {3, 0, -1, 0, -0.000892, 3258.0}, - {2, 1, 1, 0, -0.000810, 2616.0}, - {4, -1, -2, 0, 0.000759, -1897.0}, - {0, 2, -1, 0, -0.000713, -2117.0}, - {2, 2, -1, 0, -0.000700, 2354.0}, - {2, 1, -2, 0, 0.000691, 0.0}, - {2, -1, 0, -2, 0.000596, 0.0}, - {4, 0, 1, 0, 0.000549, -1423.0}, - {0, 0, 4, 0, 0.000537, -1117.0}, - {4, -1, 0, 0, 0.000520, -1571.0}, - {1, 0, -2, 0, -0.000487, -1739.0}, - {2, 1, 0, -2, -0.000399, 0.0}, - {0, 0, 2, -2, -0.000381, -4421.0}, - {1, 1, 1, 0, 0.000351, 0.0}, - {3, 0, -2, 0, -0.000340, 0.0}, - {4, 0, -3, 0, 0.000330, 0.0}, - {2, -1, 2, 0, 0.000327, 0.0}, - {0, 2, 1, 0, -0.000323, 1165.0}, - {1, 1, -1, 0, 0.000299, 0.0}, - {2, 0, 3, 0, 0.000294, 0.0}, - {2, 0, -1, -2, 0.000000, 8752.0}}; - - static int NLR = ( sizeof tlr / sizeof ( struct termlr ) ); - -/* -** Coefficients for Moon latitude series -*/ - struct termb { - int nd; /* multiple of D in argument */ - int nem; /* " " M " " */ - int nemp; /* " " M' " " */ - int nf; /* " " F " " */ - double coefb; /* coefficient of B sine argument (deg) */ - }; - -static struct termb tb[] = {{0, 0, 0, 1, 5.128122}, - {0, 0, 1, 1, 0.280602}, - {0, 0, 1, -1, 0.277693}, - {2, 0, 0, -1, 0.173237}, - {2, 0, -1, 1, 0.055413}, - {2, 0, -1, -1, 0.046271}, - {2, 0, 0, 1, 0.032573}, - {0, 0, 2, 1, 0.017198}, - {2, 0, 1, -1, 0.009266}, - {0, 0, 2, -1, 0.008822}, - {2, -1, 0, -1, 0.008216}, - {2, 0, -2, -1, 0.004324}, - {2, 0, 1, 1, 0.004200}, - {2, 1, 0, -1, -0.003359}, - {2, -1, -1, 1, 0.002463}, - {2, -1, 0, 1, 0.002211}, - {2, -1, -1, -1, 0.002065}, - {0, 1, -1, -1, -0.001870}, - {4, 0, -1, -1, 0.001828}, - {0, 1, 0, 1, -0.001794}, - {0, 0, 0, 3, -0.001749}, - {0, 1, -1, 1, -0.001565}, - {1, 0, 0, 1, -0.001491}, - {0, 1, 1, 1, -0.001475}, - {0, 1, 1, -1, -0.001410}, - {0, 1, 0, -1, -0.001344}, - {1, 0, 0, -1, -0.001335}, - {0, 0, 3, 1, 0.001107}, - {4, 0, 0, -1, 0.001021}, - {4, 0, -1, 1, 0.000833}, - {0, 0, 1, -3, 0.000777}, - {4, 0, -2, 1, 0.000671}, - {2, 0, 0, -3, 0.000607}, - {2, 0, 2, -1, 0.000596}, - {2, -1, 1, -1, 0.000491}, - {2, 0, -2, 1, -0.000451}, - {0, 0, 3, -1, 0.000439}, - {2, 0, 2, 1, 0.000422}, - {2, 0, -3, -1, 0.000421}, - {2, 1, -1, 1, -0.000366}, - {2, 1, 0, 1, -0.000351}, - {4, 0, 0, 1, 0.000331}, - {2, -1, 1, 1, 0.000315}, - {2, -2, 0, -1, 0.000302}, - {0, 0, 1, 3, -0.000283}, - {2, 1, 1, -1, -0.000229}, - {1, 1, 0, -1, 0.000223}, - {1, 1, 0, 1, 0.000223}, - {0, 1, -2, -1, -0.000220}, - {2, 1, -1, -1, -0.000220}, - {1, 0, 1, 1, -0.000185}, - {2, -1, -2, -1, 0.000181}, - {0, 1, 2, 1, -0.000177}, - {4, 0, -2, -1, 0.000176}, - {4, -1, -1, -1, 0.000166}, - {1, 0, 1, -1, -0.000164}, - {4, 0, 1, -1, 0.000132}, - {1, 0, -1, -1, -0.000119}, - {4, -1, 0, -1, 0.000115}, - {2, -2, 0, 1, 0.000107}}; - - static int NB = ( sizeof tb / sizeof ( struct termb ) ); - -/* Miscellaneous */ - int n, i; - double t, elpmf, delpmf, vel, vdel, vr, vdr, a1mf, da1mf, a1pf, - da1pf, dlpmp, slpmp, vb, vdb, v, dv, emn, empn, dn, fn, en, - den, arg, darg, farg, coeff, el, del, r, dr, b, db, gamb, - phib, psib, epsa, rm[3][3]; - -/* ------------------------------------------------------------------ */ - -/* Centuries since J2000.0 */ - t = ((date1 - DJ00) + date2) / DJC; - -/* --------------------- */ -/* Fundamental arguments */ -/* --------------------- */ - -/* Arguments (radians) and derivatives (radians per Julian century) - for the current date. */ - -/* Moon's mean longitude. */ - elp = DD2R * fmod ( elp0 - + ( elp1 - + ( elp2 - + ( elp3 - + elp4 * t ) * t ) * t ) * t, 360.0 ); - delp = DD2R * ( elp1 - + ( elp2 * 2.0 - + ( elp3 * 3.0 - + elp4 * 4.0 * t ) * t ) * t ); - -/* Moon's mean elongation. */ - d = DD2R * fmod ( d0 - + ( d1 - + ( d2 - + ( d3 - + d4 * t ) * t ) * t ) * t, 360.0 ); - dd = DD2R * ( d1 - + ( d2 * 2.0 - + ( d3 * 3.0 - + d4 * 4.0 * t ) * t ) * t ); - -/* Sun's mean anomaly. */ - em = DD2R * fmod ( em0 - + ( em1 - + ( em2 - + ( em3 - + em4 * t ) * t ) * t ) * t, 360.0 ); - dem = DD2R * ( em1 - + ( em2 * 2.0 - + ( em3 * 3.0 - + em4 * 4.0 * t ) * t ) * t ); - -/* Moon's mean anomaly. */ - emp = DD2R * fmod ( emp0 - + ( emp1 - + ( emp2 - + ( emp3 - + emp4 * t ) * t ) * t ) * t, 360.0 ); - demp = DD2R * ( emp1 - + ( emp2 * 2.0 - + ( emp3 * 3.0 - + emp4 * 4.0 * t ) * t ) * t ); - -/* Mean distance of the Moon from its ascending node. */ - f = DD2R * fmod ( f0 - + ( f1 - + ( f2 - + ( f3 - + f4 * t ) * t ) * t ) * t, 360.0 ); - df = DD2R * ( f1 - + ( f2 * 2.0 - + ( f3 * 3.0 - + f4 * 4.0 * t ) * t ) * t ); - -/* Meeus further arguments. */ - a1 = DD2R * ( a10 + a11*t ); - da1 = DD2R * al1; - a2 = DD2R * ( a20 + a21*t ); - da2 = DD2R * a21; - a3 = DD2R * ( a30 + a31*t ); - da3 = DD2R * a31; - -/* E-factor, and square. */ - e = 1.0 + ( e1 + e2*t ) * t; - de = e1 + 2.0*e2*t; - esq = e*e; - desq = 2.0*e*de; - -/* Use the Meeus additive terms (deg) to start off the summations. */ - elpmf = elp - f; - delpmf = delp - df; - vel = al1 * sin(a1) - + al2 * sin(elpmf) - + al3 * sin(a2); - vdel = al1 * cos(a1) * da1 - + al2 * cos(elpmf) * delpmf - + al3 * cos(a2) * da2; - - vr = 0.0; - vdr = 0.0; - - a1mf = a1 - f; - da1mf = da1 - df; - a1pf = a1 + f; - da1pf = da1 + df; - dlpmp = elp - emp; - slpmp = elp + emp; - vb = ab1 * sin(elp) - + ab2 * sin(a3) - + ab3 * sin(a1mf) - + ab4 * sin(a1pf) - + ab5 * sin(dlpmp) - + ab6 * sin(slpmp); - vdb = ab1 * cos(elp) * delp - + ab2 * cos(a3) * da3 - + ab3 * cos(a1mf) * da1mf - + ab4 * cos(a1pf) * da1pf - + ab5 * cos(dlpmp) * (delp-demp) - + ab6 * cos(slpmp) * (delp+demp); - -/* ----------------- */ -/* Series expansions */ -/* ----------------- */ - -/* Longitude and distance plus derivatives. */ - for ( n = NLR-1; n >= 0; n-- ) { - dn = (double) tlr[n].nd; - emn = (double) ( i = tlr[n].nem ); - empn = (double) tlr[n].nemp; - fn = (double) tlr[n].nf; - switch ( abs(i) ) { - case 1: - en = e; - den = de; - break; - case 2: - en = esq; - den = desq; - break; - default: - en = 1.0; - den = 0.0; - } - arg = dn*d + emn*em + empn*emp + fn*f; - darg = dn*dd + emn*dem + empn*demp + fn*df; - farg = sin(arg); - v = farg * en; - dv = cos(arg)*darg*en + farg*den; - coeff = tlr[n].coefl; - vel += coeff * v; - vdel += coeff * dv; - farg = cos(arg); - v = farg * en; - dv = -sin(arg)*darg*en + farg*den; - coeff = tlr[n].coefr; - vr += coeff * v; - vdr += coeff * dv; - } - el = elp + DD2R*vel; - del = ( delp + DD2R*vdel ) / DJC; - r = ( vr + r0 ) / DAU; - dr = vdr / DAU / DJC; - -/* Latitude plus derivative. */ - for ( n = NB-1; n >= 0; n-- ) { - dn = (double) tb[n].nd; - emn = (double) ( i = tb[n].nem ); - empn = (double) tb[n].nemp; - fn = (double) tb[n].nf; - switch ( abs(i) ) { - case 1: - en = e; - den = de; - break; - case 2: - en = esq; - den = desq; - break; - default: - en = 1.0; - den = 0.0; - } - arg = dn*d + emn*em + empn*emp + fn*f; - darg = dn*dd + emn*dem + empn*demp + fn*df; - farg = sin(arg); - v = farg * en; - dv = cos(arg)*darg*en + farg*den; - coeff = tb[n].coefb; - vb += coeff * v; - vdb += coeff * dv; - } - b = vb * DD2R; - db = vdb * DD2R / DJC; - -/* ------------------------------ */ -/* Transformation into final form */ -/* ------------------------------ */ - -/* Longitude, latitude to x, y, z (au). */ - iauS2pv ( el, b, r, del, db, dr, pv ); - -/* IAU 2006 Fukushima-Williams bias+precession angles. */ - iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa ); - -/* Mean ecliptic coordinates to GCRS rotation matrix. */ - iauIr ( rm ); - iauRz ( psib, rm ); - iauRx ( -phib, rm ); - iauRz ( -gamb, rm ); - -/* Rotate the Moon position and velocity into GCRS (Note 6). */ - iauRxpv ( rm, pv, pv ); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/num00a.c b/deps/sofa/20231011/c/src/num00a.c deleted file mode 100644 index 2852f7a..0000000 --- a/deps/sofa/20231011/c/src/num00a.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" - -void iauNum00a(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u m 0 0 a -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 2000A model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** 3) A faster, but slightly less accurate, result (about 1 mas) can be -** obtained by using instead the iauNum00b function. -** -** Called: -** iauPn00a bias/precession/nutation, IAU 2000A -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rbpn[3][3]; - - -/* Obtain the required matrix (discarding other results). */ - iauPn00a(date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rmatn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/num00b.c b/deps/sofa/20231011/c/src/num00b.c deleted file mode 100644 index 908e45d..0000000 --- a/deps/sofa/20231011/c/src/num00b.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" - -void iauNum00b(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u m 0 0 b -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 2000B model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauNum00a function. -** -** Called: -** iauPn00b bias/precession/nutation, IAU 2000B -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rbpn[3][3]; - - -/* Obtain the required matrix (discarding other results). */ - iauPn00b(date1, date2, - &dpsi, &deps, &epsa, rb, rp, rbp, rmatn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/num06a.c b/deps/sofa/20231011/c/src/num06a.c deleted file mode 100644 index 1706a49..0000000 --- a/deps/sofa/20231011/c/src/num06a.c +++ /dev/null @@ -1,175 +0,0 @@ -#include "sofa.h" - -void iauNum06a(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u m 0 6 a -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 2006/2000A model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where -** the p-vector V(true) is with respect to the true equatorial triad -** of date and the p-vector V(mean) is with respect to the mean -** equatorial triad of date. -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** iauNut06a nutation, IAU 2006/2000A -** iauNumat form nutation matrix -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double eps, dp, de; - - -/* Mean obliquity. */ - eps = iauObl06(date1, date2); - -/* Nutation components. */ - iauNut06a(date1, date2, &dp, &de); - -/* Nutation matrix. */ - iauNumat(eps, dp, de, rmatn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/numat.c b/deps/sofa/20231011/c/src/numat.c deleted file mode 100644 index 08fd7b8..0000000 --- a/deps/sofa/20231011/c/src/numat.c +++ /dev/null @@ -1,159 +0,0 @@ -#include "sofa.h" - -void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) -/* -** - - - - - - - - - -** i a u N u m a t -** - - - - - - - - - -** -** Form the matrix of nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** epsa double mean obliquity of date (Note 1) -** dpsi,deps double nutation (Note 2) -** -** Returned: -** rmatn double[3][3] nutation matrix (Note 3) -** -** Notes: -** -** -** 1) The supplied mean obliquity epsa, must be consistent with the -** precession-nutation models from which dpsi and deps were obtained. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. -** -** 3) The matrix operates in the sense V(true) = rmatn * V(mean), -** where the p-vector V(true) is with respect to the true -** equatorial triad of date and the p-vector V(mean) is with -** respect to the mean equatorial triad of date. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRx rotate around X-axis -** iauRz rotate around Z-axis -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222-3 (p114). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Build the rotation matrix. */ - iauIr(rmatn); - iauRx(epsa, rmatn); - iauRz(-dpsi, rmatn); - iauRx(-(epsa + deps), rmatn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/nut00a.c b/deps/sofa/20231011/c/src/nut00a.c deleted file mode 100644 index dbc69af..0000000 --- a/deps/sofa/20231011/c/src/nut00a.c +++ /dev/null @@ -1,2098 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauNut00a(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - - -** i a u N u t 0 0 a -** - - - - - - - - - - -** -** Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation -** with free core nutation omitted). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the equinox and ecliptic of date. The -** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) -** value of 84381.448 arcsec. -** -** Both the luni-solar and planetary nutations are included. The -** latter are due to direct planetary nutations and the -** perturbations of the lunar and terrestrial orbits. -** -** 3) The function computes the MHB2000 nutation series with the -** associated corrections for planetary nutations. It is an -** implementation of the nutation part of the IAU 2000A precession- -** nutation model, formally adopted by the IAU General Assembly in -** 2000, namely MHB2000 (Mathews et al. 2002), but with the free -** core nutation (FCN - see Note 4) omitted. -** -** 4) The full MHB2000 model also contains contributions to the -** nutations in longitude and obliquity due to the free-excitation -** of the free-core-nutation during the period 1979-2000. These FCN -** terms, which are time-dependent and unpredictable, are NOT -** included in the present function and, if required, must be -** independently computed. With the FCN corrections included, the -** present function delivers a pole which is at current epochs -** accurate to a few hundred microarcseconds. The omission of FCN -** introduces further errors of about that size. -** -** 5) The present function provides classical nutation. The MHB2000 -** algorithm, from which it is adapted, deals also with (i) the -** offsets between the GCRS and mean poles and (ii) the adjustments -** in longitude and obliquity due to the changed precession rates. -** These additional functions, namely frame bias and precession -** adjustments, are supported by the SOFA functions iauBi00 and -** iauPr00. -** -** 6) The MHB2000 algorithm also provides "total" nutations, comprising -** the arithmetic sum of the frame bias, precession adjustments, -** luni-solar nutation and planetary nutation. These total -** nutations can be used in combination with an existing IAU 1976 -** precession implementation, such as iauPmat76, to deliver GCRS- -** to-true predictions of sub-mas accuracy at current dates. -** However, there are three shortcomings in the MHB2000 model that -** must be taken into account if more accurate or definitive results -** are required (see Wallace 2002): -** -** (i) The MHB2000 total nutations are simply arithmetic sums, -** yet in reality the various components are successive Euler -** rotations. This slight lack of rigor leads to cross terms -** that exceed 1 mas after a century. The rigorous procedure -** is to form the GCRS-to-true rotation matrix by applying the -** bias, precession and nutation in that order. -** -** (ii) Although the precession adjustments are stated to be with -** respect to Lieske et al. (1977), the MHB2000 model does -** not specify which set of Euler angles are to be used and -** how the adjustments are to be applied. The most literal -** and straightforward procedure is to adopt the 4-rotation -** epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR -** to psi_A and DEPSPR to both omega_A and eps_A. -** -** (iii) The MHB2000 model predates the determination by Chapront -** et al. (2002) of a 14.6 mas displacement between the -** J2000.0 mean equinox and the origin of the ICRS frame. It -** should, however, be noted that neglecting this displacement -** when calculating star coordinates does not lead to a -** 14.6 mas change in right ascension, only a small second- -** order distortion in the pattern of the precession-nutation -** effect. -** -** For these reasons, the SOFA functions do not generate the "total -** nutations" directly, though they can of course easily be -** generated by calling iauBi00, iauPr00 and the present function -** and adding the results. -** -** 7) The MHB2000 model contains 41 instances where the same frequency -** appears multiple times, of which 38 are duplicates and three are -** triplicates. To keep the present code close to the original MHB -** algorithm, this small inefficiency has not been corrected. -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFaf03 mean argument of the latitude of the Moon -** iauFaom03 mean longitude of the Moon's ascending node -** iauFame03 mean longitude of Mercury -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFama03 mean longitude of Mars -** iauFaju03 mean longitude of Jupiter -** iauFasa03 mean longitude of Saturn -** iauFaur03 mean longitude of Uranus -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, -** Astron.Astrophys. 387, 700 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. -** 107, B4. The MHB_2000 code itself was obtained on 9th September -** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002) -** -** This revision: 2021 July 20 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int i; - double t, el, elp, f, d, om, arg, dp, de, sarg, carg, - al, af, ad, aom, alme, alve, alea, alma, - alju, alsa, alur, alne, apa, dpsils, depsls, - dpsipl, depspl; - -/* Units of 0.1 microarcsecond to radians */ - const double U2R = DAS2R / 1e7; - -/* ------------------------- */ -/* Luni-Solar nutation model */ -/* ------------------------- */ - -/* The units for the sine and cosine coefficients are */ -/* 0.1 microarcsecond and the same per Julian century */ - - static const struct { - int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */ - double sp,spt,cp; /* longitude sin, t*sin, cos coefficients */ - double ce,cet,se; /* obliquity cos, t*cos, sin coefficients */ - } xls[] = { - - /* 1- 10 */ - { 0, 0, 0, 0, 1, - -172064161.0, -174666.0, 33386.0, 92052331.0, 9086.0, 15377.0}, - { 0, 0, 2,-2, 2, - -13170906.0, -1675.0, -13696.0, 5730336.0, -3015.0, -4587.0}, - { 0, 0, 2, 0, 2,-2276413.0,-234.0,2796.0,978459.0,-485.0, 1374.0}, - { 0, 0, 0, 0, 2,2074554.0, 207.0, -698.0,-897492.0,470.0, -291.0}, - { 0, 1, 0, 0, 0,1475877.0,-3633.0,11817.0,73871.0,-184.0,-1924.0}, - { 0, 1, 2,-2, 2,-516821.0,1226.0, -524.0,224386.0,-677.0, -174.0}, - { 1, 0, 0, 0, 0, 711159.0, 73.0, -872.0, -6750.0, 0.0, 358.0}, - { 0, 0, 2, 0, 1,-387298.0,-367.0, 380.0, 200728.0, 18.0, 318.0}, - { 1, 0, 2, 0, 2,-301461.0, -36.0, 816.0, 129025.0,-63.0, 367.0}, - { 0,-1, 2,-2, 2, 215829.0,-494.0, 111.0, -95929.0,299.0, 132.0}, - - /* 11-20 */ - { 0, 0, 2,-2, 1, 128227.0, 137.0, 181.0, -68982.0, -9.0, 39.0}, - {-1, 0, 2, 0, 2, 123457.0, 11.0, 19.0, -53311.0, 32.0, -4.0}, - {-1, 0, 0, 2, 0, 156994.0, 10.0, -168.0, -1235.0, 0.0, 82.0}, - { 1, 0, 0, 0, 1, 63110.0, 63.0, 27.0, -33228.0, 0.0, -9.0}, - {-1, 0, 0, 0, 1, -57976.0, -63.0, -189.0, 31429.0, 0.0, -75.0}, - {-1, 0, 2, 2, 2, -59641.0, -11.0, 149.0, 25543.0,-11.0, 66.0}, - { 1, 0, 2, 0, 1, -51613.0, -42.0, 129.0, 26366.0, 0.0, 78.0}, - {-2, 0, 2, 0, 1, 45893.0, 50.0, 31.0, -24236.0,-10.0, 20.0}, - { 0, 0, 0, 2, 0, 63384.0, 11.0, -150.0, -1220.0, 0.0, 29.0}, - { 0, 0, 2, 2, 2, -38571.0, -1.0, 158.0, 16452.0,-11.0, 68.0}, - - /* 21-30 */ - { 0,-2, 2,-2, 2, 32481.0, 0.0, 0.0, -13870.0, 0.0, 0.0}, - {-2, 0, 0, 2, 0, -47722.0, 0.0, -18.0, 477.0, 0.0, -25.0}, - { 2, 0, 2, 0, 2, -31046.0, -1.0, 131.0, 13238.0,-11.0, 59.0}, - { 1, 0, 2,-2, 2, 28593.0, 0.0, -1.0, -12338.0, 10.0, -3.0}, - {-1, 0, 2, 0, 1, 20441.0, 21.0, 10.0, -10758.0, 0.0, -3.0}, - { 2, 0, 0, 0, 0, 29243.0, 0.0, -74.0, -609.0, 0.0, 13.0}, - { 0, 0, 2, 0, 0, 25887.0, 0.0, -66.0, -550.0, 0.0, 11.0}, - { 0, 1, 0, 0, 1, -14053.0, -25.0, 79.0, 8551.0, -2.0, -45.0}, - {-1, 0, 0, 2, 1, 15164.0, 10.0, 11.0, -8001.0, 0.0, -1.0}, - { 0, 2, 2,-2, 2, -15794.0, 72.0, -16.0, 6850.0,-42.0, -5.0}, - - /* 31-40 */ - { 0, 0,-2, 2, 0, 21783.0, 0.0, 13.0, -167.0, 0.0, 13.0}, - { 1, 0, 0,-2, 1, -12873.0, -10.0, -37.0, 6953.0, 0.0, -14.0}, - { 0,-1, 0, 0, 1, -12654.0, 11.0, 63.0, 6415.0, 0.0, 26.0}, - {-1, 0, 2, 2, 1, -10204.0, 0.0, 25.0, 5222.0, 0.0, 15.0}, - { 0, 2, 0, 0, 0, 16707.0, -85.0, -10.0, 168.0, -1.0, 10.0}, - { 1, 0, 2, 2, 2, -7691.0, 0.0, 44.0, 3268.0, 0.0, 19.0}, - {-2, 0, 2, 0, 0, -11024.0, 0.0, -14.0, 104.0, 0.0, 2.0}, - { 0, 1, 2, 0, 2, 7566.0, -21.0, -11.0, -3250.0, 0.0, -5.0}, - { 0, 0, 2, 2, 1, -6637.0, -11.0, 25.0, 3353.0, 0.0, 14.0}, - { 0,-1, 2, 0, 2, -7141.0, 21.0, 8.0, 3070.0, 0.0, 4.0}, - - /* 41-50 */ - { 0, 0, 0, 2, 1, -6302.0, -11.0, 2.0, 3272.0, 0.0, 4.0}, - { 1, 0, 2,-2, 1, 5800.0, 10.0, 2.0, -3045.0, 0.0, -1.0}, - { 2, 0, 2,-2, 2, 6443.0, 0.0, -7.0, -2768.0, 0.0, -4.0}, - {-2, 0, 0, 2, 1, -5774.0, -11.0, -15.0, 3041.0, 0.0, -5.0}, - { 2, 0, 2, 0, 1, -5350.0, 0.0, 21.0, 2695.0, 0.0, 12.0}, - { 0,-1, 2,-2, 1, -4752.0, -11.0, -3.0, 2719.0, 0.0, -3.0}, - { 0, 0, 0,-2, 1, -4940.0, -11.0, -21.0, 2720.0, 0.0, -9.0}, - {-1,-1, 0, 2, 0, 7350.0, 0.0, -8.0, -51.0, 0.0, 4.0}, - { 2, 0, 0,-2, 1, 4065.0, 0.0, 6.0, -2206.0, 0.0, 1.0}, - { 1, 0, 0, 2, 0, 6579.0, 0.0, -24.0, -199.0, 0.0, 2.0}, - - /* 51-60 */ - { 0, 1, 2,-2, 1, 3579.0, 0.0, 5.0, -1900.0, 0.0, 1.0}, - { 1,-1, 0, 0, 0, 4725.0, 0.0, -6.0, -41.0, 0.0, 3.0}, - {-2, 0, 2, 0, 2, -3075.0, 0.0, -2.0, 1313.0, 0.0, -1.0}, - { 3, 0, 2, 0, 2, -2904.0, 0.0, 15.0, 1233.0, 0.0, 7.0}, - { 0,-1, 0, 2, 0, 4348.0, 0.0, -10.0, -81.0, 0.0, 2.0}, - { 1,-1, 2, 0, 2, -2878.0, 0.0, 8.0, 1232.0, 0.0, 4.0}, - { 0, 0, 0, 1, 0, -4230.0, 0.0, 5.0, -20.0, 0.0, -2.0}, - {-1,-1, 2, 2, 2, -2819.0, 0.0, 7.0, 1207.0, 0.0, 3.0}, - {-1, 0, 2, 0, 0, -4056.0, 0.0, 5.0, 40.0, 0.0, -2.0}, - { 0,-1, 2, 2, 2, -2647.0, 0.0, 11.0, 1129.0, 0.0, 5.0}, - - /* 61-70 */ - {-2, 0, 0, 0, 1, -2294.0, 0.0, -10.0, 1266.0, 0.0, -4.0}, - { 1, 1, 2, 0, 2, 2481.0, 0.0, -7.0, -1062.0, 0.0, -3.0}, - { 2, 0, 0, 0, 1, 2179.0, 0.0, -2.0, -1129.0, 0.0, -2.0}, - {-1, 1, 0, 1, 0, 3276.0, 0.0, 1.0, -9.0, 0.0, 0.0}, - { 1, 1, 0, 0, 0, -3389.0, 0.0, 5.0, 35.0, 0.0, -2.0}, - { 1, 0, 2, 0, 0, 3339.0, 0.0, -13.0, -107.0, 0.0, 1.0}, - {-1, 0, 2,-2, 1, -1987.0, 0.0, -6.0, 1073.0, 0.0, -2.0}, - { 1, 0, 0, 0, 2, -1981.0, 0.0, 0.0, 854.0, 0.0, 0.0}, - {-1, 0, 0, 1, 0, 4026.0, 0.0, -353.0, -553.0, 0.0, -139.0}, - { 0, 0, 2, 1, 2, 1660.0, 0.0, -5.0, -710.0, 0.0, -2.0}, - - /* 71-80 */ - {-1, 0, 2, 4, 2, -1521.0, 0.0, 9.0, 647.0, 0.0, 4.0}, - {-1, 1, 0, 1, 1, 1314.0, 0.0, 0.0, -700.0, 0.0, 0.0}, - { 0,-2, 2,-2, 1, -1283.0, 0.0, 0.0, 672.0, 0.0, 0.0}, - { 1, 0, 2, 2, 1, -1331.0, 0.0, 8.0, 663.0, 0.0, 4.0}, - {-2, 0, 2, 2, 2, 1383.0, 0.0, -2.0, -594.0, 0.0, -2.0}, - {-1, 0, 0, 0, 2, 1405.0, 0.0, 4.0, -610.0, 0.0, 2.0}, - { 1, 1, 2,-2, 2, 1290.0, 0.0, 0.0, -556.0, 0.0, 0.0}, - {-2, 0, 2, 4, 2, -1214.0, 0.0, 5.0, 518.0, 0.0, 2.0}, - {-1, 0, 4, 0, 2, 1146.0, 0.0, -3.0, -490.0, 0.0, -1.0}, - { 2, 0, 2,-2, 1, 1019.0, 0.0, -1.0, -527.0, 0.0, -1.0}, - - /* 81-90 */ - { 2, 0, 2, 2, 2, -1100.0, 0.0, 9.0, 465.0, 0.0, 4.0}, - { 1, 0, 0, 2, 1, -970.0, 0.0, 2.0, 496.0, 0.0, 1.0}, - { 3, 0, 0, 0, 0, 1575.0, 0.0, -6.0, -50.0, 0.0, 0.0}, - { 3, 0, 2,-2, 2, 934.0, 0.0, -3.0, -399.0, 0.0, -1.0}, - { 0, 0, 4,-2, 2, 922.0, 0.0, -1.0, -395.0, 0.0, -1.0}, - { 0, 1, 2, 0, 1, 815.0, 0.0, -1.0, -422.0, 0.0, -1.0}, - { 0, 0,-2, 2, 1, 834.0, 0.0, 2.0, -440.0, 0.0, 1.0}, - { 0, 0, 2,-2, 3, 1248.0, 0.0, 0.0, -170.0, 0.0, 1.0}, - {-1, 0, 0, 4, 0, 1338.0, 0.0, -5.0, -39.0, 0.0, 0.0}, - { 2, 0,-2, 0, 1, 716.0, 0.0, -2.0, -389.0, 0.0, -1.0}, - - /* 91-100 */ - {-2, 0, 0, 4, 0, 1282.0, 0.0, -3.0, -23.0, 0.0, 1.0}, - {-1,-1, 0, 2, 1, 742.0, 0.0, 1.0, -391.0, 0.0, 0.0}, - {-1, 0, 0, 1, 1, 1020.0, 0.0, -25.0, -495.0, 0.0, -10.0}, - { 0, 1, 0, 0, 2, 715.0, 0.0, -4.0, -326.0, 0.0, 2.0}, - { 0, 0,-2, 0, 1, -666.0, 0.0, -3.0, 369.0, 0.0, -1.0}, - { 0,-1, 2, 0, 1, -667.0, 0.0, 1.0, 346.0, 0.0, 1.0}, - { 0, 0, 2,-1, 2, -704.0, 0.0, 0.0, 304.0, 0.0, 0.0}, - { 0, 0, 2, 4, 2, -694.0, 0.0, 5.0, 294.0, 0.0, 2.0}, - {-2,-1, 0, 2, 0, -1014.0, 0.0, -1.0, 4.0, 0.0, -1.0}, - { 1, 1, 0,-2, 1, -585.0, 0.0, -2.0, 316.0, 0.0, -1.0}, - - /* 101-110 */ - {-1, 1, 0, 2, 0, -949.0, 0.0, 1.0, 8.0, 0.0, -1.0}, - {-1, 1, 0, 1, 2, -595.0, 0.0, 0.0, 258.0, 0.0, 0.0}, - { 1,-1, 0, 0, 1, 528.0, 0.0, 0.0, -279.0, 0.0, 0.0}, - { 1,-1, 2, 2, 2, -590.0, 0.0, 4.0, 252.0, 0.0, 2.0}, - {-1, 1, 2, 2, 2, 570.0, 0.0, -2.0, -244.0, 0.0, -1.0}, - { 3, 0, 2, 0, 1, -502.0, 0.0, 3.0, 250.0, 0.0, 2.0}, - { 0, 1,-2, 2, 0, -875.0, 0.0, 1.0, 29.0, 0.0, 0.0}, - {-1, 0, 0,-2, 1, -492.0, 0.0, -3.0, 275.0, 0.0, -1.0}, - { 0, 1, 2, 2, 2, 535.0, 0.0, -2.0, -228.0, 0.0, -1.0}, - {-1,-1, 2, 2, 1, -467.0, 0.0, 1.0, 240.0, 0.0, 1.0}, - - /* 111-120 */ - { 0,-1, 0, 0, 2, 591.0, 0.0, 0.0, -253.0, 0.0, 0.0}, - { 1, 0, 2,-4, 1, -453.0, 0.0, -1.0, 244.0, 0.0, -1.0}, - {-1, 0,-2, 2, 0, 766.0, 0.0, 1.0, 9.0, 0.0, 0.0}, - { 0,-1, 2, 2, 1, -446.0, 0.0, 2.0, 225.0, 0.0, 1.0}, - { 2,-1, 2, 0, 2, -488.0, 0.0, 2.0, 207.0, 0.0, 1.0}, - { 0, 0, 0, 2, 2, -468.0, 0.0, 0.0, 201.0, 0.0, 0.0}, - { 1,-1, 2, 0, 1, -421.0, 0.0, 1.0, 216.0, 0.0, 1.0}, - {-1, 1, 2, 0, 2, 463.0, 0.0, 0.0, -200.0, 0.0, 0.0}, - { 0, 1, 0, 2, 0, -673.0, 0.0, 2.0, 14.0, 0.0, 0.0}, - { 0,-1,-2, 2, 0, 658.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 121-130 */ - { 0, 3, 2,-2, 2, -438.0, 0.0, 0.0, 188.0, 0.0, 0.0}, - { 0, 0, 0, 1, 1, -390.0, 0.0, 0.0, 205.0, 0.0, 0.0}, - {-1, 0, 2, 2, 0, 639.0, -11.0, -2.0, -19.0, 0.0, 0.0}, - { 2, 1, 2, 0, 2, 412.0, 0.0, -2.0, -176.0, 0.0, -1.0}, - { 1, 1, 0, 0, 1, -361.0, 0.0, 0.0, 189.0, 0.0, 0.0}, - { 1, 1, 2, 0, 1, 360.0, 0.0, -1.0, -185.0, 0.0, -1.0}, - { 2, 0, 0, 2, 0, 588.0, 0.0, -3.0, -24.0, 0.0, 0.0}, - { 1, 0,-2, 2, 0, -578.0, 0.0, 1.0, 5.0, 0.0, 0.0}, - {-1, 0, 0, 2, 2, -396.0, 0.0, 0.0, 171.0, 0.0, 0.0}, - { 0, 1, 0, 1, 0, 565.0, 0.0, -1.0, -6.0, 0.0, 0.0}, - - /* 131-140 */ - { 0, 1, 0,-2, 1, -335.0, 0.0, -1.0, 184.0, 0.0, -1.0}, - {-1, 0, 2,-2, 2, 357.0, 0.0, 1.0, -154.0, 0.0, 0.0}, - { 0, 0, 0,-1, 1, 321.0, 0.0, 1.0, -174.0, 0.0, 0.0}, - {-1, 1, 0, 0, 1, -301.0, 0.0, -1.0, 162.0, 0.0, 0.0}, - { 1, 0, 2,-1, 2, -334.0, 0.0, 0.0, 144.0, 0.0, 0.0}, - { 1,-1, 0, 2, 0, 493.0, 0.0, -2.0, -15.0, 0.0, 0.0}, - { 0, 0, 0, 4, 0, 494.0, 0.0, -2.0, -19.0, 0.0, 0.0}, - { 1, 0, 2, 1, 2, 337.0, 0.0, -1.0, -143.0, 0.0, -1.0}, - { 0, 0, 2, 1, 1, 280.0, 0.0, -1.0, -144.0, 0.0, 0.0}, - { 1, 0, 0,-2, 2, 309.0, 0.0, 1.0, -134.0, 0.0, 0.0}, - - /* 141-150 */ - {-1, 0, 2, 4, 1, -263.0, 0.0, 2.0, 131.0, 0.0, 1.0}, - { 1, 0,-2, 0, 1, 253.0, 0.0, 1.0, -138.0, 0.0, 0.0}, - { 1, 1, 2,-2, 1, 245.0, 0.0, 0.0, -128.0, 0.0, 0.0}, - { 0, 0, 2, 2, 0, 416.0, 0.0, -2.0, -17.0, 0.0, 0.0}, - {-1, 0, 2,-1, 1, -229.0, 0.0, 0.0, 128.0, 0.0, 0.0}, - {-2, 0, 2, 2, 1, 231.0, 0.0, 0.0, -120.0, 0.0, 0.0}, - { 4, 0, 2, 0, 2, -259.0, 0.0, 2.0, 109.0, 0.0, 1.0}, - { 2,-1, 0, 0, 0, 375.0, 0.0, -1.0, -8.0, 0.0, 0.0}, - { 2, 1, 2,-2, 2, 252.0, 0.0, 0.0, -108.0, 0.0, 0.0}, - { 0, 1, 2, 1, 2, -245.0, 0.0, 1.0, 104.0, 0.0, 0.0}, - - /* 151-160 */ - { 1, 0, 4,-2, 2, 243.0, 0.0, -1.0, -104.0, 0.0, 0.0}, - {-1,-1, 0, 0, 1, 208.0, 0.0, 1.0, -112.0, 0.0, 0.0}, - { 0, 1, 0, 2, 1, 199.0, 0.0, 0.0, -102.0, 0.0, 0.0}, - {-2, 0, 2, 4, 1, -208.0, 0.0, 1.0, 105.0, 0.0, 0.0}, - { 2, 0, 2, 0, 0, 335.0, 0.0, -2.0, -14.0, 0.0, 0.0}, - { 1, 0, 0, 1, 0, -325.0, 0.0, 1.0, 7.0, 0.0, 0.0}, - {-1, 0, 0, 4, 1, -187.0, 0.0, 0.0, 96.0, 0.0, 0.0}, - {-1, 0, 4, 0, 1, 197.0, 0.0, -1.0, -100.0, 0.0, 0.0}, - { 2, 0, 2, 2, 1, -192.0, 0.0, 2.0, 94.0, 0.0, 1.0}, - { 0, 0, 2,-3, 2, -188.0, 0.0, 0.0, 83.0, 0.0, 0.0}, - - /* 161-170 */ - {-1,-2, 0, 2, 0, 276.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2, 1, 0, 0, 0, -286.0, 0.0, 1.0, 6.0, 0.0, 0.0}, - { 0, 0, 4, 0, 2, 186.0, 0.0, -1.0, -79.0, 0.0, 0.0}, - { 0, 0, 0, 0, 3, -219.0, 0.0, 0.0, 43.0, 0.0, 0.0}, - { 0, 3, 0, 0, 0, 276.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0, 2,-4, 1, -153.0, 0.0, -1.0, 84.0, 0.0, 0.0}, - { 0,-1, 0, 2, 1, -156.0, 0.0, 0.0, 81.0, 0.0, 0.0}, - { 0, 0, 0, 4, 1, -154.0, 0.0, 1.0, 78.0, 0.0, 0.0}, - {-1,-1, 2, 4, 2, -174.0, 0.0, 1.0, 75.0, 0.0, 0.0}, - { 1, 0, 2, 4, 2, -163.0, 0.0, 2.0, 69.0, 0.0, 1.0}, - - /* 171-180 */ - {-2, 2, 0, 2, 0, -228.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-2,-1, 2, 0, 1, 91.0, 0.0, -4.0, -54.0, 0.0, -2.0}, - {-2, 0, 0, 2, 2, 175.0, 0.0, 0.0, -75.0, 0.0, 0.0}, - {-1,-1, 2, 0, 2, -159.0, 0.0, 0.0, 69.0, 0.0, 0.0}, - { 0, 0, 4,-2, 1, 141.0, 0.0, 0.0, -72.0, 0.0, 0.0}, - { 3, 0, 2,-2, 1, 147.0, 0.0, 0.0, -75.0, 0.0, 0.0}, - {-2,-1, 0, 2, 1, -132.0, 0.0, 0.0, 69.0, 0.0, 0.0}, - { 1, 0, 0,-1, 1, 159.0, 0.0, -28.0, -54.0, 0.0, 11.0}, - { 0,-2, 0, 2, 0, 213.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - {-2, 0, 0, 4, 1, 123.0, 0.0, 0.0, -64.0, 0.0, 0.0}, - - /* 181-190 */ - {-3, 0, 0, 0, 1, -118.0, 0.0, -1.0, 66.0, 0.0, 0.0}, - { 1, 1, 2, 2, 2, 144.0, 0.0, -1.0, -61.0, 0.0, 0.0}, - { 0, 0, 2, 4, 1, -121.0, 0.0, 1.0, 60.0, 0.0, 0.0}, - { 3, 0, 2, 2, 2, -134.0, 0.0, 1.0, 56.0, 0.0, 1.0}, - {-1, 1, 2,-2, 1, -105.0, 0.0, 0.0, 57.0, 0.0, 0.0}, - { 2, 0, 0,-4, 1, -102.0, 0.0, 0.0, 56.0, 0.0, 0.0}, - { 0, 0, 0,-2, 2, 120.0, 0.0, 0.0, -52.0, 0.0, 0.0}, - { 2, 0, 2,-4, 1, 101.0, 0.0, 0.0, -54.0, 0.0, 0.0}, - {-1, 1, 0, 2, 1, -113.0, 0.0, 0.0, 59.0, 0.0, 0.0}, - { 0, 0, 2,-1, 1, -106.0, 0.0, 0.0, 61.0, 0.0, 0.0}, - - /* 191-200 */ - { 0,-2, 2, 2, 2, -129.0, 0.0, 1.0, 55.0, 0.0, 0.0}, - { 2, 0, 0, 2, 1, -114.0, 0.0, 0.0, 57.0, 0.0, 0.0}, - { 4, 0, 2,-2, 2, 113.0, 0.0, -1.0, -49.0, 0.0, 0.0}, - { 2, 0, 0,-2, 2, -102.0, 0.0, 0.0, 44.0, 0.0, 0.0}, - { 0, 2, 0, 0, 1, -94.0, 0.0, 0.0, 51.0, 0.0, 0.0}, - { 1, 0, 0,-4, 1, -100.0, 0.0, -1.0, 56.0, 0.0, 0.0}, - { 0, 2, 2,-2, 1, 87.0, 0.0, 0.0, -47.0, 0.0, 0.0}, - {-3, 0, 0, 4, 0, 161.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-1, 1, 2, 0, 1, 96.0, 0.0, 0.0, -50.0, 0.0, 0.0}, - {-1,-1, 0, 4, 0, 151.0, 0.0, -1.0, -5.0, 0.0, 0.0}, - - /* 201-210 */ - {-1,-2, 2, 2, 2, -104.0, 0.0, 0.0, 44.0, 0.0, 0.0}, - {-2,-1, 2, 4, 2, -110.0, 0.0, 0.0, 48.0, 0.0, 0.0}, - { 1,-1, 2, 2, 1, -100.0, 0.0, 1.0, 50.0, 0.0, 0.0}, - {-2, 1, 0, 2, 0, 92.0, 0.0, -5.0, 12.0, 0.0, -2.0}, - {-2, 1, 2, 0, 1, 82.0, 0.0, 0.0, -45.0, 0.0, 0.0}, - { 2, 1, 0,-2, 1, 82.0, 0.0, 0.0, -45.0, 0.0, 0.0}, - {-3, 0, 2, 0, 1, -78.0, 0.0, 0.0, 41.0, 0.0, 0.0}, - {-2, 0, 2,-2, 1, -77.0, 0.0, 0.0, 43.0, 0.0, 0.0}, - {-1, 1, 0, 2, 2, 2.0, 0.0, 0.0, 54.0, 0.0, 0.0}, - { 0,-1, 2,-1, 2, 94.0, 0.0, 0.0, -40.0, 0.0, 0.0}, - - /* 211-220 */ - {-1, 0, 4,-2, 2, -93.0, 0.0, 0.0, 40.0, 0.0, 0.0}, - { 0,-2, 2, 0, 2, -83.0, 0.0, 10.0, 40.0, 0.0, -2.0}, - {-1, 0, 2, 1, 2, 83.0, 0.0, 0.0, -36.0, 0.0, 0.0}, - { 2, 0, 0, 0, 2, -91.0, 0.0, 0.0, 39.0, 0.0, 0.0}, - { 0, 0, 2, 0, 3, 128.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-2, 0, 4, 0, 2, -79.0, 0.0, 0.0, 34.0, 0.0, 0.0}, - {-1, 0,-2, 0, 1, -83.0, 0.0, 0.0, 47.0, 0.0, 0.0}, - {-1, 1, 2, 2, 1, 84.0, 0.0, 0.0, -44.0, 0.0, 0.0}, - { 3, 0, 0, 0, 1, 83.0, 0.0, 0.0, -43.0, 0.0, 0.0}, - {-1, 0, 2, 3, 2, 91.0, 0.0, 0.0, -39.0, 0.0, 0.0}, - - /* 221-230 */ - { 2,-1, 2, 0, 1, -77.0, 0.0, 0.0, 39.0, 0.0, 0.0}, - { 0, 1, 2, 2, 1, 84.0, 0.0, 0.0, -43.0, 0.0, 0.0}, - { 0,-1, 2, 4, 2, -92.0, 0.0, 1.0, 39.0, 0.0, 0.0}, - { 2,-1, 2, 2, 2, -92.0, 0.0, 1.0, 39.0, 0.0, 0.0}, - { 0, 2,-2, 2, 0, -94.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 2,-1, 1, 68.0, 0.0, 0.0, -36.0, 0.0, 0.0}, - { 0,-2, 0, 0, 1, -61.0, 0.0, 0.0, 32.0, 0.0, 0.0}, - { 1, 0, 2,-4, 2, 71.0, 0.0, 0.0, -31.0, 0.0, 0.0}, - { 1,-1, 0,-2, 1, 62.0, 0.0, 0.0, -34.0, 0.0, 0.0}, - {-1,-1, 2, 0, 1, -63.0, 0.0, 0.0, 33.0, 0.0, 0.0}, - - /* 231-240 */ - { 1,-1, 2,-2, 2, -73.0, 0.0, 0.0, 32.0, 0.0, 0.0}, - {-2,-1, 0, 4, 0, 115.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 0, 0, 3, 0, -103.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2,-1, 2, 2, 2, 63.0, 0.0, 0.0, -28.0, 0.0, 0.0}, - { 0, 2, 2, 0, 2, 74.0, 0.0, 0.0, -32.0, 0.0, 0.0}, - { 1, 1, 0, 2, 0, -103.0, 0.0, -3.0, 3.0, 0.0, -1.0}, - { 2, 0, 2,-1, 2, -69.0, 0.0, 0.0, 30.0, 0.0, 0.0}, - { 1, 0, 2, 1, 1, 57.0, 0.0, 0.0, -29.0, 0.0, 0.0}, - { 4, 0, 0, 0, 0, 94.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 2, 1, 2, 0, 1, 64.0, 0.0, 0.0, -33.0, 0.0, 0.0}, - - /* 241-250 */ - { 3,-1, 2, 0, 2, -63.0, 0.0, 0.0, 26.0, 0.0, 0.0}, - {-2, 2, 0, 2, 1, -38.0, 0.0, 0.0, 20.0, 0.0, 0.0}, - { 1, 0, 2,-3, 1, -43.0, 0.0, 0.0, 24.0, 0.0, 0.0}, - { 1, 1, 2,-4, 1, -45.0, 0.0, 0.0, 23.0, 0.0, 0.0}, - {-1,-1, 2,-2, 1, 47.0, 0.0, 0.0, -24.0, 0.0, 0.0}, - { 0,-1, 0,-1, 1, -48.0, 0.0, 0.0, 25.0, 0.0, 0.0}, - { 0,-1, 0,-2, 1, 45.0, 0.0, 0.0, -26.0, 0.0, 0.0}, - {-2, 0, 0, 0, 2, 56.0, 0.0, 0.0, -25.0, 0.0, 0.0}, - {-2, 0,-2, 2, 0, 88.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1, 0,-2, 4, 0, -75.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 251-260 */ - { 1,-2, 0, 0, 0, 85.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 0, 1, 1, 49.0, 0.0, 0.0, -26.0, 0.0, 0.0}, - {-1, 2, 0, 2, 0, -74.0, 0.0, -3.0, -1.0, 0.0, -1.0}, - { 1,-1, 2,-2, 1, -39.0, 0.0, 0.0, 21.0, 0.0, 0.0}, - { 1, 2, 2,-2, 2, 45.0, 0.0, 0.0, -20.0, 0.0, 0.0}, - { 2,-1, 2,-2, 2, 51.0, 0.0, 0.0, -22.0, 0.0, 0.0}, - { 1, 0, 2,-1, 1, -40.0, 0.0, 0.0, 21.0, 0.0, 0.0}, - { 2, 1, 2,-2, 1, 41.0, 0.0, 0.0, -21.0, 0.0, 0.0}, - {-2, 0, 0,-2, 1, -42.0, 0.0, 0.0, 24.0, 0.0, 0.0}, - { 1,-2, 2, 0, 2, -51.0, 0.0, 0.0, 22.0, 0.0, 0.0}, - - /* 261-270 */ - { 0, 1, 2, 1, 1, -42.0, 0.0, 0.0, 22.0, 0.0, 0.0}, - { 1, 0, 4,-2, 1, 39.0, 0.0, 0.0, -21.0, 0.0, 0.0}, - {-2, 0, 4, 2, 2, 46.0, 0.0, 0.0, -18.0, 0.0, 0.0}, - { 1, 1, 2, 1, 2, -53.0, 0.0, 0.0, 22.0, 0.0, 0.0}, - { 1, 0, 0, 4, 0, 82.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 1, 0, 2, 2, 0, 81.0, 0.0, -1.0, -4.0, 0.0, 0.0}, - { 2, 0, 2, 1, 2, 47.0, 0.0, 0.0, -19.0, 0.0, 0.0}, - { 3, 1, 2, 0, 2, 53.0, 0.0, 0.0, -23.0, 0.0, 0.0}, - { 4, 0, 2, 0, 1, -45.0, 0.0, 0.0, 22.0, 0.0, 0.0}, - {-2,-1, 2, 0, 0, -44.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 271-280 */ - { 0, 1,-2, 2, 1, -33.0, 0.0, 0.0, 16.0, 0.0, 0.0}, - { 1, 0,-2, 1, 0, -61.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 0,-1,-2, 2, 1, 28.0, 0.0, 0.0, -15.0, 0.0, 0.0}, - { 2,-1, 0,-2, 1, -38.0, 0.0, 0.0, 19.0, 0.0, 0.0}, - {-1, 0, 2,-1, 2, -33.0, 0.0, 0.0, 21.0, 0.0, 0.0}, - { 1, 0, 2,-3, 2, -60.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 2,-2, 3, 48.0, 0.0, 0.0, -10.0, 0.0, 0.0}, - { 0, 0, 2,-3, 1, 27.0, 0.0, 0.0, -14.0, 0.0, 0.0}, - {-1, 0,-2, 2, 1, 38.0, 0.0, 0.0, -20.0, 0.0, 0.0}, - { 0, 0, 2,-4, 2, 31.0, 0.0, 0.0, -13.0, 0.0, 0.0}, - - /* 281-290 */ - {-2, 1, 0, 0, 1, -29.0, 0.0, 0.0, 15.0, 0.0, 0.0}, - {-1, 0, 0,-1, 1, 28.0, 0.0, 0.0, -15.0, 0.0, 0.0}, - { 2, 0, 2,-4, 2, -32.0, 0.0, 0.0, 15.0, 0.0, 0.0}, - { 0, 0, 4,-4, 4, 45.0, 0.0, 0.0, -8.0, 0.0, 0.0}, - { 0, 0, 4,-4, 2, -44.0, 0.0, 0.0, 19.0, 0.0, 0.0}, - {-1,-2, 0, 2, 1, 28.0, 0.0, 0.0, -15.0, 0.0, 0.0}, - {-2, 0, 0, 3, 0, -51.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0,-2, 2, 1, -36.0, 0.0, 0.0, 20.0, 0.0, 0.0}, - {-3, 0, 2, 2, 2, 44.0, 0.0, 0.0, -19.0, 0.0, 0.0}, - {-3, 0, 2, 2, 1, 26.0, 0.0, 0.0, -14.0, 0.0, 0.0}, - - /* 291-300 */ - {-2, 0, 2, 2, 0, -60.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2,-1, 0, 0, 1, 35.0, 0.0, 0.0, -18.0, 0.0, 0.0}, - {-2, 1, 2, 2, 2, -27.0, 0.0, 0.0, 11.0, 0.0, 0.0}, - { 1, 1, 0, 1, 0, 47.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 0, 1, 4,-2, 2, 36.0, 0.0, 0.0, -15.0, 0.0, 0.0}, - {-1, 1, 0,-2, 1, -36.0, 0.0, 0.0, 20.0, 0.0, 0.0}, - { 0, 0, 0,-4, 1, -35.0, 0.0, 0.0, 19.0, 0.0, 0.0}, - { 1,-1, 0, 2, 1, -37.0, 0.0, 0.0, 19.0, 0.0, 0.0}, - { 1, 1, 0, 2, 1, 32.0, 0.0, 0.0, -16.0, 0.0, 0.0}, - {-1, 2, 2, 2, 2, 35.0, 0.0, 0.0, -14.0, 0.0, 0.0}, - - /* 301-310 */ - { 3, 1, 2,-2, 2, 32.0, 0.0, 0.0, -13.0, 0.0, 0.0}, - { 0,-1, 0, 4, 0, 65.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2,-1, 0, 2, 0, 47.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 0, 0, 4, 0, 1, 32.0, 0.0, 0.0, -16.0, 0.0, 0.0}, - { 2, 0, 4,-2, 2, 37.0, 0.0, 0.0, -16.0, 0.0, 0.0}, - {-1,-1, 2, 4, 1, -30.0, 0.0, 0.0, 15.0, 0.0, 0.0}, - { 1, 0, 0, 4, 1, -32.0, 0.0, 0.0, 16.0, 0.0, 0.0}, - { 1,-2, 2, 2, 2, -31.0, 0.0, 0.0, 13.0, 0.0, 0.0}, - { 0, 0, 2, 3, 2, 37.0, 0.0, 0.0, -16.0, 0.0, 0.0}, - {-1, 1, 2, 4, 2, 31.0, 0.0, 0.0, -13.0, 0.0, 0.0}, - - /* 311-320 */ - { 3, 0, 0, 2, 0, 49.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 0, 4, 2, 2, 32.0, 0.0, 0.0, -13.0, 0.0, 0.0}, - { 1, 1, 2, 2, 1, 23.0, 0.0, 0.0, -12.0, 0.0, 0.0}, - {-2, 0, 2, 6, 2, -43.0, 0.0, 0.0, 18.0, 0.0, 0.0}, - { 2, 1, 2, 2, 2, 26.0, 0.0, 0.0, -11.0, 0.0, 0.0}, - {-1, 0, 2, 6, 2, -32.0, 0.0, 0.0, 14.0, 0.0, 0.0}, - { 1, 0, 2, 4, 1, -29.0, 0.0, 0.0, 14.0, 0.0, 0.0}, - { 2, 0, 2, 4, 2, -27.0, 0.0, 0.0, 12.0, 0.0, 0.0}, - { 1, 1,-2, 1, 0, 30.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3, 1, 2, 1, 2, -11.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - - /* 321-330 */ - { 2, 0,-2, 0, 2, -21.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - {-1, 0, 0, 1, 2, -34.0, 0.0, 0.0, 15.0, 0.0, 0.0}, - {-4, 0, 2, 2, 1, -10.0, 0.0, 0.0, 6.0, 0.0, 0.0}, - {-1,-1, 0, 1, 0, -36.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0,-2, 2, 2, -9.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 1, 0, 0,-1, 2, -12.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - { 0,-1, 2,-2, 3, -21.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - {-2, 1, 2, 0, 0, -29.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 0, 0, 2,-2, 4, -15.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-2,-2, 0, 2, 0, -20.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 331-340 */ - {-2, 0,-2, 4, 0, 28.0, 0.0, 0.0, 0.0, 0.0, -2.0}, - { 0,-2,-2, 2, 0, 17.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 2, 0,-2, 1, -22.0, 0.0, 0.0, 12.0, 0.0, 0.0}, - { 3, 0, 0,-4, 1, -14.0, 0.0, 0.0, 7.0, 0.0, 0.0}, - {-1, 1, 2,-2, 2, 24.0, 0.0, 0.0, -11.0, 0.0, 0.0}, - { 1,-1, 2,-4, 1, 11.0, 0.0, 0.0, -6.0, 0.0, 0.0}, - { 1, 1, 0,-2, 2, 14.0, 0.0, 0.0, -6.0, 0.0, 0.0}, - {-3, 0, 2, 0, 0, 24.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3, 0, 2, 0, 2, 18.0, 0.0, 0.0, -8.0, 0.0, 0.0}, - {-2, 0, 0, 1, 0, -38.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 341-350 */ - { 0, 0,-2, 1, 0, -31.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3, 0, 0, 2, 1, -16.0, 0.0, 0.0, 8.0, 0.0, 0.0}, - {-1,-1,-2, 2, 0, 29.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 2,-4, 1, -18.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - { 2, 1, 0,-4, 1, -10.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - { 0, 2, 0,-2, 1, -17.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - { 1, 0, 0,-3, 1, 9.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - {-2, 0, 2,-2, 2, 16.0, 0.0, 0.0, -6.0, 0.0, 0.0}, - {-2,-1, 0, 0, 1, 22.0, 0.0, 0.0, -12.0, 0.0, 0.0}, - {-4, 0, 0, 2, 0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 351-360 */ - { 1, 1, 0,-4, 1, -13.0, 0.0, 0.0, 6.0, 0.0, 0.0}, - {-1, 0, 2,-4, 1, -17.0, 0.0, 0.0, 9.0, 0.0, 0.0}, - { 0, 0, 4,-4, 1, -14.0, 0.0, 0.0, 8.0, 0.0, 0.0}, - { 0, 3, 2,-2, 2, 0.0, 0.0, 0.0, -7.0, 0.0, 0.0}, - {-3,-1, 0, 4, 0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3, 0, 0, 4, 1, 19.0, 0.0, 0.0, -10.0, 0.0, 0.0}, - { 1,-1,-2, 2, 0, -34.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 0, 2, 2, -20.0, 0.0, 0.0, 8.0, 0.0, 0.0}, - { 1,-2, 0, 0, 1, 9.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - { 1,-1, 0, 0, 2, -18.0, 0.0, 0.0, 7.0, 0.0, 0.0}, - - /* 361-370 */ - { 0, 0, 0, 1, 2, 13.0, 0.0, 0.0, -6.0, 0.0, 0.0}, - {-1,-1, 2, 0, 0, 17.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1,-2, 2,-2, 2, -12.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - { 0,-1, 2,-1, 1, 15.0, 0.0, 0.0, -8.0, 0.0, 0.0}, - {-1, 0, 2, 0, 3, -11.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 1, 1, 0, 0, 2, 13.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - {-1, 1, 2, 0, 0, -18.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 2, 0, 0, 0, -35.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 2, 2, 0, 2, 9.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - {-1, 0, 4,-2, 1, -19.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - - /* 371-380 */ - { 3, 0, 2,-4, 2, -26.0, 0.0, 0.0, 11.0, 0.0, 0.0}, - { 1, 2, 2,-2, 1, 8.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 1, 0, 4,-4, 2, -10.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - {-2,-1, 0, 4, 1, 10.0, 0.0, 0.0, -6.0, 0.0, 0.0}, - { 0,-1, 0, 2, 2, -21.0, 0.0, 0.0, 9.0, 0.0, 0.0}, - {-2, 1, 0, 4, 0, -15.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2,-1, 2, 2, 1, 9.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - { 2, 0,-2, 2, 0, -29.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0, 0, 1, 1, -19.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - { 0, 1, 0, 2, 2, 12.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - - /* 381-390 */ - { 1,-1, 2,-1, 2, 22.0, 0.0, 0.0, -9.0, 0.0, 0.0}, - {-2, 0, 4, 0, 1, -10.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - { 2, 1, 0, 0, 1, -20.0, 0.0, 0.0, 11.0, 0.0, 0.0}, - { 0, 1, 2, 0, 0, -20.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0,-1, 4,-2, 2, -17.0, 0.0, 0.0, 7.0, 0.0, 0.0}, - { 0, 0, 4,-2, 4, 15.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 0, 2, 2, 0, 1, 8.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - {-3, 0, 0, 6, 0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 0, 4, 1, -12.0, 0.0, 0.0, 6.0, 0.0, 0.0}, - { 1,-2, 0, 2, 0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 391-400 */ - {-1, 0, 0, 4, 2, -13.0, 0.0, 0.0, 6.0, 0.0, 0.0}, - {-1,-2, 2, 2, 1, -14.0, 0.0, 0.0, 8.0, 0.0, 0.0}, - {-1, 0, 0,-2, 2, 13.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - { 1, 0,-2,-2, 1, -17.0, 0.0, 0.0, 9.0, 0.0, 0.0}, - { 0, 0,-2,-2, 1, -12.0, 0.0, 0.0, 6.0, 0.0, 0.0}, - {-2, 0,-2, 0, 1, -10.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - { 0, 0, 0, 3, 1, 10.0, 0.0, 0.0, -6.0, 0.0, 0.0}, - { 0, 0, 0, 3, 0, -15.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 1, 0, 4, 0, -22.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 2, 2, 0, 28.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - - /* 401-410 */ - {-2, 0, 2, 3, 2, 15.0, 0.0, 0.0, -7.0, 0.0, 0.0}, - { 1, 0, 0, 2, 2, 23.0, 0.0, 0.0, -10.0, 0.0, 0.0}, - { 0,-1, 2, 1, 2, 12.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - { 3,-1, 0, 0, 0, 29.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 2, 0, 0, 1, 0, -25.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 1,-1, 2, 0, 0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0, 2, 1, 0, -18.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0, 2, 0, 3, 15.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 3, 1, 0, 0, 0, -23.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 3,-1, 2,-2, 2, 12.0, 0.0, 0.0, -5.0, 0.0, 0.0}, - - /* 411-420 */ - { 2, 0, 2,-1, 1, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 1, 1, 2, 0, 0, -19.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0, 4,-1, 2, -10.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 1, 2, 2, 0, 2, 21.0, 0.0, 0.0, -9.0, 0.0, 0.0}, - {-2, 0, 0, 6, 0, 23.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 0,-1, 0, 4, 1, -16.0, 0.0, 0.0, 8.0, 0.0, 0.0}, - {-2,-1, 2, 4, 1, -19.0, 0.0, 0.0, 9.0, 0.0, 0.0}, - { 0,-2, 2, 2, 1, -22.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - { 0,-1, 2, 2, 0, 27.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-1, 0, 2, 3, 1, 16.0, 0.0, 0.0, -8.0, 0.0, 0.0}, - - /* 421-430 */ - {-2, 1, 2, 4, 2, 19.0, 0.0, 0.0, -8.0, 0.0, 0.0}, - { 2, 0, 0, 2, 2, 9.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 2,-2, 2, 0, 2, -9.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - {-1, 1, 2, 3, 2, -9.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 3, 0, 2,-1, 2, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 4, 0, 2,-2, 1, 18.0, 0.0, 0.0, -9.0, 0.0, 0.0}, - {-1, 0, 0, 6, 0, 16.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-1,-2, 2, 4, 2, -10.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - {-3, 0, 2, 6, 2, -23.0, 0.0, 0.0, 9.0, 0.0, 0.0}, - {-1, 0, 2, 4, 0, 16.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - - /* 431-440 */ - { 3, 0, 0, 2, 1, -12.0, 0.0, 0.0, 6.0, 0.0, 0.0}, - { 3,-1, 2, 0, 1, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 3, 0, 2, 0, 0, 30.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 1, 0, 4, 0, 2, 24.0, 0.0, 0.0, -10.0, 0.0, 0.0}, - { 5, 0, 2,-2, 2, 10.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 0,-1, 2, 4, 1, -16.0, 0.0, 0.0, 7.0, 0.0, 0.0}, - { 2,-1, 2, 2, 1, -16.0, 0.0, 0.0, 7.0, 0.0, 0.0}, - { 0, 1, 2, 4, 2, 17.0, 0.0, 0.0, -7.0, 0.0, 0.0}, - { 1,-1, 2, 4, 2, -24.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - { 3,-1, 2, 2, 2, -12.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - - /* 441-450 */ - { 3, 0, 2, 2, 1, -24.0, 0.0, 0.0, 11.0, 0.0, 0.0}, - { 5, 0, 2, 0, 2, -23.0, 0.0, 0.0, 9.0, 0.0, 0.0}, - { 0, 0, 2, 6, 2, -13.0, 0.0, 0.0, 5.0, 0.0, 0.0}, - { 4, 0, 2, 2, 2, -15.0, 0.0, 0.0, 7.0, 0.0, 0.0}, - { 0,-1, 1,-1, 1, 0.0, 0.0,-1988.0, 0.0, 0.0,-1679.0}, - {-1, 0, 1, 0, 3, 0.0, 0.0, -63.0, 0.0, 0.0, -27.0}, - { 0,-2, 2,-2, 3, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0,-1, 0, 1, 0.0, 0.0, 5.0, 0.0, 0.0, 4.0}, - { 2,-2, 0,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - {-1, 0, 1, 0, 2, 0.0, 0.0, 364.0, 0.0, 0.0, 176.0}, - - /* 451-460 */ - {-1, 0, 1, 0, 1, 0.0, 0.0,-1044.0, 0.0, 0.0, -891.0}, - {-1,-1, 2,-1, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-2, 2, 0, 2, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 0, 1, 0, 0, 0.0, 0.0, 330.0, 0.0, 0.0, 0.0}, - {-4, 1, 2, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-3, 0, 2, 1, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-2,-1, 2, 0, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 1, 0,-2, 1, 1, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2,-1,-2, 0, 1, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-4, 0, 2, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 461-470 */ - {-3, 1, 0, 3, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 0,-1, 2, 0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0}, - { 0,-2, 0, 0, 2, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 0,-2, 0, 0, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-3, 0, 0, 3, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2,-1, 0, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 0,-2, 3, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-4, 0, 0, 4, 0, -12.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2, 1,-2, 0, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 2,-1, 0,-2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - - /* 471-480 */ - { 0, 0, 1,-1, 0, -5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 2, 0, 1, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2, 1, 2, 0, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 1, 1, 0,-1, 1, 7.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 1, 0, 1,-2, 1, 0.0, 0.0, -12.0, 0.0, 0.0, -10.0}, - { 0, 2, 0, 0, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 1,-1, 2,-3, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 1, 2,-1, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2, 0, 4,-2, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-2, 0, 4,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - - /* 481-490 */ - {-2,-2, 0, 2, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-2, 0,-2, 4, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 2, 2,-4, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 1, 1, 2,-4, 2, 7.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - {-1, 2, 2,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2, 0, 0,-3, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 2, 0, 0, 1, -5.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 0, 0, 0,-2, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 2,-2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1, 1, 0, 0, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 491-500 */ - { 0, 0, 0,-1, 2, -8.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-2, 1, 0, 1, 0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1,-2, 0,-2, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 1, 0,-2, 0, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-3, 1, 0, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 1,-2, 2, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 0, 0, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-3, 0, 0, 2, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3,-1, 0, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2, 0, 2,-6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - - /* 501-510 */ - { 0, 1, 2,-4, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2, 0, 0,-4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-2, 1, 2,-2, 1, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0,-1, 2,-4, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 0, 1, 0,-2, 2, 9.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - {-1, 0, 0,-2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2, 0,-2,-2, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-4, 0, 2, 0, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1,-1, 0,-1, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0,-2, 0, 2, 9.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - - /* 511-520 */ - {-3, 0, 0, 1, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 0,-2, 1, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2, 0,-2, 2, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 0, 0,-4, 2, 0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2,-1,-2, 2, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0, 2,-6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1, 0, 2,-4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 1, 0, 0,-4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 2, 1, 2,-4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 2, 1, 2,-4, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - - /* 521-530 */ - { 0, 1, 4,-4, 4, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 4,-4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-1,-1,-2, 4, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-3, 0, 2, 0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 0,-2, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2,-1, 0, 3, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0,-2, 3, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2, 0, 0, 3, 1, -5.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 0,-1, 0, 1, 0, -13.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3, 0, 2, 2, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 531-540 */ - { 1, 1,-2, 2, 0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 1, 0, 2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 1,-2, 2,-2, 1, 10.0, 0.0, 13.0, 6.0, 0.0, -5.0}, - { 0, 0, 1, 0, 2, 0.0, 0.0, 30.0, 0.0, 0.0, 14.0}, - { 0, 0, 1, 0, 1, 0.0, 0.0, -162.0, 0.0, 0.0, -138.0}, - { 0, 0, 1, 0, 0, 0.0, 0.0, 75.0, 0.0, 0.0, 0.0}, - {-1, 2, 0, 2, 1, -7.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - { 0, 0, 2, 0, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2, 0, 2, 0, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2, 0, 0,-1, 1, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 541-550 */ - { 3, 0, 0,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 1, 0, 2,-2, 3, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 2, 0, 0, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2, 0, 2,-3, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1, 1, 4,-2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2,-2, 0, 4, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0,-3, 0, 2, 0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0,-2, 4, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 0, 3, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2, 0, 0, 4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - - /* 551-560 */ - {-1, 0, 0, 3, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2,-2, 0, 0, 0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1,-1, 0, 1, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 0, 0, 2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0,-2, 2, 0, 1, -6.0, 0.0, -3.0, 3.0, 0.0, 1.0}, - {-1, 0, 1, 2, 1, 0.0, 0.0, -3.0, 0.0, 0.0, -2.0}, - {-1, 1, 0, 3, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-1, 2, 1, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 0,-1, 2, 0, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2, 1, 2, 2, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - - /* 561-570 */ - { 2,-2, 2,-2, 2, -1.0, 0.0, 3.0, 3.0, 0.0, -1.0}, - { 1, 1, 0, 1, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 1, 0, 1, 0, 1, 0.0, 0.0, -13.0, 0.0, 0.0, -11.0}, - { 1, 0, 1, 0, 0, 3.0, 0.0, 6.0, 0.0, 0.0, 0.0}, - { 0, 2, 0, 2, 0, -7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2,-1, 2,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 0,-1, 4,-2, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 0, 0, 4,-2, 3, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 4,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 4, 0, 2,-4, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - - /* 571-580 */ - { 2, 2, 2,-2, 2, 8.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 2, 0, 4,-4, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1,-2, 0, 4, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1,-3, 2, 2, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-3, 0, 2, 4, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-3, 0, 2,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1,-1, 0,-2, 1, 8.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - {-3, 0, 0, 0, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-3, 0,-2, 2, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 0,-4, 1, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - - /* 581-590 */ - {-2, 1, 0,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-4, 0, 0, 0, 1, -8.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - {-1, 0, 0,-4, 1, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-3, 0, 0,-2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0, 0, 3, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-1, 1, 0, 4, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 1,-2, 2, 0, 1, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 0, 1, 0, 3, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-1, 0, 2, 2, 3, 6.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 0, 0, 2, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 591-600 */ - {-2, 0, 2, 2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1, 1, 2, 2, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 3, 0, 0, 0, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2, 1, 0, 1, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2,-1, 2,-1, 2, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 0, 0, 2, 0, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0, 3, 0, 3, 0.0, 0.0, -26.0, 0.0, 0.0, -11.0}, - { 0, 0, 3, 0, 2, 0.0, 0.0, -10.0, 0.0, 0.0, -5.0}, - {-1, 2, 2, 2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - {-1, 0, 4, 0, 0, -13.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 601-610 */ - { 1, 2, 2, 0, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 3, 1, 2,-2, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 1, 1, 4,-2, 2, 7.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - {-2,-1, 0, 6, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0,-2, 0, 4, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-2, 0, 0, 6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2,-2, 2, 4, 2, -6.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0,-3, 2, 2, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0, 0, 4, 2, -7.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-1,-1, 2, 3, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 611-620 */ - {-2, 0, 2, 4, 0, 13.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2,-1, 0, 2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 1, 0, 0, 3, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 0, 4, 1, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 0, 1, 0, 4, 0, -11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1,-1, 2, 1, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 0, 0, 2, 2, 3, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0, 2, 2, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-1, 0, 2, 2, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-2, 0, 4, 2, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - - /* 621-630 */ - { 2, 1, 0, 2, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2, 1, 0, 2, 0, -12.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2,-1, 2, 0, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0, 2, 1, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 1, 2, 2, 0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2, 0, 2, 0, 3, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 3, 0, 2, 0, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 1, 0, 2, 0, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 1, 0, 3, 0, 3, 0.0, 0.0, -5.0, 0.0, 0.0, -2.0}, - { 1, 1, 2, 1, 1, -7.0, 0.0, 0.0, 4.0, 0.0, 0.0}, - - /* 631-640 */ - { 0, 2, 2, 2, 2, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 2, 1, 2, 0, 0, -3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2, 0, 4,-2, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 4, 1, 2,-2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - {-1,-1, 0, 6, 0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - {-3,-1, 2, 6, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - {-1, 0, 0, 6, 1, -5.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-3, 0, 2, 6, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 1,-1, 0, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 1,-1, 0, 4, 0, 12.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 641-650 */ - {-2, 0, 2, 5, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 1,-2, 2, 2, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 3,-1, 0, 2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1,-1, 2, 2, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0, 2, 3, 1, 5.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - {-1, 1, 2, 4, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 0, 1, 2, 3, 2, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-1, 0, 4, 2, 1, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2, 0, 2, 1, 1, 6.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 5, 0, 0, 0, 0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 651-660 */ - { 2, 1, 2, 1, 2, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 1, 0, 4, 0, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 3, 1, 2, 0, 1, 7.0, 0.0, 0.0, -4.0, 0.0, 0.0}, - { 3, 0, 4,-2, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - {-2,-1, 2, 6, 2, -5.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0, 0, 6, 0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0,-2, 2, 4, 2, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - {-2, 0, 2, 6, 1, -6.0, 0.0, 0.0, 3.0, 0.0, 0.0}, - { 2, 0, 0, 4, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 2, 0, 0, 4, 0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - - /* 661-670 */ - { 2,-2, 2, 2, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 0, 0, 2, 4, 0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 1, 0, 2, 3, 2, 7.0, 0.0, 0.0, -3.0, 0.0, 0.0}, - { 4, 0, 0, 2, 0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 2, 0, 2, 2, 0, 11.0, 0.0, 0.0, 0.0, 0.0, 0.0}, - { 0, 0, 4, 2, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 4,-1, 2, 0, 2, -6.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 3, 0, 2, 1, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 2, 1, 2, 2, 1, 3.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 4, 1, 2, 0, 2, 5.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - - /* 671-678 */ - {-1,-1, 2, 6, 2, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - {-1, 0, 2, 6, 1, -4.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 1,-1, 2, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0}, - { 1, 1, 2, 4, 2, 4.0, 0.0, 0.0, -2.0, 0.0, 0.0}, - { 3, 1, 2, 2, 2, 3.0, 0.0, 0.0, -1.0, 0.0, 0.0}, - { 5, 0, 2, 0, 1, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 2,-1, 2, 4, 2, -3.0, 0.0, 0.0, 1.0, 0.0, 0.0}, - { 2, 0, 2, 4, 1, -3.0, 0.0, 0.0, 2.0, 0.0, 0.0} - }; - -/* Number of terms in the luni-solar nutation model */ - const int NLS = (int) (sizeof xls / sizeof xls[0]); - -/* ------------------------ */ -/* Planetary nutation model */ -/* ------------------------ */ - -/* The units for the sine and cosine coefficients are */ -/* 0.1 microarcsecond */ - - static const struct { - int nl, /* coefficients of l, F, D and Omega */ - nf, - nd, - nom, - nme, /* coefficients of planetary longitudes */ - nve, - nea, - nma, - nju, - nsa, - nur, - nne, - npa; /* coefficient of general precession */ - int sp,cp; /* longitude sin, cos coefficients */ - int se,ce; /* obliquity sin, cos coefficients */ - } xpl[] = { - - /* 1-10 */ - { 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 0, 1440, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, -8, 16,-4,-5, 0, 0, 2, 56,-117, -42, -40}, - { 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 2, 125, -43, 0, -54}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 2, 2, 0, 5, 0, 0}, - { 0, 0, 0, 0, 0, 0, -4, 8,-1,-5, 0, 0, 2, 3, -7, -3, 0}, - { 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 1, 3, 0, 0, -2}, - { 0, 1,-1, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0, -114, 0, 0, 61}, - {-1, 0, 0, 0, 0, 10, -3, 0, 0, 0, 0, 0, 0, -219, 89, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0,-2, 6,-3, 0, 2, -3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, -462,1604, 0, 0}, - - /* 11-20 */ - { 0, 1,-1, 1, 0, 0, -5, 8,-3, 0, 0, 0, 0, 99, 0, 0, -53}, - { 0, 0, 0, 0, 0, 0, -4, 8,-3, 0, 0, 0, 1, -3, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, 2, 0, 6, 2, 0}, - { 0, 0, 0, 0, 0, -5, 6, 4, 0, 0, 0, 0, 2, 3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2,-5, 0, 0, 2, -12, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2,-5, 0, 0, 1, 14,-218, 117, 8}, - { 0, 1,-1, 1, 0, 0, -1, 0, 2,-5, 0, 0, 0, 31,-481, -257, -17}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2,-5, 0, 0, 0, -491, 128, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0,-2, 5, 0, 0, 0,-3084,5123, 2735,1647}, - { 0, 0, 0, 0, 0, 0, 0, 0,-2, 5, 0, 0, 1,-1444,2409,-1286,-771}, - - /* 21-30 */ - { 0, 0, 0, 0, 0, 0, 0, 0,-2, 5, 0, 0, 2, 11, -24, -11, -9}, - { 2,-1,-1, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0, 26, -9, 0, 0}, - { 1, 0,-2, 0, 0, 19,-21, 3, 0, 0, 0, 0, 0, 103, -60, 0, 0}, - { 0, 1,-1, 1, 0, 2, -4, 0,-3, 0, 0, 0, 0, 0, -13, -7, 0}, - { 1, 0,-1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0, -26, -29, -16, 14}, - { 0, 1,-1, 1, 0, 0, -1, 0,-4,10, 0, 0, 0, 9, -27, -14, -5}, - {-2, 0, 2, 1, 0, 0, 2, 0, 0,-5, 0, 0, 0, 12, 0, 0, -6}, - { 0, 0, 0, 0, 0, 3, -7, 4, 0, 0, 0, 0, 0, -7, 0, 0, 0}, - { 0,-1, 1, 0, 0, 0, 1, 0, 1,-1, 0, 0, 0, 0, 24, 0, 0}, - {-2, 0, 2, 1, 0, 0, 2, 0,-2, 0, 0, 0, 0, 284, 0, 0,-151}, - - /* 31-40 */ - {-1, 0, 0, 0, 0, 18,-16, 0, 0, 0, 0, 0, 0, 226, 101, 0, 0}, - {-2, 1, 1, 2, 0, 0, 1, 0,-2, 0, 0, 0, 0, 0, -8, -2, 0}, - {-1, 1,-1, 1, 0, 18,-17, 0, 0, 0, 0, 0, 0, 0, -6, -3, 0}, - {-1, 0, 1, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0, 5, 0, 0, -3}, - { 0, 0, 0, 0, 0, -8, 13, 0, 0, 0, 0, 0, 2, -41, 175, 76, 17}, - { 0, 2,-2, 2, 0, -8, 11, 0, 0, 0, 0, 0, 0, 0, 15, 6, 0}, - { 0, 0, 0, 0, 0, -8, 13, 0, 0, 0, 0, 0, 1, 425, 212, -133, 269}, - { 0, 1,-1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0, 1200, 598, 319,-641}, - { 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 0, 235, 334, 0, 0}, - { 0, 1,-1, 1, 0, 8,-14, 0, 0, 0, 0, 0, 0, 11, -12, -7, -6}, - - /* 41-50 */ - { 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 1, 5, -6, 3, 3}, - {-2, 0, 2, 1, 0, 0, 2, 0,-4, 5, 0, 0, 0, -5, 0, 0, 3}, - {-2, 0, 2, 2, 0, 3, -3, 0, 0, 0, 0, 0, 0, 6, 0, 0, -3}, - {-2, 0, 2, 0, 0, 0, 2, 0,-3, 1, 0, 0, 0, 15, 0, 0, 0}, - { 0, 0, 0, 1, 0, 3, -5, 0, 2, 0, 0, 0, 0, 13, 0, 0, -7}, - {-2, 0, 2, 0, 0, 0, 2, 0,-4, 3, 0, 0, 0, -6, -9, 0, 0}, - { 0,-1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 266, -78, 0, 0}, - { 0, 0, 0, 1, 0, 0, -1, 2, 0, 0, 0, 0, 0, -460,-435, -232, 246}, - { 0, 1,-1, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0, 15, 7, 0}, - {-1, 1, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0, -3, 0, 0, 2}, - - /* 51-60 */ - {-1, 0, 1, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0}, - {-2, 0, 2, 0, 0, 0, 2, 0,-2,-2, 0, 0, 0, 4, 0, 0, 0}, - {-2, 2, 0, 2, 0, 0, -5, 9, 0, 0, 0, 0, 0, 0, 3, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0, 0,-1, 0, 0, 0, 4, 2, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0, 0, 0, 2, 0, -17, -19, -10, 9}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, -9, -11, 6, -5}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, -6, 0, 0, 3}, - {-1, 0, 1, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -16, 8, 0, 0}, - { 0,-1, 1, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0}, - - /* 61-70 */ - { 0, 1,-1, 2, 0, 0, -1, 0, 0, 2, 0, 0, 0, 11, 24, 11, -5}, - { 0, 0, 0, 1, 0, 0, -9, 17, 0, 0, 0, 0, 0, -3, -4, -2, 1}, - { 0, 0, 0, 2, 0, -3, 5, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, - { 0, 1,-1, 1, 0, 0, -1, 0,-1, 2, 0, 0, 0, 0, -8, -4, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 1,-2, 0, 0, 0, 0, 3, 0, 0}, - { 1, 0,-2, 0, 0, 17,-16, 0,-2, 0, 0, 0, 0, 0, 5, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0, 1,-3, 0, 0, 0, 0, 3, 2, 0}, - {-2, 0, 2, 1, 0, 0, 5, -6, 0, 0, 0, 0, 0, -6, 4, 2, 3}, - { 0,-2, 2, 0, 0, 0, 9,-13, 0, 0, 0, 0, 0, -3, -5, 0, 0}, - { 0, 1,-1, 2, 0, 0, -1, 0, 0, 1, 0, 0, 0, -5, 0, 0, 2}, - - /* 71-80 */ - { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 24, 13, -2}, - { 0,-1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -42, 20, 0, 0}, - { 0,-2, 2, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0, -10, 233, 0, 0}, - { 0,-1, 1, 1, 0, 5, -7, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, - {-2, 0, 2, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0, 78, -18, 0, 0}, - { 2, 1,-3, 1, 0, -6, 7, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, - { 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -3, -1, 0}, - { 0,-1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -4, -2, 1}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0, 0, 2, 0, 0, 0, -8, -4, -1}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, -5, 3, 0}, - - /* 81-90 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, -7, 0, 0, 3}, - { 0, 0, 0, 0, 0, 0, -8, 15, 0, 0, 0, 0, 2, -14, 8, 3, 6}, - { 0, 0, 0, 0, 0, 0, -8, 15, 0, 0, 0, 0, 1, 0, 8, -4, 0}, - { 0, 1,-1, 1, 0, 0, -9, 15, 0, 0, 0, 0, 0, 0, 19, 10, 0}, - { 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, 45, -22, 0, 0}, - { 1,-1,-1, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, -3, 0, 0, 0}, - { 2, 0,-2, 0, 0, 2, -5, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, - {-2, 0, 2, 0, 0, 0, 2, 0,-5, 5, 0, 0, 0, 0, 3, 0, 0}, - { 2, 0,-2, 1, 0, 0, -6, 8, 0, 0, 0, 0, 0, 3, 5, 3, -2}, - { 2, 0,-2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0, 89, -16, -9, -48}, - - /* 91-100 */ - {-2, 1, 1, 0, 0, 0, 1, 0,-3, 0, 0, 0, 0, 0, 3, 0, 0}, - {-2, 1, 1, 1, 0, 0, 1, 0,-3, 0, 0, 0, 0, -3, 7, 4, 2}, - {-2, 0, 2, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, -349, -62, 0, 0}, - {-2, 0, 2, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -15, 22, 0, 0}, - {-2, 0, 2, 0, 0, 0, 2, 0,-1,-5, 0, 0, 0, -3, 0, 0, 0}, - {-1, 0, 1, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, -53, 0, 0, 0}, - {-1, 1, 1, 1, 0,-20, 20, 0, 0, 0, 0, 0, 0, 5, 0, 0, -3}, - { 1, 0,-2, 0, 0, 20,-21, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0}, - { 0, 0, 0, 1, 0, 0, 8,-15, 0, 0, 0, 0, 0, 15, -7, -4, -8}, - { 0, 2,-2, 1, 0, 0,-10, 15, 0, 0, 0, 0, 0, -3, 0, 0, 1}, - - /* 101-110 */ - { 0,-1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, -21, -78, 0, 0}, - { 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 20, -70, -37, -11}, - { 0, 1,-1, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 6, 3, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0,-2, 4, 0, 0, 0, 5, 3, 2, -2}, - { 2, 0,-2, 1, 0, -6, 8, 0, 0, 0, 0, 0, 0, -17, -4, -2, 9}, - { 0,-2, 2, 1, 0, 5, -6, 0, 0, 0, 0, 0, 0, 0, 6, 3, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 1, 32, 15, -8, 17}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0,-1, 0, 0, 0, 174, 84, 45, -93}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 56, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -66, -12, -6, 35}, - - /* 111-120 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 47, 8, 4, -25}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 8, 4, 0}, - { 0, 2,-2, 1, 0, 0, -9, 13, 0, 0, 0, 0, 0, 10, -22, -12, -5}, - { 0, 0, 0, 1, 0, 0, 7,-13, 0, 0, 0, 0, 0, -3, 0, 0, 2}, - {-2, 0, 2, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -24, 12, 0, 0}, - { 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, 0, 5, -6, 0, 0}, - { 0, 0, 0, 0, 0, 0, -9, 17, 0, 0, 0, 0, 2, 3, 0, 0, -2}, - { 1, 0,-1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 4, 3, 1, -2}, - { 1, 0,-1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0, 0, 29, 15, 0}, - { 0, 0, 0, 2, 0, 0, -1, 2, 0, 0, 0, 0, 0, -5, -4, -2, 2}, - - /* 121-130 */ - { 0,-1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, -3, -1, -5}, - { 0,-2, 2, 0, 1, 0, -2, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, - { 0, 0, 0, 0, 0, 3, -5, 0, 2, 0, 0, 0, 0, 10, 0, 0, 0}, - {-2, 0, 2, 1, 0, 0, 2, 0,-3, 1, 0, 0, 0, 3, 0, 0, -2}, - {-2, 0, 2, 1, 0, 3, -3, 0, 0, 0, 0, 0, 0, -5, 0, 0, 3}, - { 0, 0, 0, 1, 0, 8,-13, 0, 0, 0, 0, 0, 0, 46, 66, 35, -25}, - { 0,-1, 1, 0, 0, 8,-12, 0, 0, 0, 0, 0, 0, -14, 7, 0, 0}, - { 0, 2,-2, 1, 0, -8, 11, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0}, - {-1, 0, 1, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -5, 0, 0, 0}, - {-1, 0, 0, 1, 0, 18,-16, 0, 0, 0, 0, 0, 0, -68, -34, -18, 36}, - - /* 131-140 */ - { 0, 1,-1, 1, 0, 0, -1, 0,-1, 1, 0, 0, 0, 0, 14, 7, 0}, - { 0, 0, 0, 1, 0, 3, -7, 4, 0, 0, 0, 0, 0, 10, -6, -3, -5}, - {-2, 1, 1, 1, 0, 0, -3, 7, 0, 0, 0, 0, 0, -5, -4, -2, 3}, - { 0, 1,-1, 2, 0, 0, -1, 0,-2, 5, 0, 0, 0, -3, 5, 2, 1}, - { 0, 0, 0, 1, 0, 0, 0, 0,-2, 5, 0, 0, 0, 76, 17, 9, -41}, - { 0, 0, 0, 1, 0, 0, -4, 8,-3, 0, 0, 0, 0, 84, 298, 159, -45}, - { 1, 0, 0, 1, 0,-10, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, - { 0, 2,-2, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0, -3, 0, 0, 2}, - {-1, 0, 0, 1, 0, 10, -3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, - { 0, 0, 0, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0, -82, 292, 156, 44}, - - /* 141-150 */ - { 0, 0, 0, 1, 0, 0, 0, 0, 2,-5, 0, 0, 0, -73, 17, 9, 39}, - { 0,-1, 1, 0, 0, 0, 1, 0, 2,-5, 0, 0, 0, -9, -16, 0, 0}, - { 2,-1,-1, 1, 0, 0, 3, -7, 0, 0, 0, 0, 0, 3, 0, -1, -2}, - {-2, 0, 2, 0, 0, 0, 2, 0, 0,-5, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 1, 0, -3, 7, -4, 0, 0, 0, 0, 0, -9, -5, -3, 5}, - {-2, 0, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -439, 0, 0, 0}, - { 1, 0, 0, 1, 0,-18, 16, 0, 0, 0, 0, 0, 0, 57, -28, -15, -30}, - {-2, 1, 1, 1, 0, 0, 1, 0,-2, 0, 0, 0, 0, 0, -6, -3, 0}, - { 0, 1,-1, 2, 0, -8, 12, 0, 0, 0, 0, 0, 0, -4, 0, 0, 2}, - { 0, 0, 0, 1, 0, -8, 13, 0, 0, 0, 0, 0, 0, -40, 57, 30, 21}, - - /* 151-160 */ - { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 1, 23, 7, 3, -13}, - { 0, 1,-1, 1, 0, 0, 0, -2, 0, 0, 0, 0, 0, 273, 80, 43,-146}, - { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -449, 430, 0, 0}, - { 0, 1,-1, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0, -8, -47, -25, 4}, - { 0, 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 1, 6, 47, 25, -3}, - {-1, 0, 1, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, 23, 13, 0}, - {-1, 0, 1, 1, 0, 0, 3, -4, 0, 0, 0, 0, 0, -3, 0, 0, 2}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0,-2, 0, 0, 0, 3, -4, -2, -2}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0, 2, 0, 0, 0, -48,-110, -59, 26}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 51, 114, 61, -27}, - - /* 161-170 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, -133, 0, 0, 57}, - { 0, 1,-1, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0}, - { 0, 0, 0, 1, 0, -3, 5, 0, 0, 0, 0, 0, 0, -21, -6, -3, 11}, - { 0, 1,-1, 2, 0, -3, 4, 0, 0, 0, 0, 0, 0, 0, -3, -1, 0}, - { 0, 0, 0, 1, 0, 0, -2, 4, 0, 0, 0, 0, 0, -11, -21, -11, 6}, - { 0, 2,-2, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0, -18,-436, -233, 9}, - { 0,-1, 1, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0, 35, -7, 0, 0}, - { 0, 0, 0, 1, 0, 5, -8, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, - {-2, 0, 2, 1, 0, 6, -8, 0, 0, 0, 0, 0, 0, 11, -3, -1, -6}, - { 0, 0, 0, 1, 0, 0, -8, 15, 0, 0, 0, 0, 0, -5, -3, -1, 3}, - - /* 171-180 */ - {-2, 0, 2, 1, 0, 0, 2, 0,-3, 0, 0, 0, 0, -53, -9, -5, 28}, - {-2, 0, 2, 1, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0, 3, 2, 1}, - { 1, 0,-1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 4, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 0, 0, 3,-5, 0, 0, 0, 0, -4, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0,-1, 0, 0, 0, 0, -50, 194, 103, 27}, - { 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 1, -13, 52, 28, 7}, - { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -91, 248, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 6, 49, 26, -3}, - { 0, 1,-1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, -6, -47, -25, 3}, - { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 3, 0}, - - /* 181-190 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 52, 23, 10, -23}, - { 0, 1,-1, 2, 0, 0, -1, 0, 0,-1, 0, 0, 0, -3, 0, 0, 1}, - { 0, 0, 0, 1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 5, 3, 0}, - { 0,-1, 1, 0, 0, 0, 1, 0, 0,-1, 0, 0, 0, -4, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, -7, 13, 0, 0, 0, 0, 2, -4, 8, 3, 2}, - { 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, 0, 10, 0, 0, 0}, - { 2, 0,-2, 1, 0, 0, -5, 6, 0, 0, 0, 0, 0, 3, 0, 0, -2}, - { 0, 2,-2, 1, 0, 0, -8, 11, 0, 0, 0, 0, 0, 0, 8, 4, 0}, - { 0, 2,-2, 1,-1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 4, 1}, - {-2, 0, 2, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, -4, 0, 0, 0}, - - /* 191-200 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 0, -4, 0, 0, 0}, - { 0, 1,-1, 1, 0, 0, -1, 0, 0, 3, 0, 0, 0, -8, 4, 2, 4}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 8, -4, -2, -4}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 15, 7, 0}, - {-2, 0, 2, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, -138, 0, 0, 0}, - { 0, 0, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, -7, -3, 0}, - { 0, 0, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -7, -3, 0}, - { 2, 0,-2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0, 54, 0, 0, -29}, - { 0, 1,-1, 2, 0, 0, -1, 0, 2, 0, 0, 0, 0, 0, 10, 4, 0}, - { 0, 1,-1, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0, -7, 0, 0, 3}, - - /* 201-210 */ - { 0, 0, 0, 1, 0, 0, 1, -2, 0, 0, 0, 0, 0, -37, 35, 19, 20}, - { 0,-1, 1, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 4, 0, 0}, - { 0,-1, 1, 0, 0, 0, 1, 0, 0,-2, 0, 0, 0, -4, 9, 0, 0}, - { 0, 2,-2, 1, 0, 0, -2, 0, 0, 2, 0, 0, 0, 8, 0, 0, -4}, - { 0, 1,-1, 1, 0, 3, -6, 0, 0, 0, 0, 0, 0, -9, -14, -8, 5}, - { 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 1, -3, -9, -5, 3}, - { 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0, -145, 47, 0, 0}, - { 0, 1,-1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0, -10, 40, 21, 5}, - { 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 0, 1, 11, -49, -26, -7}, - { 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 0, 2,-2150, 0, 0, 932}, - - /* 211-220 */ - { 0, 2,-2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0, -12, 0, 0, 5}, - { 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 0, 2, 85, 0, 0, -37}, - { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 1, 4, 0, 0, -2}, - { 0, 1,-1, 1, 0, 0, 1, -4, 0, 0, 0, 0, 0, 3, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -86, 153, 0, 0}, - { 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 1, -6, 9, 5, 3}, - { 0, 1,-1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 9, -13, -7, -5}, - { 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 1, -8, 12, 6, 4}, - { 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 2, -51, 0, 0, 22}, - { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 2, -11,-268, -116, 5}, - - /* 221-230 */ - { 0, 2,-2, 2, 0, -5, 6, 0, 0, 0, 0, 0, 0, 0, 12, 5, 0}, - { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 2, 0, 7, 3, 0}, - { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 1, 31, 6, 3, -17}, - { 0, 1,-1, 1, 0, -5, 7, 0, 0, 0, 0, 0, 0, 140, 27, 14, -75}, - { 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 0, 1, 57, 11, 6, -30}, - { 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0, -14, -39, 0, 0}, - { 0, 1,-1, 2, 0, 0, -1, 0,-1, 0, 0, 0, 0, 0, -6, -2, 0}, - { 0, 0, 0, 1, 0, 0, 0, 0,-1, 0, 0, 0, 0, 4, 15, 8, -2}, - { 0,-1, 1, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 0, 4, 0, 0}, - { 0, 2,-2, 1, 0, 0, -2, 0, 1, 0, 0, 0, 0, -3, 0, 0, 1}, - - /* 231-240 */ - { 0, 0, 0, 0, 0, 0, -6, 11, 0, 0, 0, 0, 2, 0, 11, 5, 0}, - { 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, 0, 9, 6, 0, 0}, - { 0, 0, 0, 0,-1, 0, 4, 0, 0, 0, 0, 0, 2, -4, 10, 4, 2}, - { 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0}, - { 2, 0,-2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0, 16, 0, 0, -9}, - {-2, 0, 2, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, -3, 0, 0, 0}, - { 0, 2,-2, 1, 0, 0, -7, 9, 0, 0, 0, 0, 0, 0, 3, 2, -1}, - { 0, 0, 0, 0, 0, 0, 0, 0, 4,-5, 0, 0, 2, 7, 0, 0, -3}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, -25, 22, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 42, 223, 119, -22}, - - /* 241-250 */ - { 0, 1,-1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0, -27,-143, -77, 14}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 9, 49, 26, -5}, - { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2,-1166, 0, 0, 505}, - { 0, 2,-2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0, -5, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 2, -6, 0, 0, 3}, - { 0, 0, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0, -8, 0, 1, 4}, - { 0,-1, 1, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, - { 0, 2,-2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0, 117, 0, 0, -63}, - { 0, 0, 0, 1, 0, 0, 2, -4, 0, 0, 0, 0, 0, -4, 8, 4, 2}, - { 0, 2,-2, 1, 0, 0, -4, 4, 0, 0, 0, 0, 0, 3, 0, 0, -2}, - - /* 251-260 */ - { 0, 1,-1, 2, 0, -5, 7, 0, 0, 0, 0, 0, 0, -5, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0, 31, 0, 0}, - { 0, 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 1, -5, 0, 1, 3}, - { 0, 1,-1, 1, 0, 0, -4, 6, 0, 0, 0, 0, 0, 4, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 1, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 2, -24, -13, -6, 10}, - { 0,-1, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0}, - { 0, 0, 0, 1, 0, 2, -3, 0, 0, 0, 0, 0, 0, 0, -32, -17, 0}, - { 0, 0, 0, 0, 0, 0, -5, 9, 0, 0, 0, 0, 2, 8, 12, 5, -3}, - { 0, 0, 0, 0, 0, 0, -5, 9, 0, 0, 0, 0, 1, 3, 0, 0, -1}, - - /* 261-270 */ - { 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0, 7, 13, 0, 0}, - { 0,-1, 1, 0, 0, 0, 1, 0,-2, 0, 0, 0, 0, -3, 16, 0, 0}, - { 0, 2,-2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0, 50, 0, 0, -27}, - {-2, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -5, -3, 0}, - { 0,-2, 2, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0}, - { 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 0, 1, 0, 5, 3, 1}, - { 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 0, 2, 24, 5, 2, -11}, - { 0, 0, 0, 0, 0, -2, 3, 0, 0, 0, 0, 0, 2, 5, -11, -5, -2}, - { 0, 0, 0, 0, 0, -2, 3, 0, 0, 0, 0, 0, 1, 30, -3, -2, -16}, - { 0, 1,-1, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0, 18, 0, 0, -9}, - - /* 271-280 */ - { 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 0, 8, 614, 0, 0}, - { 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 1, 3, -3, -1, -2}, - { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 6, 17, 9, -3}, - { 0, 1,-1, 1, 0, 0, -1, 0, 3, 0, 0, 0, 0, -3, -9, -5, 2}, - { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 6, 3, -1}, - { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, -127, 21, 9, 55}, - { 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0, 3, 5, 0, 0}, - { 0, 0, 0, 0, 0, 0, -4, 8, 0, 0, 0, 0, 2, -6, -10, -4, 3}, - { 0,-2, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 5, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 2, 16, 9, 4, -7}, - - /* 281-290 */ - { 0, 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 1, 3, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, 0, 22, 0, 0}, - { 0, 0, 0, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 19, 10, 0}, - { 0, 2,-2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0, 7, 0, 0, -4}, - { 0, 0, 0, 0, 0, 0, -5, 10, 0, 0, 0, 0, 2, 0, -5, -2, 0}, - { 0, 0, 0, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, -9, 3, 1, 4}, - { 0, 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 2, 17, 0, 0, -7}, - { 0, 0, 0, 0, 0, 0, -3, 5, 0, 0, 0, 0, 1, 0, -3, -2, -1}, - { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -20, 34, 0, 0}, - - /* 291-300 */ - { 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 1, -10, 0, 1, 5}, - { 0, 1,-1, 1, 0, 1, -3, 0, 0, 0, 0, 0, 0, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, 22, -87, 0, 0}, - { 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 1, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 2, -3, -6, -2, 1}, - { 0, 0, 0, 0, 0, -7, 11, 0, 0, 0, 0, 0, 2, -16, -3, -1, 7}, - { 0, 0, 0, 0, 0, -7, 11, 0, 0, 0, 0, 0, 1, 0, -3, -2, 0}, - { 0,-2, 2, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -68, 39, 0, 0}, - { 0, 2,-2, 1, 0, -4, 4, 0, 0, 0, 0, 0, 0, 27, 0, 0, -14}, - - /* 301-310 */ - { 0,-1, 1, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -25, 0, 0, 0}, - { 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 0, 1, -12, -3, -2, 6}, - { 0, 1,-1, 1, 0, -4, 6, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, -4, 7, 0, 0, 0, 0, 0, 2, 3, 66, 29, -1}, - { 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 0, 2, 490, 0, 0,-213}, - { 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 0, 1, -22, 93, 49, 12}, - { 0, 1,-1, 1, 0, -4, 5, 0, 0, 0, 0, 0, 0, -7, 28, 15, 4}, - { 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 0, 1, -3, 13, 7, 2}, - { 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, 0, -46, 14, 0, 0}, - - /* 311-320 */ - {-2, 0, 2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0}, - { 0,-1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, - { 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, -28, 0, 0, 15}, - { 0, 0, 0, 0, 0, 0, -1, 0, 5, 0, 0, 0, 2, 5, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0, 3, 0, 0}, - { 0, 0, 0, 0, 0, 0, -1, 3, 0, 0, 0, 0, 2, -11, 0, 0, 5}, - { 0, 0, 0, 0, 0, 0, -7, 12, 0, 0, 0, 0, 2, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, 25, 106, 57, -13}, - - /* 321-330 */ - { 0, 1,-1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 5, 21, 11, -3}, - { 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 1485, 0, 0, 0}, - { 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, -7, -32, -17, 4}, - { 0, 1,-1, 1, 0, 1, -2, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, - { 0, 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 2, -6, -3, -2, 3}, - { 0, 0, 0, 0, 0, 0, -1, 0, 4, 0, 0, 0, 2, 30, -6, -2, -13}, - { 0, 0, 0, 0, 0, 0, 1, 0,-4, 0, 0, 0, 0, -4, 4, 0, 0}, - { 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, -19, 0, 0, 10}, - { 0, 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 2, 0, 4, 2, -1}, - { 0, 0, 0, 0, 0, 0, -6, 10, 0, 0, 0, 0, 0, 0, 3, 0, 0}, - - /* 331-340 */ - { 0, 2,-2, 1, 0, 0, -3, 0, 3, 0, 0, 0, 0, 4, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, -3, 7, 0, 0, 0, 0, 2, 0, -3, -1, 0}, - {-2, 0, 2, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, -5, 8, 0, 0, 0, 0, 2, 5, 3, 1, -2}, - { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0, 11, 0, 0}, - { 0, 0, 0, 0, 0, 0, -1, 0, 3, 0, 0, 0, 2, 118, 0, 0, -52}, - { 0, 0, 0, 0, 0, 0, -1, 0, 3, 0, 0, 0, 1, 0, -5, -3, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0,-3, 0, 0, 0, 0, -28, 36, 0, 0}, - { 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, 0, 5, -5, 0, 0}, - { 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 0, 1, 14, -59, -31, -8}, - - /* 341-350 */ - { 0, 1,-1, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 9, 5, 1}, - { 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 0, 0, 2, -458, 0, 0, 198}, - { 0, 0, 0, 0, 0, -6, 9, 0, 0, 0, 0, 0, 2, 0, -45, -20, 0}, - { 0, 0, 0, 0, 0, -6, 9, 0, 0, 0, 0, 0, 1, 9, 0, 0, -5}, - { 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, - { 0, 0, 0, 1, 0, 0, 1, 0,-2, 0, 0, 0, 0, 0, -4, -2, -1}, - { 0, 2,-2, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0, 11, 0, 0, -6}, - { 0, 0, 0, 0, 0, 0, -4, 6, 0, 0, 0, 0, 2, 6, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -16, 23, 0, 0}, - { 0, 0, 0, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0, 0, -4, -2, 0}, - - /* 351-360 */ - { 0, 0, 0, 0, 0, 0, -1, 0, 2, 0, 0, 0, 2, -5, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 1, 0,-2, 0, 0, 0, 0, -166, 269, 0, 0}, - { 0, 0, 0, 1, 0, 0, 1, 0,-1, 0, 0, 0, 0, 15, 0, 0, -8}, - { 0, 0, 0, 0, 0, -5, 9, 0, 0, 0, 0, 0, 2, 10, 0, 0, -4}, - { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -78, 45, 0, 0}, - { 0, 0, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0, 2, 0, -5, -2, 0}, - { 0, 0, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0, 1, 7, 0, 0, -4}, - { 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0, -5, 328, 0, 0}, - { 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 1, 3, 0, 0, -2}, - { 0, 0, 0, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0, 5, 0, 0, -2}, - - /* 361-370 */ - { 0, 0, 0, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 0,-3, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 1,-5, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -4, -2, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0,-1223, -26, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 1, 0, 7, 3, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0,-3, 5, 0, 0, 0, 3, 0, 0, 0}, - { 0, 0, 0, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 0,-2, 0, 0, 0, -6, 20, 0, 0}, - { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -368, 0, 0, 0}, - - /* 371-380 */ - { 0, 0, 0, 0, 0, 0, 1, 0, 0,-1, 0, 0, 0, -75, 0, 0, 0}, - { 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 11, 0, 0, -6}, - { 0, 0, 0, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0, 3, 0, 0, -2}, - { 0, 0, 0, 0, 0, -8, 14, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 0, 0, 0, 0, 0, 1, 0, 2,-5, 0, 0, 0, -13, -30, 0, 0}, - { 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 0, 21, 3, 0, 0}, - { 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, -27, 0, 0}, - { 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, 0, -19, -11, 0, 0}, - - /* 381-390 */ - { 0, 0, 0, 0, 0, 0, -3, 8,-3, 0, 0, 0, 2, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 1, 0,-2, 5, 0, 0, 2, 0, 5, 2, 0}, - { 0, 0, 0, 0, 0, -8, 12, 0, 0, 0, 0, 0, 2, -6, 0, 0, 2}, - { 0, 0, 0, 0, 0, -8, 12, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 1,-2, 0, 0, 0, -1, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2, -14, 0, 0, 6}, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, -74, 0, 0, 32}, - { 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 2, 0, -3, -1, 0}, - { 0, 2,-2, 1, 0, -5, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2}, - - /* 391-400 */ - { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 8, 11, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 3, 2, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, -262, 0, 0, 114}, - { 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, - { 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 0, 1, -7, 0, 0, 4}, - { 0, 0, 0, 0, 0, -3, 6, 0, 0, 0, 0, 0, 2, 0, -27, -12, 0}, - { 0, 0, 0, 0, 0, 0, -1, 4, 0, 0, 0, 0, 2, -19, -8, -4, 8}, - { 0, 0, 0, 0, 0, -5, 7, 0, 0, 0, 0, 0, 2, 202, 0, 0, -87}, - { 0, 0, 0, 0, 0, -5, 7, 0, 0, 0, 0, 0, 1, -8, 35, 19, 5}, - { 0, 1,-1, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0}, - - /* 401-410 */ - { 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0, 16, -5, 0, 0}, - { 0, 2,-2, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 5, 0, 0, -3}, - { 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, -3, 0, 0}, - { 0, 0, 0, 0,-1, 0, 3, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2, -35, -48, -21, 15}, - { 0, 0, 0, 0, 0, 0, -2, 6, 0, 0, 0, 0, 2, -3, -5, -2, 1}, - { 0, 0, 0, 1, 0, 2, -2, 0, 0, 0, 0, 0, 0, 6, 0, 0, -3}, - { 0, 0, 0, 0, 0, 0, -6, 9, 0, 0, 0, 0, 2, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0, -5, 0, 0}, - { 0, 0, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0, 1, 12, 55, 29, -6}, - - /* 411-420 */ - { 0, 1,-1, 1, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, - { 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, -598, 0, 0, 0}, - { 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1, -3, -13, -7, 1}, - { 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 2, -5, -7, -3, 2}, - { 0, 0, 0, 0, 0, 0, -5, 7, 0, 0, 0, 0, 2, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 5, -7, 0, 0}, - { 0, 0, 0, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 16, -6, 0, 0}, - { 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0, 8, -3, 0, 0}, - { 0, 0, 0, 0, 0, -1, 3, 0, 0, 0, 0, 0, 1, 8, -31, -16, -4}, - - /* 421-430 */ - { 0, 1,-1, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, -1, 3, 0, 0, 0, 0, 0, 2, 113, 0, 0, -49}, - { 0, 0, 0, 0, 0, -7, 10, 0, 0, 0, 0, 0, 2, 0, -24, -10, 0}, - { 0, 0, 0, 0, 0, -7, 10, 0, 0, 0, 0, 0, 1, 4, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 27, 0, 0, 0}, - { 0, 0, 0, 0, 0, -4, 8, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 0, 0, 0, 0, -4, 5, 0, 0, 0, 0, 0, 2, 0, -4, -2, 0}, - { 0, 0, 0, 0, 0, -4, 5, 0, 0, 0, 0, 0, 1, 5, 0, 0, -2}, - { 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0}, - { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2, -13, 0, 0, 6}, - - /* 431-440 */ - { 0, 0, 0, 0, 0, 0, -2, 0, 5, 0, 0, 0, 2, 5, 0, 0, -2}, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, -18, -10, -4, 8}, - { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -4, -28, 0, 0}, - { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, -5, 6, 3, 2}, - { 0, 0, 0, 0, 0, -9, 13, 0, 0, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 0, 0, 0, 0, 0, -1, 5, 0, 0, 0, 0, 2, -5, -9, -4, 2}, - { 0, 0, 0, 0, 0, 0, -2, 0, 4, 0, 0, 0, 2, 17, 0, 0, -7}, - { 0, 0, 0, 0, 0, 0, 2, 0,-4, 0, 0, 0, 0, 11, 4, 0, 0}, - { 0, 0, 0, 0, 0, 0, -2, 7, 0, 0, 0, 0, 2, 0, -6, -2, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, 83, 15, 0, 0}, - - /* 441-450 */ - { 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, 1, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, 2, 0,-114, -49, 0}, - { 0, 0, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0, 2, 117, 0, 0, -51}, - { 0, 0, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0, 1, -5, 19, 10, 2}, - { 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 1, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, -3, 9, 0, 0, 0, 0, 2, 0, -3, -1, 0}, - { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 2, 0, -6, -2, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 393, 3, 0, 0}, - - /* 451-460 */ - { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 1, -4, 21, 11, 2}, - { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 2, -6, 0, -1, 3}, - { 0, 0, 0, 0, 0, -5, 10, 0, 0, 0, 0, 0, 2, -3, 8, 4, 1}, - { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 8, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 2, 18, -29, -13, -8}, - { 0, 0, 0, 0, 0, -3, 3, 0, 0, 0, 0, 0, 1, 8, 34, 18, -4}, - { 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0}, - { 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 1, 3, 12, 6, -1}, - { 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 2, 54, -15, -7, -24}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0,-3, 0, 0, 0, 0, 3, 0, 0}, - - /* 461-470 */ - { 0, 0, 0, 0, 0, 0, -5, 13, 0, 0, 0, 0, 2, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 0, 2, 0,-1, 0, 0, 0, 0, 0, 35, 0, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0,-1, 0, 0, 0, 2, -154, -30, -13, 67}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, 15, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 1, 0, 4, 2, 0}, - { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 0, 9, 0, 0}, - { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 2, 80, -71, -31, -35}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0,-1, 0, 0, 2, 0, -20, -9, 0}, - { 0, 0, 0, 0, 0, 0, -6, 15, 0, 0, 0, 0, 2, 11, 5, 2, -5}, - { 0, 0, 0, 0, 0, -8, 15, 0, 0, 0, 0, 0, 2, 61, -96, -42, -27}, - - /* 471-480 */ - { 0, 0, 0, 0, 0, -3, 9, -4, 0, 0, 0, 0, 2, 14, 9, 4, -6}, - { 0, 0, 0, 0, 0, 0, 2, 0, 2,-5, 0, 0, 2, -11, -6, -3, 5}, - { 0, 0, 0, 0, 0, 0, -2, 8,-1,-5, 0, 0, 2, 0, -3, -1, 0}, - { 0, 0, 0, 0, 0, 0, 6, -8, 3, 0, 0, 0, 2, 123,-415, -180, -53}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 7, -32, -17, -4}, - { 0, 1,-1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -9, -5, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, -4, 2, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, -89, 0, 0, 38}, - - /* 481-490 */ - { 0, 0, 0, 0, 0, 0, -6, 16,-4,-5, 0, 0, 2, 0, -86, -19, -6}, - { 0, 0, 0, 0, 0, 0, -2, 8,-3, 0, 0, 0, 2, 0, 0, -19, 6}, - { 0, 0, 0, 0, 0, 0, -2, 8,-3, 0, 0, 0, 2, -123,-416, -180, 53}, - { 0, 0, 0, 0, 0, 0, 6, -8, 1, 5, 0, 0, 2, 0, -3, -1, 0}, - { 0, 0, 0, 0, 0, 0, 2, 0,-2, 5, 0, 0, 2, 12, -6, -3, -5}, - { 0, 0, 0, 0, 0, 3, -5, 4, 0, 0, 0, 0, 2, -13, 9, 4, 6}, - { 0, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 0, 2, 0, -15, -7, 0}, - { 0, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 0, 1, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, -8, 11, 0, 0, 0, 0, 0, 2, -62, -97, -42, 27}, - { 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 2, -11, 5, 2, 5}, - - /* 491-500 */ - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 2, 0, -19, -8, 0}, - { 0, 0, 0, 0, 0, 3, -3, 0, 2, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 2,-2, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, 4, 2, 0}, - { 0, 1,-1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}, - { 0, 2,-2, 1, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, 4, 2, 0}, - { 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 2, -85, -70, -31, 37}, - { 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 163, -12, -5, -72}, - { 0, 0, 0, 0, 0, -3, 7, 0, 0, 0, 0, 0, 2, -63, -16, -7, 28}, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, -21, -32, -14, 9}, - { 0, 0, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0, 2, 0, -3, -1, 0}, - - /* 501-510 */ - { 0, 0, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0, 1, 3, 0, 0, -2}, - { 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0}, - { 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 2, 3, 10, 4, -1}, - { 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 0, -1, 6, 0, 0, 0, 0, 2, 0, -7, -3, 0}, - { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 2, 0, -4, -2, 0}, - { 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 6, 19, 0, 0}, - { 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 2, 5,-173, -75, -2}, - { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 2, 0, -7, -3, 0}, - { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 2, 7, -12, -5, -3}, - - /* 511-520 */ - { 0, 0, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 1, -3, 0, 0, 2}, - { 0, 0, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 2, 3, -4, -2, -1}, - { 0, 0, 0, 0, 0, -7, 9, 0, 0, 0, 0, 0, 2, 74, 0, 0, -32}, - { 0, 0, 0, 0, 0, -7, 9, 0, 0, 0, 0, 0, 1, -3, 12, 6, 2}, - { 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 2, 26, -14, -6, -11}, - { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 2, 19, 0, 0, -8}, - { 0, 0, 0, 0, 0, -4, 4, 0, 0, 0, 0, 0, 1, 6, 24, 13, -3}, - { 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0}, - { 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 1, 0, -10, -5, 0}, - { 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 2, 11, -3, -1, -5}, - - /* 521-530 */ - { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 3, 0, 1, -1}, - { 0, 0, 0, 0, 0, 0, -3, 0, 5, 0, 0, 0, 2, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0}, - { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 5, -23, -12, -3}, - { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2, -339, 0, 0, 147}, - { 0, 0, 0, 0, 0, -9, 12, 0, 0, 0, 0, 0, 2, 0, -10, -5, 0}, - { 0, 0, 0, 0, 0, 0, 3, 0,-4, 0, 0, 0, 0, 5, 0, 0, 0}, - { 0, 2,-2, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 2, 0, -4, -2, 0}, - { 0, 0, 0, 0, 0, 0, 3, 0,-3, 0, 0, 0, 0, 18, -3, 0, 0}, - - /* 531-540 */ - { 0, 0, 0, 0, 0, 0, 3, 0,-3, 0, 0, 0, 2, 9, -11, -5, -4}, - { 0, 0, 0, 0, 0, -2, 6, 0, 0, 0, 0, 0, 2, -8, 0, 0, 4}, - { 0, 0, 0, 0, 0, -6, 7, 0, 0, 0, 0, 0, 1, 3, 0, 0, -1}, - { 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0}, - { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 2, 6, -9, -4, -2}, - { 0, 0, 0, 0, 0, 0, 3, 0,-2, 0, 0, 0, 0, -4, -12, 0, 0}, - { 0, 0, 0, 0, 0, 0, 3, 0,-2, 0, 0, 0, 2, 67, -91, -39, -29}, - { 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 2, 30, -18, -8, -13}, - { 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 2, 0,-114, -50, 0}, - - /* 541-550 */ - { 0, 0, 0, 0, 0, 0, 3, 0,-1, 0, 0, 0, 2, 0, 0, 0, 23}, - { 0, 0, 0, 0, 0, 0, 3, 0,-1, 0, 0, 0, 2, 517, 16, 7,-224}, - { 0, 0, 0, 0, 0, 0, 3, 0, 0,-2, 0, 0, 2, 0, -7, -3, 0}, - { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 2, 143, -3, -1, -62}, - { 0, 0, 0, 0, 0, 0, 3, 0, 0,-1, 0, 0, 2, 29, 0, 0, -13}, - { 0, 2,-2, 1, 0, 0, 1, 0,-1, 0, 0, 0, 0, -4, 0, 0, 2}, - { 0, 0, 0, 0, 0, -8, 16, 0, 0, 0, 0, 0, 2, -6, 0, 0, 3}, - { 0, 0, 0, 0, 0, 0, 3, 0, 2,-5, 0, 0, 2, 5, 12, 5, -2}, - { 0, 0, 0, 0, 0, 0, 7, -8, 3, 0, 0, 0, 2, -25, 0, 0, 11}, - { 0, 0, 0, 0, 0, 0, -5, 16,-4,-5, 0, 0, 2, -3, 0, 0, 1}, - - /* 551-560 */ - { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 4, 2, 0}, - { 0, 0, 0, 0, 0, 0, -1, 8,-3, 0, 0, 0, 2, -22, 12, 5, 10}, - { 0, 0, 0, 0, 0, -8, 10, 0, 0, 0, 0, 0, 2, 50, 0, 0, -22}, - { 0, 0, 0, 0, 0, -8, 10, 0, 0, 0, 0, 0, 1, 0, 7, 4, 0}, - { 0, 0, 0, 0, 0, -8, 10, 0, 0, 0, 0, 0, 2, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, -4, 4, 2, 2}, - { 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2, -5, -11, -5, 2}, - { 0, 0, 0, 0, 0, -3, 8, 0, 0, 0, 0, 0, 2, 0, 4, 2, 0}, - { 0, 0, 0, 0, 0, -5, 5, 0, 0, 0, 0, 0, 1, 4, 17, 9, -2}, - { 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0}, - - /* 561-570 */ - { 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 1, 0, -4, -2, 0}, - { 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 2, -8, 0, 0, 4}, - { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 4, -15, -8, -2}, - { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 370, -8, 0,-160}, - { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2, 0, 0, -3, 0}, - { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, 0, 6, -5, 0, 0, 0, 0, 2, -6, 3, 1, 3}, - { 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0}, - { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 2, -10, 0, 0, 4}, - - /* 571-580 */ - { 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 0, 2, 0, 9, 4, 0}, - { 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 2, 4, 17, 7, -2}, - { 0, 0, 0, 0, 0, -9, 11, 0, 0, 0, 0, 0, 2, 34, 0, 0, -15}, - { 0, 0, 0, 0, 0, -9, 11, 0, 0, 0, 0, 0, 1, 0, 5, 3, 0}, - { 0, 0, 0, 0, 0, 0, 4, 0,-4, 0, 0, 0, 2, -5, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 4, 0,-3, 0, 0, 0, 2, -37, -7, -3, 16}, - { 0, 0, 0, 0, 0, -6, 6, 0, 0, 0, 0, 0, 1, 3, 13, 7, -2}, - { 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0}, - { 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 1, 0, -3, -2, 0}, - { 0, 0, 0, 0, 0, 0, 4, 0,-2, 0, 0, 0, 2, -184, -3, -1, 80}, - - /* 581-590 */ - { 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 2, -3, 0, 0, 1}, - { 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0}, - { 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 1, 0, -10, -6, -1}, - { 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 2, 31, -6, 0, -13}, - { 0, 0, 0, 0, 0, 0, 4, 0,-1, 0, 0, 0, 2, -3, -32, -14, 1}, - { 0, 0, 0, 0, 0, 0, 4, 0, 0,-2, 0, 0, 2, -7, 0, 0, 3}, - { 0, 0, 0, 0, 0, 0, 5, -2, 0, 0, 0, 0, 2, 0, -8, -4, 0}, - { 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 3, -4, 0, 0}, - { 0, 0, 0, 0, 0, 8, -9, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0}, - { 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 2, 0, 3, 1, 0}, - - /* 591-600 */ - { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 2, 19, -23, -10, 2}, - { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -10}, - { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 3, 2, 0}, - { 0, 0, 0, 0, 0, -7, 7, 0, 0, 0, 0, 0, 1, 0, 9, 5, -1}, - { 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0}, - { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 1, 0, -7, -4, 0}, - { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 2, 8, -4, 0, -4}, - { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0}, - { 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}, - { 0, 0, 0, 0, 0, 0, 5, 0,-4, 0, 0, 0, 2, -3, 0, 0, 1}, - - /* 601-610 */ - { 0, 0, 0, 0, 0, 0, 5, 0,-3, 0, 0, 0, 2, -9, 0, 1, 4}, - { 0, 0, 0, 0, 0, 0, 5, 0,-2, 0, 0, 0, 2, 3, 12, 5, -1}, - { 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 17, -3, -1, 0}, - { 0, 0, 0, 0, 0, -8, 8, 0, 0, 0, 0, 0, 1, 0, 7, 4, 0}, - { 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0}, - { 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 1, 0, -5, -3, 0}, - { 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 2, 14, -3, 0, -1}, - { 0, 0, 0, 0, 0, -9, 9, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0}, - { 0, 0, 0, 0, 0, -9, 9, 0, 0, 0, 0, 0, 1, 0, 0, 0, -5}, - { 0, 0, 0, 0, 0, -9, 9, 0, 0, 0, 0, 0, 1, 0, 5, 3, 0}, - - /* 611-620 */ - { 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0}, - { 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 0, 1, 0, -3, -2, 0}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 2, 9, 4, 3}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 4, 2, 0}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 6, 0, 0, -3}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 3, 1, 0}, - { 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 5, 0, 0, -2}, - - /* 621-630 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, -1}, - { 1, 0,-2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 0}, - { 1, 0,-2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0}, - { 1, 0,-2, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 7, 0, 0, 0}, - { 1, 0,-2, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0}, - {-1, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0}, - {-1, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 6, 0, 0, 0}, - {-1, 0, 2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -4, 0, 0}, - { 1, 0,-2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -4, 0, 0}, - {-2, 0, 2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 5, 0, 0, 0}, - - /* 631-640 */ - {-1, 0, 0, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, -3, 0, 0, 0}, - {-1, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 4, 0, 0, 0}, - {-1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0}, - {-1, 0, 2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0}, - { 1,-1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0}, - {-1, 0, 2, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, 13, 0, 0, 0}, - {-2, 0, 0, 0, 0, 0, 2, 0,-3, 0, 0, 0, 0, 21, 11, 0, 0}, - { 1, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -5, 0, 0}, - {-1, 1,-1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -5, -2, 0}, - { 1, 1,-1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0}, - - /* 641-650 */ - {-1, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, -5, 0, 0}, - {-1, 0, 2, 1, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 2}, - { 0, 0, 0, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, 20, 10, 0, 0}, - {-1, 0, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -34, 0, 0, 0}, - {-1, 0, 2, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0}, - { 1, 0,-2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0, 3, 0, 0, -2}, - { 1, 2,-2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, - { 1, 2,-2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0, -6, 0, 0, 3}, - { 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0}, - { 1, 0, 0, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 3, 0, 0, 0}, - - /* 651-660 */ - { 0, 0,-2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0}, - { 0, 0,-2, 0, 0, 0, 1, 0,-1, 0, 0, 0, 0, 4, 0, 0, 0}, - { 0, 2, 0, 2, 0, -2, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, - { 0, 2, 0, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0, 6, 0, 0, -3}, - { 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0, -8, 0, 0, 3}, - { 0, 2, 0, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, - { 0, 0, 2, 0, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 0}, - { 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -3, -2, 0}, - { 1, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 126, -63, -27, -55}, - {-1, 2, 0, 2, 0, 10, -3, 0, 0, 0, 0, 0, 0, -5, 0, 1, 2}, - - /* 661-670 */ - { 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -3, 28, 15, 2}, - { 1, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 5, 0, 1, -2}, - { 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, 9, 4, 1}, - { 0, 2, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, 9, 4, -1}, - {-1, 2, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, -126, -63, -27, 55}, - { 2, 2,-2, 2, 0, 0, -2, 0, 3, 0, 0, 0, 0, 3, 0, 0, -1}, - { 1, 2, 0, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0, 21, -11, -6, -11}, - { 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0}, - {-1, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -21, -11, -6, 11}, - {-2, 2, 2, 2, 0, 0, 2, 0,-2, 0, 0, 0, 0, -3, 0, 0, 1}, - - /* 671-680 */ - { 0, 2, 0, 2, 0, 2, -3, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0}, - { 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0, 8, 0, 0, -4}, - { 0, 2, 0, 2, 0, 0, 1, 0,-1, 0, 0, 0, 0, -6, 0, 0, 3}, - { 0, 2, 0, 2, 0, 2, -2, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, - {-1, 2, 2, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0, 3, 0, 0, -1}, - { 1, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1}, - {-1, 2, 2, 2, 0, 0, 2, 0,-3, 0, 0, 0, 0, -5, 0, 0, 2}, - { 2, 2, 0, 2, 0, 0, 2, 0,-3, 0, 0, 0, 0, 24, -12, -5, -11}, - { 1, 2, 0, 2, 0, 0, -4, 8,-3, 0, 0, 0, 0, 0, 3, 1, 0}, - { 1, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0, 0, 3, 1, 0}, - - /* 681-687 */ - { 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0}, - { 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, -24, -12, -5, 10}, - { 2, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, -1, -2}, - {-1, 2, 2, 2, 0, 0, 2, 0,-2, 0, 0, 0, 0, 13, 0, 0, -6}, - {-1, 2, 2, 2, 0, 3, -3, 0, 0, 0, 0, 0, 0, 7, 0, 0, -3}, - { 1, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1}, - { 0, 2, 2, 2, 0, 0, 2, 0,-2, 0, 0, 0, 0, 3, 0, 0, -1} - }; - -/* Number of terms in the planetary nutation model */ - const int NPL = (int) (sizeof xpl / sizeof xpl[0]); - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental date J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* ------------------- */ -/* LUNI-SOLAR NUTATION */ -/* ------------------- */ - -/* Fundamental (Delaunay) arguments */ - -/* Mean anomaly of the Moon (IERS 2003). */ - el = iauFal03(t); - -/* Mean anomaly of the Sun (MHB2000). */ - elp = fmod(1287104.79305 + - t * (129596581.0481 + - t * (-0.5532 + - t * (0.000136 + - t * (-0.00001149)))), TURNAS) * DAS2R; - -/* Mean longitude of the Moon minus that of the ascending node */ -/* (IERS 2003). */ - f = iauFaf03(t); - -/* Mean elongation of the Moon from the Sun (MHB2000). */ - d = fmod(1072260.70369 + - t * (1602961601.2090 + - t * (-6.3706 + - t * (0.006593 + - t * (-0.00003169)))), TURNAS) * DAS2R; - -/* Mean longitude of the ascending node of the Moon (IERS 2003). */ - om = iauFaom03(t); - -/* Initialize the nutation values. */ - dp = 0.0; - de = 0.0; - -/* Summation of luni-solar nutation series (in reverse order). */ - for (i = NLS-1; i >= 0; i--) { - - /* Argument and functions. */ - arg = fmod((double)xls[i].nl * el + - (double)xls[i].nlp * elp + - (double)xls[i].nf * f + - (double)xls[i].nd * d + - (double)xls[i].nom * om, D2PI); - sarg = sin(arg); - carg = cos(arg); - - /* Term. */ - dp += (xls[i].sp + xls[i].spt * t) * sarg + xls[i].cp * carg; - de += (xls[i].ce + xls[i].cet * t) * carg + xls[i].se * sarg; - } - -/* Convert from 0.1 microarcsec units to radians. */ - dpsils = dp * U2R; - depsls = de * U2R; - -/* ------------------ */ -/* PLANETARY NUTATION */ -/* ------------------ */ - -/* n.b. The MHB2000 code computes the luni-solar and planetary nutation */ -/* in different functions, using slightly different Delaunay */ -/* arguments in the two cases. This behaviour is faithfully */ -/* reproduced here. Use of the IERS 2003 expressions for both */ -/* cases leads to negligible changes, well below */ -/* 0.1 microarcsecond. */ - -/* Mean anomaly of the Moon (MHB2000). */ - al = fmod(2.35555598 + 8328.6914269554 * t, D2PI); - -/* Mean longitude of the Moon minus that of the ascending node */ -/*(MHB2000). */ - af = fmod(1.627905234 + 8433.466158131 * t, D2PI); - -/* Mean elongation of the Moon from the Sun (MHB2000). */ - ad = fmod(5.198466741 + 7771.3771468121 * t, D2PI); - -/* Mean longitude of the ascending node of the Moon (MHB2000). */ - aom = fmod(2.18243920 - 33.757045 * t, D2PI); - -/* General accumulated precession in longitude (IERS 2003). */ - apa = iauFapa03(t); - -/* Planetary longitudes, Mercury through Uranus (IERS 2003). */ - alme = iauFame03(t); - alve = iauFave03(t); - alea = iauFae03(t); - alma = iauFama03(t); - alju = iauFaju03(t); - alsa = iauFasa03(t); - alur = iauFaur03(t); - -/* Neptune longitude (MHB2000). */ - alne = fmod(5.321159000 + 3.8127774000 * t, D2PI); - -/* Initialize the nutation values. */ - dp = 0.0; - de = 0.0; - -/* Summation of planetary nutation series (in reverse order). */ - for (i = NPL-1; i >= 0; i--) { - - /* Argument and functions. */ - arg = fmod((double)xpl[i].nl * al + - (double)xpl[i].nf * af + - (double)xpl[i].nd * ad + - (double)xpl[i].nom * aom + - (double)xpl[i].nme * alme + - (double)xpl[i].nve * alve + - (double)xpl[i].nea * alea + - (double)xpl[i].nma * alma + - (double)xpl[i].nju * alju + - (double)xpl[i].nsa * alsa + - (double)xpl[i].nur * alur + - (double)xpl[i].nne * alne + - (double)xpl[i].npa * apa, D2PI); - sarg = sin(arg); - carg = cos(arg); - - /* Term. */ - dp += (double)xpl[i].sp * sarg + (double)xpl[i].cp * carg; - de += (double)xpl[i].se * sarg + (double)xpl[i].ce * carg; - - } - -/* Convert from 0.1 microarcsec units to radians. */ - dpsipl = dp * U2R; - depspl = de * U2R; - -/* ------- */ -/* RESULTS */ -/* ------- */ - -/* Add luni-solar and planetary components. */ - *dpsi = dpsils + dpsipl; - *deps = depsls + depspl; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/nut00b.c b/deps/sofa/20231011/c/src/nut00b.c deleted file mode 100644 index 5a0a8e3..0000000 --- a/deps/sofa/20231011/c/src/nut00b.c +++ /dev/null @@ -1,423 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauNut00b(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - - -** i a u N u t 0 0 b -** - - - - - - - - - - -** -** Nutation, IAU 2000B model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the equinox and ecliptic of date. The -** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) -** value of 84381.448 arcsec. (The errors that result from using -** this function with the IAU 2006 value of 84381.406 arcsec can be -** neglected.) -** -** The nutation model consists only of luni-solar terms, but -** includes also a fixed offset which compensates for certain long- -** period planetary terms (Note 7). -** -** 3) This function is an implementation of the IAU 2000B abridged -** nutation model formally adopted by the IAU General Assembly in -** 2000. The function computes the MHB_2000_SHORT luni-solar -** nutation series (Luzum 2001), but without the associated -** corrections for the precession rate adjustments and the offset -** between the GCRS and J2000.0 mean poles. -** -** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400 -** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only -** 77 terms, plus additional simplifications, yet still delivers -** results of 1 mas accuracy at present epochs. This combination of -** accuracy and size makes the IAU 2000B abridged nutation model -** suitable for most practical applications. -** -** The function delivers a pole accurate to 1 mas from 1900 to 2100 -** (usually better than 1 mas, very occasionally just outside -** 1 mas). The full IAU 2000A model, which is implemented in the -** function iauNut00a (q.v.), delivers considerably greater accuracy -** at current dates; however, to realize this improved accuracy, -** corrections for the essentially unpredictable free-core-nutation -** (FCN) must also be included. -** -** 5) The present function provides classical nutation. The -** MHB_2000_SHORT algorithm, from which it is adapted, deals also -** with (i) the offsets between the GCRS and mean poles and (ii) the -** adjustments in longitude and obliquity due to the changed -** precession rates. These additional functions, namely frame bias -** and precession adjustments, are supported by the SOFA functions -** iauBi00 and iauPr00. -** -** 6) The MHB_2000_SHORT algorithm also provides "total" nutations, -** comprising the arithmetic sum of the frame bias, precession -** adjustments, and nutation (luni-solar + planetary). These total -** nutations can be used in combination with an existing IAU 1976 -** precession implementation, such as iauPmat76, to deliver GCRS- -** to-true predictions of mas accuracy at current epochs. However, -** for symmetry with the iauNut00a function (q.v. for the reasons), -** the SOFA functions do not generate the "total nutations" -** directly. Should they be required, they could of course easily -** be generated by calling iauBi00, iauPr00 and the present function -** and adding the results. -** -** 7) The IAU 2000B model includes "planetary bias" terms that are -** fixed in size but compensate for long-period nutations. The -** amplitudes quoted in McCarthy & Luzum (2003), namely -** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for -** the "total nutations" method described in Note 6. The Luzum -** (2001) values used in this SOFA implementation, namely -0.135 mas -** and +0.388 mas, are optimized for the "rigorous" method, where -** frame bias, precession and nutation are applied separately and in -** that order. During the interval 1995-2050, the SOFA -** implementation delivers a maximum error of 1.001 mas (not -** including FCN). -** -** References: -** -** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions -** for the precession quantities based upon the IAU /1976/ system of -** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977) -** -** Luzum, B., private communication, 2001 (Fortran code -** MHB_2000_SHORT) -** -** McCarthy, D.D. & Luzum, B.J., "An abridged model of the -** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. -** 85, 37-49 (2003) -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, el, elp, f, d, om, arg, dp, de, sarg, carg, - dpsils, depsls, dpsipl, depspl; - int i; - -/* Units of 0.1 microarcsecond to radians */ - static const double U2R = DAS2R / 1e7; - -/* ---------------------------------------- */ -/* Fixed offsets in lieu of planetary terms */ -/* ---------------------------------------- */ - - static const double DPPLAN = -0.135 * DMAS2R; - static const double DEPLAN = 0.388 * DMAS2R; - -/* --------------------------------------------------- */ -/* Luni-solar nutation: argument and term coefficients */ -/* --------------------------------------------------- */ - -/* The units for the sine and cosine coefficients are */ -/* 0.1 microarcsec and the same per Julian century */ - - static const struct { - int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */ - double ps,pst,pc; /* longitude sin, t*sin, cos coefficients */ - double ec,ect,es; /* obliquity cos, t*cos, sin coefficients */ - - } x[] = { - - /* 1-10 */ - { 0, 0, 0, 0,1, - -172064161.0, -174666.0, 33386.0, 92052331.0, 9086.0, 15377.0}, - { 0, 0, 2,-2,2, - -13170906.0, -1675.0, -13696.0, 5730336.0, -3015.0, -4587.0}, - { 0, 0, 2, 0,2,-2276413.0,-234.0, 2796.0, 978459.0,-485.0,1374.0}, - { 0, 0, 0, 0,2,2074554.0, 207.0, -698.0,-897492.0, 470.0,-291.0}, - { 0, 1, 0, 0,0,1475877.0,-3633.0,11817.0, 73871.0,-184.0,-1924.0}, - { 0, 1, 2,-2,2,-516821.0, 1226.0, -524.0, 224386.0,-677.0,-174.0}, - { 1, 0, 0, 0,0, 711159.0, 73.0, -872.0, -6750.0, 0.0, 358.0}, - { 0, 0, 2, 0,1,-387298.0, -367.0, 380.0, 200728.0, 18.0, 318.0}, - { 1, 0, 2, 0,2,-301461.0, -36.0, 816.0, 129025.0, -63.0, 367.0}, - { 0,-1, 2,-2,2, 215829.0, -494.0, 111.0, -95929.0, 299.0, 132.0}, - - /* 11-20 */ - { 0, 0, 2,-2,1, 128227.0, 137.0, 181.0, -68982.0, -9.0, 39.0}, - {-1, 0, 2, 0,2, 123457.0, 11.0, 19.0, -53311.0, 32.0, -4.0}, - {-1, 0, 0, 2,0, 156994.0, 10.0, -168.0, -1235.0, 0.0, 82.0}, - { 1, 0, 0, 0,1, 63110.0, 63.0, 27.0, -33228.0, 0.0, -9.0}, - {-1, 0, 0, 0,1, -57976.0, -63.0, -189.0, 31429.0, 0.0, -75.0}, - {-1, 0, 2, 2,2, -59641.0, -11.0, 149.0, 25543.0, -11.0, 66.0}, - { 1, 0, 2, 0,1, -51613.0, -42.0, 129.0, 26366.0, 0.0, 78.0}, - {-2, 0, 2, 0,1, 45893.0, 50.0, 31.0, -24236.0, -10.0, 20.0}, - { 0, 0, 0, 2,0, 63384.0, 11.0, -150.0, -1220.0, 0.0, 29.0}, - { 0, 0, 2, 2,2, -38571.0, -1.0, 158.0, 16452.0, -11.0, 68.0}, - - /* 21-30 */ - { 0,-2, 2,-2,2, 32481.0, 0.0, 0.0, -13870.0, 0.0, 0.0}, - {-2, 0, 0, 2,0, -47722.0, 0.0, -18.0, 477.0, 0.0, -25.0}, - { 2, 0, 2, 0,2, -31046.0, -1.0, 131.0, 13238.0, -11.0, 59.0}, - { 1, 0, 2,-2,2, 28593.0, 0.0, -1.0, -12338.0, 10.0, -3.0}, - {-1, 0, 2, 0,1, 20441.0, 21.0, 10.0, -10758.0, 0.0, -3.0}, - { 2, 0, 0, 0,0, 29243.0, 0.0, -74.0, -609.0, 0.0, 13.0}, - { 0, 0, 2, 0,0, 25887.0, 0.0, -66.0, -550.0, 0.0, 11.0}, - { 0, 1, 0, 0,1, -14053.0, -25.0, 79.0, 8551.0, -2.0, -45.0}, - {-1, 0, 0, 2,1, 15164.0, 10.0, 11.0, -8001.0, 0.0, -1.0}, - { 0, 2, 2,-2,2, -15794.0, 72.0, -16.0, 6850.0, -42.0, -5.0}, - - /* 31-40 */ - { 0, 0,-2, 2,0, 21783.0, 0.0, 13.0, -167.0, 0.0, 13.0}, - { 1, 0, 0,-2,1, -12873.0, -10.0, -37.0, 6953.0, 0.0, -14.0}, - { 0,-1, 0, 0,1, -12654.0, 11.0, 63.0, 6415.0, 0.0, 26.0}, - {-1, 0, 2, 2,1, -10204.0, 0.0, 25.0, 5222.0, 0.0, 15.0}, - { 0, 2, 0, 0,0, 16707.0, -85.0, -10.0, 168.0, -1.0, 10.0}, - { 1, 0, 2, 2,2, -7691.0, 0.0, 44.0, 3268.0, 0.0, 19.0}, - {-2, 0, 2, 0,0, -11024.0, 0.0, -14.0, 104.0, 0.0, 2.0}, - { 0, 1, 2, 0,2, 7566.0, -21.0, -11.0, -3250.0, 0.0, -5.0}, - { 0, 0, 2, 2,1, -6637.0, -11.0, 25.0, 3353.0, 0.0, 14.0}, - { 0,-1, 2, 0,2, -7141.0, 21.0, 8.0, 3070.0, 0.0, 4.0}, - - /* 41-50 */ - { 0, 0, 0, 2,1, -6302.0, -11.0, 2.0, 3272.0, 0.0, 4.0}, - { 1, 0, 2,-2,1, 5800.0, 10.0, 2.0, -3045.0, 0.0, -1.0}, - { 2, 0, 2,-2,2, 6443.0, 0.0, -7.0, -2768.0, 0.0, -4.0}, - {-2, 0, 0, 2,1, -5774.0, -11.0, -15.0, 3041.0, 0.0, -5.0}, - { 2, 0, 2, 0,1, -5350.0, 0.0, 21.0, 2695.0, 0.0, 12.0}, - { 0,-1, 2,-2,1, -4752.0, -11.0, -3.0, 2719.0, 0.0, -3.0}, - { 0, 0, 0,-2,1, -4940.0, -11.0, -21.0, 2720.0, 0.0, -9.0}, - {-1,-1, 0, 2,0, 7350.0, 0.0, -8.0, -51.0, 0.0, 4.0}, - { 2, 0, 0,-2,1, 4065.0, 0.0, 6.0, -2206.0, 0.0, 1.0}, - { 1, 0, 0, 2,0, 6579.0, 0.0, -24.0, -199.0, 0.0, 2.0}, - - /* 51-60 */ - { 0, 1, 2,-2,1, 3579.0, 0.0, 5.0, -1900.0, 0.0, 1.0}, - { 1,-1, 0, 0,0, 4725.0, 0.0, -6.0, -41.0, 0.0, 3.0}, - {-2, 0, 2, 0,2, -3075.0, 0.0, -2.0, 1313.0, 0.0, -1.0}, - { 3, 0, 2, 0,2, -2904.0, 0.0, 15.0, 1233.0, 0.0, 7.0}, - { 0,-1, 0, 2,0, 4348.0, 0.0, -10.0, -81.0, 0.0, 2.0}, - { 1,-1, 2, 0,2, -2878.0, 0.0, 8.0, 1232.0, 0.0, 4.0}, - { 0, 0, 0, 1,0, -4230.0, 0.0, 5.0, -20.0, 0.0, -2.0}, - {-1,-1, 2, 2,2, -2819.0, 0.0, 7.0, 1207.0, 0.0, 3.0}, - {-1, 0, 2, 0,0, -4056.0, 0.0, 5.0, 40.0, 0.0, -2.0}, - { 0,-1, 2, 2,2, -2647.0, 0.0, 11.0, 1129.0, 0.0, 5.0}, - - /* 61-70 */ - {-2, 0, 0, 0,1, -2294.0, 0.0, -10.0, 1266.0, 0.0, -4.0}, - { 1, 1, 2, 0,2, 2481.0, 0.0, -7.0, -1062.0, 0.0, -3.0}, - { 2, 0, 0, 0,1, 2179.0, 0.0, -2.0, -1129.0, 0.0, -2.0}, - {-1, 1, 0, 1,0, 3276.0, 0.0, 1.0, -9.0, 0.0, 0.0}, - { 1, 1, 0, 0,0, -3389.0, 0.0, 5.0, 35.0, 0.0, -2.0}, - { 1, 0, 2, 0,0, 3339.0, 0.0, -13.0, -107.0, 0.0, 1.0}, - {-1, 0, 2,-2,1, -1987.0, 0.0, -6.0, 1073.0, 0.0, -2.0}, - { 1, 0, 0, 0,2, -1981.0, 0.0, 0.0, 854.0, 0.0, 0.0}, - {-1, 0, 0, 1,0, 4026.0, 0.0, -353.0, -553.0, 0.0,-139.0}, - { 0, 0, 2, 1,2, 1660.0, 0.0, -5.0, -710.0, 0.0, -2.0}, - - /* 71-77 */ - {-1, 0, 2, 4,2, -1521.0, 0.0, 9.0, 647.0, 0.0, 4.0}, - {-1, 1, 0, 1,1, 1314.0, 0.0, 0.0, -700.0, 0.0, 0.0}, - { 0,-2, 2,-2,1, -1283.0, 0.0, 0.0, 672.0, 0.0, 0.0}, - { 1, 0, 2, 2,1, -1331.0, 0.0, 8.0, 663.0, 0.0, 4.0}, - {-2, 0, 2, 2,2, 1383.0, 0.0, -2.0, -594.0, 0.0, -2.0}, - {-1, 0, 0, 0,2, 1405.0, 0.0, 4.0, -610.0, 0.0, 2.0}, - { 1, 1, 2,-2,2, 1290.0, 0.0, 0.0, -556.0, 0.0, 0.0} - }; - -/* Number of terms in the series */ - const int NLS = (int) (sizeof x / sizeof x[0]); - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental epoch J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* --------------------*/ -/* LUNI-SOLAR NUTATION */ -/* --------------------*/ - -/* Fundamental (Delaunay) arguments from Simon et al. (1994) */ - -/* Mean anomaly of the Moon. */ - el = fmod(485868.249036 + (1717915923.2178) * t, TURNAS) * DAS2R; - -/* Mean anomaly of the Sun. */ - elp = fmod(1287104.79305 + (129596581.0481) * t, TURNAS) * DAS2R; - -/* Mean argument of the latitude of the Moon. */ - f = fmod(335779.526232 + (1739527262.8478) * t, TURNAS) * DAS2R; - -/* Mean elongation of the Moon from the Sun. */ - d = fmod(1072260.70369 + (1602961601.2090) * t, TURNAS) * DAS2R; - -/* Mean longitude of the ascending node of the Moon. */ - om = fmod(450160.398036 + (-6962890.5431) * t, TURNAS) * DAS2R; - -/* Initialize the nutation values. */ - dp = 0.0; - de = 0.0; - -/* Summation of luni-solar nutation series (smallest terms first). */ - for (i = NLS-1; i >= 0; i--) { - - /* Argument and functions. */ - arg = fmod( (double)x[i].nl * el + - (double)x[i].nlp * elp + - (double)x[i].nf * f + - (double)x[i].nd * d + - (double)x[i].nom * om, D2PI ); - sarg = sin(arg); - carg = cos(arg); - - /* Term. */ - dp += (x[i].ps + x[i].pst * t) * sarg + x[i].pc * carg; - de += (x[i].ec + x[i].ect * t) * carg + x[i].es * sarg; - } - -/* Convert from 0.1 microarcsec units to radians. */ - dpsils = dp * U2R; - depsls = de * U2R; - -/* ------------------------------*/ -/* IN LIEU OF PLANETARY NUTATION */ -/* ------------------------------*/ - -/* Fixed offset to correct for missing terms in truncated series. */ - dpsipl = DPPLAN; - depspl = DEPLAN; - -/* --------*/ -/* RESULTS */ -/* --------*/ - -/* Add luni-solar and planetary components. */ - *dpsi = dpsils + dpsipl; - *deps = depsls + depspl; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/nut06a.c b/deps/sofa/20231011/c/src/nut06a.c deleted file mode 100644 index 948f975..0000000 --- a/deps/sofa/20231011/c/src/nut06a.c +++ /dev/null @@ -1,201 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauNut06a(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - - -** i a u N u t 0 6 a -** - - - - - - - - - - -** -** IAU 2000A nutation with adjustments to match the IAU 2006 -** precession. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation, luni-solar + planetary (Note 2) -** -** Status: canonical model. -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components in longitude and obliquity are in radians -** and with respect to the mean equinox and ecliptic of date, -** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. -** 2005). -** -** 3) The function first computes the IAU 2000A nutation, then applies -** adjustments for (i) the consequences of the change in obliquity -** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the -** secular variation in the Earth's dynamical form factor J2. -** -** 4) The present function provides classical nutation, complementing -** the IAU 2000 frame bias and IAU 2006 precession. It delivers a -** pole which is at current epochs accurate to a few tens of -** microarcseconds, apart from the free core nutation. -** -** Called: -** iauNut00a nutation, IAU 2000A -** -** References: -** -** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, -** Astron.Astrophys. 387, 700 -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, -** Astron.Astrophys. 58, 1-16 -** -** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. -** 107, B4. The MHB_2000 code itself was obtained on 9th September -** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, fj2, dp, de; - - -/* Interval between fundamental date J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Factor correcting for secular variation of J2. */ - fj2 = -2.7774e-6 * t; - -/* Obtain IAU 2000A nutation. */ - iauNut00a(date1, date2, &dp, &de); - -/* Apply P03 adjustments (Wallace & Capitaine, 2006, Eqs.5). */ - *dpsi = dp + dp * (0.4697e-6 + fj2); - *deps = de + de * fj2; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/nut80.c b/deps/sofa/20231011/c/src/nut80.c deleted file mode 100644 index d839d2f..0000000 --- a/deps/sofa/20231011/c/src/nut80.c +++ /dev/null @@ -1,376 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauNut80(double date1, double date2, double *dpsi, double *deps) -/* -** - - - - - - - - - -** i a u N u t 8 0 -** - - - - - - - - - -** -** Nutation, IAU 1980 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi double nutation in longitude (radians) -** deps double nutation in obliquity (radians) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components are with respect to the ecliptic of -** date. -** -** Called: -** iauAnpm normalize angle into range +/- pi -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.222 (p111). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, el, elp, f, d, om, dp, de, arg, s, c; - int j; - -/* Units of 0.1 milliarcsecond to radians */ - const double U2R = DAS2R / 1e4; - -/* ------------------------------------------------ */ -/* Table of multiples of arguments and coefficients */ -/* ------------------------------------------------ */ - -/* The units for the sine and cosine coefficients are 0.1 mas and */ -/* the same per Julian century */ - - static const struct { - int nl,nlp,nf,nd,nom; /* coefficients of l,l',F,D,Om */ - double sp,spt; /* longitude sine, 1 and t coefficients */ - double ce,cet; /* obliquity cosine, 1 and t coefficients */ - } x[] = { - - /* 1-10 */ - { 0, 0, 0, 0, 1, -171996.0, -174.2, 92025.0, 8.9 }, - { 0, 0, 0, 0, 2, 2062.0, 0.2, -895.0, 0.5 }, - { -2, 0, 2, 0, 1, 46.0, 0.0, -24.0, 0.0 }, - { 2, 0, -2, 0, 0, 11.0, 0.0, 0.0, 0.0 }, - { -2, 0, 2, 0, 2, -3.0, 0.0, 1.0, 0.0 }, - { 1, -1, 0, -1, 0, -3.0, 0.0, 0.0, 0.0 }, - { 0, -2, 2, -2, 1, -2.0, 0.0, 1.0, 0.0 }, - { 2, 0, -2, 0, 1, 1.0, 0.0, 0.0, 0.0 }, - { 0, 0, 2, -2, 2, -13187.0, -1.6, 5736.0, -3.1 }, - { 0, 1, 0, 0, 0, 1426.0, -3.4, 54.0, -0.1 }, - - /* 11-20 */ - { 0, 1, 2, -2, 2, -517.0, 1.2, 224.0, -0.6 }, - { 0, -1, 2, -2, 2, 217.0, -0.5, -95.0, 0.3 }, - { 0, 0, 2, -2, 1, 129.0, 0.1, -70.0, 0.0 }, - { 2, 0, 0, -2, 0, 48.0, 0.0, 1.0, 0.0 }, - { 0, 0, 2, -2, 0, -22.0, 0.0, 0.0, 0.0 }, - { 0, 2, 0, 0, 0, 17.0, -0.1, 0.0, 0.0 }, - { 0, 1, 0, 0, 1, -15.0, 0.0, 9.0, 0.0 }, - { 0, 2, 2, -2, 2, -16.0, 0.1, 7.0, 0.0 }, - { 0, -1, 0, 0, 1, -12.0, 0.0, 6.0, 0.0 }, - { -2, 0, 0, 2, 1, -6.0, 0.0, 3.0, 0.0 }, - - /* 21-30 */ - { 0, -1, 2, -2, 1, -5.0, 0.0, 3.0, 0.0 }, - { 2, 0, 0, -2, 1, 4.0, 0.0, -2.0, 0.0 }, - { 0, 1, 2, -2, 1, 4.0, 0.0, -2.0, 0.0 }, - { 1, 0, 0, -1, 0, -4.0, 0.0, 0.0, 0.0 }, - { 2, 1, 0, -2, 0, 1.0, 0.0, 0.0, 0.0 }, - { 0, 0, -2, 2, 1, 1.0, 0.0, 0.0, 0.0 }, - { 0, 1, -2, 2, 0, -1.0, 0.0, 0.0, 0.0 }, - { 0, 1, 0, 0, 2, 1.0, 0.0, 0.0, 0.0 }, - { -1, 0, 0, 1, 1, 1.0, 0.0, 0.0, 0.0 }, - { 0, 1, 2, -2, 0, -1.0, 0.0, 0.0, 0.0 }, - - /* 31-40 */ - { 0, 0, 2, 0, 2, -2274.0, -0.2, 977.0, -0.5 }, - { 1, 0, 0, 0, 0, 712.0, 0.1, -7.0, 0.0 }, - { 0, 0, 2, 0, 1, -386.0, -0.4, 200.0, 0.0 }, - { 1, 0, 2, 0, 2, -301.0, 0.0, 129.0, -0.1 }, - { 1, 0, 0, -2, 0, -158.0, 0.0, -1.0, 0.0 }, - { -1, 0, 2, 0, 2, 123.0, 0.0, -53.0, 0.0 }, - { 0, 0, 0, 2, 0, 63.0, 0.0, -2.0, 0.0 }, - { 1, 0, 0, 0, 1, 63.0, 0.1, -33.0, 0.0 }, - { -1, 0, 0, 0, 1, -58.0, -0.1, 32.0, 0.0 }, - { -1, 0, 2, 2, 2, -59.0, 0.0, 26.0, 0.0 }, - - /* 41-50 */ - { 1, 0, 2, 0, 1, -51.0, 0.0, 27.0, 0.0 }, - { 0, 0, 2, 2, 2, -38.0, 0.0, 16.0, 0.0 }, - { 2, 0, 0, 0, 0, 29.0, 0.0, -1.0, 0.0 }, - { 1, 0, 2, -2, 2, 29.0, 0.0, -12.0, 0.0 }, - { 2, 0, 2, 0, 2, -31.0, 0.0, 13.0, 0.0 }, - { 0, 0, 2, 0, 0, 26.0, 0.0, -1.0, 0.0 }, - { -1, 0, 2, 0, 1, 21.0, 0.0, -10.0, 0.0 }, - { -1, 0, 0, 2, 1, 16.0, 0.0, -8.0, 0.0 }, - { 1, 0, 0, -2, 1, -13.0, 0.0, 7.0, 0.0 }, - { -1, 0, 2, 2, 1, -10.0, 0.0, 5.0, 0.0 }, - - /* 51-60 */ - { 1, 1, 0, -2, 0, -7.0, 0.0, 0.0, 0.0 }, - { 0, 1, 2, 0, 2, 7.0, 0.0, -3.0, 0.0 }, - { 0, -1, 2, 0, 2, -7.0, 0.0, 3.0, 0.0 }, - { 1, 0, 2, 2, 2, -8.0, 0.0, 3.0, 0.0 }, - { 1, 0, 0, 2, 0, 6.0, 0.0, 0.0, 0.0 }, - { 2, 0, 2, -2, 2, 6.0, 0.0, -3.0, 0.0 }, - { 0, 0, 0, 2, 1, -6.0, 0.0, 3.0, 0.0 }, - { 0, 0, 2, 2, 1, -7.0, 0.0, 3.0, 0.0 }, - { 1, 0, 2, -2, 1, 6.0, 0.0, -3.0, 0.0 }, - { 0, 0, 0, -2, 1, -5.0, 0.0, 3.0, 0.0 }, - - /* 61-70 */ - { 1, -1, 0, 0, 0, 5.0, 0.0, 0.0, 0.0 }, - { 2, 0, 2, 0, 1, -5.0, 0.0, 3.0, 0.0 }, - { 0, 1, 0, -2, 0, -4.0, 0.0, 0.0, 0.0 }, - { 1, 0, -2, 0, 0, 4.0, 0.0, 0.0, 0.0 }, - { 0, 0, 0, 1, 0, -4.0, 0.0, 0.0, 0.0 }, - { 1, 1, 0, 0, 0, -3.0, 0.0, 0.0, 0.0 }, - { 1, 0, 2, 0, 0, 3.0, 0.0, 0.0, 0.0 }, - { 1, -1, 2, 0, 2, -3.0, 0.0, 1.0, 0.0 }, - { -1, -1, 2, 2, 2, -3.0, 0.0, 1.0, 0.0 }, - { -2, 0, 0, 0, 1, -2.0, 0.0, 1.0, 0.0 }, - - /* 71-80 */ - { 3, 0, 2, 0, 2, -3.0, 0.0, 1.0, 0.0 }, - { 0, -1, 2, 2, 2, -3.0, 0.0, 1.0, 0.0 }, - { 1, 1, 2, 0, 2, 2.0, 0.0, -1.0, 0.0 }, - { -1, 0, 2, -2, 1, -2.0, 0.0, 1.0, 0.0 }, - { 2, 0, 0, 0, 1, 2.0, 0.0, -1.0, 0.0 }, - { 1, 0, 0, 0, 2, -2.0, 0.0, 1.0, 0.0 }, - { 3, 0, 0, 0, 0, 2.0, 0.0, 0.0, 0.0 }, - { 0, 0, 2, 1, 2, 2.0, 0.0, -1.0, 0.0 }, - { -1, 0, 0, 0, 2, 1.0, 0.0, -1.0, 0.0 }, - { 1, 0, 0, -4, 0, -1.0, 0.0, 0.0, 0.0 }, - - /* 81-90 */ - { -2, 0, 2, 2, 2, 1.0, 0.0, -1.0, 0.0 }, - { -1, 0, 2, 4, 2, -2.0, 0.0, 1.0, 0.0 }, - { 2, 0, 0, -4, 0, -1.0, 0.0, 0.0, 0.0 }, - { 1, 1, 2, -2, 2, 1.0, 0.0, -1.0, 0.0 }, - { 1, 0, 2, 2, 1, -1.0, 0.0, 1.0, 0.0 }, - { -2, 0, 2, 4, 2, -1.0, 0.0, 1.0, 0.0 }, - { -1, 0, 4, 0, 2, 1.0, 0.0, 0.0, 0.0 }, - { 1, -1, 0, -2, 0, 1.0, 0.0, 0.0, 0.0 }, - { 2, 0, 2, -2, 1, 1.0, 0.0, -1.0, 0.0 }, - { 2, 0, 2, 2, 2, -1.0, 0.0, 0.0, 0.0 }, - - /* 91-100 */ - { 1, 0, 0, 2, 1, -1.0, 0.0, 0.0, 0.0 }, - { 0, 0, 4, -2, 2, 1.0, 0.0, 0.0, 0.0 }, - { 3, 0, 2, -2, 2, 1.0, 0.0, 0.0, 0.0 }, - { 1, 0, 2, -2, 0, -1.0, 0.0, 0.0, 0.0 }, - { 0, 1, 2, 0, 1, 1.0, 0.0, 0.0, 0.0 }, - { -1, -1, 0, 2, 1, 1.0, 0.0, 0.0, 0.0 }, - { 0, 0, -2, 0, 1, -1.0, 0.0, 0.0, 0.0 }, - { 0, 0, 2, -1, 2, -1.0, 0.0, 0.0, 0.0 }, - { 0, 1, 0, 2, 0, -1.0, 0.0, 0.0, 0.0 }, - { 1, 0, -2, -2, 0, -1.0, 0.0, 0.0, 0.0 }, - - /* 101-106 */ - { 0, -1, 2, 0, 1, -1.0, 0.0, 0.0, 0.0 }, - { 1, 1, 0, -2, 1, -1.0, 0.0, 0.0, 0.0 }, - { 1, 0, -2, 2, 0, -1.0, 0.0, 0.0, 0.0 }, - { 2, 0, 0, 2, 0, 1.0, 0.0, 0.0, 0.0 }, - { 0, 0, 2, 4, 2, -1.0, 0.0, 0.0, 0.0 }, - { 0, 1, 0, 1, 0, 1.0, 0.0, 0.0, 0.0 } - }; - -/* Number of terms in the series */ - const int NT = (int) (sizeof x / sizeof x[0]); - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental epoch J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* --------------------- */ -/* Fundamental arguments */ -/* --------------------- */ - -/* Mean longitude of Moon minus mean longitude of Moon's perigee. */ - el = iauAnpm( - (485866.733 + (715922.633 + (31.310 + 0.064 * t) * t) * t) - * DAS2R + fmod(1325.0 * t, 1.0) * D2PI); - -/* Mean longitude of Sun minus mean longitude of Sun's perigee. */ - elp = iauAnpm( - (1287099.804 + (1292581.224 + (-0.577 - 0.012 * t) * t) * t) - * DAS2R + fmod(99.0 * t, 1.0) * D2PI); - -/* Mean longitude of Moon minus mean longitude of Moon's node. */ - f = iauAnpm( - (335778.877 + (295263.137 + (-13.257 + 0.011 * t) * t) * t) - * DAS2R + fmod(1342.0 * t, 1.0) * D2PI); - -/* Mean elongation of Moon from Sun. */ - d = iauAnpm( - (1072261.307 + (1105601.328 + (-6.891 + 0.019 * t) * t) * t) - * DAS2R + fmod(1236.0 * t, 1.0) * D2PI); - -/* Longitude of the mean ascending node of the lunar orbit on the */ -/* ecliptic, measured from the mean equinox of date. */ - om = iauAnpm( - (450160.280 + (-482890.539 + (7.455 + 0.008 * t) * t) * t) - * DAS2R + fmod(-5.0 * t, 1.0) * D2PI); - -/* --------------- */ -/* Nutation series */ -/* --------------- */ - -/* Initialize nutation components. */ - dp = 0.0; - de = 0.0; - -/* Sum the nutation terms, ending with the biggest. */ - for (j = NT-1; j >= 0; j--) { - - /* Form argument for current term. */ - arg = (double)x[j].nl * el - + (double)x[j].nlp * elp - + (double)x[j].nf * f - + (double)x[j].nd * d - + (double)x[j].nom * om; - - /* Accumulate current nutation term. */ - s = x[j].sp + x[j].spt * t; - c = x[j].ce + x[j].cet * t; - if (s != 0.0) dp += s * sin(arg); - if (c != 0.0) de += c * cos(arg); - } - -/* Convert results from 0.1 mas units to radians. */ - *dpsi = dp * U2R; - *deps = de * U2R; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/nutm80.c b/deps/sofa/20231011/c/src/nutm80.c deleted file mode 100644 index 2a2e92b..0000000 --- a/deps/sofa/20231011/c/src/nutm80.c +++ /dev/null @@ -1,167 +0,0 @@ -#include "sofa.h" - -void iauNutm80(double date1, double date2, double rmatn[3][3]) -/* -** - - - - - - - - - - -** i a u N u t m 8 0 -** - - - - - - - - - - -** -** Form the matrix of nutation for a given date, IAU 1980 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TDB date (Note 1) -** -** Returned: -** rmatn double[3][3] nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(true) = rmatn * V(mean), -** where the p-vector V(true) is with respect to the true -** equatorial triad of date and the p-vector V(mean) is with -** respect to the mean equatorial triad of date. -** -** Called: -** iauNut80 nutation, IAU 1980 -** iauObl80 mean obliquity, IAU 1980 -** iauNumat form nutation matrix -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsi, deps, epsa; - - -/* Nutation components and mean obliquity. */ - iauNut80(date1, date2, &dpsi, &deps); - epsa = iauObl80(date1, date2); - -/* Build the rotation matrix. */ - iauNumat(epsa, dpsi, deps, rmatn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/obl06.c b/deps/sofa/20231011/c/src/obl06.c deleted file mode 100644 index 5cf2ea1..0000000 --- a/deps/sofa/20231011/c/src/obl06.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauObl06(double date1, double date2) -/* -** - - - - - - - - - -** i a u O b l 0 6 -** - - - - - - - - - -** -** Mean obliquity of the ecliptic, IAU 2006 precession model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double obliquity of the ecliptic (radians, Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result is the angle between the ecliptic and mean equator of -** date date1+date2. -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, eps0; - - -/* Interval between fundamental date J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Mean obliquity. */ - eps0 = (84381.406 + - (-46.836769 + - ( -0.0001831 + - ( 0.00200340 + - ( -0.000000576 + - ( -0.0000000434) * t) * t) * t) * t) * t) * DAS2R; - - return eps0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/obl80.c b/deps/sofa/20231011/c/src/obl80.c deleted file mode 100644 index 35890fa..0000000 --- a/deps/sofa/20231011/c/src/obl80.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauObl80(double date1, double date2) -/* -** - - - - - - - - - -** i a u O b l 8 0 -** - - - - - - - - - -** -** Mean obliquity of the ecliptic, IAU 1980 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double obliquity of the ecliptic (radians, Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The result is the angle between the ecliptic and mean equator of -** date date1+date2. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Expression 3.222-1 (p114). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, eps0; - - -/* Interval between fundamental epoch J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Mean obliquity of date. */ - eps0 = DAS2R * (84381.448 + - (-46.8150 + - (-0.00059 + - ( 0.001813) * t) * t) * t); - - return eps0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/p06e.c b/deps/sofa/20231011/c/src/p06e.c deleted file mode 100644 index b24929a..0000000 --- a/deps/sofa/20231011/c/src/p06e.c +++ /dev/null @@ -1,379 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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) -/* -** - - - - - - - - -** i a u P 0 6 e -** - - - - - - - - -** -** Precession angles, IAU 2006, equinox based. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical models. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (see Note 2): -** eps0 double epsilon_0 -** psia double psi_A -** oma double omega_A -** bpa double P_A -** bqa double Q_A -** pia double pi_A -** bpia double Pi_A -** epsa double obliquity epsilon_A -** chia double chi_A -** za double z_A -** zetaa double zeta_A -** thetaa double theta_A -** pa double p_A -** gam double F-W angle gamma_J2000 -** phi double F-W angle phi_J2000 -** psi double F-W angle psi_J2000 -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) This function returns the set of equinox based angles for the -** Capitaine et al. "P03" precession theory, adopted by the IAU in -** 2006. The angles are set out in Table 1 of Hilton et al. (2006): -** -** eps0 epsilon_0 obliquity at J2000.0 -** psia psi_A luni-solar precession -** oma omega_A inclination of equator wrt J2000.0 ecliptic -** bpa P_A ecliptic pole x, J2000.0 ecliptic triad -** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad -** pia pi_A angle between moving and J2000.0 ecliptics -** bpia Pi_A longitude of ascending node of the ecliptic -** epsa epsilon_A obliquity of the ecliptic -** chia chi_A planetary precession -** za z_A equatorial precession: -3rd 323 Euler angle -** zetaa zeta_A equatorial precession: -1st 323 Euler angle -** thetaa theta_A equatorial precession: 2nd 323 Euler angle -** pa p_A general precession (n.b. see below) -** gam gamma_J2000 J2000.0 RA difference of ecliptic poles -** phi phi_J2000 J2000.0 codeclination of ecliptic pole -** psi psi_J2000 longitude difference of equator poles, J2000.0 -** -** The returned values are all radians. -** -** Note that the t^5 coefficient in the series for p_A from -** Capitaine et al. (2003) is incorrectly signed in Hilton et al. -** (2006). -** -** 3) Hilton et al. (2006) Table 1 also contains angles that depend on -** models distinct from the P03 precession theory itself, namely the -** IAU 2000A frame bias and nutation. The quoted polynomials are -** used in other SOFA functions: -** -** . iauXy06 contains the polynomial parts of the X and Y series. -** -** . iauS06 contains the polynomial part of the s+XY/2 series. -** -** . iauPfw06 implements the series for the Fukushima-Williams -** angles that are with respect to the GCRS pole (i.e. the variants -** that include frame bias). -** -** 4) The IAU resolution stipulated that the choice of parameterization -** was left to the user, and so an IAU compliant precession -** implementation can be constructed using various combinations of -** the angles returned by the present function. -** -** 5) The parameterization used by SOFA is the version of the Fukushima- -** Williams angles that refers directly to the GCRS pole. These -** angles may be calculated by calling the function iauPfw06. SOFA -** also supports the direct computation of the CIP GCRS X,Y by -** series, available by calling iauXy06. -** -** 6) The agreement between the different parameterizations is at the -** 1 microarcsecond level in the present era. -** -** 7) When constructing a precession formulation that refers to the GCRS -** pole rather than the dynamical pole, it may (depending on the -** choice of angles) be necessary to introduce the frame bias -** explicitly. -** -** 8) It is permissible to re-use the same variable in the returned -** arguments. The quantities are stored in the stated order. -** -** References: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, -** Astron.Astrophys., 412, 567 -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t; - - -/* Interval between fundamental date J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Obliquity at J2000.0. */ - - *eps0 = 84381.406 * DAS2R; - -/* Luni-solar precession. */ - - *psia = ( 5038.481507 + - ( -1.0790069 + - ( -0.00114045 + - ( 0.000132851 + - ( -0.0000000951 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Inclination of mean equator with respect to the J2000.0 ecliptic. */ - - *oma = *eps0 + ( -0.025754 + - ( 0.0512623 + - ( -0.00772503 + - ( -0.000000467 + - ( 0.0000003337 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Ecliptic pole x, J2000.0 ecliptic triad. */ - - *bpa = ( 4.199094 + - ( 0.1939873 + - ( -0.00022466 + - ( -0.000000912 + - ( 0.0000000120 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Ecliptic pole -y, J2000.0 ecliptic triad. */ - - *bqa = ( -46.811015 + - ( 0.0510283 + - ( 0.00052413 + - ( -0.000000646 + - ( -0.0000000172 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Angle between moving and J2000.0 ecliptics. */ - - *pia = ( 46.998973 + - ( -0.0334926 + - ( -0.00012559 + - ( 0.000000113 + - ( -0.0000000022 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Longitude of ascending node of the moving ecliptic. */ - - *bpia = ( 629546.7936 + - ( -867.95758 + - ( 0.157992 + - ( -0.0005371 + - ( -0.00004797 + - ( 0.000000072 ) - * t) * t) * t) * t) * t) * DAS2R; - -/* Mean obliquity of the ecliptic. */ - - *epsa = iauObl06(date1, date2); - -/* Planetary precession. */ - - *chia = ( 10.556403 + - ( -2.3814292 + - ( -0.00121197 + - ( 0.000170663 + - ( -0.0000000560 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Equatorial precession: minus the third of the 323 Euler angles. */ - - *za = ( -2.650545 + - ( 2306.077181 + - ( 1.0927348 + - ( 0.01826837 + - ( -0.000028596 + - ( -0.0000002904 ) - * t) * t) * t) * t) * t) * DAS2R; - -/* Equatorial precession: minus the first of the 323 Euler angles. */ - - *zetaa = ( 2.650545 + - ( 2306.083227 + - ( 0.2988499 + - ( 0.01801828 + - ( -0.000005971 + - ( -0.0000003173 ) - * t) * t) * t) * t) * t) * DAS2R; - -/* Equatorial precession: second of the 323 Euler angles. */ - - *thetaa = ( 2004.191903 + - ( -0.4294934 + - ( -0.04182264 + - ( -0.000007089 + - ( -0.0000001274 ) - * t) * t) * t) * t) * t * DAS2R; - -/* General precession. */ - - *pa = ( 5028.796195 + - ( 1.1054348 + - ( 0.00007964 + - ( -0.000023857 + - ( -0.0000000383 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Fukushima-Williams angles for precession. */ - - *gam = ( 10.556403 + - ( 0.4932044 + - ( -0.00031238 + - ( -0.000002788 + - ( 0.0000000260 ) - * t) * t) * t) * t) * t * DAS2R; - - *phi = *eps0 + ( -46.811015 + - ( 0.0511269 + - ( 0.00053289 + - ( -0.000000440 + - ( -0.0000000176 ) - * t) * t) * t) * t) * t * DAS2R; - - *psi = ( 5038.481507 + - ( 1.5584176 + - ( -0.00018522 + - ( -0.000026452 + - ( -0.0000000148 ) - * t) * t) * t) * t) * t * DAS2R; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/p2pv.c b/deps/sofa/20231011/c/src/p2pv.c deleted file mode 100644 index 6054fed..0000000 --- a/deps/sofa/20231011/c/src/p2pv.c +++ /dev/null @@ -1,133 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauCp(p, pv[0]); - iauZp(pv[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/p2s.c b/deps/sofa/20231011/c/src/p2s.c deleted file mode 100644 index 8a5055d..0000000 --- a/deps/sofa/20231011/c/src/p2s.c +++ /dev/null @@ -1,141 +0,0 @@ -#include "sofa.h" - -void iauP2s(double p[3], double *theta, double *phi, double *r) -/* -** - - - - - - - -** i a u P 2 s -** - - - - - - - -** -** P-vector to spherical polar coordinates. -** -** 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: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** -** Notes: -** -** 1) If P is null, zero theta, phi and r are returned. -** -** 2) At either pole, zero theta is returned. -** -** Called: -** iauC2s p-vector to spherical -** iauPm modulus of p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauC2s(p, theta, phi); - *r = iauPm(p); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pap.c b/deps/sofa/20231011/c/src/pap.c deleted file mode 100644 index 4e56c18..0000000 --- a/deps/sofa/20231011/c/src/pap.c +++ /dev/null @@ -1,191 +0,0 @@ -#include "sofa.h" - -double iauPap(double a[3], double b[3]) -/* -** - - - - - - - -** i a u P a p -** - - - - - - - -** -** Position-angle from two p-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[3] direction of reference point -** b double[3] direction of point whose PA is required -** -** Returned (function value): -** double position angle of b with respect to a (radians) -** -** Notes: -** -** 1) The result is the position angle, in radians, of direction b with -** respect to direction a. It is in the range -pi to +pi. The -** sense is such that if b is a small distance "north" of a the -** position angle is approximately zero, and if b is a small -** distance "east" of a the position angle is approximately +pi/2. -** -** 2) The vectors a and b need not be of unit length. -** -** 3) Zero is returned if the two directions are the same or if either -** vector is null. -** -** 4) If vector a is at a pole, the result is ill-defined. -** -** Called: -** iauPn decompose p-vector into modulus and direction -** iauPm modulus of p-vector -** iauPxp vector product of two p-vectors -** iauPmp p-vector minus p-vector -** iauPdp scalar product of two p-vectors -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double am, au[3], bm, st, ct, xa, ya, za, eta[3], xi[3], a2b[3], pa; - - -/* Modulus and direction of the a vector. */ - iauPn(a, &am, au); - -/* Modulus of the b vector. */ - bm = iauPm(b); - -/* Deal with the case of a null vector. */ - if ((am == 0.0) || (bm == 0.0)) { - st = 0.0; - ct = 1.0; - } else { - - /* The "north" axis tangential from a (arbitrary length). */ - xa = a[0]; - ya = a[1]; - za = a[2]; - eta[0] = -xa * za; - eta[1] = -ya * za; - eta[2] = xa*xa + ya*ya; - - /* The "east" axis tangential from a (same length). */ - iauPxp(eta, au, xi); - - /* The vector from a to b. */ - iauPmp(b, a, a2b); - - /* Resolve into components along the north and east axes. */ - st = iauPdp(a2b, xi); - ct = iauPdp(a2b, eta); - - /* Deal with degenerate cases. */ - if ((st == 0.0) && (ct == 0.0)) ct = 1.0; - } - -/* Position angle. */ - pa = atan2(st, ct); - - return pa; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pas.c b/deps/sofa/20231011/c/src/pas.c deleted file mode 100644 index 6bfb044..0000000 --- a/deps/sofa/20231011/c/src/pas.c +++ /dev/null @@ -1,148 +0,0 @@ -#include "sofa.h" - -double iauPas(double al, double ap, double bl, double bp) -/* -** - - - - - - - -** i a u P a s -** - - - - - - - -** -** Position-angle from spherical coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** al double longitude of point A (e.g. RA) in radians -** ap double latitude of point A (e.g. Dec) in radians -** bl double longitude of point B -** bp double latitude of point B -** -** Returned (function value): -** double position angle of B with respect to A -** -** Notes: -** -** 1) The result is the bearing (position angle), in radians, of point -** B with respect to point A. It is in the range -pi to +pi. The -** sense is such that if B is a small distance "east" of point A, -** the bearing is approximately +pi/2. -** -** 2) Zero is returned if the two points are coincident. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dl, x, y, pa; - - - dl = bl - al; - y = sin(dl) * cos(bp); - x = sin(bp) * cos(ap) - cos(bp) * sin(ap) * cos(dl); - pa = ((x != 0.0) || (y != 0.0)) ? atan2(y, x) : 0.0; - - return pa; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pb06.c b/deps/sofa/20231011/c/src/pb06.c deleted file mode 100644 index e466310..0000000 --- a/deps/sofa/20231011/c/src/pb06.c +++ /dev/null @@ -1,202 +0,0 @@ -#include "sofa.h" - -void iauPb06(double date1, double date2, - double *bzeta, double *bz, double *btheta) -/* -** - - - - - - - - -** i a u P b 0 6 -** - - - - - - - - -** -** This function forms three Euler angles which implement general -** precession from epoch J2000.0, using the IAU 2006 model. Frame -** bias (the offset between ICRS and mean J2000.0) is included. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** bzeta double 1st rotation: radians cw around z -** bz double 3rd rotation: radians cw around z -** btheta double 2nd rotation: radians ccw around y -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The traditional accumulated precession angles zeta_A, z_A, -** theta_A cannot be obtained in the usual way, namely through -** polynomial expressions, because of the frame bias. The latter -** means that two of the angles undergo rapid changes near this -** date. They are instead the results of decomposing the -** precession-bias matrix obtained by using the Fukushima-Williams -** method, which does not suffer from the problem. The -** decomposition returns values which can be used in the -** conventional formulation and which include frame bias. -** -** 3) The three angles are returned in the conventional order, which -** is not the same as the order of the corresponding Euler -** rotations. The precession-bias matrix is -** R_3(-z) x R_2(+theta) x R_3(-zeta). -** -** 4) Should zeta_A, z_A, theta_A angles be required that do not -** contain frame bias, they are available by calling the SOFA -** function iauP06e. -** -** Called: -** iauPmat06 PB matrix, IAU 2006 -** iauRz rotate around Z-axis -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r[3][3], y, x; - - -/* Precession matrix via Fukushima-Williams angles. */ - iauPmat06(date1, date2, r); - -/* Solve for z, choosing the +/- pi alternative. */ - y = r[1][2]; - x = -r[0][2]; - if ( x < 0.0 ) { - y = -y; - x = -x; - } - *bz = ( x != 0.0 || y != 0.0 ) ? - atan2(y,x) : 0.0; - -/* Derotate it out of the matrix. */ - iauRz ( *bz, r ); - -/* Solve for the remaining two angles. */ - y = r[0][2]; - x = r[2][2]; - *btheta = ( x != 0.0 || y != 0.0 ) ? - atan2(y,x) : 0.0; - - y = -r[1][0]; - x = r[1][1]; - *bzeta = ( x != 0.0 || y != 0.0 ) ? - atan2(y,x) : 0.0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pdp.c b/deps/sofa/20231011/c/src/pdp.c deleted file mode 100644 index 79c08a0..0000000 --- a/deps/sofa/20231011/c/src/pdp.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "sofa.h" - -double iauPdp(double a[3], double b[3]) -/* -** - - - - - - - -** i a u P d p -** - - - - - - - -** -** p-vector inner (=scalar=dot) product. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned (function value): -** double a . b -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double w; - - - w = a[0] * b[0] - + a[1] * b[1] - + a[2] * b[2]; - - return w; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pfw06.c b/deps/sofa/20231011/c/src/pfw06.c deleted file mode 100644 index cfc5c5e..0000000 --- a/deps/sofa/20231011/c/src/pfw06.c +++ /dev/null @@ -1,216 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauPfw06(double date1, double date2, - double *gamb, double *phib, double *psib, double *epsa) -/* -** - - - - - - - - - -** i a u P f w 0 6 -** - - - - - - - - - -** -** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** gamb double F-W angle gamma_bar (radians) -** phib double F-W angle phi_bar (radians) -** psib double F-W angle psi_bar (radians) -** epsa double F-W angle epsilon_A (radians) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) Naming the following points: -** -** e = J2000.0 ecliptic pole, -** p = GCRS pole, -** E = mean ecliptic pole of date, -** and P = mean pole of date, -** -** the four Fukushima-Williams angles are as follows: -** -** gamb = gamma_bar = epE -** phib = phi_bar = pE -** psib = psi_bar = pEP -** epsa = epsilon_A = EP -** -** 3) The matrix representing the combined effects of frame bias and -** precession is: -** -** PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb) -** -** 4) The matrix representing the combined effects of frame bias, -** precession and nutation is simply: -** -** NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb) -** -** where dP and dE are the nutation components with respect to the -** ecliptic of date. -** -** Reference: -** -** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 -** -** Called: -** iauObl06 mean obliquity, IAU 2006 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t; - - -/* Interval between fundamental date J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* P03 bias+precession angles. */ - *gamb = ( -0.052928 + - ( 10.556378 + - ( 0.4932044 + - ( -0.00031238 + - ( -0.000002788 + - ( 0.0000000260 ) - * t) * t) * t) * t) * t) * DAS2R; - *phib = ( 84381.412819 + - ( -46.811016 + - ( 0.0511268 + - ( 0.00053289 + - ( -0.000000440 + - ( -0.0000000176 ) - * t) * t) * t) * t) * t) * DAS2R; - *psib = ( -0.041775 + - ( 5038.481484 + - ( 1.5584175 + - ( -0.00018522 + - ( -0.000026452 + - ( -0.0000000148 ) - * t) * t) * t) * t) * t) * DAS2R; - *epsa = iauObl06(date1, date2); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/plan94.c b/deps/sofa/20231011/c/src/plan94.c deleted file mode 100644 index ca7e059..0000000 --- a/deps/sofa/20231011/c/src/plan94.c +++ /dev/null @@ -1,569 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauPlan94(double date1, double date2, int np, double pv[2][3]) -/* -** - - - - - - - - - - -** i a u P l a n 9 4 -** - - - - - - - - - - -** -** Approximate heliocentric position and velocity of a nominated -** planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or -** Neptune (but not the Earth itself). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** n.b. Not IAU-endorsed and without canonical status. -** -** Given: -** date1 double TDB date part A (Note 1) -** date2 double TDB date part B (Note 1) -** np int planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, -** 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) -** -** Returned (argument): -** pv double[2][3] planet p,v (heliocentric, J2000.0, au,au/d) -** -** Returned (function value): -** int status: -1 = illegal NP (outside 1-8) -** 0 = OK -** +1 = warning: year outside 1000-3000 -** +2 = warning: failed to converge -** -** Notes: -** -** 1) The date date1+date2 is in the TDB time scale (in practice TT can -** be used) and is a Julian Date, apportioned in any convenient way -** between the two arguments. For example, JD(TDB)=2450123.7 could -** be expressed in any of these ways, among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. The limited -** accuracy of the present algorithm is such that any of the methods -** is satisfactory. -** -** 2) If an np value outside the range 1-8 is supplied, an error status -** (function value -1) is returned and the pv vector set to zeroes. -** -** 3) For np=3 the result is for the Earth-Moon barycenter (EMB). To -** obtain the heliocentric position and velocity of the Earth, use -** instead the SOFA function iauEpv00. -** -** 4) On successful return, the array pv contains the following: -** -** pv[0][0] x } -** pv[0][1] y } heliocentric position, au -** pv[0][2] z } -** -** pv[1][0] xdot } -** pv[1][1] ydot } heliocentric velocity, au/d -** pv[1][2] zdot } -** -** The reference frame is equatorial and is with respect to the -** mean equator and equinox of epoch J2000.0. -** -** 5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, -** M. Chapront-Touze, G. Francou and J. Laskar (Bureau des -** Longitudes, Paris, France). From comparisons with JPL -** ephemeris DE102, they quote the following maximum errors -** over the interval 1800-2050: -** -** L (arcsec) B (arcsec) R (km) -** -** Mercury 4 1 300 -** Venus 5 1 800 -** EMB 6 1 1000 -** Mars 17 1 7700 -** Jupiter 71 5 76000 -** Saturn 81 13 267000 -** Uranus 86 7 712000 -** Neptune 11 1 253000 -** -** Over the interval 1000-3000, they report that the accuracy is no -** worse than 1.5 times that over 1800-2050. Outside 1000-3000 the -** accuracy declines. -** -** Comparisons of the present function with the JPL DE200 ephemeris -** give the following RMS errors over the interval 1960-2025: -** -** position (km) velocity (m/s) -** -** Mercury 334 0.437 -** Venus 1060 0.855 -** EMB 2010 0.815 -** Mars 7690 1.98 -** Jupiter 71700 7.70 -** Saturn 199000 19.4 -** Uranus 564000 16.4 -** Neptune 158000 14.4 -** -** Comparisons against DE200 over the interval 1800-2100 gave the -** following maximum absolute differences (the results using -** DE406 were essentially the same): -** -** L (arcsec) B (arcsec) R (km) Rdot (m/s) -** -** Mercury 7 1 500 0.7 -** Venus 7 1 1100 0.9 -** EMB 9 1 1300 1.0 -** Mars 26 1 9000 2.5 -** Jupiter 78 6 82000 8.2 -** Saturn 87 14 263000 24.6 -** Uranus 86 7 661000 27.4 -** Neptune 11 2 248000 21.4 -** -** 6) The present SOFA re-implementation of the original Simon et al. -** Fortran code differs from the original in the following respects: -** -** * C instead of Fortran. -** -** * The date is supplied in two parts. -** -** * The result is returned only in equatorial Cartesian form; -** the ecliptic longitude, latitude and radius vector are not -** returned. -** -** * The result is in the J2000.0 equatorial frame, not ecliptic. -** -** * More is done in-line: there are fewer calls to subroutines. -** -** * Different error/warning status values are used. -** -** * A different Kepler's-equation-solver is used (avoiding -** use of double precision complex). -** -** * Polynomials in t are nested to minimize rounding errors. -** -** * Explicit double constants are used to avoid mixed-mode -** expressions. -** -** None of the above changes affects the result significantly. -** -** 7) The returned status indicates the most serious condition -** encountered during execution of the function. Illegal np is -** considered the most serious, overriding failure to converge, -** which in turn takes precedence over the remote date warning. -** -** Called: -** iauAnpm normalize angle into range +/- pi -** -** Reference: Simon, J.L, Bretagnon, P., Chapront, J., -** Chapront-Touze, M., Francou, G., and Laskar, J., -** Astron.Astrophys., 282, 663 (1994). -** -** This revision: 2023 May 5 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Gaussian constant */ - static const double GK = 0.017202098950; - -/* Sin and cos of J2000.0 mean obliquity (IAU 1976) */ - static const double SINEPS = 0.3977771559319137; - static const double COSEPS = 0.9174820620691818; - -/* Maximum number of iterations allowed to solve Kepler's equation */ - static const int KMAX = 10; - - int jstat, i, k; - double t, da, dl, de, dp, di, dom, dmu, arga, argl, am, - ae, dae, ae2, at, r, v, si2, xq, xp, tl, xsw, - xcw, xm2, xf, ci2, xms, xmc, xpxq2, x, y, z; - -/* Planetary inverse masses */ - static const double amas[] = { 6023600.0, /* Mercury */ - 408523.5, /* Venus */ - 328900.5, /* EMB */ - 3098710.0, /* Mars */ - 1047.355, /* Jupiter */ - 3498.5, /* Saturn */ - 22869.0, /* Uranus */ - 19314.0 }; /* Neptune */ - -/* -** Tables giving the mean Keplerian elements, limited to t^2 terms: -** -** a semi-major axis (au) -** dlm mean longitude (degree and arcsecond) -** e eccentricity -** pi longitude of the perihelion (degree and arcsecond) -** dinc inclination (degree and arcsecond) -** omega longitude of the ascending node (degree and arcsecond) -*/ - - static const double a[][3] = { - { 0.3870983098, 0.0, 0.0 }, /* Mercury */ - { 0.7233298200, 0.0, 0.0 }, /* Venus */ - { 1.0000010178, 0.0, 0.0 }, /* EMB */ - { 1.5236793419, 3e-10, 0.0 }, /* Mars */ - { 5.2026032092, 19132e-10, -39e-10 }, /* Jupiter */ - { 9.5549091915, -0.0000213896, 444e-10 }, /* Saturn */ - { 19.2184460618, -3716e-10, 979e-10 }, /* Uranus */ - { 30.1103868694, -16635e-10, 686e-10 } /* Neptune */ - }; - - static const double dlm[][3] = { - { 252.25090552, 5381016286.88982, -1.92789 }, - { 181.97980085, 2106641364.33548, 0.59381 }, - { 100.46645683, 1295977422.83429, -2.04411 }, - { 355.43299958, 689050774.93988, 0.94264 }, - { 34.35151874, 109256603.77991, -30.60378 }, - { 50.07744430, 43996098.55732, 75.61614 }, - { 314.05500511, 15424811.93933, -1.75083 }, - { 304.34866548, 7865503.20744, 0.21103 } - }; - - static const double e[][3] = { - { 0.2056317526, 0.0002040653, -28349e-10 }, - { 0.0067719164, -0.0004776521, 98127e-10 }, - { 0.0167086342, -0.0004203654, -0.0000126734 }, - { 0.0934006477, 0.0009048438, -80641e-10 }, - { 0.0484979255, 0.0016322542, -0.0000471366 }, - { 0.0555481426, -0.0034664062, -0.0000643639 }, - { 0.0463812221, -0.0002729293, 0.0000078913 }, - { 0.0094557470, 0.0000603263, 0.0 } - }; - - static const double pi[][3] = { - { 77.45611904, 5719.11590, -4.83016 }, - { 131.56370300, 175.48640, -498.48184 }, - { 102.93734808, 11612.35290, 53.27577 }, - { 336.06023395, 15980.45908, -62.32800 }, - { 14.33120687, 7758.75163, 259.95938 }, - { 93.05723748, 20395.49439, 190.25952 }, - { 173.00529106, 3215.56238, -34.09288 }, - { 48.12027554, 1050.71912, 27.39717 } - }; - - static const double dinc[][3] = { - { 7.00498625, -214.25629, 0.28977 }, - { 3.39466189, -30.84437, -11.67836 }, - { 0.0, 469.97289, -3.35053 }, - { 1.84972648, -293.31722, -8.11830 }, - { 1.30326698, -71.55890, 11.95297 }, - { 2.48887878, 91.85195, -17.66225 }, - { 0.77319689, -60.72723, 1.25759 }, - { 1.76995259, 8.12333, 0.08135 } - }; - - static const double omega[][3] = { - { 48.33089304, -4515.21727, -31.79892 }, - { 76.67992019, -10008.48154, -51.32614 }, - { 174.87317577, -8679.27034, 15.34191 }, - { 49.55809321, -10620.90088, -230.57416 }, - { 100.46440702, 6362.03561, 326.52178 }, - { 113.66550252, -9240.19942, -66.23743 }, - { 74.00595701, 2669.15033, 145.93964 }, - { 131.78405702, -221.94322, -0.78728 } - }; - -/* Tables for trigonometric terms to be added to the mean elements of */ -/* the semi-major axes */ - - static const double kp[][9] = { - { 69613, 75645, 88306, 59899, 15746, 71087, 142173, 3086, 0 }, - { 21863, 32794, 26934, 10931, 26250, 43725, 53867, 28939, 0 }, - { 16002, 21863, 32004, 10931, 14529, 16368, 15318, 32794, 0 }, - { 6345, 7818, 15636, 7077, 8184, 14163, 1107, 4872, 0 }, - { 1760, 1454, 1167, 880, 287, 2640, 19, 2047, 1454 }, - { 574, 0, 880, 287, 19, 1760, 1167, 306, 574 }, - { 204, 0, 177, 1265, 4, 385, 200, 208, 204 }, - { 0, 102, 106, 4, 98, 1367, 487, 204, 0 } - }; - - static const double ca[][9] = { - { 4, -13, 11, -9, -9, -3, -1, 4, 0 }, - { -156, 59, -42, 6, 19, -20, -10, -12, 0 }, - { 64, -152, 62, -8, 32, -41, 19, -11, 0 }, - { 124, 621, -145, 208, 54, -57, 30, 15, 0 }, - { -23437, -2634, 6601, 6259, -1507,-1821, 2620, -2115, -1489 }, - { 62911,-119919, 79336,17814,-24241,12068, 8306, -4893, 8902 }, - { 389061,-262125,-44088, 8387,-22976,-2093, -615, -9720, 6633 }, - { -412235,-157046,-31430,37817, -9740, -13, -7449, 9644, 0 } - }; - - static const double sa[][9] = { - { -29, -1, 9, 6, -6, 5, 4, 0, 0 }, - { -48, -125, -26, -37, 18, -13, -20, -2, 0 }, - { -150, -46, 68, 54, 14, 24, -28, 22, 0 }, - { -621, 532, -694, -20, 192, -94, 71, -73, 0 }, - { -14614,-19828, -5869, 1881, -4372, -2255, 782, 930, 913 }, - { 139737, 0, 24667, 51123, -5102, 7429, -4095, -1976, -9566 }, - { -138081, 0, 37205,-49039,-41901,-33872,-27037,-12474, 18797 }, - { 0, 28492,133236, 69654, 52322,-49577,-26430, -3593, 0 } - }; - -/* Tables giving the trigonometric terms to be added to the mean */ -/* elements of the mean longitudes */ - - static const double kq[][10] = { - { 3086,15746,69613,59899,75645,88306, 12661, 2658, 0, 0 }, - { 21863,32794,10931, 73, 4387,26934, 1473, 2157, 0, 0 }, - { 10,16002,21863,10931, 1473,32004, 4387, 73, 0, 0 }, - { 10, 6345, 7818, 1107,15636, 7077, 8184, 532, 10, 0 }, - { 19, 1760, 1454, 287, 1167, 880, 574, 2640, 19, 1454 }, - { 19, 574, 287, 306, 1760, 12, 31, 38, 19, 574 }, - { 4, 204, 177, 8, 31, 200, 1265, 102, 4, 204 }, - { 4, 102, 106, 8, 98, 1367, 487, 204, 4, 102 } - }; - - static const double cl[][10] = { - { 21, -95, -157, 41, -5, 42, 23, 30, 0, 0 }, - { -160, -313, -235, 60, -74, -76, -27, 34, 0, 0 }, - { -325, -322, -79, 232, -52, 97, 55, -41, 0, 0 }, - { 2268, -979, 802, 602, -668, -33, 345, 201, -55, 0 }, - { 7610, -4997,-7689,-5841,-2617, 1115,-748,-607, 6074, 354 }, - { -18549, 30125,20012, -730, 824, 23,1289,-352, -14767, -2062 }, - { -135245,-14594, 4197,-4030,-5630,-2898,2540,-306, 2939, 1986 }, - { 89948, 2103, 8963, 2695, 3682, 1648, 866,-154, -1963, -283 } - }; - - static const double sl[][10] = { - { -342, 136, -23, 62, 66, -52, -33, 17, 0, 0 }, - { 524, -149, -35, 117, 151, 122, -71, -62, 0, 0 }, - { -105, -137, 258, 35, -116, -88,-112, -80, 0, 0 }, - { 854, -205, -936, -240, 140, -341, -97, -232, 536, 0 }, - { -56980, 8016, 1012, 1448,-3024,-3710, 318, 503, 3767, 577 }, - { 138606,-13478,-4964, 1441,-1319,-1482, 427, 1236, -9167, -1918 }, - { 71234,-41116, 5334,-4935,-1848, 66, 434, -1748, 3780, -701 }, - { -47645, 11647, 2166, 3194, 679, 0,-244, -419, -2531, 48 } - }; - -/* ------------------------------------------------------------------ */ - -/* Validate the planet number. */ - if ((np < 1) || (np > 8)) { - jstat = -1; - - /* Reset the result in case of failure. */ - for (k = 0; k < 2; k++) { - for (i = 0; i < 3; i++) { - pv[k][i] = 0.0; - } - } - - } else { - - /* Decrement the planet number to start at zero. */ - np--; - - /* Time: Julian millennia since J2000.0. */ - t = ((date1 - DJ00) + date2) / DJM; - - /* OK status unless remote date. */ - jstat = fabs(t) <= 1.0 ? 0 : 1; - - /* Compute the mean elements. */ - da = a[np][0] + - (a[np][1] + - a[np][2] * t) * t; - dl = (3600.0 * dlm[np][0] + - (dlm[np][1] + - dlm[np][2] * t) * t) * DAS2R; - de = e[np][0] + - ( e[np][1] + - e[np][2] * t) * t; - dp = iauAnpm((3600.0 * pi[np][0] + - (pi[np][1] + - pi[np][2] * t) * t) * DAS2R); - di = (3600.0 * dinc[np][0] + - (dinc[np][1] + - dinc[np][2] * t) * t) * DAS2R; - dom = iauAnpm((3600.0 * omega[np][0] + - (omega[np][1] + - omega[np][2] * t) * t) * DAS2R); - - /* Apply the trigonometric terms. */ - dmu = 0.35953620 * t; - for (k = 0; k < 8; k++) { - arga = kp[np][k] * dmu; - argl = kq[np][k] * dmu; - da += (ca[np][k] * cos(arga) + - sa[np][k] * sin(arga)) * 1e-7; - dl += (cl[np][k] * cos(argl) + - sl[np][k] * sin(argl)) * 1e-7; - } - arga = kp[np][8] * dmu; - da += t * (ca[np][8] * cos(arga) + - sa[np][8] * sin(arga)) * 1e-7; - for (k = 8; k < 10; k++) { - argl = kq[np][k] * dmu; - dl += t * (cl[np][k] * cos(argl) + - sl[np][k] * sin(argl)) * 1e-7; - } - dl = fmod(dl, D2PI); - - /* Iterative soln. of Kepler's equation to get eccentric anomaly. */ - am = dl - dp; - ae = am + de * sin(am); - k = 0; - dae = 1.0; - while (k < KMAX && fabs(dae) > 1e-12) { - dae = (am - ae + de * sin(ae)) / (1.0 - de * cos(ae)); - ae += dae; - k++; - if (k == KMAX-1) jstat = 2; - } - - /* True anomaly. */ - ae2 = ae / 2.0; - at = 2.0 * atan2(sqrt((1.0 + de) / (1.0 - de)) * sin(ae2), - cos(ae2)); - - /* Distance (au) and speed (radians per day). */ - r = da * (1.0 - de * cos(ae)); - v = GK * sqrt((1.0 + 1.0 / amas[np]) / (da * da * da)); - - si2 = sin(di / 2.0); - xq = si2 * cos(dom); - xp = si2 * sin(dom); - tl = at + dp; - xsw = sin(tl); - xcw = cos(tl); - xm2 = 2.0 * (xp * xcw - xq * xsw); - xf = da / sqrt(1 - de * de); - ci2 = cos(di / 2.0); - xms = (de * sin(dp) + xsw) * xf; - xmc = (de * cos(dp) + xcw) * xf; - xpxq2 = 2 * xp * xq; - - /* Position (J2000.0 ecliptic x,y,z in au). */ - x = r * (xcw - xm2 * xp); - y = r * (xsw + xm2 * xq); - z = r * (-xm2 * ci2); - - /* Rotate to equatorial. */ - pv[0][0] = x; - pv[0][1] = y * COSEPS - z * SINEPS; - pv[0][2] = y * SINEPS + z * COSEPS; - - /* Velocity (J2000.0 ecliptic xdot,ydot,zdot in au/d). */ - x = v * (( -1.0 + 2.0 * xp * xp) * xms + xpxq2 * xmc); - y = v * (( 1.0 - 2.0 * xq * xq) * xmc - xpxq2 * xms); - z = v * (2.0 * ci2 * (xp * xms + xq * xmc)); - - /* Rotate to equatorial. */ - pv[1][0] = x; - pv[1][1] = y * COSEPS - z * SINEPS; - pv[1][2] = y * SINEPS + z * COSEPS; - - } - -/* Return the status. */ - return jstat; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pm.c b/deps/sofa/20231011/c/src/pm.c deleted file mode 100644 index 141b4c0..0000000 --- a/deps/sofa/20231011/c/src/pm.c +++ /dev/null @@ -1,128 +0,0 @@ -#include "sofa.h" - -double iauPm(double p[3]) -/* -** - - - - - - -** i a u P m -** - - - - - - -** -** Modulus of p-vector. -** -** 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 (function value): -** double modulus -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - return sqrt( p[0]*p[0] + p[1]*p[1] + p[2]*p[2] ); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pmat00.c b/deps/sofa/20231011/c/src/pmat00.c deleted file mode 100644 index 197f9c8..0000000 --- a/deps/sofa/20231011/c/src/pmat00.c +++ /dev/null @@ -1,168 +0,0 @@ -#include "sofa.h" - -void iauPmat00(double date1, double date2, double rbp[3][3]) -/* -** - - - - - - - - - - -** i a u P m a t 0 0 -** - - - - - - - - - - -** -** Precession matrix (including frame bias) from GCRS to a specified -** date, IAU 2000 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbp double[3][3] bias-precession matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where -** the p-vector V(GCRS) is with respect to the Geocentric Celestial -** Reference System (IAU, 2000) and the p-vector V(date) is with -** respect to the mean equatorial triad of the given date. -** -** Called: -** iauBp00 frame bias and precession matrices, IAU 2000 -** -** Reference: -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rb[3][3], rp[3][3]; - - -/* Obtain the required matrix (discarding others). */ - iauBp00(date1, date2, rb, rp, rbp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pmat06.c b/deps/sofa/20231011/c/src/pmat06.c deleted file mode 100644 index d8a0938..0000000 --- a/deps/sofa/20231011/c/src/pmat06.c +++ /dev/null @@ -1,176 +0,0 @@ -#include "sofa.h" - -void iauPmat06(double date1, double date2, double rbp[3][3]) -/* -** - - - - - - - - - - -** i a u P m a t 0 6 -** - - - - - - - - - - -** -** Precession matrix (including frame bias) from GCRS to a specified -** date, IAU 2006 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbp double[3][3] bias-precession matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where -** the p-vector V(GCRS) is with respect to the Geocentric Celestial -** Reference System (IAU, 2000) and the p-vector V(date) is with -** respect to the mean equatorial triad of the given date. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gamb, phib, psib, epsa; - - -/* Bias-precession Fukushima-Williams angles. */ - iauPfw06(date1, date2, &gamb, &phib, &psib, &epsa); - -/* Form the matrix. */ - iauFw2m(gamb, phib, psib, epsa, rbp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pmat76.c b/deps/sofa/20231011/c/src/pmat76.c deleted file mode 100644 index dab53db..0000000 --- a/deps/sofa/20231011/c/src/pmat76.c +++ /dev/null @@ -1,192 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauPmat76(double date1, double date2, double rmatp[3][3]) -/* -** - - - - - - - - - - -** i a u P m a t 7 6 -** - - - - - - - - - - -** -** Precession matrix from J2000.0 to a specified date, IAU 1976 model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double ending date, TT (Note 1) -** -** Returned: -** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2 -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = RMATP * V(J2000), -** where the p-vector V(J2000) is with respect to the mean -** equatorial triad of epoch J2000.0 and the p-vector V(date) -** is with respect to the mean equatorial triad of the given -** date. -** -** 3) Though the matrix method itself is rigorous, the precession -** angles are expressed through canonical polynomials which are -** valid only for a limited time span. In addition, the IAU 1976 -** precession rate is known to be imperfect. The absolute accuracy -** of the present formulation is better than 0.1 arcsec from -** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, -** and remains below 3 arcsec for the whole of the period -** 500BC to 3000AD. The errors exceed 10 arcsec outside the -** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to -** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD. -** -** Called: -** iauPrec76 accumulated precession angles, IAU 1976 -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauCr copy r-matrix -** -** References: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. -** equations (6) & (7), p283. -** -** Kaplan,G.H., 1981. USNO circular no. 163, pA2. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double zeta, z, theta, wmat[3][3]; - - -/* Precession Euler angles, J2000.0 to specified date. */ - iauPrec76(DJ00, 0.0, date1, date2, &zeta, &z, &theta); - -/* Form the rotation matrix. */ - iauIr( wmat); - iauRz( -zeta, wmat); - iauRy( theta, wmat); - iauRz( -z, wmat); - iauCr( wmat, rmatp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pmp.c b/deps/sofa/20231011/c/src/pmp.c deleted file mode 100644 index 280d02d..0000000 --- a/deps/sofa/20231011/c/src/pmp.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "sofa.h" - -void iauPmp(double a[3], double b[3], double amb[3]) -/* -** - - - - - - - -** i a u P m p -** - - - - - - - -** -** P-vector subtraction. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** amb double[3] a - b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - amb[0] = a[0] - b[0]; - amb[1] = a[1] - b[1]; - amb[2] = a[2] - b[2]; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pmpx.c b/deps/sofa/20231011/c/src/pmpx.c deleted file mode 100644 index 1cecb23..0000000 --- a/deps/sofa/20231011/c/src/pmpx.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauPmpx(double rc, double dc, double pr, double pd, - double px, double rv, double pmt, double pob[3], - double pco[3]) -/* -** - - - - - - - - -** i a u P m p x -** - - - - - - - - -** -** Proper motion and parallax. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** rc,dc double ICRS RA,Dec at catalog epoch (radians) -** pr double RA proper motion (radians/year, Note 1) -** pd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, +ve if receding) -** pmt double proper motion time interval (SSB, Julian years) -** pob double[3] SSB to observer vector (au) -** -** Returned: -** pco double[3] coordinate direction (BCRS unit vector) -** -** Notes: -** -** 1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. -** -** 2) The proper motion time interval is for when the starlight -** reaches the solar system barycenter. -** -** 3) To avoid the need for iteration, the Roemer effect (i.e. the -** small annual modulation of the proper motion coming from the -** changing light time) is applied approximately, using the -** direction of the star at the catalog epoch. -** -** References: -** -** 1984 Astronomical Almanac, pp B39-B41. -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013), Section 7.2. -** -** Called: -** iauPdp scalar product of two p-vectors -** iauPn decompose p-vector into modulus and direction -** -** This revision: 2021 April 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Km/s to au/year */ - const double VF = DAYSEC*DJM/DAU; - -/* Light time for 1 au, Julian years */ - const double AULTY = AULT/DAYSEC/DJY; - - int i; - double sr, cr, sd, cd, x, y, z, p[3], dt, pxr, w, pdz, pm[3]; - - -/* Spherical coordinates to unit vector (and useful functions). */ - sr = sin(rc); - cr = cos(rc); - sd = sin(dc); - cd = cos(dc); - p[0] = x = cr*cd; - p[1] = y = sr*cd; - p[2] = z = sd; - -/* Proper motion time interval (y) including Roemer effect. */ - dt = pmt + iauPdp(p,pob)*AULTY; - -/* Space motion (radians per year). */ - pxr = px * DAS2R; - w = VF * rv * pxr; - pdz = pd * z; - pm[0] = - pr*y - pdz*cr + w*x; - pm[1] = pr*x - pdz*sr + w*y; - pm[2] = pd*cd + w*z; - -/* Coordinate direction of star (unit vector, BCRS). */ - for (i = 0; i < 3; i++) { - p[i] += dt*pm[i] - pxr*pob[i]; - } - iauPn(p, &w, pco); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pmsafe.c b/deps/sofa/20231011/c/src/pmsafe.c deleted file mode 100644 index 46eeb85..0000000 --- a/deps/sofa/20231011/c/src/pmsafe.c +++ /dev/null @@ -1,247 +0,0 @@ -#include "sofa.h" - -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) -/* -** - - - - - - - - - - -** i a u P m s a f e -** - - - - - - - - - - -** -** Star proper motion: update star catalog data for space motion, with -** special handling to handle the zero parallax case. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ra1 double right ascension (radians), before -** dec1 double declination (radians), before -** pmr1 double RA proper motion (radians/year), before -** pmd1 double Dec proper motion (radians/year), before -** px1 double parallax (arcseconds), before -** rv1 double radial velocity (km/s, +ve = receding), before -** ep1a double "before" epoch, part A (Note 1) -** ep1b double "before" epoch, part B (Note 1) -** ep2a double "after" epoch, part A (Note 1) -** ep2b double "after" epoch, part B (Note 1) -** -** Returned: -** ra2 double right ascension (radians), after -** dec2 double declination (radians), after -** pmr2 double RA proper motion (radians/year), after -** pmd2 double Dec proper motion (radians/year), after -** px2 double parallax (arcseconds), after -** rv2 double radial velocity (km/s, +ve = receding), after -** -** Returned (function value): -** int status: -** -1 = system error (should not occur) -** 0 = no warnings or errors -** 1 = distance overridden (Note 6) -** 2 = excessive velocity (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above warnings -** -** Notes: -** -** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are -** Julian Dates, apportioned in any convenient way between the two -** parts (A and B). For example, JD(TDB)=2450123.7 could be -** expressed in any of these ways, among others: -** -** epNa epNb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. -** -** 2) In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per TDB -** Julian year. -** -** The parallax and radial velocity are in the same frame. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, is -** assumed. -** -** 6) An extremely small (or zero or negative) parallax is overridden -** to ensure that the object is at a finite but very large distance, -** but not so large that the proper motion is equivalent to a large -** but safe speed (about 0.1c using the chosen constant). A warning -** status of 1 is added to the status if this action has been taken. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX in the function iauStarpv), it is arbitrarily set -** to zero. When this action occurs, 2 is added to the status. -** -** 8) The relativistic adjustment carried out in the iauStarpv function -** involves an iterative calculation. If the process fails to -** converge within a set number of iterations, 4 is added to the -** status. -** -** Called: -** iauSeps angle between two points -** iauStarpm update star catalog data for space motion -** -** This revision: 2023 April 7 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Minimum allowed parallax (arcsec) */ - const double PXMIN = 5e-7; - -/* Factor giving maximum allowed transverse speed of about 1% c */ - const double F = 326.0; - - int jpx, j; - double pm, px1a; - - -/* Proper motion in one year (radians). */ - pm = iauSeps(ra1, dec1, ra1+pmr1, dec1+pmd1); - -/* Override the parallax to reduce the chances of a warning status. */ - jpx = 0; - px1a = px1; - pm *= F; - if (px1a < pm) {jpx = 1; px1a = pm;} - if (px1a < PXMIN) {jpx = 1; px1a = PXMIN;} - -/* Carry out the transformation using the modified parallax. */ - j = iauStarpm(ra1, dec1, pmr1, pmd1, px1a, rv1, - ep1a, ep1b, ep2a, ep2b, - ra2, dec2, pmr2, pmd2, px2, rv2); - -/* Revise and return the status. */ - if ( !(j%2) ) j += jpx; - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pn.c b/deps/sofa/20231011/c/src/pn.c deleted file mode 100644 index 9e03614..0000000 --- a/deps/sofa/20231011/c/src/pn.c +++ /dev/null @@ -1,159 +0,0 @@ -#include "sofa.h" - -void iauPn(double p[3], double *r, double u[3]) -/* -** - - - - - - -** i a u P n -** - - - - - - -** -** Convert a p-vector into modulus and unit vector. -** -** 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: -** r double modulus -** u double[3] unit vector -** -** Notes: -** -** 1) If p is null, the result is null. Otherwise the result is a unit -** vector. -** -** 2) It is permissible to re-use the same array for any of the -** arguments. -** -** Called: -** iauPm modulus of p-vector -** iauZp zero p-vector -** iauSxp multiply p-vector by scalar -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double w; - - -/* Obtain the modulus and test for zero. */ - w = iauPm(p); - if (w == 0.0) { - - /* Null vector. */ - iauZp(u); - - } else { - - /* Unit vector. */ - iauSxp(1.0/w, p, u); - } - -/* Return the modulus. */ - *r = w; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pn00.c b/deps/sofa/20231011/c/src/pn00.c deleted file mode 100644 index 088458c..0000000 --- a/deps/sofa/20231011/c/src/pn00.c +++ /dev/null @@ -1,227 +0,0 @@ -#include "sofa.h" - -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]) -/* -** - - - - - - - - -** i a u P n 0 0 -** - - - - - - - - -** -** Precession-nutation, IAU 2000 model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based -** use indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** dpsi,deps double nutation (Note 2) -** -** Returned: -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Note 8) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. For high-accuracy -** applications, free core nutation should be included as well as -** any other relevant corrections to the position of the CIP. -** -** 3) The returned mean obliquity is consistent with the IAU 2000 -** precession-nutation models. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox of -** date to true equator and equinox of date by applying the nutation -** (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the order given. -** -** Called: -** iauPr00 IAU 2000 precession adjustments -** iauObl80 mean obliquity, IAU 1980 -** iauBp00 frame bias and precession matrices, IAU 2000 -** iauCr copy r-matrix -** iauNumat form nutation matrix -** iauRxr product of two r-matrices -** -** Reference: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsipr, depspr, rbpw[3][3], rnw[3][3]; - - -/* IAU 2000 precession-rate adjustments. */ - iauPr00(date1, date2, &dpsipr, &depspr); - -/* Mean obliquity, consistent with IAU 2000 precession-nutation. */ - *epsa = iauObl80(date1, date2) + depspr; - -/* Frame bias and precession matrices and their product. */ - iauBp00(date1, date2, rb, rp, rbpw); - iauCr(rbpw, rbp); - -/* Nutation matrix. */ - iauNumat(*epsa, dpsi, deps, rnw); - iauCr(rnw, rn); - -/* Bias-precession-nutation matrix (classical). */ - iauRxr(rnw, rbpw, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pn00a.c b/deps/sofa/20231011/c/src/pn00a.c deleted file mode 100644 index 71957b6..0000000 --- a/deps/sofa/20231011/c/src/pn00a.c +++ /dev/null @@ -1,213 +0,0 @@ -#include "sofa.h" - -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]) -/* -** - - - - - - - - - -** i a u P n 0 0 a -** - - - - - - - - - -** -** Precession-nutation, IAU 2000A model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based -** use indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation (Note 2) -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components (luni-solar + planetary, IAU 2000A) in -** longitude and obliquity are in radians and with respect to the -** equinox and ecliptic of date. Free core nutation is omitted; -** for the utmost accuracy, use the iauPn00 function, where the -** nutation components are caller-specified. For faster but -** slightly less accurate results, use the iauPn00b function. -** -** 3) The mean obliquity is consistent with the IAU 2000 precession. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox -** of date to true equator and equinox of date by applying the -** nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the IAU 2000A Celestial Intermediate -** Pole are elements (3,1-3) of the GCRS-to-true matrix, -** i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauNut00a nutation, IAU 2000A -** iauPn00 bias/precession/nutation results, IAU 2000 -** -** Reference: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Nutation. */ - iauNut00a(date1, date2, dpsi, deps); - -/* Remaining results. */ - iauPn00(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pn00b.c b/deps/sofa/20231011/c/src/pn00b.c deleted file mode 100644 index cd7dd09..0000000 --- a/deps/sofa/20231011/c/src/pn00b.c +++ /dev/null @@ -1,213 +0,0 @@ -#include "sofa.h" - -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]) -/* -** - - - - - - - - - -** i a u P n 0 0 b -** - - - - - - - - - -** -** Precession-nutation, IAU 2000B model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based -** use indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation (Note 2) -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components (luni-solar + planetary, IAU 2000B) in -** longitude and obliquity are in radians and with respect to the -** equinox and ecliptic of date. For more accurate results, but -** at the cost of increased computation, use the iauPn00a function. -** For the utmost accuracy, use the iauPn00 function, where the -** nutation components are caller-specified. -** -** 3) The mean obliquity is consistent with the IAU 2000 precession. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox -** of date to true equator and equinox of date by applying the -** nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the IAU 2000B Celestial Intermediate -** Pole are elements (3,1-3) of the GCRS-to-true matrix, -** i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauNut00b nutation, IAU 2000B -** iauPn00 bias/precession/nutation results, IAU 2000 -** -** Reference: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003). -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Nutation. */ - iauNut00b(date1, date2, dpsi, deps); - -/* Remaining results. */ - iauPn00(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pn06.c b/deps/sofa/20231011/c/src/pn06.c deleted file mode 100644 index 6145e97..0000000 --- a/deps/sofa/20231011/c/src/pn06.c +++ /dev/null @@ -1,238 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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]) -/* -** - - - - - - - - -** i a u P n 0 6 -** - - - - - - - - -** -** Precession-nutation, IAU 2006 model: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based use -** indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** dpsi,deps double nutation (Note 2) -** -** Returned: -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The caller is responsible for providing the nutation components; -** they are in longitude and obliquity, in radians and are with -** respect to the equinox and ecliptic of date. For high-accuracy -** applications, free core nutation should be included as well as -** any other relevant corrections to the position of the CIP. -** -** 3) The returned mean obliquity is consistent with the IAU 2006 -** precession. -** -** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean -** equator and equinox by applying frame bias. -** -** 5) The matrix rp transforms vectors from J2000.0 mean equator and -** equinox to mean equator and equinox of date by applying -** precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean equator and -** equinox of date by applying frame bias then precession. It is -** the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean equator and equinox -** of date to true equator and equinox of date by applying the -** nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true equator and -** equinox of date. It is the product rn x rbp, applying frame -** bias, precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the Celestial Intermediate Pole are -** elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauFw2m F-W angles to r-matrix -** iauCr copy r-matrix -** iauTr transpose r-matrix -** iauRxr product of two r-matrices -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gamb, phib, psib, eps, r1[3][3], r2[3][3], rt[3][3]; - - -/* Bias-precession Fukushima-Williams angles of J2000.0 = frame bias. */ - iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &eps); - -/* B matrix. */ - iauFw2m(gamb, phib, psib, eps, r1); - iauCr(r1, rb); - -/* Bias-precession Fukushima-Williams angles of date. */ - iauPfw06(date1, date2, &gamb, &phib, &psib, &eps); - -/* Bias-precession matrix. */ - iauFw2m(gamb, phib, psib, eps, r2); - iauCr(r2, rbp); - -/* Solve for precession matrix. */ - iauTr(r1, rt); - iauRxr(r2, rt, rp); - -/* Equinox-based bias-precession-nutation matrix. */ - iauFw2m(gamb, phib, psib + dpsi, eps + deps, r1); - iauCr(r1, rbpn); - -/* Solve for nutation matrix. */ - iauTr(r2, rt); - iauRxr(r1, rt, rn); - -/* Obliquity, mean of date. */ - *epsa = eps; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pn06a.c b/deps/sofa/20231011/c/src/pn06a.c deleted file mode 100644 index 4433dbe..0000000 --- a/deps/sofa/20231011/c/src/pn06a.c +++ /dev/null @@ -1,203 +0,0 @@ -#include "sofa.h" - -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]) -/* -** - - - - - - - - - -** i a u P n 0 6 a -** - - - - - - - - - -** -** Precession-nutation, IAU 2006/2000A models: a multi-purpose function, -** supporting classical (equinox-based) use directly and CIO-based use -** indirectly. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsi,deps double nutation (Note 2) -** epsa double mean obliquity (Note 3) -** rb double[3][3] frame bias matrix (Note 4) -** rp double[3][3] precession matrix (Note 5) -** rbp double[3][3] bias-precession matrix (Note 6) -** rn double[3][3] nutation matrix (Note 7) -** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The nutation components (luni-solar + planetary, IAU 2000A) in -** longitude and obliquity are in radians and with respect to the -** equinox and ecliptic of date. Free core nutation is omitted; -** for the utmost accuracy, use the iauPn06 function, where the -** nutation components are caller-specified. -** -** 3) The mean obliquity is consistent with the IAU 2006 precession. -** -** 4) The matrix rb transforms vectors from GCRS to mean J2000.0 by -** applying frame bias. -** -** 5) The matrix rp transforms vectors from mean J2000.0 to mean of -** date by applying precession. -** -** 6) The matrix rbp transforms vectors from GCRS to mean of date by -** applying frame bias then precession. It is the product rp x rb. -** -** 7) The matrix rn transforms vectors from mean of date to true of -** date by applying the nutation (luni-solar + planetary). -** -** 8) The matrix rbpn transforms vectors from GCRS to true of date -** (CIP/equinox). It is the product rn x rbp, applying frame bias, -** precession and nutation in that order. -** -** 9) The X,Y,Z coordinates of the IAU 2006/2000A Celestial -** Intermediate Pole are elements (3,1-3) of the GCRS-to-true -** matrix, i.e. rbpn[2][0-2]. -** -** 10) It is permissible to re-use the same array in the returned -** arguments. The arrays are filled in the stated order. -** -** Called: -** iauNut06a nutation, IAU 2006/2000A -** iauPn06 bias/precession/nutation results, IAU 2006 -** -** Reference: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Nutation. */ - iauNut06a(date1, date2, dpsi, deps); - -/* Remaining results. */ - iauPn06(date1, date2, *dpsi, *deps, epsa, rb, rp, rbp, rn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pnm00a.c b/deps/sofa/20231011/c/src/pnm00a.c deleted file mode 100644 index 12688b0..0000000 --- a/deps/sofa/20231011/c/src/pnm00a.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" - -void iauPnm00a(double date1, double date2, double rbpn[3][3]) -/* -** - - - - - - - - - - -** i a u P n m 0 0 a -** - - - - - - - - - - -** -** Form the matrix of precession-nutation for a given date (including -** frame bias), equinox based, IAU 2000A model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbpn double[3][3] bias-precession-nutation matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where -** the p-vector V(date) is with respect to the true equatorial triad -** of date date1+date2 and the p-vector V(GCRS) is with respect to -** the Geocentric Celestial Reference System (IAU, 2000). -** -** 3) A faster, but slightly less accurate, result (about 1 mas) can be -** obtained by using instead the iauPnm00b function. -** -** Called: -** iauPn00a bias/precession/nutation, IAU 2000A -** -** Reference: -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3]; - - -/* Obtain the required matrix (discarding other results). */ - iauPn00a(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pnm00b.c b/deps/sofa/20231011/c/src/pnm00b.c deleted file mode 100644 index cc11b50..0000000 --- a/deps/sofa/20231011/c/src/pnm00b.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" - -void iauPnm00b(double date1, double date2, double rbpn[3][3]) -/* -** - - - - - - - - - - -** i a u P n m 0 0 b -** - - - - - - - - - - -** -** Form the matrix of precession-nutation for a given date (including -** frame bias), equinox-based, IAU 2000B model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbpn double[3][3] bias-precession-nutation matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where -** the p-vector V(date) is with respect to the true equatorial triad -** of date date1+date2 and the p-vector V(GCRS) is with respect to -** the Geocentric Celestial Reference System (IAU, 2000). -** -** 3) The present function is faster, but slightly less accurate (about -** 1 mas), than the iauPnm00a function. -** -** Called: -** iauPn00b bias/precession/nutation, IAU 2000B -** -** Reference: -** -** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. -** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. -** (2000) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dpsi, deps, epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3]; - - -/* Obtain the required matrix (discarding other results). */ - iauPn00b(date1, date2, &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pnm06a.c b/deps/sofa/20231011/c/src/pnm06a.c deleted file mode 100644 index a909931..0000000 --- a/deps/sofa/20231011/c/src/pnm06a.c +++ /dev/null @@ -1,175 +0,0 @@ -#include "sofa.h" - -void iauPnm06a(double date1, double date2, double rbpn[3][3]) -/* -** - - - - - - - - - - -** i a u P n m 0 6 a -** - - - - - - - - - - -** -** Form the matrix of precession-nutation for a given date (including -** frame bias), equinox based, IAU 2006 precession and IAU 2000A -** nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rbpn double[3][3] bias-precession-nutation matrix (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, among -** others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where -** the p-vector V(date) is with respect to the true equatorial triad -** of date date1+date2 and the p-vector V(GCRS) is with respect to -** the Geocentric Celestial Reference System (IAU, 2000). -** -** Called: -** iauPfw06 bias-precession F-W angles, IAU 2006 -** iauNut06a nutation, IAU 2006/2000A -** iauFw2m F-W angles to r-matrix -** -** Reference: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double gamb, phib, psib, epsa, dp, de; - - -/* Fukushima-Williams angles for frame bias and precession. */ - iauPfw06(date1, date2, &gamb, &phib, &psib, &epsa); - -/* Nutation components. */ - iauNut06a(date1, date2, &dp, &de); - -/* Equinox based nutation x precession x bias matrix. */ - iauFw2m(gamb, phib, psib + dp, epsa + de, rbpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pnm80.c b/deps/sofa/20231011/c/src/pnm80.c deleted file mode 100644 index 3a2bb04..0000000 --- a/deps/sofa/20231011/c/src/pnm80.c +++ /dev/null @@ -1,176 +0,0 @@ -#include "sofa.h" - -void iauPnm80(double date1, double date2, double rmatpn[3][3]) -/* -** - - - - - - - - - -** i a u P n m 8 0 -** - - - - - - - - - -** -** Form the matrix of precession/nutation for a given date, IAU 1976 -** precession model, IAU 1980 nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** rmatpn double[3][3] combined precession/nutation matrix -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The matrix operates in the sense V(date) = rmatpn * V(J2000), -** where the p-vector V(date) is with respect to the true equatorial -** triad of date date1+date2 and the p-vector V(J2000) is with -** respect to the mean equatorial triad of epoch J2000.0. -** -** Called: -** iauPmat76 precession matrix, IAU 1976 -** iauNutm80 nutation matrix, IAU 1980 -** iauRxr product of two r-matrices -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992), -** Section 3.3 (p145). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rmatp[3][3], rmatn[3][3]; - - -/* Precession matrix, J2000.0 to date. */ - iauPmat76(date1, date2, rmatp); - -/* Nutation matrix. */ - iauNutm80(date1, date2, rmatn); - -/* Combine the matrices: PN = N x P. */ - iauRxr(rmatn, rmatp, rmatpn); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pom00.c b/deps/sofa/20231011/c/src/pom00.c deleted file mode 100644 index 10a0f9e..0000000 --- a/deps/sofa/20231011/c/src/pom00.c +++ /dev/null @@ -1,165 +0,0 @@ -#include "sofa.h" - -void iauPom00(double xp, double yp, double sp, double rpom[3][3]) -/* -** - - - - - - - - - - -** i a u P o m 0 0 -** - - - - - - - - - - -** -** Form the matrix of polar motion for a given date, IAU 2000. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xp,yp double coordinates of the pole (radians, Note 1) -** sp double the TIO locator s' (radians, Note 2) -** -** Returned: -** rpom double[3][3] polar-motion matrix (Note 3) -** -** Notes: -** -** 1) The arguments xp and yp are the coordinates (in radians) of the -** Celestial Intermediate Pole with respect to the International -** Terrestrial Reference System (see IERS Conventions 2003), -** measured along the meridians 0 and 90 deg west respectively. -** -** 2) The argument sp is the TIO locator s', in radians, which -** positions the Terrestrial Intermediate Origin on the equator. It -** is obtained from polar motion observations by numerical -** integration, and so is in essence unpredictable. However, it is -** dominated by a secular drift of about 47 microarcseconds per -** century, and so can be taken into account by using s' = -47*t, -** where t is centuries since J2000.0. The function iauSp00 -** implements this approximation. -** -** 3) The matrix operates in the sense V(TRS) = rpom * V(CIP), meaning -** that it is the final rotation when computing the pointing -** direction to a celestial source. -** -** Called: -** iauIr initialize r-matrix to identity -** iauRz rotate around Z-axis -** iauRy rotate around Y-axis -** iauRx rotate around X-axis -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Construct the matrix. */ - iauIr(rpom); - iauRz(sp, rpom); - iauRy(-xp, rpom); - iauRx(-yp, rpom); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ppp.c b/deps/sofa/20231011/c/src/ppp.c deleted file mode 100644 index 454765c..0000000 --- a/deps/sofa/20231011/c/src/ppp.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "sofa.h" - -void iauPpp(double a[3], double b[3], double apb[3]) -/* -** - - - - - - - -** i a u P p p -** - - - - - - - -** -** P-vector addition. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** apb double[3] a + b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - apb[0] = a[0] + b[0]; - apb[1] = a[1] + b[1]; - apb[2] = a[2] + b[2]; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ppsp.c b/deps/sofa/20231011/c/src/ppsp.c deleted file mode 100644 index 4f5fd61..0000000 --- a/deps/sofa/20231011/c/src/ppsp.c +++ /dev/null @@ -1,144 +0,0 @@ -#include "sofa.h" - -void iauPpsp(double a[3], double s, double b[3], double apsb[3]) -/* -** - - - - - - - - -** i a u P p s p -** - - - - - - - - -** -** P-vector plus scaled p-vector. -** -** 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[3] first p-vector -** s double scalar (multiplier for b) -** b double[3] second p-vector -** -** Returned: -** apsb double[3] a + s*b -** -** Note: -** It is permissible for any of a, b and apsb to be the same array. -** -** Called: -** iauSxp multiply p-vector by scalar -** iauPpp p-vector plus p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double sb[3]; - - -/* s*b. */ - iauSxp(s, b, sb); - -/* a + s*b. */ - iauPpp(a, sb, apsb); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pr00.c b/deps/sofa/20231011/c/src/pr00.c deleted file mode 100644 index ad5dacb..0000000 --- a/deps/sofa/20231011/c/src/pr00.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauPr00(double date1, double date2, double *dpsipr, double *depspr) -/* -** - - - - - - - - -** i a u P r 0 0 -** - - - - - - - - -** -** Precession-rate part of the IAU 2000 precession-nutation models -** (part of MHB2000). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** dpsipr,depspr double precession corrections (Notes 2,3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The precession adjustments are expressed as "nutation -** components", corrections in longitude and obliquity with respect -** to the J2000.0 equinox and ecliptic. -** -** 3) Although the precession adjustments are stated to be with respect -** to Lieske et al. (1977), the MHB2000 model does not specify which -** set of Euler angles are to be used and how the adjustments are to -** be applied. The most literal and straightforward procedure is to -** adopt the 4-rotation epsilon_0, psi_A, omega_A, xi_A option, and -** to add dpsipr to psi_A and depspr to both omega_A and eps_A. -** -** 4) This is an implementation of one aspect of the IAU 2000A nutation -** model, formally adopted by the IAU General Assembly in 2000, -** namely MHB2000 (Mathews et al. 2002). -** -** References: -** -** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B., "Expressions -** for the precession quantities based upon the IAU (1976) System of -** Astronomical Constants", Astron.Astrophys., 58, 1-16 (1977) -** -** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation -** and precession New nutation series for nonrigid Earth and -** insights into the Earth's interior", J.Geophys.Res., 107, B4, -** 2002. The MHB2000 code itself was obtained on 9th September 2002 -** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. -** -** Wallace, P.T., "Software for Implementing the IAU 2000 -** Resolutions", in IERS Workshop 5.1 (2002). -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t; - -/* Precession and obliquity corrections (radians per century) */ - static const double PRECOR = -0.29965 * DAS2R, - OBLCOR = -0.02524 * DAS2R; - - -/* Interval between fundamental epoch J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Precession rate contributions with respect to IAU 1976/80. */ - *dpsipr = PRECOR * t; - *depspr = OBLCOR * t; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/prec76.c b/deps/sofa/20231011/c/src/prec76.c deleted file mode 100644 index 5bd2ccc..0000000 --- a/deps/sofa/20231011/c/src/prec76.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauPrec76(double date01, double date02, double date11, double date12, - double *zeta, double *z, double *theta) -/* -** - - - - - - - - - - -** i a u P r e c 7 6 -** - - - - - - - - - - -** -** IAU 1976 precession model. -** -** This function forms the three Euler angles which implement general -** precession between two dates, using the IAU 1976 model (as for the -** FK5 catalog). -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date01,date02 double TDB starting date (Note 1) -** date11,date12 double TDB ending date (Note 1) -** -** Returned: -** zeta double 1st rotation: radians cw around z -** z double 3rd rotation: radians cw around z -** theta double 2nd rotation: radians ccw around y -** -** Notes: -** -** 1) The dates date01+date02 and date11+date12 are Julian Dates, -** apportioned in any convenient way between the arguments daten1 -** and daten2. For example, JD(TDB)=2450123.7 could be expressed in -** any of these ways, among others: -** -** daten1 daten2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** The two dates may be expressed using different methods, but at -** the risk of losing some resolution. -** -** 2) The accumulated precession angles zeta, z, theta are expressed -** through canonical polynomials which are valid only for a limited -** time span. In addition, the IAU 1976 precession rate is known to -** be imperfect. The absolute accuracy of the present formulation -** is better than 0.1 arcsec from 1960AD to 2040AD, better than -** 1 arcsec from 1640AD to 2360AD, and remains below 3 arcsec for -** the whole of the period 500BC to 3000AD. The errors exceed -** 10 arcsec outside the range 1200BC to 3900AD, exceed 100 arcsec -** outside 4200BC to 5600AD and exceed 1000 arcsec outside 6800BC to -** 8200AD. -** -** 3) The three angles are returned in the conventional order, which -** is not the same as the order of the corresponding Euler -** rotations. The precession matrix is -** R_3(-z) x R_2(+theta) x R_3(-zeta). -** -** Reference: -** -** Lieske, J.H., 1979, Astron.Astrophys. 73, 282, equations -** (6) & (7), p283. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t0, t, tas2r, w; - - -/* Interval between fundamental epoch J2000.0 and start date (JC). */ - t0 = ((date01 - DJ00) + date02) / DJC; - -/* Interval over which precession required (JC). */ - t = ((date11 - date01) + (date12 - date02)) / DJC; - -/* Euler angles. */ - tas2r = t * DAS2R; - w = 2306.2181 + (1.39656 - 0.000139 * t0) * t0; - - *zeta = (w + ((0.30188 - 0.000344 * t0) + 0.017998 * t) * t) * tas2r; - - *z = (w + ((1.09468 + 0.000066 * t0) + 0.018203 * t) * t) * tas2r; - - *theta = ((2004.3109 + (-0.85330 - 0.000217 * t0) * t0) - + ((-0.42665 - 0.000217 * t0) - 0.041833 * t) * t) * tas2r; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pv2p.c b/deps/sofa/20231011/c/src/pv2p.c deleted file mode 100644 index 52c6768..0000000 --- a/deps/sofa/20231011/c/src/pv2p.c +++ /dev/null @@ -1,131 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauCp(pv[0], p); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pv2s.c b/deps/sofa/20231011/c/src/pv2s.c deleted file mode 100644 index 3072bb2..0000000 --- a/deps/sofa/20231011/c/src/pv2s.c +++ /dev/null @@ -1,194 +0,0 @@ -#include "sofa.h" - -void iauPv2s(double pv[2][3], - double *theta, double *phi, double *r, - double *td, double *pd, double *rd) -/* -** - - - - - - - - -** i a u P v 2 s -** - - - - - - - - -** -** Convert position/velocity from Cartesian to spherical coordinates. -** -** 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: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** td double rate of change of theta -** pd double rate of change of phi -** rd double rate of change of r -** -** Notes: -** -** 1) If the position part of pv is null, theta, phi, td and pd -** are indeterminate. This is handled by extrapolating the -** position through unit time by using the velocity part of -** pv. This moves the origin without changing the direction -** of the velocity component. If the position and velocity -** components of pv are both null, zeroes are returned for all -** six results. -** -** 2) If the position is a pole, theta, td and pd are indeterminate. -** In such cases zeroes are returned for all three. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, z, xd, yd, zd, rxy2, rxy, r2, rtrue, rw, xyp; - - -/* Components of position/velocity vector. */ - x = pv[0][0]; - y = pv[0][1]; - z = pv[0][2]; - xd = pv[1][0]; - yd = pv[1][1]; - zd = pv[1][2]; - -/* Component of r in XY plane squared. */ - rxy2 = x*x + y*y; - -/* Modulus squared. */ - r2 = rxy2 + z*z; - -/* Modulus. */ - rtrue = sqrt(r2); - -/* If null vector, move the origin along the direction of movement. */ - rw = rtrue; - if (rtrue == 0.0) { - x = xd; - y = yd; - z = zd; - rxy2 = x*x + y*y; - r2 = rxy2 + z*z; - rw = sqrt(r2); - } - -/* Position and velocity in spherical coordinates. */ - rxy = sqrt(rxy2); - xyp = x*xd + y*yd; - if (rxy2 != 0.0) { - *theta = atan2(y, x); - *phi = atan2(z, rxy); - *td = (x*yd - y*xd) / rxy2; - *pd = (zd*rxy2 - z*xyp) / (r2*rxy); - } else { - *theta = 0.0; - *phi = (z != 0.0) ? atan2(z, rxy) : 0.0; - *td = 0.0; - *pd = 0.0; - } - *r = rtrue; - *rd = (rw != 0.0) ? (xyp + z*zd) / rw : 0.0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvdpv.c b/deps/sofa/20231011/c/src/pvdpv.c deleted file mode 100644 index d4fa759..0000000 --- a/deps/sofa/20231011/c/src/pvdpv.c +++ /dev/null @@ -1,152 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 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; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvm.c b/deps/sofa/20231011/c/src/pvm.c deleted file mode 100644 index a024814..0000000 --- a/deps/sofa/20231011/c/src/pvm.c +++ /dev/null @@ -1,136 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Distance. */ - *r = iauPm(pv[0]); - -/* Speed. */ - *s = iauPm(pv[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvmpv.c b/deps/sofa/20231011/c/src/pvmpv.c deleted file mode 100644 index eb69fae..0000000 --- a/deps/sofa/20231011/c/src/pvmpv.c +++ /dev/null @@ -1,137 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauPmp(a[0], b[0], amb[0]); - iauPmp(a[1], b[1], amb[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvppv.c b/deps/sofa/20231011/c/src/pvppv.c deleted file mode 100644 index 3802a17..0000000 --- a/deps/sofa/20231011/c/src/pvppv.c +++ /dev/null @@ -1,137 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauPpp(a[0], b[0], apb[0]); - iauPpp(a[1], b[1], apb[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvstar.c b/deps/sofa/20231011/c/src/pvstar.c deleted file mode 100644 index 4fd78ab..0000000 --- a/deps/sofa/20231011/c/src/pvstar.c +++ /dev/null @@ -1,258 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauPvstar(double pv[2][3], double *ra, double *dec, - double *pmr, double *pmd, double *px, double *rv) -/* -** - - - - - - - - - - -** i a u P v s t a r -** - - - - - - - - - - -** -** Convert star position+velocity vector to catalog coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (Note 1): -** pv double[2][3] pv-vector (au, au/day) -** -** Returned (Note 2): -** ra double right ascension (radians) -** dec double declination (radians) -** pmr double RA proper motion (radians/year) -** pmd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, positive = receding) -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = superluminal speed (Note 5) -** -2 = null position vector -** -** Notes: -** -** 1) The specified pv-vector is the coordinate direction (and its rate -** of change) for the date at which the light leaving the star -** reached the solar-system barycenter. -** -** 2) The star data returned by this function are "observables" for an -** imaginary observer at the solar-system barycenter. Proper motion -** and radial velocity are, strictly, in terms of barycentric -** coordinate time, TCB. For most practical applications, it is -** permissible to neglect the distinction between TCB and ordinary -** "proper" time on Earth (TT/TAI). The result will, as a rule, be -** limited by the intrinsic accuracy of the proper-motion and -** radial-velocity data; moreover, the supplied pv-vector is likely -** to be merely an intermediate result (for example generated by the -** function iauStarpv), so that a change of time unit will cancel -** out overall. -** -** In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** Summarizing, the specified pv-vector is for most stars almost -** identical to the result of applying the standard geometrical -** "space motion" transformation to the catalog data. The -** differences, which are the subject of the Stumpff paper cited -** below, are: -** -** (i) In stars with significant radial velocity and proper motion, -** the constantly changing light-time distorts the apparent proper -** motion. Note that this is a classical, not a relativistic, -** effect. -** -** (ii) The transformation complies with special relativity. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds; the radial velocity is in km/s, but -** the pv-vector result is in au and au/day. -** -** 4) The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per Julian -** year. The RA proper motion is in terms of coordinate angle, not -** true angle, and will thus be numerically larger at high -** declinations. -** -** 5) Straight-line motion at constant speed in the inertial frame is -** assumed. If the speed is greater than or equal to the speed of -** light, the function aborts with an error status. -** -** 6) The inverse transformation is performed by the function iauStarpv. -** -** Called: -** iauPn decompose p-vector into modulus and direction -** iauPdp scalar product of two p-vectors -** iauSxp multiply p-vector by scalar -** iauPmp p-vector minus p-vector -** iauPm modulus of p-vector -** iauPpp p-vector plus p-vector -** iauPv2s pv-vector to spherical -** iauAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. -** -** This revision: 2023 May 4 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double r, pu[3], vr, ur[3], vt, ut[3], bett, betr, d, w, del, - usr[3], ust[3], a, rad, decd, rd; - - -/* Isolate the radial component of the velocity (au/day, inertial). */ - iauPn(pv[0], &r, pu); - vr = iauPdp(pu, pv[1]); - iauSxp(vr, pu, ur); - -/* Isolate the transverse component of the velocity (au/day, inertial). */ - iauPmp(pv[1], ur, ut); - vt = iauPm(ut); - -/* Special-relativity dimensionless parameters. */ - bett = vt / DC; - betr = vr / DC; - -/* The observed-to-inertial correction terms. */ - d = 1.0 + betr; - w = betr*betr + bett*bett; - if (d == 0.0 || w > 1.0) return -1; - del = - w / (sqrt(1.0-w) + 1.0); - -/* Scale inertial tangential velocity vector into observed (au/d). */ - iauSxp(1.0/d, ut, ust); - -/* Compute observed radial velocity vector (au/d). */ - iauSxp(DC*(betr-del)/d, pu, usr); - -/* Combine the two to obtain the observed velocity vector. */ - iauPpp(usr, ust, pv[1]); - -/* Cartesian to spherical. */ - iauPv2s(pv, &a, dec, &r, &rad, &decd, &rd); - if (r == 0.0) return -2; - -/* Return RA in range 0 to 2pi. */ - *ra = iauAnp(a); - -/* Return proper motions in radians per year. */ - *pmr = rad * DJY; - *pmd = decd * DJY; - -/* Return parallax in arcsec. */ - *px = DR2AS / r; - -/* Return radial velocity in km/s. */ - *rv = 1e-3 * rd * DAU / DAYSEC; - -/* Success. */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvtob.c b/deps/sofa/20231011/c/src/pvtob.c deleted file mode 100644 index 6462a15..0000000 --- a/deps/sofa/20231011/c/src/pvtob.c +++ /dev/null @@ -1,204 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauPvtob(double elong, double phi, double hm, - double xp, double yp, double sp, double theta, - double pv[2][3]) -/* -** - - - - - - - - - -** i a u P v t o b -** - - - - - - - - - -** -** Position and velocity of a terrestrial observing station. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** elong double longitude (radians, east +ve, Note 1) -** phi double latitude (geodetic, radians, Note 1) -** hm double height above ref. ellipsoid (geodetic, m) -** xp,yp double coordinates of the pole (radians, Note 2) -** sp double the TIO locator s' (radians, Note 2) -** theta double Earth rotation angle (radians, Note 3) -** -** Returned: -** pv double[2][3] position/velocity vector (m, m/s, CIRS) -** -** Notes: -** -** 1) The terrestrial coordinates are with respect to the WGS84 -** reference ellipsoid. -** -** 2) xp and yp are the coordinates (in radians) of the Celestial -** Intermediate Pole with respect to the International Terrestrial -** Reference System (see IERS Conventions), measured along the -** meridians 0 and 90 deg west respectively. sp is the TIO locator -** s', in radians, which positions the Terrestrial Intermediate -** Origin on the equator. For many applications, xp, yp and -** (especially) sp can be set to zero. -** -** 3) If theta is Greenwich apparent sidereal time instead of Earth -** rotation angle, the result is with respect to the true equator -** and equinox of date, i.e. with the x-axis at the equinox rather -** than the celestial intermediate origin. -** -** 4) The velocity units are meters per UT1 second, not per SI second. -** This is unlikely to have any practical consequences in the modern -** era. -** -** 5) No validation is performed on the arguments. Error cases that -** could lead to arithmetic exceptions are trapped by the iauGd2gc -** function, and the result set to zeros. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to -** the Astronomical Almanac, 3rd ed., University Science Books -** (2013), Section 7.4.3.3. -** -** Called: -** iauGd2gc geodetic to geocentric transformation -** iauPom00 polar motion matrix -** iauTrxp product of transpose of r-matrix and p-vector -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Earth rotation rate in radians per UT1 second */ - const double OM = 1.00273781191135448 * D2PI / DAYSEC; - - double xyzm[3], rpm[3][3], xyz[3], x, y, z, s, c; - - -/* Geodetic to geocentric transformation (WGS84). */ - (void) iauGd2gc(1, elong, phi, hm, xyzm); - -/* Polar motion and TIO position. */ - iauPom00(xp, yp, sp, rpm); - iauTrxp(rpm, xyzm, xyz); - x = xyz[0]; - y = xyz[1]; - z = xyz[2]; - -/* Functions of ERA. */ - s = sin(theta); - c = cos(theta); - -/* Position. */ - pv[0][0] = c*x - s*y; - pv[0][1] = s*x + c*y; - pv[0][2] = z; - -/* Velocity. */ - pv[1][0] = OM * ( -s*x - c*y ); - pv[1][1] = OM * ( c*x - s*y ); - pv[1][2] = 0.0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvu.c b/deps/sofa/20231011/c/src/pvu.c deleted file mode 100644 index 7ff8b7c..0000000 --- a/deps/sofa/20231011/c/src/pvu.c +++ /dev/null @@ -1,143 +0,0 @@ -#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: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauPpsp(pv[0], dt, pv[1], upv[0]); - iauCp(pv[1], upv[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvup.c b/deps/sofa/20231011/c/src/pvup.c deleted file mode 100644 index d99d062..0000000 --- a/deps/sofa/20231011/c/src/pvup.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "sofa.h" - -void iauPvup(double dt, double pv[2][3], double p[3]) -/* -** - - - - - - - - -** i a u P v u p -** - - - - - - - - -** -** Update a pv-vector, discarding the velocity component. -** -** 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: -** p double[3] p-vector -** -** 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. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - p[0] = pv[0][0] + dt * pv[1][0]; - p[1] = pv[0][1] + dt * pv[1][1]; - p[2] = pv[0][2] + dt * pv[1][2]; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pvxpv.c b/deps/sofa/20231011/c/src/pvxpv.c deleted file mode 100644 index b45187c..0000000 --- a/deps/sofa/20231011/c/src/pvxpv.c +++ /dev/null @@ -1,157 +0,0 @@ -#include "sofa.h" - -void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]) -/* -** - - - - - - - - - -** i a u P v x p v -** - - - - - - - - - -** -** Outer (=vector=cross) 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: -** axb double[2][3] a x b -** -** Notes: -** -** 1) If the position and velocity components of the two pv-vectors are -** ( ap, av ) and ( bp, bv ), the result, a x b, is the pair of -** vectors ( ap x bp, ap x bv + av x bp ). The two vectors are the -** cross-product of the two p-vectors and its derivative. -** -** 2) It is permissible to re-use the same array for any of the -** arguments. -** -** Called: -** iauCpv copy pv-vector -** iauPxp vector product of two p-vectors -** iauPpp p-vector plus p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double wa[2][3], wb[2][3], axbd[3], adxb[3]; - - -/* Make copies of the inputs. */ - iauCpv(a, wa); - iauCpv(b, wb); - -/* a x b = position part of result. */ - iauPxp(wa[0], wb[0], axb[0]); - -/* a x bdot + adot x b = velocity part of result. */ - iauPxp(wa[0], wb[1], axbd); - iauPxp(wa[1], wb[0], adxb); - iauPpp(axbd, adxb, axb[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/pxp.c b/deps/sofa/20231011/c/src/pxp.c deleted file mode 100644 index c764163..0000000 --- a/deps/sofa/20231011/c/src/pxp.c +++ /dev/null @@ -1,144 +0,0 @@ -#include "sofa.h" - -void iauPxp(double a[3], double b[3], double axb[3]) -/* -** - - - - - - - -** i a u P x p -** - - - - - - - -** -** p-vector outer (=vector=cross) product. -** -** 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[3] first p-vector -** b double[3] second p-vector -** -** Returned: -** axb double[3] a x b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double xa, ya, za, xb, yb, zb; - - - xa = a[0]; - ya = a[1]; - za = a[2]; - xb = b[0]; - yb = b[1]; - zb = b[2]; - axb[0] = ya*zb - za*yb; - axb[1] = za*xb - xa*zb; - axb[2] = xa*yb - ya*xb; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/refco.c b/deps/sofa/20231011/c/src/refco.c deleted file mode 100644 index 3eff043..0000000 --- a/deps/sofa/20231011/c/src/refco.c +++ /dev/null @@ -1,308 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauRefco(double phpa, double tc, double rh, double wl, - double *refa, double *refb) -/* -** - - - - - - - - - -** i a u R e f c o -** - - - - - - - - - -** -** Determine the constants A and B in the atmospheric refraction model -** dZ = A tan Z + B tan^3 Z. -** -** Z is the "observed" zenith distance (i.e. affected by refraction) -** and dZ is what to add to Z to give the "topocentric" (i.e. in vacuo) -** zenith distance. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** phpa double pressure at the observer (hPa = millibar) -** tc double ambient temperature at the observer (deg C) -** rh double relative humidity at the observer (range 0-1) -** wl double wavelength (micrometers) -** -** Returned: -** refa double* tan Z coefficient (radians) -** refb double* tan^3 Z coefficient (radians) -** -** Notes: -** -** 1) The model balances speed and accuracy to give good results in -** applications where performance at low altitudes is not paramount. -** Performance is maintained across a range of conditions, and -** applies to both optical/IR and radio. -** -** 2) The model omits the effects of (i) height above sea level (apart -** from the reduced pressure itself), (ii) latitude (i.e. the -** flattening of the Earth), (iii) variations in tropospheric lapse -** rate and (iv) dispersive effects in the radio. -** -** The model was tested using the following range of conditions: -** -** lapse rates 0.0055, 0.0065, 0.0075 deg/meter -** latitudes 0, 25, 50, 75 degrees -** heights 0, 2500, 5000 meters ASL -** pressures mean for height -10% to +5% in steps of 5% -** temperatures -10 deg to +20 deg with respect to 280 deg at SL -** relative humidity 0, 0.5, 1 -** wavelengths 0.4, 0.6, ... 2 micron, + radio -** zenith distances 15, 45, 75 degrees -** -** The accuracy with respect to raytracing through a model -** atmosphere was as follows: -** -** worst RMS -** -** optical/IR 62 mas 8 mas -** radio 319 mas 49 mas -** -** For this particular set of conditions: -** -** lapse rate 0.0065 K/meter -** latitude 50 degrees -** sea level -** pressure 1005 mb -** temperature 280.15 K -** humidity 80% -** wavelength 5740 Angstroms -** -** the results were as follows: -** -** ZD raytrace iauRefco Saastamoinen -** -** 10 10.27 10.27 10.27 -** 20 21.19 21.20 21.19 -** 30 33.61 33.61 33.60 -** 40 48.82 48.83 48.81 -** 45 58.16 58.18 58.16 -** 50 69.28 69.30 69.27 -** 55 82.97 82.99 82.95 -** 60 100.51 100.54 100.50 -** 65 124.23 124.26 124.20 -** 70 158.63 158.68 158.61 -** 72 177.32 177.37 177.31 -** 74 200.35 200.38 200.32 -** 76 229.45 229.43 229.42 -** 78 267.44 267.29 267.41 -** 80 319.13 318.55 319.10 -** -** deg arcsec arcsec arcsec -** -** The values for Saastamoinen's formula (which includes terms -** up to tan^5) are taken from Hohenkerk and Sinclair (1985). -** -** 3) A wl value in the range 0-100 selects the optical/IR case and is -** wavelength in micrometers. Any value outside this range selects -** the radio case. -** -** 4) Outlandish input parameters are silently limited to -** mathematically safe values. Zero pressure is permissible, and -** causes zeroes to be returned. -** -** 5) The algorithm draws on several sources, as follows: -** -** a) The formula for the saturation vapour pressure of water as -** a function of temperature and temperature is taken from -** Equations (A4.5-A4.7) of Gill (1982). -** -** b) The formula for the water vapour pressure, given the -** saturation pressure and the relative humidity, is from -** Crane (1976), Equation (2.5.5). -** -** c) The refractivity of air is a function of temperature, -** total pressure, water-vapour pressure and, in the case -** of optical/IR, wavelength. The formulae for the two cases are -** developed from Hohenkerk & Sinclair (1985) and Rueger (2002). -** The IAG (1999) optical refractivity for dry air is used. -** -** d) The formula for beta, the ratio of the scale height of the -** atmosphere to the geocentric distance of the observer, is -** an adaption of Equation (9) from Stone (1996). The -** adaptations, arrived at empirically, consist of (i) a small -** adjustment to the coefficient and (ii) a humidity term for the -** radio case only. -** -** e) The formulae for the refraction constants as a function of -** n-1 and beta are from Green (1987), Equation (4.31). -** -** References: -** -** Crane, R.K., Meeks, M.L. (ed), "Refraction Effects in the Neutral -** Atmosphere", Methods of Experimental Physics: Astrophysics 12B, -** Academic Press, 1976. -** -** Gill, Adrian E., "Atmosphere-Ocean Dynamics", Academic Press, -** 1982. -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987. -** -** Hohenkerk, C.Y., & Sinclair, A.T., NAO Technical Note No. 63, -** 1985. -** -** IAG Resolutions adopted at the XXIIth General Assembly in -** Birmingham, 1999, Resolution 3. -** -** Rueger, J.M., "Refractive Index Formulae for Electronic Distance -** Measurement with Radio and Millimetre Waves", in Unisurv Report -** S-68, School of Surveying and Spatial Information Systems, -** University of New South Wales, Sydney, Australia, 2002. -** -** Stone, Ronald C., P.A.S.P. 108, 1051-1058, 1996. -** -** This revision: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int optic; - double p, t, r, w, ps, pw, tk, wlsq, gamma, beta; - - -/* Decide whether optical/IR or radio case: switch at 100 microns. */ - optic = ( wl <= 100.0 ); - -/* Restrict parameters to safe values. */ - t = gmax ( tc, -150.0 ); - t = gmin ( t, 200.0 ); - p = gmax ( phpa, 0.0 ); - p = gmin ( p, 10000.0 ); - r = gmax ( rh, 0.0 ); - r = gmin ( r, 1.0 ); - w = gmax ( wl, 0.1 ); - w = gmin ( w, 1e6 ); - -/* Water vapour pressure at the observer. */ - if ( p > 0.0 ) { - ps = pow ( 10.0, ( 0.7859 + 0.03477*t ) / - ( 1.0 + 0.00412*t ) ) * - ( 1.0 + p * ( 4.5e-6 + 6e-10*t*t ) ); - pw = r * ps / ( 1.0 - (1.0-r)*ps/p ); - } else { - pw = 0.0; - } - -/* Refractive index minus 1 at the observer. */ - tk = t + 273.15; - if ( optic ) { - wlsq = w * w; - gamma = ( ( 77.53484e-6 + - ( 4.39108e-7 + 3.666e-9/wlsq ) / wlsq ) * p - - 11.2684e-6*pw ) / tk; - } else { - gamma = ( 77.6890e-6*p - ( 6.3938e-6 - 0.375463/tk ) * pw ) / tk; - } - -/* Formula for beta from Stone, with empirical adjustments. */ - beta = 4.4474e-6 * tk; - if ( ! optic ) beta -= 0.0074 * pw * beta; - -/* Refraction constants from Green. */ - *refa = gamma * ( 1.0 - beta ); - *refb = - gamma * ( beta - gamma / 2.0 ); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rm2v.c b/deps/sofa/20231011/c/src/rm2v.c deleted file mode 100644 index 53996bd..0000000 --- a/deps/sofa/20231011/c/src/rm2v.c +++ /dev/null @@ -1,161 +0,0 @@ -#include "sofa.h" - -void iauRm2v(double r[3][3], double w[3]) -/* -** - - - - - - - - -** i a u R m 2 v -** - - - - - - - - -** -** Express an r-matrix as an r-vector. -** -** 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] rotation matrix -** -** Returned: -** w double[3] rotation vector (Note 1) -** -** Notes: -** -** 1) A rotation matrix describes a rotation through some angle about -** some arbitrary axis called the Euler axis. The "rotation vector" -** returned by this function has the same direction as the Euler axis, -** and its magnitude is the angle in radians. (The magnitude and -** direction can be separated by means of the function iauPn.) -** -** 2) If r is null, so is the result. If r is not a rotation matrix -** the result is undefined; r must be proper (i.e. have a positive -** determinant) and real orthogonal (inverse = transpose). -** -** 3) The reference frame rotates clockwise as seen looking along -** the rotation vector from the origin. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, z, s2, c2, phi, f; - - - x = r[1][2] - r[2][1]; - y = r[2][0] - r[0][2]; - z = r[0][1] - r[1][0]; - s2 = sqrt(x*x + y*y + z*z); - if (s2 > 0) { - c2 = r[0][0] + r[1][1] + r[2][2] - 1.0; - phi = atan2(s2, c2); - f = phi / s2; - w[0] = x * f; - w[1] = y * f; - w[2] = z * f; - } else { - w[0] = 0.0; - w[1] = 0.0; - w[2] = 0.0; - } - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rv2m.c b/deps/sofa/20231011/c/src/rv2m.c deleted file mode 100644 index 1aadd86..0000000 --- a/deps/sofa/20231011/c/src/rv2m.c +++ /dev/null @@ -1,168 +0,0 @@ -#include "sofa.h" - -void iauRv2m(double w[3], double r[3][3]) -/* -** - - - - - - - - -** i a u R v 2 m -** - - - - - - - - -** -** Form the r-matrix corresponding to a given r-vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** w double[3] rotation vector (Note 1) -** -** Returned: -** r double[3][3] rotation matrix -** -** Notes: -** -** 1) A rotation matrix describes a rotation through some angle about -** some arbitrary axis called the Euler axis. The "rotation vector" -** supplied to This function has the same direction as the Euler -** axis, and its magnitude is the angle in radians. -** -** 2) If w is null, the identity matrix is returned. -** -** 3) The reference frame rotates clockwise as seen looking along the -** rotation vector from the origin. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, z, phi, s, c, f; - - -/* Euler angle (magnitude of rotation vector) and functions. */ - x = w[0]; - y = w[1]; - z = w[2]; - phi = sqrt(x*x + y*y + z*z); - s = sin(phi); - c = cos(phi); - f = 1.0 - c; - -/* Euler axis (direction of rotation vector), perhaps null. */ - if (phi > 0.0) { - x /= phi; - y /= phi; - z /= phi; - } - -/* Form the rotation matrix. */ - r[0][0] = x*x*f + c; - r[0][1] = x*y*f + z*s; - r[0][2] = x*z*f - y*s; - r[1][0] = y*x*f - z*s; - r[1][1] = y*y*f + c; - r[1][2] = y*z*f + x*s; - r[2][0] = z*x*f + y*s; - r[2][1] = z*y*f - x*s; - r[2][2] = z*z*f + c; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rx.c b/deps/sofa/20231011/c/src/rx.c deleted file mode 100644 index 0e07b04..0000000 --- a/deps/sofa/20231011/c/src/rx.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" - -void iauRx(double phi, double r[3][3]) -/* -** - - - - - - -** i a u R x -** - - - - - - -** -** Rotate an r-matrix about the x-axis. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** phi double angle (radians) -** -** Given and returned: -** r double[3][3] r-matrix, rotated -** -** Notes: -** -** 1) Calling this function with positive phi incorporates in the -** supplied r-matrix r an additional rotation, about the x-axis, -** anticlockwise as seen looking towards the origin from positive x. -** -** 2) The additional rotation can be represented by this matrix: -** -** ( 1 0 0 ) -** ( ) -** ( 0 + cos(phi) + sin(phi) ) -** ( ) -** ( 0 - sin(phi) + cos(phi) ) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double s, c, a10, a11, a12, a20, a21, a22; - - - s = sin(phi); - c = cos(phi); - - a10 = c*r[1][0] + s*r[2][0]; - a11 = c*r[1][1] + s*r[2][1]; - a12 = c*r[1][2] + s*r[2][2]; - a20 = - s*r[1][0] + c*r[2][0]; - a21 = - s*r[1][1] + c*r[2][1]; - a22 = - s*r[1][2] + c*r[2][2]; - - r[1][0] = a10; - r[1][1] = a11; - r[1][2] = a12; - r[2][0] = a20; - r[2][1] = a21; - r[2][2] = a22; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rxp.c b/deps/sofa/20231011/c/src/rxp.c deleted file mode 100644 index b5e93dc..0000000 --- a/deps/sofa/20231011/c/src/rxp.c +++ /dev/null @@ -1,149 +0,0 @@ -#include "sofa.h" - -void iauRxp(double r[3][3], double p[3], double rp[3]) -/* -** - - - - - - - -** i a u R x p -** - - - - - - - -** -** Multiply a p-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 -** p double[3] p-vector -** -** Returned: -** rp double[3] r * p -** -** Note: -** It is permissible for p and rp to be the same array. -** -** Called: -** iauCp copy p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double w, wrp[3]; - int i, j; - - -/* Matrix r * vector p. */ - for (j = 0; j < 3; j++) { - w = 0.0; - for (i = 0; i < 3; i++) { - w += r[j][i] * p[i]; - } - wrp[j] = w; - } - -/* Return the result. */ - iauCp(wrp, rp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rxpv.c b/deps/sofa/20231011/c/src/rxpv.c deleted file mode 100644 index c3a9fb9..0000000 --- a/deps/sofa/20231011/c/src/rxpv.c +++ /dev/null @@ -1,142 +0,0 @@ -#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 -** -** Notes: -** -** 1) The algorithm is for the simple case where the r-matrix r is not -** a function of time. The case where r is a function of time leads -** to an additional velocity component equal to the product of the -** derivative of r and the position vector. -** -** 2) It is permissible for pv and rpv to be the same array. -** -** Called: -** iauRxp product of r-matrix and p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauRxp(r, pv[0], rpv[0]); - iauRxp(r, pv[1], rpv[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rxr.c b/deps/sofa/20231011/c/src/rxr.c deleted file mode 100644 index 4e0aded..0000000 --- a/deps/sofa/20231011/c/src/rxr.c +++ /dev/null @@ -1,149 +0,0 @@ -#include "sofa.h" - -void iauRxr(double a[3][3], double b[3][3], double atb[3][3]) -/* -** - - - - - - - -** i a u R x r -** - - - - - - - -** -** Multiply two r-matrices. -** -** 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[3][3] first r-matrix -** b double[3][3] second r-matrix -** -** Returned: -** atb double[3][3] a * b -** -** Note: -** It is permissible to re-use the same array for any of the -** arguments. -** -** Called: -** iauCr copy r-matrix -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int i, j, k; - double w, wm[3][3]; - - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - w = 0.0; - for (k = 0; k < 3; k++) { - w += a[i][k] * b[k][j]; - } - wm[i][j] = w; - } - } - iauCr(wm, atb); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ry.c b/deps/sofa/20231011/c/src/ry.c deleted file mode 100644 index 921535a..0000000 --- a/deps/sofa/20231011/c/src/ry.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" - -void iauRy(double theta, double r[3][3]) -/* -** - - - - - - -** i a u R y -** - - - - - - -** -** Rotate an r-matrix about the y-axis. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double angle (radians) -** -** Given and returned: -** r double[3][3] r-matrix, rotated -** -** Notes: -** -** 1) Calling this function with positive theta incorporates in the -** supplied r-matrix r an additional rotation, about the y-axis, -** anticlockwise as seen looking towards the origin from positive y. -** -** 2) The additional rotation can be represented by this matrix: -** -** ( + cos(theta) 0 - sin(theta) ) -** ( ) -** ( 0 1 0 ) -** ( ) -** ( + sin(theta) 0 + cos(theta) ) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double s, c, a00, a01, a02, a20, a21, a22; - - - s = sin(theta); - c = cos(theta); - - a00 = c*r[0][0] - s*r[2][0]; - a01 = c*r[0][1] - s*r[2][1]; - a02 = c*r[0][2] - s*r[2][2]; - a20 = s*r[0][0] + c*r[2][0]; - a21 = s*r[0][1] + c*r[2][1]; - a22 = s*r[0][2] + c*r[2][2]; - - r[0][0] = a00; - r[0][1] = a01; - r[0][2] = a02; - r[2][0] = a20; - r[2][1] = a21; - r[2][2] = a22; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/rz.c b/deps/sofa/20231011/c/src/rz.c deleted file mode 100644 index baee877..0000000 --- a/deps/sofa/20231011/c/src/rz.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" - -void iauRz(double psi, double r[3][3]) -/* -** - - - - - - -** i a u R z -** - - - - - - -** -** Rotate an r-matrix about the z-axis. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** psi double angle (radians) -** -** Given and returned: -** r double[3][3] r-matrix, rotated -** -** Notes: -** -** 1) Calling this function with positive psi incorporates in the -** supplied r-matrix r an additional rotation, about the z-axis, -** anticlockwise as seen looking towards the origin from positive z. -** -** 2) The additional rotation can be represented by this matrix: -** -** ( + cos(psi) + sin(psi) 0 ) -** ( ) -** ( - sin(psi) + cos(psi) 0 ) -** ( ) -** ( 0 0 1 ) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double s, c, a00, a01, a02, a10, a11, a12; - - - s = sin(psi); - c = cos(psi); - - a00 = c*r[0][0] + s*r[1][0]; - a01 = c*r[0][1] + s*r[1][1]; - a02 = c*r[0][2] + s*r[1][2]; - a10 = - s*r[0][0] + c*r[1][0]; - a11 = - s*r[0][1] + c*r[1][1]; - a12 = - s*r[0][2] + c*r[1][2]; - - r[0][0] = a00; - r[0][1] = a01; - r[0][2] = a02; - r[1][0] = a10; - r[1][1] = a11; - r[1][2] = a12; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s00.c b/deps/sofa/20231011/c/src/s00.c deleted file mode 100644 index a026d3b..0000000 --- a/deps/sofa/20231011/c/src/s00.c +++ /dev/null @@ -1,424 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauS00(double date1, double date2, double x, double y) -/* -** - - - - - - - -** i a u S 0 0 -** - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, given the CIP's X,Y -** coordinates. Compatible with IAU 2000A precession-nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** x,y double CIP coordinates (Note 3) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems: the two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The quantity s remains below 0.1 arcsecond -** throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. This -** function requires X,Y to be supplied by the caller, who is -** responsible for providing values that are consistent with the -** supplied date. -** -** 4) The model is consistent with the IAU 2000A precession-nutation. -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Time since J2000.0, in Julian centuries */ - double t; - -/* Miscellaneous */ - int i, j; - double a, w0, w1, w2, w3, w4, w5; - -/* Fundamental arguments */ - double fa[8]; - -/* Returned value */ - double s; - -/* --------------------- */ -/* The series for s+XY/2 */ -/* --------------------- */ - - typedef struct { - int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */ - double s, c; /* sine and cosine coefficients */ - } TERM; - -/* Polynomial coefficients */ - static const double sp[] = { - - /* 1-6 */ - 94.00e-6, - 3808.35e-6, - -119.94e-6, - -72574.09e-6, - 27.70e-6, - 15.61e-6 - }; - -/* Terms of order t^0 */ - static const TERM s0[] = { - - /* 1-10 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, -2640.73e-6, 0.39e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, -63.53e-6, 0.02e-6 }, - {{ 0, 0, 2, -2, 3, 0, 0, 0}, -11.75e-6, -0.01e-6 }, - {{ 0, 0, 2, -2, 1, 0, 0, 0}, -11.21e-6, -0.01e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, 4.57e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 3, 0, 0, 0}, -2.02e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 1, 0, 0, 0}, -1.98e-6, 0.00e-6 }, - {{ 0, 0, 0, 0, 3, 0, 0, 0}, 1.72e-6, 0.00e-6 }, - {{ 0, 1, 0, 0, 1, 0, 0, 0}, 1.41e-6, 0.01e-6 }, - {{ 0, 1, 0, 0, -1, 0, 0, 0}, 1.26e-6, 0.01e-6 }, - - /* 11-20 */ - {{ 1, 0, 0, 0, -1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, 1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 3, 0, 0, 0}, -0.46e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 1, 0, 0, 0}, -0.45e-6, 0.00e-6 }, - {{ 0, 0, 4, -4, 4, 0, 0, 0}, -0.36e-6, 0.00e-6 }, - {{ 0, 0, 1, -1, 1, -8, 12, 0}, 0.24e-6, 0.12e-6 }, - {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.32e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.28e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 3, 0, 0, 0}, -0.27e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 1, 0, 0, 0}, -0.26e-6, 0.00e-6 }, - - /* 21-30 */ - {{ 0, 0, 2, -2, 0, 0, 0, 0}, 0.21e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -3, 0, 0, 0}, -0.19e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -1, 0, 0, 0}, -0.18e-6, 0.00e-6 }, - {{ 0, 0, 0, 0, 0, 8,-13, -1}, 0.10e-6, -0.05e-6 }, - {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.15e-6, 0.00e-6 }, - {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 2, 0, 0, 0}, 0.14e-6, 0.00e-6 }, - {{ 1, 0, 0, -2, 1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, - {{ 1, 0, 0, -2, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, - {{ 0, 0, 4, -2, 4, 0, 0, 0}, -0.13e-6, 0.00e-6 }, - - /* 31-33 */ - {{ 0, 0, 2, -2, 4, 0, 0, 0}, 0.11e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -3, 0, 0, 0}, -0.11e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -1, 0, 0, 0}, -0.11e-6, 0.00e-6 } - }; - -/* Terms of order t^1 */ - static const TERM s1[] ={ - - /* 1-3 */ - {{ 0, 0, 0, 0, 2, 0, 0, 0}, -0.07e-6, 3.57e-6 }, - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 1.71e-6, -0.03e-6 }, - {{ 0, 0, 2, -2, 3, 0, 0, 0}, 0.00e-6, 0.48e-6 } - }; - -/* Terms of order t^2 */ - static const TERM s2[] ={ - - /* 1-10 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 743.53e-6, -0.17e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, 56.91e-6, 0.06e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, 9.84e-6, -0.01e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, -8.85e-6, 0.01e-6 }, - {{ 0, 1, 0, 0, 0, 0, 0, 0}, -6.38e-6, -0.05e-6 }, - {{ 1, 0, 0, 0, 0, 0, 0, 0}, -3.07e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 2, 0, 0, 0}, 2.23e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.67e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 2, 0, 0, 0}, 1.30e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -2, 0, 0, 0}, 0.93e-6, 0.00e-6 }, - - /* 11-20 */ - {{ 1, 0, 0, -2, 0, 0, 0, 0}, 0.68e-6, 0.00e-6 }, - {{ 0, 0, 2, -2, 1, 0, 0, 0}, -0.55e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -2, 0, 0, 0}, 0.53e-6, 0.00e-6 }, - {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.27e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.27e-6, 0.00e-6 }, - {{ 1, 0, -2, -2, -2, 0, 0, 0}, -0.26e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.25e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.22e-6, 0.00e-6 }, - {{ 2, 0, 0, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 }, - {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.20e-6, 0.00e-6 }, - - /* 21-25 */ - {{ 0, 0, 2, 2, 2, 0, 0, 0}, 0.17e-6, 0.00e-6 }, - {{ 2, 0, 2, 0, 2, 0, 0, 0}, 0.13e-6, 0.00e-6 }, - {{ 2, 0, 0, 0, 0, 0, 0, 0}, -0.13e-6, 0.00e-6 }, - {{ 1, 0, 2, -2, 2, 0, 0, 0}, -0.12e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.11e-6, 0.00e-6 } - }; - -/* Terms of order t^3 */ - static const TERM s3[] ={ - - /* 1-4 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 0.30e-6, -23.51e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, -0.03e-6, -1.39e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.01e-6, -0.24e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, 0.00e-6, 0.22e-6 } - }; - -/* Terms of order t^4 */ - static const TERM s4[] ={ - - /* 1-1 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.26e-6, -0.01e-6 } - }; - -/* Number of terms in the series */ - const int NS0 = (int) (sizeof s0 / sizeof (TERM)); - const int NS1 = (int) (sizeof s1 / sizeof (TERM)); - const int NS2 = (int) (sizeof s2 / sizeof (TERM)); - const int NS3 = (int) (sizeof s3 / sizeof (TERM)); - const int NS4 = (int) (sizeof s4 / sizeof (TERM)); - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental epoch J2000.0 and current date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Fundamental Arguments (from IERS Conventions 2003) */ - -/* Mean anomaly of the Moon. */ - fa[0] = iauFal03(t); - -/* Mean anomaly of the Sun. */ - fa[1] = iauFalp03(t); - -/* Mean longitude of the Moon minus that of the ascending node. */ - fa[2] = iauFaf03(t); - -/* Mean elongation of the Moon from the Sun. */ - fa[3] = iauFad03(t); - -/* Mean longitude of the ascending node of the Moon. */ - fa[4] = iauFaom03(t); - -/* Mean longitude of Venus. */ - fa[5] = iauFave03(t); - -/* Mean longitude of Earth. */ - fa[6] = iauFae03(t); - -/* General precession in longitude. */ - fa[7] = iauFapa03(t); - -/* Evaluate s. */ - w0 = sp[0]; - w1 = sp[1]; - w2 = sp[2]; - w3 = sp[3]; - w4 = sp[4]; - w5 = sp[5]; - - for (i = NS0-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s0[i].nfa[j] * fa[j]; - } - w0 += s0[i].s * sin(a) + s0[i].c * cos(a); - } - - for (i = NS1-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s1[i].nfa[j] * fa[j]; - } - w1 += s1[i].s * sin(a) + s1[i].c * cos(a); - } - - for (i = NS2-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s2[i].nfa[j] * fa[j]; - } - w2 += s2[i].s * sin(a) + s2[i].c * cos(a); - } - - for (i = NS3-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s3[i].nfa[j] * fa[j]; - } - w3 += s3[i].s * sin(a) + s3[i].c * cos(a); - } - - for (i = NS4-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s4[i].nfa[j] * fa[j]; - } - w4 += s4[i].s * sin(a) + s4[i].c * cos(a); - } - - s = (w0 + - (w1 + - (w2 + - (w3 + - (w4 + - w5 * t) * t) * t) * t) * t) * DAS2R - x*y/2.0; - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s00a.c b/deps/sofa/20231011/c/src/s00a.c deleted file mode 100644 index c48a85e..0000000 --- a/deps/sofa/20231011/c/src/s00a.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "sofa.h" - -double iauS00a(double date1, double date2) -/* -** - - - - - - - - -** i a u S 0 0 a -** - - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, using the IAU 2000A -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems. The two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The CIO locator s remains a small fraction of -** 1 arcsecond throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. The present -** function uses the full IAU 2000A nutation model when predicting -** the CIP position. Faster results, with no significant loss of -** accuracy, can be obtained via the function iauS00b, which uses -** instead the IAU 2000B truncated model. -** -** Called: -** iauPnm00a classical NPB matrix, IAU 2000A -** iauBnp2xy extract CIP X,Y from the BPN matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3], x, y, s; - - -/* Bias-precession-nutation-matrix, IAU 2000A. */ - iauPnm00a(date1, date2, rbpn); - -/* Extract the CIP coordinates. */ - iauBpn2xy(rbpn, &x, &y); - -/* Compute the CIO locator s, given the CIP coordinates. */ - s = iauS00(date1, date2, x, y); - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s00b.c b/deps/sofa/20231011/c/src/s00b.c deleted file mode 100644 index 665b698..0000000 --- a/deps/sofa/20231011/c/src/s00b.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "sofa.h" - -double iauS00b(double date1, double date2) -/* -** - - - - - - - - -** i a u S 0 0 b -** - - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, using the IAU 2000B -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems. The two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The CIO locator s remains a small fraction of -** 1 arcsecond throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. The present -** function uses the IAU 2000B truncated nutation model when -** predicting the CIP position. The function iauS00a uses instead -** the full IAU 2000A model, but with no significant increase in -** accuracy and at some cost in speed. -** -** Called: -** iauPnm00b classical NPB matrix, IAU 2000B -** iauBnp2xy extract CIP X,Y from the BPN matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3], x, y, s; - - -/* Bias-precession-nutation-matrix, IAU 2000B. */ - iauPnm00b(date1, date2, rbpn); - -/* Extract the CIP coordinates. */ - iauBpn2xy(rbpn, &x, &y); - -/* Compute the CIO locator s, given the CIP coordinates. */ - s = iauS00(date1, date2, x, y); - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s06.c b/deps/sofa/20231011/c/src/s06.c deleted file mode 100644 index 79c7e8c..0000000 --- a/deps/sofa/20231011/c/src/s06.c +++ /dev/null @@ -1,421 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauS06(double date1, double date2, double x, double y) -/* -** - - - - - - - -** i a u S 0 6 -** - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, given the CIP's X,Y -** coordinates. Compatible with IAU 2006/2000A precession-nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** x,y double CIP coordinates (Note 3) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems: the two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The quantity s remains below 0.1 arcsecond -** throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series -** is more compact than a direct series for s would be. This -** function requires X,Y to be supplied by the caller, who is -** responsible for providing values that are consistent with the -** supplied date. -** -** 4) The model is consistent with the "P03" precession (Capitaine et -** al. 2003), adopted by IAU 2006 Resolution 1, 2006, and the -** IAU 2000A nutation (with P03 adjustments). -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, Astron. -** Astrophys. 432, 355 -** -** McCarthy, D.D., Petit, G. (eds.) 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Time since J2000.0, in Julian centuries */ - double t; - -/* Miscellaneous */ - int i, j; - double a, w0, w1, w2, w3, w4, w5; - -/* Fundamental arguments */ - double fa[8]; - -/* Returned value */ - double s; - -/* --------------------- */ -/* The series for s+XY/2 */ -/* --------------------- */ - - typedef struct { - int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */ - double s, c; /* sine and cosine coefficients */ - } TERM; - -/* Polynomial coefficients */ - static const double sp[] = { - - /* 1-6 */ - 94.00e-6, - 3808.65e-6, - -122.68e-6, - -72574.11e-6, - 27.98e-6, - 15.62e-6 - }; - -/* Terms of order t^0 */ - static const TERM s0[] = { - - /* 1-10 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, -2640.73e-6, 0.39e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, -63.53e-6, 0.02e-6 }, - {{ 0, 0, 2, -2, 3, 0, 0, 0}, -11.75e-6, -0.01e-6 }, - {{ 0, 0, 2, -2, 1, 0, 0, 0}, -11.21e-6, -0.01e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, 4.57e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 3, 0, 0, 0}, -2.02e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 1, 0, 0, 0}, -1.98e-6, 0.00e-6 }, - {{ 0, 0, 0, 0, 3, 0, 0, 0}, 1.72e-6, 0.00e-6 }, - {{ 0, 1, 0, 0, 1, 0, 0, 0}, 1.41e-6, 0.01e-6 }, - {{ 0, 1, 0, 0, -1, 0, 0, 0}, 1.26e-6, 0.01e-6 }, - - /* 11-20 */ - {{ 1, 0, 0, 0, -1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, 1, 0, 0, 0}, 0.63e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 3, 0, 0, 0}, -0.46e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 1, 0, 0, 0}, -0.45e-6, 0.00e-6 }, - {{ 0, 0, 4, -4, 4, 0, 0, 0}, -0.36e-6, 0.00e-6 }, - {{ 0, 0, 1, -1, 1, -8, 12, 0}, 0.24e-6, 0.12e-6 }, - {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.32e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.28e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 3, 0, 0, 0}, -0.27e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 1, 0, 0, 0}, -0.26e-6, 0.00e-6 }, - - /* 21-30 */ - {{ 0, 0, 2, -2, 0, 0, 0, 0}, 0.21e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -3, 0, 0, 0}, -0.19e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -1, 0, 0, 0}, -0.18e-6, 0.00e-6 }, - {{ 0, 0, 0, 0, 0, 8,-13, -1}, 0.10e-6, -0.05e-6 }, - {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.15e-6, 0.00e-6 }, - {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 2, 0, 0, 0}, 0.14e-6, 0.00e-6 }, - {{ 1, 0, 0, -2, 1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, - {{ 1, 0, 0, -2, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 }, - {{ 0, 0, 4, -2, 4, 0, 0, 0}, -0.13e-6, 0.00e-6 }, - - /* 31-33 */ - {{ 0, 0, 2, -2, 4, 0, 0, 0}, 0.11e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -3, 0, 0, 0}, -0.11e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -1, 0, 0, 0}, -0.11e-6, 0.00e-6 } - }; - -/* Terms of order t^1 */ - static const TERM s1[] = { - - /* 1 - 3 */ - {{ 0, 0, 0, 0, 2, 0, 0, 0}, -0.07e-6, 3.57e-6 }, - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 1.73e-6, -0.03e-6 }, - {{ 0, 0, 2, -2, 3, 0, 0, 0}, 0.00e-6, 0.48e-6 } - }; - -/* Terms of order t^2 */ - static const TERM s2[] = { - - /* 1-10 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 743.52e-6, -0.17e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, 56.91e-6, 0.06e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, 9.84e-6, -0.01e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, -8.85e-6, 0.01e-6 }, - {{ 0, 1, 0, 0, 0, 0, 0, 0}, -6.38e-6, -0.05e-6 }, - {{ 1, 0, 0, 0, 0, 0, 0, 0}, -3.07e-6, 0.00e-6 }, - {{ 0, 1, 2, -2, 2, 0, 0, 0}, 2.23e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.67e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 2, 0, 0, 0}, 1.30e-6, 0.00e-6 }, - {{ 0, 1, -2, 2, -2, 0, 0, 0}, 0.93e-6, 0.00e-6 }, - - /* 11-20 */ - {{ 1, 0, 0, -2, 0, 0, 0, 0}, 0.68e-6, 0.00e-6 }, - {{ 0, 0, 2, -2, 1, 0, 0, 0}, -0.55e-6, 0.00e-6 }, - {{ 1, 0, -2, 0, -2, 0, 0, 0}, 0.53e-6, 0.00e-6 }, - {{ 0, 0, 0, 2, 0, 0, 0, 0}, -0.27e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.27e-6, 0.00e-6 }, - {{ 1, 0, -2, -2, -2, 0, 0, 0}, -0.26e-6, 0.00e-6 }, - {{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.25e-6, 0.00e-6 }, - {{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.22e-6, 0.00e-6 }, - {{ 2, 0, 0, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 }, - {{ 2, 0, -2, 0, -1, 0, 0, 0}, 0.20e-6, 0.00e-6 }, - - /* 21-25 */ - {{ 0, 0, 2, 2, 2, 0, 0, 0}, 0.17e-6, 0.00e-6 }, - {{ 2, 0, 2, 0, 2, 0, 0, 0}, 0.13e-6, 0.00e-6 }, - {{ 2, 0, 0, 0, 0, 0, 0, 0}, -0.13e-6, 0.00e-6 }, - {{ 1, 0, 2, -2, 2, 0, 0, 0}, -0.12e-6, 0.00e-6 }, - {{ 0, 0, 2, 0, 0, 0, 0, 0}, -0.11e-6, 0.00e-6 } - }; - -/* Terms of order t^3 */ - static const TERM s3[] = { - - /* 1-4 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, 0.30e-6, -23.42e-6 }, - {{ 0, 0, 2, -2, 2, 0, 0, 0}, -0.03e-6, -1.46e-6 }, - {{ 0, 0, 2, 0, 2, 0, 0, 0}, -0.01e-6, -0.25e-6 }, - {{ 0, 0, 0, 0, 2, 0, 0, 0}, 0.00e-6, 0.23e-6 } - }; - -/* Terms of order t^4 */ - static const TERM s4[] = { - - /* 1-1 */ - {{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.26e-6, -0.01e-6 } - }; - -/* Number of terms in the series */ - static const int NS0 = (int) (sizeof s0 / sizeof (TERM)); - static const int NS1 = (int) (sizeof s1 / sizeof (TERM)); - static const int NS2 = (int) (sizeof s2 / sizeof (TERM)); - static const int NS3 = (int) (sizeof s3 / sizeof (TERM)); - static const int NS4 = (int) (sizeof s4 / sizeof (TERM)); - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental epoch J2000.0 and current date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Fundamental Arguments (from IERS Conventions 2003) */ - -/* Mean anomaly of the Moon. */ - fa[0] = iauFal03(t); - -/* Mean anomaly of the Sun. */ - fa[1] = iauFalp03(t); - -/* Mean longitude of the Moon minus that of the ascending node. */ - fa[2] = iauFaf03(t); - -/* Mean elongation of the Moon from the Sun. */ - fa[3] = iauFad03(t); - -/* Mean longitude of the ascending node of the Moon. */ - fa[4] = iauFaom03(t); - -/* Mean longitude of Venus. */ - fa[5] = iauFave03(t); - -/* Mean longitude of Earth. */ - fa[6] = iauFae03(t); - -/* General precession in longitude. */ - fa[7] = iauFapa03(t); - -/* Evaluate s. */ - w0 = sp[0]; - w1 = sp[1]; - w2 = sp[2]; - w3 = sp[3]; - w4 = sp[4]; - w5 = sp[5]; - - for (i = NS0-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s0[i].nfa[j] * fa[j]; - } - w0 += s0[i].s * sin(a) + s0[i].c * cos(a); - } - - for (i = NS1-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s1[i].nfa[j] * fa[j]; - } - w1 += s1[i].s * sin(a) + s1[i].c * cos(a); - } - - for (i = NS2-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s2[i].nfa[j] * fa[j]; - } - w2 += s2[i].s * sin(a) + s2[i].c * cos(a); - } - - for (i = NS3-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s3[i].nfa[j] * fa[j]; - } - w3 += s3[i].s * sin(a) + s3[i].c * cos(a); - } - - for (i = NS4-1; i >= 0; i--) { - a = 0.0; - for (j = 0; j < 8; j++) { - a += (double)s4[i].nfa[j] * fa[j]; - } - w4 += s4[i].s * sin(a) + s4[i].c * cos(a); - } - - s = (w0 + - (w1 + - (w2 + - (w3 + - (w4 + - w5 * t) * t) * t) * t) * t) * DAS2R - x*y/2.0; - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s06a.c b/deps/sofa/20231011/c/src/s06a.c deleted file mode 100644 index 0f9f487..0000000 --- a/deps/sofa/20231011/c/src/s06a.c +++ /dev/null @@ -1,197 +0,0 @@ -#include "sofa.h" - -double iauS06a(double date1, double date2) -/* -** - - - - - - - - -** i a u S 0 6 a -** - - - - - - - - -** -** The CIO locator s, positioning the Celestial Intermediate Origin on -** the equator of the Celestial Intermediate Pole, using the IAU 2006 -** precession and IAU 2000A nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the CIO locator s in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The CIO locator s is the difference between the right ascensions -** of the same point in two systems. The two systems are the GCRS -** and the CIP,CIO, and the point is the ascending node of the -** CIP equator. The CIO locator s remains a small fraction of -** 1 arcsecond throughout 1900-2100. -** -** 3) The series used to compute s is in fact for s+XY/2, where X and Y -** are the x and y components of the CIP unit vector; this series is -** more compact than a direct series for s would be. The present -** function uses the full IAU 2000A nutation model when predicting -** the CIP position. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** -** References: -** -** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., -** "Expressions for the Celestial Intermediate Pole and Celestial -** Ephemeris Origin consistent with the IAU 2000A precession- -** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) -** -** n.b. The celestial ephemeris origin (CEO) was renamed "celestial -** intermediate origin" (CIO) by IAU 2006 Resolution 2. -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rnpb[3][3], x, y, s; - - -/* Bias-precession-nutation-matrix, IAU 20006/2000A. */ - iauPnm06a(date1, date2, rnpb); - -/* Extract the CIP coordinates. */ - iauBpn2xy(rnpb, &x, &y); - -/* Compute the CIO locator s, given the CIP coordinates. */ - s = iauS06(date1, date2, x, y); - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s2c.c b/deps/sofa/20231011/c/src/s2c.c deleted file mode 100644 index 6ff105a..0000000 --- a/deps/sofa/20231011/c/src/s2c.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "sofa.h" - -void iauS2c(double theta, double phi, double c[3]) -/* -** - - - - - - - -** i a u S 2 c -** - - - - - - - -** -** Convert spherical coordinates to Cartesian. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** -** Returned: -** c double[3] direction cosines -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double cp; - - - cp = cos(phi); - c[0] = cos(theta) * cp; - c[1] = sin(theta) * cp; - c[2] = sin(phi); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s2p.c b/deps/sofa/20231011/c/src/s2p.c deleted file mode 100644 index c7fe908..0000000 --- a/deps/sofa/20231011/c/src/s2p.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "sofa.h" - -void iauS2p(double theta, double phi, double r, double p[3]) -/* -** - - - - - - - -** i a u S 2 p -** - - - - - - - -** -** Convert spherical polar coordinates to p-vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** -** Returned: -** p double[3] Cartesian coordinates -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauSxp multiply p-vector by scalar -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double u[3]; - - - iauS2c(theta, phi, u); - iauSxp(r, u, p); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s2pv.c b/deps/sofa/20231011/c/src/s2pv.c deleted file mode 100644 index 448541d..0000000 --- a/deps/sofa/20231011/c/src/s2pv.c +++ /dev/null @@ -1,153 +0,0 @@ -#include "sofa.h" - -void iauS2pv(double theta, double phi, double r, - double td, double pd, double rd, - double pv[2][3]) -/* -** - - - - - - - - -** i a u S 2 p v -** - - - - - - - - -** -** Convert position/velocity from spherical to Cartesian coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** theta double longitude angle (radians) -** phi double latitude angle (radians) -** r double radial distance -** td double rate of change of theta -** pd double rate of change of phi -** rd double rate of change of r -** -** Returned: -** pv double[2][3] pv-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double st, ct, sp, cp, rcp, x, y, rpd, w; - - - st = sin(theta); - ct = cos(theta); - sp = sin(phi); - cp = cos(phi); - rcp = r * cp; - x = rcp * ct; - y = rcp * st; - rpd = r * pd; - w = rpd*sp - cp*rd; - - pv[0][0] = x; - pv[0][1] = y; - pv[0][2] = r * sp; - pv[1][0] = -y*td - w*ct; - pv[1][1] = x*td - w*st; - pv[1][2] = rpd*cp + sp*rd; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/s2xpv.c b/deps/sofa/20231011/c/src/s2xpv.c deleted file mode 100644 index 308ab86..0000000 --- a/deps/sofa/20231011/c/src/s2xpv.c +++ /dev/null @@ -1,137 +0,0 @@ -#include "sofa.h" - -void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]) -/* -** - - - - - - - - - -** i a u S 2 x p v -** - - - - - - - - - -** -** Multiply a pv-vector by two scalars. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** s1 double scalar to multiply position component by -** s2 double scalar to multiply velocity component by -** pv double[2][3] pv-vector -** -** Returned: -** spv double[2][3] pv-vector: p scaled by s1, v scaled by s2 -** -** Note: -** It is permissible for pv and spv to be the same array. -** -** Called: -** iauSxp multiply p-vector by scalar -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauSxp(s1, pv[0], spv[0]); - iauSxp(s2, pv[1], spv[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/sepp.c b/deps/sofa/20231011/c/src/sepp.c deleted file mode 100644 index 44fee7b..0000000 --- a/deps/sofa/20231011/c/src/sepp.c +++ /dev/null @@ -1,157 +0,0 @@ -#include "sofa.h" - -double iauSepp(double a[3], double b[3]) -/* -** - - - - - - - - -** i a u S e p p -** - - - - - - - - -** -** Angular separation between two p-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[3] first p-vector (not necessarily unit length) -** b double[3] second p-vector (not necessarily unit length) -** -** Returned (function value): -** double angular separation (radians, always positive) -** -** Notes: -** -** 1) If either vector is null, a zero result is returned. -** -** 2) The angular separation is most simply formulated in terms of -** scalar product. However, this gives poor accuracy for angles -** near zero and pi. The present algorithm uses both cross product -** and dot product, to deliver full accuracy whatever the size of -** the angle. -** -** Called: -** iauPxp vector product of two p-vectors -** iauPm modulus of p-vector -** iauPdp scalar product of two p-vectors -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double axb[3], ss, cs, s; - - -/* Sine of angle between the vectors, multiplied by the two moduli. */ - iauPxp(a, b, axb); - ss = iauPm(axb); - -/* Cosine of the angle, multiplied by the two moduli. */ - cs = iauPdp(a, b); - -/* The angle. */ - s = ((ss != 0.0) || (cs != 0.0)) ? atan2(ss, cs) : 0.0; - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/seps.c b/deps/sofa/20231011/c/src/seps.c deleted file mode 100644 index cc1e916..0000000 --- a/deps/sofa/20231011/c/src/seps.c +++ /dev/null @@ -1,145 +0,0 @@ -#include "sofa.h" - -double iauSeps(double al, double ap, double bl, double bp) -/* -** - - - - - - - - -** i a u S e p s -** - - - - - - - - -** -** Angular separation between two sets of spherical coordinates. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** al double first longitude (radians) -** ap double first latitude (radians) -** bl double second longitude (radians) -** bp double second latitude (radians) -** -** Returned (function value): -** double angular separation (radians) -** -** Called: -** iauS2c spherical coordinates to unit vector -** iauSepp angular separation between two p-vectors -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double ac[3], bc[3], s; - - -/* Spherical to Cartesian. */ - iauS2c(al, ap, ac); - iauS2c(bl, bp, bc); - -/* Angle between the vectors. */ - s = iauSepp(ac, bc); - - return s; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/sofa.h b/deps/sofa/20231011/c/src/sofa.h deleted file mode 100644 index b397769..0000000 --- a/deps/sofa/20231011/c/src/sofa.h +++ /dev/null @@ -1,627 +0,0 @@ -#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: 2023 April 16 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ - -#include "math.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* 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; - -/* 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 tc, 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 tc, double rh, double wl, - iauASTROM *astrom); -void iauAtcc13(double rc, double dc, - double pr, double pd, double px, double rv, - double date1, double date2, - double *ra, double *da); -void iauAtccq(double rc, double dc, - double pr, double pd, double px, double rv, - iauASTROM *astrom, double *ra, double *da); -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 tc, 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 tc, 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 tc, 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 tc, 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 pob[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 height, double xp, - double yp, double sp, double theta, double pv[2][3]); -void iauRefco(double phpa, double tc, double rh, double wl, - double *refa, double *refb); - -/* Astronomy/Ephemerides */ -int iauEpv00(double date1, double date2, - double pvh[2][3], double pvb[2][3]); -void iauMoon98(double date1, double date2, double pv[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 iauLtp(double epj, double rp[3][3]); -void iauLtpb(double epj, double rpb[3][3]); -void iauLtpecl(double epj, double vec[3]); -void iauLtpequ(double epj, double veq[3]); -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 date01, double date02, - double date11, double date12, - 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 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 iauFk425(double r1950, double d1950, - double dr1950, double dd1950, - double p1950, double v1950, - double *r2000, double *d2000, - double *dr2000, double *dd2000, - double *p2000, double *v2000); -void iauFk45z(double r1950, double d1950, double bepoch, - double *r2000, double *d2000); -void iauFk524(double r2000, double d2000, - double dr2000, double dd2000, - double p2000, double v2000, - double *r1950, double *d1950, - double *dr1950, double *dd1950, - double *p1950, double *v1950); -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 iauFk54z(double r2000, double d2000, double bepoch, - double *r1950, double *d1950, - double *dr1950, double *dd1950); -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/EclipticCoordinates */ -void iauEceq06(double date1, double date2, double dl, double db, - double *dr, double *dd); -void iauEcm06(double date1, double date2, double rm[3][3]); -void iauEqec06(double date1, double date2, double dr, double dd, - double *dl, double *db); -void iauLteceq(double epj, double dl, double db, double *dr, double *dd); -void iauLtecm(double epj, double rm[3][3]); -void iauLteqec(double epj, double dr, double dd, double *dl, double *db); - -/* Astronomy/GalacticCoordinates */ -void iauG2icrs(double dl, double db, double *dr, double *dd); -void iauIcrs2g(double dr, double dd, double *dl, double *db); - -/* 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]); - -/* 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); - -/* Astronomy/HorizonEquatorial */ -void iauAe2hd(double az, double el, double phi, - double *ha, double *dec); -void iauHd2ae(double ha, double dec, double phi, - double *az, double *el); -double iauHd2pa(double ha, double dec, double phi); - -/* Astronomy/Gnomonic */ -int iauTpors(double xi, double eta, double a, double b, - double *a01, double *b01, double *a02, double *b02); -int iauTporv(double xi, double eta, double v[3], - double v01[3], double v02[3]); -void iauTpsts(double xi, double eta, double a0, double b0, - double *a, double *b); -void iauTpstv(double xi, double eta, double v0[3], double v[3]); -int iauTpxes(double a, double b, double a0, double b0, - double *xi, double *eta); -int iauTpxev(double v[3], double v0[3], double *xi, double *eta); - -/* 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) 2023 -** 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 -** -**--------------------------------------------------------------------*/ diff --git a/deps/sofa/20231011/c/src/sofam.h b/deps/sofa/20231011/c/src/sofam.h deleted file mode 100644 index 9279f72..0000000 --- a/deps/sofa/20231011/c/src/sofam.h +++ /dev/null @@ -1,222 +0,0 @@ -#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: 2021 February 24 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ - -/* 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, IAU 2012) */ -#define DAU (149597870.7e3) - -/* Speed of light (m/s) */ -#define CMPS 299792458.0 - -/* Light time for 1 au (s) */ -#define AULT (DAU/CMPS) - -/* 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) (fabs(A)<0.5?0.0\ - :((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) 2023 -** 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 -** -**--------------------------------------------------------------------*/ diff --git a/deps/sofa/20231011/c/src/sp00.c b/deps/sofa/20231011/c/src/sp00.c deleted file mode 100644 index c73a3ac..0000000 --- a/deps/sofa/20231011/c/src/sp00.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -double iauSp00(double date1, double date2) -/* -** - - - - - - - - -** i a u S p 0 0 -** - - - - - - - - -** -** The TIO locator s', positioning the Terrestrial Intermediate Origin -** on the equator of the Celestial Intermediate Pole. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned (function value): -** double the TIO locator s' in radians (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The TIO locator s' is obtained from polar motion observations by -** numerical integration, and so is in essence unpredictable. -** However, it is dominated by a secular drift of about -** 47 microarcseconds per century, which is the approximation -** evaluated by the present function. -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double t, sp; - - -/* Interval between fundamental epoch J2000.0 and current date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Approximate s'. */ - sp = -47e-6 * t * DAS2R; - - return sp; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/starpm.c b/deps/sofa/20231011/c/src/starpm.c deleted file mode 100644 index 2e3b6a6..0000000 --- a/deps/sofa/20231011/c/src/starpm.c +++ /dev/null @@ -1,258 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -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) -/* -** - - - - - - - - - - -** i a u S t a r p m -** - - - - - - - - - - -** -** Star proper motion: update star catalog data for space motion. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** ra1 double right ascension (radians), before -** dec1 double declination (radians), before -** pmr1 double RA proper motion (radians/year), before -** pmd1 double Dec proper motion (radians/year), before -** px1 double parallax (arcseconds), before -** rv1 double radial velocity (km/s, +ve = receding), before -** ep1a double "before" epoch, part A (Note 1) -** ep1b double "before" epoch, part B (Note 1) -** ep2a double "after" epoch, part A (Note 1) -** ep2b double "after" epoch, part B (Note 1) -** -** Returned: -** ra2 double right ascension (radians), after -** dec2 double declination (radians), after -** pmr2 double RA proper motion (radians/year), after -** pmd2 double Dec proper motion (radians/year), after -** px2 double parallax (arcseconds), after -** rv2 double radial velocity (km/s, +ve = receding), after -** -** Returned (function value): -** int status: -** -1 = system error (should not occur) -** 0 = no warnings or errors -** 1 = distance overridden (Note 6) -** 2 = excessive velocity (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above warnings -** -** Notes: -** -** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are -** Julian Dates, apportioned in any convenient way between the two -** parts (A and B). For example, JD(TDB)=2450123.7 could be -** expressed in any of these ways, among others: -** -** epNa epNb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. -** -** 2) In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per TDB -** Julian year. -** -** The parallax and radial velocity are in the same frame. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, -** is assumed. -** -** 6) An extremely small (or zero or negative) parallax is interpreted -** to mean that the object is on the "celestial sphere", the radius -** of which is an arbitrary (large) value (see the iauStarpv -** function for the value used). When the distance is overridden in -** this way, the status, initially zero, has 1 added to it. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX in the function iauStarpv), it is arbitrarily set -** to zero. When this action occurs, 2 is added to the status. -** -** 8) The relativistic adjustment carried out in the iauStarpv function -** involves an iterative calculation. If the process fails to -** converge within a set number of iterations, 4 is added to the -** status. -** -** Called: -** iauStarpv star catalog data to space motion pv-vector -** iauPvu update a pv-vector -** iauPdp scalar product of two p-vectors -** iauPvstar space motion pv-vector to star catalog data -** -** This revision: 2023 May 3 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double pv1[2][3], tl1, dt, pv[2][3], r2, rdv, v2, c2mv2, tl2, - pv2[2][3]; - int j1, j2, j; - - -/* RA,Dec etc. at the "before" epoch to space motion pv-vector. */ - j1 = iauStarpv(ra1, dec1, pmr1, pmd1, px1, rv1, pv1); - -/* Light time when observed (days). */ - tl1 = iauPm(pv1[0]) / DC; - -/* Time interval, "before" to "after" (days). */ - dt = (ep2a - ep1a) + (ep2b - ep1b); - -/* Move star along track from the "before" observed position to the */ -/* "after" geometric position. */ - iauPvu(dt + tl1, pv1, pv); - -/* From this geometric position, deduce the observed light time (days) */ -/* at the "after" epoch (with theoretically unneccessary error check). */ - r2 = iauPdp(pv[0], pv[0]); - rdv = iauPdp(pv[0], pv[1]); - v2 = iauPdp(pv[1], pv[1]); - c2mv2 = DC*DC - v2; - if (c2mv2 <= 0.0) return -1; - tl2 = (-rdv + sqrt(rdv*rdv + c2mv2*r2)) / c2mv2; - -/* Move the position along track from the observed place at the */ -/* "before" epoch to the observed place at the "after" epoch. */ - iauPvu(dt + (tl1 - tl2), pv1, pv2); - -/* Space motion pv-vector to RA,Dec etc. at the "after" epoch. */ - j2 = iauPvstar(pv2, ra2, dec2, pmr2, pmd2, px2, rv2); - -/* Final status. */ - j = (j2 == 0) ? j1 : -1; - - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/starpv.c b/deps/sofa/20231011/c/src/starpv.c deleted file mode 100644 index f041234..0000000 --- a/deps/sofa/20231011/c/src/starpv.c +++ /dev/null @@ -1,317 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauStarpv(double ra, double dec, - double pmr, double pmd, double px, double rv, - double pv[2][3]) -/* -** - - - - - - - - - - -** i a u S t a r p v -** - - - - - - - - - - -** -** Convert star catalog coordinates to position+velocity vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given (Note 1): -** ra double right ascension (radians) -** dec double declination (radians) -** pmr double RA proper motion (radians/year) -** pmd double Dec proper motion (radians/year) -** px double parallax (arcseconds) -** rv double radial velocity (km/s, positive = receding) -** -** Returned (Note 2): -** pv double[2][3] pv-vector (au, au/day) -** -** Returned (function value): -** int status: -** 0 = no warnings -** 1 = distance overridden (Note 6) -** 2 = excessive speed (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above -** -** Notes: -** -** 1) The star data accepted by this function are "observables" for an -** imaginary observer at the solar-system barycenter. Proper motion -** and radial velocity are, strictly, in terms of barycentric -** coordinate time, TCB. For most practical applications, it is -** permissible to neglect the distinction between TCB and ordinary -** "proper" time on Earth (TT/TAI). The result will, as a rule, be -** limited by the intrinsic accuracy of the proper-motion and -** radial-velocity data; moreover, the pv-vector is likely to be -** merely an intermediate result, so that a change of time unit -** would cancel out overall. -** -** In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** 2) The resulting position and velocity pv-vector is with respect to -** the same frame and, like the catalog coordinates, is freed from -** the effects of secular aberration. Should the "coordinate -** direction", where the object was located at the catalog epoch, be -** required, it may be obtained by calculating the magnitude of the -** position vector pv[0][0-2] dividing by the speed of light in -** au/day to give the light-time, and then multiplying the space -** velocity pv[1][0-2] by this light-time and adding the result to -** pv[0][0-2]. -** -** Summarizing, the pv-vector returned is for most stars almost -** identical to the result of applying the standard geometrical -** "space motion" transformation. The differences, which are the -** subject of the Stumpff paper referenced below, are: -** -** (i) In stars with significant radial velocity and proper motion, -** the constantly changing light-time distorts the apparent proper -** motion. Note that this is a classical, not a relativistic, -** effect. -** -** (ii) The transformation complies with special relativity. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds; the radial velocity is in km/s, but -** the pv-vector result is in au and au/day. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, -** is assumed. -** -** 6) An extremely small (or zero or negative) parallax is interpreted -** to mean that the object is on the "celestial sphere", the radius -** of which is an arbitrary (large) value (see the constant PXMIN). -** When the distance is overridden in this way, the status, -** initially zero, has 1 added to it. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX), it is arbitrarily set to zero. When this action -** occurs, 2 is added to the status. -** -** 8) The relativistic adjustment involves an iterative calculation. -** If the process fails to converge within a set number (IMAX) of -** iterations, 4 is added to the status. -** -** 9) The inverse transformation is performed by the function -** iauPvstar. -** -** Called: -** iauS2pv spherical coordinates to pv-vector -** iauPm modulus of p-vector -** iauZp zero p-vector -** iauPn decompose p-vector into modulus and direction -** iauPdp scalar product of two p-vectors -** iauSxp multiply p-vector by scalar -** iauPmp p-vector minus p-vector -** iauPpp p-vector plus p-vector -** -** Reference: -** -** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. -** -** This revision: 2023 May 4 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ -/* Smallest allowed parallax */ - static const double PXMIN = 1e-7; - -/* Largest allowed speed (fraction of c) */ - static const double VMAX = 0.5; - -/* Maximum number of iterations for relativistic solution */ - static const int IMAX = 100; - - int i, iwarn; - double w, r, rd, rad, decd, v, pu[3], usr[3], ust[3], - vsr, vst, betst, betsr, bett, betr, - dd, ddel, ur[3], ut[3], - d = 0.0, del = 0.0, /* to prevent */ - odd = 0.0, oddel = 0.0, /* compiler */ - od = 0.0, odel = 0.0; /* warnings */ - - -/* Distance (au). */ - if (px >= PXMIN) { - w = px; - iwarn = 0; - } else { - w = PXMIN; - iwarn = 1; - } - r = DR2AS / w; - -/* Radial speed (au/day). */ - rd = DAYSEC * rv * 1e3 / DAU; - -/* Proper motion (radian/day). */ - rad = pmr / DJY; - decd = pmd / DJY; - -/* To pv-vector (au,au/day). */ - iauS2pv(ra, dec, r, rad, decd, rd, pv); - -/* If excessive velocity, arbitrarily set it to zero. */ - v = iauPm(pv[1]); - if (v / DC > VMAX) { - iauZp(pv[1]); - iwarn += 2; - } - -/* Isolate the radial component of the velocity (au/day). */ - iauPn(pv[0], &w, pu); - vsr = iauPdp(pu, pv[1]); - iauSxp(vsr, pu, usr); - -/* Isolate the transverse component of the velocity (au/day). */ - iauPmp(pv[1], usr, ust); - vst = iauPm(ust); - -/* Special-relativity dimensionless parameters. */ - betsr = vsr / DC; - betst = vst / DC; - -/* Determine the observed-to-inertial correction terms. */ - bett = betst; - betr = betsr; - for (i = 0; i < IMAX; i++) { - d = 1.0 + betr; - w = betr*betr + bett*bett; - del = - w / (sqrt(1.0 - w) + 1.0); - betr = d * betsr + del; - bett = d * betst; - if (i > 0) { - dd = fabs(d - od); - ddel = fabs(del - odel); - if ((i > 1) && (dd >= odd) && (ddel >= oddel)) break; - odd = dd; - oddel = ddel; - } - od = d; - odel = del; - } - if (i >= IMAX) iwarn += 4; - -/* Scale observed tangential velocity vector into inertial (au/d). */ - iauSxp(d, ust, ut); - -/* Compute inertial radial velocity vector (au/d). */ - iauSxp(DC*(d*betsr+del), pu, ur); - -/* Combine the two to obtain the inertial space velocity vector. */ - iauPpp(ur, ut, pv[1]); - -/* Return the status. */ - return iwarn; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/sxp.c b/deps/sofa/20231011/c/src/sxp.c deleted file mode 100644 index 1e397bc..0000000 --- a/deps/sofa/20231011/c/src/sxp.c +++ /dev/null @@ -1,134 +0,0 @@ -#include "sofa.h" - -void iauSxp(double s, double p[3], double sp[3]) -/* -** - - - - - - - -** i a u S x p -** - - - - - - - -** -** Multiply a p-vector by a scalar. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** s double scalar -** p double[3] p-vector -** -** Returned: -** sp double[3] s * p -** -** Note: -** It is permissible for p and sp to be the same array. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - sp[0] = s * p[0]; - sp[1] = s * p[1]; - sp[2] = s * p[2]; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/sxpv.c b/deps/sofa/20231011/c/src/sxpv.c deleted file mode 100644 index 3172e54..0000000 --- a/deps/sofa/20231011/c/src/sxpv.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "sofa.h" - -void iauSxpv(double s, double pv[2][3], double spv[2][3]) -/* -** - - - - - - - - -** i a u S x p v -** - - - - - - - - -** -** Multiply a pv-vector by a scalar. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Given: -** s double scalar -** pv double[2][3] pv-vector -** -** Returned: -** spv double[2][3] s * pv -** -** Note: -** It is permissible for pv and spv to be the same array. -** -** Called: -** iauS2xpv multiply pv-vector by two scalars -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauS2xpv(s, s, pv, spv); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/t_sofa_c.c b/deps/sofa/20231011/c/src/t_sofa_c.c deleted file mode 100644 index 098813e..0000000 --- a/deps/sofa/20231011/c/src/t_sofa_c.c +++ /dev/null @@ -1,10367 +0,0 @@ -#include -#include "sofam.h" -#include - -static int verbose = 0; - -/* -** - - - - - - - - - -** t _ s o f a _ c -** - - - - - - - - - -** -** Validate the SOFA C functions. -** -** Each SOFA function is at least called and a usually quite basic test -** is performed. Successful completion is signalled by a confirming -** message. Failure of a given function or group of functions results -** in error messages. -** -** All messages go to stdout. -** -** This revision: 2021 July 29 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ - -static void viv(int ival, int ivalok, - const char *func, const char *test, int *status) -/* -** - - - - -** v i v -** - - - - -** -** Validate an integer result. -** -** Internal function used by t_sofa_c program. -** -** Given: -** ival int value computed by function under test -** ivalok int correct value -** func char[] name of function under test -** test char[] name of individual test -** -** Given and returned: -** status int set to TRUE if test fails -** -** This revision: 2013 August 7 -*/ -{ - if (ival != ivalok) { - *status = 1; - printf("%s failed: %s want %d got %d\n", - func, test, ivalok, ival); - } else if (verbose) { - printf("%s passed: %s want %d got %d\n", - func, test, ivalok, ival); - } - -} - -static void vvd(double val, double valok, double dval, - const char *func, const char *test, int *status) -/* -** - - - - -** v v d -** - - - - -** -** Validate a double result. -** -** Internal function used by t_sofa_c program. -** -** Given: -** val double value computed by function under test -** valok double expected value -** dval double maximum allowable error -** func char[] name of function under test -** test char[] name of individual test -** -** Given and returned: -** status int set to TRUE if test fails -** -** This revision: 2016 April 21 -*/ -{ - double a, f; /* absolute and fractional error */ - - - a = val - valok; - if (a != 0.0 && fabs(a) > fabs(dval)) { - f = fabs(valok / a); - *status = 1; - printf("%s failed: %s want %.20g got %.20g (1/%.3g)\n", - func, test, valok, val, f); - } else if (verbose) { - printf("%s passed: %s want %.20g got %.20g\n", - func, test, valok, val); - } - -} - -static void t_a2af(int *status) -/* -** - - - - - - - -** t _ a 2 a f -** - - - - - - - -** -** Test iauA2af function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauA2af, viv -** -** This revision: 2013 August 7 -*/ -{ - int idmsf[4]; - char s; - - - iauA2af(4, 2.345, &s, idmsf); - - viv(s, '+', "iauA2af", "s", status); - - viv(idmsf[0], 134, "iauA2af", "0", status); - viv(idmsf[1], 21, "iauA2af", "1", status); - viv(idmsf[2], 30, "iauA2af", "2", status); - viv(idmsf[3], 9706, "iauA2af", "3", status); - -} - -static void t_a2tf(int *status) -/* -** - - - - - - - -** t _ a 2 t f -** - - - - - - - -** -** Test iauA2tf function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauA2tf, viv -** -** This revision: 2013 August 7 -*/ -{ - int ihmsf[4]; - char s; - - - iauA2tf(4, -3.01234, &s, ihmsf); - - viv((int)s, '-', "iauA2tf", "s", status); - - viv(ihmsf[0], 11, "iauA2tf", "0", status); - viv(ihmsf[1], 30, "iauA2tf", "1", status); - viv(ihmsf[2], 22, "iauA2tf", "2", status); - viv(ihmsf[3], 6484, "iauA2tf", "3", status); - -} - -static void t_ab(int *status) -/* -** - - - - - -** t _ a b -** - - - - - -** -** Test iauAb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAb, vvd -** -** This revision: 2013 October 1 -*/ -{ - double pnat[3], v[3], s, bm1, ppr[3]; - - - pnat[0] = -0.76321968546737951; - pnat[1] = -0.60869453983060384; - pnat[2] = -0.21676408580639883; - v[0] = 2.1044018893653786e-5; - v[1] = -8.9108923304429319e-5; - v[2] = -3.8633714797716569e-5; - s = 0.99980921395708788; - bm1 = 0.99999999506209258; - - iauAb(pnat, v, s, bm1, ppr); - - vvd(ppr[0], -0.7631631094219556269, 1e-12, "iauAb", "1", status); - vvd(ppr[1], -0.6087553082505590832, 1e-12, "iauAb", "2", status); - vvd(ppr[2], -0.2167926269368471279, 1e-12, "iauAb", "3", status); - -} - -static void t_ae2hd(int *status) -/* -** - - - - - - - - -** t _ a e 2 h d -** - - - - - - - - -** -** Test iauAe2hd function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAe2hd and vvd -** -** This revision: 2017 October 21 -*/ -{ - double a, e, p, h, d; - - - a = 5.5; - e = 1.1; - p = 0.7; - - iauAe2hd(a, e, p, &h, &d); - - vvd(h, 0.5933291115507309663, 1e-14, "iauAe2hd", "h", status); - vvd(d, 0.9613934761647817620, 1e-14, "iauAe2hd", "d", status); - -} - -static void t_af2a(int *status) -/* -** - - - - - - - -** t _ a f 2 a -** - - - - - - - -** -** Test iauAf2a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAf2a, viv -** -** This revision: 2013 August 7 -*/ -{ - double a; - int j; - - - j = iauAf2a('-', 45, 13, 27.2, &a); - - vvd(a, -0.7893115794313644842, 1e-12, "iauAf2a", "a", status); - viv(j, 0, "iauAf2a", "j", status); - -} - -static void t_anp(int *status) -/* -** - - - - - - -** t _ a n p -** - - - - - - -** -** Test iauAnp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAnp, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauAnp(-0.1), 6.183185307179586477, 1e-12, "iauAnp", "", status); -} - -static void t_anpm(int *status) -/* -** - - - - - - - -** t _ a n p m -** - - - - - - - -** -** Test iauAnpm function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAnpm, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauAnpm(-4.0), 2.283185307179586477, 1e-12, "iauAnpm", "", status); -} - -static void t_apcg(int *status) -/* -** - - - - - - - -** t _ a p c g -** - - - - - - - -** -** Test iauApcg function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApcg, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, ebpv[2][3], ehp[3]; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - ebpv[0][0] = 0.901310875; - ebpv[0][1] = -0.417402664; - ebpv[0][2] = -0.180982288; - ebpv[1][0] = 0.00742727954; - ebpv[1][1] = 0.0140507459; - ebpv[1][2] = 0.00609045792; - ehp[0] = 0.903358544; - ehp[1] = -0.415395237; - ehp[2] = -0.180084014; - - iauApcg(date1, date2, ebpv, ehp, &astrom); - - vvd(astrom.pmt, 12.65133794027378508, 1e-11, - "iauApcg", "pmt", status); - vvd(astrom.eb[0], 0.901310875, 1e-12, - "iauApcg", "eb(1)", status); - vvd(astrom.eb[1], -0.417402664, 1e-12, - "iauApcg", "eb(2)", status); - vvd(astrom.eb[2], -0.180982288, 1e-12, - "iauApcg", "eb(3)", status); - vvd(astrom.eh[0], 0.8940025429324143045, 1e-12, - "iauApcg", "eh(1)", status); - vvd(astrom.eh[1], -0.4110930268679817955, 1e-12, - "iauApcg", "eh(2)", status); - vvd(astrom.eh[2], -0.1782189004872870264, 1e-12, - "iauApcg", "eh(3)", status); - vvd(astrom.em, 1.010465295811013146, 1e-12, - "iauApcg", "em", status); - vvd(astrom.v[0], 0.4289638913597693554e-4, 1e-16, - "iauApcg", "v(1)", status); - vvd(astrom.v[1], 0.8115034051581320575e-4, 1e-16, - "iauApcg", "v(2)", status); - vvd(astrom.v[2], 0.3517555136380563427e-4, 1e-16, - "iauApcg", "v(3)", status); - vvd(astrom.bm1, 0.9999999951686012981, 1e-12, - "iauApcg", "bm1", status); - vvd(astrom.bpn[0][0], 1.0, 0.0, - "iauApcg", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0.0, 0.0, - "iauApcg", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0.0, 0.0, - "iauApcg", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], 0.0, 0.0, - "iauApcg", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 1.0, 0.0, - "iauApcg", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], 0.0, 0.0, - "iauApcg", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], 0.0, 0.0, - "iauApcg", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0.0, 0.0, - "iauApcg", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 1.0, 0.0, - "iauApcg", "bpn(3,3)", status); - -} - -static void t_apcg13(int *status) -/* -** - - - - - - - - - -** t _ a p c g 1 3 -** - - - - - - - - - -** -** Test iauApcg13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApcg13, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - - iauApcg13(date1, date2, &astrom); - - vvd(astrom.pmt, 12.65133794027378508, 1e-11, - "iauApcg13", "pmt", status); - vvd(astrom.eb[0], 0.9013108747340644755, 1e-12, - "iauApcg13", "eb(1)", status); - vvd(astrom.eb[1], -0.4174026640406119957, 1e-12, - "iauApcg13", "eb(2)", status); - vvd(astrom.eb[2], -0.1809822877867817771, 1e-12, - "iauApcg13", "eb(3)", status); - vvd(astrom.eh[0], 0.8940025429255499549, 1e-12, - "iauApcg13", "eh(1)", status); - vvd(astrom.eh[1], -0.4110930268331896318, 1e-12, - "iauApcg13", "eh(2)", status); - vvd(astrom.eh[2], -0.1782189006019749850, 1e-12, - "iauApcg13", "eh(3)", status); - vvd(astrom.em, 1.010465295964664178, 1e-12, - "iauApcg13", "em", status); - vvd(astrom.v[0], 0.4289638912941341125e-4, 1e-16, - "iauApcg13", "v(1)", status); - vvd(astrom.v[1], 0.8115034032405042132e-4, 1e-16, - "iauApcg13", "v(2)", status); - vvd(astrom.v[2], 0.3517555135536470279e-4, 1e-16, - "iauApcg13", "v(3)", status); - vvd(astrom.bm1, 0.9999999951686013142, 1e-12, - "iauApcg13", "bm1", status); - vvd(astrom.bpn[0][0], 1.0, 0.0, - "iauApcg13", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0.0, 0.0, - "iauApcg13", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0.0, 0.0, - "iauApcg13", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], 0.0, 0.0, - "iauApcg13", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 1.0, 0.0, - "iauApcg13", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], 0.0, 0.0, - "iauApcg13", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], 0.0, 0.0, - "iauApcg13", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0.0, 0.0, - "iauApcg13", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 1.0, 0.0, - "iauApcg13", "bpn(3,3)", status); - -} - -static void t_apci(int *status) -/* -** - - - - - - - -** t _ a p c i -** - - - - - - - -** -** Test iauApci function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, ebpv[2][3], ehp[3], x, y, s; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - ebpv[0][0] = 0.901310875; - ebpv[0][1] = -0.417402664; - ebpv[0][2] = -0.180982288; - ebpv[1][0] = 0.00742727954; - ebpv[1][1] = 0.0140507459; - ebpv[1][2] = 0.00609045792; - ehp[0] = 0.903358544; - ehp[1] = -0.415395237; - ehp[2] = -0.180084014; - x = 0.0013122272; - y = -2.92808623e-5; - s = 3.05749468e-8; - - iauApci(date1, date2, ebpv, ehp, x, y, s, &astrom); - - vvd(astrom.pmt, 12.65133794027378508, 1e-11, - "iauApci", "pmt", status); - vvd(astrom.eb[0], 0.901310875, 1e-12, - "iauApci", "eb(1)", status); - vvd(astrom.eb[1], -0.417402664, 1e-12, - "iauApci", "eb(2)", status); - vvd(astrom.eb[2], -0.180982288, 1e-12, - "iauApci", "eb(3)", status); - vvd(astrom.eh[0], 0.8940025429324143045, 1e-12, - "iauApci", "eh(1)", status); - vvd(astrom.eh[1], -0.4110930268679817955, 1e-12, - "iauApci", "eh(2)", status); - vvd(astrom.eh[2], -0.1782189004872870264, 1e-12, - "iauApci", "eh(3)", status); - vvd(astrom.em, 1.010465295811013146, 1e-12, - "iauApci", "em", status); - vvd(astrom.v[0], 0.4289638913597693554e-4, 1e-16, - "iauApci", "v(1)", status); - vvd(astrom.v[1], 0.8115034051581320575e-4, 1e-16, - "iauApci", "v(2)", status); - vvd(astrom.v[2], 0.3517555136380563427e-4, 1e-16, - "iauApci", "v(3)", status); - vvd(astrom.bm1, 0.9999999951686012981, 1e-12, - "iauApci", "bm1", status); - vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12, - "iauApci", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12, - "iauApci", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12, - "iauApci", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12, - "iauApci", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12, - "iauApci", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12, - "iauApci", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12, - "iauApci", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12, - "iauApci", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12, - "iauApci", "bpn(3,3)", status); - -} - -static void t_apci13(int *status) -/* -** - - - - - - - - - -** t _ a p c i 1 3 -** - - - - - - - - - -** -** Test iauApci13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, eo; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - - iauApci13(date1, date2, &astrom, &eo); - - vvd(astrom.pmt, 12.65133794027378508, 1e-11, - "iauApci13", "pmt", status); - vvd(astrom.eb[0], 0.9013108747340644755, 1e-12, - "iauApci13", "eb(1)", status); - vvd(astrom.eb[1], -0.4174026640406119957, 1e-12, - "iauApci13", "eb(2)", status); - vvd(astrom.eb[2], -0.1809822877867817771, 1e-12, - "iauApci13", "eb(3)", status); - vvd(astrom.eh[0], 0.8940025429255499549, 1e-12, - "iauApci13", "eh(1)", status); - vvd(astrom.eh[1], -0.4110930268331896318, 1e-12, - "iauApci13", "eh(2)", status); - vvd(astrom.eh[2], -0.1782189006019749850, 1e-12, - "iauApci13", "eh(3)", status); - vvd(astrom.em, 1.010465295964664178, 1e-12, - "iauApci13", "em", status); - vvd(astrom.v[0], 0.4289638912941341125e-4, 1e-16, - "iauApci13", "v(1)", status); - vvd(astrom.v[1], 0.8115034032405042132e-4, 1e-16, - "iauApci13", "v(2)", status); - vvd(astrom.v[2], 0.3517555135536470279e-4, 1e-16, - "iauApci13", "v(3)", status); - vvd(astrom.bm1, 0.9999999951686013142, 1e-12, - "iauApci13", "bm1", status); - vvd(astrom.bpn[0][0], 0.9999992060376761710, 1e-12, - "iauApci13", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0.4124244860106037157e-7, 1e-12, - "iauApci13", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0.1260128571051709670e-2, 1e-12, - "iauApci13", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], -0.1282291987222130690e-7, 1e-12, - "iauApci13", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 0.9999999997456835325, 1e-12, - "iauApci13", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], -0.2255288829420524935e-4, 1e-12, - "iauApci13", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], -0.1260128571661374559e-2, 1e-12, - "iauApci13", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0.2255285422953395494e-4, 1e-12, - "iauApci13", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 0.9999992057833604343, 1e-12, - "iauApci13", "bpn(3,3)", status); - vvd(eo, -0.2900618712657375647e-2, 1e-12, - "iauApci13", "eo", status); - -} - -static void t_apco(int *status) -/* -** - - - - - - - -** t _ a p c o -** - - - - - - - -** -** Test iauApco function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApco, vvd -** -** This revision: 2021 January 5 -*/ -{ - double date1, date2, ebpv[2][3], ehp[3], x, y, s, - theta, elong, phi, hm, xp, yp, sp, refa, refb; - iauASTROM astrom; - - - date1 = 2456384.5; - date2 = 0.970031644; - ebpv[0][0] = -0.974170438; - ebpv[0][1] = -0.211520082; - ebpv[0][2] = -0.0917583024; - ebpv[1][0] = 0.00364365824; - ebpv[1][1] = -0.0154287319; - ebpv[1][2] = -0.00668922024; - ehp[0] = -0.973458265; - ehp[1] = -0.209215307; - ehp[2] = -0.0906996477; - x = 0.0013122272; - y = -2.92808623e-5; - s = 3.05749468e-8; - theta = 3.14540971; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - sp = -3.01974337e-11; - refa = 0.000201418779; - refb = -2.36140831e-7; - - iauApco(date1, date2, ebpv, ehp, x, y, s, - theta, elong, phi, hm, xp, yp, sp, - refa, refb, &astrom); - - vvd(astrom.pmt, 13.25248468622587269, 1e-11, - "iauApco", "pmt", status); - vvd(astrom.eb[0], -0.9741827110630322720, 1e-12, - "iauApco", "eb(1)", status); - vvd(astrom.eb[1], -0.2115130190135344832, 1e-12, - "iauApco", "eb(2)", status); - vvd(astrom.eb[2], -0.09179840186949532298, 1e-12, - "iauApco", "eb(3)", status); - vvd(astrom.eh[0], -0.9736425571689739035, 1e-12, - "iauApco", "eh(1)", status); - vvd(astrom.eh[1], -0.2092452125849330936, 1e-12, - "iauApco", "eh(2)", status); - vvd(astrom.eh[2], -0.09075578152243272599, 1e-12, - "iauApco", "eh(3)", status); - vvd(astrom.em, 0.9998233241709957653, 1e-12, - "iauApco", "em", status); - vvd(astrom.v[0], 0.2078704992916728762e-4, 1e-16, - "iauApco", "v(1)", status); - vvd(astrom.v[1], -0.8955360107151952319e-4, 1e-16, - "iauApco", "v(2)", status); - vvd(astrom.v[2], -0.3863338994288951082e-4, 1e-16, - "iauApco", "v(3)", status); - vvd(astrom.bm1, 0.9999999950277561236, 1e-12, - "iauApco", "bm1", status); - vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12, - "iauApco", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12, - "iauApco", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12, - "iauApco", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12, - "iauApco", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12, - "iauApco", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12, - "iauApco", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12, - "iauApco", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12, - "iauApco", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12, - "iauApco", "bpn(3,3)", status); - vvd(astrom.along, -0.5278008060295995734, 1e-12, - "iauApco", "along", status); - vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, - "iauApco", "xpl", status); - vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, - "iauApco", "ypl", status); - vvd(astrom.sphi, -0.9440115679003211329, 1e-12, - "iauApco", "sphi", status); - vvd(astrom.cphi, 0.3299123514971474711, 1e-12, - "iauApco", "cphi", status); - vvd(astrom.diurab, 0, 0, - "iauApco", "diurab", status); - vvd(astrom.eral, 2.617608903970400427, 1e-12, - "iauApco", "eral", status); - vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15, - "iauApco", "refa", status); - vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18, - "iauApco", "refb", status); - -} - -static void t_apco13(int *status) -/* -** - - - - - - - - - -** t _ a p c o 1 3 -** - - - - - - - - - -** -** Test iauApco13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApco13, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, eo; - iauASTROM astrom; - int j; - - - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - - j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom, &eo); - - vvd(astrom.pmt, 13.25248468622475727, 1e-11, - "iauApco13", "pmt", status); - vvd(astrom.eb[0], -0.9741827107320875162, 1e-12, - "iauApco13", "eb(1)", status); - vvd(astrom.eb[1], -0.2115130190489716682, 1e-12, - "iauApco13", "eb(2)", status); - vvd(astrom.eb[2], -0.09179840189496755339, 1e-12, - "iauApco13", "eb(3)", status); - vvd(astrom.eh[0], -0.9736425572586935247, 1e-12, - "iauApco13", "eh(1)", status); - vvd(astrom.eh[1], -0.2092452121603336166, 1e-12, - "iauApco13", "eh(2)", status); - vvd(astrom.eh[2], -0.09075578153885665295, 1e-12, - "iauApco13", "eh(3)", status); - vvd(astrom.em, 0.9998233240913898141, 1e-12, - "iauApco13", "em", status); - vvd(astrom.v[0], 0.2078704994520489246e-4, 1e-16, - "iauApco13", "v(1)", status); - vvd(astrom.v[1], -0.8955360133238868938e-4, 1e-16, - "iauApco13", "v(2)", status); - vvd(astrom.v[2], -0.3863338993055887398e-4, 1e-16, - "iauApco13", "v(3)", status); - vvd(astrom.bm1, 0.9999999950277561004, 1e-12, - "iauApco13", "bm1", status); - vvd(astrom.bpn[0][0], 0.9999991390295147999, 1e-12, - "iauApco13", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0.4978650075315529277e-7, 1e-12, - "iauApco13", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0.001312227200850293372, 1e-12, - "iauApco13", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], -0.1136336652812486604e-7, 1e-12, - "iauApco13", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 0.9999999995713154865, 1e-12, - "iauApco13", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], -0.2928086230975367296e-4, 1e-12, - "iauApco13", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], -0.001312227201745553566, 1e-12, - "iauApco13", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0.2928082218847679162e-4, 1e-12, - "iauApco13", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 0.9999991386008312212, 1e-12, - "iauApco13", "bpn(3,3)", status); - vvd(astrom.along, -0.5278008060295995733, 1e-12, - "iauApco13", "along", status); - vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, - "iauApco13", "xpl", status); - vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, - "iauApco13", "ypl", status); - vvd(astrom.sphi, -0.9440115679003211329, 1e-12, - "iauApco13", "sphi", status); - vvd(astrom.cphi, 0.3299123514971474711, 1e-12, - "iauApco13", "cphi", status); - vvd(astrom.diurab, 0, 0, - "iauApco13", "diurab", status); - vvd(astrom.eral, 2.617608909189664000, 1e-12, - "iauApco13", "eral", status); - vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15, - "iauApco13", "refa", status); - vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18, - "iauApco13", "refb", status); - vvd(eo, -0.003020548354802412839, 1e-14, - "iauApco13", "eo", status); - viv(j, 0, "iauApco13", "j", status); - -} - -static void t_apcs(int *status) -/* -** - - - - - - - -** t _ a p c s -** - - - - - - - -** -** Test iauApcs function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApcs, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, pv[2][3], ebpv[2][3], ehp[3]; - iauASTROM astrom; - - - date1 = 2456384.5; - date2 = 0.970031644; - pv[0][0] = -1836024.09; - pv[0][1] = 1056607.72; - pv[0][2] = -5998795.26; - pv[1][0] = -77.0361767; - pv[1][1] = -133.310856; - pv[1][2] = 0.0971855934; - ebpv[0][0] = -0.974170438; - ebpv[0][1] = -0.211520082; - ebpv[0][2] = -0.0917583024; - ebpv[1][0] = 0.00364365824; - ebpv[1][1] = -0.0154287319; - ebpv[1][2] = -0.00668922024; - ehp[0] = -0.973458265; - ehp[1] = -0.209215307; - ehp[2] = -0.0906996477; - - iauApcs(date1, date2, pv, ebpv, ehp, &astrom); - - vvd(astrom.pmt, 13.25248468622587269, 1e-11, - "iauApcs", "pmt", status); - vvd(astrom.eb[0], -0.9741827110629881886, 1e-12, - "iauApcs", "eb(1)", status); - vvd(astrom.eb[1], -0.2115130190136415986, 1e-12, - "iauApcs", "eb(2)", status); - vvd(astrom.eb[2], -0.09179840186954412099, 1e-12, - "iauApcs", "eb(3)", status); - vvd(astrom.eh[0], -0.9736425571689454706, 1e-12, - "iauApcs", "eh(1)", status); - vvd(astrom.eh[1], -0.2092452125850435930, 1e-12, - "iauApcs", "eh(2)", status); - vvd(astrom.eh[2], -0.09075578152248299218, 1e-12, - "iauApcs", "eh(3)", status); - vvd(astrom.em, 0.9998233241709796859, 1e-12, - "iauApcs", "em", status); - vvd(astrom.v[0], 0.2078704993282685510e-4, 1e-16, - "iauApcs", "v(1)", status); - vvd(astrom.v[1], -0.8955360106989405683e-4, 1e-16, - "iauApcs", "v(2)", status); - vvd(astrom.v[2], -0.3863338994289409097e-4, 1e-16, - "iauApcs", "v(3)", status); - vvd(astrom.bm1, 0.9999999950277561237, 1e-12, - "iauApcs", "bm1", status); - vvd(astrom.bpn[0][0], 1, 0, - "iauApcs", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0, 0, - "iauApcs", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0, 0, - "iauApcs", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], 0, 0, - "iauApcs", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 1, 0, - "iauApcs", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], 0, 0, - "iauApcs", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], 0, 0, - "iauApcs", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0, 0, - "iauApcs", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 1, 0, - "iauApcs", "bpn(3,3)", status); - -} - -static void t_apcs13(int *status) -/* -** - - - - - - - - - -** t _ a p c s 1 3 -** - - - - - - - - - -** -** Test iauApcs13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApcs13, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, pv[2][3]; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - pv[0][0] = -6241497.16; - pv[0][1] = 401346.896; - pv[0][2] = -1251136.04; - pv[1][0] = -29.264597; - pv[1][1] = -455.021831; - pv[1][2] = 0.0266151194; - - iauApcs13(date1, date2, pv, &astrom); - - vvd(astrom.pmt, 12.65133794027378508, 1e-11, - "iauApcs13", "pmt", status); - vvd(astrom.eb[0], 0.9012691529025250644, 1e-12, - "iauApcs13", "eb(1)", status); - vvd(astrom.eb[1], -0.4173999812023194317, 1e-12, - "iauApcs13", "eb(2)", status); - vvd(astrom.eb[2], -0.1809906511146429670, 1e-12, - "iauApcs13", "eb(3)", status); - vvd(astrom.eh[0], 0.8939939101760130792, 1e-12, - "iauApcs13", "eh(1)", status); - vvd(astrom.eh[1], -0.4111053891734021478, 1e-12, - "iauApcs13", "eh(2)", status); - vvd(astrom.eh[2], -0.1782336880636997374, 1e-12, - "iauApcs13", "eh(3)", status); - vvd(astrom.em, 1.010428384373491095, 1e-12, - "iauApcs13", "em", status); - vvd(astrom.v[0], 0.4279877294121697570e-4, 1e-16, - "iauApcs13", "v(1)", status); - vvd(astrom.v[1], 0.7963255087052120678e-4, 1e-16, - "iauApcs13", "v(2)", status); - vvd(astrom.v[2], 0.3517564013384691531e-4, 1e-16, - "iauApcs13", "v(3)", status); - vvd(astrom.bm1, 0.9999999952947980978, 1e-12, - "iauApcs13", "bm1", status); - vvd(astrom.bpn[0][0], 1, 0, - "iauApcs13", "bpn(1,1)", status); - vvd(astrom.bpn[1][0], 0, 0, - "iauApcs13", "bpn(2,1)", status); - vvd(astrom.bpn[2][0], 0, 0, - "iauApcs13", "bpn(3,1)", status); - vvd(astrom.bpn[0][1], 0, 0, - "iauApcs13", "bpn(1,2)", status); - vvd(astrom.bpn[1][1], 1, 0, - "iauApcs13", "bpn(2,2)", status); - vvd(astrom.bpn[2][1], 0, 0, - "iauApcs13", "bpn(3,2)", status); - vvd(astrom.bpn[0][2], 0, 0, - "iauApcs13", "bpn(1,3)", status); - vvd(astrom.bpn[1][2], 0, 0, - "iauApcs13", "bpn(2,3)", status); - vvd(astrom.bpn[2][2], 1, 0, - "iauApcs13", "bpn(3,3)", status); - -} - -static void t_aper(int *status) -/* -** - - - - - - - -** t _ a p e r -** - - - - - - - -* -** Test iauAper function. -* -** Returned: -** status int FALSE = success, TRUE = fail -* -** Called: iauAper, vvd -* -** This revision: 2013 October 3 -*/ -{ - double theta; - iauASTROM astrom; - - - astrom.along = 1.234; - theta = 5.678; - - iauAper(theta, &astrom); - - vvd(astrom.eral, 6.912000000000000000, 1e-12, - "iauAper", "pmt", status); - -} - -static void t_aper13(int *status) -/* -** - - - - - - - - - -** t _ a p e r 1 3 -** - - - - - - - - - -** -** Test iauAper13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAper13, vvd -** -** This revision: 2013 October 3 -*/ -{ - double ut11, ut12; - iauASTROM astrom; - - - astrom.along = 1.234; - ut11 = 2456165.5; - ut12 = 0.401182685; - - iauAper13(ut11, ut12, &astrom); - - vvd(astrom.eral, 3.316236661789694933, 1e-12, - "iauAper13", "pmt", status); - -} - -static void t_apio(int *status) -/* -** - - - - - - - -** t _ a p i o -** - - - - - - - -** -** Test iauApio function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApio, vvd -** -** This revision: 2021 January 5 -*/ -{ - double sp, theta, elong, phi, hm, xp, yp, refa, refb; - iauASTROM astrom; - - - sp = -3.01974337e-11; - theta = 3.14540971; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - refa = 0.000201418779; - refb = -2.36140831e-7; - - iauApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, &astrom); - - vvd(astrom.along, -0.5278008060295995734, 1e-12, - "iauApio", "along", status); - vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, - "iauApio", "xpl", status); - vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, - "iauApio", "ypl", status); - vvd(astrom.sphi, -0.9440115679003211329, 1e-12, - "iauApio", "sphi", status); - vvd(astrom.cphi, 0.3299123514971474711, 1e-12, - "iauApio", "cphi", status); - vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12, - "iauApio", "diurab", status); - vvd(astrom.eral, 2.617608903970400427, 1e-12, - "iauApio", "eral", status); - vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15, - "iauApio", "refa", status); - vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18, - "iauApio", "refb", status); - -} - -static void t_apio13(int *status) -/* -** - - - - - - - - - -** t _ a p i o 1 3 -** - - - - - - - - - -** -** Test iauApio13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApio13, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl; - int j; - iauASTROM astrom; - - - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - - j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom); - - vvd(astrom.along, -0.5278008060295995733, 1e-12, - "iauApio13", "along", status); - vvd(astrom.xpl, 0.1133427418130752958e-5, 1e-17, - "iauApio13", "xpl", status); - vvd(astrom.ypl, 0.1453347595780646207e-5, 1e-17, - "iauApio13", "ypl", status); - vvd(astrom.sphi, -0.9440115679003211329, 1e-12, - "iauApio13", "sphi", status); - vvd(astrom.cphi, 0.3299123514971474711, 1e-12, - "iauApio13", "cphi", status); - vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12, - "iauApio13", "diurab", status); - vvd(astrom.eral, 2.617608909189664000, 1e-12, - "iauApio13", "eral", status); - vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15, - "iauApio13", "refa", status); - vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18, - "iauApio13", "refb", status); - viv(j, 0, "iauApio13", "j", status); - -} - -static void t_atcc13(int *status) -/* -** - - - - - - - - - -** t _ a t c c 1 3 -** - - - - - - - - - -** -** Test iauAtcc13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtcc13, vvd -** -** This revision: 2021 April 18 -*/ -{ - double rc, dc, pr, pd, px, rv, date1, date2, ra, da; - - - rc = 2.71; - dc = 0.174; - pr = 1e-5; - pd = 5e-6; - px = 0.1; - rv = 55.0; - date1 = 2456165.5; - date2 = 0.401182685; - - iauAtcc13(rc, dc, pr, pd, px, rv, date1, date2, &ra, &da); - - vvd(ra, 2.710126504531372384, 1e-12, - "iauAtcc13", "ra", status); - vvd(da, 0.1740632537628350152, 1e-12, - "iauAtcc13", "da", status); - -} - -static void t_atccq(int *status) -/* -** - - - - - - - - -** t _ a t c c q -** - - - - - - - - -** -** Test iauAtccq function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, iauAtccq, vvd -** -** This revision: 2021 July 29 -*/ -{ - double date1, date2, eo, rc, dc, pr, pd, px, rv, ra, da; - iauASTROM astrom; - - date1 = 2456165.5; - date2 = 0.401182685; - iauApci13(date1, date2, &astrom, &eo); - rc = 2.71; - dc = 0.174; - pr = 1e-5; - pd = 5e-6; - px = 0.1; - rv = 55.0; - - iauAtccq(rc, dc, pr, pd, px, rv, &astrom, &ra, &da); - - vvd(ra, 2.710126504531372384, 1e-12, "iauAtccq", "ra", status); - vvd(da, 0.1740632537628350152, 1e-12, "iauAtccq", "da", status); - -} - -static void t_atci13(int *status) -/* -** - - - - - - - - - -** t _ a t c i 1 3 -** - - - - - - - - - -** -** Test iauAtci13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtci13, vvd -** -** This revision: 2017 March 15 -*/ -{ - double rc, dc, pr, pd, px, rv, date1, date2, ri, di, eo; - - - rc = 2.71; - dc = 0.174; - pr = 1e-5; - pd = 5e-6; - px = 0.1; - rv = 55.0; - date1 = 2456165.5; - date2 = 0.401182685; - - iauAtci13(rc, dc, pr, pd, px, rv, date1, date2, &ri, &di, &eo); - - vvd(ri, 2.710121572968696744, 1e-12, - "iauAtci13", "ri", status); - vvd(di, 0.1729371367219539137, 1e-12, - "iauAtci13", "di", status); - vvd(eo, -0.002900618712657375647, 1e-14, - "iauAtci13", "eo", status); - -} - -static void t_atciq(int *status) -/* -** - - - - - - - - -** t _ a t c i q -** - - - - - - - - -** -** Test iauAtciq function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, iauAtciq, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, eo, rc, dc, pr, pd, px, rv, ri, di; - iauASTROM astrom; - - date1 = 2456165.5; - date2 = 0.401182685; - iauApci13(date1, date2, &astrom, &eo); - rc = 2.71; - dc = 0.174; - pr = 1e-5; - pd = 5e-6; - px = 0.1; - rv = 55.0; - - iauAtciq(rc, dc, pr, pd, px, rv, &astrom, &ri, &di); - - vvd(ri, 2.710121572968696744, 1e-12, "iauAtciq", "ri", status); - vvd(di, 0.1729371367219539137, 1e-12, "iauAtciq", "di", status); - -} - -static void t_atciqn(int *status) -/* -** - - - - - - - - - -** t _ a t c i q n -** - - - - - - - - - -** -** Test iauAtciqn function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, iauAtciqn, vvd -** -** This revision: 2017 March 15 -*/ -{ - iauLDBODY b[3]; - double date1, date2, eo, rc, dc, pr, pd, px, rv, ri, di; - iauASTROM astrom; - - date1 = 2456165.5; - date2 = 0.401182685; - iauApci13(date1, date2, &astrom, &eo); - rc = 2.71; - dc = 0.174; - pr = 1e-5; - pd = 5e-6; - px = 0.1; - rv = 55.0; - b[0].bm = 0.00028574; - b[0].dl = 3e-10; - b[0].pv[0][0] = -7.81014427; - b[0].pv[0][1] = -5.60956681; - b[0].pv[0][2] = -1.98079819; - b[0].pv[1][0] = 0.0030723249; - b[0].pv[1][1] = -0.00406995477; - b[0].pv[1][2] = -0.00181335842; - b[1].bm = 0.00095435; - b[1].dl = 3e-9; - b[1].pv[0][0] = 0.738098796; - b[1].pv[0][1] = 4.63658692; - b[1].pv[0][2] = 1.9693136; - b[1].pv[1][0] = -0.00755816922; - b[1].pv[1][1] = 0.00126913722; - b[1].pv[1][2] = 0.000727999001; - b[2].bm = 1.0; - b[2].dl = 6e-6; - b[2].pv[0][0] = -0.000712174377; - b[2].pv[0][1] = -0.00230478303; - b[2].pv[0][2] = -0.00105865966; - b[2].pv[1][0] = 6.29235213e-6; - b[2].pv[1][1] = -3.30888387e-7; - b[2].pv[1][2] = -2.96486623e-7; - - iauAtciqn ( rc, dc, pr, pd, px, rv, &astrom, 3, b, &ri, &di); - - vvd(ri, 2.710122008104983335, 1e-12, "iauAtciqn", "ri", status); - vvd(di, 0.1729371916492767821, 1e-12, "iauAtciqn", "di", status); - -} - -static void t_atciqz(int *status) -/* -** - - - - - - - - - -** t _ a t c i q z -** - - - - - - - - - -** -** Test iauAtciqz function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, iauAtciqz, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, eo, rc, dc, ri, di; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - iauApci13(date1, date2, &astrom, &eo); - rc = 2.71; - dc = 0.174; - - iauAtciqz(rc, dc, &astrom, &ri, &di); - - vvd(ri, 2.709994899247256984, 1e-12, "iauAtciqz", "ri", status); - vvd(di, 0.1728740720984931891, 1e-12, "iauAtciqz", "di", status); - -} - -static void t_atco13(int *status) -/* -** - - - - - - - - - -** t _ a t c o 1 3 -** - - - - - - - - - -** -** Test iauAtco13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtco13, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double rc, dc, pr, pd, px, rv, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - aob, zob, hob, dob, rob, eo; - int j; - - - rc = 2.71; - dc = 0.174; - pr = 1e-5; - pd = 5e-6; - px = 0.1; - rv = 55.0; - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - - j = iauAtco13(rc, dc, pr, pd, px, rv, - utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, - &aob, &zob, &hob, &dob, &rob, &eo); - - vvd(aob, 0.9251774485485515207e-1, 1e-12, "iauAtco13", "aob", status); - vvd(zob, 1.407661405256499357, 1e-12, "iauAtco13", "zob", status); - vvd(hob, -0.9265154431529724692e-1, 1e-12, "iauAtco13", "hob", status); - vvd(dob, 0.1716626560072526200, 1e-12, "iauAtco13", "dob", status); - vvd(rob, 2.710260453504961012, 1e-12, "iauAtco13", "rob", status); - vvd(eo, -0.003020548354802412839, 1e-14, "iauAtco13", "eo", status); - viv(j, 0, "iauAtco13", "j", status); - -} - -static void t_atic13(int *status) -/* -** - - - - - - - - - -** t _ a t i c 1 3 -** - - - - - - - - - -** -** Test iauAtic13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtic13, vvd -** -** This revision: 2017 March 15 -*/ -{ - double ri, di, date1, date2, rc, dc, eo; - - - ri = 2.710121572969038991; - di = 0.1729371367218230438; - date1 = 2456165.5; - date2 = 0.401182685; - - iauAtic13(ri, di, date1, date2, &rc, &dc, &eo); - - vvd(rc, 2.710126504531716819, 1e-12, "iauAtic13", "rc", status); - vvd(dc, 0.1740632537627034482, 1e-12, "iauAtic13", "dc", status); - vvd(eo, -0.002900618712657375647, 1e-14, "iauAtic13", "eo", status); - -} - -static void t_aticq(int *status) -/* -** - - - - - - - - -** t _ a t i c q -** - - - - - - - - -** -** Test iauAticq function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, iauAticq, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, eo, ri, di, rc, dc; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - iauApci13(date1, date2, &astrom, &eo); - ri = 2.710121572969038991; - di = 0.1729371367218230438; - - iauAticq(ri, di, &astrom, &rc, &dc); - - vvd(rc, 2.710126504531716819, 1e-12, "iauAticq", "rc", status); - vvd(dc, 0.1740632537627034482, 1e-12, "iauAticq", "dc", status); - -} - -static void t_aticqn(int *status) -/* -** - - - - - - - - - -** t _ a t i c q n -** - - - - - - - - - -** -** Test iauAticqn function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApci13, iauAticqn, vvd -** -** This revision: 2017 March 15 -*/ -{ - double date1, date2, eo, ri, di, rc, dc; - iauLDBODY b[3]; - iauASTROM astrom; - - - date1 = 2456165.5; - date2 = 0.401182685; - iauApci13(date1, date2, &astrom, &eo); - ri = 2.709994899247599271; - di = 0.1728740720983623469; - b[0].bm = 0.00028574; - b[0].dl = 3e-10; - b[0].pv[0][0] = -7.81014427; - b[0].pv[0][1] = -5.60956681; - b[0].pv[0][2] = -1.98079819; - b[0].pv[1][0] = 0.0030723249; - b[0].pv[1][1] = -0.00406995477; - b[0].pv[1][2] = -0.00181335842; - b[1].bm = 0.00095435; - b[1].dl = 3e-9; - b[1].pv[0][0] = 0.738098796; - b[1].pv[0][1] = 4.63658692; - b[1].pv[0][2] = 1.9693136; - b[1].pv[1][0] = -0.00755816922; - b[1].pv[1][1] = 0.00126913722; - b[1].pv[1][2] = 0.000727999001; - b[2].bm = 1.0; - b[2].dl = 6e-6; - b[2].pv[0][0] = -0.000712174377; - b[2].pv[0][1] = -0.00230478303; - b[2].pv[0][2] = -0.00105865966; - b[2].pv[1][0] = 6.29235213e-6; - b[2].pv[1][1] = -3.30888387e-7; - b[2].pv[1][2] = -2.96486623e-7; - - iauAticqn(ri, di, &astrom, 3, b, &rc, &dc); - - vvd(rc, 2.709999575033027333, 1e-12, "iauAtciqn", "rc", status); - vvd(dc, 0.1739999656316469990, 1e-12, "iauAtciqn", "dc", status); - -} - -static void t_atio13(int *status) -/* -** - - - - - - - - - -** t _ a t i o 1 3 -** - - - - - - - - - -** -** Test iauAtio13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtio13, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, aob, zob, hob, dob, rob; - int j; - - - ri = 2.710121572969038991; - di = 0.1729371367218230438; - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - - j = iauAtio13(ri, di, utc1, utc2, dut1, elong, phi, hm, - xp, yp, phpa, tc, rh, wl, - &aob, &zob, &hob, &dob, &rob); - - vvd(aob, 0.9233952224895122499e-1, 1e-12, "iauAtio13", "aob", status); - vvd(zob, 1.407758704513549991, 1e-12, "iauAtio13", "zob", status); - vvd(hob, -0.9247619879881698140e-1, 1e-12, "iauAtio13", "hob", status); - vvd(dob, 0.1717653435756234676, 1e-12, "iauAtio13", "dob", status); - vvd(rob, 2.710085107988480746, 1e-12, "iauAtio13", "rob", status); - viv(j, 0, "iauAtio13", "j", status); - -} - -static void t_atioq(int *status) -/* -** - - - - - - - - -** t _ a t i o q -** - - - - - - - - -** -** Test iauAtioq function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauApio13, iauAtioq, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, ri, di, aob, zob, hob, dob, rob; - iauASTROM astrom; - - - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - (void) iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom); - ri = 2.710121572969038991; - di = 0.1729371367218230438; - - iauAtioq(ri, di, &astrom, &aob, &zob, &hob, &dob, &rob); - - vvd(aob, 0.9233952224895122499e-1, 1e-12, "iauAtioq", "aob", status); - vvd(zob, 1.407758704513549991, 1e-12, "iauAtioq", "zob", status); - vvd(hob, -0.9247619879881698140e-1, 1e-12, "iauAtioq", "hob", status); - vvd(dob, 0.1717653435756234676, 1e-12, "iauAtioq", "dob", status); - vvd(rob, 2.710085107988480746, 1e-12, "iauAtioq", "rob", status); - -} - -static void t_atoc13(int *status) -/* -** - - - - - - - - - -** t _ a t o c 1 3 -** - - - - - - - - - -** -** Test iauAtoc13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtoc13, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - ob1, ob2, rc, dc; - int j; - - - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - - ob1 = 2.710085107986886201; - ob2 = 0.1717653435758265198; - j = iauAtoc13 ( "R", ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &rc, &dc); - vvd(rc, 2.709956744659136129, 1e-12, "iauAtoc13", "R/rc", status); - vvd(dc, 0.1741696500898471362, 1e-12, "iauAtoc13", "R/dc", status); - viv(j, 0, "iauAtoc13", "R/j", status); - - ob1 = -0.09247619879782006106; - ob2 = 0.1717653435758265198; - j = iauAtoc13 ( "H", ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &rc, &dc); - vvd(rc, 2.709956744659734086, 1e-12, "iauAtoc13", "H/rc", status); - vvd(dc, 0.1741696500898471362, 1e-12, "iauAtoc13", "H/dc", status); - viv(j, 0, "iauAtoc13", "H/j", status); - - ob1 = 0.09233952224794989993; - ob2 = 1.407758704513722461; - j = iauAtoc13 ( "A", ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &rc, &dc); - vvd(rc, 2.709956744659734086, 1e-12, "iauAtoc13", "A/rc", status); - vvd(dc, 0.1741696500898471366, 1e-12, "iauAtoc13", "A/dc", status); - viv(j, 0, "iauAtoc13", "A/j", status); - -} - -static void t_atoi13(int *status) -/* -** - - - - - - - - - -** t _ a t o i 1 3 -** - - - - - - - - - -** -** Test iauAtoi13 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauAtoi13, vvd, viv -** -** This revision: 2021 January 5 -*/ -{ - double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, - ob1, ob2, ri, di; - int j; - - - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - - ob1 = 2.710085107986886201; - ob2 = 0.1717653435758265198; - j = iauAtoi13 ( "R", ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &ri, &di); - vvd(ri, 2.710121574447540810, 1e-12, "iauAtoi13", "R/ri", status); - vvd(di, 0.1729371839116608778, 1e-12, "iauAtoi13", "R/di", status); - viv(j, 0, "iauAtoi13", "R/J", status); - - ob1 = -0.09247619879782006106; - ob2 = 0.1717653435758265198; - j = iauAtoi13 ( "H", ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &ri, &di); - vvd(ri, 2.710121574448138676, 1e-12, "iauAtoi13", "H/ri", status); - vvd(di, 0.1729371839116608778, 1e-12, "iauAtoi13", "H/di", status); - viv(j, 0, "iauAtoi13", "H/J", status); - - ob1 = 0.09233952224794989993; - ob2 = 1.407758704513722461; - j = iauAtoi13 ( "A", ob1, ob2, utc1, utc2, dut1, - elong, phi, hm, xp, yp, phpa, tc, rh, wl, - &ri, &di); - vvd(ri, 2.710121574448138676, 1e-12, "iauAtoi13", "A/ri", status); - vvd(di, 0.1729371839116608781, 1e-12, "iauAtoi13", "A/di", status); - viv(j, 0, "iauAtoi13", "A/J", status); - -} - -static void t_atoiq(int *status) -/* -** - - - - - - - - -** t _ a t o i q -** - - - - - - - - -* -** Test iauAtoiq function. -* -** Returned: -** status int FALSE = success, TRUE = fail -* -** Called: iauApio13, iauAtoiq, vvd -* -** This revision: 2021 January 5 -*/ -{ - double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl, - ob1, ob2, ri, di; - iauASTROM astrom; - - - utc1 = 2456384.5; - utc2 = 0.969254051; - dut1 = 0.1550675; - elong = -0.527800806; - phi = -1.2345856; - hm = 2738.0; - xp = 2.47230737e-7; - yp = 1.82640464e-6; - phpa = 731.0; - tc = 12.8; - rh = 0.59; - wl = 0.55; - (void) iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, - phpa, tc, rh, wl, &astrom); - - ob1 = 2.710085107986886201; - ob2 = 0.1717653435758265198; - iauAtoiq("R", ob1, ob2, &astrom, &ri, &di); - vvd(ri, 2.710121574447540810, 1e-12, - "iauAtoiq", "R/ri", status); - vvd(di, 0.17293718391166087785, 1e-12, - "iauAtoiq", "R/di", status); - - ob1 = -0.09247619879782006106; - ob2 = 0.1717653435758265198; - iauAtoiq("H", ob1, ob2, &astrom, &ri, &di); - vvd(ri, 2.710121574448138676, 1e-12, - "iauAtoiq", "H/ri", status); - vvd(di, 0.1729371839116608778, 1e-12, - "iauAtoiq", "H/di", status); - - ob1 = 0.09233952224794989993; - ob2 = 1.407758704513722461; - iauAtoiq("A", ob1, ob2, &astrom, &ri, &di); - vvd(ri, 2.710121574448138676, 1e-12, - "iauAtoiq", "A/ri", status); - vvd(di, 0.1729371839116608781, 1e-12, - "iauAtoiq", "A/di", status); - -} - -static void t_bi00(int *status) -/* -** - - - - - - - -** t _ b i 0 0 -** - - - - - - - -** -** Test iauBi00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauBi00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsibi, depsbi, dra; - - iauBi00(&dpsibi, &depsbi, &dra); - - vvd(dpsibi, -0.2025309152835086613e-6, 1e-12, - "iauBi00", "dpsibi", status); - vvd(depsbi, -0.3306041454222147847e-7, 1e-12, - "iauBi00", "depsbi", status); - vvd(dra, -0.7078279744199225506e-7, 1e-12, - "iauBi00", "dra", status); -} - -static void t_bp00(int *status) -/* -** - - - - - - - -** t _ b p 0 0 -** - - - - - - - -** -** Test iauBp00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauBp00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rb[3][3], rp[3][3], rbp[3][3]; - - - iauBp00(2400000.5, 50123.9999, rb, rp, rbp); - - vvd(rb[0][0], 0.9999999999999942498, 1e-12, - "iauBp00", "rb11", status); - vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, - "iauBp00", "rb12", status); - vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, - "iauBp00", "rb13", status); - vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, - "iauBp00", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauBp00", "rb22", status); - vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, - "iauBp00", "rb23", status); - vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, - "iauBp00", "rb31", status); - vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, - "iauBp00", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauBp00", "rb33", status); - - vvd(rp[0][0], 0.9999995504864048241, 1e-12, - "iauBp00", "rp11", status); - vvd(rp[0][1], 0.8696113836207084411e-3, 1e-14, - "iauBp00", "rp12", status); - vvd(rp[0][2], 0.3778928813389333402e-3, 1e-14, - "iauBp00", "rp13", status); - vvd(rp[1][0], -0.8696113818227265968e-3, 1e-14, - "iauBp00", "rp21", status); - vvd(rp[1][1], 0.9999996218879365258, 1e-12, - "iauBp00", "rp22", status); - vvd(rp[1][2], -0.1690679263009242066e-6, 1e-14, - "iauBp00", "rp23", status); - vvd(rp[2][0], -0.3778928854764695214e-3, 1e-14, - "iauBp00", "rp31", status); - vvd(rp[2][1], -0.1595521004195286491e-6, 1e-14, - "iauBp00", "rp32", status); - vvd(rp[2][2], 0.9999999285984682756, 1e-12, - "iauBp00", "rp33", status); - - vvd(rbp[0][0], 0.9999995505175087260, 1e-12, - "iauBp00", "rbp11", status); - vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14, - "iauBp00", "rbp12", status); - vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14, - "iauBp00", "rbp13", status); - vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14, - "iauBp00", "rbp21", status); - vvd(rbp[1][1], 0.9999996219494925900, 1e-12, - "iauBp00", "rbp22", status); - vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14, - "iauBp00", "rbp23", status); - vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14, - "iauBp00", "rbp31", status); - vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14, - "iauBp00", "rbp32", status); - vvd(rbp[2][2], 0.9999999285680153377, 1e-12, - "iauBp00", "rbp33", status); -} - -static void t_bp06(int *status) -/* -** - - - - - - - -** t _ b p 0 6 -** - - - - - - - -** -** Test iauBp06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauBp06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rb[3][3], rp[3][3], rbp[3][3]; - - - iauBp06(2400000.5, 50123.9999, rb, rp, rbp); - - vvd(rb[0][0], 0.9999999999999942497, 1e-12, - "iauBp06", "rb11", status); - vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, - "iauBp06", "rb12", status); - vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, - "iauBp06", "rb13", status); - vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, - "iauBp06", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauBp06", "rb22", status); - vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, - "iauBp06", "rb23", status); - vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, - "iauBp06", "rb31", status); - vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, - "iauBp06", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauBp06", "rb33", status); - - vvd(rp[0][0], 0.9999995504864960278, 1e-12, - "iauBp06", "rp11", status); - vvd(rp[0][1], 0.8696112578855404832e-3, 1e-14, - "iauBp06", "rp12", status); - vvd(rp[0][2], 0.3778929293341390127e-3, 1e-14, - "iauBp06", "rp13", status); - vvd(rp[1][0], -0.8696112560510186244e-3, 1e-14, - "iauBp06", "rp21", status); - vvd(rp[1][1], 0.9999996218880458820, 1e-12, - "iauBp06", "rp22", status); - vvd(rp[1][2], -0.1691646168941896285e-6, 1e-14, - "iauBp06", "rp23", status); - vvd(rp[2][0], -0.3778929335557603418e-3, 1e-14, - "iauBp06", "rp31", status); - vvd(rp[2][1], -0.1594554040786495076e-6, 1e-14, - "iauBp06", "rp32", status); - vvd(rp[2][2], 0.9999999285984501222, 1e-12, - "iauBp06", "rp33", status); - - vvd(rbp[0][0], 0.9999995505176007047, 1e-12, - "iauBp06", "rbp11", status); - vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14, - "iauBp06", "rbp12", status); - vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14, - "iauBp06", "rbp13", status); - vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14, - "iauBp06", "rbp21", status); - vvd(rbp[1][1], 0.9999996219496027161, 1e-12, - "iauBp06", "rbp22", status); - vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14, - "iauBp06", "rbp23", status); - vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14, - "iauBp06", "rbp31", status); - vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14, - "iauBp06", "rbp32", status); - vvd(rbp[2][2], 0.9999999285679971958, 1e-12, - "iauBp06", "rbp33", status); -} - -static void t_bpn2xy(int *status) -/* -** - - - - - - - - - -** t _ b p n 2 x y -** - - - - - - - - - -** -** Test iauBpn2xy function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauBpn2xy, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbpn[3][3], x, y; - - - rbpn[0][0] = 9.999962358680738e-1; - rbpn[0][1] = -2.516417057665452e-3; - rbpn[0][2] = -1.093569785342370e-3; - - rbpn[1][0] = 2.516462370370876e-3; - rbpn[1][1] = 9.999968329010883e-1; - rbpn[1][2] = 4.006159587358310e-5; - - rbpn[2][0] = 1.093465510215479e-3; - rbpn[2][1] = -4.281337229063151e-5; - rbpn[2][2] = 9.999994012499173e-1; - - iauBpn2xy(rbpn, &x, &y); - - vvd(x, 1.093465510215479e-3, 1e-12, "iauBpn2xy", "x", status); - vvd(y, -4.281337229063151e-5, 1e-12, "iauBpn2xy", "y", status); - -} - -static void t_c2i00a(int *status) -/* -** - - - - - - - - - -** t _ c 2 i 0 0 a -** - - - - - - - - - -** -** Test iauC2i00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2i00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rc2i[3][3]; - - - iauC2i00a(2400000.5, 53736.0, rc2i); - - vvd(rc2i[0][0], 0.9999998323037165557, 1e-12, - "iauC2i00a", "11", status); - vvd(rc2i[0][1], 0.5581526348992140183e-9, 1e-12, - "iauC2i00a", "12", status); - vvd(rc2i[0][2], -0.5791308477073443415e-3, 1e-12, - "iauC2i00a", "13", status); - - vvd(rc2i[1][0], -0.2384266227870752452e-7, 1e-12, - "iauC2i00a", "21", status); - vvd(rc2i[1][1], 0.9999999991917405258, 1e-12, - "iauC2i00a", "22", status); - vvd(rc2i[1][2], -0.4020594955028209745e-4, 1e-12, - "iauC2i00a", "23", status); - - vvd(rc2i[2][0], 0.5791308472168152904e-3, 1e-12, - "iauC2i00a", "31", status); - vvd(rc2i[2][1], 0.4020595661591500259e-4, 1e-12, - "iauC2i00a", "32", status); - vvd(rc2i[2][2], 0.9999998314954572304, 1e-12, - "iauC2i00a", "33", status); - -} - -static void t_c2i00b(int *status) -/* -** - - - - - - - - - -** t _ c 2 i 0 0 b -** - - - - - - - - - -** -** Test iauC2i00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2i00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rc2i[3][3]; - - - iauC2i00b(2400000.5, 53736.0, rc2i); - - vvd(rc2i[0][0], 0.9999998323040954356, 1e-12, - "iauC2i00b", "11", status); - vvd(rc2i[0][1], 0.5581526349131823372e-9, 1e-12, - "iauC2i00b", "12", status); - vvd(rc2i[0][2], -0.5791301934855394005e-3, 1e-12, - "iauC2i00b", "13", status); - - vvd(rc2i[1][0], -0.2384239285499175543e-7, 1e-12, - "iauC2i00b", "21", status); - vvd(rc2i[1][1], 0.9999999991917574043, 1e-12, - "iauC2i00b", "22", status); - vvd(rc2i[1][2], -0.4020552974819030066e-4, 1e-12, - "iauC2i00b", "23", status); - - vvd(rc2i[2][0], 0.5791301929950208873e-3, 1e-12, - "iauC2i00b", "31", status); - vvd(rc2i[2][1], 0.4020553681373720832e-4, 1e-12, - "iauC2i00b", "32", status); - vvd(rc2i[2][2], 0.9999998314958529887, 1e-12, - "iauC2i00b", "33", status); - -} - -static void t_c2i06a(int *status) -/* -** - - - - - - - - - -** t _ c 2 i 0 6 a -** - - - - - - - - - -** -** Test iauC2i06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2i06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rc2i[3][3]; - - - iauC2i06a(2400000.5, 53736.0, rc2i); - - vvd(rc2i[0][0], 0.9999998323037159379, 1e-12, - "iauC2i06a", "11", status); - vvd(rc2i[0][1], 0.5581121329587613787e-9, 1e-12, - "iauC2i06a", "12", status); - vvd(rc2i[0][2], -0.5791308487740529749e-3, 1e-12, - "iauC2i06a", "13", status); - - vvd(rc2i[1][0], -0.2384253169452306581e-7, 1e-12, - "iauC2i06a", "21", status); - vvd(rc2i[1][1], 0.9999999991917467827, 1e-12, - "iauC2i06a", "22", status); - vvd(rc2i[1][2], -0.4020579392895682558e-4, 1e-12, - "iauC2i06a", "23", status); - - vvd(rc2i[2][0], 0.5791308482835292617e-3, 1e-12, - "iauC2i06a", "31", status); - vvd(rc2i[2][1], 0.4020580099454020310e-4, 1e-12, - "iauC2i06a", "32", status); - vvd(rc2i[2][2], 0.9999998314954628695, 1e-12, - "iauC2i06a", "33", status); - -} - -static void t_c2ibpn(int *status) -/* -** - - - - - - - - - -** t _ c 2 i b p n -** - - - - - - - - - -** -** Test iauC2ibpn function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2ibpn, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbpn[3][3], rc2i[3][3]; - - - rbpn[0][0] = 9.999962358680738e-1; - rbpn[0][1] = -2.516417057665452e-3; - rbpn[0][2] = -1.093569785342370e-3; - - rbpn[1][0] = 2.516462370370876e-3; - rbpn[1][1] = 9.999968329010883e-1; - rbpn[1][2] = 4.006159587358310e-5; - - rbpn[2][0] = 1.093465510215479e-3; - rbpn[2][1] = -4.281337229063151e-5; - rbpn[2][2] = 9.999994012499173e-1; - - iauC2ibpn(2400000.5, 50123.9999, rbpn, rc2i); - - vvd(rc2i[0][0], 0.9999994021664089977, 1e-12, - "iauC2ibpn", "11", status); - vvd(rc2i[0][1], -0.3869195948017503664e-8, 1e-12, - "iauC2ibpn", "12", status); - vvd(rc2i[0][2], -0.1093465511383285076e-2, 1e-12, - "iauC2ibpn", "13", status); - - vvd(rc2i[1][0], 0.5068413965715446111e-7, 1e-12, - "iauC2ibpn", "21", status); - vvd(rc2i[1][1], 0.9999999990835075686, 1e-12, - "iauC2ibpn", "22", status); - vvd(rc2i[1][2], 0.4281334246452708915e-4, 1e-12, - "iauC2ibpn", "23", status); - - vvd(rc2i[2][0], 0.1093465510215479000e-2, 1e-12, - "iauC2ibpn", "31", status); - vvd(rc2i[2][1], -0.4281337229063151000e-4, 1e-12, - "iauC2ibpn", "32", status); - vvd(rc2i[2][2], 0.9999994012499173103, 1e-12, - "iauC2ibpn", "33", status); - -} - -static void t_c2ixy(int *status) -/* -** - - - - - - - - -** t _ c 2 i x y -** - - - - - - - - -** -** Test iauC2ixy function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2ixy, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, rc2i[3][3]; - - - x = 0.5791308486706011000e-3; - y = 0.4020579816732961219e-4; - - iauC2ixy(2400000.5, 53736, x, y, rc2i); - - vvd(rc2i[0][0], 0.9999998323037157138, 1e-12, - "iauC2ixy", "11", status); - vvd(rc2i[0][1], 0.5581526349032241205e-9, 1e-12, - "iauC2ixy", "12", status); - vvd(rc2i[0][2], -0.5791308491611263745e-3, 1e-12, - "iauC2ixy", "13", status); - - vvd(rc2i[1][0], -0.2384257057469842953e-7, 1e-12, - "iauC2ixy", "21", status); - vvd(rc2i[1][1], 0.9999999991917468964, 1e-12, - "iauC2ixy", "22", status); - vvd(rc2i[1][2], -0.4020579110172324363e-4, 1e-12, - "iauC2ixy", "23", status); - - vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12, - "iauC2ixy", "31", status); - vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12, - "iauC2ixy", "32", status); - vvd(rc2i[2][2], 0.9999998314954627590, 1e-12, - "iauC2ixy", "33", status); - -} - -static void t_c2ixys(int *status) -/* -** - - - - - - - - - -** t _ c 2 i x y s -** - - - - - - - - - -** -** Test iauC2ixys function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2ixys, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, s, rc2i[3][3]; - - - x = 0.5791308486706011000e-3; - y = 0.4020579816732961219e-4; - s = -0.1220040848472271978e-7; - - iauC2ixys(x, y, s, rc2i); - - vvd(rc2i[0][0], 0.9999998323037157138, 1e-12, - "iauC2ixys", "11", status); - vvd(rc2i[0][1], 0.5581984869168499149e-9, 1e-12, - "iauC2ixys", "12", status); - vvd(rc2i[0][2], -0.5791308491611282180e-3, 1e-12, - "iauC2ixys", "13", status); - - vvd(rc2i[1][0], -0.2384261642670440317e-7, 1e-12, - "iauC2ixys", "21", status); - vvd(rc2i[1][1], 0.9999999991917468964, 1e-12, - "iauC2ixys", "22", status); - vvd(rc2i[1][2], -0.4020579110169668931e-4, 1e-12, - "iauC2ixys", "23", status); - - vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12, - "iauC2ixys", "31", status); - vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12, - "iauC2ixys", "32", status); - vvd(rc2i[2][2], 0.9999998314954627590, 1e-12, - "iauC2ixys", "33", status); - -} - -static void t_c2s(int *status) -/* -** - - - - - - -** t _ c 2 s -** - - - - - - -** -** Test iauC2s function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2s, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3], theta, phi; - - - p[0] = 100.0; - p[1] = -50.0; - p[2] = 25.0; - - iauC2s(p, &theta, &phi); - - vvd(theta, -0.4636476090008061162, 1e-14, "iauC2s", "theta", status); - vvd(phi, 0.2199879773954594463, 1e-14, "iauC2s", "phi", status); - -} - -static void t_c2t00a(int *status) -/* -** - - - - - - - - - -** t _ c 2 t 0 0 a -** - - - - - - - - - -** -** Test iauC2t00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2t00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double tta, ttb, uta, utb, xp, yp, rc2t[3][3]; - - - tta = 2400000.5; - uta = 2400000.5; - ttb = 53736.0; - utb = 53736.0; - xp = 2.55060238e-7; - yp = 1.860359247e-6; - - iauC2t00a(tta, ttb, uta, utb, xp, yp, rc2t); - - vvd(rc2t[0][0], -0.1810332128307182668, 1e-12, - "iauC2t00a", "11", status); - vvd(rc2t[0][1], 0.9834769806938457836, 1e-12, - "iauC2t00a", "12", status); - vvd(rc2t[0][2], 0.6555535638688341725e-4, 1e-12, - "iauC2t00a", "13", status); - - vvd(rc2t[1][0], -0.9834768134135984552, 1e-12, - "iauC2t00a", "21", status); - vvd(rc2t[1][1], -0.1810332203649520727, 1e-12, - "iauC2t00a", "22", status); - vvd(rc2t[1][2], 0.5749801116141056317e-3, 1e-12, - "iauC2t00a", "23", status); - - vvd(rc2t[2][0], 0.5773474014081406921e-3, 1e-12, - "iauC2t00a", "31", status); - vvd(rc2t[2][1], 0.3961832391770163647e-4, 1e-12, - "iauC2t00a", "32", status); - vvd(rc2t[2][2], 0.9999998325501692289, 1e-12, - "iauC2t00a", "33", status); - -} - -static void t_c2t00b(int *status) -/* -** - - - - - - - - - -** t _ c 2 t 0 0 b -** - - - - - - - - - -** -** Test iauC2t00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2t00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double tta, ttb, uta, utb, xp, yp, rc2t[3][3]; - - - tta = 2400000.5; - uta = 2400000.5; - ttb = 53736.0; - utb = 53736.0; - xp = 2.55060238e-7; - yp = 1.860359247e-6; - - iauC2t00b(tta, ttb, uta, utb, xp, yp, rc2t); - - vvd(rc2t[0][0], -0.1810332128439678965, 1e-12, - "iauC2t00b", "11", status); - vvd(rc2t[0][1], 0.9834769806913872359, 1e-12, - "iauC2t00b", "12", status); - vvd(rc2t[0][2], 0.6555565082458415611e-4, 1e-12, - "iauC2t00b", "13", status); - - vvd(rc2t[1][0], -0.9834768134115435923, 1e-12, - "iauC2t00b", "21", status); - vvd(rc2t[1][1], -0.1810332203784001946, 1e-12, - "iauC2t00b", "22", status); - vvd(rc2t[1][2], 0.5749793922030017230e-3, 1e-12, - "iauC2t00b", "23", status); - - vvd(rc2t[2][0], 0.5773467471863534901e-3, 1e-12, - "iauC2t00b", "31", status); - vvd(rc2t[2][1], 0.3961790411549945020e-4, 1e-12, - "iauC2t00b", "32", status); - vvd(rc2t[2][2], 0.9999998325505635738, 1e-12, - "iauC2t00b", "33", status); - -} - -static void t_c2t06a(int *status) -/* -** - - - - - - - - - -** t _ c 2 t 0 6 a -** - - - - - - - - - -** -** Test iauC2t06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2t06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double tta, ttb, uta, utb, xp, yp, rc2t[3][3]; - - - tta = 2400000.5; - uta = 2400000.5; - ttb = 53736.0; - utb = 53736.0; - xp = 2.55060238e-7; - yp = 1.860359247e-6; - - iauC2t06a(tta, ttb, uta, utb, xp, yp, rc2t); - - vvd(rc2t[0][0], -0.1810332128305897282, 1e-12, - "iauC2t06a", "11", status); - vvd(rc2t[0][1], 0.9834769806938592296, 1e-12, - "iauC2t06a", "12", status); - vvd(rc2t[0][2], 0.6555550962998436505e-4, 1e-12, - "iauC2t06a", "13", status); - - vvd(rc2t[1][0], -0.9834768134136214897, 1e-12, - "iauC2t06a", "21", status); - vvd(rc2t[1][1], -0.1810332203649130832, 1e-12, - "iauC2t06a", "22", status); - vvd(rc2t[1][2], 0.5749800844905594110e-3, 1e-12, - "iauC2t06a", "23", status); - - vvd(rc2t[2][0], 0.5773474024748545878e-3, 1e-12, - "iauC2t06a", "31", status); - vvd(rc2t[2][1], 0.3961816829632690581e-4, 1e-12, - "iauC2t06a", "32", status); - vvd(rc2t[2][2], 0.9999998325501747785, 1e-12, - "iauC2t06a", "33", status); - -} - -static void t_c2tcio(int *status) -/* -** - - - - - - - - - -** t _ c 2 t c i o -** - - - - - - - - - -** -** Test iauC2tcio function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2tcio, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rc2i[3][3], era, rpom[3][3], rc2t[3][3]; - - - rc2i[0][0] = 0.9999998323037164738; - rc2i[0][1] = 0.5581526271714303683e-9; - rc2i[0][2] = -0.5791308477073443903e-3; - - rc2i[1][0] = -0.2384266227524722273e-7; - rc2i[1][1] = 0.9999999991917404296; - rc2i[1][2] = -0.4020594955030704125e-4; - - rc2i[2][0] = 0.5791308472168153320e-3; - rc2i[2][1] = 0.4020595661593994396e-4; - rc2i[2][2] = 0.9999998314954572365; - - era = 1.75283325530307; - - rpom[0][0] = 0.9999999999999674705; - rpom[0][1] = -0.1367174580728847031e-10; - rpom[0][2] = 0.2550602379999972723e-6; - - rpom[1][0] = 0.1414624947957029721e-10; - rpom[1][1] = 0.9999999999982694954; - rpom[1][2] = -0.1860359246998866338e-5; - - rpom[2][0] = -0.2550602379741215275e-6; - rpom[2][1] = 0.1860359247002413923e-5; - rpom[2][2] = 0.9999999999982369658; - - - iauC2tcio(rc2i, era, rpom, rc2t); - - vvd(rc2t[0][0], -0.1810332128307110439, 1e-12, - "iauC2tcio", "11", status); - vvd(rc2t[0][1], 0.9834769806938470149, 1e-12, - "iauC2tcio", "12", status); - vvd(rc2t[0][2], 0.6555535638685466874e-4, 1e-12, - "iauC2tcio", "13", status); - - vvd(rc2t[1][0], -0.9834768134135996657, 1e-12, - "iauC2tcio", "21", status); - vvd(rc2t[1][1], -0.1810332203649448367, 1e-12, - "iauC2tcio", "22", status); - vvd(rc2t[1][2], 0.5749801116141106528e-3, 1e-12, - "iauC2tcio", "23", status); - - vvd(rc2t[2][0], 0.5773474014081407076e-3, 1e-12, - "iauC2tcio", "31", status); - vvd(rc2t[2][1], 0.3961832391772658944e-4, 1e-12, - "iauC2tcio", "32", status); - vvd(rc2t[2][2], 0.9999998325501691969, 1e-12, - "iauC2tcio", "33", status); - -} - -static void t_c2teqx(int *status) -/* -** - - - - - - - - - -** t _ c 2 t e q x -** - - - - - - - - - -** -** Test iauC2teqx function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2teqx, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbpn[3][3], gst, rpom[3][3], rc2t[3][3]; - - - rbpn[0][0] = 0.9999989440476103608; - rbpn[0][1] = -0.1332881761240011518e-2; - rbpn[0][2] = -0.5790767434730085097e-3; - - rbpn[1][0] = 0.1332858254308954453e-2; - rbpn[1][1] = 0.9999991109044505944; - rbpn[1][2] = -0.4097782710401555759e-4; - - rbpn[2][0] = 0.5791308472168153320e-3; - rbpn[2][1] = 0.4020595661593994396e-4; - rbpn[2][2] = 0.9999998314954572365; - - gst = 1.754166138040730516; - - rpom[0][0] = 0.9999999999999674705; - rpom[0][1] = -0.1367174580728847031e-10; - rpom[0][2] = 0.2550602379999972723e-6; - - rpom[1][0] = 0.1414624947957029721e-10; - rpom[1][1] = 0.9999999999982694954; - rpom[1][2] = -0.1860359246998866338e-5; - - rpom[2][0] = -0.2550602379741215275e-6; - rpom[2][1] = 0.1860359247002413923e-5; - rpom[2][2] = 0.9999999999982369658; - - iauC2teqx(rbpn, gst, rpom, rc2t); - - vvd(rc2t[0][0], -0.1810332128528685730, 1e-12, - "iauC2teqx", "11", status); - vvd(rc2t[0][1], 0.9834769806897685071, 1e-12, - "iauC2teqx", "12", status); - vvd(rc2t[0][2], 0.6555535639982634449e-4, 1e-12, - "iauC2teqx", "13", status); - - vvd(rc2t[1][0], -0.9834768134095211257, 1e-12, - "iauC2teqx", "21", status); - vvd(rc2t[1][1], -0.1810332203871023800, 1e-12, - "iauC2teqx", "22", status); - vvd(rc2t[1][2], 0.5749801116126438962e-3, 1e-12, - "iauC2teqx", "23", status); - - vvd(rc2t[2][0], 0.5773474014081539467e-3, 1e-12, - "iauC2teqx", "31", status); - vvd(rc2t[2][1], 0.3961832391768640871e-4, 1e-12, - "iauC2teqx", "32", status); - vvd(rc2t[2][2], 0.9999998325501691969, 1e-12, - "iauC2teqx", "33", status); - -} - -static void t_c2tpe(int *status) -/* -** - - - - - - - - -** t _ c 2 t p e -** - - - - - - - - -** -** Test iauC2tpe function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2tpe, vvd -** -** This revision: 2013 August 7 -*/ -{ - double tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t[3][3]; - - - tta = 2400000.5; - uta = 2400000.5; - ttb = 53736.0; - utb = 53736.0; - deps = 0.4090789763356509900; - dpsi = -0.9630909107115582393e-5; - xp = 2.55060238e-7; - yp = 1.860359247e-6; - - iauC2tpe(tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t); - - vvd(rc2t[0][0], -0.1813677995763029394, 1e-12, - "iauC2tpe", "11", status); - vvd(rc2t[0][1], 0.9023482206891683275, 1e-12, - "iauC2tpe", "12", status); - vvd(rc2t[0][2], -0.3909902938641085751, 1e-12, - "iauC2tpe", "13", status); - - vvd(rc2t[1][0], -0.9834147641476804807, 1e-12, - "iauC2tpe", "21", status); - vvd(rc2t[1][1], -0.1659883635434995121, 1e-12, - "iauC2tpe", "22", status); - vvd(rc2t[1][2], 0.7309763898042819705e-1, 1e-12, - "iauC2tpe", "23", status); - - vvd(rc2t[2][0], 0.1059685430673215247e-2, 1e-12, - "iauC2tpe", "31", status); - vvd(rc2t[2][1], 0.3977631855605078674, 1e-12, - "iauC2tpe", "32", status); - vvd(rc2t[2][2], 0.9174875068792735362, 1e-12, - "iauC2tpe", "33", status); - -} - -static void t_c2txy(int *status) -/* -** - - - - - - - - -** t _ c 2 t x y -** - - - - - - - - -** -** Test iauC2txy function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauC2txy, vvd -** -** This revision: 2013 August 7 -*/ -{ - double tta, ttb, uta, utb, x, y, xp, yp, rc2t[3][3]; - - - tta = 2400000.5; - uta = 2400000.5; - ttb = 53736.0; - utb = 53736.0; - x = 0.5791308486706011000e-3; - y = 0.4020579816732961219e-4; - xp = 2.55060238e-7; - yp = 1.860359247e-6; - - iauC2txy(tta, ttb, uta, utb, x, y, xp, yp, rc2t); - - vvd(rc2t[0][0], -0.1810332128306279253, 1e-12, - "iauC2txy", "11", status); - vvd(rc2t[0][1], 0.9834769806938520084, 1e-12, - "iauC2txy", "12", status); - vvd(rc2t[0][2], 0.6555551248057665829e-4, 1e-12, - "iauC2txy", "13", status); - - vvd(rc2t[1][0], -0.9834768134136142314, 1e-12, - "iauC2txy", "21", status); - vvd(rc2t[1][1], -0.1810332203649529312, 1e-12, - "iauC2txy", "22", status); - vvd(rc2t[1][2], 0.5749800843594139912e-3, 1e-12, - "iauC2txy", "23", status); - - vvd(rc2t[2][0], 0.5773474028619264494e-3, 1e-12, - "iauC2txy", "31", status); - vvd(rc2t[2][1], 0.3961816546911624260e-4, 1e-12, - "iauC2txy", "32", status); - vvd(rc2t[2][2], 0.9999998325501746670, 1e-12, - "iauC2txy", "33", status); - -} - -static void t_cal2jd(int *status) -/* -** - - - - - - - - - -** t _ c a l 2 j d -** - - - - - - - - - -** -** Test iauCal2jd function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauCal2jd, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - int j; - double djm0, djm; - - - j = iauCal2jd(2003, 06, 01, &djm0, &djm); - - vvd(djm0, 2400000.5, 0.0, "iauCal2jd", "djm0", status); - vvd(djm, 52791.0, 0.0, "iauCal2jd", "djm", status); - - viv(j, 0, "iauCal2jd", "j", status); - -} - -static void t_cp(int *status) -/* -** - - - - - -** t _ c p -** - - - - - -** -** Test iauCp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauCp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3], c[3]; - - - p[0] = 0.3; - p[1] = 1.2; - p[2] = -2.5; - - iauCp(p, c); - - vvd(c[0], 0.3, 0.0, "iauCp", "1", status); - vvd(c[1], 1.2, 0.0, "iauCp", "2", status); - vvd(c[2], -2.5, 0.0, "iauCp", "3", status); -} - -static void t_cpv(int *status) -/* -** - - - - - - -** t _ c p v -** - - - - - - -** -** Test iauCpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauCpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double pv[2][3], c[2][3]; - - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = -0.5; - pv[1][1] = 3.1; - pv[1][2] = 0.9; - - iauCpv(pv, c); - - vvd(c[0][0], 0.3, 0.0, "iauCpv", "p1", status); - vvd(c[0][1], 1.2, 0.0, "iauCpv", "p2", status); - vvd(c[0][2], -2.5, 0.0, "iauCpv", "p3", status); - - vvd(c[1][0], -0.5, 0.0, "iauCpv", "v1", status); - vvd(c[1][1], 3.1, 0.0, "iauCpv", "v2", status); - vvd(c[1][2], 0.9, 0.0, "iauCpv", "v3", status); - -} - -static void t_cr(int *status) -/* -** - - - - - -** t _ c r -** - - - - - -** -** Test iauCr function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauCr, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], c[3][3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - iauCr(r, c); - - vvd(c[0][0], 2.0, 0.0, "iauCr", "11", status); - vvd(c[0][1], 3.0, 0.0, "iauCr", "12", status); - vvd(c[0][2], 2.0, 0.0, "iauCr", "13", status); - - vvd(c[1][0], 3.0, 0.0, "iauCr", "21", status); - vvd(c[1][1], 2.0, 0.0, "iauCr", "22", status); - vvd(c[1][2], 3.0, 0.0, "iauCr", "23", status); - - vvd(c[2][0], 3.0, 0.0, "iauCr", "31", status); - vvd(c[2][1], 4.0, 0.0, "iauCr", "32", status); - vvd(c[2][2], 5.0, 0.0, "iauCr", "33", status); -} - -static void t_d2dtf(int *status ) -/* -** - - - - - - - - -** t _ d 2 d t f -** - - - - - - - - -** -** Test iauD2dtf function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauD2dtf, viv -** -** This revision: 2013 August 7 -*/ -{ - int j, iy, im, id, ihmsf[4]; - - - j = iauD2dtf("UTC", 5, 2400000.5, 49533.99999, &iy, &im, &id, ihmsf); - - viv(iy, 1994, "iauD2dtf", "y", status); - viv(im, 6, "iauD2dtf", "mo", status); - viv(id, 30, "iauD2dtf", "d", status); - viv(ihmsf[0], 23, "iauD2dtf", "h", status); - viv(ihmsf[1], 59, "iauD2dtf", "m", status); - viv(ihmsf[2], 60, "iauD2dtf", "s", status); - viv(ihmsf[3], 13599, "iauD2dtf", "f", status); - viv(j, 0, "iauD2dtf", "j", status); - -} - -static void t_d2tf(int *status) -/* -** - - - - - - - -** t _ d 2 t f -** - - - - - - - -** -** Test iauD2tf function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauD2tf, viv, vvd -** -** This revision: 2013 August 7 -*/ -{ - int ihmsf[4]; - char s; - - - iauD2tf(4, -0.987654321, &s, ihmsf); - - viv((int)s, '-', "iauD2tf", "s", status); - - viv(ihmsf[0], 23, "iauD2tf", "0", status); - viv(ihmsf[1], 42, "iauD2tf", "1", status); - viv(ihmsf[2], 13, "iauD2tf", "2", status); - viv(ihmsf[3], 3333, "iauD2tf", "3", status); - -} - -static void t_dat(int *status) -/* -** - - - - - - -** t _ d a t -** - - - - - - -** -** Test iauDat function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauDat, vvd, viv -** -** This revision: 2016 July 11 -*/ -{ - int j; - double deltat; - - - j = iauDat(2003, 6, 1, 0.0, &deltat); - - vvd(deltat, 32.0, 0.0, "iauDat", "d1", status); - viv(j, 0, "iauDat", "j1", status); - - j = iauDat(2008, 1, 17, 0.0, &deltat); - - vvd(deltat, 33.0, 0.0, "iauDat", "d2", status); - viv(j, 0, "iauDat", "j2", status); - - j = iauDat(2017, 9, 1, 0.0, &deltat); - - vvd(deltat, 37.0, 0.0, "iauDat", "d3", status); - viv(j, 0, "iauDat", "j3", status); - -} - -static void t_dtdb(int *status) -/* -** - - - - - - - -** t _ d t d b -** - - - - - - - -** -** Test iauDtdb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauDtdb, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dtdb; - - - dtdb = iauDtdb(2448939.5, 0.123, 0.76543, 5.0123, 5525.242, 3190.0); - - vvd(dtdb, -0.1280368005936998991e-2, 1e-15, "iauDtdb", "", status); - -} - -static void t_dtf2d(int *status) -/* -** - - - - - - - - -** t _ d t f 2 d -** - - - - - - - - -** -** Test iauDtf2d function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauDtf2d, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double u1, u2; - int j; - - - j = iauDtf2d("UTC", 1994, 6, 30, 23, 59, 60.13599, &u1, &u2); - - vvd(u1+u2, 2449534.49999, 1e-6, "iauDtf2d", "u", status); - viv(j, 0, "iauDtf2d", "j", status); - -} - -static void t_eceq06(int *status) -/* -** - - - - - -** t _ e c e q 0 6 -** - - - - - -** -** Test iauEceq06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEceq06, vvd -** -** This revision: 2016 March 12 -*/ -{ - double date1, date2, dl, db, dr, dd; - - - date1 = 2456165.5; - date2 = 0.401182685; - dl = 5.1; - db = -0.9; - - iauEceq06(date1, date2, dl, db, &dr, &dd); - - vvd(dr, 5.533459733613627767, 1e-14, "iauEceq06", "dr", status); - vvd(dd, -1.246542932554480576, 1e-14, "iauEceq06", "dd", status); - -} - -static void t_ecm06(int *status) -/* -** - - - - - - - - -** t _ e c m 0 6 -** - - - - - - - - -** -** Test iauEcm06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEcm06, vvd -** -** This revision: 2016 March 12 -*/ -{ - double date1, date2, rm[3][3]; - - - date1 = 2456165.5; - date2 = 0.401182685; - - iauEcm06(date1, date2, rm); - - vvd(rm[0][0], 0.9999952427708701137, 1e-14, - "iauEcm06", "rm11", status); - vvd(rm[0][1], -0.2829062057663042347e-2, 1e-14, - "iauEcm06", "rm12", status); - vvd(rm[0][2], -0.1229163741100017629e-2, 1e-14, - "iauEcm06", "rm13", status); - vvd(rm[1][0], 0.3084546876908653562e-2, 1e-14, - "iauEcm06", "rm21", status); - vvd(rm[1][1], 0.9174891871550392514, 1e-14, - "iauEcm06", "rm22", status); - vvd(rm[1][2], 0.3977487611849338124, 1e-14, - "iauEcm06", "rm23", status); - vvd(rm[2][0], 0.2488512951527405928e-5, 1e-14, - "iauEcm06", "rm31", status); - vvd(rm[2][1], -0.3977506604161195467, 1e-14, - "iauEcm06", "rm32", status); - vvd(rm[2][2], 0.9174935488232863071, 1e-14, - "iauEcm06", "rm33", status); - -} - -static void t_ee00(int *status) -/* -** - - - - - - - -** t _ e e 0 0 -** - - - - - - - -** -** Test iauEe00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEe00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double epsa, dpsi, ee; - - - epsa = 0.4090789763356509900; - dpsi = -0.9630909107115582393e-5; - - ee = iauEe00(2400000.5, 53736.0, epsa, dpsi); - - vvd(ee, -0.8834193235367965479e-5, 1e-18, "iauEe00", "", status); - -} - -static void t_ee00a(int *status) -/* -** - - - - - - - - -** t _ e e 0 0 a -** - - - - - - - - -** -** Test iauEe00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEe00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double ee; - - - ee = iauEe00a(2400000.5, 53736.0); - - vvd(ee, -0.8834192459222588227e-5, 1e-18, "iauEe00a", "", status); - -} - -static void t_ee00b(int *status) -/* -** - - - - - - - - -** t _ e e 0 0 b -** - - - - - - - - -** -** Test iauEe00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEe00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double ee; - - - ee = iauEe00b(2400000.5, 53736.0); - - vvd(ee, -0.8835700060003032831e-5, 1e-18, "iauEe00b", "", status); - -} - -static void t_ee06a(int *status) -/* -** - - - - - - - - -** t _ e e 0 6 a -** - - - - - - - - -** -** Test iauEe06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEe06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double ee; - - - ee = iauEe06a(2400000.5, 53736.0); - - vvd(ee, -0.8834195072043790156e-5, 1e-15, "iauEe06a", "", status); -} - -static void t_eect00(int *status) -/* -** - - - - - - - - - -** t _ e e c t 0 0 -** - - - - - - - - - -** -** Test iauEect00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEect00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double eect; - - - eect = iauEect00(2400000.5, 53736.0); - - vvd(eect, 0.2046085004885125264e-8, 1e-20, "iauEect00", "", status); - -} - -static void t_eform(int *status) -/* -** - - - - - - - - -** t _ e f o r m -** - - - - - - - - -** -** Test iauEform function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEform, viv, vvd -** -** This revision: 2016 March 12 -*/ -{ - int j; - double a, f; - - j = iauEform(0, &a, &f); - - viv(j, -1, "iauEform", "j0", status); - - j = iauEform(WGS84, &a, &f); - - viv(j, 0, "iauEform", "j1", status); - vvd(a, 6378137.0, 1e-10, "iauEform", "a1", status); - vvd(f, 0.3352810664747480720e-2, 1e-18, "iauEform", "f1", status); - - j = iauEform(GRS80, &a, &f); - - viv(j, 0, "iauEform", "j2", status); - vvd(a, 6378137.0, 1e-10, "iauEform", "a2", status); - vvd(f, 0.3352810681182318935e-2, 1e-18, "iauEform", "f2", status); - - j = iauEform(WGS72, &a, &f); - - viv(j, 0, "iauEform", "j2", status); - vvd(a, 6378135.0, 1e-10, "iauEform", "a3", status); - vvd(f, 0.3352779454167504862e-2, 1e-18, "iauEform", "f3", status); - - j = iauEform(4, &a, &f); - viv(j, -1, "iauEform", "j3", status); -} - -static void t_eo06a(int *status) -/* -** - - - - - - - - -** t _ e o 0 6 a -** - - - - - - - - -** -** Test iauEo06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEo06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double eo; - - - eo = iauEo06a(2400000.5, 53736.0); - - vvd(eo, -0.1332882371941833644e-2, 1e-15, "iauEo06a", "", status); - -} - -static void t_eors(int *status) -/* -** - - - - - - - -** t _ e o r s -** - - - - - - - -** -** Test iauEors function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEors, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rnpb[3][3], s, eo; - - - rnpb[0][0] = 0.9999989440476103608; - rnpb[0][1] = -0.1332881761240011518e-2; - rnpb[0][2] = -0.5790767434730085097e-3; - - rnpb[1][0] = 0.1332858254308954453e-2; - rnpb[1][1] = 0.9999991109044505944; - rnpb[1][2] = -0.4097782710401555759e-4; - - rnpb[2][0] = 0.5791308472168153320e-3; - rnpb[2][1] = 0.4020595661593994396e-4; - rnpb[2][2] = 0.9999998314954572365; - - s = -0.1220040848472271978e-7; - - eo = iauEors(rnpb, s); - - vvd(eo, -0.1332882715130744606e-2, 1e-14, "iauEors", "", status); - -} - -static void t_epb(int *status) -/* -** - - - - - - -** t _ e p b -** - - - - - - -** -** Test iauEpb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEpb, vvd -** -** This revision: 2013 August 7 -*/ -{ - double epb; - - - epb = iauEpb(2415019.8135, 30103.18648); - - vvd(epb, 1982.418424159278580, 1e-12, "iauEpb", "", status); - -} - -static void t_epb2jd(int *status) -/* -** - - - - - - - - - -** t _ e p b 2 j d -** - - - - - - - - - -** -** Test iauEpb2jd function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEpb2jd, vvd -** -** This revision: 2013 August 7 -*/ -{ - double epb, djm0, djm; - - - epb = 1957.3; - - iauEpb2jd(epb, &djm0, &djm); - - vvd(djm0, 2400000.5, 1e-9, "iauEpb2jd", "djm0", status); - vvd(djm, 35948.1915101513, 1e-9, "iauEpb2jd", "mjd", status); - -} - -static void t_epj(int *status) -/* -** - - - - - - -** t _ e p j -** - - - - - - -** -** Test iauEpj function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEpj, vvd -** -** This revision: 2013 August 7 -*/ -{ - double epj; - - - epj = iauEpj(2451545, -7392.5); - - vvd(epj, 1979.760438056125941, 1e-12, "iauEpj", "", status); - -} - -static void t_epj2jd(int *status) -/* -** - - - - - - - - - -** t _ e p j 2 j d -** - - - - - - - - - -** -** Test iauEpj2jd function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEpj2jd, vvd -** -** This revision: 2013 August 7 -*/ -{ - double epj, djm0, djm; - - - epj = 1996.8; - - iauEpj2jd(epj, &djm0, &djm); - - vvd(djm0, 2400000.5, 1e-9, "iauEpj2jd", "djm0", status); - vvd(djm, 50375.7, 1e-9, "iauEpj2jd", "mjd", status); - -} - -static void t_epv00(int *status) -/* -** - - - - - - - - -** t _ e p v 0 0 -** - - - - - - - - -** -** Test iauEpv00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEpv00, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double pvh[2][3], pvb[2][3]; - int j; - - - j = iauEpv00(2400000.5, 53411.52501161, pvh, pvb); - - vvd(pvh[0][0], -0.7757238809297706813, 1e-14, - "iauEpv00", "ph(x)", status); - vvd(pvh[0][1], 0.5598052241363340596, 1e-14, - "iauEpv00", "ph(y)", status); - vvd(pvh[0][2], 0.2426998466481686993, 1e-14, - "iauEpv00", "ph(z)", status); - - vvd(pvh[1][0], -0.1091891824147313846e-1, 1e-15, - "iauEpv00", "vh(x)", status); - vvd(pvh[1][1], -0.1247187268440845008e-1, 1e-15, - "iauEpv00", "vh(y)", status); - vvd(pvh[1][2], -0.5407569418065039061e-2, 1e-15, - "iauEpv00", "vh(z)", status); - - vvd(pvb[0][0], -0.7714104440491111971, 1e-14, - "iauEpv00", "pb(x)", status); - vvd(pvb[0][1], 0.5598412061824171323, 1e-14, - "iauEpv00", "pb(y)", status); - vvd(pvb[0][2], 0.2425996277722452400, 1e-14, - "iauEpv00", "pb(z)", status); - - vvd(pvb[1][0], -0.1091874268116823295e-1, 1e-15, - "iauEpv00", "vb(x)", status); - vvd(pvb[1][1], -0.1246525461732861538e-1, 1e-15, - "iauEpv00", "vb(y)", status); - vvd(pvb[1][2], -0.5404773180966231279e-2, 1e-15, - "iauEpv00", "vb(z)", status); - - viv(j, 0, "iauEpv00", "j", status); - -} - -static void t_eqec06(int *status) -/* -** - - - - - - - - - -** t _ e q e c 0 6 -** - - - - - - - - - -** -** Test iauEqec06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEqec06, vvd -** -** This revision: 2016 March 12 -*/ -{ - double date1, date2, dr, dd, dl, db; - - - date1 = 1234.5; - date2 = 2440000.5; - dr = 1.234; - dd = 0.987; - - iauEqec06(date1, date2, dr, dd, &dl, &db); - - vvd(dl, 1.342509918994654619, 1e-14, "iauEqec06", "dl", status); - vvd(db, 0.5926215259704608132, 1e-14, "iauEqec06", "db", status); - -} - -static void t_eqeq94(int *status) -/* -** - - - - - - - - - -** t _ e q e q 9 4 -** - - - - - - - - - -** -** Test iauEqeq94 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEqeq94, vvd -** -** This revision: 2013 August 7 -*/ -{ - double eqeq; - - - eqeq = iauEqeq94(2400000.5, 41234.0); - - vvd(eqeq, 0.5357758254609256894e-4, 1e-17, "iauEqeq94", "", status); - -} - -static void t_era00(int *status) -/* -** - - - - - - - - -** t _ e r a 0 0 -** - - - - - - - - -** -** Test iauEra00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauEra00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double era00; - - - era00 = iauEra00(2400000.5, 54388.0); - - vvd(era00, 0.4022837240028158102, 1e-12, "iauEra00", "", status); - -} - -static void t_fad03(int *status) -/* -** - - - - - - - - -** t _ f a d 0 3 -** - - - - - - - - -** -** Test iauFad03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFad03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFad03(0.80), 1.946709205396925672, 1e-12, - "iauFad03", "", status); -} - -static void t_fae03(int *status) -/* -** - - - - - - - - -** t _ f a e 0 3 -** - - - - - - - - -** -** Test iauFae03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFae03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFae03(0.80), 1.744713738913081846, 1e-12, - "iauFae03", "", status); -} - -static void t_faf03(int *status) -/* -** - - - - - - - - -** t _ f a f 0 3 -** - - - - - - - - -** -** Test iauFaf03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFaf03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFaf03(0.80), 0.2597711366745499518, 1e-12, - "iauFaf03", "", status); -} - -static void t_faju03(int *status) -/* -** - - - - - - - - - -** t _ f a j u 0 3 -** - - - - - - - - - -** -** Test iauFaju03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFaju03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFaju03(0.80), 5.275711665202481138, 1e-12, - "iauFaju03", "", status); -} - -static void t_fal03(int *status) -/* -** - - - - - - - - -** t _ f a l 0 3 -** - - - - - - - - -** -** Test iauFal03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFal03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFal03(0.80), 5.132369751108684150, 1e-12, - "iauFal03", "", status); -} - -static void t_falp03(int *status) -/* -** - - - - - - - - - -** t _ f a l p 0 3 -** - - - - - - - - - -** -** Test iauFalp03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFalp03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFalp03(0.80), 6.226797973505507345, 1e-12, - "iauFalp03", "", status); -} - -static void t_fama03(int *status) -/* -** - - - - - - - - - -** t _ f a m a 0 3 -** - - - - - - - - - -** -** Test iauFama03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFama03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFama03(0.80), 3.275506840277781492, 1e-12, - "iauFama03", "", status); -} - -static void t_fame03(int *status) -/* -** - - - - - - - - - -** t _ f a m e 0 3 -** - - - - - - - - - -** -** Test iauFame03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFame03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFame03(0.80), 5.417338184297289661, 1e-12, - "iauFame03", "", status); -} - -static void t_fane03(int *status) -/* -** - - - - - - - - - -** t _ f a n e 0 3 -** - - - - - - - - - -** -** Test iauFane03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFane03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFane03(0.80), 2.079343830860413523, 1e-12, - "iauFane03", "", status); -} - -static void t_faom03(int *status) -/* -** - - - - - - - - - -** t _ f a o m 0 3 -** - - - - - - - - - -** -** Test iauFaom03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFaom03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFaom03(0.80), -5.973618440951302183, 1e-12, - "iauFaom03", "", status); -} - -static void t_fapa03(int *status) -/* -** - - - - - - - - - -** t _ f a p a 0 3 -** - - - - - - - - - -** -** Test iauFapa03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFapa03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFapa03(0.80), 0.1950884762240000000e-1, 1e-12, - "iauFapa03", "", status); -} - -static void t_fasa03(int *status) -/* -** - - - - - - - - - -** t _ f a s a 0 3 -** - - - - - - - - - -** -** Test iauFasa03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFasa03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFasa03(0.80), 5.371574539440827046, 1e-12, - "iauFasa03", "", status); -} - -static void t_faur03(int *status) -/* -** - - - - - - - - - -** t _ f a u r 0 3 -** - - - - - - - - - -** -** Test iauFaur03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFaur03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFaur03(0.80), 5.180636450180413523, 1e-12, - "iauFaur03", "", status); -} - -static void t_fave03(int *status) -/* -** - - - - - - - - - -** t _ f a v e 0 3 -** - - - - - - - - - -** -** Test iauFave03 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFave03, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauFave03(0.80), 3.424900460533758000, 1e-12, - "iauFave03", "", status); -} - -static void t_fk425(int *status) -/* -** - - - - - - - - -** t _ f k 4 2 5 -** - - - - - - - - -** -** Test iauFk425 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk425, vvd -** -** This revision: 2018 December 6 -*/ -{ - double r1950, d1950, dr1950, dd1950, p1950, v1950, - r2000, d2000, dr2000, dd2000, p2000, v2000; - - - r1950 = 0.07626899753879587532; - d1950 = -1.137405378399605780; - dr1950 = 0.1973749217849087460e-4; - dd1950 = 0.5659714913272723189e-5; - p1950 = 0.134; - v1950 = 8.7; - - iauFk425(r1950, d1950, dr1950, dd1950, p1950, v1950, - &r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000); - - vvd(r2000, 0.08757989933556446040, 1e-14, - "iauFk425", "r2000", status); - vvd(d2000, -1.132279113042091895, 1e-12, - "iauFk425", "d2000", status); - vvd(dr2000, 0.1953670614474396139e-4, 1e-17, - "iauFk425", "dr2000", status); - vvd(dd2000, 0.5637686678659640164e-5, 1e-18, - "iauFk425", "dd2000", status); - vvd(p2000, 0.1339919950582767871, 1e-13, "iauFk425", "p2000", status); - vvd(v2000, 8.736999669183529069, 1e-12, "iauFk425", "v2000", status); - -} - -static void t_fk45z(int *status) -/* -** - - - - - - - - -** t _ f k 4 5 z -** - - - - - - - - -** -** Test iauFk45z function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk45z, vvd -** -** This revision: 2018 December 6 -*/ -{ - double r1950, d1950, bepoch, r2000, d2000; - - - r1950 = 0.01602284975382960982; - d1950 = -0.1164347929099906024; - bepoch = 1954.677617625256806; - - iauFk45z(r1950, d1950, bepoch, &r2000, &d2000); - - vvd(r2000, 0.02719295911606862303, 1e-15, - "iauFk45z", "r2000", status); - vvd(d2000, -0.1115766001565926892, 1e-13, - "iauFk45z", "d2000", status); - -} - -static void t_fk524(int *status) -/* -** - - - - - - - - -** t _ f k 5 2 4 -** - - - - - - - - -** -** Test iauFk524 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk524, vvd -** -** This revision: 2018 December 6 -*/ -{ - double r2000, d2000, dr2000, dd2000, p2000, v2000, - r1950, d1950, dr1950, dd1950, p1950, v1950; - - - r2000 = 0.8723503576487275595; - d2000 = -0.7517076365138887672; - dr2000 = 0.2019447755430472323e-4; - dd2000 = 0.3541563940505160433e-5; - p2000 = 0.1559; - v2000 = 86.87; - - iauFk524(r2000, d2000, dr2000, dd2000, p2000, v2000, - &r1950, &d1950, &dr1950,&dd1950, &p1950, &v1950); - - vvd(r1950, 0.8636359659799603487, 1e-13, - "iauFk524", "r1950", status); - vvd(d1950, -0.7550281733160843059, 1e-13, - "iauFk524", "d1950", status); - vvd(dr1950, 0.2023628192747172486e-4, 1e-17, - "iauFk524", "dr1950", status); - vvd(dd1950, 0.3624459754935334718e-5, 1e-18, - "iauFk524", "dd1950", status); - vvd(p1950, 0.1560079963299390241, 1e-13, - "iauFk524", "p1950", status); - vvd(v1950, 86.79606353469163751, 1e-11, "iauFk524", "v1950", status); - -} - -static void t_fk52h(int *status) -/* -** - - - - - - - - -** t _ f k 5 2 h -** - - - - - - - - -** -** Test iauFk52h function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk52h, vvd -** -** This revision: 2021 January 5 -*/ -{ - double r5, d5, dr5, dd5, px5, rv5, rh, dh, drh, ddh, pxh, rvh; - - - r5 = 1.76779433; - d5 = -0.2917517103; - dr5 = -1.91851572e-7; - dd5 = -5.8468475e-6; - px5 = 0.379210; - rv5 = -7.6; - - iauFk52h(r5, d5, dr5, dd5, px5, rv5, - &rh, &dh, &drh, &ddh, &pxh, &rvh); - - vvd(rh, 1.767794226299947632, 1e-14, - "iauFk52h", "ra", status); - vvd(dh, -0.2917516070530391757, 1e-14, - "iauFk52h", "dec", status); - vvd(drh, -0.1961874125605721270e-6,1e-19, - "iauFk52h", "dr5", status); - vvd(ddh, -0.58459905176693911e-5, 1e-19, - "iauFk52h", "dd5", status); - vvd(pxh, 0.37921, 1e-14, - "iauFk52h", "px", status); - vvd(rvh, -7.6000000940000254, 1e-11, - "iauFk52h", "rv", status); - -} - -static void t_fk54z(int *status) -/* -** - - - - - - - - -** t _ f k 5 4 z -** - - - - - - - - -** -** Test iauFk54z function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk54z, vvd -** -** This revision: 2018 December 6 -*/ -{ - double r2000, d2000, bepoch, r1950, d1950, dr1950, dd1950; - - - r2000 = 0.02719026625066316119; - d2000 = -0.1115815170738754813; - bepoch = 1954.677308160316374; - - iauFk54z(r2000, d2000, bepoch, &r1950, &d1950, &dr1950, &dd1950); - - vvd(r1950, 0.01602015588390065476, 1e-14, - "iauFk54z", "r1950", status); - vvd(d1950, -0.1164397101110765346, 1e-13, - "iauFk54z", "d1950", status); - vvd(dr1950, -0.1175712648471090704e-7, 1e-20, - "iauFk54z", "dr1950", status); - vvd(dd1950, 0.2108109051316431056e-7, 1e-20, - "iauFk54z", "dd1950", status); - -} - -static void t_fk5hip(int *status) -/* -** - - - - - - - - - -** t _ f k 5 h i p -** - - - - - - - - - -** -** Test iauFk5hip function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk5hip, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r5h[3][3], s5h[3]; - - - iauFk5hip(r5h, s5h); - - vvd(r5h[0][0], 0.9999999999999928638, 1e-14, - "iauFk5hip", "11", status); - vvd(r5h[0][1], 0.1110223351022919694e-6, 1e-17, - "iauFk5hip", "12", status); - vvd(r5h[0][2], 0.4411803962536558154e-7, 1e-17, - "iauFk5hip", "13", status); - vvd(r5h[1][0], -0.1110223308458746430e-6, 1e-17, - "iauFk5hip", "21", status); - vvd(r5h[1][1], 0.9999999999999891830, 1e-14, - "iauFk5hip", "22", status); - vvd(r5h[1][2], -0.9647792498984142358e-7, 1e-17, - "iauFk5hip", "23", status); - vvd(r5h[2][0], -0.4411805033656962252e-7, 1e-17, - "iauFk5hip", "31", status); - vvd(r5h[2][1], 0.9647792009175314354e-7, 1e-17, - "iauFk5hip", "32", status); - vvd(r5h[2][2], 0.9999999999999943728, 1e-14, - "iauFk5hip", "33", status); - vvd(s5h[0], -0.1454441043328607981e-8, 1e-17, - "iauFk5hip", "s1", status); - vvd(s5h[1], 0.2908882086657215962e-8, 1e-17, - "iauFk5hip", "s2", status); - vvd(s5h[2], 0.3393695767766751955e-8, 1e-17, - "iauFk5hip", "s3", status); - -} - -static void t_fk5hz(int *status) -/* -** - - - - - - - - -** t _ f k 5 h z -** - - - - - - - - -** -** Test iauFk5hz function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFk5hz, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r5, d5, rh, dh; - - - r5 = 1.76779433; - d5 = -0.2917517103; - - iauFk5hz(r5, d5, 2400000.5, 54479.0, &rh, &dh); - - vvd(rh, 1.767794191464423978, 1e-12, "iauFk5hz", "ra", status); - vvd(dh, -0.2917516001679884419, 1e-12, "iauFk5hz", "dec", status); - -} - -static void t_fw2m(int *status) -/* -** - - - - - - - -** t _ f w 2 m -** - - - - - - - -** -** Test iauFw2m function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFw2m, vvd -** -** This revision: 2013 August 7 -*/ -{ - double gamb, phib, psi, eps, r[3][3]; - - - gamb = -0.2243387670997992368e-5; - phib = 0.4091014602391312982; - psi = -0.9501954178013015092e-3; - eps = 0.4091014316587367472; - - iauFw2m(gamb, phib, psi, eps, r); - - vvd(r[0][0], 0.9999995505176007047, 1e-12, - "iauFw2m", "11", status); - vvd(r[0][1], 0.8695404617348192957e-3, 1e-12, - "iauFw2m", "12", status); - vvd(r[0][2], 0.3779735201865582571e-3, 1e-12, - "iauFw2m", "13", status); - - vvd(r[1][0], -0.8695404723772016038e-3, 1e-12, - "iauFw2m", "21", status); - vvd(r[1][1], 0.9999996219496027161, 1e-12, - "iauFw2m", "22", status); - vvd(r[1][2], -0.1361752496887100026e-6, 1e-12, - "iauFw2m", "23", status); - - vvd(r[2][0], -0.3779734957034082790e-3, 1e-12, - "iauFw2m", "31", status); - vvd(r[2][1], -0.1924880848087615651e-6, 1e-12, - "iauFw2m", "32", status); - vvd(r[2][2], 0.9999999285679971958, 1e-12, - "iauFw2m", "33", status); - -} - -static void t_fw2xy(int *status) -/* -** - - - - - - - - -** t _ f w 2 x y -** - - - - - - - - -** -** Test iauFw2xy function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauFw2xy, vvd -** -** This revision: 2013 August 7 -*/ -{ - double gamb, phib, psi, eps, x, y; - - - gamb = -0.2243387670997992368e-5; - phib = 0.4091014602391312982; - psi = -0.9501954178013015092e-3; - eps = 0.4091014316587367472; - - iauFw2xy(gamb, phib, psi, eps, &x, &y); - - vvd(x, -0.3779734957034082790e-3, 1e-14, "iauFw2xy", "x", status); - vvd(y, -0.1924880848087615651e-6, 1e-14, "iauFw2xy", "y", status); - -} - -static void t_g2icrs(int *status) -/* -** - - - - - - - - - -** t _ g 2 i c r s -** - - - - - - - - - -** -** Test iauG2icrs function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauG2icrs, vvd -** -** This revision: 2015 January 30 -*/ -{ - double dl, db, dr, dd; - - - dl = 5.5850536063818546461558105; - db = -0.7853981633974483096156608; - iauG2icrs (dl, db, &dr, &dd); - vvd(dr, 5.9338074302227188048671, 1e-14, "iauG2icrs", "R", status); - vvd(dd, -1.1784870613579944551541, 1e-14, "iauG2icrs", "D", status); - } - -static void t_gc2gd(int *status) -/* -** - - - - - - - - -** t _ g c 2 g d -** - - - - - - - - -** -** Test iauGc2gd function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGc2gd, viv, vvd -** -** This revision: 2016 March 12 -*/ -{ - int j; - double xyz[] = {2e6, 3e6, 5.244e6}; - double e, p, h; - - j = iauGc2gd(0, xyz, &e, &p, &h); - - viv(j, -1, "iauGc2gd", "j0", status); - - j = iauGc2gd(WGS84, xyz, &e, &p, &h); - - viv(j, 0, "iauGc2gd", "j1", status); - vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e1", status); - vvd(p, 0.97160184819075459, 1e-14, "iauGc2gd", "p1", status); - vvd(h, 331.4172461426059892, 1e-8, "iauGc2gd", "h1", status); - - j = iauGc2gd(GRS80, xyz, &e, &p, &h); - - viv(j, 0, "iauGc2gd", "j2", status); - vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e2", status); - vvd(p, 0.97160184820607853, 1e-14, "iauGc2gd", "p2", status); - vvd(h, 331.41731754844348, 1e-8, "iauGc2gd", "h2", status); - - j = iauGc2gd(WGS72, xyz, &e, &p, &h); - - viv(j, 0, "iauGc2gd", "j3", status); - vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gd", "e3", status); - vvd(p, 0.9716018181101511937, 1e-14, "iauGc2gd", "p3", status); - vvd(h, 333.2770726130318123, 1e-8, "iauGc2gd", "h3", status); - - j = iauGc2gd(4, xyz, &e, &p, &h); - - viv(j, -1, "iauGc2gd", "j4", status); -} - -static void t_gc2gde(int *status) -/* -** - - - - - - - - - -** t _ g c 2 g d e -** - - - - - - - - - -** -** Test iauGc2gde function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGc2gde, viv, vvd -** -** This revision: 2016 March 12 -*/ -{ - int j; - double a = 6378136.0, f = 0.0033528; - double xyz[] = {2e6, 3e6, 5.244e6}; - double e, p, h; - - j = iauGc2gde(a, f, xyz, &e, &p, &h); - - viv(j, 0, "iauGc2gde", "j", status); - vvd(e, 0.9827937232473290680, 1e-14, "iauGc2gde", "e", status); - vvd(p, 0.9716018377570411532, 1e-14, "iauGc2gde", "p", status); - vvd(h, 332.36862495764397, 1e-8, "iauGc2gde", "h", status); -} - -static void t_gd2gc(int *status) -/* -** - - - - - - - - -** t _ g d 2 g c -** - - - - - - - - -** -** Test iauGd2gc function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGd2gc, viv, vvd -** -** This revision: 2016 March 12 -*/ -{ - int j; - double e = 3.1, p = -0.5, h = 2500.0; - double xyz[3]; - - j = iauGd2gc(0, e, p, h, xyz); - - viv(j, -1, "iauGd2gc", "j0", status); - - j = iauGd2gc(WGS84, e, p, h, xyz); - - viv(j, 0, "iauGd2gc", "j1", status); - vvd(xyz[0], -5599000.5577049947, 1e-7, "iauGd2gc", "1/1", status); - vvd(xyz[1], 233011.67223479203, 1e-7, "iauGd2gc", "2/1", status); - vvd(xyz[2], -3040909.4706983363, 1e-7, "iauGd2gc", "3/1", status); - - j = iauGd2gc(GRS80, e, p, h, xyz); - - viv(j, 0, "iauGd2gc", "j2", status); - vvd(xyz[0], -5599000.5577260984, 1e-7, "iauGd2gc", "1/2", status); - vvd(xyz[1], 233011.6722356702949, 1e-7, "iauGd2gc", "2/2", status); - vvd(xyz[2], -3040909.4706095476, 1e-7, "iauGd2gc", "3/2", status); - - j = iauGd2gc(WGS72, e, p, h, xyz); - - viv(j, 0, "iauGd2gc", "j3", status); - vvd(xyz[0], -5598998.7626301490, 1e-7, "iauGd2gc", "1/3", status); - vvd(xyz[1], 233011.5975297822211, 1e-7, "iauGd2gc", "2/3", status); - vvd(xyz[2], -3040908.6861467111, 1e-7, "iauGd2gc", "3/3", status); - - j = iauGd2gc(4, e, p, h, xyz); - - viv(j, -1, "iauGd2gc", "j4", status); -} - -static void t_gd2gce(int *status) -/* -** - - - - - - - - - -** t _ g d 2 g c e -** - - - - - - - - - -** -** Test iauGd2gce function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGd2gce, viv, vvd -** -** This revision: 2016 March 12 -*/ -{ - int j; - double a = 6378136.0, f = 0.0033528; - double e = 3.1, p = -0.5, h = 2500.0; - double xyz[3]; - - j = iauGd2gce(a, f, e, p, h, xyz); - - viv(j, 0, "iauGd2gce", "j", status); - vvd(xyz[0], -5598999.6665116328, 1e-7, "iauGd2gce", "1", status); - vvd(xyz[1], 233011.6351463057189, 1e-7, "iauGd2gce", "2", status); - vvd(xyz[2], -3040909.0517314132, 1e-7, "iauGd2gce", "3", status); -} - -static void t_gmst00(int *status) -/* -** - - - - - - - - - -** t _ g m s t 0 0 -** - - - - - - - - - -** -** Test iauGmst00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGmst00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGmst00(2400000.5, 53736.0, 2400000.5, 53736.0); - - vvd(theta, 1.754174972210740592, 1e-12, "iauGmst00", "", status); - -} - -static void t_gmst06(int *status) -/* -** - - - - - - - - - -** t _ g m s t 0 6 -** - - - - - - - - - -** -** Test iauGmst06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGmst06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGmst06(2400000.5, 53736.0, 2400000.5, 53736.0); - - vvd(theta, 1.754174971870091203, 1e-12, "iauGmst06", "", status); - -} - -static void t_gmst82(int *status) -/* -** - - - - - - - - - -** t _ g m s t 8 2 -** - - - - - - - - - -** -** Test iauGmst82 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGmst82, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGmst82(2400000.5, 53736.0); - - vvd(theta, 1.754174981860675096, 1e-12, "iauGmst82", "", status); - -} - -static void t_gst00a(int *status) -/* -** - - - - - - - - - -** t _ g s t 0 0 a -** - - - - - - - - - -** -** Test iauGst00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGst00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGst00a(2400000.5, 53736.0, 2400000.5, 53736.0); - - vvd(theta, 1.754166138018281369, 1e-12, "iauGst00a", "", status); - -} - -static void t_gst00b(int *status) -/* -** - - - - - - - - - -** t _ g s t 0 0 b -** - - - - - - - - - -** -** Test iauGst00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGst00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGst00b(2400000.5, 53736.0); - - vvd(theta, 1.754166136510680589, 1e-12, "iauGst00b", "", status); - -} - -static void t_gst06(int *status) -/* -** - - - - - - - - -** t _ g s t 0 6 -** - - - - - - - - -** -** Test iauGst06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGst06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rnpb[3][3], theta; - - - rnpb[0][0] = 0.9999989440476103608; - rnpb[0][1] = -0.1332881761240011518e-2; - rnpb[0][2] = -0.5790767434730085097e-3; - - rnpb[1][0] = 0.1332858254308954453e-2; - rnpb[1][1] = 0.9999991109044505944; - rnpb[1][2] = -0.4097782710401555759e-4; - - rnpb[2][0] = 0.5791308472168153320e-3; - rnpb[2][1] = 0.4020595661593994396e-4; - rnpb[2][2] = 0.9999998314954572365; - - theta = iauGst06(2400000.5, 53736.0, 2400000.5, 53736.0, rnpb); - - vvd(theta, 1.754166138018167568, 1e-12, "iauGst06", "", status); - -} - -static void t_gst06a(int *status) -/* -** - - - - - - - - - -** t _ g s t 0 6 a -** - - - - - - - - - -** -** Test iauGst06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGst06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGst06a(2400000.5, 53736.0, 2400000.5, 53736.0); - - vvd(theta, 1.754166137675019159, 1e-12, "iauGst06a", "", status); - -} - -static void t_gst94(int *status) -/* -** - - - - - - - - -** t _ g s t 9 4 -** - - - - - - - - -** -** Test iauGst94 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauGst94, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta; - - - theta = iauGst94(2400000.5, 53736.0); - - vvd(theta, 1.754166136020645203, 1e-12, "iauGst94", "", status); - -} - -static void t_icrs2g(int *status) -/* -** - - - - - - - - - -** t _ i c r s 2 g -** - - - - - - - - - -** -** Test iauIcrs2g function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauIcrs2g, vvd -** -** This revision: 2015 January 30 -*/ -{ - double dr, dd, dl, db; - - dr = 5.9338074302227188048671087; - dd = -1.1784870613579944551540570; - iauIcrs2g (dr, dd, &dl, &db); - vvd(dl, 5.5850536063818546461558, 1e-14, "iauIcrs2g", "L", status); - vvd(db, -0.7853981633974483096157, 1e-14, "iauIcrs2g", "B", status); - } - -static void t_h2fk5(int *status) -/* -** - - - - - - - - -** t _ h 2 f k 5 -** - - - - - - - - -** -** Test iauH2fk5 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauH2fk5, vvd -** -** This revision: 2017 January 3 -*/ -{ - double rh, dh, drh, ddh, pxh, rvh, r5, d5, dr5, dd5, px5, rv5; - - - rh = 1.767794352; - dh = -0.2917512594; - drh = -2.76413026e-6; - ddh = -5.92994449e-6; - pxh = 0.379210; - rvh = -7.6; - - iauH2fk5(rh, dh, drh, ddh, pxh, rvh, - &r5, &d5, &dr5, &dd5, &px5, &rv5); - - vvd(r5, 1.767794455700065506, 1e-13, - "iauH2fk5", "ra", status); - vvd(d5, -0.2917513626469638890, 1e-13, - "iauH2fk5", "dec", status); - vvd(dr5, -0.27597945024511204e-5, 1e-18, - "iauH2fk5", "dr5", status); - vvd(dd5, -0.59308014093262838e-5, 1e-18, - "iauH2fk5", "dd5", status); - vvd(px5, 0.37921, 1e-13, - "iauH2fk5", "px", status); - vvd(rv5, -7.6000001309071126, 1e-11, - "iauH2fk5", "rv", status); - -} - -static void t_hd2ae(int *status) -/* -** - - - - - - - - -** t _ h d 2 a e -** - - - - - - - - -** -** Test iauHd2ae function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauHd2ae and vvd -** -** This revision: 2017 October 21 -*/ -{ - double h, d, p, a, e; - - - h = 1.1; - d = 1.2; - p = 0.3; - - iauHd2ae(h, d, p, &a, &e); - - vvd(a, 5.916889243730066194, 1e-13, "iauHd2ae", "a", status); - vvd(e, 0.4472186304990486228, 1e-14, "iauHd2ae", "e", status); - -} - -static void t_hd2pa(int *status) -/* -** - - - - - - - - -** t _ h d 2 p a -** - - - - - - - - -** -** Test iauHd2pa function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauHd2pa and vvd -** -** This revision: 2017 October 21 -*/ -{ - double h, d, p, q; - - - h = 1.1; - d = 1.2; - p = 0.3; - - q = iauHd2pa(h, d, p); - - vvd(q, 1.906227428001995580, 1e-13, "iauHd2pa", "q", status); - -} - -static void t_hfk5z(int *status) -/* -** - - - - - - - - -** t _ h f k 5 z -** - - - - - - - - -** -** Test iauHfk5z function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauHfk5z, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rh, dh, r5, d5, dr5, dd5; - - - - rh = 1.767794352; - dh = -0.2917512594; - - iauHfk5z(rh, dh, 2400000.5, 54479.0, &r5, &d5, &dr5, &dd5); - - vvd(r5, 1.767794490535581026, 1e-13, - "iauHfk5z", "ra", status); - vvd(d5, -0.2917513695320114258, 1e-14, - "iauHfk5z", "dec", status); - vvd(dr5, 0.4335890983539243029e-8, 1e-22, - "iauHfk5z", "dr5", status); - vvd(dd5, -0.8569648841237745902e-9, 1e-23, - "iauHfk5z", "dd5", status); - -} - -static void t_ir(int *status) -/* -** - - - - - -** t _ i r -** - - - - - -** -** Test iauIr function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauIr, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - iauIr(r); - - vvd(r[0][0], 1.0, 0.0, "iauIr", "11", status); - vvd(r[0][1], 0.0, 0.0, "iauIr", "12", status); - vvd(r[0][2], 0.0, 0.0, "iauIr", "13", status); - - vvd(r[1][0], 0.0, 0.0, "iauIr", "21", status); - vvd(r[1][1], 1.0, 0.0, "iauIr", "22", status); - vvd(r[1][2], 0.0, 0.0, "iauIr", "23", status); - - vvd(r[2][0], 0.0, 0.0, "iauIr", "31", status); - vvd(r[2][1], 0.0, 0.0, "iauIr", "32", status); - vvd(r[2][2], 1.0, 0.0, "iauIr", "33", status); - -} - -static void t_jd2cal(int *status) -/* -** - - - - - - - - - -** t _ j d 2 c a l -** - - - - - - - - - -** -** Test iauJd2cal function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauJd2cal, viv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dj1, dj2, fd; - int iy, im, id, j; - - - dj1 = 2400000.5; - dj2 = 50123.9999; - - j = iauJd2cal(dj1, dj2, &iy, &im, &id, &fd); - - viv(iy, 1996, "iauJd2cal", "y", status); - viv(im, 2, "iauJd2cal", "m", status); - viv(id, 10, "iauJd2cal", "d", status); - vvd(fd, 0.9999, 1e-7, "iauJd2cal", "fd", status); - viv(j, 0, "iauJd2cal", "j", status); - -} - -static void t_jdcalf(int *status) -/* -** - - - - - - - - - -** t _ j d c a l f -** - - - - - - - - - -** -** Test iauJdcalf function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauJdcalf, viv -** -** This revision: 2013 August 7 -*/ -{ - double dj1, dj2; - int iydmf[4], j; - - - dj1 = 2400000.5; - dj2 = 50123.9999; - - j = iauJdcalf(4, dj1, dj2, iydmf); - - viv(iydmf[0], 1996, "iauJdcalf", "y", status); - viv(iydmf[1], 2, "iauJdcalf", "m", status); - viv(iydmf[2], 10, "iauJdcalf", "d", status); - viv(iydmf[3], 9999, "iauJdcalf", "f", status); - - viv(j, 0, "iauJdcalf", "j", status); - -} - -static void t_ld(int *status) -/* -** - - - - - -** t _ l d -** - - - - - -** -** Test iauLd function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLd, vvd -* -** This revision: 2013 October 2 -*/ -{ - double bm, p[3], q[3], e[3], em, dlim, p1[3]; - - - bm = 0.00028574; - p[0] = -0.763276255; - p[1] = -0.608633767; - p[2] = -0.216735543; - q[0] = -0.763276255; - q[1] = -0.608633767; - q[2] = -0.216735543; - e[0] = 0.76700421; - e[1] = 0.605629598; - e[2] = 0.211937094; - em = 8.91276983; - dlim = 3e-10; - - iauLd(bm, p, q, e, em, dlim, p1); - - vvd(p1[0], -0.7632762548968159627, 1e-12, - "iauLd", "1", status); - vvd(p1[1], -0.6086337670823762701, 1e-12, - "iauLd", "2", status); - vvd(p1[2], -0.2167355431320546947, 1e-12, - "iauLd", "3", status); - -} - -static void t_ldn(int *status) -/* -** - - - - - - -** t _ l d n -** - - - - - - -** -** Test iauLdn function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLdn, vvd -** -** This revision: 2013 October 2 -*/ -{ - int n; - iauLDBODY b[3]; - double ob[3], sc[3], sn[3]; - - - n = 3; - b[0].bm = 0.00028574; - b[0].dl = 3e-10; - b[0].pv[0][0] = -7.81014427; - b[0].pv[0][1] = -5.60956681; - b[0].pv[0][2] = -1.98079819; - b[0].pv[1][0] = 0.0030723249; - b[0].pv[1][1] = -0.00406995477; - b[0].pv[1][2] = -0.00181335842; - b[1].bm = 0.00095435; - b[1].dl = 3e-9; - b[1].pv[0][0] = 0.738098796; - b[1].pv[0][1] = 4.63658692; - b[1].pv[0][2] = 1.9693136; - b[1].pv[1][0] = -0.00755816922; - b[1].pv[1][1] = 0.00126913722; - b[1].pv[1][2] = 0.000727999001; - b[2].bm = 1.0; - b[2].dl = 6e-6; - b[2].pv[0][0] = -0.000712174377; - b[2].pv[0][1] = -0.00230478303; - b[2].pv[0][2] = -0.00105865966; - b[2].pv[1][0] = 6.29235213e-6; - b[2].pv[1][1] = -3.30888387e-7; - b[2].pv[1][2] = -2.96486623e-7; - ob[0] = -0.974170437; - ob[1] = -0.2115201; - ob[2] = -0.0917583114; - sc[0] = -0.763276255; - sc[1] = -0.608633767; - sc[2] = -0.216735543; - - iauLdn(n, b, ob, sc, sn); - - vvd(sn[0], -0.7632762579693333866, 1e-12, - "iauLdn", "1", status); - vvd(sn[1], -0.6086337636093002660, 1e-12, - "iauLdn", "2", status); - vvd(sn[2], -0.2167355420646328159, 1e-12, - "iauLdn", "3", status); - -} - -static void t_ldsun(int *status) -/* -** - - - - - - - - -** t _ l d s u n -** - - - - - - - - -** -** Test iauLdsun function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLdsun, vvd -** -** This revision: 2013 October 2 -*/ -{ - double p[3], e[3], em, p1[3]; - - - p[0] = -0.763276255; - p[1] = -0.608633767; - p[2] = -0.216735543; - e[0] = -0.973644023; - e[1] = -0.20925523; - e[2] = -0.0907169552; - em = 0.999809214; - - iauLdsun(p, e, em, p1); - - vvd(p1[0], -0.7632762580731413169, 1e-12, - "iauLdsun", "1", status); - vvd(p1[1], -0.6086337635262647900, 1e-12, - "iauLdsun", "2", status); - vvd(p1[2], -0.2167355419322321302, 1e-12, - "iauLdsun", "3", status); - -} - -static void t_lteceq(int *status) -/* -** - - - - - - - - - -** t _ l t e c e q -** - - - - - - - - - -** -** Test iauLteceq function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLteceq, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, dl, db, dr, dd; - - - epj = 2500.0; - dl = 1.5; - db = 0.6; - - iauLteceq(epj, dl, db, &dr, &dd); - - vvd(dr, 1.275156021861921167, 1e-14, "iauLteceq", "dr", status); - vvd(dd, 0.9966573543519204791, 1e-14, "iauLteceq", "dd", status); - -} - -static void t_ltecm(int *status) -/* -** - - - - - - - - -** t _ l t e c m -** - - - - - - - - -** -** Test iauLtecm function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLtecm, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, rm[3][3]; - - - epj = -3000.0; - - iauLtecm(epj, rm); - - vvd(rm[0][0], 0.3564105644859788825, 1e-14, - "iauLtecm", "rm11", status); - vvd(rm[0][1], 0.8530575738617682284, 1e-14, - "iauLtecm", "rm12", status); - vvd(rm[0][2], 0.3811355207795060435, 1e-14, - "iauLtecm", "rm13", status); - vvd(rm[1][0], -0.9343283469640709942, 1e-14, - "iauLtecm", "rm21", status); - vvd(rm[1][1], 0.3247830597681745976, 1e-14, - "iauLtecm", "rm22", status); - vvd(rm[1][2], 0.1467872751535940865, 1e-14, - "iauLtecm", "rm23", status); - vvd(rm[2][0], 0.1431636191201167793e-2, 1e-14, - "iauLtecm", "rm31", status); - vvd(rm[2][1], -0.4084222566960599342, 1e-14, - "iauLtecm", "rm32", status); - vvd(rm[2][2], 0.9127919865189030899, 1e-14, - "iauLtecm", "rm33", status); - -} - -static void t_lteqec(int *status) -/* -** - - - - - - - - - -** t _ l t e q e c -** - - - - - - - - - -** -** Test iauLteqec function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLteqec, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, dr, dd, dl, db; - - - epj = -1500.0; - dr = 1.234; - dd = 0.987; - - iauLteqec(epj, dr, dd, &dl, &db); - - vvd(dl, 0.5039483649047114859, 1e-14, "iauLteqec", "dl", status); - vvd(db, 0.5848534459726224882, 1e-14, "iauLteqec", "db", status); - -} - -static void t_ltp(int *status) -/* -** - - - - - - -** t _ l t p -** - - - - - - -** -** Test iauLtp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLtp, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, rp[3][3]; - - - epj = 1666.666; - - iauLtp(epj, rp); - - vvd(rp[0][0], 0.9967044141159213819, 1e-14, - "iauLtp", "rp11", status); - vvd(rp[0][1], 0.7437801893193210840e-1, 1e-14, - "iauLtp", "rp12", status); - vvd(rp[0][2], 0.3237624409345603401e-1, 1e-14, - "iauLtp", "rp13", status); - vvd(rp[1][0], -0.7437802731819618167e-1, 1e-14, - "iauLtp", "rp21", status); - vvd(rp[1][1], 0.9972293894454533070, 1e-14, - "iauLtp", "rp22", status); - vvd(rp[1][2], -0.1205768842723593346e-2, 1e-14, - "iauLtp", "rp23", status); - vvd(rp[2][0], -0.3237622482766575399e-1, 1e-14, - "iauLtp", "rp31", status); - vvd(rp[2][1], -0.1206286039697609008e-2, 1e-14, - "iauLtp", "rp32", status); - vvd(rp[2][2], 0.9994750246704010914, 1e-14, - "iauLtp", "rp33", status); - -} - -static void t_ltpb(int *status) -/* -** - - - - - - - -** t _ l t p b -** - - - - - - - -** -** Test iauLtpb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLtpb, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, rpb[3][3]; - - - epj = 1666.666; - - iauLtpb(epj, rpb); - - vvd(rpb[0][0], 0.9967044167723271851, 1e-14, - "iauLtpb", "rpb11", status); - vvd(rpb[0][1], 0.7437794731203340345e-1, 1e-14, - "iauLtpb", "rpb12", status); - vvd(rpb[0][2], 0.3237632684841625547e-1, 1e-14, - "iauLtpb", "rpb13", status); - vvd(rpb[1][0], -0.7437795663437177152e-1, 1e-14, - "iauLtpb", "rpb21", status); - vvd(rpb[1][1], 0.9972293947500013666, 1e-14, - "iauLtpb", "rpb22", status); - vvd(rpb[1][2], -0.1205741865911243235e-2, 1e-14, - "iauLtpb", "rpb23", status); - vvd(rpb[2][0], -0.3237630543224664992e-1, 1e-14, - "iauLtpb", "rpb31", status); - vvd(rpb[2][1], -0.1206316791076485295e-2, 1e-14, - "iauLtpb", "rpb32", status); - vvd(rpb[2][2], 0.9994750220222438819, 1e-14, - "iauLtpb", "rpb33", status); - -} - -static void t_ltpecl(int *status) -/* -** - - - - - - - - - -** t _ l t p e c l -** - - - - - - - - - -** -** Test iauLtpecl function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLtpecl, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, vec[3]; - - - epj = -1500.0; - - iauLtpecl(epj, vec); - - vvd(vec[0], 0.4768625676477096525e-3, 1e-14, - "iauLtpecl", "vec1", status); - vvd(vec[1], -0.4052259533091875112, 1e-14, - "iauLtpecl", "vec2", status); - vvd(vec[2], 0.9142164401096448012, 1e-14, - "iauLtpecl", "vec3", status); - -} - -static void t_ltpequ(int *status) -/* -** - - - - - - - - - -** t _ l t p e q u -** - - - - - - - - - -** -** Test iauLtpequ function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauLtpequ, vvd -** -** This revision: 2016 March 12 -*/ -{ - double epj, veq[3]; - - - epj = -2500.0; - - iauLtpequ(epj, veq); - - vvd(veq[0], -0.3586652560237326659, 1e-14, - "iauLtpequ", "veq1", status); - vvd(veq[1], -0.1996978910771128475, 1e-14, - "iauLtpequ", "veq2", status); - vvd(veq[2], 0.9118552442250819624, 1e-14, - "iauLtpequ", "veq3", status); - -} - -static void t_moon98(int *status) -/* -** - - - - - - - - - -** t _ m o o n 9 8 -** - - - - - - - - - -** -** Test iauMoon98 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauMoon98, vvd, viv -** -** This revision: 2021 April 12 -*/ -{ - double pv[2][3]; - - - iauMoon98(2400000.5, 43999.9, pv); - - vvd(pv[0][0], -0.2601295959971044180e-2, 1e-11, - "iauMoon98", "x 4", status); - vvd(pv[0][1], 0.6139750944302742189e-3, 1e-11, - "iauMoon98", "y 4", status); - vvd(pv[0][2], 0.2640794528229828909e-3, 1e-11, - "iauMoon98", "z 4", status); - - vvd(pv[1][0], -0.1244321506649895021e-3, 1e-11, - "iauMoon98", "xd 4", status); - vvd(pv[1][1], -0.5219076942678119398e-3, 1e-11, - "iauMoon98", "yd 4", status); - vvd(pv[1][2], -0.1716132214378462047e-3, 1e-11, - "iauMoon98", "zd 4", status); - -} - -static void t_num00a(int *status) -/* -** - - - - - - - - - -** t _ n u m 0 0 a -** - - - - - - - - - -** -** Test iauNum00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNum00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rmatn[3][3]; - - - iauNum00a(2400000.5, 53736.0, rmatn); - - vvd(rmatn[0][0], 0.9999999999536227949, 1e-12, - "iauNum00a", "11", status); - vvd(rmatn[0][1], 0.8836238544090873336e-5, 1e-12, - "iauNum00a", "12", status); - vvd(rmatn[0][2], 0.3830835237722400669e-5, 1e-12, - "iauNum00a", "13", status); - - vvd(rmatn[1][0], -0.8836082880798569274e-5, 1e-12, - "iauNum00a", "21", status); - vvd(rmatn[1][1], 0.9999999991354655028, 1e-12, - "iauNum00a", "22", status); - vvd(rmatn[1][2], -0.4063240865362499850e-4, 1e-12, - "iauNum00a", "23", status); - - vvd(rmatn[2][0], -0.3831194272065995866e-5, 1e-12, - "iauNum00a", "31", status); - vvd(rmatn[2][1], 0.4063237480216291775e-4, 1e-12, - "iauNum00a", "32", status); - vvd(rmatn[2][2], 0.9999999991671660338, 1e-12, - "iauNum00a", "33", status); - -} - -static void t_num00b(int *status) -/* -** - - - - - - - - - -** t _ n u m 0 0 b -** - - - - - - - - - -** -** Test iauNum00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNum00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rmatn[3][3]; - - iauNum00b(2400000.5, 53736, rmatn); - - vvd(rmatn[0][0], 0.9999999999536069682, 1e-12, - "iauNum00b", "11", status); - vvd(rmatn[0][1], 0.8837746144871248011e-5, 1e-12, - "iauNum00b", "12", status); - vvd(rmatn[0][2], 0.3831488838252202945e-5, 1e-12, - "iauNum00b", "13", status); - - vvd(rmatn[1][0], -0.8837590456632304720e-5, 1e-12, - "iauNum00b", "21", status); - vvd(rmatn[1][1], 0.9999999991354692733, 1e-12, - "iauNum00b", "22", status); - vvd(rmatn[1][2], -0.4063198798559591654e-4, 1e-12, - "iauNum00b", "23", status); - - vvd(rmatn[2][0], -0.3831847930134941271e-5, 1e-12, - "iauNum00b", "31", status); - vvd(rmatn[2][1], 0.4063195412258168380e-4, 1e-12, - "iauNum00b", "32", status); - vvd(rmatn[2][2], 0.9999999991671806225, 1e-12, - "iauNum00b", "33", status); - -} - -static void t_num06a(int *status) -/* -** - - - - - - - - - -** t _ n u m 0 6 a -** - - - - - - - - - -** -** Test iauNum06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNum06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rmatn[3][3]; - - iauNum06a(2400000.5, 53736, rmatn); - - vvd(rmatn[0][0], 0.9999999999536227668, 1e-12, - "iauNum06a", "11", status); - vvd(rmatn[0][1], 0.8836241998111535233e-5, 1e-12, - "iauNum06a", "12", status); - vvd(rmatn[0][2], 0.3830834608415287707e-5, 1e-12, - "iauNum06a", "13", status); - - vvd(rmatn[1][0], -0.8836086334870740138e-5, 1e-12, - "iauNum06a", "21", status); - vvd(rmatn[1][1], 0.9999999991354657474, 1e-12, - "iauNum06a", "22", status); - vvd(rmatn[1][2], -0.4063240188248455065e-4, 1e-12, - "iauNum06a", "23", status); - - vvd(rmatn[2][0], -0.3831193642839398128e-5, 1e-12, - "iauNum06a", "31", status); - vvd(rmatn[2][1], 0.4063236803101479770e-4, 1e-12, - "iauNum06a", "32", status); - vvd(rmatn[2][2], 0.9999999991671663114, 1e-12, - "iauNum06a", "33", status); - -} - -static void t_numat(int *status) -/* -** - - - - - - - - -** t _ n u m a t -** - - - - - - - - -** -** Test iauNumat function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNumat, vvd -** -** This revision: 2013 August 7 -*/ -{ - double epsa, dpsi, deps, rmatn[3][3]; - - - epsa = 0.4090789763356509900; - dpsi = -0.9630909107115582393e-5; - deps = 0.4063239174001678826e-4; - - iauNumat(epsa, dpsi, deps, rmatn); - - vvd(rmatn[0][0], 0.9999999999536227949, 1e-12, - "iauNumat", "11", status); - vvd(rmatn[0][1], 0.8836239320236250577e-5, 1e-12, - "iauNumat", "12", status); - vvd(rmatn[0][2], 0.3830833447458251908e-5, 1e-12, - "iauNumat", "13", status); - - vvd(rmatn[1][0], -0.8836083657016688588e-5, 1e-12, - "iauNumat", "21", status); - vvd(rmatn[1][1], 0.9999999991354654959, 1e-12, - "iauNumat", "22", status); - vvd(rmatn[1][2], -0.4063240865361857698e-4, 1e-12, - "iauNumat", "23", status); - - vvd(rmatn[2][0], -0.3831192481833385226e-5, 1e-12, - "iauNumat", "31", status); - vvd(rmatn[2][1], 0.4063237480216934159e-4, 1e-12, - "iauNumat", "32", status); - vvd(rmatn[2][2], 0.9999999991671660407, 1e-12, - "iauNumat", "33", status); - -} - -static void t_nut00a(int *status) -/* -** - - - - - - - - - -** t _ n u t 0 0 a -** - - - - - - - - - -** -** Test iauNut00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNut00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps; - - - iauNut00a(2400000.5, 53736.0, &dpsi, &deps); - - vvd(dpsi, -0.9630909107115518431e-5, 1e-13, - "iauNut00a", "dpsi", status); - vvd(deps, 0.4063239174001678710e-4, 1e-13, - "iauNut00a", "deps", status); - -} - -static void t_nut00b(int *status) -/* -** - - - - - - - - - -** t _ n u t 0 0 b -** - - - - - - - - - -** -** Test iauNut00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNut00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps; - - - iauNut00b(2400000.5, 53736.0, &dpsi, &deps); - - vvd(dpsi, -0.9632552291148362783e-5, 1e-13, - "iauNut00b", "dpsi", status); - vvd(deps, 0.4063197106621159367e-4, 1e-13, - "iauNut00b", "deps", status); - -} - -static void t_nut06a(int *status) -/* -** - - - - - - - - - -** t _ n u t 0 6 a -** - - - - - - - - - -** -** Test iauNut06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNut06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps; - - - iauNut06a(2400000.5, 53736.0, &dpsi, &deps); - - vvd(dpsi, -0.9630912025820308797e-5, 1e-13, - "iauNut06a", "dpsi", status); - vvd(deps, 0.4063238496887249798e-4, 1e-13, - "iauNut06a", "deps", status); - -} - -static void t_nut80(int *status) -/* -** - - - - - - - - -** t _ n u t 8 0 -** - - - - - - - - -** -** Test iauNut80 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNut80, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps; - - - iauNut80(2400000.5, 53736.0, &dpsi, &deps); - - vvd(dpsi, -0.9643658353226563966e-5, 1e-13, - "iauNut80", "dpsi", status); - vvd(deps, 0.4060051006879713322e-4, 1e-13, - "iauNut80", "deps", status); - -} - -static void t_nutm80(int *status) -/* -** - - - - - - - - - -** t _ n u t m 8 0 -** - - - - - - - - - -** -** Test iauNutm80 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauNutm80, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rmatn[3][3]; - - - iauNutm80(2400000.5, 53736.0, rmatn); - - vvd(rmatn[0][0], 0.9999999999534999268, 1e-12, - "iauNutm80", "11", status); - vvd(rmatn[0][1], 0.8847935789636432161e-5, 1e-12, - "iauNutm80", "12", status); - vvd(rmatn[0][2], 0.3835906502164019142e-5, 1e-12, - "iauNutm80", "13", status); - - vvd(rmatn[1][0], -0.8847780042583435924e-5, 1e-12, - "iauNutm80", "21", status); - vvd(rmatn[1][1], 0.9999999991366569963, 1e-12, - "iauNutm80", "22", status); - vvd(rmatn[1][2], -0.4060052702727130809e-4, 1e-12, - "iauNutm80", "23", status); - - vvd(rmatn[2][0], -0.3836265729708478796e-5, 1e-12, - "iauNutm80", "31", status); - vvd(rmatn[2][1], 0.4060049308612638555e-4, 1e-12, - "iauNutm80", "32", status); - vvd(rmatn[2][2], 0.9999999991684415129, 1e-12, - "iauNutm80", "33", status); - -} - -static void t_obl06(int *status) -/* -** - - - - - - - - -** t _ o b l 0 6 -** - - - - - - - - -** -** Test iauObl06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauObl06, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauObl06(2400000.5, 54388.0), 0.4090749229387258204, 1e-14, - "iauObl06", "", status); -} - -static void t_obl80(int *status) -/* -** - - - - - - - - -** t _ o b l 8 0 -** - - - - - - - - -** -** Test iauObl80 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauObl80, vvd -** -** This revision: 2013 August 7 -*/ -{ - double eps0; - - - eps0 = iauObl80(2400000.5, 54388.0); - - vvd(eps0, 0.4090751347643816218, 1e-14, "iauObl80", "", status); - -} - -static void t_p06e(int *status) -/* -** - - - - - - - -** t _ p 0 6 e -** - - - - - - - -** -** Test iauP06e function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauP06e, vvd -** -** This revision: 2020 May 30 -*/ -{ - double eps0, psia, oma, bpa, bqa, pia, bpia, - epsa, chia, za, zetaa, thetaa, pa, gam, phi, psi; - - - iauP06e(2400000.5, 52541.0, &eps0, &psia, &oma, &bpa, - &bqa, &pia, &bpia, &epsa, &chia, &za, - &zetaa, &thetaa, &pa, &gam, &phi, &psi); - - vvd(eps0, 0.4090926006005828715, 1e-14, - "iauP06e", "eps0", status); - vvd(psia, 0.6664369630191613431e-3, 1e-14, - "iauP06e", "psia", status); - vvd(oma , 0.4090925973783255982, 1e-14, - "iauP06e", "oma", status); - vvd(bpa, 0.5561149371265209445e-6, 1e-14, - "iauP06e", "bpa", status); - vvd(bqa, -0.6191517193290621270e-5, 1e-14, - "iauP06e", "bqa", status); - vvd(pia, 0.6216441751884382923e-5, 1e-14, - "iauP06e", "pia", status); - vvd(bpia, 3.052014180023779882, 1e-14, - "iauP06e", "bpia", status); - vvd(epsa, 0.4090864054922431688, 1e-14, - "iauP06e", "epsa", status); - vvd(chia, 0.1387703379530915364e-5, 1e-14, - "iauP06e", "chia", status); - vvd(za, 0.2921789846651790546e-3, 1e-14, - "iauP06e", "za", status); - vvd(zetaa, 0.3178773290332009310e-3, 1e-14, - "iauP06e", "zetaa", status); - vvd(thetaa, 0.2650932701657497181e-3, 1e-14, - "iauP06e", "thetaa", status); - vvd(pa, 0.6651637681381016288e-3, 1e-14, - "iauP06e", "pa", status); - vvd(gam, 0.1398077115963754987e-5, 1e-14, - "iauP06e", "gam", status); - vvd(phi, 0.4090864090837462602, 1e-14, - "iauP06e", "phi", status); - vvd(psi, 0.6664464807480920325e-3, 1e-14, - "iauP06e", "psi", status); - -} - -static void t_p2pv(int *status) -/* -** - - - - - - - -** t _ p 2 p v -** - - - - - - - -** -** Test iauP2pv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauP2pv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3], pv[2][3]; - - - p[0] = 0.25; - p[1] = 1.2; - p[2] = 3.0; - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = -0.5; - pv[1][1] = 3.1; - pv[1][2] = 0.9; - - iauP2pv(p, pv); - - vvd(pv[0][0], 0.25, 0.0, "iauP2pv", "p1", status); - vvd(pv[0][1], 1.2, 0.0, "iauP2pv", "p2", status); - vvd(pv[0][2], 3.0, 0.0, "iauP2pv", "p3", status); - - vvd(pv[1][0], 0.0, 0.0, "iauP2pv", "v1", status); - vvd(pv[1][1], 0.0, 0.0, "iauP2pv", "v2", status); - vvd(pv[1][2], 0.0, 0.0, "iauP2pv", "v3", status); - -} - -static void t_p2s(int *status) -/* -** - - - - - - -** t _ p 2 s -** - - - - - - -** -** Test iauP2s function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauP2s, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3], theta, phi, r; - - - p[0] = 100.0; - p[1] = -50.0; - p[2] = 25.0; - - iauP2s(p, &theta, &phi, &r); - - vvd(theta, -0.4636476090008061162, 1e-12, "iauP2s", "theta", status); - vvd(phi, 0.2199879773954594463, 1e-12, "iauP2s", "phi", status); - vvd(r, 114.5643923738960002, 1e-9, "iauP2s", "r", status); - -} - -static void t_pap(int *status) -/* -** - - - - - - -** t _ p a p -** - - - - - - -** -** Test iauPap function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPap, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], b[3], theta; - - - a[0] = 1.0; - a[1] = 0.1; - a[2] = 0.2; - - b[0] = -3.0; - b[1] = 1e-3; - b[2] = 0.2; - - theta = iauPap(a, b); - - vvd(theta, 0.3671514267841113674, 1e-12, "iauPap", "", status); - -} - -static void t_pas(int *status) -/* -** - - - - - - -** t _ p a s -** - - - - - - -** -** Test iauPas function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPas, vvd -** -** This revision: 2013 August 7 -*/ -{ - double al, ap, bl, bp, theta; - - - al = 1.0; - ap = 0.1; - bl = 0.2; - bp = -1.0; - - theta = iauPas(al, ap, bl, bp); - - vvd(theta, -2.724544922932270424, 1e-12, "iauPas", "", status); - -} - -static void t_pb06(int *status) -/* -** - - - - - - - -** t _ p b 0 6 -** - - - - - - - -** -** Test iauPb06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPb06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double bzeta, bz, btheta; - - - iauPb06(2400000.5, 50123.9999, &bzeta, &bz, &btheta); - - vvd(bzeta, -0.5092634016326478238e-3, 1e-12, - "iauPb06", "bzeta", status); - vvd(bz, -0.3602772060566044413e-3, 1e-12, - "iauPb06", "bz", status); - vvd(btheta, -0.3779735537167811177e-3, 1e-12, - "iauPb06", "btheta", status); - -} - -static void t_pdp(int *status) -/* -** - - - - - - -** t _ p d p -** - - - - - - -** -** Test iauPdp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPdp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], b[3], adb; - - - a[0] = 2.0; - a[1] = 2.0; - a[2] = 3.0; - - b[0] = 1.0; - b[1] = 3.0; - b[2] = 4.0; - - adb = iauPdp(a, b); - - vvd(adb, 20, 1e-12, "iauPdp", "", status); - -} - -static void t_pfw06(int *status) -/* -** - - - - - - - - -** t _ p f w 0 6 -** - - - - - - - - -** -** Test iauPfw06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPfw06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double gamb, phib, psib, epsa; - - - iauPfw06(2400000.5, 50123.9999, &gamb, &phib, &psib, &epsa); - - vvd(gamb, -0.2243387670997995690e-5, 1e-16, - "iauPfw06", "gamb", status); - vvd(phib, 0.4091014602391312808, 1e-12, - "iauPfw06", "phib", status); - vvd(psib, -0.9501954178013031895e-3, 1e-14, - "iauPfw06", "psib", status); - vvd(epsa, 0.4091014316587367491, 1e-12, - "iauPfw06", "epsa", status); - -} - -static void t_plan94(int *status) -/* -** - - - - - - - - - -** t _ p l a n 9 4 -** - - - - - - - - - -** -** Test iauPlan94 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPlan94, vvd, viv -** -** This revision: 2013 October 2 -*/ -{ - double pv[2][3]; - int j; - - - j = iauPlan94(2400000.5, 1e6, 0, pv); - - vvd(pv[0][0], 0.0, 0.0, "iauPlan94", "x 1", status); - vvd(pv[0][1], 0.0, 0.0, "iauPlan94", "y 1", status); - vvd(pv[0][2], 0.0, 0.0, "iauPlan94", "z 1", status); - - vvd(pv[1][0], 0.0, 0.0, "iauPlan94", "xd 1", status); - vvd(pv[1][1], 0.0, 0.0, "iauPlan94", "yd 1", status); - vvd(pv[1][2], 0.0, 0.0, "iauPlan94", "zd 1", status); - - viv(j, -1, "iauPlan94", "j 1", status); - - j = iauPlan94(2400000.5, 1e6, 10, pv); - - viv(j, -1, "iauPlan94", "j 2", status); - - j = iauPlan94(2400000.5, -320000, 3, pv); - - vvd(pv[0][0], 0.9308038666832975759, 1e-11, - "iauPlan94", "x 3", status); - vvd(pv[0][1], 0.3258319040261346000, 1e-11, - "iauPlan94", "y 3", status); - vvd(pv[0][2], 0.1422794544481140560, 1e-11, - "iauPlan94", "z 3", status); - - vvd(pv[1][0], -0.6429458958255170006e-2, 1e-11, - "iauPlan94", "xd 3", status); - vvd(pv[1][1], 0.1468570657704237764e-1, 1e-11, - "iauPlan94", "yd 3", status); - vvd(pv[1][2], 0.6406996426270981189e-2, 1e-11, - "iauPlan94", "zd 3", status); - - viv(j, 1, "iauPlan94", "j 3", status); - - j = iauPlan94(2400000.5, 43999.9, 1, pv); - - vvd(pv[0][0], 0.2945293959257430832, 1e-11, - "iauPlan94", "x 4", status); - vvd(pv[0][1], -0.2452204176601049596, 1e-11, - "iauPlan94", "y 4", status); - vvd(pv[0][2], -0.1615427700571978153, 1e-11, - "iauPlan94", "z 4", status); - - vvd(pv[1][0], 0.1413867871404614441e-1, 1e-11, - "iauPlan94", "xd 4", status); - vvd(pv[1][1], 0.1946548301104706582e-1, 1e-11, - "iauPlan94", "yd 4", status); - vvd(pv[1][2], 0.8929809783898904786e-2, 1e-11, - "iauPlan94", "zd 4", status); - - viv(j, 0, "iauPlan94", "j 4", status); - -} - -static void t_pmat00(int *status) -/* -** - - - - - - - - - -** t _ p m a t 0 0 -** - - - - - - - - - -** -** Test iauPmat00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPmat00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbp[3][3]; - - - iauPmat00(2400000.5, 50123.9999, rbp); - - vvd(rbp[0][0], 0.9999995505175087260, 1e-12, - "iauPmat00", "11", status); - vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14, - "iauPmat00", "12", status); - vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14, - "iauPmat00", "13", status); - - vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14, - "iauPmat00", "21", status); - vvd(rbp[1][1], 0.9999996219494925900, 1e-12, - "iauPmat00", "22", status); - vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14, - "iauPmat00", "23", status); - - vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14, - "iauPmat00", "31", status); - vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14, - "iauPmat00", "32", status); - vvd(rbp[2][2], 0.9999999285680153377, 1e-12, - "iauPmat00", "33", status); - -} - -static void t_pmat06(int *status) -/* -** - - - - - - - - - -** t _ p m a t 0 6 -** - - - - - - - - - -** -** Test iauPmat06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPmat06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbp[3][3]; - - - iauPmat06(2400000.5, 50123.9999, rbp); - - vvd(rbp[0][0], 0.9999995505176007047, 1e-12, - "iauPmat06", "11", status); - vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14, - "iauPmat06", "12", status); - vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14, - "iauPmat06", "13", status); - - vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14, - "iauPmat06", "21", status); - vvd(rbp[1][1], 0.9999996219496027161, 1e-12, - "iauPmat06", "22", status); - vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14, - "iauPmat06", "23", status); - - vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14, - "iauPmat06", "31", status); - vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14, - "iauPmat06", "32", status); - vvd(rbp[2][2], 0.9999999285679971958, 1e-12, - "iauPmat06", "33", status); - -} - -static void t_pmat76(int *status) -/* -** - - - - - - - - - -** t _ p m a t 7 6 -** - - - - - - - - - -** -** Test iauPmat76 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPmat76, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rmatp[3][3]; - - - iauPmat76(2400000.5, 50123.9999, rmatp); - - vvd(rmatp[0][0], 0.9999995504328350733, 1e-12, - "iauPmat76", "11", status); - vvd(rmatp[0][1], 0.8696632209480960785e-3, 1e-14, - "iauPmat76", "12", status); - vvd(rmatp[0][2], 0.3779153474959888345e-3, 1e-14, - "iauPmat76", "13", status); - - vvd(rmatp[1][0], -0.8696632209485112192e-3, 1e-14, - "iauPmat76", "21", status); - vvd(rmatp[1][1], 0.9999996218428560614, 1e-12, - "iauPmat76", "22", status); - vvd(rmatp[1][2], -0.1643284776111886407e-6, 1e-14, - "iauPmat76", "23", status); - - vvd(rmatp[2][0], -0.3779153474950335077e-3, 1e-14, - "iauPmat76", "31", status); - vvd(rmatp[2][1], -0.1643306746147366896e-6, 1e-14, - "iauPmat76", "32", status); - vvd(rmatp[2][2], 0.9999999285899790119, 1e-12, - "iauPmat76", "33", status); - -} - -static void t_pm(int *status) -/* -** - - - - - -** t _ p m -** - - - - - -** -** Test iauPm function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPm, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3], r; - - - p[0] = 0.3; - p[1] = 1.2; - p[2] = -2.5; - - r = iauPm(p); - - vvd(r, 2.789265136196270604, 1e-12, "iauPm", "", status); - -} - -static void t_pmp(int *status) -/* -** - - - - - - -** t _ p m p -** - - - - - - -** -** Test iauPmp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPmp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], b[3], amb[3]; - - - a[0] = 2.0; - a[1] = 2.0; - a[2] = 3.0; - - b[0] = 1.0; - b[1] = 3.0; - b[2] = 4.0; - - iauPmp(a, b, amb); - - vvd(amb[0], 1.0, 1e-12, "iauPmp", "0", status); - vvd(amb[1], -1.0, 1e-12, "iauPmp", "1", status); - vvd(amb[2], -1.0, 1e-12, "iauPmp", "2", status); - -} - -static void t_pmpx(int *status) -/* -** - - - - - - - -** t _ p m p x -** - - - - - - - -** -** Test iauPmpx function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPmpx, vvd -** -** This revision: 2017 March 15 -*/ -{ - double rc, dc, pr, pd, px, rv, pmt, pob[3], pco[3]; - - - rc = 1.234; - dc = 0.789; - pr = 1e-5; - pd = -2e-5; - px = 1e-2; - rv = 10.0; - pmt = 8.75; - pob[0] = 0.9; - pob[1] = 0.4; - pob[2] = 0.1; - - iauPmpx(rc, dc, pr, pd, px, rv, pmt, pob, pco); - - vvd(pco[0], 0.2328137623960308438, 1e-12, - "iauPmpx", "1", status); - vvd(pco[1], 0.6651097085397855328, 1e-12, - "iauPmpx", "2", status); - vvd(pco[2], 0.7095257765896359837, 1e-12, - "iauPmpx", "3", status); - -} - -static void t_pmsafe(int *status) -/* -** - - - - - - - - - -** t _ p m s a f e -** - - - - - - - - - -** -** Test iauPmsafe function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPmsafe, vvd, viv -** -** This revision: 2017 March 15 -*/ -{ - int j; - double ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b, - ra2, dec2, pmr2, pmd2, px2, rv2; - - - ra1 = 1.234; - dec1 = 0.789; - pmr1 = 1e-5; - pmd1 = -2e-5; - px1 = 1e-2; - rv1 = 10.0; - ep1a = 2400000.5; - ep1b = 48348.5625; - ep2a = 2400000.5; - ep2b = 51544.5; - - j = iauPmsafe(ra1, dec1, pmr1, pmd1, px1, rv1, - ep1a, ep1b, ep2a, ep2b, - &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); - - vvd(ra2, 1.234087484501017061, 1e-12, - "iauPmsafe", "ra2", status); - vvd(dec2, 0.7888249982450468567, 1e-12, - "iauPmsafe", "dec2", status); - vvd(pmr2, 0.9996457663586073988e-5, 1e-12, - "iauPmsafe", "pmr2", status); - vvd(pmd2, -0.2000040085106754565e-4, 1e-16, - "iauPmsafe", "pmd2", status); - vvd(px2, 0.9999997295356830666e-2, 1e-12, - "iauPmsafe", "px2", status); - vvd(rv2, 10.38468380293920069, 1e-10, - "iauPmsafe", "rv2", status); - viv ( j, 0, "iauPmsafe", "j", status); - -} - -static void t_pn(int *status) -/* -** - - - - - -** t _ p n -** - - - - - -** -** Test iauPn function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPn, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3], r, u[3]; - - - p[0] = 0.3; - p[1] = 1.2; - p[2] = -2.5; - - iauPn(p, &r, u); - - vvd(r, 2.789265136196270604, 1e-12, "iauPn", "r", status); - - vvd(u[0], 0.1075552109073112058, 1e-12, "iauPn", "u1", status); - vvd(u[1], 0.4302208436292448232, 1e-12, "iauPn", "u2", status); - vvd(u[2], -0.8962934242275933816, 1e-12, "iauPn", "u3", status); - -} - -static void t_pn00(int *status) -/* -** - - - - - - - -** t _ p n 0 0 -** - - - - - - - -** -** Test iauPn00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPn00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps, epsa, - rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; - - - dpsi = -0.9632552291149335877e-5; - deps = 0.4063197106621141414e-4; - - iauPn00(2400000.5, 53736.0, dpsi, deps, - &epsa, rb, rp, rbp, rn, rbpn); - - vvd(epsa, 0.4090791789404229916, 1e-12, "iauPn00", "epsa", status); - - vvd(rb[0][0], 0.9999999999999942498, 1e-12, - "iauPn00", "rb11", status); - vvd(rb[0][1], -0.7078279744199196626e-7, 1e-18, - "iauPn00", "rb12", status); - vvd(rb[0][2], 0.8056217146976134152e-7, 1e-18, - "iauPn00", "rb13", status); - - vvd(rb[1][0], 0.7078279477857337206e-7, 1e-18, - "iauPn00", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauPn00", "rb22", status); - vvd(rb[1][2], 0.3306041454222136517e-7, 1e-18, - "iauPn00", "rb23", status); - - vvd(rb[2][0], -0.8056217380986972157e-7, 1e-18, - "iauPn00", "rb31", status); - vvd(rb[2][1], -0.3306040883980552500e-7, 1e-18, - "iauPn00", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauPn00", "rb33", status); - - vvd(rp[0][0], 0.9999989300532289018, 1e-12, - "iauPn00", "rp11", status); - vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, - "iauPn00", "rp12", status); - vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, - "iauPn00", "rp13", status); - - vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, - "iauPn00", "rp21", status); - vvd(rp[1][1], 0.9999990999908750433, 1e-12, - "iauPn00", "rp22", status); - vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, - "iauPn00", "rp23", status); - - vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, - "iauPn00", "rp31", status); - vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, - "iauPn00", "rp32", status); - vvd(rp[2][2], 0.9999998300623538046, 1e-12, - "iauPn00", "rp33", status); - - vvd(rbp[0][0], 0.9999989300052243993, 1e-12, - "iauPn00", "rbp11", status); - vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14, - "iauPn00", "rbp12", status); - vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14, - "iauPn00", "rbp13", status); - - vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, - "iauPn00", "rbp21", status); - vvd(rbp[1][1], 0.9999990998959191343, 1e-12, - "iauPn00", "rbp22", status); - vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14, - "iauPn00", "rbp23", status); - - vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, - "iauPn00", "rbp31", status); - vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14, - "iauPn00", "rbp32", status); - vvd(rbp[2][2], 0.9999998301093036269, 1e-12, - "iauPn00", "rbp33", status); - - vvd(rn[0][0], 0.9999999999536069682, 1e-12, - "iauPn00", "rn11", status); - vvd(rn[0][1], 0.8837746144872140812e-5, 1e-16, - "iauPn00", "rn12", status); - vvd(rn[0][2], 0.3831488838252590008e-5, 1e-16, - "iauPn00", "rn13", status); - - vvd(rn[1][0], -0.8837590456633197506e-5, 1e-16, - "iauPn00", "rn21", status); - vvd(rn[1][1], 0.9999999991354692733, 1e-12, - "iauPn00", "rn22", status); - vvd(rn[1][2], -0.4063198798559573702e-4, 1e-16, - "iauPn00", "rn23", status); - - vvd(rn[2][0], -0.3831847930135328368e-5, 1e-16, - "iauPn00", "rn31", status); - vvd(rn[2][1], 0.4063195412258150427e-4, 1e-16, - "iauPn00", "rn32", status); - vvd(rn[2][2], 0.9999999991671806225, 1e-12, - "iauPn00", "rn33", status); - - vvd(rbpn[0][0], 0.9999989440499982806, 1e-12, - "iauPn00", "rbpn11", status); - vvd(rbpn[0][1], -0.1332880253640848301e-2, 1e-14, - "iauPn00", "rbpn12", status); - vvd(rbpn[0][2], -0.5790760898731087295e-3, 1e-14, - "iauPn00", "rbpn13", status); - - vvd(rbpn[1][0], 0.1332856746979948745e-2, 1e-14, - "iauPn00", "rbpn21", status); - vvd(rbpn[1][1], 0.9999991109064768883, 1e-12, - "iauPn00", "rbpn22", status); - vvd(rbpn[1][2], -0.4097740555723063806e-4, 1e-14, - "iauPn00", "rbpn23", status); - - vvd(rbpn[2][0], 0.5791301929950205000e-3, 1e-14, - "iauPn00", "rbpn31", status); - vvd(rbpn[2][1], 0.4020553681373702931e-4, 1e-14, - "iauPn00", "rbpn32", status); - vvd(rbpn[2][2], 0.9999998314958529887, 1e-12, - "iauPn00", "rbpn33", status); - -} - -static void t_pn00a(int *status) -/* -** - - - - - - - - -** t _ p n 0 0 a -** - - - - - - - - -** -** Test iauPn00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPn00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps, epsa, - rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; - - - iauPn00a(2400000.5, 53736.0, - &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn); - - vvd(dpsi, -0.9630909107115518431e-5, 1e-12, - "iauPn00a", "dpsi", status); - vvd(deps, 0.4063239174001678710e-4, 1e-12, - "iauPn00a", "deps", status); - vvd(epsa, 0.4090791789404229916, 1e-12, "iauPn00a", "epsa", status); - - vvd(rb[0][0], 0.9999999999999942498, 1e-12, - "iauPn00a", "rb11", status); - vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, - "iauPn00a", "rb12", status); - vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, - "iauPn00a", "rb13", status); - - vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, - "iauPn00a", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauPn00a", "rb22", status); - vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, - "iauPn00a", "rb23", status); - - vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, - "iauPn00a", "rb31", status); - vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, - "iauPn00a", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauPn00a", "rb33", status); - - vvd(rp[0][0], 0.9999989300532289018, 1e-12, - "iauPn00a", "rp11", status); - vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, - "iauPn00a", "rp12", status); - vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, - "iauPn00a", "rp13", status); - - vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, - "iauPn00a", "rp21", status); - vvd(rp[1][1], 0.9999990999908750433, 1e-12, - "iauPn00a", "rp22", status); - vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, - "iauPn00a", "rp23", status); - - vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, - "iauPn00a", "rp31", status); - vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, - "iauPn00a", "rp32", status); - vvd(rp[2][2], 0.9999998300623538046, 1e-12, - "iauPn00a", "rp33", status); - - vvd(rbp[0][0], 0.9999989300052243993, 1e-12, - "iauPn00a", "rbp11", status); - vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14, - "iauPn00a", "rbp12", status); - vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14, - "iauPn00a", "rbp13", status); - - vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, - "iauPn00a", "rbp21", status); - vvd(rbp[1][1], 0.9999990998959191343, 1e-12, - "iauPn00a", "rbp22", status); - vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14, - "iauPn00a", "rbp23", status); - - vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, - "iauPn00a", "rbp31", status); - vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14, - "iauPn00a", "rbp32", status); - vvd(rbp[2][2], 0.9999998301093036269, 1e-12, - "iauPn00a", "rbp33", status); - - vvd(rn[0][0], 0.9999999999536227949, 1e-12, - "iauPn00a", "rn11", status); - vvd(rn[0][1], 0.8836238544090873336e-5, 1e-14, - "iauPn00a", "rn12", status); - vvd(rn[0][2], 0.3830835237722400669e-5, 1e-14, - "iauPn00a", "rn13", status); - - vvd(rn[1][0], -0.8836082880798569274e-5, 1e-14, - "iauPn00a", "rn21", status); - vvd(rn[1][1], 0.9999999991354655028, 1e-12, - "iauPn00a", "rn22", status); - vvd(rn[1][2], -0.4063240865362499850e-4, 1e-14, - "iauPn00a", "rn23", status); - - vvd(rn[2][0], -0.3831194272065995866e-5, 1e-14, - "iauPn00a", "rn31", status); - vvd(rn[2][1], 0.4063237480216291775e-4, 1e-14, - "iauPn00a", "rn32", status); - vvd(rn[2][2], 0.9999999991671660338, 1e-12, - "iauPn00a", "rn33", status); - - vvd(rbpn[0][0], 0.9999989440476103435, 1e-12, - "iauPn00a", "rbpn11", status); - vvd(rbpn[0][1], -0.1332881761240011763e-2, 1e-14, - "iauPn00a", "rbpn12", status); - vvd(rbpn[0][2], -0.5790767434730085751e-3, 1e-14, - "iauPn00a", "rbpn13", status); - - vvd(rbpn[1][0], 0.1332858254308954658e-2, 1e-14, - "iauPn00a", "rbpn21", status); - vvd(rbpn[1][1], 0.9999991109044505577, 1e-12, - "iauPn00a", "rbpn22", status); - vvd(rbpn[1][2], -0.4097782710396580452e-4, 1e-14, - "iauPn00a", "rbpn23", status); - - vvd(rbpn[2][0], 0.5791308472168152904e-3, 1e-14, - "iauPn00a", "rbpn31", status); - vvd(rbpn[2][1], 0.4020595661591500259e-4, 1e-14, - "iauPn00a", "rbpn32", status); - vvd(rbpn[2][2], 0.9999998314954572304, 1e-12, - "iauPn00a", "rbpn33", status); - -} - -static void t_pn00b(int *status) -/* -** - - - - - - - - -** t _ p n 0 0 b -** - - - - - - - - -** -** Test iauPn00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPn00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps, epsa, - rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; - - - iauPn00b(2400000.5, 53736.0, &dpsi, &deps, &epsa, - rb, rp, rbp, rn, rbpn); - - vvd(dpsi, -0.9632552291148362783e-5, 1e-12, - "iauPn00b", "dpsi", status); - vvd(deps, 0.4063197106621159367e-4, 1e-12, - "iauPn00b", "deps", status); - vvd(epsa, 0.4090791789404229916, 1e-12, "iauPn00b", "epsa", status); - - vvd(rb[0][0], 0.9999999999999942498, 1e-12, - "iauPn00b", "rb11", status); - vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16, - "iauPn00b", "rb12", status); - vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16, - "iauPn00b", "rb13", status); - - vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16, - "iauPn00b", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauPn00b", "rb22", status); - vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16, - "iauPn00b", "rb23", status); - - vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16, - "iauPn00b", "rb31", status); - vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16, - "iauPn00b", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauPn00b", "rb33", status); - - vvd(rp[0][0], 0.9999989300532289018, 1e-12, - "iauPn00b", "rp11", status); - vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14, - "iauPn00b", "rp12", status); - vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14, - "iauPn00b", "rp13", status); - - vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14, - "iauPn00b", "rp21", status); - vvd(rp[1][1], 0.9999990999908750433, 1e-12, - "iauPn00b", "rp22", status); - vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14, - "iauPn00b", "rp23", status); - - vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14, - "iauPn00b", "rp31", status); - vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14, - "iauPn00b", "rp32", status); - vvd(rp[2][2], 0.9999998300623538046, 1e-12, - "iauPn00b", "rp33", status); - - vvd(rbp[0][0], 0.9999989300052243993, 1e-12, - "iauPn00b", "rbp11", status); - vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14, - "iauPn00b", "rbp12", status); - vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14, - "iauPn00b", "rbp13", status); - - vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14, - "iauPn00b", "rbp21", status); - vvd(rbp[1][1], 0.9999990998959191343, 1e-12, - "iauPn00b", "rbp22", status); - vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14, - "iauPn00b", "rbp23", status); - - vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14, - "iauPn00b", "rbp31", status); - vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14, - "iauPn00b", "rbp32", status); - vvd(rbp[2][2], 0.9999998301093036269, 1e-12, - "iauPn00b", "rbp33", status); - - vvd(rn[0][0], 0.9999999999536069682, 1e-12, - "iauPn00b", "rn11", status); - vvd(rn[0][1], 0.8837746144871248011e-5, 1e-14, - "iauPn00b", "rn12", status); - vvd(rn[0][2], 0.3831488838252202945e-5, 1e-14, - "iauPn00b", "rn13", status); - - vvd(rn[1][0], -0.8837590456632304720e-5, 1e-14, - "iauPn00b", "rn21", status); - vvd(rn[1][1], 0.9999999991354692733, 1e-12, - "iauPn00b", "rn22", status); - vvd(rn[1][2], -0.4063198798559591654e-4, 1e-14, - "iauPn00b", "rn23", status); - - vvd(rn[2][0], -0.3831847930134941271e-5, 1e-14, - "iauPn00b", "rn31", status); - vvd(rn[2][1], 0.4063195412258168380e-4, 1e-14, - "iauPn00b", "rn32", status); - vvd(rn[2][2], 0.9999999991671806225, 1e-12, - "iauPn00b", "rn33", status); - - vvd(rbpn[0][0], 0.9999989440499982806, 1e-12, - "iauPn00b", "rbpn11", status); - vvd(rbpn[0][1], -0.1332880253640849194e-2, 1e-14, - "iauPn00b", "rbpn12", status); - vvd(rbpn[0][2], -0.5790760898731091166e-3, 1e-14, - "iauPn00b", "rbpn13", status); - - vvd(rbpn[1][0], 0.1332856746979949638e-2, 1e-14, - "iauPn00b", "rbpn21", status); - vvd(rbpn[1][1], 0.9999991109064768883, 1e-12, - "iauPn00b", "rbpn22", status); - vvd(rbpn[1][2], -0.4097740555723081811e-4, 1e-14, - "iauPn00b", "rbpn23", status); - - vvd(rbpn[2][0], 0.5791301929950208873e-3, 1e-14, - "iauPn00b", "rbpn31", status); - vvd(rbpn[2][1], 0.4020553681373720832e-4, 1e-14, - "iauPn00b", "rbpn32", status); - vvd(rbpn[2][2], 0.9999998314958529887, 1e-12, - "iauPn00b", "rbpn33", status); - -} - -static void t_pn06a(int *status) -/* -** - - - - - - - - -** t _ p n 0 6 a -** - - - - - - - - -** -** Test iauPn06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPn06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps, epsa; - double rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; - - - iauPn06a(2400000.5, 53736.0, &dpsi, &deps, &epsa, - rb, rp, rbp, rn, rbpn); - - vvd(dpsi, -0.9630912025820308797e-5, 1e-12, - "iauPn06a", "dpsi", status); - vvd(deps, 0.4063238496887249798e-4, 1e-12, - "iauPn06a", "deps", status); - vvd(epsa, 0.4090789763356509926, 1e-12, "iauPn06a", "epsa", status); - - vvd(rb[0][0], 0.9999999999999942497, 1e-12, - "iauPn06a", "rb11", status); - vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, - "iauPn06a", "rb12", status); - vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, - "iauPn06a", "rb13", status); - - vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, - "iauPn06a", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauPn06a", "rb22", status); - vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, - "iauPn06a", "rb23", status); - - vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, - "iauPn06a", "rb31", status); - vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, - "iauPn06a", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauPn06a", "rb33", status); - - vvd(rp[0][0], 0.9999989300536854831, 1e-12, - "iauPn06a", "rp11", status); - vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14, - "iauPn06a", "rp12", status); - vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14, - "iauPn06a", "rp13", status); - - vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14, - "iauPn06a", "rp21", status); - vvd(rp[1][1], 0.9999990999913319321, 1e-12, - "iauPn06a", "rp22", status); - vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14, - "iauPn06a", "rp23", status); - - vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14, - "iauPn06a", "rp31", status); - vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14, - "iauPn06a", "rp32", status); - vvd(rp[2][2], 0.9999998300623534950, 1e-12, - "iauPn06a", "rp33", status); - - vvd(rbp[0][0], 0.9999989300056797893, 1e-12, - "iauPn06a", "rbp11", status); - vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14, - "iauPn06a", "rbp12", status); - vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14, - "iauPn06a", "rbp13", status); - - vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14, - "iauPn06a", "rbp21", status); - vvd(rbp[1][1], 0.9999990998963748448, 1e-12, - "iauPn06a", "rbp22", status); - vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14, - "iauPn06a", "rbp23", status); - - vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14, - "iauPn06a", "rbp31", status); - vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14, - "iauPn06a", "rbp32", status); - vvd(rbp[2][2], 0.9999998301093032943, 1e-12, - "iauPn06a", "rbp33", status); - - vvd(rn[0][0], 0.9999999999536227668, 1e-12, - "iauPn06a", "rn11", status); - vvd(rn[0][1], 0.8836241998111535233e-5, 1e-14, - "iauPn06a", "rn12", status); - vvd(rn[0][2], 0.3830834608415287707e-5, 1e-14, - "iauPn06a", "rn13", status); - - vvd(rn[1][0], -0.8836086334870740138e-5, 1e-14, - "iauPn06a", "rn21", status); - vvd(rn[1][1], 0.9999999991354657474, 1e-12, - "iauPn06a", "rn22", status); - vvd(rn[1][2], -0.4063240188248455065e-4, 1e-14, - "iauPn06a", "rn23", status); - - vvd(rn[2][0], -0.3831193642839398128e-5, 1e-14, - "iauPn06a", "rn31", status); - vvd(rn[2][1], 0.4063236803101479770e-4, 1e-14, - "iauPn06a", "rn32", status); - vvd(rn[2][2], 0.9999999991671663114, 1e-12, - "iauPn06a", "rn33", status); - - vvd(rbpn[0][0], 0.9999989440480669738, 1e-12, - "iauPn06a", "rbpn11", status); - vvd(rbpn[0][1], -0.1332881418091915973e-2, 1e-14, - "iauPn06a", "rbpn12", status); - vvd(rbpn[0][2], -0.5790767447612042565e-3, 1e-14, - "iauPn06a", "rbpn13", status); - - vvd(rbpn[1][0], 0.1332857911250989133e-2, 1e-14, - "iauPn06a", "rbpn21", status); - vvd(rbpn[1][1], 0.9999991109049141908, 1e-12, - "iauPn06a", "rbpn22", status); - vvd(rbpn[1][2], -0.4097767128546784878e-4, 1e-14, - "iauPn06a", "rbpn23", status); - - vvd(rbpn[2][0], 0.5791308482835292617e-3, 1e-14, - "iauPn06a", "rbpn31", status); - vvd(rbpn[2][1], 0.4020580099454020310e-4, 1e-14, - "iauPn06a", "rbpn32", status); - vvd(rbpn[2][2], 0.9999998314954628695, 1e-12, - "iauPn06a", "rbpn33", status); - -} - -static void t_pn06(int *status) -/* -** - - - - - - - -** t _ p n 0 6 -** - - - - - - - -** -** Test iauPn06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPn06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsi, deps, epsa, - rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3]; - - - dpsi = -0.9632552291149335877e-5; - deps = 0.4063197106621141414e-4; - - iauPn06(2400000.5, 53736.0, dpsi, deps, - &epsa, rb, rp, rbp, rn, rbpn); - - vvd(epsa, 0.4090789763356509926, 1e-12, "iauPn06", "epsa", status); - - vvd(rb[0][0], 0.9999999999999942497, 1e-12, - "iauPn06", "rb11", status); - vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14, - "iauPn06", "rb12", status); - vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14, - "iauPn06", "rb13", status); - - vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14, - "iauPn06", "rb21", status); - vvd(rb[1][1], 0.9999999999999969484, 1e-12, - "iauPn06", "rb22", status); - vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14, - "iauPn06", "rb23", status); - - vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14, - "iauPn06", "rb31", status); - vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14, - "iauPn06", "rb32", status); - vvd(rb[2][2], 0.9999999999999962084, 1e-12, - "iauPn06", "rb33", status); - - vvd(rp[0][0], 0.9999989300536854831, 1e-12, - "iauPn06", "rp11", status); - vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14, - "iauPn06", "rp12", status); - vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14, - "iauPn06", "rp13", status); - - vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14, - "iauPn06", "rp21", status); - vvd(rp[1][1], 0.9999990999913319321, 1e-12, - "iauPn06", "rp22", status); - vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14, - "iauPn06", "rp23", status); - - vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14, - "iauPn06", "rp31", status); - vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14, - "iauPn06", "rp32", status); - vvd(rp[2][2], 0.9999998300623534950, 1e-12, - "iauPn06", "rp33", status); - - vvd(rbp[0][0], 0.9999989300056797893, 1e-12, - "iauPn06", "rbp11", status); - vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14, - "iauPn06", "rbp12", status); - vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14, - "iauPn06", "rbp13", status); - - vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14, - "iauPn06", "rbp21", status); - vvd(rbp[1][1], 0.9999990998963748448, 1e-12, - "iauPn06", "rbp22", status); - vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14, - "iauPn06", "rbp23", status); - - vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14, - "iauPn06", "rbp31", status); - vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14, - "iauPn06", "rbp32", status); - vvd(rbp[2][2], 0.9999998301093032943, 1e-12, - "iauPn06", "rbp33", status); - - vvd(rn[0][0], 0.9999999999536069682, 1e-12, - "iauPn06", "rn11", status); - vvd(rn[0][1], 0.8837746921149881914e-5, 1e-14, - "iauPn06", "rn12", status); - vvd(rn[0][2], 0.3831487047682968703e-5, 1e-14, - "iauPn06", "rn13", status); - - vvd(rn[1][0], -0.8837591232983692340e-5, 1e-14, - "iauPn06", "rn21", status); - vvd(rn[1][1], 0.9999999991354692664, 1e-12, - "iauPn06", "rn22", status); - vvd(rn[1][2], -0.4063198798558931215e-4, 1e-14, - "iauPn06", "rn23", status); - - vvd(rn[2][0], -0.3831846139597250235e-5, 1e-14, - "iauPn06", "rn31", status); - vvd(rn[2][1], 0.4063195412258792914e-4, 1e-14, - "iauPn06", "rn32", status); - vvd(rn[2][2], 0.9999999991671806293, 1e-12, - "iauPn06", "rn33", status); - - vvd(rbpn[0][0], 0.9999989440504506688, 1e-12, - "iauPn06", "rbpn11", status); - vvd(rbpn[0][1], -0.1332879913170492655e-2, 1e-14, - "iauPn06", "rbpn12", status); - vvd(rbpn[0][2], -0.5790760923225655753e-3, 1e-14, - "iauPn06", "rbpn13", status); - - vvd(rbpn[1][0], 0.1332856406595754748e-2, 1e-14, - "iauPn06", "rbpn21", status); - vvd(rbpn[1][1], 0.9999991109069366795, 1e-12, - "iauPn06", "rbpn22", status); - vvd(rbpn[1][2], -0.4097725651142641812e-4, 1e-14, - "iauPn06", "rbpn23", status); - - vvd(rbpn[2][0], 0.5791301952321296716e-3, 1e-14, - "iauPn06", "rbpn31", status); - vvd(rbpn[2][1], 0.4020538796195230577e-4, 1e-14, - "iauPn06", "rbpn32", status); - vvd(rbpn[2][2], 0.9999998314958576778, 1e-12, - "iauPn06", "rbpn33", status); - -} - -static void t_pnm00a(int *status) -/* -** - - - - - - - - - -** t _ p n m 0 0 a -** - - - - - - - - - -** -** Test iauPnm00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPnm00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbpn[3][3]; - - - iauPnm00a(2400000.5, 50123.9999, rbpn); - - vvd(rbpn[0][0], 0.9999995832793134257, 1e-12, - "iauPnm00a", "11", status); - vvd(rbpn[0][1], 0.8372384254137809439e-3, 1e-14, - "iauPnm00a", "12", status); - vvd(rbpn[0][2], 0.3639684306407150645e-3, 1e-14, - "iauPnm00a", "13", status); - - vvd(rbpn[1][0], -0.8372535226570394543e-3, 1e-14, - "iauPnm00a", "21", status); - vvd(rbpn[1][1], 0.9999996486491582471, 1e-12, - "iauPnm00a", "22", status); - vvd(rbpn[1][2], 0.4132915262664072381e-4, 1e-14, - "iauPnm00a", "23", status); - - vvd(rbpn[2][0], -0.3639337004054317729e-3, 1e-14, - "iauPnm00a", "31", status); - vvd(rbpn[2][1], -0.4163386925461775873e-4, 1e-14, - "iauPnm00a", "32", status); - vvd(rbpn[2][2], 0.9999999329094390695, 1e-12, - "iauPnm00a", "33", status); - -} - -static void t_pnm00b(int *status) -/* -** - - - - - - - - - -** t _ p n m 0 0 b -** - - - - - - - - - -** -** Test iauPnm00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPnm00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbpn[3][3]; - - - iauPnm00b(2400000.5, 50123.9999, rbpn); - - vvd(rbpn[0][0], 0.9999995832776208280, 1e-12, - "iauPnm00b", "11", status); - vvd(rbpn[0][1], 0.8372401264429654837e-3, 1e-14, - "iauPnm00b", "12", status); - vvd(rbpn[0][2], 0.3639691681450271771e-3, 1e-14, - "iauPnm00b", "13", status); - - vvd(rbpn[1][0], -0.8372552234147137424e-3, 1e-14, - "iauPnm00b", "21", status); - vvd(rbpn[1][1], 0.9999996486477686123, 1e-12, - "iauPnm00b", "22", status); - vvd(rbpn[1][2], 0.4132832190946052890e-4, 1e-14, - "iauPnm00b", "23", status); - - vvd(rbpn[2][0], -0.3639344385341866407e-3, 1e-14, - "iauPnm00b", "31", status); - vvd(rbpn[2][1], -0.4163303977421522785e-4, 1e-14, - "iauPnm00b", "32", status); - vvd(rbpn[2][2], 0.9999999329092049734, 1e-12, - "iauPnm00b", "33", status); - -} - -static void t_pnm06a(int *status) -/* -** - - - - - - - - - -** t _ p n m 0 6 a -** - - - - - - - - - -** -** Test iauPnm06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPnm06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rbpn[3][3]; - - - iauPnm06a(2400000.5, 50123.9999, rbpn); - - vvd(rbpn[0][0], 0.9999995832794205484, 1e-12, - "iauPnm06a", "11", status); - vvd(rbpn[0][1], 0.8372382772630962111e-3, 1e-14, - "iauPnm06a", "12", status); - vvd(rbpn[0][2], 0.3639684771140623099e-3, 1e-14, - "iauPnm06a", "13", status); - - vvd(rbpn[1][0], -0.8372533744743683605e-3, 1e-14, - "iauPnm06a", "21", status); - vvd(rbpn[1][1], 0.9999996486492861646, 1e-12, - "iauPnm06a", "22", status); - vvd(rbpn[1][2], 0.4132905944611019498e-4, 1e-14, - "iauPnm06a", "23", status); - - vvd(rbpn[2][0], -0.3639337469629464969e-3, 1e-14, - "iauPnm06a", "31", status); - vvd(rbpn[2][1], -0.4163377605910663999e-4, 1e-14, - "iauPnm06a", "32", status); - vvd(rbpn[2][2], 0.9999999329094260057, 1e-12, - "iauPnm06a", "33", status); - -} - -static void t_pnm80(int *status) -/* -** - - - - - - - - -** t _ p n m 8 0 -** - - - - - - - - -** -** Test iauPnm80 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPnm80, vvd -** -** This revision: 2013 August 7 -*/ -{ - double rmatpn[3][3]; - - - iauPnm80(2400000.5, 50123.9999, rmatpn); - - vvd(rmatpn[0][0], 0.9999995831934611169, 1e-12, - "iauPnm80", "11", status); - vvd(rmatpn[0][1], 0.8373654045728124011e-3, 1e-14, - "iauPnm80", "12", status); - vvd(rmatpn[0][2], 0.3639121916933106191e-3, 1e-14, - "iauPnm80", "13", status); - - vvd(rmatpn[1][0], -0.8373804896118301316e-3, 1e-14, - "iauPnm80", "21", status); - vvd(rmatpn[1][1], 0.9999996485439674092, 1e-12, - "iauPnm80", "22", status); - vvd(rmatpn[1][2], 0.4130202510421549752e-4, 1e-14, - "iauPnm80", "23", status); - - vvd(rmatpn[2][0], -0.3638774789072144473e-3, 1e-14, - "iauPnm80", "31", status); - vvd(rmatpn[2][1], -0.4160674085851722359e-4, 1e-14, - "iauPnm80", "32", status); - vvd(rmatpn[2][2], 0.9999999329310274805, 1e-12, - "iauPnm80", "33", status); - -} - -static void t_pom00(int *status) -/* -** - - - - - - - - -** t _ p o m 0 0 -** - - - - - - - - -** -** Test iauPom00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPom00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double xp, yp, sp, rpom[3][3]; - - - xp = 2.55060238e-7; - yp = 1.860359247e-6; - sp = -0.1367174580728891460e-10; - - iauPom00(xp, yp, sp, rpom); - - vvd(rpom[0][0], 0.9999999999999674721, 1e-12, - "iauPom00", "11", status); - vvd(rpom[0][1], -0.1367174580728846989e-10, 1e-16, - "iauPom00", "12", status); - vvd(rpom[0][2], 0.2550602379999972345e-6, 1e-16, - "iauPom00", "13", status); - - vvd(rpom[1][0], 0.1414624947957029801e-10, 1e-16, - "iauPom00", "21", status); - vvd(rpom[1][1], 0.9999999999982695317, 1e-12, - "iauPom00", "22", status); - vvd(rpom[1][2], -0.1860359246998866389e-5, 1e-16, - "iauPom00", "23", status); - - vvd(rpom[2][0], -0.2550602379741215021e-6, 1e-16, - "iauPom00", "31", status); - vvd(rpom[2][1], 0.1860359247002414021e-5, 1e-16, - "iauPom00", "32", status); - vvd(rpom[2][2], 0.9999999999982370039, 1e-12, - "iauPom00", "33", status); - -} - -static void t_ppp(int *status) -/* -** - - - - - - -** t _ p p p -** - - - - - - -** -** Test iauPpp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPpp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], b[3], apb[3]; - - - a[0] = 2.0; - a[1] = 2.0; - a[2] = 3.0; - - b[0] = 1.0; - b[1] = 3.0; - b[2] = 4.0; - - iauPpp(a, b, apb); - - vvd(apb[0], 3.0, 1e-12, "iauPpp", "0", status); - vvd(apb[1], 5.0, 1e-12, "iauPpp", "1", status); - vvd(apb[2], 7.0, 1e-12, "iauPpp", "2", status); - -} - -static void t_ppsp(int *status) -/* -** - - - - - - - -** t _ p p s p -** - - - - - - - -** -** Test iauPpsp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPpsp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], s, b[3], apsb[3]; - - - a[0] = 2.0; - a[1] = 2.0; - a[2] = 3.0; - - s = 5.0; - - b[0] = 1.0; - b[1] = 3.0; - b[2] = 4.0; - - iauPpsp(a, s, b, apsb); - - vvd(apsb[0], 7.0, 1e-12, "iauPpsp", "0", status); - vvd(apsb[1], 17.0, 1e-12, "iauPpsp", "1", status); - vvd(apsb[2], 23.0, 1e-12, "iauPpsp", "2", status); - -} - -static void t_pr00(int *status) -/* -** - - - - - - - -** t _ p r 0 0 -** - - - - - - - -** -** Test iauPr00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPr00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double dpsipr, depspr; - - iauPr00(2400000.5, 53736, &dpsipr, &depspr); - - vvd(dpsipr, -0.8716465172668347629e-7, 1e-22, - "iauPr00", "dpsipr", status); - vvd(depspr, -0.7342018386722813087e-8, 1e-22, - "iauPr00", "depspr", status); - -} - -static void t_prec76(int *status) -/* -** - - - - - - - - - -** t _ p r e c 7 6 -** - - - - - - - - - -** -** Test iauPrec76 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPrec76, vvd -** -** This revision: 2013 August 7 -*/ -{ - double ep01, ep02, ep11, ep12, zeta, z, theta; - - - ep01 = 2400000.5; - ep02 = 33282.0; - ep11 = 2400000.5; - ep12 = 51544.0; - - iauPrec76(ep01, ep02, ep11, ep12, &zeta, &z, &theta); - - vvd(zeta, 0.5588961642000161243e-2, 1e-12, - "iauPrec76", "zeta", status); - vvd(z, 0.5589922365870680624e-2, 1e-12, - "iauPrec76", "z", status); - vvd(theta, 0.4858945471687296760e-2, 1e-12, - "iauPrec76", "theta", status); - -} - -static void t_pv2p(int *status) -/* -** - - - - - - - -** t _ p v 2 p -** - - - - - - - -** -** Test iauPv2p function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPv2p, vvd -** -** This revision: 2013 August 7 -*/ -{ - double pv[2][3], p[3]; - - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = -0.5; - pv[1][1] = 3.1; - pv[1][2] = 0.9; - - iauPv2p(pv, p); - - vvd(p[0], 0.3, 0.0, "iauPv2p", "1", status); - vvd(p[1], 1.2, 0.0, "iauPv2p", "2", status); - vvd(p[2], -2.5, 0.0, "iauPv2p", "3", status); - -} - -static void t_pv2s(int *status) -/* -** - - - - - - - -** t _ p v 2 s -** - - - - - - - -** -** Test iauPv2s function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPv2s, vvd -** -** This revision: 2013 August 7 -*/ -{ - double pv[2][3], theta, phi, r, td, pd, rd; - - - pv[0][0] = -0.4514964673880165; - pv[0][1] = 0.03093394277342585; - pv[0][2] = 0.05594668105108779; - - pv[1][0] = 1.292270850663260e-5; - pv[1][1] = 2.652814182060692e-6; - pv[1][2] = 2.568431853930293e-6; - - iauPv2s(pv, &theta, &phi, &r, &td, &pd, &rd); - - vvd(theta, 3.073185307179586515, 1e-12, "iauPv2s", "theta", status); - vvd(phi, 0.1229999999999999992, 1e-12, "iauPv2s", "phi", status); - vvd(r, 0.4559999999999999757, 1e-12, "iauPv2s", "r", status); - vvd(td, -0.7800000000000000364e-5, 1e-16, "iauPv2s", "td", status); - vvd(pd, 0.9010000000000001639e-5, 1e-16, "iauPv2s", "pd", status); - vvd(rd, -0.1229999999999999832e-4, 1e-16, "iauPv2s", "rd", status); - -} - -static void t_pvdpv(int *status) -/* -** - - - - - - - - -** t _ p v d p v -** - - - - - - - - -** -** Test iauPvdpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvdpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[2][3], b[2][3], adb[2]; - - - a[0][0] = 2.0; - a[0][1] = 2.0; - a[0][2] = 3.0; - - a[1][0] = 6.0; - a[1][1] = 0.0; - a[1][2] = 4.0; - - b[0][0] = 1.0; - b[0][1] = 3.0; - b[0][2] = 4.0; - - b[1][0] = 0.0; - b[1][1] = 2.0; - b[1][2] = 8.0; - - iauPvdpv(a, b, adb); - - vvd(adb[0], 20.0, 1e-12, "iauPvdpv", "1", status); - vvd(adb[1], 50.0, 1e-12, "iauPvdpv", "2", status); - -} - -static void t_pvm(int *status) -/* -** - - - - - - -** t _ p v m -** - - - - - - -** -** Test iauPvm function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvm, vvd -** -** This revision: 2013 August 7 -*/ -{ - double pv[2][3], r, s; - - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = 0.45; - pv[1][1] = -0.25; - pv[1][2] = 1.1; - - iauPvm(pv, &r, &s); - - vvd(r, 2.789265136196270604, 1e-12, "iauPvm", "r", status); - vvd(s, 1.214495780149111922, 1e-12, "iauPvm", "s", status); - -} - -static void t_pvmpv(int *status) -/* -** - - - - - - - - -** t _ p v m p v -** - - - - - - - - -** -** Test iauPvmpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvmpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[2][3], b[2][3], amb[2][3]; - - - a[0][0] = 2.0; - a[0][1] = 2.0; - a[0][2] = 3.0; - - a[1][0] = 5.0; - a[1][1] = 6.0; - a[1][2] = 3.0; - - b[0][0] = 1.0; - b[0][1] = 3.0; - b[0][2] = 4.0; - - b[1][0] = 3.0; - b[1][1] = 2.0; - b[1][2] = 1.0; - - iauPvmpv(a, b, amb); - - vvd(amb[0][0], 1.0, 1e-12, "iauPvmpv", "11", status); - vvd(amb[0][1], -1.0, 1e-12, "iauPvmpv", "21", status); - vvd(amb[0][2], -1.0, 1e-12, "iauPvmpv", "31", status); - - vvd(amb[1][0], 2.0, 1e-12, "iauPvmpv", "12", status); - vvd(amb[1][1], 4.0, 1e-12, "iauPvmpv", "22", status); - vvd(amb[1][2], 2.0, 1e-12, "iauPvmpv", "32", status); - -} - -static void t_pvppv(int *status) -/* -** - - - - - - - - -** t _ p v p p v -** - - - - - - - - -** -** Test iauPvppv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvppv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[2][3], b[2][3], apb[2][3]; - - - a[0][0] = 2.0; - a[0][1] = 2.0; - a[0][2] = 3.0; - - a[1][0] = 5.0; - a[1][1] = 6.0; - a[1][2] = 3.0; - - b[0][0] = 1.0; - b[0][1] = 3.0; - b[0][2] = 4.0; - - b[1][0] = 3.0; - b[1][1] = 2.0; - b[1][2] = 1.0; - - iauPvppv(a, b, apb); - - vvd(apb[0][0], 3.0, 1e-12, "iauPvppv", "p1", status); - vvd(apb[0][1], 5.0, 1e-12, "iauPvppv", "p2", status); - vvd(apb[0][2], 7.0, 1e-12, "iauPvppv", "p3", status); - - vvd(apb[1][0], 8.0, 1e-12, "iauPvppv", "v1", status); - vvd(apb[1][1], 8.0, 1e-12, "iauPvppv", "v2", status); - vvd(apb[1][2], 4.0, 1e-12, "iauPvppv", "v3", status); - -} - -static void t_pvstar(int *status) -/* -** - - - - - - - - - -** t _ p v s t a r -** - - - - - - - - - -** -** Test iauPvstar function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvstar, vvd, viv -** -** This revision: 2017 March 15 -*/ -{ - double pv[2][3], ra, dec, pmr, pmd, px, rv; - int j; - - - pv[0][0] = 126668.5912743160601; - pv[0][1] = 2136.792716839935195; - pv[0][2] = -245251.2339876830091; - - pv[1][0] = -0.4051854035740712739e-2; - pv[1][1] = -0.6253919754866173866e-2; - pv[1][2] = 0.1189353719774107189e-1; - - j = iauPvstar(pv, &ra, &dec, &pmr, &pmd, &px, &rv); - - vvd(ra, 0.1686756e-1, 1e-12, "iauPvstar", "ra", status); - vvd(dec, -1.093989828, 1e-12, "iauPvstar", "dec", status); - vvd(pmr, -0.1783235160000472788e-4, 1e-16, "iauPvstar", "pmr", status); - vvd(pmd, 0.2336024047000619347e-5, 1e-16, "iauPvstar", "pmd", status); - vvd(px, 0.74723, 1e-12, "iauPvstar", "px", status); - vvd(rv, -21.60000010107306010, 1e-11, "iauPvstar", "rv", status); - - viv(j, 0, "iauPvstar", "j", status); - -} - -static void t_pvtob(int *status) -/* -** - - - - - - - - -** t _ p v t o b -** - - - - - - - - -** -** Test iauPvtob function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvtob, vvd -** -** This revision: 2013 October 2 -*/ -{ - double elong, phi, hm, xp, yp, sp, theta, pv[2][3]; - - - elong = 2.0; - phi = 0.5; - hm = 3000.0; - xp = 1e-6; - yp = -0.5e-6; - sp = 1e-8; - theta = 5.0; - - iauPvtob(elong, phi, hm, xp, yp, sp, theta, pv); - - vvd(pv[0][0], 4225081.367071159207, 1e-5, - "iauPvtob", "p(1)", status); - vvd(pv[0][1], 3681943.215856198144, 1e-5, - "iauPvtob", "p(2)", status); - vvd(pv[0][2], 3041149.399241260785, 1e-5, - "iauPvtob", "p(3)", status); - vvd(pv[1][0], -268.4915389365998787, 1e-9, - "iauPvtob", "v(1)", status); - vvd(pv[1][1], 308.0977983288903123, 1e-9, - "iauPvtob", "v(2)", status); - vvd(pv[1][2], 0, 0, - "iauPvtob", "v(3)", status); - -} - -static void t_pvu(int *status) -/* -** - - - - - - -** t _ p v u -** - - - - - - -** -** Test iauPvu function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvu, vvd -** -** This revision: 2021 January 5 -*/ -{ - double pv[2][3], upv[2][3]; - - - pv[0][0] = 126668.5912743160734; - pv[0][1] = 2136.792716839935565; - pv[0][2] = -245251.2339876830229; - - pv[1][0] = -0.4051854035740713039e-2; - pv[1][1] = -0.6253919754866175788e-2; - pv[1][2] = 0.1189353719774107615e-1; - - iauPvu(2920.0, pv, upv); - - vvd(upv[0][0], 126656.7598605317105, 1e-6, - "iauPvu", "p1", status); - vvd(upv[0][1], 2118.531271155726332, 1e-8, - "iauPvu", "p2", status); - vvd(upv[0][2], -245216.5048590656190, 1e-6, - "iauPvu", "p3", status); - - vvd(upv[1][0], -0.4051854035740713039e-2, 1e-12, - "iauPvu", "v1", status); - vvd(upv[1][1], -0.6253919754866175788e-2, 1e-12, - "iauPvu", "v2", status); - vvd(upv[1][2], 0.1189353719774107615e-1, 1e-12, - "iauPvu", "v3", status); - -} - -static void t_pvup(int *status) -/* -** - - - - - - - -** t _ p v u p -** - - - - - - - -** -** Test iauPvup function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvup, vvd -** -** This revision: 2021 January 5 -*/ -{ - double pv[2][3], p[3]; - - - pv[0][0] = 126668.5912743160734; - pv[0][1] = 2136.792716839935565; - pv[0][2] = -245251.2339876830229; - - pv[1][0] = -0.4051854035740713039e-2; - pv[1][1] = -0.6253919754866175788e-2; - pv[1][2] = 0.1189353719774107615e-1; - - iauPvup(2920.0, pv, p); - - vvd(p[0], 126656.7598605317105, 1e-6, "iauPvup", "1", status); - vvd(p[1], 2118.531271155726332, 1e-8, "iauPvup", "2", status); - vvd(p[2], -245216.5048590656190, 1e-6, "iauPvup", "3", status); - -} - -static void t_pvxpv(int *status) -/* -** - - - - - - - - -** t _ p v x p v -** - - - - - - - - -** -** Test iauPvxpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPvxpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[2][3], b[2][3], axb[2][3]; - - - a[0][0] = 2.0; - a[0][1] = 2.0; - a[0][2] = 3.0; - - a[1][0] = 6.0; - a[1][1] = 0.0; - a[1][2] = 4.0; - - b[0][0] = 1.0; - b[0][1] = 3.0; - b[0][2] = 4.0; - - b[1][0] = 0.0; - b[1][1] = 2.0; - b[1][2] = 8.0; - - iauPvxpv(a, b, axb); - - vvd(axb[0][0], -1.0, 1e-12, "iauPvxpv", "p1", status); - vvd(axb[0][1], -5.0, 1e-12, "iauPvxpv", "p2", status); - vvd(axb[0][2], 4.0, 1e-12, "iauPvxpv", "p3", status); - - vvd(axb[1][0], -2.0, 1e-12, "iauPvxpv", "v1", status); - vvd(axb[1][1], -36.0, 1e-12, "iauPvxpv", "v2", status); - vvd(axb[1][2], 22.0, 1e-12, "iauPvxpv", "v3", status); - -} - -static void t_pxp(int *status) -/* -** - - - - - - -** t _ p x p -** - - - - - - -** -** Test iauPxp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauPxp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], b[3], axb[3]; - - - a[0] = 2.0; - a[1] = 2.0; - a[2] = 3.0; - - b[0] = 1.0; - b[1] = 3.0; - b[2] = 4.0; - - iauPxp(a, b, axb); - - vvd(axb[0], -1.0, 1e-12, "iauPxp", "1", status); - vvd(axb[1], -5.0, 1e-12, "iauPxp", "2", status); - vvd(axb[2], 4.0, 1e-12, "iauPxp", "3", status); - -} - -static void t_refco(int *status) -/* -** - - - - - - - - -** t _ r e f c o -** - - - - - - - - -** -** Test iauRefco function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRefco, vvd -** -** This revision: 2013 October 2 -*/ -{ - double phpa, tc, rh, wl, refa, refb; - - - phpa = 800.0; - tc = 10.0; - rh = 0.9; - wl = 0.4; - - iauRefco(phpa, tc, rh, wl, &refa, &refb); - - vvd(refa, 0.2264949956241415009e-3, 1e-15, - "iauRefco", "refa", status); - vvd(refb, -0.2598658261729343970e-6, 1e-18, - "iauRefco", "refb", status); - -} - -static void t_rm2v(int *status) -/* -** - - - - - - - -** t _ r m 2 v -** - - - - - - - -** -** Test iauRm2v function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRm2v, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], w[3]; - - - r[0][0] = 0.00; - r[0][1] = -0.80; - r[0][2] = -0.60; - - r[1][0] = 0.80; - r[1][1] = -0.36; - r[1][2] = 0.48; - - r[2][0] = 0.60; - r[2][1] = 0.48; - r[2][2] = -0.64; - - iauRm2v(r, w); - - vvd(w[0], 0.0, 1e-12, "iauRm2v", "1", status); - vvd(w[1], 1.413716694115406957, 1e-12, "iauRm2v", "2", status); - vvd(w[2], -1.884955592153875943, 1e-12, "iauRm2v", "3", status); - -} - -static void t_rv2m(int *status) -/* -** - - - - - - - -** t _ r v 2 m -** - - - - - - - -** -** Test iauRv2m function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRv2m, vvd -** -** This revision: 2013 August 7 -*/ -{ - double w[3], r[3][3]; - - - w[0] = 0.0; - w[1] = 1.41371669; - w[2] = -1.88495559; - - iauRv2m(w, r); - - vvd(r[0][0], -0.7071067782221119905, 1e-14, "iauRv2m", "11", status); - vvd(r[0][1], -0.5656854276809129651, 1e-14, "iauRv2m", "12", status); - vvd(r[0][2], -0.4242640700104211225, 1e-14, "iauRv2m", "13", status); - - vvd(r[1][0], 0.5656854276809129651, 1e-14, "iauRv2m", "21", status); - vvd(r[1][1], -0.0925483394532274246, 1e-14, "iauRv2m", "22", status); - vvd(r[1][2], -0.8194112531408833269, 1e-14, "iauRv2m", "23", status); - - vvd(r[2][0], 0.4242640700104211225, 1e-14, "iauRv2m", "31", status); - vvd(r[2][1], -0.8194112531408833269, 1e-14, "iauRv2m", "32", status); - vvd(r[2][2], 0.3854415612311154341, 1e-14, "iauRv2m", "33", status); - -} - -static void t_rx(int *status) -/* -** - - - - - -** t _ r x -** - - - - - -** -** Test iauRx function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRx, vvd -** -** This revision: 2013 August 7 -*/ -{ - double phi, r[3][3]; - - - phi = 0.3456789; - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - iauRx(phi, r); - - vvd(r[0][0], 2.0, 0.0, "iauRx", "11", status); - vvd(r[0][1], 3.0, 0.0, "iauRx", "12", status); - vvd(r[0][2], 2.0, 0.0, "iauRx", "13", status); - - vvd(r[1][0], 3.839043388235612460, 1e-12, "iauRx", "21", status); - vvd(r[1][1], 3.237033249594111899, 1e-12, "iauRx", "22", status); - vvd(r[1][2], 4.516714379005982719, 1e-12, "iauRx", "23", status); - - vvd(r[2][0], 1.806030415924501684, 1e-12, "iauRx", "31", status); - vvd(r[2][1], 3.085711545336372503, 1e-12, "iauRx", "32", status); - vvd(r[2][2], 3.687721683977873065, 1e-12, "iauRx", "33", status); - -} - -static void t_rxp(int *status) -/* -** - - - - - - -** t _ r x p -** - - - - - - -** -** Test iauRxp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRxp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], p[3], rp[3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - p[0] = 0.2; - p[1] = 1.5; - p[2] = 0.1; - - iauRxp(r, p, rp); - - vvd(rp[0], 5.1, 1e-12, "iauRxp", "1", status); - vvd(rp[1], 3.9, 1e-12, "iauRxp", "2", status); - vvd(rp[2], 7.1, 1e-12, "iauRxp", "3", status); - -} - -static void t_rxpv(int *status) -/* -** - - - - - - - -** t _ r x p v -** - - - - - - - -** -** Test iauRxpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRxpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], pv[2][3], rpv[2][3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - pv[0][0] = 0.2; - pv[0][1] = 1.5; - pv[0][2] = 0.1; - - pv[1][0] = 1.5; - pv[1][1] = 0.2; - pv[1][2] = 0.1; - - iauRxpv(r, pv, rpv); - - vvd(rpv[0][0], 5.1, 1e-12, "iauRxpv", "11", status); - vvd(rpv[1][0], 3.8, 1e-12, "iauRxpv", "12", status); - - vvd(rpv[0][1], 3.9, 1e-12, "iauRxpv", "21", status); - vvd(rpv[1][1], 5.2, 1e-12, "iauRxpv", "22", status); - - vvd(rpv[0][2], 7.1, 1e-12, "iauRxpv", "31", status); - vvd(rpv[1][2], 5.8, 1e-12, "iauRxpv", "32", status); - -} - -static void t_rxr(int *status) -/* -** - - - - - - -** t _ r x r -** - - - - - - -** -** Test iauRxr function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRxr, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3][3], b[3][3], atb[3][3]; - - - a[0][0] = 2.0; - a[0][1] = 3.0; - a[0][2] = 2.0; - - a[1][0] = 3.0; - a[1][1] = 2.0; - a[1][2] = 3.0; - - a[2][0] = 3.0; - a[2][1] = 4.0; - a[2][2] = 5.0; - - b[0][0] = 1.0; - b[0][1] = 2.0; - b[0][2] = 2.0; - - b[1][0] = 4.0; - b[1][1] = 1.0; - b[1][2] = 1.0; - - b[2][0] = 3.0; - b[2][1] = 0.0; - b[2][2] = 1.0; - - iauRxr(a, b, atb); - - vvd(atb[0][0], 20.0, 1e-12, "iauRxr", "11", status); - vvd(atb[0][1], 7.0, 1e-12, "iauRxr", "12", status); - vvd(atb[0][2], 9.0, 1e-12, "iauRxr", "13", status); - - vvd(atb[1][0], 20.0, 1e-12, "iauRxr", "21", status); - vvd(atb[1][1], 8.0, 1e-12, "iauRxr", "22", status); - vvd(atb[1][2], 11.0, 1e-12, "iauRxr", "23", status); - - vvd(atb[2][0], 34.0, 1e-12, "iauRxr", "31", status); - vvd(atb[2][1], 10.0, 1e-12, "iauRxr", "32", status); - vvd(atb[2][2], 15.0, 1e-12, "iauRxr", "33", status); - -} - -static void t_ry(int *status) -/* -** - - - - - -** t _ r y -** - - - - - -** -** Test iauRy function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRy, vvd -** -** This revision: 2013 August 7 -*/ -{ - double theta, r[3][3]; - - - theta = 0.3456789; - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - iauRy(theta, r); - - vvd(r[0][0], 0.8651847818978159930, 1e-12, "iauRy", "11", status); - vvd(r[0][1], 1.467194920539316554, 1e-12, "iauRy", "12", status); - vvd(r[0][2], 0.1875137911274457342, 1e-12, "iauRy", "13", status); - - vvd(r[1][0], 3, 1e-12, "iauRy", "21", status); - vvd(r[1][1], 2, 1e-12, "iauRy", "22", status); - vvd(r[1][2], 3, 1e-12, "iauRy", "23", status); - - vvd(r[2][0], 3.500207892850427330, 1e-12, "iauRy", "31", status); - vvd(r[2][1], 4.779889022262298150, 1e-12, "iauRy", "32", status); - vvd(r[2][2], 5.381899160903798712, 1e-12, "iauRy", "33", status); - -} - -static void t_rz(int *status) -/* -** - - - - - -** t _ r z -** - - - - - -** -** Test iauRz function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauRz, vvd -** -** This revision: 2013 August 7 -*/ -{ - double psi, r[3][3]; - - - psi = 0.3456789; - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - iauRz(psi, r); - - vvd(r[0][0], 2.898197754208926769, 1e-12, "iauRz", "11", status); - vvd(r[0][1], 3.500207892850427330, 1e-12, "iauRz", "12", status); - vvd(r[0][2], 2.898197754208926769, 1e-12, "iauRz", "13", status); - - vvd(r[1][0], 2.144865911309686813, 1e-12, "iauRz", "21", status); - vvd(r[1][1], 0.865184781897815993, 1e-12, "iauRz", "22", status); - vvd(r[1][2], 2.144865911309686813, 1e-12, "iauRz", "23", status); - - vvd(r[2][0], 3.0, 1e-12, "iauRz", "31", status); - vvd(r[2][1], 4.0, 1e-12, "iauRz", "32", status); - vvd(r[2][2], 5.0, 1e-12, "iauRz", "33", status); - -} - -static void t_s00a(int *status) -/* -** - - - - - - - -** t _ s 0 0 a -** - - - - - - - -** -** Test iauS00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double s; - - - s = iauS00a(2400000.5, 52541.0); - - vvd(s, -0.1340684448919163584e-7, 1e-18, "iauS00a", "", status); - -} - -static void t_s00b(int *status) -/* -** - - - - - - - -** t _ s 0 0 b -** - - - - - - - -** -** Test iauS00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double s; - - - s = iauS00b(2400000.5, 52541.0); - - vvd(s, -0.1340695782951026584e-7, 1e-18, "iauS00b", "", status); - -} - -static void t_s00(int *status) -/* -** - - - - - - -** t _ s 0 0 -** - - - - - - -** -** Test iauS00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS00, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, s; - - - x = 0.5791308486706011000e-3; - y = 0.4020579816732961219e-4; - - s = iauS00(2400000.5, 53736.0, x, y); - - vvd(s, -0.1220036263270905693e-7, 1e-18, "iauS00", "", status); - -} - -static void t_s06a(int *status) -/* -** - - - - - - - -** t _ s 0 6 a -** - - - - - - - -** -** Test iauS06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double s; - - - s = iauS06a(2400000.5, 52541.0); - - vvd(s, -0.1340680437291812383e-7, 1e-18, "iauS06a", "", status); - -} - -static void t_s06(int *status) -/* -** - - - - - - -** t _ s 0 6 -** - - - - - - -** -** Test iauS06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, s; - - - x = 0.5791308486706011000e-3; - y = 0.4020579816732961219e-4; - - s = iauS06(2400000.5, 53736.0, x, y); - - vvd(s, -0.1220032213076463117e-7, 1e-18, "iauS06", "", status); - -} - -static void t_s2c(int *status) -/* -** - - - - - - -** t _ s 2 c -** - - - - - - -** -** Test iauS2c function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS2c, vvd -** -** This revision: 2013 August 7 -*/ -{ - double c[3]; - - - iauS2c(3.0123, -0.999, c); - - vvd(c[0], -0.5366267667260523906, 1e-12, "iauS2c", "1", status); - vvd(c[1], 0.0697711109765145365, 1e-12, "iauS2c", "2", status); - vvd(c[2], -0.8409302618566214041, 1e-12, "iauS2c", "3", status); - -} - -static void t_s2p(int *status) -/* -** - - - - - - -** t _ s 2 p -** - - - - - - -** -** Test iauS2p function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS2p, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3]; - - - iauS2p(-3.21, 0.123, 0.456, p); - - vvd(p[0], -0.4514964673880165228, 1e-12, "iauS2p", "x", status); - vvd(p[1], 0.0309339427734258688, 1e-12, "iauS2p", "y", status); - vvd(p[2], 0.0559466810510877933, 1e-12, "iauS2p", "z", status); - -} - -static void t_s2pv(int *status) -/* -** - - - - - - - -** t _ s 2 p v -** - - - - - - - -** -** Test iauS2pv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS2pv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double pv[2][3]; - - - iauS2pv(-3.21, 0.123, 0.456, -7.8e-6, 9.01e-6, -1.23e-5, pv); - - vvd(pv[0][0], -0.4514964673880165228, 1e-12, "iauS2pv", "x", status); - vvd(pv[0][1], 0.0309339427734258688, 1e-12, "iauS2pv", "y", status); - vvd(pv[0][2], 0.0559466810510877933, 1e-12, "iauS2pv", "z", status); - - vvd(pv[1][0], 0.1292270850663260170e-4, 1e-16, - "iauS2pv", "vx", status); - vvd(pv[1][1], 0.2652814182060691422e-5, 1e-16, - "iauS2pv", "vy", status); - vvd(pv[1][2], 0.2568431853930292259e-5, 1e-16, - "iauS2pv", "vz", status); - -} - -static void t_s2xpv(int *status) -/* -** - - - - - - - - -** t _ s 2 x p v -** - - - - - - - - -** -** Test iauS2xpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauS2xpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double s1, s2, pv[2][3], spv[2][3]; - - - s1 = 2.0; - s2 = 3.0; - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = 0.5; - pv[1][1] = 2.3; - pv[1][2] = -0.4; - - iauS2xpv(s1, s2, pv, spv); - - vvd(spv[0][0], 0.6, 1e-12, "iauS2xpv", "p1", status); - vvd(spv[0][1], 2.4, 1e-12, "iauS2xpv", "p2", status); - vvd(spv[0][2], -5.0, 1e-12, "iauS2xpv", "p3", status); - - vvd(spv[1][0], 1.5, 1e-12, "iauS2xpv", "v1", status); - vvd(spv[1][1], 6.9, 1e-12, "iauS2xpv", "v2", status); - vvd(spv[1][2], -1.2, 1e-12, "iauS2xpv", "v3", status); - -} - -static void t_sepp(int *status) -/* -** - - - - - - - -** t _ s e p p -** - - - - - - - -** -** Test iauSepp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauSepp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double a[3], b[3], s; - - - a[0] = 1.0; - a[1] = 0.1; - a[2] = 0.2; - - b[0] = -3.0; - b[1] = 1e-3; - b[2] = 0.2; - - s = iauSepp(a, b); - - vvd(s, 2.860391919024660768, 1e-12, "iauSepp", "", status); - -} - -static void t_seps(int *status) -/* -** - - - - - - - -** t _ s e p s -** - - - - - - - -** -** Test iauSeps function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauSeps, vvd -** -** This revision: 2013 August 7 -*/ -{ - double al, ap, bl, bp, s; - - - al = 1.0; - ap = 0.1; - - bl = 0.2; - bp = -3.0; - - s = iauSeps(al, ap, bl, bp); - - vvd(s, 2.346722016996998842, 1e-14, "iauSeps", "", status); - -} - -static void t_sp00(int *status) -/* -** - - - - - - - -** t _ s p 0 0 -** - - - - - - - -** -** Test iauSp00 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauSp00, vvd -** -** This revision: 2013 August 7 -*/ -{ - vvd(iauSp00(2400000.5, 52541.0), - -0.6216698469981019309e-11, 1e-12, "iauSp00", "", status); - -} - -static void t_starpm(int *status) -/* -** - - - - - - - - - -** t _ s t a r p m -** - - - - - - - - - -** -** Test iauStarpm function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauStarpm, vvd, viv -** -** This revision: 2017 March 15 -*/ -{ - double ra1, dec1, pmr1, pmd1, px1, rv1; - double ra2, dec2, pmr2, pmd2, px2, rv2; - int j; - - - ra1 = 0.01686756; - dec1 = -1.093989828; - pmr1 = -1.78323516e-5; - pmd1 = 2.336024047e-6; - px1 = 0.74723; - rv1 = -21.6; - - j = iauStarpm(ra1, dec1, pmr1, pmd1, px1, rv1, - 2400000.5, 50083.0, 2400000.5, 53736.0, - &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); - - vvd(ra2, 0.01668919069414256149, 1e-13, - "iauStarpm", "ra", status); - vvd(dec2, -1.093966454217127897, 1e-13, - "iauStarpm", "dec", status); - vvd(pmr2, -0.1783662682153176524e-4, 1e-17, - "iauStarpm", "pmr", status); - vvd(pmd2, 0.2338092915983989595e-5, 1e-17, - "iauStarpm", "pmd", status); - vvd(px2, 0.7473533835317719243, 1e-13, - "iauStarpm", "px", status); - vvd(rv2, -21.59905170476417175, 1e-11, - "iauStarpm", "rv", status); - - viv(j, 0, "iauStarpm", "j", status); - -} - -static void t_starpv(int *status) -/* -** - - - - - - - - - -** t _ s t a r p v -** - - - - - - - - - -** -** Test iauStarpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauStarpv, vvd, viv -** -** This revision: 2017 March 15 -*/ -{ - double ra, dec, pmr, pmd, px, rv, pv[2][3]; - int j; - - - ra = 0.01686756; - dec = -1.093989828; - pmr = -1.78323516e-5; - pmd = 2.336024047e-6; - px = 0.74723; - rv = -21.6; - - j = iauStarpv(ra, dec, pmr, pmd, px, rv, pv); - - vvd(pv[0][0], 126668.5912743160601, 1e-10, - "iauStarpv", "11", status); - vvd(pv[0][1], 2136.792716839935195, 1e-12, - "iauStarpv", "12", status); - vvd(pv[0][2], -245251.2339876830091, 1e-10, - "iauStarpv", "13", status); - - vvd(pv[1][0], -0.4051854008955659551e-2, 1e-13, - "iauStarpv", "21", status); - vvd(pv[1][1], -0.6253919754414777970e-2, 1e-15, - "iauStarpv", "22", status); - vvd(pv[1][2], 0.1189353714588109341e-1, 1e-13, - "iauStarpv", "23", status); - - viv(j, 0, "iauStarpv", "j", status); - -} - -static void t_sxp(int *status) -/* -** - - - - - - -** t _ s x p -** - - - - - - -** -** Test iauSxp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauSxp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double s, p[3], sp[3]; - - - s = 2.0; - - p[0] = 0.3; - p[1] = 1.2; - p[2] = -2.5; - - iauSxp(s, p, sp); - - vvd(sp[0], 0.6, 0.0, "iauSxp", "1", status); - vvd(sp[1], 2.4, 0.0, "iauSxp", "2", status); - vvd(sp[2], -5.0, 0.0, "iauSxp", "3", status); - -} - - -static void t_sxpv(int *status) -/* -** - - - - - - - -** t _ s x p v -** - - - - - - - -** -** Test iauSxpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauSxpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double s, pv[2][3], spv[2][3]; - - - s = 2.0; - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = 0.5; - pv[1][1] = 3.2; - pv[1][2] = -0.7; - - iauSxpv(s, pv, spv); - - vvd(spv[0][0], 0.6, 0.0, "iauSxpv", "p1", status); - vvd(spv[0][1], 2.4, 0.0, "iauSxpv", "p2", status); - vvd(spv[0][2], -5.0, 0.0, "iauSxpv", "p3", status); - - vvd(spv[1][0], 1.0, 0.0, "iauSxpv", "v1", status); - vvd(spv[1][1], 6.4, 0.0, "iauSxpv", "v2", status); - vvd(spv[1][2], -1.4, 0.0, "iauSxpv", "v3", status); - -} - -static void t_taitt(int *status) -/* -** - - - - - - - - -** t _ t a i t t -** - - - - - - - - -** -** Test iauTaitt function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTaitt, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double t1, t2; - int j; - - - j = iauTaitt(2453750.5, 0.892482639, &t1, &t2); - - vvd(t1, 2453750.5, 1e-6, "iauTaitt", "t1", status); - vvd(t2, 0.892855139, 1e-12, "iauTaitt", "t2", status); - viv(j, 0, "iauTaitt", "j", status); - -} - -static void t_taiut1(int *status) -/* -** - - - - - - - - - -** t _ t a i u t 1 -** - - - - - - - - - -** -** Test iauTaiut1 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTaiut1, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double u1, u2; - int j; - - - j = iauTaiut1(2453750.5, 0.892482639, -32.6659, &u1, &u2); - - vvd(u1, 2453750.5, 1e-6, "iauTaiut1", "u1", status); - vvd(u2, 0.8921045614537037037, 1e-12, "iauTaiut1", "u2", status); - viv(j, 0, "iauTaiut1", "j", status); - -} - -static void t_taiutc(int *status) -/* -** - - - - - - - - - -** t _ t a i u t c -** - - - - - - - - - -** -** Test iauTaiutc function. -** -** Returned: -** status LOGICAL TRUE = success, FALSE = fail -** -** Called: iauTaiutc, vvd, viv -** -** This revision: 2013 October 3 -*/ -{ - double u1, u2; - int j; - - - j = iauTaiutc(2453750.5, 0.892482639, &u1, &u2); - - vvd(u1, 2453750.5, 1e-6, "iauTaiutc", "u1", status); - vvd(u2, 0.8921006945555555556, 1e-12, "iauTaiutc", "u2", status); - viv(j, 0, "iauTaiutc", "j", status); - -} - -static void t_tcbtdb(int *status) -/* -** - - - - - - - - - -** t _ t c b t d b -** - - - - - - - - - -** -** Test iauTcbtdb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTcbtdb, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double b1, b2; - int j; - - - j = iauTcbtdb(2453750.5, 0.893019599, &b1, &b2); - - vvd(b1, 2453750.5, 1e-6, "iauTcbtdb", "b1", status); - vvd(b2, 0.8928551362746343397, 1e-12, "iauTcbtdb", "b2", status); - viv(j, 0, "iauTcbtdb", "j", status); - -} - -static void t_tcgtt(int *status) -/* -** - - - - - - - - -** t _ t c g t t -** - - - - - - - - -** -** Test iauTcgtt function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTcgtt, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double t1, t2; - int j; - - - j = iauTcgtt(2453750.5, 0.892862531, &t1, &t2); - - vvd(t1, 2453750.5, 1e-6, "iauTcgtt", "t1", status); - vvd(t2, 0.8928551387488816828, 1e-12, "iauTcgtt", "t2", status); - viv(j, 0, "iauTcgtt", "j", status); - -} - -static void t_tdbtcb(int *status) -/* -** - - - - - - - - - -** t _ t d b t c b -** - - - - - - - - - -** -** Test iauTdbtcb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTdbtcb, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double b1, b2; - int j; - - - j = iauTdbtcb(2453750.5, 0.892855137, &b1, &b2); - - vvd( b1, 2453750.5, 1e-6, "iauTdbtcb", "b1", status); - vvd( b2, 0.8930195997253656716, 1e-12, "iauTdbtcb", "b2", status); - viv(j, 0, "iauTdbtcb", "j", status); - -} - -static void t_tdbtt(int *status) -/* -** - - - - - - - - -** t _ t d b t t -** - - - - - - - - -** -** Test iauTdbtt function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTdbtt, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double t1, t2; - int j; - - - j = iauTdbtt(2453750.5, 0.892855137, -0.000201, &t1, &t2); - - vvd(t1, 2453750.5, 1e-6, "iauTdbtt", "t1", status); - vvd(t2, 0.8928551393263888889, 1e-12, "iauTdbtt", "t2", status); - viv(j, 0, "iauTdbtt", "j", status); - -} - -static void t_tf2a(int *status) -/* -** - - - - - - - -** t _ t f 2 a -** - - - - - - - -** -** Test iauTf2a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTf2a, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double a; - int j; - - - j = iauTf2a('+', 4, 58, 20.2, &a); - - vvd(a, 1.301739278189537429, 1e-12, "iauTf2a", "a", status); - viv(j, 0, "iauTf2a", "j", status); - -} - -static void t_tf2d(int *status) -/* -** - - - - - - - -** t _ t f 2 d -** - - - - - - - -** -** Test iauTf2d function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTf2d, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double d; - int j; - - - j = iauTf2d(' ', 23, 55, 10.9, &d); - - vvd(d, 0.9966539351851851852, 1e-12, "iauTf2d", "d", status); - viv(j, 0, "iauTf2d", "j", status); - -} - -static void t_tpors(int *status) -/* -** - - - - - - - - -** t _ t p o r s -** - - - - - - - - -** -** Test iauTpors function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTpors, vvd, viv -** -** This revision: 2017 October 21 -*/ -{ - double xi, eta, ra, dec, az1, bz1, az2, bz2; - int n; - - - xi = -0.03; - eta = 0.07; - ra = 1.3; - dec = 1.5; - - n = iauTpors(xi, eta, ra, dec, &az1, &bz1, &az2, &bz2); - - vvd(az1, 1.736621577783208748, 1e-13, "iauTpors", "az1", status); - vvd(bz1, 1.436736561844090323, 1e-13, "iauTpors", "bz1", status); - - vvd(az2, 4.004971075806584490, 1e-13, "iauTpors", "az2", status); - vvd(bz2, 1.565084088476417917, 1e-13, "iauTpors", "bz2", status); - - viv(n, 2, "iauTpors", "n", status); - -} - -static void t_tporv(int *status) -/* -** - - - - - - - - -** t _ t p o r v -** - - - - - - - - -** -** Test iauTporv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTporv, iauS2c, vvd, viv -** -** This revision: 2017 October 21 -*/ -{ - double xi, eta, ra, dec, v[3], vz1[3], vz2[3]; - int n; - - - xi = -0.03; - eta = 0.07; - ra = 1.3; - dec = 1.5; - iauS2c(ra, dec, v); - - n = iauTporv(xi, eta, v, vz1, vz2); - - vvd(vz1[0], -0.02206252822366888610, 1e-15, - "iauTporv", "x1", status); - vvd(vz1[1], 0.1318251060359645016, 1e-14, - "iauTporv", "y1", status); - vvd(vz1[2], 0.9910274397144543895, 1e-14, - "iauTporv", "z1", status); - - vvd(vz2[0], -0.003712211763801968173, 1e-16, - "iauTporv", "x2", status); - vvd(vz2[1], -0.004341519956299836813, 1e-16, - "iauTporv", "y2", status); - vvd(vz2[2], 0.9999836852110587012, 1e-14, - "iauTporv", "z2", status); - - viv(n, 2, "iauTporv", "n", status); - -} - -static void t_tpsts(int *status) -/* -** - - - - - - - - -** t _ t p s t s -** - - - - - - - - -** -** Test iauTpsts function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTpsts, vvd -** -** This revision: 2017 October 21 -*/ -{ - double xi, eta, raz, decz, ra, dec; - - - xi = -0.03; - eta = 0.07; - raz = 2.3; - decz = 1.5; - - iauTpsts(xi, eta, raz, decz, &ra, &dec); - - vvd(ra, 0.7596127167359629775, 1e-14, "iauTpsts", "ra", status); - vvd(dec, 1.540864645109263028, 1e-13, "iauTpsts", "dec", status); - -} - -static void t_tpstv(int *status) -/* -** - - - - - - - - -** t _ t p s t v -** - - - - - - - - -** -** Test iauTpstv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTpstv, iauS2c, vvd -** -** This revision: 2017 October 21 -*/ -{ - double xi, eta, raz, decz, vz[3], v[3]; - - - xi = -0.03; - eta = 0.07; - raz = 2.3; - decz = 1.5; - iauS2c(raz, decz, vz); - - iauTpstv(xi, eta, vz, v); - - vvd(v[0], 0.02170030454907376677, 1e-15, "iauTpstv", "x", status); - vvd(v[1], 0.02060909590535367447, 1e-15, "iauTpstv", "y", status); - vvd(v[2], 0.9995520806583523804, 1e-14, "iauTpstv", "z", status); - -} - -static void t_tpxes(int *status) -/* -** - - - - - - - - -** t _ t p x e s -** - - - - - - - - -** -** Test iauTpxes function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTpxes, vvd, viv -** -** This revision: 2017 October 21 -*/ -{ - double ra, dec, raz, decz, xi, eta; - int j; - - - ra = 1.3; - dec = 1.55; - raz = 2.3; - decz = 1.5; - - j = iauTpxes(ra, dec, raz, decz, &xi, &eta); - - vvd(xi, -0.01753200983236980595, 1e-15, "iauTpxes", "xi", status); - vvd(eta, 0.05962940005778712891, 1e-15, "iauTpxes", "eta", status); - - viv(j, 0, "iauTpxes", "j", status); - -} - -static void t_tpxev(int *status) -/* -** - - - - - - - - -** t _ t p x e v -** - - - - - - - - -** -** Test iauTpxev function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTpxev, iauS2c, vvd -** -** This revision: 2017 October 21 -*/ -{ - double ra, dec, raz, decz, v[3], vz[3], xi, eta; - int j; - - - ra = 1.3; - dec = 1.55; - raz = 2.3; - decz = 1.5; - iauS2c(ra, dec, v); - iauS2c(raz, decz, vz); - - j = iauTpxev(v, vz, &xi, &eta); - - vvd(xi, -0.01753200983236980595, 1e-15, "iauTpxev", "xi", status); - vvd(eta, 0.05962940005778712891, 1e-15, "iauTpxev", "eta", status); - - viv(j, 0, "iauTpxev", "j", status); - -} - -static void t_tr(int *status) -/* -** - - - - - -** t _ t r -** - - - - - -** -** Test iauTr function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTr, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], rt[3][3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - iauTr(r, rt); - - vvd(rt[0][0], 2.0, 0.0, "iauTr", "11", status); - vvd(rt[0][1], 3.0, 0.0, "iauTr", "12", status); - vvd(rt[0][2], 3.0, 0.0, "iauTr", "13", status); - - vvd(rt[1][0], 3.0, 0.0, "iauTr", "21", status); - vvd(rt[1][1], 2.0, 0.0, "iauTr", "22", status); - vvd(rt[1][2], 4.0, 0.0, "iauTr", "23", status); - - vvd(rt[2][0], 2.0, 0.0, "iauTr", "31", status); - vvd(rt[2][1], 3.0, 0.0, "iauTr", "32", status); - vvd(rt[2][2], 5.0, 0.0, "iauTr", "33", status); - -} - -static void t_trxp(int *status) -/* -** - - - - - - - -** t _ t r x p -** - - - - - - - -** -** Test iauTrxp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTrxp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], p[3], trp[3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - p[0] = 0.2; - p[1] = 1.5; - p[2] = 0.1; - - iauTrxp(r, p, trp); - - vvd(trp[0], 5.2, 1e-12, "iauTrxp", "1", status); - vvd(trp[1], 4.0, 1e-12, "iauTrxp", "2", status); - vvd(trp[2], 5.4, 1e-12, "iauTrxp", "3", status); - -} - -static void t_trxpv(int *status) -/* -** - - - - - - - - -** t _ t r x p v -** - - - - - - - - -** -** Test iauTrxpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTrxpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3], pv[2][3], trpv[2][3]; - - - r[0][0] = 2.0; - r[0][1] = 3.0; - r[0][2] = 2.0; - - r[1][0] = 3.0; - r[1][1] = 2.0; - r[1][2] = 3.0; - - r[2][0] = 3.0; - r[2][1] = 4.0; - r[2][2] = 5.0; - - pv[0][0] = 0.2; - pv[0][1] = 1.5; - pv[0][2] = 0.1; - - pv[1][0] = 1.5; - pv[1][1] = 0.2; - pv[1][2] = 0.1; - - iauTrxpv(r, pv, trpv); - - vvd(trpv[0][0], 5.2, 1e-12, "iauTrxpv", "p1", status); - vvd(trpv[0][1], 4.0, 1e-12, "iauTrxpv", "p1", status); - vvd(trpv[0][2], 5.4, 1e-12, "iauTrxpv", "p1", status); - - vvd(trpv[1][0], 3.9, 1e-12, "iauTrxpv", "v1", status); - vvd(trpv[1][1], 5.3, 1e-12, "iauTrxpv", "v2", status); - vvd(trpv[1][2], 4.1, 1e-12, "iauTrxpv", "v3", status); - -} - -static void t_tttai(int *status) -/* -** - - - - - - - - -** t _ t t t a i -** - - - - - - - - -** -** Test iauTttai function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTttai, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double a1, a2; - int j; - - - j = iauTttai(2453750.5, 0.892482639, &a1, &a2); - - vvd(a1, 2453750.5, 1e-6, "iauTttai", "a1", status); - vvd(a2, 0.892110139, 1e-12, "iauTttai", "a2", status); - viv(j, 0, "iauTttai", "j", status); - -} - -static void t_tttcg(int *status) -/* -** - - - - - - - - -** t _ t t t c g -** - - - - - - - - -** -** Test iauTttcg function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTttcg, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double g1, g2; - int j; - - - j = iauTttcg(2453750.5, 0.892482639, &g1, &g2); - - vvd( g1, 2453750.5, 1e-6, "iauTttcg", "g1", status); - vvd( g2, 0.8924900312508587113, 1e-12, "iauTttcg", "g2", status); - viv(j, 0, "iauTttcg", "j", status); - -} - -static void t_tttdb(int *status) -/* -** - - - - - - - - -** t _ t t t d b -** - - - - - - - - -** -** Test iauTttdb function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTttdb, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double b1, b2; - int j; - - - j = iauTttdb(2453750.5, 0.892855139, -0.000201, &b1, &b2); - - vvd(b1, 2453750.5, 1e-6, "iauTttdb", "b1", status); - vvd(b2, 0.8928551366736111111, 1e-12, "iauTttdb", "b2", status); - viv(j, 0, "iauTttdb", "j", status); - -} - -static void t_ttut1(int *status) -/* -** - - - - - - - - -** t _ t t u t 1 -** - - - - - - - - -** -** Test iauTtut1 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauTtut1, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double u1, u2; - int j; - - - j = iauTtut1(2453750.5, 0.892855139, 64.8499, &u1, &u2); - - vvd(u1, 2453750.5, 1e-6, "iauTtut1", "u1", status); - vvd(u2, 0.8921045614537037037, 1e-12, "iauTtut1", "u2", status); - viv(j, 0, "iauTtut1", "j", status); - -} - -static void t_ut1tai(int *status) -/* -** - - - - - - - - - -** t _ u t 1 t a i -** - - - - - - - - - -** -** Test iauUt1tai function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauUt1tai, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double a1, a2; - int j; - - - j = iauUt1tai(2453750.5, 0.892104561, -32.6659, &a1, &a2); - - vvd(a1, 2453750.5, 1e-6, "iauUt1tai", "a1", status); - vvd(a2, 0.8924826385462962963, 1e-12, "iauUt1tai", "a2", status); - viv(j, 0, "iauUt1tai", "j", status); - -} - -static void t_ut1tt(int *status) -/* -** - - - - - - - - -** t _ u t 1 t t -** - - - - - - - - -** -** Test iauUt1tt function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauUt1tt, vvd, viv -** -** This revision: 2013 October 3 -*/ -{ - double t1, t2; - int j; - - - j = iauUt1tt(2453750.5, 0.892104561, 64.8499, &t1, &t2); - - vvd(t1, 2453750.5, 1e-6, "iauUt1tt", "t1", status); - vvd(t2, 0.8928551385462962963, 1e-12, "iauUt1tt", "t2", status); - viv(j, 0, "iauUt1tt", "j", status); - -} - -static void t_ut1utc(int *status) -/* -** - - - - - - - - - -** t _ u t 1 u t c -** - - - - - - - - - -** -** Test iauUt1utc function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauUt1utc, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double u1, u2; - int j; - - - j = iauUt1utc(2453750.5, 0.892104561, 0.3341, &u1, &u2); - - vvd(u1, 2453750.5, 1e-6, "iauUt1utc", "u1", status); - vvd(u2, 0.8921006941018518519, 1e-12, "iauUt1utc", "u2", status); - viv(j, 0, "iauUt1utc", "j", status); - -} - -static void t_utctai(int *status) -/* -** - - - - - - - - - -** t _ u t c t a i -** - - - - - - - - - -** -** Test iauUtctai function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauUtctai, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double u1, u2; - int j; - - - j = iauUtctai(2453750.5, 0.892100694, &u1, &u2); - - vvd(u1, 2453750.5, 1e-6, "iauUtctai", "u1", status); - vvd(u2, 0.8924826384444444444, 1e-12, "iauUtctai", "u2", status); - viv(j, 0, "iauUtctai", "j", status); - -} - -static void t_utcut1(int *status) -/* -** - - - - - - - - - -** t _ u t c u t 1 -** - - - - - - - - - -** -** Test iauUtcut1 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauUtcut1, vvd, viv -** -** This revision: 2013 August 7 -*/ -{ - double u1, u2; - int j; - - - j = iauUtcut1(2453750.5, 0.892100694, 0.3341, &u1, &u2); - - vvd(u1, 2453750.5, 1e-6, "iauUtcut1", "u1", status); - vvd(u2, 0.8921045608981481481, 1e-12, "iauUtcut1", "u2", status); - viv(j, 0, "iauUtcut1", "j", status); - -} - -static void t_xy06(int *status) -/* -** - - - - - - - -** t _ x y 0 6 -** - - - - - - - -** -** Test iauXy06 function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauXy06, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y; - - - iauXy06(2400000.5, 53736.0, &x, &y); - - vvd(x, 0.5791308486706010975e-3, 1e-15, "iauXy06", "x", status); - vvd(y, 0.4020579816732958141e-4, 1e-16, "iauXy06", "y", status); - -} - -static void t_xys00a(int *status) -/* -** - - - - - - - - - -** t _ x y s 0 0 a -** - - - - - - - - - -** -** Test iauXys00a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauXys00a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, s; - - - iauXys00a(2400000.5, 53736.0, &x, &y, &s); - - vvd(x, 0.5791308472168152904e-3, 1e-14, "iauXys00a", "x", status); - vvd(y, 0.4020595661591500259e-4, 1e-15, "iauXys00a", "y", status); - vvd(s, -0.1220040848471549623e-7, 1e-18, "iauXys00a", "s", status); - -} - -static void t_xys00b(int *status) -/* -** - - - - - - - - - -** t _ x y s 0 0 b -** - - - - - - - - - -** -** Test iauXys00b function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauXys00b, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, s; - - - iauXys00b(2400000.5, 53736.0, &x, &y, &s); - - vvd(x, 0.5791301929950208873e-3, 1e-14, "iauXys00b", "x", status); - vvd(y, 0.4020553681373720832e-4, 1e-15, "iauXys00b", "y", status); - vvd(s, -0.1220027377285083189e-7, 1e-18, "iauXys00b", "s", status); - -} - -static void t_xys06a(int *status) -/* -** - - - - - - - - - -** t _ x y s 0 6 a -** - - - - - - - - - -** -** Test iauXys06a function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauXys06a, vvd -** -** This revision: 2013 August 7 -*/ -{ - double x, y, s; - - - iauXys06a(2400000.5, 53736.0, &x, &y, &s); - - vvd(x, 0.5791308482835292617e-3, 1e-14, "iauXys06a", "x", status); - vvd(y, 0.4020580099454020310e-4, 1e-15, "iauXys06a", "y", status); - vvd(s, -0.1220032294164579896e-7, 1e-18, "iauXys06a", "s", status); - -} - -static void t_zp(int *status) -/* -** - - - - - -** t _ z p -** - - - - - -** -** Test iauZp function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauZp, vvd -** -** This revision: 2013 August 7 -*/ -{ - double p[3]; - - - p[0] = 0.3; - p[1] = 1.2; - p[2] = -2.5; - - iauZp(p); - - vvd(p[0], 0.0, 0.0, "iauZp", "1", status); - vvd(p[1], 0.0, 0.0, "iauZp", "2", status); - vvd(p[2], 0.0, 0.0, "iauZp", "3", status); - -} - -static void t_zpv(int *status) -/* -** - - - - - - -** t _ z p v -** - - - - - - -** -** Test iauZpv function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauZpv, vvd -** -** This revision: 2013 August 7 -*/ -{ - double pv[2][3]; - - - pv[0][0] = 0.3; - pv[0][1] = 1.2; - pv[0][2] = -2.5; - - pv[1][0] = -0.5; - pv[1][1] = 3.1; - pv[1][2] = 0.9; - - iauZpv(pv); - - vvd(pv[0][0], 0.0, 0.0, "iauZpv", "p1", status); - vvd(pv[0][1], 0.0, 0.0, "iauZpv", "p2", status); - vvd(pv[0][2], 0.0, 0.0, "iauZpv", "p3", status); - - vvd(pv[1][0], 0.0, 0.0, "iauZpv", "v1", status); - vvd(pv[1][1], 0.0, 0.0, "iauZpv", "v2", status); - vvd(pv[1][2], 0.0, 0.0, "iauZpv", "v3", status); - -} - -static void t_zr(int *status) -/* -** - - - - - -** t _ z r -** - - - - - -** -** Test iauZr function. -** -** Returned: -** status int FALSE = success, TRUE = fail -** -** Called: iauZr, vvd -** -** This revision: 2013 August 7 -*/ -{ - double r[3][3]; - - - r[0][0] = 2.0; - r[1][0] = 3.0; - r[2][0] = 2.0; - - r[0][1] = 3.0; - r[1][1] = 2.0; - r[2][1] = 3.0; - - r[0][2] = 3.0; - r[1][2] = 4.0; - r[2][2] = 5.0; - - iauZr(r); - - vvd(r[0][0], 0.0, 0.0, "iauZr", "00", status); - vvd(r[1][0], 0.0, 0.0, "iauZr", "01", status); - vvd(r[2][0], 0.0, 0.0, "iauZr", "02", status); - - vvd(r[0][1], 0.0, 0.0, "iauZr", "10", status); - vvd(r[1][1], 0.0, 0.0, "iauZr", "11", status); - vvd(r[2][1], 0.0, 0.0, "iauZr", "12", status); - - vvd(r[0][2], 0.0, 0.0, "iauZr", "20", status); - vvd(r[1][2], 0.0, 0.0, "iauZr", "21", status); - vvd(r[2][2], 0.0, 0.0, "iauZr", "22", status); - -} - -int main(int argc, char *argv[]) -/* -** - - - - - -** m a i n -** - - - - - -** -** This revision: 2021 April 18 -*/ -{ - int status; - - -/* If any command-line argument, switch to verbose reporting. */ - if (argc > 1) { - verbose = 1; - argv[0][0] += 0; /* to avoid compiler warnings */ - } - -/* Preset the &status to FALSE = success. */ - status = 0; - -/* Test all of the SOFA functions. */ - t_a2af(&status); - t_a2tf(&status); - t_ab(&status); - t_ae2hd(&status); - t_af2a(&status); - t_anp(&status); - t_anpm(&status); - t_apcg(&status); - t_apcg13(&status); - t_apci(&status); - t_apci13(&status); - t_apco(&status); - t_apco13(&status); - t_apcs(&status); - t_apcs13(&status); - t_aper(&status); - t_aper13(&status); - t_apio(&status); - t_apio13(&status); - t_atcc13(&status); - t_atccq(&status); - t_atci13(&status); - t_atciq(&status); - t_atciqn(&status); - t_atciqz(&status); - t_atco13(&status); - t_atic13(&status); - t_aticq(&status); - t_aticqn(&status); - t_atio13(&status); - t_atioq(&status); - t_atoc13(&status); - t_atoi13(&status); - t_atoiq(&status); - t_bi00(&status); - t_bp00(&status); - t_bp06(&status); - t_bpn2xy(&status); - t_c2i00a(&status); - t_c2i00b(&status); - t_c2i06a(&status); - t_c2ibpn(&status); - t_c2ixy(&status); - t_c2ixys(&status); - t_c2s(&status); - t_c2t00a(&status); - t_c2t00b(&status); - t_c2t06a(&status); - t_c2tcio(&status); - t_c2teqx(&status); - t_c2tpe(&status); - t_c2txy(&status); - t_cal2jd(&status); - t_cp(&status); - t_cpv(&status); - t_cr(&status); - t_d2dtf(&status); - t_d2tf(&status); - t_dat(&status); - t_dtdb(&status); - t_dtf2d(&status); - t_eceq06(&status); - t_ecm06(&status); - t_ee00(&status); - t_ee00a(&status); - t_ee00b(&status); - t_ee06a(&status); - t_eect00(&status); - t_eform(&status); - t_eo06a(&status); - t_eors(&status); - t_epb(&status); - t_epb2jd(&status); - t_epj(&status); - t_epj2jd(&status); - t_epv00(&status); - t_eqec06(&status); - t_eqeq94(&status); - t_era00(&status); - t_fad03(&status); - t_fae03(&status); - t_faf03(&status); - t_faju03(&status); - t_fal03(&status); - t_falp03(&status); - t_fama03(&status); - t_fame03(&status); - t_fane03(&status); - t_faom03(&status); - t_fapa03(&status); - t_fasa03(&status); - t_faur03(&status); - t_fave03(&status); - t_fk425(&status); - t_fk45z(&status); - t_fk524(&status); - t_fk52h(&status); - t_fk54z(&status); - t_fk5hip(&status); - t_fk5hz(&status); - t_fw2m(&status); - t_fw2xy(&status); - t_g2icrs(&status); - t_gc2gd(&status); - t_gc2gde(&status); - t_gd2gc(&status); - t_gd2gce(&status); - t_gmst00(&status); - t_gmst06(&status); - t_gmst82(&status); - t_gst00a(&status); - t_gst00b(&status); - t_gst06(&status); - t_gst06a(&status); - t_gst94(&status); - t_h2fk5(&status); - t_hd2ae(&status); - t_hd2pa(&status); - t_hfk5z(&status); - t_icrs2g(&status); - t_ir(&status); - t_jd2cal(&status); - t_jdcalf(&status); - t_ld(&status); - t_ldn(&status); - t_ldsun(&status); - t_lteceq(&status); - t_ltecm(&status); - t_lteqec(&status); - t_ltp(&status); - t_ltpb(&status); - t_ltpecl(&status); - t_ltpequ(&status); - t_moon98(&status); - t_num00a(&status); - t_num00b(&status); - t_num06a(&status); - t_numat(&status); - t_nut00a(&status); - t_nut00b(&status); - t_nut06a(&status); - t_nut80(&status); - t_nutm80(&status); - t_obl06(&status); - t_obl80(&status); - t_p06e(&status); - t_p2pv(&status); - t_p2s(&status); - t_pap(&status); - t_pas(&status); - t_pb06(&status); - t_pdp(&status); - t_pfw06(&status); - t_plan94(&status); - t_pmat00(&status); - t_pmat06(&status); - t_pmat76(&status); - t_pm(&status); - t_pmp(&status); - t_pmpx(&status); - t_pmsafe(&status); - t_pn(&status); - t_pn00(&status); - t_pn00a(&status); - t_pn00b(&status); - t_pn06a(&status); - t_pn06(&status); - t_pnm00a(&status); - t_pnm00b(&status); - t_pnm06a(&status); - t_pnm80(&status); - t_pom00(&status); - t_ppp(&status); - t_ppsp(&status); - t_pr00(&status); - t_prec76(&status); - t_pv2p(&status); - t_pv2s(&status); - t_pvdpv(&status); - t_pvm(&status); - t_pvmpv(&status); - t_pvppv(&status); - t_pvstar(&status); - t_pvtob(&status); - t_pvu(&status); - t_pvup(&status); - t_pvxpv(&status); - t_pxp(&status); - t_refco(&status); - t_rm2v(&status); - t_rv2m(&status); - t_rx(&status); - t_rxp(&status); - t_rxpv(&status); - t_rxr(&status); - t_ry(&status); - t_rz(&status); - t_s00a(&status); - t_s00b(&status); - t_s00(&status); - t_s06a(&status); - t_s06(&status); - t_s2c(&status); - t_s2p(&status); - t_s2pv(&status); - t_s2xpv(&status); - t_sepp(&status); - t_seps(&status); - t_sp00(&status); - t_starpm(&status); - t_starpv(&status); - t_sxp(&status); - t_sxpv(&status); - t_taitt(&status); - t_taiut1(&status); - t_taiutc(&status); - t_tcbtdb(&status); - t_tcgtt(&status); - t_tdbtcb(&status); - t_tdbtt(&status); - t_tf2a(&status); - t_tf2d(&status); - t_tpors(&status); - t_tporv(&status); - t_tpsts(&status); - t_tpstv(&status); - t_tpxes(&status); - t_tpxev(&status); - t_tr(&status); - t_trxp(&status); - t_trxpv(&status); - t_tttai(&status); - t_tttcg(&status); - t_tttdb(&status); - t_ttut1(&status); - t_ut1tai(&status); - t_ut1tt(&status) ; - t_ut1utc(&status); - t_utctai(&status); - t_utcut1(&status); - t_xy06(&status); - t_xys00a(&status); - t_xys00b(&status); - t_xys06a(&status); - t_zp(&status); - t_zpv(&status); - t_zr(&status); - -/* Report, set up an appropriate exit status, and finish. */ - if (status) { - printf("t_sofa_c validation failed!\n"); - } else { - printf("t_sofa_c validation successful\n"); - } - return status; - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/taitt.c b/deps/sofa/20231011/c/src/taitt.c deleted file mode 100644 index 170d199..0000000 --- a/deps/sofa/20231011/c/src/taitt.c +++ /dev/null @@ -1,163 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTaitt(double tai1, double tai2, double *tt1, double *tt2) -/* -** - - - - - - - - - -** i a u T a i t t -** - - - - - - - - - -** -** Time scale transformation: International Atomic Time, TAI, to -** Terrestrial Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tai1,tai2 double TAI as a 2-part Julian Date -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tai1+tai2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tai1 is the Julian -** Day Number and tai2 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* TT minus TAI (days). */ - static const double dtat = TTMTAI/DAYSEC; - - -/* Result, safeguarding precision. */ - if ( fabs(tai1) > fabs(tai2) ) { - *tt1 = tai1; - *tt2 = tai2 + dtat; - } else { - *tt1 = tai1 + dtat; - *tt2 = tai2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/taiut1.c b/deps/sofa/20231011/c/src/taiut1.c deleted file mode 100644 index ea639b0..0000000 --- a/deps/sofa/20231011/c/src/taiut1.c +++ /dev/null @@ -1,165 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTaiut1(double tai1, double tai2, double dta, - double *ut11, double *ut12) -/* -** - - - - - - - - - - -** i a u T a i u t 1 -** - - - - - - - - - - -** -** Time scale transformation: International Atomic Time, TAI, to -** Universal Time, UT1. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tai1,tai2 double TAI as a 2-part Julian Date -** dta double UT1-TAI in seconds -** -** Returned: -** ut11,ut12 double UT1 as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tai1+tai2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tai1 is the Julian -** Day Number and tai2 is the fraction of a day. The returned -** UT11,UT12 follow suit. -** -** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is -** available from IERS tabulations. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -** -*/ -{ - double dtad; - - -/* Result, safeguarding precision. */ - dtad = dta / DAYSEC; - if ( fabs(tai1) > fabs(tai2) ) { - *ut11 = tai1; - *ut12 = tai2 + dtad; - } else { - *ut11 = tai1 + dtad; - *ut12 = tai2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/taiutc.c b/deps/sofa/20231011/c/src/taiutc.c deleted file mode 100644 index 4570068..0000000 --- a/deps/sofa/20231011/c/src/taiutc.c +++ /dev/null @@ -1,211 +0,0 @@ -#include "sofa.h" - -int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2) -/* -** - - - - - - - - - - -** i a u T a i u t c -** - - - - - - - - - - -** -** Time scale transformation: International Atomic Time, TAI, to -** Coordinated Universal Time, UTC. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tai1,tai2 double TAI as a 2-part Julian Date (Note 1) -** -** Returned: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3) -** -** Returned (function value): -** int status: +1 = dubious year (Note 4) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) tai1+tai2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tai1 is the Julian -** Day Number and tai2 is the fraction of a day. The returned utc1 -** and utc2 form an analogous pair, except that a special convention -** is used, to deal with the problem of leap seconds - see the next -** note. -** -** 2) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the JD day represents UTC days whether the -** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era -** there were smaller jumps (in either direction) each time the -** linear UTC(TAI) expression was changed, and these "mini-leaps" -** are also included in the SOFA convention. -** -** 3) The function iauD2dtf can be used to transform the UTC quasi-JD -** into calendar date and clock time, including UTC leap second -** handling. -** -** 4) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** Called: -** iauUtctai UTC to TAI -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int big1; - int i, j; - double a1, a2, u1, u2, g1, g2; - - -/* Put the two parts of the TAI into big-first order. */ - big1 = ( fabs(tai1) >= fabs(tai2) ); - if ( big1 ) { - a1 = tai1; - a2 = tai2; - } else { - a1 = tai2; - a2 = tai1; - } - -/* Initial guess for UTC. */ - u1 = a1; - u2 = a2; - -/* Iterate (though in most cases just once is enough). */ - for ( i = 0; i < 3; i++ ) { - - /* Guessed UTC to TAI. */ - j = iauUtctai(u1, u2, &g1, &g2); - if ( j < 0 ) return j; - - /* Adjust guessed UTC. */ - u2 += a1 - g1; - u2 += a2 - g2; - } - -/* Return the UTC result, preserving the TAI order. */ - if ( big1 ) { - *utc1 = u1; - *utc2 = u2; - } else { - *utc1 = u2; - *utc2 = u1; - } - -/* Status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tcbtdb.c b/deps/sofa/20231011/c/src/tcbtdb.c deleted file mode 100644 index 939e3f1..0000000 --- a/deps/sofa/20231011/c/src/tcbtdb.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) -/* -** - - - - - - - - - - -** i a u T c b t d b -** - - - - - - - - - - -** -** Time scale transformation: Barycentric Coordinate Time, TCB, to -** Barycentric Dynamical Time, TDB. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tcb1,tcb2 double TCB as a 2-part Julian Date -** -** Returned: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tcb1+tcb2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tcb1 is the Julian -** Day Number and tcb2 is the fraction of a day. The returned -** tdb1,tdb2 follow suit. -** -** 2) The 2006 IAU General Assembly introduced a conventional linear -** transformation between TDB and TCB. This transformation -** compensates for the drift between TCB and terrestrial time TT, -** and keeps TDB approximately centered on TT. Because the -** relationship between TT and TCB depends on the adopted solar -** system ephemeris, the degree of alignment between TDB and TT over -** long intervals will vary according to which ephemeris is used. -** Former definitions of TDB attempted to avoid this problem by -** stipulating that TDB and TT should differ only by periodic -** effects. This is a good description of the nature of the -** relationship but eluded precise mathematical formulation. The -** conventional linear relationship adopted in 2006 sidestepped -** these difficulties whilst delivering a TDB that in practice was -** consistent with values before that date. -** -** 3) TDB is essentially the same as Teph, the time argument for the -** JPL solar system ephemerides. -** -** Reference: -** -** IAU 2006 Resolution B3 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* 1977 Jan 1 00:00:32.184 TT, as two-part JD */ - static const double t77td = DJM0 + DJM77; - static const double t77tf = TTMTAI/DAYSEC; - -/* TDB (days) at TAI 1977 Jan 1.0 */ - static const double tdb0 = TDB0/DAYSEC; - - double d; - - -/* Result, safeguarding precision. */ - if ( fabs(tcb1) > fabs(tcb2) ) { - d = tcb1 - t77td; - *tdb1 = tcb1; - *tdb2 = tcb2 + tdb0 - ( d + ( tcb2 - t77tf ) ) * ELB; - } else { - d = tcb2 - t77td; - *tdb1 = tcb1 + tdb0 - ( d + ( tcb1 - t77tf ) ) * ELB; - *tdb2 = tcb2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tcgtt.c b/deps/sofa/20231011/c/src/tcgtt.c deleted file mode 100644 index 728e6e8..0000000 --- a/deps/sofa/20231011/c/src/tcgtt.c +++ /dev/null @@ -1,162 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2) -/* -** - - - - - - - - - -** i a u T c g t t -** - - - - - - - - - -** -** Time scale transformation: Geocentric Coordinate Time, TCG, to -** Terrestrial Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tcg1,tcg2 double TCG as a 2-part Julian Date -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tcg1+tcg2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tcg1 is the Julian -** Day Number and tcg22 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2000 Resolution B1.9 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* 1977 Jan 1 00:00:32.184 TT, as MJD */ - static const double t77t = DJM77 + TTMTAI/DAYSEC; - - -/* Result, safeguarding precision. */ - if ( fabs(tcg1) > fabs(tcg2) ) { - *tt1 = tcg1; - *tt2 = tcg2 - ( ( tcg1 - DJM0 ) + ( tcg2 - t77t ) ) * ELG; - } else { - *tt1 = tcg1 - ( ( tcg2 - DJM0 ) + ( tcg1 - t77t ) ) * ELG; - *tt2 = tcg2; - } - -/* OK status. */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tdbtcb.c b/deps/sofa/20231011/c/src/tdbtcb.c deleted file mode 100644 index c32b5e3..0000000 --- a/deps/sofa/20231011/c/src/tdbtcb.c +++ /dev/null @@ -1,190 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) -/* -** - - - - - - - - - - -** i a u T d b t c b -** - - - - - - - - - - -** -** Time scale transformation: Barycentric Dynamical Time, TDB, to -** Barycentric Coordinate Time, TCB. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** -** Returned: -** tcb1,tcb2 double TCB as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tdb1 is the Julian -** Day Number and tdb2 is the fraction of a day. The returned -** tcb1,tcb2 follow suit. -** -** 2) The 2006 IAU General Assembly introduced a conventional linear -** transformation between TDB and TCB. This transformation -** compensates for the drift between TCB and terrestrial time TT, -** and keeps TDB approximately centered on TT. Because the -** relationship between TT and TCB depends on the adopted solar -** system ephemeris, the degree of alignment between TDB and TT over -** long intervals will vary according to which ephemeris is used. -** Former definitions of TDB attempted to avoid this problem by -** stipulating that TDB and TT should differ only by periodic -** effects. This is a good description of the nature of the -** relationship but eluded precise mathematical formulation. The -** conventional linear relationship adopted in 2006 sidestepped -** these difficulties whilst delivering a TDB that in practice was -** consistent with values before that date. -** -** 3) TDB is essentially the same as Teph, the time argument for the -** JPL solar system ephemerides. -** -** Reference: -** -** IAU 2006 Resolution B3 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* 1977 Jan 1 00:00:32.184 TT, as two-part JD */ - static const double t77td = DJM0 + DJM77; - static const double t77tf = TTMTAI/DAYSEC; - -/* TDB (days) at TAI 1977 Jan 1.0 */ - static const double tdb0 = TDB0/DAYSEC; - -/* TDB to TCB rate */ - static const double elbb = ELB/(1.0-ELB); - - double d, f; - - -/* Result, preserving date format but safeguarding precision. */ - if ( fabs(tdb1) > fabs(tdb2) ) { - d = t77td - tdb1; - f = tdb2 - tdb0; - *tcb1 = tdb1; - *tcb2 = f - ( d - ( f - t77tf ) ) * elbb; - } else { - d = t77td - tdb2; - f = tdb1 - tdb0; - *tcb1 = f - ( d - ( f - t77tf ) ) * elbb; - *tcb2 = tdb2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tdbtt.c b/deps/sofa/20231011/c/src/tdbtt.c deleted file mode 100644 index 3b8fae5..0000000 --- a/deps/sofa/20231011/c/src/tdbtt.c +++ /dev/null @@ -1,175 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTdbtt(double tdb1, double tdb2, double dtr, - double *tt1, double *tt2 ) -/* -** - - - - - - - - - -** i a u T d b t t -** - - - - - - - - - -** -** Time scale transformation: Barycentric Dynamical Time, TDB, to -** Terrestrial Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** dtr double TDB-TT in seconds -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where tdb1 is the Julian -** Day Number and tdb2 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** 2) The argument dtr represents the quasi-periodic component of the -** GR transformation between TT and TCB. It is dependent upon the -** adopted solar-system ephemeris, and can be obtained by numerical -** integration, by interrogating a precomputed time ephemeris or by -** evaluating a model such as that implemented in the SOFA function -** iauDtdb. The quantity is dominated by an annual term of 1.7 ms -** amplitude. -** -** 3) TDB is essentially the same as Teph, the time argument for the -** JPL solar system ephemerides. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2006 Resolution 3 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -** -*/ -{ - double dtrd; - - -/* Result, safeguarding precision. */ - dtrd = dtr / DAYSEC; - if ( fabs(tdb1) > fabs(tdb2) ) { - *tt1 = tdb1; - *tt2 = tdb2 - dtrd; - } else { - *tt1 = tdb1 - dtrd; - *tt2 = tdb2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tf2a.c b/deps/sofa/20231011/c/src/tf2a.c deleted file mode 100644 index 1606755..0000000 --- a/deps/sofa/20231011/c/src/tf2a.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" -#include "sofam.h" -#include - -int iauTf2a(char s, int ihour, int imin, double sec, double *rad) -/* -** - - - - - - - - -** i a u T f 2 a -** - - - - - - - - -** -** Convert hours, minutes, seconds to radians. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** s char sign: '-' = negative, otherwise positive -** ihour int hours -** imin int minutes -** sec double seconds -** -** Returned: -** rad double angle in radians -** -** Returned (function value): -** int status: 0 = OK -** 1 = ihour outside range 0-23 -** 2 = imin outside range 0-59 -** 3 = sec outside range 0-59.999... -** -** Notes: -** -** 1) The result is computed even if any of the range checks fail. -** -** 2) Negative ihour, imin and/or sec produce a warning status, but -** the absolute value is used in the conversion. -** -** 3) If there are multiple errors, the status value reflects only the -** first, the smallest taking precedence. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Compute the interval. */ - *rad = ( s == '-' ? -1.0 : 1.0 ) * - ( 60.0 * ( 60.0 * ( (double) abs(ihour) ) + - ( (double) abs(imin) ) ) + - fabs(sec) ) * DS2R; - -/* Validate arguments and return status. */ - if ( ihour < 0 || ihour > 23 ) return 1; - if ( imin < 0 || imin > 59 ) return 2; - if ( sec < 0.0 || sec >= 60.0 ) return 3; - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tf2d.c b/deps/sofa/20231011/c/src/tf2d.c deleted file mode 100644 index 42dbbb5..0000000 --- a/deps/sofa/20231011/c/src/tf2d.c +++ /dev/null @@ -1,160 +0,0 @@ -#include "sofa.h" -#include "sofam.h" -#include - -int iauTf2d(char s, int ihour, int imin, double sec, double *days) -/* -** - - - - - - - - -** i a u T f 2 d -** - - - - - - - - -** -** Convert hours, minutes, seconds to days. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** s char sign: '-' = negative, otherwise positive -** ihour int hours -** imin int minutes -** sec double seconds -** -** Returned: -** days double interval in days -** -** Returned (function value): -** int status: 0 = OK -** 1 = ihour outside range 0-23 -** 2 = imin outside range 0-59 -** 3 = sec outside range 0-59.999... -** -** Notes: -** -** 1) The result is computed even if any of the range checks fail. -** -** 2) Negative ihour, imin and/or sec produce a warning status, but -** the absolute value is used in the conversion. -** -** 3) If there are multiple errors, the status value reflects only the -** first, the smallest taking precedence. -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Compute the interval. */ - *days = ( s == '-' ? -1.0 : 1.0 ) * - ( 60.0 * ( 60.0 * ( (double) abs(ihour) ) + - ( (double) abs(imin) ) ) + - fabs(sec) ) / DAYSEC; - -/* Validate arguments and return status. */ - if ( ihour < 0 || ihour > 23 ) return 1; - if ( imin < 0 || imin > 59 ) return 2; - if ( sec < 0.0 || sec >= 60.0 ) return 3; - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tpors.c b/deps/sofa/20231011/c/src/tpors.c deleted file mode 100644 index 8b0ae12..0000000 --- a/deps/sofa/20231011/c/src/tpors.c +++ /dev/null @@ -1,222 +0,0 @@ -#include "sofa.h" - -int iauTpors(double xi, double eta, double a, double b, - double *a01, double *b01, double *a02, double *b02) -/* -** - - - - - - - - - -** i a u T p o r s -** - - - - - - - - - -** -** In the tangent plane projection, given the rectangular coordinates -** of a star and its spherical coordinates, determine the spherical -** coordinates of the tangent point. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** a,b double star's spherical coordinates (Note 3) -** -** Returned: -** *a01,*b01 double tangent point's spherical coordinates, Soln. 1 -** *a02,*b02 double tangent point's spherical coordinates, Soln. 2 -** -** Returned (function value): -** int number of solutions: -** 0 = no solutions returned (Note 5) -** 1 = only the first solution is useful (Note 6) -** 2 = both solutions are useful (Note 6) -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the spherical coordinates are observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the spherical coordinates are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) All angular arguments are in radians. -** -** 4) The angles a01 and a02 are returned in the range 0-2pi. The -** angles b01 and b02 are returned in the range +/-pi, but in the -** usual, non-pole-crossing, case, the range is +/-pi/2. -** -** 5) Cases where there is no solution can arise only near the poles. -** For example, it is clearly impossible for a star at the pole -** itself to have a non-zero xi value, and hence it is meaningless -** to ask where the tangent point would have to be to bring about -** this combination of xi and dec. -** -** 6) Also near the poles, cases can arise where there are two useful -** solutions. The return value indicates whether the second of the -** two solutions returned is useful; 1 indicates only one useful -** solution, the usual case. -** -** 7) The basis of the algorithm is to solve the spherical triangle PSC, -** where P is the north celestial pole, S is the star and C is the -** tangent point. The spherical coordinates of the tangent point are -** [a0,b0]; writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), side c -** is then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be -** found) is (pi/2-b0). Angle C is given by sin(C) = xi/rho and -** cos(C) = eta/rho. Angle P (to be found) is the longitude -** difference between star and tangent point (a-a0). -** -** 8) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** iauTpsts iauTpstv star -** > iauTpors < iauTporv origin -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -** This revision: 2018 January 2 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double xi2, r, sb, cb, rsb, rcb, w2, w, s, c; - - - xi2 = xi*xi; - r = sqrt(1.0 + xi2 + eta*eta); - sb = sin(b); - cb = cos(b); - rsb = r*sb; - rcb = r*cb; - w2 = rcb*rcb - xi2; - if ( w2 >= 0.0 ) { - w = sqrt(w2); - s = rsb - eta*w; - c = rsb*eta + w; - if ( xi == 0.0 && w == 0.0 ) w = 1.0; - *a01 = iauAnp(a - atan2(xi,w)); - *b01 = atan2(s,c); - w = -w; - s = rsb - eta*w; - c = rsb*eta + w; - *a02 = iauAnp(a - atan2(xi,w)); - *b02 = atan2(s,c); - return (fabs(rsb) < 1.0) ? 1 : 2; - } else { - return 0; - } - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tporv.c b/deps/sofa/20231011/c/src/tporv.c deleted file mode 100644 index a9e2086..0000000 --- a/deps/sofa/20231011/c/src/tporv.c +++ /dev/null @@ -1,219 +0,0 @@ -#include "sofa.h" - -int iauTporv(double xi, double eta, double v[3], - double v01[3], double v02[3]) -/* -** - - - - - - - - - -** i a u T p o r v -** - - - - - - - - - -** -** In the tangent plane projection, given the rectangular coordinates -** of a star and its direction cosines, determine the direction -** cosines of the tangent point. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** v double[3] star's direction cosines (Note 3) -** -** Returned: -** v01 double[3] tangent point's direction cosines, Solution 1 -** v02 double[3] tangent point's direction cosines, Solution 2 -** -** Returned (function value): -** int number of solutions: -** 0 = no solutions returned (Note 4) -** 1 = only the first solution is useful (Note 5) -** 2 = both solutions are useful (Note 5) -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the direction cosines represent observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the direction cosines are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) The vector v must be of unit length or the result will be wrong. -** -** 4) Cases where there is no solution can arise only near the poles. -** For example, it is clearly impossible for a star at the pole -** itself to have a non-zero xi value, and hence it is meaningless -** to ask where the tangent point would have to be. -** -** 5) Also near the poles, cases can arise where there are two useful -** solutions. The return value indicates whether the second of the -** two solutions returned is useful; 1 indicates only one useful -** solution, the usual case. -** -** 6) The basis of the algorithm is to solve the spherical triangle -** PSC, where P is the north celestial pole, S is the star and C is -** the tangent point. Calling the celestial spherical coordinates -** of the star and tangent point (a,b) and (a0,b0) respectively, and -** writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), and -** transforming the vector v into (a,b) in the normal way, side c is -** then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be -** found) is (pi/2-b0), while angle C is given by sin(C) = xi/rho -** and cos(C) = eta/rho; angle P (to be found) is (a-a0). After -** solving the spherical triangle, the result (a0,b0) can be -** expressed in vector form as v0. -** -** 7) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** iauTpsts iauTpstv star -** iauTpors > iauTporv < origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -** This revision: 2018 January 2 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, z, rxy2, xi2, eta2p1, r, rsb, rcb, w2, w, c; - - - x = v[0]; - y = v[1]; - z = v[2]; - rxy2 = x*x + y*y; - xi2 = xi*xi; - eta2p1 = eta*eta + 1.0; - r = sqrt(xi2 + eta2p1); - rsb = r*z; - rcb = r*sqrt(x*x + y*y); - w2 = rcb*rcb - xi2; - if ( w2 > 0.0 ) { - w = sqrt(w2); - c = (rsb*eta + w) / (eta2p1*sqrt(rxy2*(w2+xi2))); - v01[0] = c * (x*w + y*xi); - v01[1] = c * (y*w - x*xi); - v01[2] = (rsb - eta*w) / eta2p1; - w = - w; - c = (rsb*eta + w) / (eta2p1*sqrt(rxy2*(w2+xi2))); - v02[0] = c * (x*w + y*xi); - v02[1] = c * (y*w - x*xi); - v02[2] = (rsb - eta*w) / eta2p1; - return (fabs(rsb) < 1.0) ? 1 : 2; - } else { - return 0; - } - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tpsts.c b/deps/sofa/20231011/c/src/tpsts.c deleted file mode 100644 index 8d71f70..0000000 --- a/deps/sofa/20231011/c/src/tpsts.c +++ /dev/null @@ -1,170 +0,0 @@ -#include "sofa.h" - -void iauTpsts(double xi, double eta, double a0, double b0, - double *a, double *b) -/* -** - - - - - - - - - -** i a u T p s t s -** - - - - - - - - - -** -** In the tangent plane projection, given the star's rectangular -** coordinates and the spherical coordinates of the tangent point, -** solve for the spherical coordinates of the star. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** a0,b0 double tangent point's spherical coordinates -** -** Returned: -** *a,*b double star's spherical coordinates -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the spherical coordinates are observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the spherical coordinates are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) All angular arguments are in radians. -** -** 4) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** > iauTpsts < iauTpstv star -** iauTpors iauTporv origin -** -** Called: -** iauAnp normalize angle into range 0 to 2pi -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -** This revision: 2018 January 2 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double sb0, cb0, d; - - sb0 = sin(b0); - cb0 = cos(b0); - d = cb0 - eta*sb0; - *a = iauAnp(atan2(xi,d) + a0); - *b = atan2(sb0+eta*cb0, sqrt(xi*xi+d*d)); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tpstv.c b/deps/sofa/20231011/c/src/tpstv.c deleted file mode 100644 index 0d13845..0000000 --- a/deps/sofa/20231011/c/src/tpstv.c +++ /dev/null @@ -1,194 +0,0 @@ -#include "sofa.h" - -void iauTpstv(double xi, double eta, double v0[3], double v[3]) -/* -** - - - - - - - - - -** i a u T p s t v -** - - - - - - - - - -** -** In the tangent plane projection, given the star's rectangular -** coordinates and the direction cosines of the tangent point, solve -** for the direction cosines of the star. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** xi,eta double rectangular coordinates of star image (Note 2) -** v0 double[3] tangent point's direction cosines -** -** Returned: -** v double[3] star's direction cosines -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the direction cosines represent observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the direction cosines are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) The method used is to complete the star vector in the (xi,eta) -** based triad and normalize it, then rotate the triad to put the -** tangent point at the pole with the x-axis aligned to zero -** longitude. Writing (a0,b0) for the celestial spherical -** coordinates of the tangent point, the sequence of rotations is -** (b-pi/2) around the x-axis followed by (-a-pi/2) around the -** z-axis. -** -** 4) If vector v0 is not of unit length, the returned vector v will -** be wrong. -** -** 5) If vector v0 points at a pole, the returned vector v will be -** based on the arbitrary assumption that the longitude coordinate -** of the tangent point is zero. -** -** 6) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes iauTpxev xi,eta -** iauTpsts > iauTpstv < star -** iauTpors iauTporv origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -** This revision: 2018 January 2 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double x, y, z, f, r; - - -/* Tangent point. */ - x = v0[0]; - y = v0[1]; - z = v0[2]; - -/* Deal with polar case. */ - r = sqrt(x*x + y*y); - if ( r == 0.0 ) { - r = 1e-20; - x = r; - } - -/* Star vector length to tangent plane. */ - f = sqrt(1.0 + xi*xi + eta*eta); - -/* Apply the transformation and normalize. */ - v[0] = (x - (xi*y + eta*x*z) / r) / f; - v[1] = (y + (xi*x - eta*y*z) / r) / f; - v[2] = (z + eta*r) / f; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tpxes.c b/deps/sofa/20231011/c/src/tpxes.c deleted file mode 100644 index 955451a..0000000 --- a/deps/sofa/20231011/c/src/tpxes.c +++ /dev/null @@ -1,203 +0,0 @@ -#include "sofa.h" - -int iauTpxes(double a, double b, double a0, double b0, - double *xi, double *eta) -/* -** - - - - - - - - - -** i a u T p x e s -** - - - - - - - - - -** -** In the tangent plane projection, given celestial spherical -** coordinates for a star and the tangent point, solve for the star's -** rectangular coordinates in the tangent plane. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** a,b double star's spherical coordinates -** a0,b0 double tangent point's spherical coordinates -** -** Returned: -** *xi,*eta double rectangular coordinates of star image (Note 2) -** -** Returned (function value): -** int status: 0 = OK -** 1 = star too far from axis -** 2 = antistar on tangent plane -** 3 = antistar too far from axis -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the spherical coordinates are observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". For right-handed spherical coordinates, -** (xi,eta) are also right-handed. The units of (xi,eta) are, -** effectively, radians at the tangent point. -** -** 3) All angular arguments are in radians. -** -** 4) This function is a member of the following set: -** -** spherical vector solve for -** -** > iauTpxes < iauTpxev xi,eta -** iauTpsts iauTpstv star -** iauTpors iauTporv origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -** This revision: 2018 January 2 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - const double TINY = 1e-6; - int j; - double sb0, sb, cb0, cb, da, sda, cda, d; - - -/* Functions of the spherical coordinates. */ - sb0 = sin(b0); - sb = sin(b); - cb0 = cos(b0); - cb = cos(b); - da = a - a0; - sda = sin(da); - cda = cos(da); - -/* Reciprocal of star vector length to tangent plane. */ - d = sb*sb0 + cb*cb0*cda; - -/* Check for error cases. */ - if ( d > TINY ) { - j = 0; - } else if ( d >= 0.0 ) { - j = 1; - d = TINY; - } else if ( d > -TINY ) { - j = 2; - d = -TINY; - } else { - j = 3; - } - -/* Return the tangent plane coordinates (even in dubious cases). */ - *xi = cb*sda / d; - *eta = (sb*cb0 - cb*sb0*cda) / d; - -/* Return the status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tpxev.c b/deps/sofa/20231011/c/src/tpxev.c deleted file mode 100644 index 814c9e5..0000000 --- a/deps/sofa/20231011/c/src/tpxev.c +++ /dev/null @@ -1,223 +0,0 @@ -#include "sofa.h" - -int iauTpxev(double v[3], double v0[3], double *xi, double *eta) -/* -** - - - - - - - - - -** i a u T p x e v -** - - - - - - - - - -** -** In the tangent plane projection, given celestial direction cosines -** for a star and the tangent point, solve for the star's rectangular -** coordinates in the tangent plane. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** v double[3] direction cosines of star (Note 4) -** v0 double[3] direction cosines of tangent point (Note 4) -** -** Returned: -** *xi,*eta double tangent plane coordinates of star -** -** Returned (function value): -** int status: 0 = OK -** 1 = star too far from axis -** 2 = antistar on tangent plane -** 3 = antistar too far from axis -** -** Notes: -** -** 1) The tangent plane projection is also called the "gnomonic -** projection" and the "central projection". -** -** 2) The eta axis points due north in the adopted coordinate system. -** If the direction cosines represent observed (RA,Dec), the tangent -** plane coordinates (xi,eta) are conventionally called the -** "standard coordinates". If the direction cosines are with -** respect to a right-handed triad, (xi,eta) are also right-handed. -** The units of (xi,eta) are, effectively, radians at the tangent -** point. -** -** 3) The method used is to extend the star vector to the tangent -** plane and then rotate the triad so that (x,y) becomes (xi,eta). -** Writing (a,b) for the celestial spherical coordinates of the -** star, the sequence of rotations is (a+pi/2) around the z-axis -** followed by (pi/2-b) around the x-axis. -** -** 4) If vector v0 is not of unit length, or if vector v is of zero -** length, the results will be wrong. -** -** 5) If v0 points at a pole, the returned (xi,eta) will be based on -** the arbitrary assumption that the longitude coordinate of the -** tangent point is zero. -** -** 6) This function is a member of the following set: -** -** spherical vector solve for -** -** iauTpxes > iauTpxev < xi,eta -** iauTpsts iauTpstv star -** iauTpors iauTporv origin -** -** References: -** -** Calabretta M.R. & Greisen, E.W., 2002, "Representations of -** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 -** -** Green, R.M., "Spherical Astronomy", Cambridge University Press, -** 1987, Chapter 13. -** -** This revision: 2018 January 2 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - const double TINY = 1e-6; - int j; - double x, y, z, x0, y0, z0, r2, r, w, d; - - -/* Star and tangent point. */ - x = v[0]; - y = v[1]; - z = v[2]; - x0 = v0[0]; - y0 = v0[1]; - z0 = v0[2]; - -/* Deal with polar case. */ - r2 = x0*x0 + y0*y0; - r = sqrt(r2); - if ( r == 0.0 ) { - r = 1e-20; - x0 = r; - } - -/* Reciprocal of star vector length to tangent plane. */ - w = x*x0 + y*y0; - d = w + z*z0; - -/* Check for error cases. */ - if ( d > TINY ) { - j = 0; - } else if ( d >= 0.0 ) { - j = 1; - d = TINY; - } else if ( d > -TINY ) { - j = 2; - d = -TINY; - } else { - j = 3; - } - -/* Return the tangent plane coordinates (even in dubious cases). */ - d *= r; - *xi = (y*x0 - x*y0) / d; - *eta = (z*r2 - z0*w) / d; - -/* Return the status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tr.c b/deps/sofa/20231011/c/src/tr.c deleted file mode 100644 index 2f94553..0000000 --- a/deps/sofa/20231011/c/src/tr.c +++ /dev/null @@ -1,143 +0,0 @@ -#include "sofa.h" - -void iauTr(double r[3][3], double rt[3][3]) -/* -** - - - - - - -** i a u T r -** - - - - - - -** -** Transpose 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 -** -** Returned: -** rt double[3][3] transpose -** -** Note: -** It is permissible for r and rt to be the same array. -** -** Called: -** iauCr copy r-matrix -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double wm[3][3]; - int i, j; - - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - wm[i][j] = r[j][i]; - } - } - iauCr(wm, rt); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/trxp.c b/deps/sofa/20231011/c/src/trxp.c deleted file mode 100644 index df5d8fb..0000000 --- a/deps/sofa/20231011/c/src/trxp.c +++ /dev/null @@ -1,143 +0,0 @@ -#include "sofa.h" - -void iauTrxp(double r[3][3], double p[3], double trp[3]) -/* -** - - - - - - - - -** i a u T r x p -** - - - - - - - - -** -** Multiply a p-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 -** p double[3] p-vector -** -** Returned: -** trp double[3] r^T * p -** -** Note: -** It is permissible for p and trp to be the same array. -** -** Called: -** iauTr transpose r-matrix -** iauRxp product of r-matrix and p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double tr[3][3]; - - -/* Transpose of matrix r. */ - iauTr(r, tr); - -/* Matrix tr * vector p -> vector trp. */ - iauRxp(tr, p, trp); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/trxpv.c b/deps/sofa/20231011/c/src/trxpv.c deleted file mode 100644 index bffbb73..0000000 --- a/deps/sofa/20231011/c/src/trxpv.c +++ /dev/null @@ -1,149 +0,0 @@ -#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^T * pv -** -** Notes: -** -** 1) The algorithm is for the simple case where the r-matrix r is not -** a function of time. The case where r is a function of time leads -** to an additional velocity component equal to the product of the -** derivative of the transpose of r and the position vector. -** -** 2) It is permissible for pv and rpv to be the same array. -** -** Called: -** iauTr transpose r-matrix -** iauRxpv product of r-matrix and pv-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 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); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tttai.c b/deps/sofa/20231011/c/src/tttai.c deleted file mode 100644 index 905e384..0000000 --- a/deps/sofa/20231011/c/src/tttai.c +++ /dev/null @@ -1,163 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTttai(double tt1, double tt2, double *tai1, double *tai2) -/* -** - - - - - - - - - -** i a u T t t a i -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to International -** Atomic Time, TAI. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned: -** tai1,tai2 double TAI as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned tai1,tai2 follow -** suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* TT minus TAI (days). */ - static const double dtat = TTMTAI/DAYSEC; - - -/* Result, safeguarding precision. */ - if ( fabs(tt1) > fabs(tt2) ) { - *tai1 = tt1; - *tai2 = tt2 - dtat; - } else { - *tai1 = tt1 - dtat; - *tai2 = tt2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tttcg.c b/deps/sofa/20231011/c/src/tttcg.c deleted file mode 100644 index a1d7098..0000000 --- a/deps/sofa/20231011/c/src/tttcg.c +++ /dev/null @@ -1,165 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) -/* -** - - - - - - - - - -** i a u T t t c g -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to Geocentric -** Coordinate Time, TCG. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned: -** tcg1,tcg2 double TCG as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Note: -** -** tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned tcg1,tcg2 follow -** suit. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2000 Resolution B1.9 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* 1977 Jan 1 00:00:32.184 TT, as MJD */ - static const double t77t = DJM77 + TTMTAI/DAYSEC; - -/* TT to TCG rate */ - static const double elgg = ELG/(1.0-ELG); - - -/* Result, safeguarding precision. */ - if ( fabs(tt1) > fabs(tt2) ) { - *tcg1 = tt1; - *tcg2 = tt2 + ( ( tt1 - DJM0 ) + ( tt2 - t77t ) ) * elgg; - } else { - *tcg1 = tt1 + ( ( tt2 - DJM0 ) + ( tt1 - t77t ) ) * elgg; - *tcg2 = tt2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/tttdb.c b/deps/sofa/20231011/c/src/tttdb.c deleted file mode 100644 index d61d795..0000000 --- a/deps/sofa/20231011/c/src/tttdb.c +++ /dev/null @@ -1,174 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTttdb(double tt1, double tt2, double dtr, - double *tdb1, double *tdb2) -/* -** - - - - - - - - - -** i a u T t t d b -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to Barycentric -** Dynamical Time, TDB. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** dtr double TDB-TT in seconds -** -** Returned: -** tdb1,tdb2 double TDB as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned tdb1,tdb2 follow -** suit. -** -** 2) The argument dtr represents the quasi-periodic component of the -** GR transformation between TT and TCB. It is dependent upon the -** adopted solar-system ephemeris, and can be obtained by numerical -** integration, by interrogating a precomputed time ephemeris or by -** evaluating a model such as that implemented in the SOFA function -** iauDtdb. The quantity is dominated by an annual term of 1.7 ms -** amplitude. -** -** 3) TDB is essentially the same as Teph, the time argument for the JPL -** solar system ephemerides. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** IAU 2006 Resolution 3 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dtrd; - - -/* Result, safeguarding precision. */ - dtrd = dtr / DAYSEC; - if ( fabs(tt1) > fabs(tt2) ) { - *tdb1 = tt1; - *tdb2 = tt2 + dtrd; - } else { - *tdb1 = tt1 + dtrd; - *tdb2 = tt2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ttut1.c b/deps/sofa/20231011/c/src/ttut1.c deleted file mode 100644 index 0803ef5..0000000 --- a/deps/sofa/20231011/c/src/ttut1.c +++ /dev/null @@ -1,163 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauTtut1(double tt1, double tt2, double dt, - double *ut11, double *ut12) -/* -** - - - - - - - - - -** i a u T t u t 1 -** - - - - - - - - - -** -** Time scale transformation: Terrestrial Time, TT, to Universal Time, -** UT1. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** tt1,tt2 double TT as a 2-part Julian Date -** dt double TT-UT1 in seconds -** -** Returned: -** ut11,ut12 double UT1 as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between -** the two arguments, for example where tt1 is the Julian Day Number -** and tt2 is the fraction of a day. The returned ut11,ut12 follow -** suit. -** -** 2) The argument dt is classical Delta T. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dtd; - - -/* Result, safeguarding precision. */ - dtd = dt / DAYSEC; - if ( fabs(tt1) > fabs(tt2) ) { - *ut11 = tt1; - *ut12 = tt2 - dtd; - } else { - *ut11 = tt1 - dtd; - *ut12 = tt2; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ut1tai.c b/deps/sofa/20231011/c/src/ut1tai.c deleted file mode 100644 index a41d88f..0000000 --- a/deps/sofa/20231011/c/src/ut1tai.c +++ /dev/null @@ -1,164 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauUt1tai(double ut11, double ut12, double dta, - double *tai1, double *tai2) -/* -** - - - - - - - - - - -** i a u U t 1 t a i -** - - - - - - - - - - -** -** Time scale transformation: Universal Time, UT1, to International -** Atomic Time, TAI. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** ut11,ut12 double UT1 as a 2-part Julian Date -** dta double UT1-TAI in seconds -** -** Returned: -** tai1,tai2 double TAI as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) ut11+ut12 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where ut11 is the Julian -** Day Number and ut12 is the fraction of a day. The returned -** tai1,tai2 follow suit. -** -** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is -** available from IERS tabulations. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dtad; - - -/* Result, safeguarding precision. */ - dtad = dta / DAYSEC; - if ( fabs(ut11) > fabs(ut12) ) { - *tai1 = ut11; - *tai2 = ut12 - dtad; - } else { - *tai1 = ut11 - dtad; - *tai2 = ut12; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ut1tt.c b/deps/sofa/20231011/c/src/ut1tt.c deleted file mode 100644 index c04b5d0..0000000 --- a/deps/sofa/20231011/c/src/ut1tt.c +++ /dev/null @@ -1,163 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauUt1tt(double ut11, double ut12, double dt, - double *tt1, double *tt2) -/* -** - - - - - - - - - -** i a u U t 1 t t -** - - - - - - - - - -** -** Time scale transformation: Universal Time, UT1, to Terrestrial -** Time, TT. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** ut11,ut12 double UT1 as a 2-part Julian Date -** dt double TT-UT1 in seconds -** -** Returned: -** tt1,tt2 double TT as a 2-part Julian Date -** -** Returned (function value): -** int status: 0 = OK -** -** Notes: -** -** 1) ut11+ut12 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where ut11 is the Julian -** Day Number and ut12 is the fraction of a day. The returned -** tt1,tt2 follow suit. -** -** 2) The argument dt is classical Delta T. -** -** Reference: -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double dtd; - - -/* Result, safeguarding precision. */ - dtd = dt / DAYSEC; - if ( fabs(ut11) > fabs(ut12) ) { - *tt1 = ut11; - *tt2 = ut12 + dtd; - } else { - *tt1 = ut11 + dtd; - *tt2 = ut12; - } - -/* Status (always OK). */ - return 0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/ut1utc.c b/deps/sofa/20231011/c/src/ut1utc.c deleted file mode 100644 index a18e1e2..0000000 --- a/deps/sofa/20231011/c/src/ut1utc.c +++ /dev/null @@ -1,246 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauUt1utc(double ut11, double ut12, double dut1, - double *utc1, double *utc2) -/* -** - - - - - - - - - - -** i a u U t 1 u t c -** - - - - - - - - - - -** -** Time scale transformation: Universal Time, UT1, to Coordinated -** Universal Time, UTC. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** ut11,ut12 double UT1 as a 2-part Julian Date (Note 1) -** dut1 double Delta UT1: UT1-UTC in seconds (Note 2) -** -** Returned: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 3,4) -** -** Returned (function value): -** int status: +1 = dubious year (Note 5) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) ut11+ut12 is Julian Date, apportioned in any convenient way -** between the two arguments, for example where ut11 is the Julian -** Day Number and ut12 is the fraction of a day. The returned utc1 -** and utc2 form an analogous pair, except that a special convention -** is used, to deal with the problem of leap seconds - see Note 3. -** -** 2) Delta UT1 can be obtained from tabulations provided by the -** International Earth Rotation and Reference Systems Service. The -** value changes abruptly by 1s at a leap second; however, close to -** a leap second the algorithm used here is tolerant of the "wrong" -** choice of value being made. -** -** 3) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the returned quasi-JD UTC1+UTC2 represents UTC -** days whether the length is 86399, 86400 or 86401 SI seconds. -** -** 4) The function iauD2dtf can be used to transform the UTC quasi-JD -** into calendar date and clock time, including UTC leap second -** handling. -** -** 5) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauDat delta(AT) = TAI-UTC -** iauCal2jd Gregorian calendar to JD -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2023 May 6 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int big1; - int i, iy, im, id, js; - double duts, u1, u2, d1, dats1, d2, fd, dats2, ddats, us1, us2, du; - - -/* UT1-UTC in seconds. */ - duts = dut1; - -/* Put the two parts of the UT1 into big-first order. */ - big1 = ( fabs(ut11) >= fabs(ut12) ); - if ( big1 ) { - u1 = ut11; - u2 = ut12; - } else { - u1 = ut12; - u2 = ut11; - } - -/* See if the UT1 can possibly be in a leap-second day. */ - d1 = u1; - dats1 = 0; - for ( i = -1; i <= 3; i++ ) { - d2 = u2 + (double) i; - if ( iauJd2cal(d1, d2, &iy, &im, &id, &fd) ) return -1; - js = iauDat(iy, im, id, 0.0, &dats2); - if ( js < 0 ) return -1; - if ( i == - 1 ) dats1 = dats2; - ddats = dats2 - dats1; - if ( fabs(ddats) >= 0.5 ) { - - /* Yes, leap second nearby: ensure UT1-UTC is "before" value. */ - if ( ddats*duts >= 0.0 ) duts -= ddats; - - /* UT1 for the start of the UTC day that ends in a leap. */ - if ( iauCal2jd(iy, im, id, &d1, &d2) ) return -1; - us1 = d1; - us2 = d2 - 1.0 + duts/DAYSEC; - - /* Is the UT1 after this point? */ - du = u1 - us1; - du += u2 - us2; - if ( du > 0.0 ) { - - /* Yes: fraction of the current UTC day that has elapsed. */ - fd = du * DAYSEC / ( DAYSEC + ddats ); - - /* Ramp UT1-UTC to bring about SOFA's JD(UTC) convention. */ - duts += ddats * ( fd <= 1.0 ? fd : 1.0 ); - } - - /* Done. */ - break; - } - dats1 = dats2; - } - -/* Subtract the (possibly adjusted) UT1-UTC from UT1 to give UTC. */ - u2 -= duts / DAYSEC; - -/* Result, safeguarding precision. */ - if ( big1 ) { - *utc1 = u1; - *utc2 = u2; - } else { - *utc1 = u2; - *utc2 = u1; - } - -/* Status. */ - return js; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/utctai.c b/deps/sofa/20231011/c/src/utctai.c deleted file mode 100644 index a62e9d4..0000000 --- a/deps/sofa/20231011/c/src/utctai.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) -/* -** - - - - - - - - - - -** i a u U t c t a i -** - - - - - - - - - - -** -** Time scale transformation: Coordinated Universal Time, UTC, to -** International Atomic Time, TAI. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) -** -** Returned: -** tai1,tai2 double TAI as a 2-part Julian Date (Note 5) -** -** Returned (function value): -** int status: +1 = dubious year (Note 3) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** 2) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the JD day represents UTC days whether the -** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era -** there were smaller jumps (in either direction) each time the -** linear UTC(TAI) expression was changed, and these "mini-leaps" -** are also included in the SOFA convention. -** -** 3) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 4) The function iauDtf2d converts from calendar date and time of day -** into 2-part Julian Date, and in the case of UTC implements the -** leap-second-ambiguity convention described above. -** -** 5) The returned TAI1,TAI2 are such that their sum is the TAI Julian -** Date. -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauDat delta(AT) = TAI-UTC -** iauCal2jd Gregorian calendar to JD -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -** -*/ -{ - int big1; - int iy, im, id, j, iyt, imt, idt; - double u1, u2, fd, dat0, dat12, w, dat24, dlod, dleap, z1, z2, a2; - - -/* Put the two parts of the UTC into big-first order. */ - big1 = ( fabs(utc1) >= fabs(utc2) ); - if ( big1 ) { - u1 = utc1; - u2 = utc2; - } else { - u1 = utc2; - u2 = utc1; - } - -/* Get TAI-UTC at 0h today. */ - j = iauJd2cal(u1, u2, &iy, &im, &id, &fd); - if ( j ) return j; - j = iauDat(iy, im, id, 0.0, &dat0); - if ( j < 0 ) return j; - -/* Get TAI-UTC at 12h today (to detect drift). */ - j = iauDat(iy, im, id, 0.5, &dat12); - if ( j < 0 ) return j; - -/* Get TAI-UTC at 0h tomorrow (to detect jumps). */ - j = iauJd2cal(u1+1.5, u2-fd, &iyt, &imt, &idt, &w); - if ( j ) return j; - j = iauDat(iyt, imt, idt, 0.0, &dat24); - if ( j < 0 ) return j; - -/* Separate TAI-UTC change into per-day (DLOD) and any jump (DLEAP). */ - dlod = 2.0 * (dat12 - dat0); - dleap = dat24 - (dat0 + dlod); - -/* Remove any scaling applied to spread leap into preceding day. */ - fd *= (DAYSEC+dleap)/DAYSEC; - -/* Scale from (pre-1972) UTC seconds to SI seconds. */ - fd *= (DAYSEC+dlod)/DAYSEC; - -/* Today's calendar date to 2-part JD. */ - if ( iauCal2jd(iy, im, id, &z1, &z2) ) return -1; - -/* Assemble the TAI result, preserving the UTC split and order. */ - a2 = z1 - u1; - a2 += z2; - a2 += fd + dat0/DAYSEC; - if ( big1 ) { - *tai1 = u1; - *tai2 = a2; - } else { - *tai1 = a2; - *tai2 = u1; - } - -/* Status. */ - return j; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/utcut1.c b/deps/sofa/20231011/c/src/utcut1.c deleted file mode 100644 index 886c542..0000000 --- a/deps/sofa/20231011/c/src/utcut1.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "sofa.h" - -int iauUtcut1(double utc1, double utc2, double dut1, - double *ut11, double *ut12) -/* -** - - - - - - - - - - -** i a u U t c u t 1 -** - - - - - - - - - - -** -** Time scale transformation: Coordinated Universal Time, UTC, to -** Universal Time, UT1. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical. -** -** Given: -** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) -** dut1 double Delta UT1 = UT1-UTC in seconds (Note 5) -** -** Returned: -** ut11,ut12 double UT1 as a 2-part Julian Date (Note 6) -** -** Returned (function value): -** int status: +1 = dubious year (Note 3) -** 0 = OK -** -1 = unacceptable date -** -** Notes: -** -** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any -** convenient way between the two arguments, for example where utc1 -** is the Julian Day Number and utc2 is the fraction of a day. -** -** 2) JD cannot unambiguously represent UTC during a leap second unless -** special measures are taken. The convention in the present -** function is that the JD day represents UTC days whether the -** length is 86399, 86400 or 86401 SI seconds. -** -** 3) The warning status "dubious year" flags UTCs that predate the -** introduction of the time scale or that are too far in the future -** to be trusted. See iauDat for further details. -** -** 4) The function iauDtf2d converts from calendar date and time of -** day into 2-part Julian Date, and in the case of UTC implements -** the leap-second-ambiguity convention described above. -** -** 5) Delta UT1 can be obtained from tabulations provided by the -** International Earth Rotation and Reference Systems Service. -** It is the caller's responsibility to supply a dut1 argument -** containing the UT1-UTC value that matches the given UTC. -** -** 6) The returned ut11,ut12 are such that their sum is the UT1 Julian -** Date. -** -** References: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** Explanatory Supplement to the Astronomical Almanac, -** P. Kenneth Seidelmann (ed), University Science Books (1992) -** -** Called: -** iauJd2cal JD to Gregorian calendar -** iauDat delta(AT) = TAI-UTC -** iauUtctai UTC to TAI -** iauTaiut1 TAI to UT1 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - int iy, im, id, js, jw; - double w, dat, dta, tai1, tai2; - - -/* Look up TAI-UTC. */ - if ( iauJd2cal(utc1, utc2, &iy, &im, &id, &w) ) return -1; - js = iauDat ( iy, im, id, 0.0, &dat); - if ( js < 0 ) return -1; - -/* Form UT1-TAI. */ - dta = dut1 - dat; - -/* UTC to TAI to UT1. */ - jw = iauUtctai(utc1, utc2, &tai1, &tai2); - if ( jw < 0 ) { - return -1; - } else if ( jw > 0 ) { - js = jw; - } - if ( iauTaiut1(tai1, tai2, dta, ut11, ut12) ) return -1; - -/* Status. */ - return js; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/xy06.c b/deps/sofa/20231011/c/src/xy06.c deleted file mode 100644 index 6629a8d..0000000 --- a/deps/sofa/20231011/c/src/xy06.c +++ /dev/null @@ -1,2809 +0,0 @@ -#include "sofa.h" -#include "sofam.h" - -void iauXy06(double date1, double date2, double *x, double *y) -/* -** - - - - - - - - -** i a u X y 0 6 -** - - - - - - - - -** -** X,Y coordinates of celestial intermediate pole from series based -** on IAU 2006 precession and IAU 2000A nutation. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: canonical model. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double CIP X,Y coordinates (Note 2) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The X,Y coordinates are those of the unit vector towards the -** celestial intermediate pole. They represent the combined effects -** of frame bias, precession and nutation. -** -** 3) The fundamental arguments used are as adopted in IERS Conventions -** (2003) and are from Simon et al. (1994) and Souchay et al. -** (1999). -** -** 4) This is an alternative to the angles-based method, via the SOFA -** function iauFw2xy and as used in iauXys06a for example. The two -** methods agree at the 1 microarcsecond level (at present), a -** negligible amount compared with the intrinsic accuracy of the -** models. However, it would be unwise to mix the two methods -** (angles-based and series-based) in a single application. -** -** Called: -** iauFal03 mean anomaly of the Moon -** iauFalp03 mean anomaly of the Sun -** iauFaf03 mean argument of the latitude of the Moon -** iauFad03 mean elongation of the Moon from the Sun -** iauFaom03 mean longitude of the Moon's ascending node -** iauFame03 mean longitude of Mercury -** iauFave03 mean longitude of Venus -** iauFae03 mean longitude of Earth -** iauFama03 mean longitude of Mars -** iauFaju03 mean longitude of Jupiter -** iauFasa03 mean longitude of Saturn -** iauFaur03 mean longitude of Uranus -** iauFane03 mean longitude of Neptune -** iauFapa03 general accumulated precession in longitude -** -** References: -** -** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, -** Astron.Astrophys., 412, 567 -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), -** IERS Technical Note No. 32, BKG -** -** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., -** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 -** -** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M., 1999, -** Astron.Astrophys.Supp.Ser. 135, 111 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - -/* Maximum power of T in the polynomials for X and Y */ - enum { MAXPT = 5 }; - -/* Polynomial coefficients (arcsec, X then Y). */ - static const double xyp[2][MAXPT+1] = { - - { -0.016617, - 2004.191898, - -0.4297829, - -0.19861834, - 0.000007578, - 0.0000059285 - }, - { -0.006951, - -0.025896, - -22.4072747, - 0.00190059, - 0.001112526, - 0.0000001358 - } - }; - -/* Fundamental-argument multipliers: luni-solar terms */ - static const int mfals[][5] = { - - /* 1-10 */ - { 0, 0, 0, 0, 1 }, - { 0, 0, 2, -2, 2 }, - { 0, 0, 2, 0, 2 }, - { 0, 0, 0, 0, 2 }, - { 0, 1, 0, 0, 0 }, - { 0, 1, 2, -2, 2 }, - { 1, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 1 }, - { 1, 0, 2, 0, 2 }, - { 0, 1, -2, 2, -2 }, - - /* 11-20 */ - { 0, 0, 2, -2, 1 }, - { 1, 0, -2, 0, -2 }, - { 1, 0, 0, -2, 0 }, - { 1, 0, 0, 0, 1 }, - { 1, 0, 0, 0, -1 }, - { 1, 0, -2, -2, -2 }, - { 1, 0, 2, 0, 1 }, - { 2, 0, -2, 0, -1 }, - { 0, 0, 0, 2, 0 }, - { 0, 0, 2, 2, 2 }, - - /* 21-30 */ - { 2, 0, 0, -2, 0 }, - { 0, 2, -2, 2, -2 }, - { 2, 0, 2, 0, 2 }, - { 1, 0, 2, -2, 2 }, - { 1, 0, -2, 0, -1 }, - { 2, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 0 }, - { 0, 1, 0, 0, 1 }, - { 1, 0, 0, -2, -1 }, - { 0, 2, 2, -2, 2 }, - - /* 31-40 */ - { 0, 0, 2, -2, 0 }, - { 1, 0, 0, -2, 1 }, - { 0, 1, 0, 0, -1 }, - { 0, 2, 0, 0, 0 }, - { 1, 0, -2, -2, -1 }, - { 1, 0, 2, 2, 2 }, - { 0, 1, 2, 0, 2 }, - { 2, 0, -2, 0, 0 }, - { 0, 0, 2, 2, 1 }, - { 0, 1, -2, 0, -2 }, - - /* 41-50 */ - { 0, 0, 0, 2, 1 }, - { 1, 0, 2, -2, 1 }, - { 2, 0, 0, -2, -1 }, - { 2, 0, 2, -2, 2 }, - { 2, 0, 2, 0, 1 }, - { 0, 0, 0, 2, -1 }, - { 0, 1, -2, 2, -1 }, - { 1, 1, 0, -2, 0 }, - { 2, 0, 0, -2, 1 }, - { 1, 0, 0, 2, 0 }, - - /* 51-60 */ - { 0, 1, 2, -2, 1 }, - { 1, -1, 0, 0, 0 }, - { 0, 1, -1, 1, -1 }, - { 2, 0, -2, 0, -2 }, - { 0, 1, 0, -2, 0 }, - { 1, 0, 0, -1, 0 }, - { 3, 0, 2, 0, 2 }, - { 0, 0, 0, 1, 0 }, - { 1, -1, 2, 0, 2 }, - { 1, 1, -2, -2, -2 }, - - /* 61-70 */ - { 1, 0, -2, 0, 0 }, - { 2, 0, 0, 0, -1 }, - { 0, 1, -2, -2, -2 }, - { 1, 1, 2, 0, 2 }, - { 2, 0, 0, 0, 1 }, - { 1, 1, 0, 0, 0 }, - { 1, 0, -2, 2, -1 }, - { 1, 0, 2, 0, 0 }, - { 1, -1, 0, -1, 0 }, - { 1, 0, 0, 0, 2 }, - - /* 71-80 */ - { 1, 0, -1, 0, -1 }, - { 0, 0, 2, 1, 2 }, - { 1, 0, -2, -4, -2 }, - { 1, -1, 0, -1, -1 }, - { 1, 0, 2, 2, 1 }, - { 0, 2, -2, 2, -1 }, - { 1, 0, 0, 0, -2 }, - { 2, 0, -2, -2, -2 }, - { 1, 1, 2, -2, 2 }, - { 2, 0, -2, -4, -2 }, - - /* 81-90 */ - { 1, 0, -4, 0, -2 }, - { 2, 0, 2, -2, 1 }, - { 1, 0, 0, -1, -1 }, - { 2, 0, 2, 2, 2 }, - { 3, 0, 0, 0, 0 }, - { 1, 0, 0, 2, 1 }, - { 0, 0, 2, -2, -1 }, - { 3, 0, 2, -2, 2 }, - { 0, 0, 4, -2, 2 }, - { 1, 0, 0, -4, 0 }, - - /* 91-100 */ - { 0, 1, 2, 0, 1 }, - { 2, 0, 0, -4, 0 }, - { 1, 1, 0, -2, -1 }, - { 2, 0, -2, 0, 1 }, - { 0, 0, 2, 0, -1 }, - { 0, 1, -2, 0, -1 }, - { 0, 1, 0, 0, 2 }, - { 0, 0, 2, -1, 2 }, - { 0, 0, 2, 4, 2 }, - { 2, 1, 0, -2, 0 }, - - /* 101-110 */ - { 1, 1, 0, -2, 1 }, - { 1, -1, 0, -2, 0 }, - { 1, -1, 0, -1, -2 }, - { 1, -1, 0, 0, 1 }, - { 0, 1, -2, 2, 0 }, - { 0, 1, 0, 0, -2 }, - { 1, -1, 2, 2, 2 }, - { 1, 0, 0, 2, -1 }, - { 1, -1, -2, -2, -2 }, - { 3, 0, 2, 0, 1 }, - - /* 111-120 */ - { 0, 1, 2, 2, 2 }, - { 1, 0, 2, -2, 0 }, - { 1, 1, -2, -2, -1 }, - { 1, 0, 2, -4, 1 }, - { 0, 1, -2, -2, -1 }, - { 2, -1, 2, 0, 2 }, - { 0, 0, 0, 2, 2 }, - { 1, -1, 2, 0, 1 }, - { 1, -1, -2, 0, -2 }, - { 0, 1, 0, 2, 0 }, - - /* 121-130 */ - { 0, 1, 2, -2, 0 }, - { 0, 0, 0, 1, 1 }, - { 1, 0, -2, -2, 0 }, - { 0, 3, 2, -2, 2 }, - { 2, 1, 2, 0, 2 }, - { 1, 1, 0, 0, 1 }, - { 2, 0, 0, 2, 0 }, - { 1, 1, 2, 0, 1 }, - { 1, 0, 0, -2, -2 }, - { 1, 0, -2, 2, 0 }, - - /* 131-140 */ - { 1, 0, -1, 0, -2 }, - { 0, 1, 0, -2, 1 }, - { 0, 1, 0, 1, 0 }, - { 0, 0, 0, 1, -1 }, - { 1, 0, -2, 2, -2 }, - { 1, -1, 0, 0, -1 }, - { 0, 0, 0, 4, 0 }, - { 1, -1, 0, 2, 0 }, - { 1, 0, 2, 1, 2 }, - { 1, 0, 2, -1, 2 }, - - /* 141-150 */ - { 0, 0, 2, 1, 1 }, - { 1, 0, 0, -2, 2 }, - { 1, 0, -2, 0, 1 }, - { 1, 0, -2, -4, -1 }, - { 0, 0, 2, 2, 0 }, - { 1, 1, 2, -2, 1 }, - { 1, 0, -2, 1, -1 }, - { 0, 0, 1, 0, 1 }, - { 2, 0, -2, -2, -1 }, - { 4, 0, 2, 0, 2 }, - - /* 151-160 */ - { 2, -1, 0, 0, 0 }, - { 2, 1, 2, -2, 2 }, - { 0, 1, 2, 1, 2 }, - { 1, 0, 4, -2, 2 }, - { 1, 1, 0, 0, -1 }, - { 2, 0, 2, 0, 0 }, - { 2, 0, -2, -4, -1 }, - { 1, 0, -1, 0, 0 }, - { 1, 0, 0, 1, 0 }, - { 0, 1, 0, 2, 1 }, - - /* 161-170 */ - { 1, 0, -4, 0, -1 }, - { 1, 0, 0, -4, -1 }, - { 2, 0, 2, 2, 1 }, - { 2, 1, 0, 0, 0 }, - { 0, 0, 2, -3, 2 }, - { 1, 2, 0, -2, 0 }, - { 0, 3, 0, 0, 0 }, - { 0, 0, 4, 0, 2 }, - { 0, 0, 2, -4, 1 }, - { 2, 0, 0, -2, -2 }, - - /* 171-180 */ - { 1, 1, -2, -4, -2 }, - { 0, 1, 0, -2, -1 }, - { 0, 0, 0, 4, 1 }, - { 3, 0, 2, -2, 1 }, - { 1, 0, 2, 4, 2 }, - { 1, 1, -2, 0, -2 }, - { 0, 0, 4, -2, 1 }, - { 2, -2, 0, -2, 0 }, - { 2, 1, 0, -2, -1 }, - { 0, 2, 0, -2, 0 }, - - /* 181-190 */ - { 1, 0, 0, -1, 1 }, - { 1, 1, 2, 2, 2 }, - { 3, 0, 0, 0, -1 }, - { 2, 0, 0, -4, -1 }, - { 3, 0, 2, 2, 2 }, - { 0, 0, 2, 4, 1 }, - { 0, 2, -2, -2, -2 }, - { 1, -1, 0, -2, -1 }, - { 0, 0, 2, -1, 1 }, - { 2, 0, 0, 2, 1 }, - - /* 191-200 */ - { 1, -1, -2, 2, -1 }, - { 0, 0, 0, 2, -2 }, - { 2, 0, 0, -4, 1 }, - { 1, 0, 0, -4, 1 }, - { 2, 0, 2, -4, 1 }, - { 4, 0, 2, -2, 2 }, - { 2, 1, -2, 0, -1 }, - { 2, 1, -2, -4, -2 }, - { 3, 0, 0, -4, 0 }, - { 1, -1, 2, 2, 1 }, - - /* 201-210 */ - { 1, -1, -2, 0, -1 }, - { 0, 2, 0, 0, 1 }, - { 1, 2, -2, -2, -2 }, - { 1, 1, 0, -4, 0 }, - { 2, 0, 0, -2, 2 }, - { 0, 2, 2, -2, 1 }, - { 1, 0, 2, 0, -1 }, - { 2, 1, 0, -2, 1 }, - { 2, -1, -2, 0, -1 }, - { 1, -1, -2, -2, -1 }, - - /* 211-220 */ - { 0, 1, -2, 1, -2 }, - { 1, 0, -4, 2, -2 }, - { 0, 1, 2, 2, 1 }, - { 3, 0, 0, 0, 1 }, - { 2, -1, 2, 2, 2 }, - { 0, 1, -2, -4, -2 }, - { 1, 0, -2, -3, -2 }, - { 2, 0, 0, 0, 2 }, - { 1, -1, 0, -2, -2 }, - { 2, 0, -2, 2, -1 }, - - /* 221-230 */ - { 0, 2, -2, 0, -2 }, - { 3, 0, -2, 0, -1 }, - { 2, -1, 2, 0, 1 }, - { 1, 0, -2, -1, -2 }, - { 0, 0, 2, 0, 3 }, - { 2, 0, -4, 0, -2 }, - { 2, 1, 0, -4, 0 }, - { 1, 1, -2, 1, -1 }, - { 0, 2, 2, 0, 2 }, - { 1, -1, 2, -2, 2 }, - - /* 231-240 */ - { 1, -1, 0, -2, 1 }, - { 2, 1, 2, 0, 1 }, - { 1, 0, 2, -4, 2 }, - { 1, 1, -2, 0, -1 }, - { 1, 1, 0, 2, 0 }, - { 1, 0, 0, -3, 0 }, - { 2, 0, 2, -1, 2 }, - { 0, 2, 0, 0, -1 }, - { 2, -1, 0, -2, 0 }, - { 4, 0, 0, 0, 0 }, - - /* 241-250 */ - { 2, 1, -2, -2, -2 }, - { 0, 2, -2, 2, 0 }, - { 1, 0, 2, 1, 1 }, - { 1, 0, -1, 0, -3 }, - { 3, -1, 2, 0, 2 }, - { 2, 0, 2, -2, 0 }, - { 1, -2, 0, 0, 0 }, - { 2, 0, 0, 0, -2 }, - { 1, 0, 0, 4, 0 }, - { 0, 1, 0, 1, 1 }, - - /* 251-260 */ - { 1, 0, 2, 2, 0 }, - { 0, 1, 0, 2, -1 }, - { 0, 1, 0, 1, -1 }, - { 0, 0, 2, -2, 3 }, - { 3, 1, 2, 0, 2 }, - { 1, 1, 2, 1, 2 }, - { 1, 1, -2, 2, -1 }, - { 2, -1, 2, -2, 2 }, - { 1, -2, 2, 0, 2 }, - { 1, 0, 2, -4, 0 }, - - /* 261-270 */ - { 0, 0, 1, 0, 0 }, - { 1, 0, 2, -3, 1 }, - { 1, -2, 0, -2, 0 }, - { 2, 0, 0, 2, -1 }, - { 1, 1, 2, -4, 1 }, - { 4, 0, 2, 0, 1 }, - { 0, 1, 2, 1, 1 }, - { 1, 2, 2, -2, 2 }, - { 2, 0, 2, 1, 2 }, - { 2, 1, 2, -2, 1 }, - - /* 271-280 */ - { 1, 0, 2, -1, 1 }, - { 1, 0, 4, -2, 1 }, - { 1, -1, 2, -2, 1 }, - { 0, 1, 0, -4, 0 }, - { 3, 0, -2, -2, -2 }, - { 0, 0, 4, -4, 2 }, - { 2, 0, -4, -2, -2 }, - { 2, -2, 0, -2, -1 }, - { 1, 0, 2, -2, -1 }, - { 2, 0, -2, -6, -2 }, - - /* 281-290 */ - { 1, 0, -2, 1, -2 }, - { 1, 0, -2, 2, 1 }, - { 1, -1, 0, 2, -1 }, - { 1, 0, -2, 1, 0 }, - { 2, -1, 0, -2, 1 }, - { 1, -1, 0, 2, 1 }, - { 2, 0, -2, -2, 0 }, - { 1, 0, 2, -3, 2 }, - { 0, 0, 0, 4, -1 }, - { 2, -1, 0, 0, 1 }, - - /* 291-300 */ - { 2, 0, 4, -2, 2 }, - { 0, 0, 2, 3, 2 }, - { 0, 1, 4, -2, 2 }, - { 0, 1, -2, 2, 1 }, - { 1, 1, 0, 2, 1 }, - { 1, 0, 0, 4, 1 }, - { 0, 0, 4, 0, 1 }, - { 2, 0, 0, -3, 0 }, - { 1, 0, 0, -1, -2 }, - { 1, -2, -2, -2, -2 }, - - /* 301-310 */ - { 3, 0, 0, 2, 0 }, - { 2, 0, 2, -4, 2 }, - { 1, 1, -2, -4, -1 }, - { 1, 0, -2, -6, -2 }, - { 2, -1, 0, 0, -1 }, - { 2, -1, 0, 2, 0 }, - { 0, 1, 2, -2, -1 }, - { 1, 1, 0, 1, 0 }, - { 1, 2, 0, -2, -1 }, - { 1, 0, 0, 1, -1 }, - - /* 311-320 */ - { 0, 0, 1, 0, 2 }, - { 3, 1, 2, -2, 2 }, - { 1, 0, -4, -2, -2 }, - { 1, 0, 2, 4, 1 }, - { 1, -2, 2, 2, 2 }, - { 1, -1, -2, -4, -2 }, - { 0, 0, 2, -4, 2 }, - { 0, 0, 2, -3, 1 }, - { 2, 1, -2, 0, 0 }, - { 3, 0, -2, -2, -1 }, - - /* 321-330 */ - { 2, 0, 2, 4, 2 }, - { 0, 0, 0, 0, 3 }, - { 2, -1, -2, -2, -2 }, - { 2, 0, 0, -1, 0 }, - { 3, 0, 2, -4, 2 }, - { 2, 1, 2, 2, 2 }, - { 0, 0, 3, 0, 3 }, - { 1, 1, 2, 2, 1 }, - { 2, 1, 0, 0, -1 }, - { 1, 2, 0, -2, 1 }, - - /* 331-340 */ - { 3, 0, 2, 2, 1 }, - { 1, -1, -2, 2, -2 }, - { 1, 1, 0, -1, 0 }, - { 1, 2, 0, 0, 0 }, - { 1, 0, 4, 0, 2 }, - { 1, -1, 2, 4, 2 }, - { 2, 1, 0, 0, 1 }, - { 1, 0, 0, 2, 2 }, - { 1, -1, -2, 2, 0 }, - { 0, 2, -2, -2, -1 }, - - /* 341-350 */ - { 2, 0, -2, 0, 2 }, - { 5, 0, 2, 0, 2 }, - { 3, 0, -2, -6, -2 }, - { 1, -1, 2, -1, 2 }, - { 3, 0, 0, -4, -1 }, - { 1, 0, 0, 1, 1 }, - { 1, 0, -4, 2, -1 }, - { 0, 1, 2, -4, 1 }, - { 1, 2, 2, 0, 2 }, - { 0, 1, 0, -2, -2 }, - - /* 351-360 */ - { 0, 0, 2, -1, 0 }, - { 1, 0, 1, 0, 1 }, - { 0, 2, 0, -2, 1 }, - { 3, 0, 2, 0, 0 }, - { 1, 1, -2, 1, 0 }, - { 2, 1, -2, -4, -1 }, - { 3, -1, 0, 0, 0 }, - { 2, -1, -2, 0, 0 }, - { 4, 0, 2, -2, 1 }, - { 2, 0, -2, 2, 0 }, - - /* 361-370 */ - { 1, 1, 2, -2, 0 }, - { 1, 0, -2, 4, -1 }, - { 1, 0, -2, -2, 1 }, - { 2, 0, 2, -4, 0 }, - { 1, 1, 0, -2, -2 }, - { 1, 1, -2, -2, 0 }, - { 1, 0, 1, -2, 1 }, - { 2, -1, -2, -4, -2 }, - { 3, 0, -2, 0, -2 }, - { 0, 1, -2, -2, 0 }, - - /* 371-380 */ - { 3, 0, 0, -2, -1 }, - { 1, 0, -2, -3, -1 }, - { 0, 1, 0, -4, -1 }, - { 1, -2, 2, -2, 1 }, - { 0, 1, -2, 1, -1 }, - { 1, -1, 0, 0, 2 }, - { 2, 0, 0, 1, 0 }, - { 1, -2, 0, 2, 0 }, - { 1, 2, -2, -2, -1 }, - { 0, 0, 4, -4, 1 }, - - /* 381-390 */ - { 0, 1, 2, 4, 2 }, - { 0, 1, -4, 2, -2 }, - { 3, 0, -2, 0, 0 }, - { 2, -1, 2, 2, 1 }, - { 0, 1, -2, -4, -1 }, - { 4, 0, 2, 2, 2 }, - { 2, 0, -2, -3, -2 }, - { 2, 0, 0, -6, 0 }, - { 1, 0, 2, 0, 3 }, - { 3, 1, 0, 0, 0 }, - - /* 391-400 */ - { 3, 0, 0, -4, 1 }, - { 1, -1, 2, 0, 0 }, - { 1, -1, 0, -4, 0 }, - { 2, 0, -2, 2, -2 }, - { 1, 1, 0, -2, 2 }, - { 4, 0, 0, -2, 0 }, - { 2, 2, 0, -2, 0 }, - { 0, 1, 2, 0, 0 }, - { 1, 1, 0, -4, 1 }, - { 1, 0, 0, -4, -2 }, - - /* 401-410 */ - { 0, 0, 0, 1, 2 }, - { 3, 0, 0, 2, 1 }, - { 1, 1, 0, -4, -1 }, - { 0, 0, 2, 2, -1 }, - { 1, 1, 2, 0, 0 }, - { 1, -1, 2, -4, 1 }, - { 1, 1, 0, 0, 2 }, - { 0, 0, 2, 6, 2 }, - { 4, 0, -2, -2, -1 }, - { 2, 1, 0, -4, -1 }, - - /* 411-420 */ - { 0, 0, 0, 3, 1 }, - { 1, -1, -2, 0, 0 }, - { 0, 0, 2, 1, 0 }, - { 1, 0, 0, 2, -2 }, - { 3, -1, 2, 2, 2 }, - { 3, -1, 2, -2, 2 }, - { 1, 0, 0, -1, 2 }, - { 1, -2, 2, -2, 2 }, - { 0, 1, 0, 2, 2 }, - { 0, 1, -2, -1, -2 }, - - /* 421-430 */ - { 1, 1, -2, 0, 0 }, - { 0, 2, 2, -2, 0 }, - { 3, -1, -2, -1, -2 }, - { 1, 0, 0, -6, 0 }, - { 1, 0, -2, -4, 0 }, - { 2, 1, 0, -4, 1 }, - { 2, 0, 2, 0, -1 }, - { 2, 0, -4, 0, -1 }, - { 0, 0, 3, 0, 2 }, - { 2, 1, -2, -2, -1 }, - - /* 431-440 */ - { 1, -2, 0, 0, 1 }, - { 2, -1, 0, -4, 0 }, - { 0, 0, 0, 3, 0 }, - { 5, 0, 2, -2, 2 }, - { 1, 2, -2, -4, -2 }, - { 1, 0, 4, -4, 2 }, - { 0, 0, 4, -1, 2 }, - { 3, 1, 0, -4, 0 }, - { 3, 0, 0, -6, 0 }, - { 2, 0, 0, 2, 2 }, - - /* 441-450 */ - { 2, -2, 2, 0, 2 }, - { 1, 0, 0, -3, 1 }, - { 1, -2, -2, 0, -2 }, - { 1, -1, -2, -3, -2 }, - { 0, 0, 2, -2, -2 }, - { 2, 0, -2, -4, 0 }, - { 1, 0, -4, 0, 0 }, - { 0, 1, 0, -1, 0 }, - { 4, 0, 0, 0, -1 }, - { 3, 0, 2, -1, 2 }, - - /* 451-460 */ - { 3, -1, 2, 0, 1 }, - { 2, 0, 2, -1, 1 }, - { 1, 2, 2, -2, 1 }, - { 1, 1, 0, 2, -1 }, - { 0, 2, 2, 0, 1 }, - { 3, 1, 2, 0, 1 }, - { 1, 1, 2, 1, 1 }, - { 1, 1, 0, -1, 1 }, - { 1, -2, 0, -2, -1 }, - { 4, 0, 0, -4, 0 }, - - /* 461-470 */ - { 2, 1, 0, 2, 0 }, - { 1, -1, 0, 4, 0 }, - { 0, 1, 0, -2, 2 }, - { 0, 0, 2, 0, -2 }, - { 1, 0, -1, 0, 1 }, - { 3, 0, 2, -2, 0 }, - { 2, 0, 2, 2, 0 }, - { 1, 2, 0, -4, 0 }, - { 1, -1, 0, -3, 0 }, - { 0, 1, 0, 4, 0 }, - - /* 471 - 480 */ - { 0, 1, -2, 0, 0 }, - { 2, 2, 2, -2, 2 }, - { 0, 0, 0, 1, -2 }, - { 0, 2, -2, 0, -1 }, - { 4, 0, 2, -4, 2 }, - { 2, 0, -4, 2, -2 }, - { 2, -1, -2, 0, -2 }, - { 1, 1, 4, -2, 2 }, - { 1, 1, 2, -4, 2 }, - { 1, 0, 2, 3, 2 }, - - /* 481-490 */ - { 1, 0, 0, 4, -1 }, - { 0, 0, 0, 4, 2 }, - { 2, 0, 0, 4, 0 }, - { 1, 1, -2, 2, 0 }, - { 2, 1, 2, 1, 2 }, - { 2, 1, 2, -4, 1 }, - { 2, 0, 2, 1, 1 }, - { 2, 0, -4, -2, -1 }, - { 2, 0, -2, -6, -1 }, - { 2, -1, 2, -1, 2 }, - - /* 491-500 */ - { 1, -2, 2, 0, 1 }, - { 1, -2, 0, -2, 1 }, - { 1, -1, 0, -4, -1 }, - { 0, 2, 2, 2, 2 }, - { 0, 2, -2, -4, -2 }, - { 0, 1, 2, 3, 2 }, - { 0, 1, 0, -4, 1 }, - { 3, 0, 0, -2, 1 }, - { 2, 1, -2, 0, 1 }, - { 2, 0, 4, -2, 1 }, - - /* 501-510 */ - { 2, 0, 0, -3, -1 }, - { 2, -2, 0, -2, 1 }, - { 2, -1, 2, -2, 1 }, - { 1, 0, 0, -6, -1 }, - { 1, -2, 0, 0, -1 }, - { 1, -2, -2, -2, -1 }, - { 0, 1, 4, -2, 1 }, - { 0, 0, 2, 3, 1 }, - { 2, -1, 0, -1, 0 }, - { 1, 3, 0, -2, 0 }, - - /* 511-520 */ - { 0, 3, 0, -2, 0 }, - { 2, -2, 2, -2, 2 }, - { 0, 0, 4, -2, 0 }, - { 4, -1, 2, 0, 2 }, - { 2, 2, -2, -4, -2 }, - { 4, 1, 2, 0, 2 }, - { 4, -1, -2, -2, -2 }, - { 2, 1, 0, -2, -2 }, - { 2, 1, -2, -6, -2 }, - { 2, 0, 0, -1, 1 }, - - /* 521-530 */ - { 2, -1, -2, 2, -1 }, - { 1, 1, -2, 2, -2 }, - { 1, 1, -2, -3, -2 }, - { 1, 0, 3, 0, 3 }, - { 1, 0, -2, 1, 1 }, - { 1, 0, -2, 0, 2 }, - { 1, -1, 2, 1, 2 }, - { 1, -1, 0, 0, -2 }, - { 1, -1, -4, 2, -2 }, - { 0, 3, -2, -2, -2 }, - - /* 531-540 */ - { 0, 1, 0, 4, 1 }, - { 0, 0, 4, 2, 2 }, - { 3, 0, -2, -2, 0 }, - { 2, -2, 0, 0, 0 }, - { 1, 1, 2, -4, 0 }, - { 1, 1, 0, -3, 0 }, - { 1, 0, 2, -3, 0 }, - { 1, -1, 2, -2, 0 }, - { 0, 2, 0, 2, 0 }, - { 0, 0, 2, 4, 0 }, - - /* 541-550 */ - { 1, 0, 1, 0, 0 }, - { 3, 1, 2, -2, 1 }, - { 3, 0, 4, -2, 2 }, - { 3, 0, 2, 1, 2 }, - { 3, 0, 0, 2, -1 }, - { 3, 0, 0, 0, 2 }, - { 3, 0, -2, 2, -1 }, - { 2, 0, 4, -4, 2 }, - { 2, 0, 2, -3, 2 }, - { 2, 0, 0, 4, 1 }, - - /* 551-560 */ - { 2, 0, 0, -3, 1 }, - { 2, 0, -4, 2, -1 }, - { 2, 0, -2, -2, 1 }, - { 2, -2, 2, 2, 2 }, - { 2, -2, 0, -2, -2 }, - { 2, -1, 0, 2, 1 }, - { 2, -1, 0, 2, -1 }, - { 1, 1, 2, 4, 2 }, - { 1, 1, 0, 1, 1 }, - { 1, 1, 0, 1, -1 }, - - /* 561-570 */ - { 1, 1, -2, -6, -2 }, - { 1, 0, 0, -3, -1 }, - { 1, 0, -4, -2, -1 }, - { 1, 0, -2, -6, -1 }, - { 1, -2, 2, 2, 1 }, - { 1, -2, -2, 2, -1 }, - { 1, -1, -2, -4, -1 }, - { 0, 2, 0, 0, 2 }, - { 0, 1, 2, -4, 2 }, - { 0, 1, -2, 4, -1 }, - - /* 571-580 */ - { 5, 0, 0, 0, 0 }, - { 3, 0, 0, -3, 0 }, - { 2, 2, 0, -4, 0 }, - { 1, -1, 2, 2, 0 }, - { 0, 1, 0, 3, 0 }, - { 4, 0, -2, 0, -1 }, - { 3, 0, -2, -6, -1 }, - { 3, 0, -2, -1, -1 }, - { 2, 1, 2, 2, 1 }, - { 2, 1, 0, 2, 1 }, - - /* 581-590 */ - { 2, 0, 2, 4, 1 }, - { 2, 0, 2, -6, 1 }, - { 2, 0, 2, -2, -1 }, - { 2, 0, 0, -6, -1 }, - { 2, -1, -2, -2, -1 }, - { 1, 2, 2, 0, 1 }, - { 1, 2, 0, 0, 1 }, - { 1, 0, 4, 0, 1 }, - { 1, 0, 2, -6, 1 }, - { 1, 0, 2, -4, -1 }, - - /* 591-600 */ - { 1, 0, -1, -2, -1 }, - { 1, -1, 2, 4, 1 }, - { 1, -1, 2, -3, 1 }, - { 1, -1, 0, 4, 1 }, - { 1, -1, -2, 1, -1 }, - { 0, 1, 2, -2, 3 }, - { 3, 0, 0, -2, 0 }, - { 1, 0, 1, -2, 0 }, - { 0, 2, 0, -4, 0 }, - { 0, 0, 2, -4, 0 }, - - /* 601-610 */ - { 0, 0, 1, -1, 0 }, - { 0, 0, 0, 6, 0 }, - { 0, 2, 0, 0, -2 }, - { 0, 1, -2, 2, -3 }, - { 4, 0, 0, 2, 0 }, - { 3, 0, 0, -1, 0 }, - { 3, -1, 0, 2, 0 }, - { 2, 1, 0, 1, 0 }, - { 2, 1, 0, -6, 0 }, - { 2, -1, 2, 0, 0 }, - - /* 611-620 */ - { 1, 0, 2, -1, 0 }, - { 1, -1, 0, 1, 0 }, - { 1, -1, -2, -2, 0 }, - { 0, 1, 2, 2, 0 }, - { 0, 0, 2, -3, 0 }, - { 2, 2, 0, -2, -1 }, - { 2, -1, -2, 0, 1 }, - { 1, 2, 2, -4, 1 }, - { 0, 1, 4, -4, 2 }, - { 0, 0, 0, 3, 2 }, - - /* 621-630 */ - { 5, 0, 2, 0, 1 }, - { 4, 1, 2, -2, 2 }, - { 4, 0, -2, -2, 0 }, - { 3, 1, 2, 2, 2 }, - { 3, 1, 0, -2, 0 }, - { 3, 1, -2, -6, -2 }, - { 3, 0, 0, 0, -2 }, - { 3, 0, -2, -4, -2 }, - { 3, -1, 0, -3, 0 }, - { 3, -1, 0, -2, 0 }, - - /* 631-640 */ - { 2, 1, 2, 0, 0 }, - { 2, 1, 2, -4, 2 }, - { 2, 1, 2, -2, 0 }, - { 2, 1, 0, -3, 0 }, - { 2, 1, -2, 0, -2 }, - { 2, 0, 0, -4, 2 }, - { 2, 0, 0, -4, -2 }, - { 2, 0, -2, -5, -2 }, - { 2, -1, 2, 4, 2 }, - { 2, -1, 0, -2, 2 }, - - /* 641-650 */ - { 1, 3, -2, -2, -2 }, - { 1, 1, 0, 0, -2 }, - { 1, 1, 0, -6, 0 }, - { 1, 1, -2, 1, -2 }, - { 1, 1, -2, -1, -2 }, - { 1, 0, 2, 1, 0 }, - { 1, 0, 0, 3, 0 }, - { 1, 0, 0, -4, 2 }, - { 1, 0, -2, 4, -2 }, - { 1, -2, 0, -1, 0 }, - - /* 651-NFLS */ - { 0, 1, -4, 2, -1 }, - { 1, 0, -2, 0, -3 }, - { 0, 0, 4, -4, 4 } - }; - -/* Number of frequencies: luni-solar */ - static const int NFLS = (int) (sizeof mfals / sizeof (int) / 5); - -/* Fundamental-argument multipliers: planetary terms */ - static const int mfapl[][14] = { - - /* 1-10 */ - { 0, 0, 1, -1, 1, 0, 0, -1, 0, -2, 5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 1, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -1, 2, 0, 0, 0, 0, 0 }, - - /* 11-20 */ - { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 2, -5, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -1, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -8, 3, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 6, -8, 3, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 0 }, - - /* 21-30 */ - { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 1, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 1, -1, 1, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, -1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - - /* 31-40 */ - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 1 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, -1, 0, 0, 0 }, - - /* 41-50 */ - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, -2, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 2 }, - { 1, 0, 0, 0, 0, 0,-18, 16, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2 }, - - /* 51-60 */ - { 0, 0, 1, -1, 1, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 0, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 2 }, - { 1, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1 }, - { 1, 0, -2, 0, -2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 2, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - - /* 61-70 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, -2 }, - { 0, 0, 1, -1, 1, 0, 0, 3, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8,-11, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 8,-16, 4, 5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0 }, - - /* 71-80 */ - { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -2, 0, 0, 0, 2 }, - { 0, 0, 1, -1, 1, 0, 0, -5, 8, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0 }, - - /* 81-90 */ - { 2, 0, 0, -2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, -1 }, - { 2, 0, 0, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 8,-13, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 0, 0, -2, 5, 0, 0, 0 }, - { 1, 0, 0, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2 }, - { 1, 0, 0, 0, -1, 0,-18, 16, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, -5, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, - - /* 91-100 */ - { 1, 0, 0, -2, 0, 0, 19,-21, 3, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -8, 13, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 }, - { 1, 0, 0, 0, 1, 0,-18, 16, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 6,-16, 4, 5, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0, -2 }, - - /* 101-110 */ - { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 }, - { 2, 0, 0, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, -1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2 }, - - /* 111-120 */ - { 0, 0, 0, 0, 1, 0, 0, 1, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2 }, - { 0, 0, 2, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, -6, 8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, - - /* 121-130 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8,-10, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, -2 }, - { 1, 0, 0, -1, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - - /* 131-140 */ - { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, -3, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 1, 0, 2, -3, 0, 0, 0, 0, 0, 0 }, - - /* 141-150 */ - { 1, 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 9,-11, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -4, 5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, -1, 0, 0, 0, 2 }, - - /* 151-160 */ - { 1, 0, 0, -1, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, -4, 10, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, -2 }, - { 0, 0, 2, -2, 1, 0, -4, 4, 0, 0, 0, 0, 0, 0 }, - - /* 161-170 */ - { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -1, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 2 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 2, 0 }, - { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -9, 13, 0, 0, 0, 0, 0 }, - { 2, 0, 2, 0, 2, 0, 0, 2, 0, -3, 0, 0, 0, 0 }, - - /* 171-180 */ - { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, 2, 0, 0, 0 }, - { 1, 0, 0, -1, -1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1 }, - { 1, 0, 2, 0, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 1, 0, -2, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -2, 4, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0 }, - - /* 181-190 */ - { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 2, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -8, 3, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 7, -8, 3, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 1, 0, -3, 5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 1 }, - - /* 191-200 */ - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7,-10, 0, 0, 0, 0, 0, -2 }, - { 1, 0, 0, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 1, -1, 1, 0, 0, -9, 15, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0 }, - - /* 201-210 */ - { 0, 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -1, 0, 0, 2 }, - { 2, 0, 0, -2, 1, 0, -6, 8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 1, -1, 1, 0, 3, -6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 8,-14, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - - /* 211-220 */ - { 0, 0, 0, 0, 1, 0, 0, 8,-15, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 1, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 2 }, - { 2, 0, -1, -1, 0, 0, 0, 3, -7, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, - - /* 221-230 */ - { 2, 0, 0, -2, 0, 0, 0, -6, 8, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 0, -5, 6, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -9, 4, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, -2 }, - - /* 231-240 */ - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -4, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1 }, - { 0, 0, 0, 0, 0, 0, 7,-11, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 3, -5, 4, 0, 0, 0, 0, 2 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0 }, - { 2, 0, 0, 0, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, -1 }, - - /* 241-250 */ - { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 1, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 2, -4, 0, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 3, -5, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -3, 0, 0, 0, 2 }, - { 0, 0, 2, -2, 2, 0, -8, 11, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -2, 0, 0, 0 }, - - /* 251-260 */ - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, -2, -2, -2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 3, -3, 0, 0, 0, 0, 0, 1 }, - - /* 261-270 */ - { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, -5, 0, 0, 2 }, - { 2, 0, 0, -2, -1, 0, 0, -2, 0, 0, 5, 0, 0, 0 }, - { 2, 0, 0, -2, -1, 0, -6, 8, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, -5, 0, 0, 2 }, - { 0, 0, 0, 0, 1, 0, 3, -7, 4, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - - /* 271-280 */ - { 0, 0, 1, -1, 0, 0, 0, -1, 0, -2, 5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 6,-15, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2 }, - { 1, 0, 0, -1, 0, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -3, 7, -4, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, 0, -2, 0, 0, 0, 2 }, - - /* 281-290 */ - { 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 2, -2, 2, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, -2 }, - - /* 291-300 */ - { 0, 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 9,-12, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 1, -1, 0, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -2, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, -1 }, - - /* 301-310 */ - { 0, 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 1, -1, -1, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 0, 0, -2 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 3, -1, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -2, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 2 }, - - /* 311-320 */ - { 0, 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 3, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 2, -4, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1 }, - { 0, 0, 1, -1, 2, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2 }, - { 0, 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - - /* 321-330 */ - { 0, 0, 2, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, 0, -3, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 }, - { 2, 0, -1, -1, -1, 0, 0, -1, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 4, -3, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 5,-10, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 8,-13, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 2, -2, 1, -1, 0, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 2, 0, 0 }, - - /* 331-340 */ - { 0, 0, 0, 0, 1, 0, 3, -5, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 9, -9, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -8, 11, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -2, 0, 0, 2, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 2, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 2, -6, 0, 0, 0, 0, 0, -2 }, - - /* 341-350 */ - { 0, 0, 0, 0, 0, 0, 0, 8,-15, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -2, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 2 }, - { 0, 0, 2, -2, 1, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8, -8, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 8,-10, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 1 }, - - /* 351-360 */ - { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -4, 0, 0, 0, 0 }, - { 2, 0, 0, -2, -1, 0, 0, -5, 6, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, -2 }, - { 2, 0, -1, -1, -1, 0, 0, 3, -7, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, - - /* 361-370 */ - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 4, -3, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 6,-11, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 1, 0, 0, -6, 8, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 6, -5, 0, 0, 0, 0, 2 }, - { 1, 0, -2, -2, -2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1 }, - - /* 371-380 */ - { 0, 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, -2, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -2, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 3, -5, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 7,-13, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 0, 0, 2 }, - - /* 381-390 */ - { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -8, 15, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, -2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 2, 0, -1, -1, -1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - { 1, 0, 2, -2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 1, 0, -1, 1, -1, 0,-18, 17, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 2, -2, -1, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - - /* 391-400 */ - { 0, 0, 0, 0, 1, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8,-16, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 }, - { 0, 0, 0, 0, 2, 0, 0, -1, 2, 0, 0, 0, 0, 0 }, - { 2, 0, -1, -1, -2, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, -2, 4, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2 }, - { 2, 0, 0, -2, -1, 0, 0, -2, 0, 4, -5, 0, 0, 0 }, - - /* 401-410 */ - { 2, 0, 0, -2, -1, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 2, 0, -1, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -1, -1, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, - { 1, 0, -1, -1, -1, 0, 20,-20, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 1, -2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -2, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 5, -8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0 }, - - /* 411-420 */ - { 0, 0, 0, 0, 0, 0, 9,-11, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 5, -3, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, -2, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, 0, -1, 0, -2, 5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, 0 }, - - /* 421-430 */ - { 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -8, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -6, 0, 0, 0, 0, -2 }, - { 1, 0, 0, -2, 0, 0, 20,-21, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8,-12, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -4, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 8,-12, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, 0 }, - - /* 431-440 */ - { 0, 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 1, 5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -6, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -7, 0, 0, 0, 0, -2 }, - { 1, 0, 0, -1, 1, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, - { 1, 0, -2, 0, -2, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -9, 17, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, 0, -2 }, - { 1, 0, -2, -2, -2, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 1, 0, -1, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - - /* 441-450 */ - { 0, 0, 2, -2, 2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, 1, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 2, -2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5,-10, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, -4, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, -5, 0, 0, 0, -2 }, - - /* 451-460 */ - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -5, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 0, 0, 1 }, - { 1, 0, 0, -2, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -7, 4, 0, 0, 0, 0, 0 }, - { 2, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 1, 0, -2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, -2 }, - - /* 461-470 */ - { 1, 0, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -3, 0, 3, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, -5, 5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 1, -3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -4, 6, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -5, 6, 0, 0, 0, 0, 0, 0 }, - - /* 471-480 */ - { 0, 0, 0, 0, 1, 0, 3, -4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7,-10, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 5, -5, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 3, -8, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 2, -5, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 7, -9, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 2 }, - - /* 481-490 */ - { 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -8, 3, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -2, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -4, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1 }, - { 2, 0, 0, -2, -1, 0, 0, -6, 8, 0, 0, 0, 0, 0 }, - { 2, 0, -1, -1, 1, 0, 0, 3, -7, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -7, 9, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, -1 }, - - /* 491-500 */ - { 0, 0, 1, -1, 2, 0, -8, 12, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7, -8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 1, 0, 0, -5, 6, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, -1, 0, 0, -2, 0, 3, -1, 0, 0, 0 }, - { 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 1, 0, 0, -2, -1, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - - /* 501-510 */ - { 1, 0, 0, -1, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0 }, - { 1, 0, -1, 0, -1, 0, -3, 5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -4, 4, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, -8, 11, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 0, 0, 0, -9, 13, 0, 0, 0, 0, 0 }, - { 0, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, 1, -4, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, -3, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, 7,-13, 0, 0, 0, 0, 0 }, - - /* 511-520 */ - { 0, 0, 0, 0, 1, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 7,-11, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 6, -6, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 4, -2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -4, 0, 0, 0, 0, 0, 1 }, - - /* 521-530 */ - { 0, 0, 0, 0, 0, 0, 1, -4, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 9,-17, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 7, -7, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, -7, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - - /* 531-540 */ - { 2, 0, 0, -2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 17,-16, 0, -2, 0, 0, 0, 0 }, - { 1, 0, 0, -1, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 0, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -4, 0, 0, 0, 0 }, - - /* 541-550 */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2 }, - { 2, 0, 0, -2, 0, 0, 0, -4, 4, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 2, 2, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - - /* 551-560 */ - { 1, 0, 0, -2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 0, 0, -4, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, -4, 5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 2, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 }, - - /* 561-570 */ - { 0, 0, 0, 0, 0, 0, 8, -9, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0 }, - { 2, 0, -2, -2, -2, 0, 0, -2, 0, 2, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 1, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, -1, 0,-10, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, 2, -3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, 2, -2, 0, 0, 0, 0, 0, 0 }, - - /* 571-580 */ - { 0, 0, 2, 0, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 0, 2, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, 0, -1, 0, 2, 0, 0, 0, 0 }, - { 2, 0, 2, -2, 2, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 2, 0, 1, -3, 1, 0, -6, 7, 0, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 2, -5, 0, 0, 0, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 5, -5, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 1, 5, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 0, 5, 0, 0, 0 }, - - /* 581-590 */ - { 2, 0, 0, -2, 0, 0, 0, -2, 0, 0, 2, 0, 0, 0 }, - { 2, 0, 0, -2, 0, 0, -4, 4, 0, 0, 0, 0, 0, 0 }, - { 2, 0, -2, 0, -2, 0, 0, 5, -9, 0, 0, 0, 0, 0 }, - { 2, 0, -1, -1, 0, 0, 0, -1, 0, 3, 0, 0, 0, 0 }, - { 1, 0, 2, 0, 2, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 2, 0, 2, 0, 0, 4, -8, 3, 0, 0, 0, 0 }, - { 1, 0, 2, 0, 2, 0, 0, -4, 8, -3, 0, 0, 0, 0 }, - { 1, 0, 2, 0, 2, 0, -1, 1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 2, -2, 2, 0, -3, 3, 0, 0, 0, 0, 0, 0 }, - { 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - - /* 591-600 */ - { 1, 0, 0, 0, 0, 0, 0, -2, 0, 3, 0, 0, 0, 0 }, - { 1, 0, 0, -2, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, - { 1, 0, -2, -2, -2, 0, 0, 1, 0, -1, 0, 0, 0, 0 }, - { 1, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 1, 0, -1, -1, 0, 0, 0, 8,-15, 0, 0, 0, 0, 0 }, - { 0, 0, 2, 2, 2, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0, -2, 0, 1, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 1, 0, 0,-10, 15, 0, 0, 0, 0, 0 }, - { 0, 0, 2, -2, 0, -1, 0, 2, 0, 0, 0, 0, 0, 0 }, - - /* 601-610 */ - { 0, 0, 1, -1, 2, 0, 0, -1, 0, 0, -1, 0, 0, 0 }, - { 0, 0, 1, -1, 2, 0, -3, 4, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -4, 6, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -2, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 1, -1, -1, 0, -5, 7, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 2, 0, 0, 0, 2, 0, -2, 0, 0, 0, 0 }, - - /* 611-620 */ - { 0, 0, 0, 2, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 2, 0, -3, 5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 1, 0, -1, 2, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 9,-13, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 8,-14, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 8,-11, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 6, -8, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 6, -7, 0, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0, -2 }, - - /* 621-630 */ - { 0, 0, 0, 0, 0, 0, 5, -6, -4, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 4, -8, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 4, -5, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 3, -3, 0, 2, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 7,-12, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 6, -9, 0, 0, 0, 0, -2 }, - - /* 631-640 */ - { 0, 0, 0, 0, 0, 0, 0, 6, -8, 1, 5, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 6, -4, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 6,-10, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5, 0, -4, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -9, 0, 0, 0, 0, -1 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -8, 3, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -7, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 5, -6, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 5,-16, 4, 5, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 5,-13, 0, 0, 0, 0, -2 }, - - /* 641-650 */ - { 0, 0, 0, 0, 0, 0, 0, 3, 0, -5, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -9, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 3, -7, 0, 0, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -3, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 2, -8, 1, 5, 0, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -5, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -3, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 5, 0, 0, 0 }, - - /* 651-NFPL */ - { 0, 0, 0, 0, 0, 0, 0, 1, -3, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -6, 3, 0, -2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } - }; - -/* Number of frequencies: planetary */ - static const int NFPL = (int) (sizeof mfapl / sizeof (int) / 14); - -/* Pointers into amplitudes array, one pointer per frequency */ - static const int nc[] = { - - /* 1-100 */ - 1, 21, 37, 51, 65, 79, 91, 103, 115, 127, - 139, 151, 163, 172, 184, 196, 207, 219, 231, 240, - 252, 261, 273, 285, 297, 309, 318, 327, 339, 351, - 363, 372, 384, 396, 405, 415, 423, 435, 444, 452, - 460, 467, 474, 482, 490, 498, 506, 513, 521, 528, - 536, 543, 551, 559, 566, 574, 582, 590, 597, 605, - 613, 620, 628, 636, 644, 651, 658, 666, 674, 680, - 687, 695, 702, 710, 717, 725, 732, 739, 746, 753, - 760, 767, 774, 782, 790, 798, 805, 812, 819, 826, - 833, 840, 846, 853, 860, 867, 874, 881, 888, 895, - - /* 101-200 */ - 901, 908, 914, 921, 928, 934, 941, 948, 955, 962, - 969, 976, 982, 989, 996, 1003, 1010, 1017, 1024, 1031, - 1037, 1043, 1050, 1057, 1064, 1071, 1078, 1084, 1091, 1098, - 1104, 1112, 1118, 1124, 1131, 1138, 1145, 1151, 1157, 1164, - 1171, 1178, 1185, 1192, 1199, 1205, 1212, 1218, 1226, 1232, - 1239, 1245, 1252, 1259, 1266, 1272, 1278, 1284, 1292, 1298, - 1304, 1310, 1316, 1323, 1329, 1335, 1341, 1347, 1353, 1359, - 1365, 1371, 1377, 1383, 1389, 1396, 1402, 1408, 1414, 1420, - 1426, 1434, 1440, 1446, 1452, 1459, 1465, 1471, 1477, 1482, - 1488, 1493, 1499, 1504, 1509, 1514, 1520, 1527, 1532, 1538, - - /* 201-300 */ - 1543, 1548, 1553, 1558, 1564, 1569, 1574, 1579, 1584, 1589, - 1594, 1596, 1598, 1600, 1602, 1605, 1608, 1610, 1612, 1617, - 1619, 1623, 1625, 1627, 1629, 1632, 1634, 1640, 1642, 1644, - 1646, 1648, 1650, 1652, 1654, 1658, 1660, 1662, 1664, 1668, - 1670, 1672, 1673, 1675, 1679, 1681, 1683, 1684, 1686, 1688, - 1690, 1693, 1695, 1697, 1701, 1703, 1705, 1707, 1709, 1711, - 1712, 1715, 1717, 1721, 1723, 1725, 1727, 1729, 1731, 1733, - 1735, 1737, 1739, 1741, 1743, 1745, 1747, 1749, 1751, 1753, - 1755, 1757, 1759, 1761, 1762, 1764, 1766, 1768, 1769, 1771, - 1773, 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1788, 1790, - - /* 301-400 */ - 1792, 1794, 1796, 1798, 1800, 1802, 1804, 1806, 1807, 1809, - 1811, 1815, 1817, 1819, 1821, 1823, 1825, 1827, 1829, 1831, - 1833, 1835, 1837, 1839, 1840, 1842, 1844, 1848, 1850, 1852, - 1854, 1856, 1858, 1859, 1860, 1862, 1864, 1866, 1868, 1869, - 1871, 1873, 1875, 1877, 1879, 1881, 1883, 1885, 1887, 1889, - 1891, 1892, 1896, 1898, 1900, 1901, 1903, 1905, 1907, 1909, - 1910, 1911, 1913, 1915, 1919, 1921, 1923, 1927, 1929, 1931, - 1933, 1935, 1937, 1939, 1943, 1945, 1947, 1948, 1949, 1951, - 1953, 1955, 1957, 1958, 1960, 1962, 1964, 1966, 1968, 1970, - 1971, 1973, 1974, 1975, 1977, 1979, 1980, 1981, 1982, 1984, - - /* 401-500 */ - 1986, 1988, 1990, 1992, 1994, 1995, 1997, 1999, 2001, 2003, - 2005, 2007, 2008, 2009, 2011, 2013, 2015, 2017, 2019, 2021, - 2023, 2024, 2025, 2027, 2029, 2031, 2033, 2035, 2037, 2041, - 2043, 2045, 2046, 2047, 2049, 2051, 2053, 2055, 2056, 2057, - 2059, 2061, 2063, 2065, 2067, 2069, 2070, 2071, 2072, 2074, - 2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, - 2095, 2096, 2097, 2099, 2101, 2105, 2106, 2107, 2108, 2109, - 2110, 2111, 2113, 2115, 2119, 2121, 2123, 2125, 2127, 2129, - 2131, 2133, 2135, 2136, 2137, 2139, 2141, 2143, 2145, 2147, - 2149, 2151, 2153, 2155, 2157, 2159, 2161, 2163, 2165, 2167, - - /* 501-600 */ - 2169, 2171, 2173, 2175, 2177, 2179, 2181, 2183, 2185, 2186, - 2187, 2188, 2192, 2193, 2195, 2197, 2199, 2201, 2203, 2205, - 2207, 2209, 2211, 2213, 2217, 2219, 2221, 2223, 2225, 2227, - 2229, 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, - 2241, 2244, 2246, 2248, 2250, 2252, 2254, 2256, 2258, 2260, - 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278, 2280, - 2282, 2284, 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300, - 2302, 2303, 2304, 2305, 2306, 2307, 2309, 2311, 2313, 2315, - 2317, 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, 2335, - 2337, 2341, 2343, 2345, 2347, 2349, 2351, 2352, 2355, 2356, - - /* 601-700 */ - 2357, 2358, 2359, 2361, 2363, 2364, 2365, 2366, 2367, 2368, - 2369, 2370, 2371, 2372, 2373, 2374, 2376, 2378, 2380, 2382, - 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, - 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, - 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, - 2414, 2415, 2417, 2418, 2430, 2438, 2445, 2453, 2460, 2468, - 2474, 2480, 2488, 2496, 2504, 2512, 2520, 2527, 2535, 2543, - 2550, 2558, 2566, 2574, 2580, 2588, 2596, 2604, 2612, 2619, - 2627, 2634, 2642, 2648, 2656, 2664, 2671, 2679, 2685, 2693, - 2701, 2709, 2717, 2725, 2733, 2739, 2747, 2753, 2761, 2769, - - /* 701-800 */ - 2777, 2785, 2793, 2801, 2809, 2817, 2825, 2833, 2841, 2848, - 2856, 2864, 2872, 2878, 2884, 2892, 2898, 2906, 2914, 2922, - 2930, 2938, 2944, 2952, 2958, 2966, 2974, 2982, 2988, 2996, - 3001, 3009, 3017, 3025, 3032, 3039, 3045, 3052, 3059, 3067, - 3069, 3076, 3083, 3090, 3098, 3105, 3109, 3111, 3113, 3120, - 3124, 3128, 3132, 3136, 3140, 3144, 3146, 3150, 3158, 3161, - 3165, 3166, 3168, 3172, 3176, 3180, 3182, 3185, 3189, 3193, - 3194, 3197, 3200, 3204, 3208, 3212, 3216, 3219, 3221, 3222, - 3226, 3230, 3234, 3238, 3242, 3243, 3247, 3251, 3254, 3258, - 3262, 3266, 3270, 3274, 3275, 3279, 3283, 3287, 3289, 3293, - - /* 801-900 */ - 3296, 3300, 3303, 3307, 3311, 3315, 3319, 3321, 3324, 3327, - 3330, 3334, 3338, 3340, 3342, 3346, 3350, 3354, 3358, 3361, - 3365, 3369, 3373, 3377, 3381, 3385, 3389, 3393, 3394, 3398, - 3402, 3406, 3410, 3413, 3417, 3421, 3425, 3429, 3433, 3435, - 3439, 3443, 3446, 3450, 3453, 3457, 3458, 3461, 3464, 3468, - 3472, 3476, 3478, 3481, 3485, 3489, 3493, 3497, 3501, 3505, - 3507, 3511, 3514, 3517, 3521, 3524, 3525, 3527, 3529, 3533, - 3536, 3540, 3541, 3545, 3548, 3551, 3555, 3559, 3563, 3567, - 3569, 3570, 3574, 3576, 3578, 3582, 3586, 3590, 3593, 3596, - 3600, 3604, 3608, 3612, 3616, 3620, 3623, 3626, 3630, 3632, - - /* 901-1000 */ - 3636, 3640, 3643, 3646, 3648, 3652, 3656, 3660, 3664, 3667, - 3669, 3671, 3675, 3679, 3683, 3687, 3689, 3693, 3694, 3695, - 3699, 3703, 3705, 3707, 3710, 3713, 3717, 3721, 3725, 3729, - 3733, 3736, 3740, 3744, 3748, 3752, 3754, 3757, 3759, 3763, - 3767, 3770, 3773, 3777, 3779, 3783, 3786, 3790, 3794, 3798, - 3801, 3805, 3809, 3813, 3817, 3821, 3825, 3827, 3831, 3835, - 3836, 3837, 3840, 3844, 3848, 3852, 3856, 3859, 3863, 3867, - 3869, 3871, 3875, 3879, 3883, 3887, 3890, 3894, 3898, 3901, - 3905, 3909, 3913, 3917, 3921, 3922, 3923, 3924, 3926, 3930, - 3932, 3936, 3938, 3940, 3944, 3948, 3952, 3956, 3959, 3963, - - /* 1001-1100 */ - 3965, 3969, 3973, 3977, 3979, 3981, 3982, 3986, 3989, 3993, - 3997, 4001, 4004, 4006, 4009, 4012, 4016, 4020, 4024, 4026, - 4028, 4032, 4036, 4040, 4044, 4046, 4050, 4054, 4058, 4060, - 4062, 4063, 4064, 4068, 4071, 4075, 4077, 4081, 4083, 4087, - 4089, 4091, 4095, 4099, 4101, 4103, 4105, 4107, 4111, 4115, - 4119, 4123, 4127, 4129, 4131, 4135, 4139, 4141, 4143, 4145, - 4149, 4153, 4157, 4161, 4165, 4169, 4173, 4177, 4180, 4183, - 4187, 4191, 4195, 4198, 4201, 4205, 4209, 4212, 4213, 4216, - 4217, 4221, 4223, 4226, 4230, 4234, 4236, 4240, 4244, 4248, - 4252, 4256, 4258, 4262, 4264, 4266, 4268, 4270, 4272, 4276, - - /* 1101-1200 */ - 4279, 4283, 4285, 4287, 4289, 4293, 4295, 4299, 4300, 4301, - 4305, 4309, 4313, 4317, 4319, 4323, 4325, 4329, 4331, 4333, - 4335, 4337, 4341, 4345, 4349, 4351, 4353, 4357, 4361, 4365, - 4367, 4369, 4373, 4377, 4381, 4383, 4387, 4389, 4391, 4395, - 4399, 4403, 4407, 4411, 4413, 4414, 4415, 4418, 4419, 4421, - 4423, 4427, 4429, 4431, 4433, 4435, 4437, 4439, 4443, 4446, - 4450, 4452, 4456, 4458, 4460, 4462, 4466, 4469, 4473, 4477, - 4481, 4483, 4487, 4489, 4491, 4493, 4497, 4499, 4501, 4504, - 4506, 4510, 4513, 4514, 4515, 4518, 4521, 4522, 4525, 4526, - 4527, 4530, 4533, 4534, 4537, 4541, 4542, 4543, 4544, 4545, - - /* 1201-1300 */ - 4546, 4547, 4550, 4553, 4554, 4555, 4558, 4561, 4564, 4567, - 4568, 4571, 4574, 4575, 4578, 4581, 4582, 4585, 4586, 4588, - 4590, 4592, 4596, 4598, 4602, 4604, 4608, 4612, 4613, 4616, - 4619, 4622, 4623, 4624, 4625, 4626, 4629, 4632, 4633, 4636, - 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4648, 4649, 4650, - 4651, 4652, 4653, 4656, 4657, 4660, 4661, 4664, 4667, 4670, - 4671, 4674, 4675, 4676, 4677, 4678, 4681, 4682, 4683, 4684, - 4687, 4688, 4689, 4692, 4693, 4696, 4697, 4700, 4701, 4702, - 4703, 4704, 4707, 4708, 4711, 4712, 4715, 4716, 4717, 4718, - 4719, 4720, 4721, 4722, 4723, 4726, 4729, 4730, 4733, 4736, - - /* 1301-(NFLS+NFPL) */ - 4737, 4740, 4741, 4742, 4745, 4746, 4749, 4752, 4753 - }; - -/* Amplitude coefficients (microarcsec); indexed using the nc array. */ - static const double a[] = { - - /* 1-105 */ - -6844318.44, 9205236.26,1328.67,1538.18, 205833.11, - 153041.79, -3309.73, 853.32,2037.98, -2301.27, - 81.46, 120.56, -20.39, -15.22, 1.73, -1.61, -0.10, 0.11, - -0.02, -0.02, -523908.04, 573033.42,-544.75,-458.66, - 12814.01, 11714.49, 198.97,-290.91, 155.74,-143.27, - -2.75, -1.03, -1.27, -1.16, 0.00, -0.01, -90552.22, - 97846.69, 111.23, 137.41,2187.91,2024.68, 41.44, -51.26, - 26.92, -24.46, -0.46, -0.28, -0.22, -0.20, 82168.76, - -89618.24, -27.64, -29.05, -2004.36, -1837.32, - -36.07, 48.00, -24.43, 22.41, 0.47, 0.24, 0.20, 0.18, - 58707.02,7387.02, 470.05,-192.40, 164.33, -1312.21, - -179.73, -28.93, -17.36, -1.83, -0.50, 3.57, 0.00, 0.13, - -20557.78, 22438.42, -20.84, -17.40, 501.82, 459.68, - 59.20, -67.30, 6.08, -5.61, -1.36, -1.19, 28288.28, - -674.99, -34.69, 35.80, -15.07,-632.54, -11.19, 0.78, -8.41, - 0.17, 0.01, 0.07, -15406.85, 20069.50, 15.12, - - /* 106-219 */ - 31.80, 448.76, 344.50, -5.77, 1.41, 4.59, -5.02, 0.17, - 0.24, -11991.74, 12902.66, 32.46, 36.70, 288.49, - 268.14, 5.70, -7.06, 3.57, -3.23, -0.06, -0.04, - -8584.95, -9592.72, 4.42, -13.20,-214.50, 192.06, - 23.87, 29.83, 2.54, 2.40, 0.60, -0.48,5095.50, - -6918.22, 7.19, 3.92,-154.91,-113.94, 2.86, -1.04, - -1.52, 1.73, -0.07, -0.10, -4910.93, -5331.13, - 0.76, 0.40,-119.21, 109.81, 2.16, 3.20, 1.46, 1.33, - 0.04, -0.02, -6245.02,-123.48, -6.68, -8.20, -2.76, - 139.64, 2.71, 0.15, 1.86,2511.85, -3323.89, 1.07, - -0.90, -74.33, -56.17, 1.16, -0.01, -0.75, 0.83, -0.02, - -0.04,2307.58,3143.98, -7.52, 7.50, 70.31, -51.60, 1.46, - 0.16, -0.69, -0.79, 0.02, -0.05,2372.58,2554.51, 5.93, - -6.60, 57.12, -53.05, -0.96, -1.24, -0.71, -0.64, -0.01, - -2053.16,2636.13, 5.13, 7.80, 58.94, 45.91, -0.42, - -0.12, 0.61, -0.66, 0.02, 0.03, -1825.49, - - /* 220-339 */ - -2423.59, 1.23, -2.00, -54.19, 40.82, -1.07, -1.02, - 0.54, 0.61, -0.04, 0.04,2521.07,-122.28, -5.97, 2.90, - -2.73, -56.37, -0.82, 0.13, -0.75, -1534.09,1645.01, - 6.29, 6.80, 36.78, 34.30, 0.92, -1.25, 0.46, -0.41, - -0.02, -0.01,1898.27, 47.70, -0.72, 2.50, 1.07, -42.45, - -0.94, 0.02, -0.56, -1292.02, -1387.00, 0.00, - 0.00, -31.01, 28.89, 0.68, 0.00, 0.38, 0.35, -0.01, - -0.01, -1234.96,1323.81, 5.21, 5.90, 29.60, 27.61, - 0.74, -1.22, 0.37, -0.33, -0.02, -0.01,1137.48, - -1233.89, -0.04, -0.30, -27.59, -25.43, -0.61, 1.00, - -0.34, 0.31, 0.01, 0.01,-813.13, -1075.60, 0.40, - 0.30, -24.05, 18.18, -0.40, -0.01, 0.24, 0.27, -0.01, - 0.01,1163.22, -60.90, -2.94, 1.30, -1.36, -26.01, -0.58, - 0.07, -0.35,1029.70, -55.55, -2.63, 1.10, -1.25, -23.02, - -0.52, 0.06, -0.31,-556.26, 852.85, 3.16, -4.48, 19.06, - 12.44, -0.81, -0.27, 0.17, -0.21, 0.00, 0.02,-603.52, - - /* 340-467 */ - -800.34, 0.44, 0.10, -17.90, 13.49, -0.08, -0.01, 0.18, - 0.20, -0.01, 0.01,-628.24, 684.99, -0.64, -0.50, 15.32, - 14.05, 3.18, -4.19, 0.19, -0.17, -0.09, -0.07,-866.48, - -16.26, 0.52, -1.30, -0.36, 19.37, 0.43, -0.01, 0.26, - -512.37, 695.54, -1.47, -1.40, 15.55, 11.46, -0.16, 0.03, - 0.15, -0.17, 0.01, 0.01, 506.65, 643.75, 2.54, -2.62, - 14.40, -11.33, -0.77, -0.06, -0.15, -0.16, 0.00, 0.01, - 664.57, 16.81, -0.40, 1.00, 0.38, -14.86, -3.71, -0.09, - -0.20, 405.91, 522.11, 0.99, -1.50, 11.67, -9.08, -0.25, - -0.02, -0.12, -0.13,-305.78, 326.60, 1.75, 1.90, 7.30, - 6.84, 0.20, -0.04, 300.99,-325.03, -0.44, -0.50, -7.27, - -6.73, -1.01, 0.01, 0.00, 0.08, 0.00, 0.02, 438.51, - 10.47, -0.56, -0.20, 0.24, -9.81, -0.24, 0.01, -0.13, - -264.02, 335.24, 0.99, 1.40, 7.49, 5.90, -0.27, -0.02, - 284.09, 307.03, 0.32, -0.40, 6.87, -6.35, -0.99, -0.01, - -250.54, 327.11, 0.08, 0.40, 7.31, 5.60, -0.30, 230.72, - - /* 468-595 */ - -304.46, 0.08, -0.10, -6.81, -5.16, 0.27, 229.78, 304.17, - -0.60, 0.50, 6.80, -5.14, 0.33, 0.01, 256.30,-276.81, - -0.28, -0.40, -6.19, -5.73, -0.14, 0.01,-212.82, 269.45, - 0.84, 1.20, 6.02, 4.76, 0.14, -0.02, 196.64, 272.05, - -0.84, 0.90, 6.08, -4.40, 0.35, 0.02, 188.95, 272.22, - -0.12, 0.30, 6.09, -4.22, 0.34,-292.37, -5.10, -0.32, - -0.40, -0.11, 6.54, 0.14, 0.01, 161.79,-220.67, 0.24, - 0.10, -4.93, -3.62, -0.08, 261.54, -19.94, -0.95, 0.20, - -0.45, -5.85, -0.13, 0.02, 142.16,-190.79, 0.20, 0.10, - -4.27, -3.18, -0.07, 187.95, -4.11, -0.24, 0.30, -0.09, - -4.20, -0.09, 0.01, 0.00, 0.00, -79.08, 167.90, 0.04, - 0.00, 3.75, 1.77, 121.98, 131.04, -0.08, 0.10, 2.93, - -2.73, -0.06,-172.95, -8.11, -0.40, -0.20, -0.18, 3.87, - 0.09, 0.01,-160.15, -55.30, -14.04, 13.90, -1.23, 3.58, - 0.40, 0.31,-115.40, 123.20, 0.60, 0.70, 2.75, 2.58, - 0.08, -0.01,-168.26, -2.00, 0.20, -0.20, -0.04, 3.76, - - /* 596-723 */ - 0.08,-114.49, 123.20, 0.32, 0.40, 2.75, 2.56, 0.07, - -0.01, 112.14, 120.70, 0.28, -0.30, 2.70, -2.51, -0.07, - -0.01, 161.34, 4.03, 0.20, 0.20, 0.09, -3.61, -0.08, - 91.31, 126.64, -0.40, 0.40, 2.83, -2.04, -0.04, 0.01, - 105.29, 112.90, 0.44, -0.50, 2.52, -2.35, -0.07, -0.01, - 98.69,-106.20, -0.28, -0.30, -2.37, -2.21, -0.06, 0.01, - 86.74,-112.94, -0.08, -0.20, -2.53, -1.94, -0.05,-134.81, - 3.51, 0.20, -0.20, 0.08, 3.01, 0.07, 79.03, 107.31, - -0.24, 0.20, 2.40, -1.77, -0.04, 0.01, 132.81, -10.77, - -0.52, 0.10, -0.24, -2.97, -0.07, 0.01,-130.31, -0.90, - 0.04, 0.00, 0.00, 2.91, -78.56, 85.32, 0.00, 0.00, - 1.91, 1.76, 0.04, 0.00, 0.00, -41.53, 89.10, 0.02, - 0.00, 1.99, 0.93, 66.03, -71.00, -0.20, -0.20, -1.59, - -1.48, -0.04, 60.50, 64.70, 0.36, -0.40, 1.45, -1.35, - -0.04, -0.01, -52.27, -70.01, 0.00, 0.00, -1.57, 1.17, - 0.03, -52.95, 66.29, 0.32, 0.40, 1.48, 1.18, 0.04, - - /* 724-851 */ - -0.01, 51.02, 67.25, 0.00, 0.00, 1.50, -1.14, -0.03, - -55.66, -60.92, 0.16, -0.20, -1.36, 1.24, 0.03, -54.81, - -59.20, -0.08, 0.20, -1.32, 1.23, 0.03, 51.32, -55.60, - 0.00, 0.00, -1.24, -1.15, -0.03, 48.29, 51.80, 0.20, - -0.20, 1.16, -1.08, -0.03, -45.59, -49.00, -0.12, 0.10, - -1.10, 1.02, 0.03, 40.54, -52.69, -0.04, -0.10, -1.18, - -0.91, -0.02, -40.58, -49.51, -1.00, 1.00, -1.11, 0.91, - 0.04, 0.02, -43.76, 46.50, 0.36, 0.40, 1.04, 0.98, - 0.03, -0.01, 62.65, -5.00, -0.24, 0.00, -0.11, -1.40, - -0.03, 0.01, -38.57, 49.59, 0.08, 0.10, 1.11, 0.86, - 0.02, -33.22, -44.04, 0.08, -0.10, -0.98, 0.74, 0.02, - 37.15, -39.90, -0.12, -0.10, -0.89, -0.83, -0.02, 36.68, - -39.50, -0.04, -0.10, -0.88, -0.82, -0.02, -53.22, -3.91, - -0.20, 0.00, -0.09, 1.19, 0.03, 32.43, -42.19, -0.04, - -0.10, -0.94, -0.73, -0.02, -51.00, -2.30, -0.12, -0.10, - 0.00, 1.14, -29.53, -39.11, 0.04, 0.00, -0.87, 0.66, - - /* 852-979 */ - 0.02, 28.50, -38.92, -0.08, -0.10, -0.87, -0.64, -0.02, - 26.54, 36.95, -0.12, 0.10, 0.83, -0.59, -0.01, 26.54, - 34.59, 0.04, -0.10, 0.77, -0.59, -0.02, 28.35, -32.55, - -0.16, 0.20, -0.73, -0.63, -0.01, -28.00, 30.40, 0.00, - 0.00, 0.68, 0.63, 0.01, -27.61, 29.40, 0.20, 0.20, - 0.66, 0.62, 0.02, 40.33, 0.40, -0.04, 0.10, 0.00, - -0.90, -23.28, 31.61, -0.08, -0.10, 0.71, 0.52, 0.01, - 37.75, 0.80, 0.04, 0.10, 0.00, -0.84, 23.66, 25.80, - 0.00, 0.00, 0.58, -0.53, -0.01, 21.01, -27.91, 0.00, - 0.00, -0.62, -0.47, -0.01, -34.81, 2.89, 0.04, 0.00, - 0.00, 0.78, -23.49, -25.31, 0.00, 0.00, -0.57, 0.53, - 0.01, -23.47, 25.20, 0.16, 0.20, 0.56, 0.52, 0.02, - 19.58, 27.50, -0.12, 0.10, 0.62, -0.44, -0.01, -22.67, - -24.40, -0.08, 0.10, -0.55, 0.51, 0.01, -19.97, 25.00, - 0.12, 0.20, 0.56, 0.45, 0.01, 21.28, -22.80, -0.08, - -0.10, -0.51, -0.48, -0.01, -30.47, 0.91, 0.04, 0.00, - - /* 980-1107 */ - 0.00, 0.68, 18.58, 24.00, 0.04, -0.10, 0.54, -0.42, - -0.01, -18.02, 24.40, -0.04, -0.10, 0.55, 0.40, 0.01, - 17.74, 22.50, 0.08, -0.10, 0.50, -0.40, -0.01, -19.41, - 20.70, 0.08, 0.10, 0.46, 0.43, 0.01, -18.64, 20.11, - 0.00, 0.00, 0.45, 0.42, 0.01, -16.75, 21.60, 0.04, - 0.10, 0.48, 0.37, 0.01, -18.42, -20.00, 0.00, 0.00, - -0.45, 0.41, 0.01, -26.77, 1.41, 0.08, 0.00, 0.00, - 0.60, -26.17, -0.19, 0.00, 0.00, 0.00, 0.59, -15.52, - 20.51, 0.00, 0.00, 0.46, 0.35, 0.01, -25.42, -1.91, - -0.08, 0.00, -0.04, 0.57, 0.45, -17.42, 18.10, 0.00, - 0.00, 0.40, 0.39, 0.01, 16.39, -17.60, -0.08, -0.10, - -0.39, -0.37, -0.01, -14.37, 18.91, 0.00, 0.00, 0.42, - 0.32, 0.01, 23.39, -2.40, -0.12, 0.00, 0.00, -0.52, - 14.32, -18.50, -0.04, -0.10, -0.41, -0.32, -0.01, 15.69, - 17.08, 0.00, 0.00, 0.38, -0.35, -0.01, -22.99, 0.50, - 0.04, 0.00, 0.00, 0.51, 0.00, 0.00, 14.47, -17.60, - - /* 1108-1235 */ - -0.01, 0.00, -0.39, -0.32, -13.33, 18.40, -0.04, -0.10, - 0.41, 0.30, 22.47, -0.60, -0.04, 0.00, 0.00, -0.50, - -12.78, -17.41, 0.04, 0.00, -0.39, 0.29, 0.01, -14.10, - -15.31, 0.04, 0.00, -0.34, 0.32, 0.01, 11.98, 16.21, - -0.04, 0.00, 0.36, -0.27, -0.01, 19.65, -1.90, -0.08, - 0.00, 0.00, -0.44, 19.61, -1.50, -0.08, 0.00, 0.00, - -0.44, 13.41, -14.30, -0.04, -0.10, -0.32, -0.30, -0.01, - -13.29, 14.40, 0.00, 0.00, 0.32, 0.30, 0.01, 11.14, - -14.40, -0.04, 0.00, -0.32, -0.25, -0.01, 12.24, -13.38, - 0.04, 0.00, -0.30, -0.27, -0.01, 10.07, -13.81, 0.04, - 0.00, -0.31, -0.23, -0.01, 10.46, 13.10, 0.08, -0.10, - 0.29, -0.23, -0.01, 16.55, -1.71, -0.08, 0.00, 0.00, - -0.37, 9.75, -12.80, 0.00, 0.00, -0.29, -0.22, -0.01, - 9.11, 12.80, 0.00, 0.00, 0.29, -0.20, 0.00, 0.00, - -6.44, -13.80, 0.00, 0.00, -0.31, 0.14, -9.19, -12.00, - 0.00, 0.00, -0.27, 0.21, -10.30, 10.90, 0.08, 0.10, - - /* 1236-1363 */ - 0.24, 0.23, 0.01, 14.92, -0.80, -0.04, 0.00, 0.00, - -0.33, 10.02, -10.80, 0.00, 0.00, -0.24, -0.22, -0.01, - -9.75, 10.40, 0.04, 0.00, 0.23, 0.22, 0.01, 9.67, - -10.40, -0.04, 0.00, -0.23, -0.22, -0.01, -8.28, -11.20, - 0.04, 0.00, -0.25, 0.19, 13.32, -1.41, -0.08, 0.00, - 0.00, -0.30, 8.27, 10.50, 0.04, 0.00, 0.23, -0.19, - 0.00, 0.00, 13.13, 0.00, 0.00, 0.00, 0.00, -0.29, - -12.93, 0.70, 0.04, 0.00, 0.00, 0.29, 7.91, -10.20, - 0.00, 0.00, -0.23, -0.18, -7.84, -10.00, -0.04, 0.00, - -0.22, 0.18, 7.44, 9.60, 0.00, 0.00, 0.21, -0.17, - -7.64, 9.40, 0.08, 0.10, 0.21, 0.17, 0.01, -11.38, - 0.60, 0.04, 0.00, 0.00, 0.25, -7.48, 8.30, 0.00, - 0.00, 0.19, 0.17, -10.98, -0.20, 0.00, 0.00, 0.00, - 0.25, 10.98, 0.20, 0.00, 0.00, 0.00, -0.25, 7.40, - -7.90, -0.04, 0.00, -0.18, -0.17, -6.09, 8.40, -0.04, - 0.00, 0.19, 0.14, -6.94, -7.49, 0.00, 0.00, -0.17, - - /* 1364-1491 */ - 0.16, 6.92, 7.50, 0.04, 0.00, 0.17, -0.15, 6.20, - 8.09, 0.00, 0.00, 0.18, -0.14, -6.12, 7.80, 0.04, - 0.00, 0.17, 0.14, 5.85, -7.50, 0.00, 0.00, -0.17, - -0.13, -6.48, 6.90, 0.08, 0.10, 0.15, 0.14, 0.01, - 6.32, 6.90, 0.00, 0.00, 0.15, -0.14, 5.61, -7.20, - 0.00, 0.00, -0.16, -0.13, 9.07, 0.00, 0.00, 0.00, - 0.00, -0.20, 5.25, 6.90, 0.00, 0.00, 0.15, -0.12, - -8.47, -0.40, 0.00, 0.00, 0.00, 0.19, 6.32, -5.39, - -1.11, 1.10, -0.12, -0.14, 0.02, 0.02, 5.73, -6.10, - -0.04, 0.00, -0.14, -0.13, 4.70, 6.60, -0.04, 0.00, - 0.15, -0.11, -4.90, -6.40, 0.00, 0.00, -0.14, 0.11, - -5.33, 5.60, 0.04, 0.10, 0.13, 0.12, 0.01, -4.81, - 6.00, 0.04, 0.00, 0.13, 0.11, 5.13, 5.50, 0.04, - 0.00, 0.12, -0.11, 4.50, 5.90, 0.00, 0.00, 0.13, - -0.10, -4.22, 6.10, 0.00, 0.00, 0.14, -4.53, 5.70, - 0.00, 0.00, 0.13, 0.10, 4.18, 5.70, 0.00, 0.00, - - /* 1492-1619 */ - 0.13, -4.75, -5.19, 0.00, 0.00, -0.12, 0.11, -4.06, - 5.60, 0.00, 0.00, 0.13, -3.98, 5.60, -0.04, 0.00, - 0.13, 4.02, -5.40, 0.00, 0.00, -0.12, 4.49, -4.90, - -0.04, 0.00, -0.11, -0.10, -3.62, -5.40, -0.16, 0.20, - -0.12, 0.00, 0.01, 4.38, 4.80, 0.00, 0.00, 0.11, - -6.40, -0.10, 0.00, 0.00, 0.00, 0.14, -3.98, 5.00, - 0.04, 0.00, 0.11, -3.82, -5.00, 0.00, 0.00, -0.11, - -3.71, 5.07, 0.00, 0.00, 0.11, 4.14, 4.40, 0.00, - 0.00, 0.10, -6.01, -0.50, -0.04, 0.00, 0.00, 0.13, - -4.04, 4.39, 0.00, 0.00, 0.10, 3.45, -4.72, 0.00, - 0.00, -0.11, 3.31, 4.71, 0.00, 0.00, 0.11, 3.26, - -4.50, 0.00, 0.00, -0.10, -3.26, -4.50, 0.00, 0.00, - -0.10, -3.34, -4.40, 0.00, 0.00, -0.10, -3.74, -4.00, - 3.70, 4.00, 3.34, -4.30, 3.30, -4.30, -3.66, 3.90, - 0.04, 3.66, 3.90, 0.04, -3.62, -3.90, -3.61, 3.90, - -0.20, 5.30, 0.00, 0.00, 0.12, 3.06, 4.30, 3.30, - - /* 1620-1747 */ - 4.00, 0.40, 0.20, 3.10, 4.10, -3.06, 3.90, -3.30, - -3.60, -3.30, 3.36, 0.01, 3.14, 3.40, -4.57, -0.20, - 0.00, 0.00, 0.00, 0.10, -2.70, -3.60, 2.94, -3.20, - -2.90, 3.20, 2.47, -3.40, 2.55, -3.30, 2.80, -3.08, - 2.51, 3.30, -4.10, 0.30, -0.12, -0.10, 4.10, 0.20, - -2.74, 3.00, 2.46, 3.23, -3.66, 1.20, -0.20, 0.20, - 3.74, -0.40, -2.51, -2.80, -3.74, 2.27, -2.90, 0.00, - 0.00, -2.50, 2.70, -2.51, 2.60, -3.50, 0.20, 3.38, - -2.22, -2.50, 3.26, -0.40, 1.95, -2.60, 3.22, -0.40, - -0.04, -1.79, -2.60, 1.91, 2.50, 0.74, 3.05, -0.04, - 0.08, 2.11, -2.30, -2.11, 2.20, -1.87, -2.40, 2.03, - -2.20, -2.03, 2.20, 2.98, 0.00, 0.00, 2.98, -1.71, - 2.40, 2.94, -0.10, -0.12, 0.10, 1.67, 2.40, -1.79, - 2.30, -1.79, 2.20, -1.67, 2.20, 1.79, -2.00, 1.87, - -1.90, 1.63, -2.10, -1.59, 2.10, 1.55, -2.10, -1.55, - 2.10, -2.59, -0.20, -1.75, -1.90, -1.75, 1.90, -1.83, - - /* 1748-1875 */ - -1.80, 1.51, 2.00, -1.51, -2.00, 1.71, 1.80, 1.31, - 2.10, -1.43, 2.00, 1.43, 2.00, -2.43, -1.51, 1.90, - -1.47, 1.90, 2.39, 0.20, -2.39, 1.39, 1.90, 1.39, - -1.80, 1.47, -1.60, 1.47, -1.60, 1.43, -1.50, -1.31, - 1.60, 1.27, -1.60, -1.27, 1.60, 1.27, -1.60, 2.03, - 1.35, 1.50, -1.39, -1.40, 1.95, -0.20, -1.27, 1.49, - 1.19, 1.50, 1.27, 1.40, 1.15, 1.50, 1.87, -0.10, - -1.12, -1.50, 1.87, -1.11, -1.50, -1.11, -1.50, 0.00, - 0.00, 1.19, 1.40, 1.27, -1.30, -1.27, -1.30, -1.15, - 1.40, -1.23, 1.30, -1.23, -1.30, 1.22, -1.29, 1.07, - -1.40, 1.75, -0.20, -1.03, -1.40, -1.07, 1.20, -1.03, - 1.15, 1.07, 1.10, 1.51, -1.03, 1.10, 1.03, -1.10, - 0.00, 0.00, -1.03, -1.10, 0.91, -1.20, -0.88, -1.20, - -0.88, 1.20, -0.95, 1.10, -0.95, -1.10, 1.43, -1.39, - 0.95, -1.00, -0.95, 1.00, -0.80, 1.10, 0.91, -1.00, - -1.35, 0.88, 1.00, -0.83, 1.00, -0.91, 0.90, 0.91, - - /* 1876-2003 */ - 0.90, 0.88, -0.90, -0.76, -1.00, -0.76, 1.00, 0.76, - 1.00, -0.72, 1.00, 0.84, -0.90, 0.84, 0.90, 1.23, - 0.00, 0.00, -0.52, -1.10, -0.68, 1.00, 1.19, -0.20, - 1.19, 0.76, 0.90, 1.15, -0.10, 1.15, -0.10, 0.72, - -0.90, -1.15, -1.15, 0.68, 0.90, -0.68, 0.90, -1.11, - 0.00, 0.00, 0.20, 0.79, 0.80, -1.11, -0.10, 0.00, - 0.00, -0.48, -1.00, -0.76, -0.80, -0.72, -0.80, -1.07, - -0.10, 0.64, 0.80, -0.64, -0.80, 0.64, 0.80, 0.40, - 0.60, 0.52, -0.50, -0.60, -0.80, -0.71, 0.70, -0.99, - 0.99, 0.56, 0.80, -0.56, 0.80, 0.68, -0.70, 0.68, - 0.70, -0.95, -0.64, 0.70, 0.64, 0.70, -0.60, 0.70, - -0.60, -0.70, -0.91, -0.10, -0.51, 0.76, -0.91, -0.56, - 0.70, 0.88, 0.88, -0.63, -0.60, 0.55, -0.60, -0.80, - 0.80, -0.80, -0.52, 0.60, 0.52, 0.60, 0.52, -0.60, - -0.48, 0.60, 0.48, 0.60, 0.48, 0.60, -0.76, 0.44, - -0.60, 0.52, -0.50, -0.52, 0.50, 0.40, 0.60, -0.40, - - /* 2004-2131 */ - -0.60, 0.40, -0.60, 0.72, -0.72, -0.51, -0.50, -0.48, - 0.50, 0.48, -0.50, -0.48, 0.50, -0.48, 0.50, 0.48, - -0.50, -0.48, -0.50, -0.68, -0.68, 0.44, 0.50, -0.64, - -0.10, -0.64, -0.10, -0.40, 0.50, 0.40, 0.50, 0.40, - 0.50, 0.00, 0.00, -0.40, -0.50, -0.36, -0.50, 0.36, - -0.50, 0.60, -0.60, 0.40, -0.40, 0.40, 0.40, -0.40, - 0.40, -0.40, 0.40, -0.56, -0.56, 0.36, -0.40, -0.36, - 0.40, 0.36, -0.40, -0.36, -0.40, 0.36, 0.40, 0.36, - 0.40, -0.52, 0.52, 0.52, 0.32, 0.40, -0.32, 0.40, - -0.32, 0.40, -0.32, 0.40, 0.32, -0.40, -0.32, -0.40, - 0.32, -0.40, 0.28, -0.40, -0.28, 0.40, 0.28, -0.40, - 0.28, 0.40, 0.48, -0.48, 0.48, 0.36, -0.30, -0.36, - -0.30, 0.00, 0.00, 0.20, 0.40, -0.44, 0.44, -0.44, - -0.44, -0.44, -0.44, 0.32, -0.30, 0.32, 0.30, 0.24, - 0.30, -0.12, -0.10, -0.28, 0.30, 0.28, 0.30, 0.28, - 0.30, 0.28, -0.30, 0.28, -0.30, 0.28, -0.30, 0.28, - - /* 2132-2259 */ - 0.30, -0.28, 0.30, 0.40, 0.40, -0.24, 0.30, 0.24, - -0.30, 0.24, -0.30, -0.24, -0.30, 0.24, 0.30, 0.24, - -0.30, -0.24, 0.30, 0.24, -0.30, -0.24, -0.30, 0.24, - -0.30, 0.24, 0.30, -0.24, 0.30, -0.24, 0.30, 0.20, - -0.30, 0.20, -0.30, 0.20, -0.30, 0.20, 0.30, 0.20, - -0.30, 0.20, -0.30, 0.20, 0.30, 0.20, 0.30, -0.20, - -0.30, 0.20, -0.30, 0.20, -0.30, -0.36, -0.36, -0.36, - -0.04, 0.30, 0.12, -0.10, -0.32, -0.24, 0.20, 0.24, - 0.20, 0.20, -0.20, -0.20, -0.20, -0.20, -0.20, 0.20, - 0.20, 0.20, -0.20, 0.20, 0.20, 0.20, 0.20, -0.20, - -0.20, 0.00, 0.00, -0.20, -0.20, -0.20, 0.20, -0.20, - 0.20, 0.20, -0.20, -0.20, -0.20, 0.20, 0.20, 0.20, - 0.20, 0.20, -0.20, 0.20, -0.20, 0.28, 0.28, 0.28, - 0.28, 0.28, 0.28, -0.28, 0.28, 0.12, 0.00, 0.24, - 0.16, -0.20, 0.16, -0.20, 0.16, -0.20, 0.16, 0.20, - -0.16, 0.20, 0.16, 0.20, -0.16, 0.20, -0.16, 0.20, - - /* 2260-2387 */ - -0.16, 0.20, 0.16, -0.20, 0.16, 0.20, 0.16, -0.20, - -0.16, 0.20, -0.16, -0.20, -0.16, 0.20, 0.16, 0.20, - 0.16, -0.20, 0.16, -0.20, 0.16, 0.20, 0.16, 0.20, - 0.16, 0.20, -0.16, -0.20, 0.16, 0.20, -0.16, 0.20, - 0.16, 0.20, -0.16, -0.20, 0.16, -0.20, 0.16, -0.20, - -0.16, -0.20, 0.24, -0.24, -0.24, 0.24, 0.24, 0.12, - 0.20, 0.12, 0.20, -0.12, -0.20, 0.12, -0.20, 0.12, - -0.20, -0.12, 0.20, -0.12, 0.20, -0.12, -0.20, 0.12, - 0.20, 0.12, 0.20, 0.12, -0.20, -0.12, 0.20, 0.12, - -0.20, -0.12, 0.20, 0.12, 0.20, 0.00, 0.00, -0.12, - 0.20, -0.12, 0.20, 0.12, -0.20, -0.12, 0.20, 0.12, - 0.20, 0.00, -0.21, -0.20, 0.00, 0.00, 0.20, -0.20, - -0.20, -0.20, 0.20, -0.16, -0.10, 0.00, 0.17, 0.16, - 0.16, 0.16, 0.16, -0.16, 0.16, 0.16, -0.16, 0.16, - -0.16, 0.16, 0.12, 0.10, 0.12, -0.10, -0.12, 0.10, - -0.12, 0.10, 0.12, -0.10, -0.12, 0.12, -0.12, 0.12, - - /* 2388-2515 */ - -0.12, 0.12, -0.12, -0.12, -0.12, -0.12, -0.12, -0.12, - -0.12, 0.12, 0.12, 0.12, 0.12, -0.12, -0.12, 0.12, - 0.12, 0.12, -0.12, 0.12, -0.12, -0.12, -0.12, 0.12, - -0.12, -0.12, 0.12, 0.00, 0.11, 0.11,-122.67, 164.70, - 203.78, 273.50, 3.58, 2.74, 6.18, -4.56, 0.00, -0.04, - 0.00, -0.07, 57.44, -77.10, 95.82, 128.60, -1.77, -1.28, - 2.85, -2.14, 82.14, 89.50, 0.00, 0.00, 2.00, -1.84, - -0.04, 47.73, -64.10, 23.79, 31.90, -1.45, -1.07, 0.69, - -0.53, -46.38, 50.50, 0.00, 0.00, 1.13, 1.04, 0.02, - -18.38, 0.00, 63.80, 0.00, 0.00, 0.41, 0.00, -1.43, - 59.07, 0.00, 0.00, 0.00, 0.00, -1.32, 57.28, 0.00, - 0.00, 0.00, 0.00, -1.28, -48.65, 0.00, -1.15, 0.00, - 0.00, 1.09, 0.00, 0.03, -18.30, 24.60, -17.30, -23.20, - 0.56, 0.41, -0.51, 0.39, -16.91, 26.90, 8.43, 13.30, - 0.60, 0.38, 0.31, -0.19, 1.23, -1.70, -19.13, -25.70, - -0.03, -0.03, -0.58, 0.43, -0.72, 0.90, -17.34, -23.30, - - /* 2516-2643 */ - 0.03, 0.02, -0.52, 0.39, -19.49, -21.30, 0.00, 0.00, - -0.48, 0.44, 0.01, 20.57, -20.10, 0.64, 0.70, -0.45, - -0.46, 0.00, -0.01, 4.89, 5.90, -16.55, 19.90, 0.14, - -0.11, 0.44, 0.37, 18.22, 19.80, 0.00, 0.00, 0.44, - -0.41, -0.01, 4.89, -5.30, -16.51, -18.00, -0.11, -0.11, - -0.41, 0.37, -17.86, 0.00, 17.10, 0.00, 0.00, 0.40, - 0.00, -0.38, 0.32, 0.00, 24.42, 0.00, 0.00, -0.01, - 0.00, -0.55, -23.79, 0.00, 0.00, 0.00, 0.00, 0.53, - 14.72, -16.00, -0.32, 0.00, -0.36, -0.33, -0.01, 0.01, - 3.34, -4.50, 11.86, 15.90, -0.11, -0.07, 0.35, -0.27, - -3.26, 4.40, 11.62, 15.60, 0.09, 0.07, 0.35, -0.26, - -19.53, 0.00, 5.09, 0.00, 0.00, 0.44, 0.00, -0.11, - -13.48, 14.70, 0.00, 0.00, 0.33, 0.30, 0.01, 10.86, - -14.60, 3.18, 4.30, -0.33, -0.24, 0.09, -0.07, -11.30, - -15.10, 0.00, 0.00, -0.34, 0.25, 0.01, 2.03, -2.70, - 10.82, 14.50, -0.07, -0.05, 0.32, -0.24, 17.46, 0.00, - - /* 2644-2771 */ - 0.00, 0.00, 0.00, -0.39, 16.43, 0.00, 0.52, 0.00, - 0.00, -0.37, 0.00, -0.01, 9.35, 0.00, 13.29, 0.00, - 0.00, -0.21, 0.00, -0.30, -10.42, 11.40, 0.00, 0.00, - 0.25, 0.23, 0.01, 0.44, 0.50, -10.38, 11.30, 0.02, - -0.01, 0.25, 0.23, -14.64, 0.00, 0.00, 0.00, 0.00, - 0.33, 0.56, 0.80, -8.67, 11.70, 0.02, -0.01, 0.26, - 0.19, 13.88, 0.00, -2.47, 0.00, 0.00, -0.31, 0.00, - 0.06, -1.99, 2.70, 7.72, 10.30, 0.06, 0.04, 0.23, - -0.17, -0.20, 0.00, 13.05, 0.00, 0.00, 0.00, 0.00, - -0.29, 6.92, -9.30, 3.34, 4.50, -0.21, -0.15, 0.10, - -0.07, -6.60, 0.00, 10.70, 0.00, 0.00, 0.15, 0.00, - -0.24, -8.04, -8.70, 0.00, 0.00, -0.19, 0.18, -10.58, - 0.00, -3.10, 0.00, 0.00, 0.24, 0.00, 0.07, -7.32, - 8.00, -0.12, -0.10, 0.18, 0.16, 1.63, 1.70, 6.96, - -7.60, 0.03, -0.04, -0.17, -0.16, -3.62, 0.00, 9.86, - 0.00, 0.00, 0.08, 0.00, -0.22, 0.20, -0.20, -6.88, - - /* 2772-2899 */ - -7.50, 0.00, 0.00, -0.17, 0.15, -8.99, 0.00, 4.02, - 0.00, 0.00, 0.20, 0.00, -0.09, -1.07, 1.40, -5.69, - -7.70, 0.03, 0.02, -0.17, 0.13, 6.48, -7.20, -0.48, - -0.50, -0.16, -0.14, -0.01, 0.01, 5.57, -7.50, 1.07, - 1.40, -0.17, -0.12, 0.03, -0.02, 8.71, 0.00, 3.54, - 0.00, 0.00, -0.19, 0.00, -0.08, 0.40, 0.00, 9.27, - 0.00, 0.00, -0.01, 0.00, -0.21, -6.13, 6.70, -1.19, - -1.30, 0.15, 0.14, -0.03, 0.03, 5.21, -5.70, -2.51, - -2.60, -0.13, -0.12, -0.06, 0.06, 5.69, -6.20, -0.12, - -0.10, -0.14, -0.13, -0.01, 2.03, -2.70, 4.53, 6.10, - -0.06, -0.05, 0.14, -0.10, 5.01, 5.50, -2.51, 2.70, - 0.12, -0.11, 0.06, 0.06, -1.91, 2.60, -4.38, -5.90, - 0.06, 0.04, -0.13, 0.10, 4.65, -6.30, 0.00, 0.00, - -0.14, -0.10, -5.29, 5.70, 0.00, 0.00, 0.13, 0.12, - -2.23, -4.00, -4.65, 4.20, -0.09, 0.05, 0.10, 0.10, - -4.53, 6.10, 0.00, 0.00, 0.14, 0.10, 2.47, 2.70, - - /* 2900-3027 */ - -4.46, 4.90, 0.06, -0.06, 0.11, 0.10, -5.05, 5.50, - 0.84, 0.90, 0.12, 0.11, 0.02, -0.02, 4.97, -5.40, - -1.71, 0.00, -0.12, -0.11, 0.00, 0.04, -0.99, -1.30, - 4.22, -5.70, -0.03, 0.02, -0.13, -0.09, 0.99, 1.40, - 4.22, -5.60, 0.03, -0.02, -0.13, -0.09, -4.69, -5.20, - 0.00, 0.00, -0.12, 0.10, -3.42, 0.00, 6.09, 0.00, - 0.00, 0.08, 0.00, -0.14, -4.65, -5.10, 0.00, 0.00, - -0.11, 0.10, 0.00, 0.00, -4.53, -5.00, 0.00, 0.00, - -0.11, 0.10, -2.43, -2.70, -3.82, 4.20, -0.06, 0.05, - 0.10, 0.09, 0.00, 0.00, -4.53, 4.90, 0.00, 0.00, - 0.11, 0.10, -4.49, -4.90, 0.00, 0.00, -0.11, 0.10, - 2.67, -2.90, -3.62, -3.90, -0.06, -0.06, -0.09, 0.08, - 3.94, -5.30, 0.00, 0.00, -0.12, -3.38, 3.70, -2.78, - -3.10, 0.08, 0.08, -0.07, 0.06, 3.18, -3.50, -2.82, - -3.10, -0.08, -0.07, -0.07, 0.06, -5.77, 0.00, 1.87, - 0.00, 0.00, 0.13, 0.00, -0.04, 3.54, -4.80, -0.64, - - /* 3028-3155 */ - -0.90, -0.11, 0.00, -0.02, -3.50, -4.70, 0.68, -0.90, - -0.11, 0.00, -0.02, 5.49, 0.00, 0.00, 0.00, 0.00, - -0.12, 1.83, -2.50, 2.63, 3.50, -0.06, 0.00, 0.08, - 3.02, -4.10, 0.68, 0.90, -0.09, 0.00, 0.02, 0.00, - 0.00, 5.21, 0.00, 0.00, 0.00, 0.00, -0.12, -3.54, - 3.80, 2.70, 3.60, -1.35, 1.80, 0.08, 0.00, 0.04, - -2.90, 3.90, 0.68, 0.90, 0.09, 0.00, 0.02, 0.80, - -1.10, -2.78, -3.70, -0.02, 0.00, -0.08, 4.10, 0.00, - -2.39, 0.00, 0.00, -0.09, 0.00, 0.05, -1.59, 2.10, - 2.27, 3.00, 0.05, 0.00, 0.07, -2.63, 3.50, -0.48, - -0.60, -2.94, -3.20, -2.94, 3.20, 2.27, -3.00, -1.11, - -1.50, -0.07, 0.00, -0.03, -0.56, -0.80, -2.35, 3.10, - 0.00, -0.60, -3.42, 1.90, -0.12, -0.10, 2.63, -2.90, - 2.51, 2.80, -0.64, 0.70, -0.48, -0.60, 2.19, -2.90, - 0.24, -0.30, 2.15, 2.90, 2.15, -2.90, 0.52, 0.70, - 2.07, -2.80, -3.10, 0.00, 1.79, 0.00, 0.00, 0.07, - - /* 3156-3283 */ - 0.00, -0.04, 0.88, 0.00, -3.46, 2.11, 2.80, -0.36, - 0.50, 3.54, -0.20, -3.50, -1.39, 1.50, -1.91, -2.10, - -1.47, 2.00, 1.39, 1.90, 2.07, -2.30, 0.91, 1.00, - 1.99, -2.70, 3.30, 0.00, 0.60, -0.44, -0.70, -1.95, - 2.60, 2.15, -2.40, -0.60, -0.70, 3.30, 0.84, 0.00, - -3.10, -3.10, 0.00, -0.72, -0.32, 0.40, -1.87, -2.50, - 1.87, -2.50, 0.32, 0.40, -0.24, 0.30, -1.87, -2.50, - -0.24, -0.30, 1.87, -2.50, -2.70, 0.00, 1.55, 2.03, - 2.20, -2.98, -1.99, -2.20, 0.12, -0.10, -0.40, 0.50, - 1.59, 2.10, 0.00, 0.00, -1.79, 2.00, -1.03, 1.40, - -1.15, -1.60, 0.32, 0.50, 1.39, -1.90, 2.35, -1.27, - 1.70, 0.60, 0.80, -0.32, -0.40, 1.35, -1.80, 0.44, - 0.00, 2.23, -0.84, 0.90, -1.27, -1.40, -1.47, 1.60, - -0.28, -0.30, -0.28, 0.40, -1.27, -1.70, 0.28, -0.40, - -1.43, -1.50, 0.00, 0.00, -1.27, -1.70, 2.11, -0.32, - -0.40, -1.23, 1.60, 1.19, -1.30, -0.72, -0.80, 0.72, - - /* 3284-3411 */ - -0.80, -1.15, -1.30, -1.35, -1.50, -1.19, -1.60, -0.12, - 0.20, 1.79, 0.00, -0.88, -0.28, 0.40, 1.11, 1.50, - -1.83, 0.00, 0.56, -0.12, 0.10, -1.27, -1.40, 0.00, - 0.00, 1.15, 1.50, -0.12, 0.20, 1.11, 1.50, 0.36, - -0.50, -1.07, -1.40, -1.11, 1.50, 1.67, 0.00, 0.80, - -1.11, 0.00, 1.43, 1.23, -1.30, -0.24, -1.19, -1.30, - -0.24, 0.20, -0.44, -0.90, -0.95, 1.10, 1.07, -1.40, - 1.15, -1.30, 1.03, -1.10, -0.56, -0.60, -0.68, 0.90, - -0.76, -1.00, -0.24, -0.30, 0.95, -1.30, 0.56, 0.70, - 0.84, -1.10, -0.56, 0.00, -1.55, 0.91, -1.30, 0.28, - 0.30, 0.16, -0.20, 0.95, 1.30, 0.40, -0.50, -0.88, - -1.20, 0.95, -1.10, -0.48, -0.50, 0.00, 0.00, -1.07, - 1.20, 0.44, -0.50, 0.95, 1.10, 0.00, 0.00, 0.92, - -1.30, 0.95, 1.00, -0.52, 0.60, 1.59, 0.24, -0.40, - 0.91, 1.20, 0.84, -1.10, -0.44, -0.60, 0.84, 1.10, - -0.44, 0.60, -0.44, 0.60, -0.84, -1.10, -0.80, 0.00, - - /* 3412-3539 */ - 1.35, 0.76, 0.20, -0.91, -1.00, 0.20, -0.30, -0.91, - -1.20, -0.95, 1.00, -0.48, -0.50, 0.88, 1.00, 0.48, - -0.50, -0.95, -1.10, 0.20, -0.20, -0.99, 1.10, -0.84, - 1.10, -0.24, -0.30, 0.20, -0.30, 0.84, 1.10, -1.39, - 0.00, -0.28, -0.16, 0.20, 0.84, 1.10, 0.00, 0.00, - 1.39, 0.00, 0.00, -0.95, 1.00, 1.35, -0.99, 0.00, - 0.88, -0.52, 0.00, -1.19, 0.20, 0.20, 0.76, -1.00, - 0.00, 0.00, 0.76, 1.00, 0.00, 0.00, 0.76, 1.00, - -0.76, 1.00, 0.00, 0.00, 1.23, 0.76, 0.80, -0.32, - 0.40, -0.72, 0.80, -0.40, -0.40, 0.00, 0.00, -0.80, - -0.90, -0.68, 0.90, -0.16, -0.20, -0.16, -0.20, 0.68, - -0.90, -0.36, 0.50, -0.56, -0.80, 0.72, -0.90, 0.44, - -0.60, -0.48, -0.70, -0.16, 0.00, -1.11, 0.32, 0.00, - -1.07, 0.60, -0.80, -0.28, -0.40, -0.64, 0.00, 0.91, - 1.11, 0.64, -0.90, 0.76, -0.80, 0.00, 0.00, -0.76, - -0.80, 1.03, 0.00, -0.36, -0.64, -0.70, 0.36, -0.40, - - /* 3540-3667 */ - 1.07, 0.36, -0.50, -0.52, -0.70, 0.60, 0.00, 0.88, - 0.95, 0.00, 0.48, 0.16, -0.20, 0.60, 0.80, 0.16, - -0.20, -0.60, -0.80, 0.00, -1.00, 0.12, 0.20, 0.16, - -0.20, 0.68, 0.70, 0.59, -0.80, -0.99, -0.56, -0.60, - 0.36, -0.40, -0.68, -0.70, -0.68, -0.70, -0.36, -0.50, - -0.44, 0.60, 0.64, 0.70, -0.12, 0.10, -0.52, 0.60, - 0.36, 0.40, 0.00, 0.00, 0.95, -0.84, 0.00, 0.44, - 0.56, 0.60, 0.32, -0.30, 0.00, 0.00, 0.60, 0.70, - 0.00, 0.00, 0.60, 0.70, -0.12, -0.20, 0.52, -0.70, - 0.00, 0.00, 0.56, 0.70, -0.12, 0.10, -0.52, -0.70, - 0.00, 0.00, 0.88, -0.76, 0.00, -0.44, 0.00, 0.00, - -0.52, -0.70, 0.52, -0.70, 0.36, -0.40, -0.44, -0.50, - 0.00, 0.00, 0.60, 0.60, 0.84, 0.00, 0.12, -0.24, - 0.00, 0.80, -0.56, 0.60, -0.32, -0.30, 0.48, -0.50, - 0.28, -0.30, -0.48, -0.50, 0.12, 0.20, 0.48, -0.60, - 0.48, 0.60, -0.12, 0.20, 0.24, 0.00, 0.76, -0.52, - - /* 3668-3795 */ - -0.60, -0.52, 0.60, 0.48, -0.50, -0.24, -0.30, 0.12, - -0.10, 0.48, 0.60, 0.52, -0.20, 0.36, 0.40, -0.44, - 0.50, -0.24, -0.30, -0.48, -0.60, -0.44, -0.60, -0.12, - 0.10, 0.76, 0.76, 0.20, -0.20, 0.48, 0.50, 0.40, - -0.50, -0.24, -0.30, 0.44, -0.60, 0.44, -0.60, 0.36, - 0.00, -0.64, 0.72, 0.00, -0.12, 0.00, -0.10, -0.40, - -0.60, -0.20, -0.20, -0.44, 0.50, -0.44, 0.50, 0.20, - 0.20, -0.44, -0.50, 0.20, -0.20, -0.20, 0.20, -0.44, - -0.50, 0.64, 0.00, 0.32, -0.36, 0.50, -0.20, -0.30, - 0.12, -0.10, 0.48, 0.50, -0.12, 0.30, -0.36, -0.50, - 0.00, 0.00, 0.48, 0.50, -0.48, 0.50, 0.68, 0.00, - -0.12, 0.56, -0.40, 0.44, -0.50, -0.12, -0.10, 0.24, - 0.30, -0.40, 0.40, 0.64, 0.00, -0.24, 0.64, 0.00, - -0.20, 0.00, 0.00, 0.44, -0.50, 0.44, 0.50, -0.12, - 0.20, -0.36, -0.50, 0.12, 0.00, 0.64, -0.40, 0.50, - 0.00, 0.10, 0.00, 0.00, -0.40, 0.50, 0.00, 0.00, - - /* 3796-3923 */ - -0.40, -0.50, 0.56, 0.00, 0.28, 0.00, 0.10, 0.36, - 0.50, 0.00, -0.10, 0.36, -0.50, 0.36, 0.50, 0.00, - -0.10, 0.24, -0.20, -0.36, -0.40, 0.16, 0.20, 0.40, - -0.40, 0.00, 0.00, -0.36, -0.50, -0.36, -0.50, -0.32, - -0.50, -0.12, 0.10, 0.20, 0.20, -0.36, 0.40, -0.60, - 0.60, 0.28, 0.00, 0.52, 0.12, -0.10, 0.40, 0.40, - 0.00, -0.50, 0.20, -0.20, -0.32, 0.40, 0.16, 0.20, - -0.16, 0.20, 0.32, 0.40, 0.56, 0.00, -0.12, 0.32, - -0.40, -0.16, -0.20, 0.00, 0.00, 0.40, 0.40, -0.40, - -0.40, -0.40, 0.40, -0.36, 0.40, 0.12, 0.10, 0.00, - 0.10, 0.36, 0.40, 0.00, -0.10, 0.36, 0.40, -0.36, - 0.40, 0.00, 0.10, 0.32, 0.00, 0.44, 0.12, 0.20, - 0.28, -0.40, 0.00, 0.00, 0.36, 0.40, 0.32, -0.40, - -0.16, 0.12, 0.10, 0.32, -0.40, 0.20, 0.30, -0.24, - 0.30, 0.00, 0.10, 0.32, 0.40, 0.00, -0.10, -0.32, - -0.40, -0.32, 0.40, 0.00, 0.10, -0.52, -0.52, 0.52, - - /* 3924-4051 */ - 0.32, -0.40, 0.00, 0.00, 0.32, 0.40, 0.32, -0.40, - 0.00, 0.00, -0.32, -0.40, -0.32, 0.40, 0.32, 0.40, - 0.00, 0.00, 0.32, 0.40, 0.00, 0.00, -0.32, -0.40, - 0.00, 0.00, 0.32, 0.40, 0.16, 0.20, 0.32, -0.30, - -0.16, 0.00, -0.48, -0.20, 0.20, -0.28, -0.30, 0.28, - -0.40, 0.00, 0.00, 0.28, -0.40, 0.00, 0.00, 0.28, - -0.40, 0.00, 0.00, -0.28, -0.40, 0.28, 0.40, -0.28, - -0.40, -0.48, -0.20, 0.20, 0.24, 0.30, 0.44, 0.00, - 0.16, 0.24, 0.30, 0.16, -0.20, 0.24, 0.30, -0.12, - 0.20, 0.20, 0.30, -0.16, 0.20, 0.00, 0.00, 0.44, - -0.32, 0.30, 0.24, 0.00, -0.36, 0.36, 0.00, 0.24, - 0.12, -0.20, 0.20, 0.30, -0.12, 0.00, -0.28, 0.30, - -0.24, 0.30, 0.12, 0.10, -0.28, -0.30, -0.28, 0.30, - 0.00, 0.00, -0.28, -0.30, 0.00, 0.00, -0.28, -0.30, - 0.00, 0.00, 0.28, 0.30, 0.00, 0.00, -0.28, -0.30, - -0.28, 0.30, 0.00, 0.00, -0.28, -0.30, 0.00, 0.00, - - /* 4052-4179 */ - 0.28, 0.30, 0.00, 0.00, -0.28, 0.30, 0.28, -0.30, - -0.28, 0.30, 0.40, 0.40, -0.24, 0.30, 0.00, -0.10, - 0.16, 0.00, 0.36, -0.20, 0.30, -0.12, -0.10, -0.24, - -0.30, 0.00, 0.00, -0.24, 0.30, -0.24, 0.30, 0.00, - 0.00, -0.24, 0.30, -0.24, 0.30, 0.24, -0.30, 0.00, - 0.00, 0.24, -0.30, 0.00, 0.00, 0.24, 0.30, 0.24, - -0.30, 0.24, 0.30, -0.24, 0.30, -0.24, 0.30, -0.20, - 0.20, -0.16, -0.20, 0.00, 0.00, -0.32, 0.20, 0.00, - 0.10, 0.20, -0.30, 0.20, -0.20, 0.12, 0.20, -0.16, - 0.20, 0.16, 0.20, 0.20, 0.30, 0.20, 0.30, 0.00, - 0.00, -0.20, 0.30, 0.00, 0.00, 0.20, 0.30, -0.20, - -0.30, -0.20, -0.30, 0.20, -0.30, 0.00, 0.00, 0.20, - 0.30, 0.00, 0.00, 0.20, 0.30, 0.00, 0.00, 0.20, - 0.30, 0.00, 0.00, 0.20, 0.30, 0.00, 0.00, 0.20, - -0.30, 0.00, 0.00, -0.20, -0.30, 0.00, 0.00, -0.20, - 0.30, 0.00, 0.00, -0.20, 0.30, 0.00, 0.00, 0.36, - - /* 4180-4307 */ - 0.00, 0.00, 0.36, 0.12, 0.10, -0.24, 0.20, 0.12, - -0.20, -0.16, -0.20, -0.13, 0.10, 0.22, 0.21, 0.20, - 0.00, -0.28, 0.32, 0.00, -0.12, -0.20, -0.20, 0.12, - -0.10, 0.12, 0.10, -0.20, 0.20, 0.00, 0.00, -0.32, - 0.32, 0.00, 0.00, 0.32, 0.32, 0.00, 0.00, -0.24, - -0.20, 0.24, 0.20, 0.20, 0.00, -0.24, 0.00, 0.00, - -0.24, -0.20, 0.00, 0.00, 0.24, 0.20, -0.24, -0.20, - 0.00, 0.00, -0.24, 0.20, 0.16, -0.20, 0.12, 0.10, - 0.20, 0.20, 0.00, -0.10, -0.12, 0.10, -0.16, -0.20, - -0.12, -0.10, -0.16, 0.20, 0.20, 0.20, 0.00, 0.00, - -0.20, 0.20, -0.20, 0.20, -0.20, 0.20, -0.20, 0.20, - 0.20, -0.20, -0.20, -0.20, 0.00, 0.00, -0.20, 0.20, - 0.20, 0.00, -0.20, 0.00, 0.00, -0.20, 0.20, -0.20, - 0.20, -0.20, -0.20, -0.20, -0.20, 0.00, 0.00, 0.20, - 0.20, 0.20, 0.20, 0.12, -0.20, -0.12, -0.10, 0.28, - -0.28, 0.16, -0.20, 0.00, -0.10, 0.00, 0.10, -0.16, - - /* 4308-4435 */ - 0.20, 0.00, -0.10, -0.16, -0.20, 0.00, -0.10, 0.16, - -0.20, 0.16, -0.20, 0.00, 0.00, 0.16, 0.20, -0.16, - 0.20, 0.00, 0.00, 0.16, 0.20, 0.16, -0.20, 0.16, - -0.20, -0.16, 0.20, 0.16, -0.20, 0.00, 0.00, 0.16, - 0.20, 0.00, 0.00, 0.16, 0.20, 0.00, 0.00, -0.16, - -0.20, 0.16, -0.20, -0.16, -0.20, 0.00, 0.00, -0.16, - -0.20, 0.00, 0.00, -0.16, 0.20, 0.00, 0.00, 0.16, - -0.20, 0.16, 0.20, 0.16, 0.20, 0.00, 0.00, -0.16, - -0.20, 0.00, 0.00, -0.16, -0.20, 0.00, 0.00, 0.16, - 0.20, 0.16, 0.20, 0.00, 0.00, 0.16, 0.20, 0.16, - -0.20, 0.16, 0.20, 0.00, 0.00, -0.16, 0.20, 0.00, - 0.10, 0.12, -0.20, 0.12, -0.20, 0.00, -0.10, 0.00, - -0.10, 0.12, 0.20, 0.00, -0.10, -0.12, 0.20, -0.15, - 0.20, -0.24, 0.24, 0.00, 0.00, 0.24, 0.24, 0.12, - -0.20, -0.12, -0.20, 0.00, 0.00, 0.12, 0.20, 0.12, - -0.20, 0.12, 0.20, 0.12, 0.20, 0.12, 0.20, 0.12, - - /* 4436-4563 */ - -0.20, -0.12, 0.20, 0.00, 0.00, 0.12, 0.20, 0.12, - 0.00, -0.20, 0.00, 0.00, -0.12, -0.20, 0.12, -0.20, - 0.00, 0.00, 0.12, 0.20, -0.12, 0.20, -0.12, 0.20, - 0.12, -0.20, 0.00, 0.00, 0.12, 0.20, 0.20, 0.00, - 0.12, 0.00, 0.00, -0.12, 0.20, 0.00, 0.00, -0.12, - -0.20, 0.00, 0.00, -0.12, -0.20, -0.12, -0.20, 0.00, - 0.00, 0.12, -0.20, 0.12, -0.20, 0.12, 0.20, -0.12, - -0.20, 0.00, 0.00, 0.12, -0.20, 0.12, -0.20, 0.12, - 0.20, 0.12, 0.00, 0.20, -0.12, -0.20, 0.00, 0.00, - 0.12, 0.20, -0.16, 0.00, 0.16, -0.20, 0.20, 0.00, - 0.00, -0.20, 0.00, 0.00, -0.20, 0.20, 0.00, 0.00, - 0.20, 0.20, -0.20, 0.00, 0.00, -0.20, 0.12, 0.00, - -0.16, 0.20, 0.00, 0.00, 0.20, 0.12, -0.10, 0.00, - 0.10, 0.16, -0.16, -0.16, -0.16, -0.16, -0.16, 0.00, - 0.00, -0.16, 0.00, 0.00, -0.16, -0.16, -0.16, 0.00, - 0.00, -0.16, 0.00, 0.00, 0.16, 0.00, 0.00, 0.16, - - /* 4564-4691 */ - 0.00, 0.00, 0.16, 0.16, 0.00, 0.00, -0.16, 0.00, - 0.00, -0.16, -0.16, 0.00, 0.00, 0.16, 0.00, 0.00, - -0.16, -0.16, 0.00, 0.00, -0.16, -0.16, 0.12, 0.10, - 0.12, -0.10, 0.12, 0.10, 0.00, 0.00, 0.12, 0.10, - -0.12, 0.10, 0.00, 0.00, 0.12, 0.10, 0.12, -0.10, - 0.00, 0.00, -0.12, -0.10, 0.00, 0.00, 0.12, 0.10, - 0.12, 0.00, 0.00, 0.12, 0.00, 0.00, -0.12, 0.00, - 0.00, 0.12, 0.12, 0.12, 0.12, 0.12, 0.00, 0.00, - 0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, 0.12, - 0.00, 0.00, 0.12, -0.12, -0.12, 0.12, 0.12, -0.12, - -0.12, 0.00, 0.00, 0.12, -0.12, 0.12, 0.12, -0.12, - -0.12, 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, -0.12, - 0.12, 0.00, 0.00, 0.12, 0.00, 0.00, 0.12, 0.00, - 0.00, 0.12, -0.12, 0.00, 0.00, -0.12, 0.12, -0.12, - -0.12, 0.12, 0.00, 0.00, 0.12, 0.12, 0.12, -0.12, - 0.00, 0.00, -0.12, -0.12, -0.12, 0.00, 0.00, -0.12, - - /* 4692-NA */ - -0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, -0.12, - -0.12, -0.12, -0.12, 0.12, 0.00, 0.00, 0.12, -0.12, - 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, 0.12, -0.12, - -0.12, -0.12, -0.12, 0.12, 0.12, -0.12, -0.12, 0.00, - 0.00, -0.12, 0.00, 0.00, -0.12, 0.12, 0.00, 0.00, - 0.12, 0.00, 0.00, -0.12, -0.12, 0.00, 0.00, -0.12, - -0.12, 0.12, 0.00, 0.00, 0.12, 0.12, 0.00, 0.00, - 0.12, 0.00, 0.00, 0.12, 0.12, 0.08, 0.00, 0.04 - }; - -/* Number of amplitude coefficients */ - static const int NA = (int) (sizeof a / sizeof (double)); - -/* Amplitude usage: X or Y, sin or cos, power of T. */ - static const int jaxy[] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}; - static const int jasc[] = {0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0}; - static const int japt[] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4}; - -/* Miscellaneous */ - double t, w, pt[MAXPT+1], fa[14], xypr[2], xypl[2], xyls[2], arg, - sc[2]; - int jpt, i, j, jxy, ialast, ifreq, m, ia, jsc; - -/* ------------------------------------------------------------------ */ - -/* Interval between fundamental date J2000.0 and given date (JC). */ - t = ((date1 - DJ00) + date2) / DJC; - -/* Powers of T. */ - w = 1.0; - for (jpt = 0; jpt <= MAXPT; jpt++) { - pt[jpt] = w; - w *= t; - } - -/* Initialize totals in X and Y: polynomial, luni-solar, planetary. */ - for (jxy = 0; jxy < 2; jxy++) { - xypr[jxy] = 0.0; - xyls[jxy] = 0.0; - xypl[jxy] = 0.0; - } - -/* --------------------------------- */ -/* Fundamental arguments (IERS 2003) */ -/* --------------------------------- */ - -/* Mean anomaly of the Moon. */ - fa[0] = iauFal03(t); - -/* Mean anomaly of the Sun. */ - fa[1] = iauFalp03(t); - -/* Mean argument of the latitude of the Moon. */ - fa[2] = iauFaf03(t); - -/* Mean elongation of the Moon from the Sun. */ - fa[3] = iauFad03(t); - -/* Mean longitude of the ascending node of the Moon. */ - fa[4] = iauFaom03(t); - -/* Planetary longitudes, Mercury through Neptune. */ - fa[5] = iauFame03(t); - fa[6] = iauFave03(t); - fa[7] = iauFae03(t); - fa[8] = iauFama03(t); - fa[9] = iauFaju03(t); - fa[10] = iauFasa03(t); - fa[11] = iauFaur03(t); - fa[12] = iauFane03(t); - -/* General accumulated precession in longitude. */ - fa[13] = iauFapa03(t); - -/* -------------------------------------- */ -/* Polynomial part of precession-nutation */ -/* -------------------------------------- */ - - for (jxy = 0; jxy < 2; jxy++) { - for (j = MAXPT; j >= 0; j--) { - xypr[jxy] += xyp[jxy][j] * pt[j]; - } - } - -/* ---------------------------------- */ -/* Nutation periodic terms, planetary */ -/* ---------------------------------- */ - -/* Work backwards through the coefficients per frequency list. */ - ialast = NA; - for (ifreq = NFPL-1; ifreq >= 0; ifreq--) { - - /* Obtain the argument functions. */ - arg = 0.0; - for (i = 0; i < 14; i++) { - m = mfapl[ifreq][i]; - if (m != 0) arg += (double)m * fa[i]; - } - sc[0] = sin(arg); - sc[1] = cos(arg); - - /* Work backwards through the amplitudes at this frequency. */ - ia = nc[ifreq+NFLS]; - for (i = ialast; i >= ia; i--) { - - /* Coefficient number (0 = 1st). */ - j = i-ia; - - /* X or Y. */ - jxy = jaxy[j]; - - /* Sin or cos. */ - jsc = jasc[j]; - - /* Power of T. */ - jpt = japt[j]; - - /* Accumulate the component. */ - xypl[jxy] += a[i-1] * sc[jsc] * pt[jpt]; - } - ialast = ia-1; - } - -/* ----------------------------------- */ -/* Nutation periodic terms, luni-solar */ -/* ----------------------------------- */ - -/* Continue working backwards through the number of coefficients list. */ - for (ifreq = NFLS-1; ifreq >= 0; ifreq--) { - - /* Obtain the argument functions. */ - arg = 0.0; - for (i = 0; i < 5; i++) { - m = mfals[ifreq][i]; - if (m != 0) arg += (double)m * fa[i]; - } - sc[0] = sin(arg); - sc[1] = cos(arg); - - /* Work backwards through the amplitudes at this frequency. */ - ia = nc[ifreq]; - for (i = ialast; i >= ia; i--) { - - /* Coefficient number (0 = 1st). */ - j = i-ia; - - /* X or Y. */ - jxy = jaxy[j]; - - /* Sin or cos. */ - jsc = jasc[j]; - - /* Power of T. */ - jpt = japt[j]; - - /* Accumulate the component. */ - xyls[jxy] += a[i-1] * sc[jsc] * pt[jpt]; - } - ialast = ia-1; - } - -/* ------------------------------------ */ -/* Results: CIP unit vector components */ -/* ------------------------------------ */ - - *x = DAS2R * (xypr[0] + (xyls[0] + xypl[0]) / 1e6); - *y = DAS2R * (xypr[1] + (xyls[1] + xypl[1]) / 1e6); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/xys00a.c b/deps/sofa/20231011/c/src/xys00a.c deleted file mode 100644 index c922039..0000000 --- a/deps/sofa/20231011/c/src/xys00a.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "sofa.h" - -void iauXys00a(double date1, double date2, - double *x, double *y, double *s) -/* -** - - - - - - - - - - -** i a u X y s 0 0 a -** - - - - - - - - - - -** -** For a given TT date, compute the X,Y coordinates of the Celestial -** Intermediate Pole and the CIO locator s, using the IAU 2000A -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** s double the CIO locator s (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 3) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 4) A faster, but slightly less accurate result (about 1 mas for -** X,Y), can be obtained by using instead the iauXys00b function. -** -** Called: -** iauPnm00a classical NPB matrix, IAU 2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3]; - - -/* Form the bias-precession-nutation matrix, IAU 2000A. */ - iauPnm00a(date1, date2, rbpn); - -/* Extract X,Y. */ - iauBpn2xy(rbpn, x, y); - -/* Obtain s. */ - *s = iauS00(date1, date2, *x, *y); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/xys00b.c b/deps/sofa/20231011/c/src/xys00b.c deleted file mode 100644 index 74c6228..0000000 --- a/deps/sofa/20231011/c/src/xys00b.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "sofa.h" - -void iauXys00b(double date1, double date2, - double *x, double *y, double *s) -/* -** - - - - - - - - - - -** i a u X y s 0 0 b -** - - - - - - - - - - -** -** For a given TT date, compute the X,Y coordinates of the Celestial -** Intermediate Pole and the CIO locator s, using the IAU 2000B -** precession-nutation model. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** s double the CIO locator s (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y -** components of the unit vector in the Geocentric Celestial -** Reference System. -** -** 3) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 4) The present function is faster, but slightly less accurate (about -** 1 mas in X,Y), than the iauXys00a function. -** -** Called: -** iauPnm00b classical NPB matrix, IAU 2000B -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS00 the CIO locator s, given X,Y, IAU 2000A -** -** Reference: -** -** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), -** IERS Technical Note No. 32, BKG (2004) -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3]; - - -/* Form the bias-precession-nutation matrix, IAU 2000A. */ - iauPnm00b(date1, date2, rbpn); - -/* Extract X,Y. */ - iauBpn2xy(rbpn, x, y); - -/* Obtain s. */ - *s = iauS00(date1, date2, *x, *y); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/xys06a.c b/deps/sofa/20231011/c/src/xys06a.c deleted file mode 100644 index becae30..0000000 --- a/deps/sofa/20231011/c/src/xys06a.c +++ /dev/null @@ -1,183 +0,0 @@ -#include "sofa.h" - -void iauXys06a(double date1, double date2, - double *x, double *y, double *s) -/* -** - - - - - - - - - - -** i a u X y s 0 6 a -** - - - - - - - - - - -** -** For a given TT date, compute the X,Y coordinates of the Celestial -** Intermediate Pole and the CIO locator s, using the IAU 2006 -** precession and IAU 2000A nutation models. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: support function. -** -** Given: -** date1,date2 double TT as a 2-part Julian Date (Note 1) -** -** Returned: -** x,y double Celestial Intermediate Pole (Note 2) -** s double the CIO locator s (Note 3) -** -** Notes: -** -** 1) The TT date date1+date2 is a Julian Date, apportioned in any -** convenient way between the two arguments. For example, -** JD(TT)=2450123.7 could be expressed in any of these ways, -** among others: -** -** date1 date2 -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in -** cases where the loss of several decimal digits of resolution -** is acceptable. The J2000 method is best matched to the way -** the argument is handled internally and will deliver the -** optimum resolution. The MJD method and the date & time methods -** are both good compromises between resolution and convenience. -** -** 2) The Celestial Intermediate Pole coordinates are the x,y components -** of the unit vector in the Geocentric Celestial Reference System. -** -** 3) The CIO locator s (in radians) positions the Celestial -** Intermediate Origin on the equator of the CIP. -** -** 4) Series-based solutions for generating X and Y are also available: -** see Capitaine & Wallace (2006) and iauXy06. -** -** Called: -** iauPnm06a classical NPB matrix, IAU 2006/2000A -** iauBpn2xy extract CIP X,Y coordinates from NPB matrix -** iauS06 the CIO locator s, given X,Y, IAU 2006 -** -** References: -** -** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 -** -** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - double rbpn[3][3]; - - -/* Form the bias-precession-nutation matrix, IAU 2006/2000A. */ - iauPnm06a(date1, date2, rbpn); - -/* Extract X,Y. */ - iauBpn2xy(rbpn, x, y); - -/* Obtain s. */ - *s = iauS06(date1, date2, *x, *y); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/zp.c b/deps/sofa/20231011/c/src/zp.c deleted file mode 100644 index 443b204..0000000 --- a/deps/sofa/20231011/c/src/zp.c +++ /dev/null @@ -1,127 +0,0 @@ -#include "sofa.h" - -void iauZp(double p[3]) -/* -** - - - - - - -** i a u Z p -** - - - - - - -** -** Zero a p-vector. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Returned: -** p double[3] zero p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - p[0] = 0.0; - p[1] = 0.0; - p[2] = 0.0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/zpv.c b/deps/sofa/20231011/c/src/zpv.c deleted file mode 100644 index bab4dbf..0000000 --- a/deps/sofa/20231011/c/src/zpv.c +++ /dev/null @@ -1,129 +0,0 @@ -#include "sofa.h" - -void iauZpv(double pv[2][3]) -/* -** - - - - - - - -** i a u Z p v -** - - - - - - - -** -** Zero 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. -** -** Returned: -** pv double[2][3] zero pv-vector -** -** Called: -** iauZp zero p-vector -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - iauZp(pv[0]); - iauZp(pv[1]); - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/deps/sofa/20231011/c/src/zr.c b/deps/sofa/20231011/c/src/zr.c deleted file mode 100644 index 66b2f67..0000000 --- a/deps/sofa/20231011/c/src/zr.c +++ /dev/null @@ -1,133 +0,0 @@ -#include "sofa.h" - -void iauZr(double r[3][3]) -/* -** - - - - - - -** i a u Z r -** - - - - - - -** -** Initialize an r-matrix to the null matrix. -** -** This function is part of the International Astronomical Union's -** SOFA (Standards of Fundamental Astronomy) software collection. -** -** Status: vector/matrix support function. -** -** Returned: -** r double[3][3] r-matrix -** -** This revision: 2021 May 11 -** -** SOFA release 2023-10-11 -** -** Copyright (C) 2023 IAU SOFA Board. See notes at end. -*/ -{ - r[0][0] = 0.0; - r[0][1] = 0.0; - r[0][2] = 0.0; - r[1][0] = 0.0; - r[1][1] = 0.0; - r[1][2] = 0.0; - r[2][0] = 0.0; - r[2][1] = 0.0; - r[2][2] = 0.0; - -/* Finished. */ - -/*---------------------------------------------------------------------- -** -** Copyright (C) 2023 -** 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 -** -**--------------------------------------------------------------------*/ -} diff --git a/include/AstriFitsProcessor.h b/include/AstriFitsProcessor.h new file mode 100644 index 0000000..cfd4918 --- /dev/null +++ b/include/AstriFitsProcessor.h @@ -0,0 +1,43 @@ +#pragma once +#include + +#include +#include +#include + +using namespace inaf::oasbo; + +class AstriFitsProcessor { + +protected: + Receivers::FileReceiver *receiver; + Packets::AstriMaGeneric *packet; + std::string file_to_process; + + Packets::PacketStructureJson *structureGen; + Packets::PacketStructureJson *structureS22; + Packets::PacketStructureJson *structureC11; + Packets::PacketStructureJson *structureC14; + Packets::PacketStructureJson *structureHK; + Packets::PacketStructureJson *structureVHG; + Packets::PacketStructureJson *structureVLG; + + struct from_file_param { // TODO to rename and check fields + std::string date, target_id, obs_mode; + int tel_id, run_id; + }; + + int add14EventPacketToFits(fitsfile*); + +public: + AstriFitsProcessor(std::string file_to_process); + + void setFileToProcess(std::string file_to_process); + std::string getFileToProcess(); + int startProcessing(); + + + from_file_param from_file;// TODO to rename + +}; + diff --git a/include/FitsHelper.h b/include/FitsHelper.h new file mode 100644 index 0000000..be4c8af --- /dev/null +++ b/include/FitsHelper.h @@ -0,0 +1,151 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#define NUM_PDM 37 + +namespace FitsElements { + +static char **ttype14 = nullptr; // init in FitsFunctions::initFitsSchema +static char **tunit14 = nullptr; // init in FitsFunctions::initFitsSchema +static char **tform14 = nullptr; // init in FitsFunctions::initFitsSchema +static const int ncols14 = 142; + +static const std::string extname = "events"; + +}; + +namespace FitsFunctions { + +[[maybe_unused]] static void initFitsSchema(){ + + // primary HDU {keyword, value, comment}, when value = X it meant it will be read later + std::vector > + primary_hdu = { + { "TELESCOP","ASTRI-MA","Name of telescope generating data"}, + { "INSTRUME","CAMERA","Name of instrument generating data"}, + { "TEL_ID","X","Telescope ID"}, + { "ORIGIN","ASTRIDPS","Name of organization making file"}, + { "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS"}, + { "FILENAME","X","Filename"}, + { "FILEVERS","1","File version"}, + { "ORIGIN_ID","X","Date origin and contex"}, + { "OBS_DATE","X","Date of the beginning of the observation night"}, + { "OBS_MODE","X","Observation mode"}, + { "PROG_ID","X","Observation program ID"}, + { "SBL_ID","X","Observation scheduling block"}, + { "RUN_ID","X","Incremental array-wise file counter"}, + { "DAQ_MODE","X","DAQ status identification"}, + { "DAQ_ID","X","Telescope-wise DAQ incremental counter"}, + { "DATAMODE","X","Run type"}, + { "SUBMODE","X","Run subtype"}, + { "NTEL","X","Number of active telescopes during observation"}, + { "TIMESYS","TT","Time reference system"}, + { "MJDREFI","58849","MJD reference date"}, + { "MJDREFF","0.00080074","MJD reference fraction of day"}, + { "TIMEOFFS","0.0","Time offset"}, + { "TIMEUNIT","s","Time unit"}, + { "TSTART","X","First event time"}, + { "TSTOP","X","Last event time"}, + { "TELAPSE","X","Diff of start and end times"}, + { "DATE-OBS","X","Start date of the first data event (UTC)"}, + { "DATE-END","X","End date of the last data event (UTC)"}, + { "DATE","X","File creation date (UTC)"}, + { "OBJECT","X","Name of observed object"}, + { "RADECSYS","FK5","Coordinate reference frame"}, + { "EQUINOX","2000.0","Coordinate epoch"}, + { "RA_OBJ","X","[deg] R.A. Object"}, + { "DEC_OBJ","X","[deg] Decl. Objec"}, + { "RA_PNT","X","Pointed R.A. (J2000)"}, + { "DEC_PNT","X","Pointed Dec. (J2000"}, + { "CHECKSUM","X","HDU checksum updated"}, + { "DATASUM","X","Data unit checksum updated"}, + }; + + // C14 hdu events {type, format, unit} + std::vector > + c14_hdu_events = { + {"VT","1L",""}, + {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss"}, + {"TIME_S","1V","s"}, + {"TIME_NS","1V","ns"}, + {"SSC","1U",""}, + {"PKT_LEN","1U",""}, + {"EVT_CTR","1V",""}, + {"LID","1L",""}, + {"FIB_ST","1L",""}, + {"FIB_CONT","1L",""}, + {"FIB_PULS","1L",""}, + {"RGB_CONT","1I",""}, + {"RGB_PULS","1I",""}, + {"TRG_DT","1U","pe"}, + {"TRG_CDT","1U","pe"}, + {"TRG_TYPE","1I",""}, + {"TRG_CONF","1I",""}, + {"PDM_VAL","37L",""}, + {"TRG_ENB","37L",""}, + {"TRG_PDM","37L",""}, + {"EVT_VAL","37L",""}, + }; + + // high gains + for(int i = 0; i < NUM_PDM; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "HI"; + c14_hdu_events.push_back({fieldName.str(),"64U","adu"}); + } + // low gains + for(int i = 0; i < NUM_PDM; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "LO"; + c14_hdu_events.push_back({fieldName.str(),"64U","adu"}); + } + // time trigger pixel + for(int i = 0; i < NUM_PDM; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "TTP"; + c14_hdu_events.push_back({fieldName.str(),"64B","ns"}); + } + // latest fields + c14_hdu_events.push_back({"PDM_HIT","64X",""}); + c14_hdu_events.push_back({"PDM_MASK","64X",""}); + c14_hdu_events.push_back({"PDM_TMP1","37U",""}); + c14_hdu_events.push_back({"PDM_TMP2","37U",""}); + c14_hdu_events.push_back({"PDM_TMP3","37U",""}); + c14_hdu_events.push_back({"PDM_HV","37U",""}); + c14_hdu_events.push_back({"PDM_CU","37V",""}); + +// init char** of type, form, uinit + int hdu_event_size = c14_hdu_events.size(); + FitsElements::ttype14 = new char*[hdu_event_size]; + FitsElements::tform14 = new char*[hdu_event_size]; + FitsElements::tunit14 = new char*[hdu_event_size]; + for (int i = 0; i < hdu_event_size; i++) { + std::string type = std::get<0>(c14_hdu_events[i]); + std::string form = std::get<1>(c14_hdu_events[i]); + std::string unit = std::get<2>(c14_hdu_events[i]); + FitsElements::ttype14[i] = new char[type.size() + 1]; + FitsElements::tform14[i] = new char[form.size() + 1]; + FitsElements::tunit14[i] = new char[unit.size() + 1]; + std::strcpy(FitsElements::ttype14[i], type.c_str()); + std::strcpy(FitsElements::tform14[i], form.c_str()); + std::strcpy(FitsElements::tunit14[i], unit.c_str()); + } + +} + + + +}; + diff --git a/src/AstriFitsProcessor.cpp b/src/AstriFitsProcessor.cpp new file mode 100644 index 0000000..4f8cd1f --- /dev/null +++ b/src/AstriFitsProcessor.cpp @@ -0,0 +1,122 @@ +#include +#include + +using namespace inaf::oasbo; + +#ifndef ASTRI_PACKETS_PATH // is already defined in cmake +#define ASTRI_PACKETS_PATH std::string(std::getenv("HOME")).append("/BIAS/config/AstriPackets") +#endif + +AstriFitsProcessor::AstriFitsProcessor(std::string file_to_process) { + this->file_to_process = file_to_process; + this->receiver = + Receivers::FileReceiverBuilder().setSource(file_to_process)->setRate( + 0)->getReceiver(); + + // init packet with gen structure + std::string pathGen( + std::string(ASTRI_PACKETS_PATH).append( + "/AstriMA/AstriMAGeneric.json")); + this->structureGen = new Packets::PacketStructureJson( + pathGen); + this->packet = new Packets::AstriMaGeneric(*structureGen); + + // prepare other packet structures + std::string pathC11( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/11.json")); + this->structureC11 = new Packets::PacketStructureJson( + pathC11); + + std::string pathC14( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/14.json")); + this->structureC14 = new Packets::PacketStructureJson( + pathC14); + + std::string pathS22( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/22.json")); + this->structureS22 = new Packets::PacketStructureJson( + pathS22); + + std::string pathVHG( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/102.json")); + this->structureVHG = new Packets::PacketStructureJson( + pathVHG); + + std::string pathVLG( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/103.json")); + this->structureVLG = new Packets::PacketStructureJson( + pathVLG); + + std::string pathHK( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/101.json")); + this->structureHK = new Packets::PacketStructureJson( + pathHK); + +} + +void AstriFitsProcessor::setFileToProcess(std::string file_to_process) { + this->receiver->setHost(file_to_process); + this->file_to_process = file_to_process; +} + +std::string AstriFitsProcessor::getFileToProcess() { + return this->file_to_process; +} + +int AstriFitsProcessor::startProcessing() { + if(this->receiver->connectToClient() < 0){ + std::cerr << "Cannot open file: " << receiver->getHost() << std::endl; + return -1; + } + + + fitsfile *fptr_c14 = nullptr; + + int status = 0; + fits_create_file(&fptr_c14, "sdds", &status); + if (status != 0) { + fits_report_error(stderr, status); // print error message + return -1; + } + + fits_create_tbl(fptr_c14, BINARY_TBL, 0, FitsElements::ncols14, // TODO FIX seg fault + FitsElements::ttype14, FitsElements::tform14, FitsElements::tunit14, + FitsElements::extname.c_str(), &status); + if (status != 0) { + fits_report_error(stderr, status); // print error message + return -1; + } + + while (true) { // go ahead until no packet to read + std::cout << "Receiving packet" << std::endl; + + int rcv = this->receiver->receiveFromClient(*this->packet); + + if (rcv > 0) { // packet read + if(packet->getType() == 1 && packet->getSubType() == 4){ + this->packet->updatePacketStructure(*this->structureC14); + add14EventPacketToFits(fptr_c14); + this->packet->updatePacketStructure(*this->structureGen); + continue; + } + // other packets + } + if (rcv < 0) { // error reading packet + std::cerr << "Error reading packet" << std::endl; + continue; + } + if(rcv == 0){ // no more packets to read + break; + } + + } + + return 1; +} + +int AstriFitsProcessor::add14EventPacketToFits(fitsfile*){ + return 1; +} + + + diff --git a/src/main.cpp b/src/main.cpp index 819015e..3091fde 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,1302 +1,58 @@ -/* - * main.cpp - * - * Created on: Jul 13, 2023 - * Author: Vito Conforti - */ - #include #include #include #include #include - #include -#include - -#include +#include +#include -#ifndef ASTRI_PACKETS_PATH -#define ASTRI_PACKETS_PATH std::string(std::getenv("HOME")).append("/prova_exe/config/AstriPackets") -#endif - namespace fs = std::filesystem; -std::string set_fitsname(std::string rawname, std::string type) { - return rawname + type + ".lv0.fits"; -} - -int ReadFilesRecursively(const fs::path &path) { - - using namespace inaf::oasbo::Packets; - - std::string pathGen( - std::string(ASTRI_PACKETS_PATH).append( - "/AstriMA/AstriMAGeneric.json")); - std::string pathS22( - std::string(ASTRI_PACKETS_PATH).append("/AstriMA/22.json")); - std::string pathC11( - std::string(ASTRI_PACKETS_PATH).append("/AstriMA/11.json")); - std::string pathC14( - std::string(ASTRI_PACKETS_PATH).append("/AstriMA/14.json")); - std::string pathVHG( - std::string(ASTRI_PACKETS_PATH).append("/AstriMA/102.json")); - std::string pathVLG( - std::string(ASTRI_PACKETS_PATH).append("/AstriMA/103.json")); - std::string pathHK( - std::string(ASTRI_PACKETS_PATH).append("/AstriMA/101.json")); - - PacketStructureJson structureGen(pathGen); - PacketStructureJson structureS22(pathS22); - PacketStructureJson structureC11(pathC11); - PacketStructureJson structureC14(pathC14); - PacketStructureJson structureHK(pathHK); - PacketStructureJson structureVHG(pathVHG); - PacketStructureJson structureVLG(pathVLG); - - AstriMaGeneric packet(structureGen); - - int type = 0; - int subtype = 0; - long unsigned int ssc = 0; - int evt_counter = 0; - std::string date = ""; - std::string time = ""; - bool vt = false; - int check = 0; - - int status = 0; - // Set the MJD (Modified Julian Date) reference date and fraction of day - double mjdReference = 58849.0; - double fractionOfDayReference = 0.00080074; - - // iterate over all raw files - for (const auto &entry : fs::recursive_directory_iterator(path)) { - - if (entry.is_regular_file()) { - const std::string filePath = entry.path().string(); - std::cout << "Reading file: " << filePath << std::endl; - - // processing file - std::ifstream file(filePath); - - if (file.is_open()) { - std::cout << "Il file è stato aperto correttamente." - << std::endl; - } else { - std::cerr << "Impossibile aprire il file." << std::endl; - continue; // go ahead with next file - } - - std::string filename = entry.path().filename().string(); - std::string mode_id = filename.substr(23, 1); - std::string run_id = filename.substr(25, 6); - - int maxSize = packet.getPacketStructureByteSize(); - int headerSize = packet.getHeaderSize(); - - // create fits files - fitsfile *fptr_c11; - fitsfile *fptr_c14; - fitsfile *fptr_s22; - fitsfile *fptr_hvg; - fitsfile *fptr_hlg; - fitsfile *fptr_hk; - - - - int status = 0; // status value that will be updated by CFITSIO functions - - std::string filename_c11 = set_fitsname(filename, "0101"); - std::string *ptrfilenamec11 = &filename_c11; - const char *c11filename = ptrfilenamec11->c_str(); - - std::string filename_c14 = set_fitsname(filename, "0104"); - std::string *ptrfilename_c14 = &filename_c14; - const char *c14filename = ptrfilename_c14->c_str(); - - std::string filename_s22 = set_fitsname(filename, "0202"); - std::string *ptrfilenames22 = &filename_s22; - const char *s22filename = ptrfilenames22->c_str(); - - std::string filename_hvg = set_fitsname(filename, "1002"); - std::string *ptrfilenamehvg = &filename_hvg; - const char *hvgfilename = ptrfilenamehvg->c_str(); - - std::string filename_hlg = set_fitsname(filename, "1003"); - std::string *ptrfilenamehlg = &filename_hlg; - const char *hlgfilename = ptrfilenamehlg->c_str(); - - std::string filename_hk = set_fitsname(filename, "1001"); - std::string *ptrfilenamehk = &filename_hk; - const char *hkfilename = ptrfilenamehk->c_str(); - - const int commonElements = 13; - const std::string commonttype[commonElements] = { "VT", "TIME_UTC", - "TIME_S", "TIME_NS", "SSC", "PKT_LEN", "EVT_CTR", "LID", - "FIB_ST", "FIB_CONT", "FIB_PULS", "RGB_CONT", "RGB_PULS" }; - const std::string commontform[commonElements] = { "1L", "19A", "1V", - "1V", "1U", "1U", "1V", "1L", "1L", "1L", "1L", "1I", "1I" }; - const std::string commontunit[commonElements] = { "", - "YYYY-MM-DDThh:mm:ss", "s", "ns", "", "", "", "", "", "", - "", "", "" }; - - // Set up parameters for the binary table DUMMY To be customized - char extname[] = "EVENTS"; // name of the extension - char *ttype11[58] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS", "SSC", - "PKT_LEN", "EVT_CTR", "LID", "FIB_ST", "FIB_CONT", - "FIB_PULS", "RGB_CONT", "RGB_PULS", "TRG_DT", "PTM", - "TRG_PXL_ID", "TIME_WIND", "DISC_CHAIN", "PDNM_VAL" }; - char *tform11[58] = { "1D", "19A", "1V", "1V", "1U", "1U", "1V", - "1L", "1L", "1L", "1L", "1I", "1I", "1U", "1L", "1B", "1I", - "1L", "37L" }; - char *tunit11[58] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "" }; - int ncols11 = 19; - - const int ncols14 = 142; - - // Using std::vector for dynamic strings - std::vector v_ttype14; - std::vector v_tform_14; - std::vector v_tunit_14; - - for (int i = 0; i < 13; ++i) { - v_ttype14.push_back(commonttype[i]); - v_tform_14.push_back(commontform[i]); - v_tunit_14.push_back(commontunit[i]); - } - - // Col 14 to 25 (12 fields) - const std::string ttype14_1[] = { "TRG_DT", "TRG_CDT", "PTM", - "TRG_PXL_ID", "TRG_TYPE", "TRG_CONF", "ETRG_TYPE", - "ETRG_FRQ", "PDM_VAL", "TRG_ENB", "TRG_PDM", "EVT_VAL" }; - const std::string tform14_1[] = { "1U", "1U", "1L", "1B", "1I", - "1I", "1I", "1I", "37L", "37L", "37L", "37L" }; - const std::string tunit14_1[] = { "pe", "pe", "", "", "", "", "", - "", "", "", "", "" }; - - for (int i = 0; i < 12; ++i) { - v_ttype14.push_back(ttype14_1[i]); - v_tform_14.push_back(tform14_1[i]); - v_tunit_14.push_back(tunit14_1[i]); - } - - for (int i = 26; i < 63; ++i) { - // Generate column names (you may replace this logic as needed) - v_ttype14.push_back("PDMHG" + std::to_string(i + 1)); - v_tform_14.push_back("64I"); - v_tunit_14.push_back(""); - } - - for (int i = 63; i < 100; ++i) { - // Generate column names (you may replace this logic as needed) - v_ttype14.push_back("PDMLG" + std::to_string(i + 1)); - v_tform_14.push_back("64I"); - v_tunit_14.push_back(""); - } - - for (int i = 100; i < 137; ++i) { - // Generate column names (you may replace this logic as needed) - v_ttype14.push_back("PDMTTP" + std::to_string(i + 1)); - v_tform_14.push_back("64I"); - v_tunit_14.push_back(""); - } - - // Col 137 to 143 (7 fields) - const std::string ttype14_2[] = { "PDM_HIT", "PDM_MASK", "PDM_TMP1", - "PDM_TMP2", "PDM_TMP3", "PDM_HV", "PDM_CU" }; - const std::string tform14_2[] = { "37I", "37I", "37U", "37U", "37U", - "37U", "37V" }; - const std::string tunit14_2[] = { "", "", "", "", "", "", "" }; - - for (int i = 0; i < 7; ++i) { - v_ttype14.push_back(ttype14_2[i]); - v_tform_14.push_back(tform14_2[i]); - v_tunit_14.push_back(tunit14_2[i]); - } - - char *ttype14[ncols14]; - char *tform14[ncols14]; - char *tunit14[ncols14]; - - for (int i = 0; i < ncols14; ++i) { - ttype14[i] = new char[v_ttype14[i].size() + 1]; - std::strcpy(ttype14[i], v_ttype14[i].c_str()); - - tform14[i] = new char[v_tform_14[i].size() + 1]; - std::strcpy(tform14[i], v_tform_14[i].c_str()); - - tunit14[i] = new char[v_tunit_14[i].size() + 1]; - std::strcpy(tunit14[i], v_tunit_14[i].c_str()); - - } - - char *ttype22[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; - char *tform22[] = { "1D", "19A", "1V", "1V" }; - char *tunit22[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; - int ncols22 = 4; - - char *ttype102[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; - char *tform102[] = { "1D", "19A", "1V", "1V" }; - char *tunit102[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; - int ncols102 = 4; - - char *ttype103[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; - char *tform103[] = { "1D", "19A", "1V", "1V" }; - char *tunit103[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; - int ncols103 = 4; - - char *ttype101[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; - char *tform101[] = { "1D", "19A", "1V", "1V" }; - char *tunit101[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; - int ncols101 = 4; - - int nrowsxtime = 1; // it's fixed -> one packet for row -> one packet each interation - - if (fits_create_file(&fptr_c11, c11filename, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - if (fits_create_tbl(fptr_c11, BINARY_TBL, 0, ncols11, ttype11, - tform11, tunit11, extname, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - if (fits_create_file(&fptr_c14, c14filename, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - if (fits_create_tbl(fptr_c14, BINARY_TBL, 0, ncols14, ttype14, - tform14, tunit14, extname, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - if (fits_create_file(&fptr_s22, s22filename, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - if (fits_create_tbl(fptr_s22, BINARY_TBL, 0, ncols22, ttype22, - tform22, tunit22, extname, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - if (fits_create_file(&fptr_hvg, hvgfilename, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - if (fits_create_tbl(fptr_hvg, BINARY_TBL, 0, ncols102, ttype102, - tform102, tunit102, extname, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - if (fits_create_file(&fptr_hlg, hlgfilename, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - if (fits_create_tbl(fptr_hlg, BINARY_TBL, 0, ncols103, ttype103, - tform103, tunit103, extname, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - if (fits_create_file(&fptr_hk, hkfilename, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - if (fits_create_tbl(fptr_hk, BINARY_TBL, 0, ncols101, ttype101, - tform101, tunit101, extname, &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - // todo for other files - - header_fits::set_header(fptr_s22, s22filename, "02", "02"); - header_fits::set_header(fptr_c11, c11filename, "01", "01"); - header_fits::set_header(fptr_c14, c14filename, "01", "04"); - header_fits::set_header(fptr_hk, hkfilename, "10", "01"); - header_fits::set_header(fptr_hvg, hvgfilename, "10", "02"); - header_fits::set_header(fptr_hlg, hlgfilename, "10", "03"); - - std::string log_val_1; - std::string log_val_2; - std::string log_val_3; - std::string log_val_4; - std::string log_val_5; - std::string log_val_6; - std::string log_val_7; - std::string log_val_8; - - int s22_row = 0; - int c14_row = 0; - int c11_row = 0; - int vhg_row = 0; - int vlg_row = 0; - int hk_row = 0; - - while (true) { - // Leggi i primi 6 byte - uint8_t bytes[maxSize]; - file.read((char*) bytes, headerSize); - if (file.gcount() < headerSize) { - // Fine del file - break; - } - - packet.copyToMemory(bytes, headerSize); - int payloadSize = packet.getPayloadSize(); - - file.read((char*) &bytes[headerSize], payloadSize); - packet.copyToMemory(bytes, headerSize + payloadSize); - - type = packet.getType(); - subtype = packet.getSubType(); - - ssc = packet.getSSC(); - evt_counter = packet.getEventCounter(); - - //date - std::stringstream ss_date; - ss_date << std::setfill('0') << std::setw(4) - << packet[5].value() << "-" << std::setw(2) - << packet[6].value() << "-" << packet[7].value() << "T" - << std::setfill('0') << std::setw(2) - << packet[8].value() << ":" << std::setw(2) - << packet[9].value() << ":" << packet[10].value(); - date = ss_date.str(); - - //date - std::stringstream ss_time; - ss_time << std::setfill('0') << std::setw(2) - << packet[8].value() << ":" << std::setw(2) - << packet[9].value() << ":" << packet[10].value(); - time = ss_time.str(); - - - - int pkt_len = packet["Packet Length"].value(); - bool lid = packet["lid"].value(); - bool fib_st = packet["fib st"].value(); - bool fib_cont = packet["fib cont"].value(); - bool fib_puls = packet["fib puls"].value(); - int rgb_cont = packet["rgb cont"].value(); - int rgb_puls = packet["rgb puls"].value(); - - - // Convert the UTC time to TT using the sofa library - - std::string YY = std::to_string(packet[5].value()); - std::string MM = std::to_string(packet[6].value()); - std::string DD = std::to_string(packet[7].value()); - std::string hh = std::to_string(packet[8].value()); - std::string mm = std::to_string(packet[9].value()); - std::string ss = std::to_string(packet[10].value()); - -// double utcMJD = iauCal2jd(YY, MM, DD, &mjdReference); -// double utcFractionOfDay = hh / 24.0 + mm / 1440.0 + ss / 86400.0; -// double utcTT = iauDtf2d("UTC", 0, YY, MM, DD, hh, mm , utcFractionOfDay) + 32.184 / 86400.0; -// -// -// std::cout << "UTC to TT conversion: " << utcTT << " MJD" << std::endl; - - - - // valid time - vt = packet[11].value(); - - check = 0; // new packet - reset the check variable for test purpose - - if (!(type == 1 && subtype == 4)) continue; // TODO to remove - - if (type == 2 && subtype == 2) { - - s22_row++; // new row in the fits file - - - packet.updatePacketStructure(structureS22); - - if (fits_movabs_hdu(fptr_s22, 2, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - - - fits_write_col(fptr_s22, TLOGICAL, 1, c14_row, 1, nrowsxtime, &vt, &status); // vt - fits_write_col(fptr_s22, TSTRING, 2, c14_row, 1, nrowsxtime, &date, &status); // TIME_UTC - fits_write_col(fptr_s22, TINT, 3, c14_row, 1, nrowsxtime, &time, &status); // TIME_S to be updated with sofa TODO - fits_write_col(fptr_s22, TINT, 4, c14_row, 1, nrowsxtime, &time, &status); //TIME_NS -> to be updatew with ns value - fits_write_col(fptr_s22, TUSHORT , 5, c14_row, 1, nrowsxtime, &ssc, &status); //SSC 1U - fits_write_col(fptr_s22, TUSHORT , 6, c14_row, 1, nrowsxtime, &pkt_len, &status); // PKT_LEN 1U - fits_write_col(fptr_s22, TUINT, 7, c14_row, 1, nrowsxtime, &evt_counter, &status); // EVT_CTR 1V - fits_write_col(fptr_s22, TLOGICAL, 8, c14_row, 1, nrowsxtime, &lid, &status); // LID 1L - fits_write_col(fptr_s22, TLOGICAL, 9, c14_row, 1, nrowsxtime, &fib_st, &status); // FIB_ST 1L - fits_write_col(fptr_s22, TLOGICAL, 10, c14_row, 1, nrowsxtime, &fib_cont, &status); // FIB_CONT 1L - fits_write_col(fptr_s22, TLOGICAL, 11, c14_row, 1, nrowsxtime, &fib_puls, &status); // FIB_PULS 1L - fits_write_col(fptr_s22, TSHORT, 12, c14_row, 1, nrowsxtime, &rgb_cont, &status); // RGB_CONT 1L - fits_write_col(fptr_s22, TSHORT , 13, c14_row, 1, nrowsxtime, &rgb_puls, &status); //RGB_PULS 1I - - - - // DFH extension - int trg_dt = packet["pixel trigger discriminator threshold"].value(); - int trg_cdt = packet["pixel trigger charge discriminator threshold"].value(); - int trg_type = packet["trg type"].value(); - int trg_conf = packet["trigger config"].value(); - - - fits_write_col(fptr_s22, TUSHORT , 14, c14_row, 1, nrowsxtime, &trg_dt, &status); - fits_write_col(fptr_s22, TUSHORT , 15, c14_row, 1, nrowsxtime, &trg_cdt, &status); - fits_write_col(fptr_s22, TSHORT , 16, c14_row, 1, nrowsxtime, &trg_type, &status); - fits_write_col(fptr_s22, TSHORT , 17, c14_row, 1, nrowsxtime, &trg_conf, &status); - - - // SDF - bool pdm_val[37]; - bool trg_enb[37]; - bool trg_pdm[37]; - bool evt_val[37]; - for (long unsigned int i = 0; i < 37; i++) { - int offset = packet.getPacketStructure().indexOfField( - "pdm val_#" + std::to_string(i)).value(); - - //pdm val - pdm_val[i] = packet[offset].value(); - - //trg enb - trg_enb[i]= packet[offset + 1].value(); - - //trg pdm - trg_pdm[i] = packet[offset + 2].value(); - - //evt val - evt_val[i] = packet[offset + 3].value(); - - - // high gains - for (long unsigned int j = 0; j < 64; j++) { - if (packet[offset + 6 + j].value() != (j * 256)) - check = 1; - } - - // low gains - offset = offset + 6 + 64; - for (long unsigned int j = 0; j < 64; j++) { - if (packet[offset + j].value() != (j * 256)) - check = 1; - } - - // time trigger - offset = offset + 64; - for (long unsigned int j = 0; j < 64; j++) { - if (packet[offset + j].value() != j) - check = 1; - } - - //HIT - offset = offset + 64; - //std::cout << "HIT" << packet[offset].value() << std::endl; - //write log on db - std::string hit = std::to_string( - packet[offset].value()); - log_val_1 = "('S22 HIT value is: " + hit + "'), "; - // not tested - - // Trigger mask - std::string trigger_mask = std::to_string( - packet[offset + 1].value()); - log_val_2 = "('S22 TRIGGER MASK value is: " - + trigger_mask + "')"; - - // not tested - - // SiPM temp 1 - if (packet[offset + 2].value() != 1) - check = 1; - - // SiPM temp 2 - if (packet[offset + 3].value() != 2) - check = 1; - - // SiPM temp 3 - if (packet[offset + 4].value() != 3) - check = 1; - - // SiPM High voltate - if (packet[offset + 5].value() != 4000) - check = 1; - - // SiPM current - if (packet[offset + 6].value() != 5000000) - check = 1; - - } - - fits_write_col(fptr_s22, TLOGICAL , 18, c14_row, 1, nrowsxtime, &pdm_val, &status); - fits_write_col(fptr_s22, TLOGICAL , 19, c14_row, 1, nrowsxtime, &trg_enb, &status); - fits_write_col(fptr_s22, TLOGICAL , 20, c14_row, 1, nrowsxtime, &trg_pdm, &status); - fits_write_col(fptr_s22, TLOGICAL , 21, c14_row, 1, nrowsxtime, &evt_val, &status); - - } - - if (type == 1 && subtype == 1) { - packet.updatePacketStructure(structureC11); - - if (fits_movabs_hdu(fptr_c11, 2, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - - fits_write_col(fptr_c11, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, - &status); - fits_write_col(fptr_c11, TSTRING, 2, 1, 1, nrowsxtime, - &date, &status); - fits_write_col(fptr_c11, TINT, 3, 1, 1, nrowsxtime, &time, - &status); // should be second with sofa TODO - fits_write_col(fptr_c11, TINT, 4, 1, 1, nrowsxtime, &time, - &status); //sould be nanosecond field TODO - - // DFH extension - if (packet["pixel trigger discriminator threshold"].value() - != (240 + ssc)) - check = 1; // 240 first packet incremente by 1 - if (packet["PTM"].value() != 1) - check = 1; - if (packet["triggered pixel id"].value() != 1) - check = 1; - if (packet["time window"].value() != 3) - check = 1; - if (packet["discriminator chain"].value() != 0) - check = 1; - - // DFH - for (long unsigned int i = 0; i < 37; i++) { - int offset = packet.getPacketStructure().indexOfField( - "pdm val_#" + std::to_string(i)).value(); - - //pdm val - //if ((packet[offset].value() ) != 1) check = 1; - if ((packet[offset].value() != 1)) { - //std::cout << "file " << filename << " packet C11 - ssc:" << ssc << " -pdm: " << i << " has pdm val not set 1 has expected. Error not taken into account" << std::endl; - //write log on db - std::string pdm_val = - "file " + filename + " packet C11 - ssc:" - + std::to_string(ssc) + " -pdm: " - + std::to_string(i) - + " has pdm val not set 1 has expected. Error not taken into account"; - log_val_3 = "('HIT value is: " + pdm_val + "')"; - ; - } - - // pdm id - if (packet[offset + 2].value() != (i + 1)) - check = 1; - // std::cout << "pdm id " << packet[offset + 2].value() << std::endl; - - // trigger counts - second level cycle - for (long unsigned int j = 0; j < 64; j++) { - if (packet[offset + 3 + j].value() - != (240 + j + ssc)) - check = 1; - - } - - // SiPM temp 1 - if (packet[offset + 3 + 64].value() != 1) - check = 1; - - // SiPM temp 2 - if (packet[offset + 3 + 65].value() != 2) - check = 1; - - // SiPM temp 3 - if (packet[offset + 3 + 66].value() != 3) - check = 1; - - // SiPM High voltate - if (packet[offset + 3 + 67].value() != 4000) - check = 1; - - // SiPM current - if (packet[offset + 3 + 68].value() != 5000000) - check = 1; - - } - - } - - if (type == 1 && subtype == 4) { - - c14_row++; // new row in the fits file - - packet.updatePacketStructure(structureC14); - - if (fits_movabs_hdu(fptr_c14, 2, NULL, &status)) { - - fits_report_error(stderr, status); - return status; - } - - - fits_write_col(fptr_c14, TLOGICAL, 1, c14_row, 1, nrowsxtime, &vt, &status); // vt - fits_write_col(fptr_c14, TSTRING, 2, c14_row, 1, nrowsxtime, &date, &status); // TIME_UTC - fits_write_col(fptr_c14, TINT, 3, c14_row, 1, nrowsxtime, &time, &status); // TIME_S to be updated with sofa TODO - fits_write_col(fptr_c14, TINT, 4, c14_row, 1, nrowsxtime, &time, &status); //TIME_NS - fits_write_col(fptr_c14, TUSHORT , 5, c14_row, 1, nrowsxtime, &ssc, &status); //SSC 1U - fits_write_col(fptr_c14, TUSHORT , 6, c14_row, 1, nrowsxtime, &pkt_len, &status); // PKT_LEN 1U - fits_write_col(fptr_c14, TUINT, 7, c14_row, 1, nrowsxtime, &evt_counter, &status); // EVT_CTR 1V - fits_write_col(fptr_c14, TLOGICAL, 8, c14_row, 1, nrowsxtime, &lid, &status); // LID 1L - fits_write_col(fptr_c14, TLOGICAL, 9, c14_row, 1, nrowsxtime, &fib_st, &status); // FIB_ST 1L - fits_write_col(fptr_c14, TLOGICAL, 10, c14_row, 1, nrowsxtime, &fib_cont, &status); // FIB_CONT 1L - fits_write_col(fptr_c14, TLOGICAL, 11, c14_row, 1, nrowsxtime, &fib_puls, &status); // FIB_PULS 1L - fits_write_col(fptr_c14, TSHORT, 12, c14_row, 1, nrowsxtime, &rgb_cont, &status); // RGB_CONT 1L - fits_write_col(fptr_c14, TSHORT , 13, c14_row, 1, nrowsxtime, &rgb_puls, &status); //RGB_PULS 1I - - - int trg_dt = packet["pixel trigger discriminator threshold"].value(); - int trg_cdt = packet["pixel trigger charge discriminator threshold"].value(); - bool ptm = packet["PTM"].value(); - int tpl = packet["triggered pixel id"].value(); - int trg_type = packet["trg type"].value(); - int trg_conf = packet["trigger config"].value(); - std::optional ex_type = packet["ext trigger type"].value(); - int ex_freq = packet["ext trigger frequency"].value(); - - fits_write_col(fptr_c14, TUSHORT , 14, c14_row, 1, nrowsxtime, &trg_dt, &status); - fits_write_col(fptr_c14, TUSHORT , 15, c14_row, 1, nrowsxtime, &trg_cdt, &status); - fits_write_col(fptr_c14, TLOGICAL , 16, c14_row, 1, nrowsxtime, &ptm, &status); - fits_write_col(fptr_c14, TBYTE , 17, c14_row, 1, nrowsxtime, &tpl, &status); - fits_write_col(fptr_c14, TSHORT , 18, c14_row, 1, nrowsxtime, &trg_type, &status); - fits_write_col(fptr_c14, TSHORT , 19, c14_row, 1, nrowsxtime, &trg_conf, &status); - fits_write_col(fptr_c14, TSHORT , 20, c14_row, 1, nrowsxtime, &ex_type, &status); - fits_write_col(fptr_c14, TSHORT , 21, c14_row, 1, nrowsxtime, &ex_freq, &status); - - - - // SDF - bool pdm_val[37]; - bool trg_enb[37]; - bool trg_pdm[37]; - bool evt_val[37]; - - for (long unsigned int i = 0; i < 37 ; i++){ - int offset = packet.getPacketStructure().indexOfField("pdm val_#" + std::to_string(i)).value(); - - //pdm val - pdm_val[i] = (packet[offset].value() ); - - - //trg enb - trg_enb[i] = packet[offset + 1].value(); - - //trg pdm - trg_pdm[i] = packet[offset + 2].value(); - - //evt val - evt_val[i] = packet[offset + 3].value(); - - - // pdm id - if (packet[offset + 5].value() != (i + 1)) - check = 1; - // std::cout << "pdm id " << packet[offset + 2].value() << std::endl; - - // high gains - long unsigned int step = 0; - - for (int j = 0; j < 64; j++) { - if (packet[offset + 6 + j].value() != 63 - step) - check = 1; - step = step + 1; - } - - // low gains - step = 0; - for (int j = 0; j < 64; j++) { - if (packet[offset + 6 + 64 + j].value() - != 63 - step) - check = 1; - step = step + 1; - } - - // time triggers - for (long unsigned int j = 0; j < 64; j++) { - if (packet[offset + 6 + 64 + 64 + j].value() != j) - check = 1; - step = step + 1; - } - - //HIT - //std::cout << "HIT " << packet[offset + 6 + 64 + 64 + 64].value() << std::endl; - //write log on db - std::string hit = std::to_string( - packet[offset + 6 + 64 + 64 + 64].value()); - log_val_4 = "('C14 HIT value is: " + hit + "'), "; - - // Trigger mask - //write log on db - std::string trigger_mask = std::to_string( - packet[offset + 6 + 64 + 64 + 64 + 1].value()); - log_val_5 = "('C14 Trigger mask value is: " - + trigger_mask + "')"; - - // SiPM temp 1 - if (packet[offset + 6 + 64 + 64 + 64 + 2].value() != 1) - check = 1; - - // SiPM temp 2 - if (packet[offset + 6 + 64 + 64 + 64 + 3].value() != 2) - check = 1; - - // SiPM temp 3 - if (packet[offset + 6 + 64 + 64 + 64 + 4].value() != 3) - check = 1; - - // SiPM High voltate - if (packet[offset + 6 + 64 + 64 + 64 + 5].value() - != 4000) - check = 1; - - // SiPM current - if (packet[offset + 6 + 64 + 64 + 64 + 6].value() - != 5000000) - check = 1; - - } - fits_write_col(fptr_c14, TLOGICAL , 22, c14_row, 1, nrowsxtime, &pdm_val, &status); - fits_write_col(fptr_c14, TLOGICAL , 23, c14_row, 1, nrowsxtime, &trg_enb, &status); - fits_write_col(fptr_c14, TLOGICAL , 24, c14_row, 1, nrowsxtime, &trg_pdm, &status); - fits_write_col(fptr_c14, TLOGICAL , 25, c14_row, 1, nrowsxtime, &evt_val, &status); - - } - - if (type == 10 && subtype == 1) { - packet.updatePacketStructure(structureHK); - - if (fits_movabs_hdu(fptr_hk, 2, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - - fits_write_col(fptr_hk, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, - &status); - fits_write_col(fptr_hk, TSTRING, 2, 1, 1, nrowsxtime, &date, - &status); - fits_write_col(fptr_hk, TINT, 3, 1, 1, nrowsxtime, &time, - &status); // should be second with sofa TODO - fits_write_col(fptr_hk, TINT, 4, 1, 1, nrowsxtime, &time, - &status); //sould be nanosecond field TODO - - if (packet[0].value() != 1) - check = 1; - if (packet["lid"].value() != 1) - check = 1; - if (packet["fib st"].value() != 1) - check = 1; - if (packet["fib cont"].value() != 1) - check = 1; - if (packet["fib puls"].value() != 1) - check = 1; - if (packet["rgb cont"].value() != 3) - check = 1; - if (packet["rgb puls"].value() != 2) - check = 1; - - // DFH extension - if (packet["Camera Temperature 1"].value() != 5000) - check = 1; - if (packet["Camera Temperature 2"].value() != 5100) - check = 1; - if (packet["Camera Temperature 3"].value() != 5200) - check = 1; - if (packet["Camera Temperature 4"].value() != 5300) - check = 1; - if (packet["Camera Humidity 1"].value() != 5000) - check = 1; - if (packet["Camera Humidity 2"].value() != 5100) - check = 1; - if (packet["Camera Humidity 3"].value() != 5200) - check = 1; - if (packet["Camera Humidity 4"].value() != 5300) - check = 1; - if (packet["Blu laser frequency"].value() != 1) - check = 1; - if (packet["Blu laser duration"].value() != 2) - check = 1; - if (packet["Blu laser voltage"].value() != 3) - check = 1; - if (packet["Green laser frequency"].value() != 4) - check = 1; - if (packet["Green laser duration"].value() != 5) - check = 1; - if (packet["Green laser voltage"].value() != 6) - check = 1; - if (packet["Laser diodes temperature"].value() != 4700) - check = 1; - if (packet["Camera rate meter"].value() != 8) - check = 1; - if (packet["Total Camera rate meter"].value() != 9) - check = 1; - if (packet["Dead time"].value() != 1000) - check = 1; - - // DFH - for (long unsigned int i = 0; i < 37; i++) { - int offset = packet.getPacketStructure().indexOfField( - "pdm Val_#" + std::to_string(i)).value(); - - //pdm val - if ((packet[offset].value()) != 1) - check = 1; - - // pdm id - if (packet[offset + 2].value() != (i + 1)) - check = 1; - // std::cout << "pdm id " << packet[offset + 2].value() << std::endl; - - //SiPM temperature 1 - if (packet[offset + 3].value() != 0) - check = 1; - - //SiPM temperature 2 - if (packet[offset + 4].value() != 1) - check = 1; - - //SiPM temperature 3 - if (packet[offset + 5].value() != 2) - check = 1; - - //CITIROC board temperature - if (packet[offset + 6].value() != 3) - check = 1; - - //CITIROC board voltage 1 - if (packet[offset + 7].value() != 4) - check = 1; - - //CITIROC board voltage 2 - if (packet[offset + 8].value() != 5) - check = 1; - - //CITIROC board current 1 - if (packet[offset + 9].value() != 6) - check = 1; - - //CITIROC board current 2 - if (packet[offset + 10].value() != 7) - check = 1; - - //CITIROC board current 3 - if (packet[offset + 11].value() != 8) - check = 1; - - //FPGA temperature - if (packet[offset + 12].value() != 9) - check = 1; - - //FPGA voltage - if (packet[offset + 13].value() != 10) - check = 1; - - //SiPM High Voltage - if (packet[offset + 14].value() != 11000) - check = 1; - - //SiPM_current - if (packet[offset + 15].value() != 12000000) { - check = 1; // TO CHECK MAY BE WRONG !!! - std::cout - << "HK SiPM current expected 12000000, found " - << packet[offset + 15].value() << std::endl; - std::string sipm_error = std::to_string( - packet[offset + 15].value()); - log_val_6 = - "('HK SiPM current expected 12000000, found : " - + sipm_error + "')"; - - } - - //Camera Rate - if (packet[offset + 16].value() != 13) - check = 1; - - //PDM Trigger rate - if (packet[offset + 17].value() != 14) - check = 1; - - // PDM pixel id rate - second level cycle - for (long unsigned int j = 0; j < 64; j++) { - if (packet[offset + 18 + j].value() != (100 + j)) - check = 1; - } - - } - - } - - if (type == 10 && subtype == 2) { - packet.updatePacketStructure(structureVHG); - - if (fits_movabs_hdu(fptr_hvg, 2, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - - fits_write_col(fptr_hvg, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, - &status); - fits_write_col(fptr_hvg, TSTRING, 2, 1, 1, nrowsxtime, - &date, &status); - fits_write_col(fptr_hvg, TINT, 3, 1, 1, nrowsxtime, &time, - &status); // should be second with sofa TODO - fits_write_col(fptr_hvg, TINT, 4, 1, 1, nrowsxtime, &time, - &status); //sould be nanosecond field TODO - - for (long unsigned int i = 0; i < 37; i++) { - int offset = packet.getPacketStructure().indexOfField( - "pdm val_#" + std::to_string(i)).value(); - - // pdm val " - //if (packet[offset].value() != 1 ) check = 1; (per le prime pdm è 1 poi va a 0 -> non controllabile - if ((packet[offset].value() != 1)) { - //std::cout << "file " << filename << " packet VHG - ssc:" << ssc << " -pdm: " << i << " has pdm val not set 1 has expected. Error not taken into account" << std::endl; - - //write log on db - std::string error = - "file " + filename + " packet VHG - ssc:" - + std::to_string(ssc) + " -pdm: " - + std::to_string(i) - + " has pdm val not set 1 has expected. Error not taken into account"; - log_val_7 = " ('" + error + "')"; - - } - - // samp par - if (packet[offset + 1].value() != 14) - check = 1; // 65535 - - // pdm id - if (packet[offset + 2].value() != (i + 1)) - check = 1; - - // second level cycle - float step = 0; - for (int j = 0; j < 64; j++) { - //if (packet[offset + 3 + j].value() != (j + step)) check = 1; // VAR pixel . . 64 - int value = packet[offset + 3 + j].value(); - float floatValue; - std::memcpy(&floatValue, &value, sizeof(float)); - if (floatValue != step) - check = 1; - - step = step + 0.5; - } - - } - - } - - if (type == 10 && subtype == 3) { - packet.updatePacketStructure(structureVLG); - - if (fits_movabs_hdu(fptr_hlg, 2, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - - fits_write_col(fptr_hlg, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, - &status); - fits_write_col(fptr_hlg, TSTRING, 2, 1, 1, nrowsxtime, - &date, &status); - fits_write_col(fptr_hlg, TINT, 3, 1, 1, nrowsxtime, &time, - &status); // should be second with sofa TODO - fits_write_col(fptr_hlg, TINT, 4, 1, 1, nrowsxtime, &time, - &status); //sould be nanosecond field TODO - - for (long unsigned int i = 0; i < 37; i++) { - int offset = packet.getPacketStructure().indexOfField( - "pdm val_#" + std::to_string(i)).value(); - - // pdm val " - //if (packet[offset].value() != 1 ) check = 1; (per le prime pdm è 1 poi va a 0 -> non controllabile - if (packet[offset].value() != 1) { - //std::cout << "file " << filename << " packet VLG - ssc:" << ssc << " pdm: " << i << " has pdm val not set 1 has expected. Error not taken into account" << std::endl; - //write log on db - std::string error = - "file " + filename + " packet LHG - ssc:" - + std::to_string(ssc) + " -pdm: " - + std::to_string(i) - + " has pdm val not set 1 has expected. Error not taken into account"; - log_val_8 = "('" + error + "')"; - ; - } - - // samp par - if (packet[offset + 1].value() != 16) - check = 1; // 16383 - - // pdm id - if (packet[offset + 2].value() != (i + 1)) - check = 1; - - float epsilon = 1e-3; // Adjust this tolerance as needed. used only for test and little values - // second level cycle - float step = 0; - for (int j = 0; j < 64; j++) { - //if (packet[offset + 3 + j].value() != (j + step)) check = 1; // VAR pixel . . 64 - int value = packet[offset + 3 + j].value(); - float floatValue = 0.0; - std::memcpy(&floatValue, &value, sizeof(float)); - if (std::fabs(floatValue - step) > epsilon) { - check = 1; - std::cout << floatValue << " vs " << step - << std::endl; - } - step = step + 0.1; - } - } - } - } - - // Reset parameter values for the next iteration - - packet.updatePacketStructure(structureGen); - - // update header of FITS files (adding info from the last packeT) - - if (fits_movabs_hdu(fptr_c11, 1, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_movabs_hdu(fptr_c14, 1, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_movabs_hdu(fptr_s22, 1, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_movabs_hdu(fptr_hvg, 1, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_movabs_hdu(fptr_hlg, 1, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_movabs_hdu(fptr_hk, 1, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - - char s22_tstart[] = ""; // to be customized - if (fits_update_key_str(fptr_s22, "TSTART", s22_tstart, - "First event time ", &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - char s22_tstop[] = ""; // to be customized - if (fits_update_key_str(fptr_s22, "TSTOP", s22_tstop, - "Last event time ", &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - char s22_telapse[] = ""; // to be customized - if (fits_update_key_str(fptr_s22, "TELAPSE", s22_telapse, - "Diff of start and end times ", &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - char s22_dstart[] = ""; // to be customized - if (fits_update_key_str(fptr_s22, "DATE-OBS", s22_dstart, - "Start date of the first data event (UTC)", &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - char s22_dstop[] = ""; // to be customized - if (fits_update_key_str(fptr_s22, "DATE-END", s22_dstop, - "End date of the last data event (UTC)", &status)) { - fits_report_error(stderr, status); // print error message - return (status); - } - - // do the same for the other files || - - // Close the FITS files -> if the binary table is empty then remove file - long nrows = 0; - int hdunum = 2; // Access the second HDU +int main(int argc, char **argv) { - if (fits_movabs_hdu(fptr_c11, hdunum, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_get_num_rows(fptr_c11, &nrows, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (fits_close_file(fptr_c11, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (nrows == 0) { - printf( - "Not found C11 packet. Corresponding FITS File will not be saved.\n"); - if (remove(c11filename) != 0) { - perror("Error removing file"); - } - } + if (argc != 2) { + std::cout << "Usage: " << argv[0] << " \n"; + return 1; + } - nrows = 0; - if (fits_movabs_hdu(fptr_c14, hdunum, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_get_num_rows(fptr_c14, &nrows, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (fits_close_file(fptr_c14, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (nrows == 0) { - printf( - "Not found C14 packet. Corresponding FITS File will not be saved.\n"); - if (remove(c14filename) != 0) { - perror("Error removing file"); - } - } + FitsFunctions::initFitsSchema(); - nrows = 0; - if (fits_movabs_hdu(fptr_s22, hdunum, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_get_num_rows(fptr_s22, &nrows, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (fits_close_file(fptr_s22, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (nrows == 0) { - printf( - "Not found S22 packet. Corresponding FITS File will not be saved.\n"); - if (remove(s22filename) != 0) { - perror("Error removing file"); - } - } + const fs::path path(argv[1]); - nrows = 0; - if (fits_movabs_hdu(fptr_hvg, hdunum, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_get_num_rows(fptr_hvg, &nrows, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (fits_close_file(fptr_hvg, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (nrows == 0) { - printf( - "Not found HVG packet. Corresponding FITS File will not be saved.\n"); - if (remove(hvgfilename) != 0) { - perror("Error removing file"); - } + try { + if (!fs::exists(path) || !fs::is_directory(path)) { + std::cerr << "Invalid directory path: " << path << std::endl; + return 1; + } + for (const auto &entry : fs::recursive_directory_iterator(path)) { // for each file in the directory + if (!entry.is_regular_file()) { + std::string filePath = entry.path().string(); + std::cerr << filePath << " not a valid file" << std::endl; + continue; } + const std::string filePath = entry.path().string(); - nrows = 0; - if (fits_movabs_hdu(fptr_hlg, hdunum, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_get_num_rows(fptr_hlg, &nrows, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (fits_close_file(fptr_hlg, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (nrows == 0) { - printf( - "Not found HLG packet. Corresponding FITS File will not be saved.\n"); - if (remove(hlgfilename) != 0) { - perror("Error removing file"); - } - } + // TODO Check regular expr file name + // if not regular {continue} - nrows = 0; - if (fits_movabs_hdu(fptr_hk, hdunum, NULL, &status)) { - fits_report_error(stderr, status); - return status; - } - if (fits_get_num_rows(fptr_hk, &nrows, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (fits_close_file(fptr_hk, &status)) { - fits_report_error(stderr, status); - return (status); - } - if (nrows == 0) { - printf( - "Not found HK packet. Corresponding FITS File will not be saved.\n"); - if (remove(hkfilename) != 0) { - perror("Error removing file"); - } - } + std::cout << "Reading file: " << filePath << std::endl; + AstriFitsProcessor fitsproc(filePath); + // TODO fitsproc.paramfromfilename = param + // TODO fitsproc.from_file.run_id = 1; - // Free allocated memory - for (int i = 0; i < ncols14; ++i) { - delete[] ttype14[i]; - //free(tform14[i]); - } + fitsproc.startProcessing(); } - } - - return 0; - -} - -int main(int argc, char **argv) { - // get in input a directory to process - - if (argc != 2) { - std::cout << "Usage: " << argv[0] << " \n"; - return 1; - } - - const std::string folderPath = argv[1]; - const fs::path path(folderPath); - - try { - if (fs::exists(path) && fs::is_directory(path)) { - ReadFilesRecursively(path); - } else { - std::cerr << "Invalid directory path: " << folderPath << std::endl; - return 1; - } } catch (const std::exception &e) { std::cerr << "An error occurred: " << e.what() << std::endl; return 1; } return 0; + } diff --git a/src/main_old.cpp b/src/main_old.cpp new file mode 100644 index 0000000..525130f --- /dev/null +++ b/src/main_old.cpp @@ -0,0 +1,566 @@ +#include +#include +#include +#include +#include + +#include + +#include + + + +#ifndef ASTRI_PACKETS_PATH +#define ASTRI_PACKETS_PATH std::string(std::getenv("HOME")).append("/prova_exe/config/AstriPackets") +#endif + +namespace fs = std::filesystem; + +std::string set_fitsname(std::string rawname, std::string type) { + return rawname + type + ".lv0.fits"; +} + +int ReadFilesRecursively(const fs::path &path) { + + using namespace inaf::oasbo::Packets; + + std::string pathGen( + std::string(ASTRI_PACKETS_PATH).append( + "/AstriMA/AstriMAGeneric.json")); + std::string pathS22( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/22.json")); + std::string pathC11( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/11.json")); + std::string pathC14( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/14.json")); + std::string pathVHG( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/102.json")); + std::string pathVLG( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/103.json")); + std::string pathHK( + std::string(ASTRI_PACKETS_PATH).append("/AstriMA/101.json")); + + PacketStructureJson structureGen(pathGen); + PacketStructureJson structureS22(pathS22); + PacketStructureJson structureC11(pathC11); + PacketStructureJson structureC14(pathC14); + PacketStructureJson structureHK(pathHK); + PacketStructureJson structureVHG(pathVHG); + PacketStructureJson structureVLG(pathVLG); + + AstriMaGeneric packet(structureGen); + + int type = 0; + int subtype = 0; + long unsigned int ssc = 0; + int evt_counter = 0; + std::string date = ""; + std::string time = ""; + bool vt = false; + int check = 0; + + int status = 0; + // Set the MJD (Modified Julian Date) reference date and fraction of day + double mjdReference = 58849.0; + double fractionOfDayReference = 0.00080074; + + // iterate over all raw files + for (const auto &entry : fs::recursive_directory_iterator(path)) { + + if (entry.is_regular_file()) { + const std::string filePath = entry.path().string(); + std::cout << "Reading file: " << filePath << std::endl; + + // processing file + std::ifstream file(filePath); + + if (file.is_open()) { + std::cout << "Il file è stato aperto correttamente." + << std::endl; + } else { + std::cerr << "Impossibile aprire il file." << std::endl; + continue; // go ahead with next file + } + + std::string filename = entry.path().filename().string(); + std::string mode_id = filename.substr(23, 1); + std::string run_id = filename.substr(25, 6); + + int maxSize = packet.getPacketStructureByteSize(); + int headerSize = packet.getHeaderSize(); + + // create fits files + fitsfile *fptr_c14; + + + + + int status = 0; // status value that will be updated by CFITSIO functions + + + std::string filename_c14 = set_fitsname(filename, "0104"); + std::string *ptrfilename_c14 = &filename_c14; + const char *c14filename = ptrfilename_c14->c_str(); + + char extname[] = "EVENTS"; // name of the extension + const int commonElements = 13; + const std::string commonttype[commonElements] = { "VT", "TIME_UTC", + "TIME_S", "TIME_NS", "SSC", "PKT_LEN", "EVT_CTR", "LID", + "FIB_ST", "FIB_CONT", "FIB_PULS", "RGB_CONT", "RGB_PULS" }; + const std::string commontform[commonElements] = { "1L", "19A", "1V", + "1V", "1U", "1U", "1V", "1L", "1L", "1L", "1L", "1I", "1I" }; + const std::string commontunit[commonElements] = { "", + "YYYY-MM-DDThh:mm:ss", "s", "ns", "", "", "", "", "", "", + "", "", "" }; + + const int ncols14 = 142; + + // Using std::vector for dynamic strings + std::vector v_ttype14; + std::vector v_tform_14; + std::vector v_tunit_14; + + for (int i = 0; i < 13; ++i) { + v_ttype14.push_back(commonttype[i]); + v_tform_14.push_back(commontform[i]); + v_tunit_14.push_back(commontunit[i]); + } + + // Col 14 to 25 (12 fields) + const std::string ttype14_1[] = { "TRG_DT", "TRG_CDT", "PTM", + "TRG_PXL_ID", "TRG_TYPE", "TRG_CONF", "ETRG_TYPE", + "ETRG_FRQ", "PDM_VAL", "TRG_ENB", "TRG_PDM", "EVT_VAL" }; + const std::string tform14_1[] = { "1U", "1U", "1L", "1B", "1I", + "1I", "1I", "1I", "37L", "37L", "37L", "37L" }; + const std::string tunit14_1[] = { "pe", "pe", "", "", "", "", "", + "", "", "", "", "" }; + + for (int i = 0; i < 12; ++i) { + v_ttype14.push_back(ttype14_1[i]); + v_tform_14.push_back(tform14_1[i]); + v_tunit_14.push_back(tunit14_1[i]); + } + + for (int i = 26; i < 63; ++i) { + // Generate column names (you may replace this logic as needed) + v_ttype14.push_back("PDMHG" + std::to_string(i + 1)); + v_tform_14.push_back("64I"); + v_tunit_14.push_back(""); + } + + for (int i = 63; i < 100; ++i) { + // Generate column names (you may replace this logic as needed) + v_ttype14.push_back("PDMLG" + std::to_string(i + 1)); + v_tform_14.push_back("64I"); + v_tunit_14.push_back(""); + } + + for (int i = 100; i < 137; ++i) { + // Generate column names (you may replace this logic as needed) + v_ttype14.push_back("PDMTTP" + std::to_string(i + 1)); + v_tform_14.push_back("64I"); + v_tunit_14.push_back(""); + } + + // Col 137 to 143 (7 fields) + const std::string ttype14_2[] = { "PDM_HIT", "PDM_MASK", "PDM_TMP1", + "PDM_TMP2", "PDM_TMP3", "PDM_HV", "PDM_CU" }; + const std::string tform14_2[] = { "37I", "37I", "37U", "37U", "37U", + "37U", "37V" }; + const std::string tunit14_2[] = { "", "", "", "", "", "", "" }; + + for (int i = 0; i < 7; ++i) { + v_ttype14.push_back(ttype14_2[i]); + v_tform_14.push_back(tform14_2[i]); + v_tunit_14.push_back(tunit14_2[i]); + } + + char *ttype14[ncols14]; + char *tform14[ncols14]; + char *tunit14[ncols14]; + + for (int i = 0; i < ncols14; ++i) { + ttype14[i] = new char[v_ttype14[i].size() + 1]; + std::strcpy(ttype14[i], v_ttype14[i].c_str()); + + tform14[i] = new char[v_tform_14[i].size() + 1]; + std::strcpy(tform14[i], v_tform_14[i].c_str()); + + tunit14[i] = new char[v_tunit_14[i].size() + 1]; + std::strcpy(tunit14[i], v_tunit_14[i].c_str()); + + } + + + int nrowsxtime = 1; // it's fixed -> one packet for row -> one packet each interation + + + if (fits_create_file(&fptr_c14, c14filename, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + char* ttype14_c[] = {(char*)"we", (char*)"we"}; + if (fits_create_tbl(fptr_c14, BINARY_TBL, 0, ncols14, ttype14_c, + tform14, tunit14, extname, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + + header_fits::set_header(fptr_c14, c14filename, "01", "04"); + + std::string log_val_1; + std::string log_val_2; + std::string log_val_3; + std::string log_val_4; + std::string log_val_5; + std::string log_val_6; + std::string log_val_7; + std::string log_val_8; + + int s22_row = 0; + int c14_row = 0; + int c11_row = 0; + int vhg_row = 0; + int vlg_row = 0; + int hk_row = 0; + + while (true) { + // Leggi i primi 6 byte + uint8_t bytes[maxSize]; + file.read((char*) bytes, headerSize); + if (file.gcount() < headerSize) { + // Fine del file + break; + } + + packet.copyToMemory(bytes, headerSize); + int payloadSize = packet.getPayloadSize(); + + file.read((char*) &bytes[headerSize], payloadSize); + packet.copyToMemory(bytes, headerSize + payloadSize); + + type = packet.getType(); + subtype = packet.getSubType(); + + ssc = packet.getSSC(); + evt_counter = packet.getEventCounter(); + + //date + std::stringstream ss_date; + ss_date << std::setfill('0') << std::setw(4) + << packet[5].value() << "-" << std::setw(2) + << packet[6].value() << "-" << packet[7].value() << "T" + << std::setfill('0') << std::setw(2) + << packet[8].value() << ":" << std::setw(2) + << packet[9].value() << ":" << packet[10].value(); + date = ss_date.str(); + + //date + std::stringstream ss_time; + ss_time << std::setfill('0') << std::setw(2) + << packet[8].value() << ":" << std::setw(2) + << packet[9].value() << ":" << packet[10].value(); + time = ss_time.str(); + + + + int pkt_len = packet["Packet Length"].value(); + bool lid = packet["lid"].value(); + bool fib_st = packet["fib st"].value(); + bool fib_cont = packet["fib cont"].value(); + bool fib_puls = packet["fib puls"].value(); + int rgb_cont = packet["rgb cont"].value(); + int rgb_puls = packet["rgb puls"].value(); + + + // Convert the UTC time to TT using the sofa library + + std::string YY = std::to_string(packet[5].value()); + std::string MM = std::to_string(packet[6].value()); + std::string DD = std::to_string(packet[7].value()); + std::string hh = std::to_string(packet[8].value()); + std::string mm = std::to_string(packet[9].value()); + std::string ss = std::to_string(packet[10].value()); + +// double utcMJD = iauCal2jd(YY, MM, DD, &mjdReference); +// double utcFractionOfDay = hh / 24.0 + mm / 1440.0 + ss / 86400.0; +// double utcTT = iauDtf2d("UTC", 0, YY, MM, DD, hh, mm , utcFractionOfDay) + 32.184 / 86400.0; +// +// +// std::cout << "UTC to TT conversion: " << utcTT << " MJD" << std::endl; + + + + // valid time + vt = packet[11].value(); + + check = 0; // new packet - reset the check variable for test purpose + + if (!(type == 1 && subtype == 4)) continue; // TODO to remove + + + if (type == 1 && subtype == 4) { + + c14_row++; // new row in the fits file + + packet.updatePacketStructure(structureC14); + + if (fits_movabs_hdu(fptr_c14, 2, NULL, &status)) { + + fits_report_error(stderr, status); + return status; + } + + + fits_write_col(fptr_c14, TLOGICAL, 1, c14_row, 1, nrowsxtime, &vt, &status); // vt + fits_write_col(fptr_c14, TSTRING, 2, c14_row, 1, nrowsxtime, &date, &status); // TIME_UTC + fits_write_col(fptr_c14, TINT, 3, c14_row, 1, nrowsxtime, &time, &status); // TIME_S to be updated with sofa TODO + fits_write_col(fptr_c14, TINT, 4, c14_row, 1, nrowsxtime, &time, &status); //TIME_NS + fits_write_col(fptr_c14, TUSHORT , 5, c14_row, 1, nrowsxtime, &ssc, &status); //SSC 1U + fits_write_col(fptr_c14, TUSHORT , 6, c14_row, 1, nrowsxtime, &pkt_len, &status); // PKT_LEN 1U + fits_write_col(fptr_c14, TUINT, 7, c14_row, 1, nrowsxtime, &evt_counter, &status); // EVT_CTR 1V + fits_write_col(fptr_c14, TLOGICAL, 8, c14_row, 1, nrowsxtime, &lid, &status); // LID 1L + fits_write_col(fptr_c14, TLOGICAL, 9, c14_row, 1, nrowsxtime, &fib_st, &status); // FIB_ST 1L + fits_write_col(fptr_c14, TLOGICAL, 10, c14_row, 1, nrowsxtime, &fib_cont, &status); // FIB_CONT 1L + fits_write_col(fptr_c14, TLOGICAL, 11, c14_row, 1, nrowsxtime, &fib_puls, &status); // FIB_PULS 1L + fits_write_col(fptr_c14, TSHORT, 12, c14_row, 1, nrowsxtime, &rgb_cont, &status); // RGB_CONT 1L + fits_write_col(fptr_c14, TSHORT , 13, c14_row, 1, nrowsxtime, &rgb_puls, &status); //RGB_PULS 1I + + + int trg_dt = packet["pixel trigger discriminator threshold"].value(); + int trg_cdt = packet["pixel trigger charge discriminator threshold"].value(); + bool ptm = packet["PTM"].value(); + int tpl = packet["triggered pixel id"].value(); + int trg_type = packet["trg type"].value(); + int trg_conf = packet["trigger config"].value(); + std::optional ex_type = packet["ext trigger type"].value(); + int ex_freq = packet["ext trigger frequency"].value(); + + fits_write_col(fptr_c14, TUSHORT , 14, c14_row, 1, nrowsxtime, &trg_dt, &status); + fits_write_col(fptr_c14, TUSHORT , 15, c14_row, 1, nrowsxtime, &trg_cdt, &status); + fits_write_col(fptr_c14, TLOGICAL , 16, c14_row, 1, nrowsxtime, &ptm, &status); + fits_write_col(fptr_c14, TBYTE , 17, c14_row, 1, nrowsxtime, &tpl, &status); + fits_write_col(fptr_c14, TSHORT , 18, c14_row, 1, nrowsxtime, &trg_type, &status); + fits_write_col(fptr_c14, TSHORT , 19, c14_row, 1, nrowsxtime, &trg_conf, &status); + fits_write_col(fptr_c14, TSHORT , 20, c14_row, 1, nrowsxtime, &ex_type, &status); + fits_write_col(fptr_c14, TSHORT , 21, c14_row, 1, nrowsxtime, &ex_freq, &status); + + + + // SDF + bool pdm_val[37]; + bool trg_enb[37]; + bool trg_pdm[37]; + bool evt_val[37]; + + for (long unsigned int i = 0; i < 37 ; i++){ + int offset = packet.getPacketStructure().indexOfField("pdm val_#" + std::to_string(i)).value(); + + //pdm val + pdm_val[i] = (packet[offset].value() ); + + + //trg enb + trg_enb[i] = packet[offset + 1].value(); + + //trg pdm + trg_pdm[i] = packet[offset + 2].value(); + + //evt val + evt_val[i] = packet[offset + 3].value(); + + + // pdm id + if (packet[offset + 5].value() != (i + 1)) + check = 1; + // std::cout << "pdm id " << packet[offset + 2].value() << std::endl; + + // high gains + long unsigned int step = 0; + + for (int j = 0; j < 64; j++) { + if (packet[offset + 6 + j].value() != 63 - step) + check = 1; + step = step + 1; + } + + // low gains + step = 0; + for (int j = 0; j < 64; j++) { + if (packet[offset + 6 + 64 + j].value() + != 63 - step) + check = 1; + step = step + 1; + } + + // time triggers + for (long unsigned int j = 0; j < 64; j++) { + if (packet[offset + 6 + 64 + 64 + j].value() != j) + check = 1; + step = step + 1; + } + + //HIT + //std::cout << "HIT " << packet[offset + 6 + 64 + 64 + 64].value() << std::endl; + //write log on db + std::string hit = std::to_string( + packet[offset + 6 + 64 + 64 + 64].value()); + log_val_4 = "('C14 HIT value is: " + hit + "'), "; + + // Trigger mask + //write log on db + std::string trigger_mask = std::to_string( + packet[offset + 6 + 64 + 64 + 64 + 1].value()); + log_val_5 = "('C14 Trigger mask value is: " + + trigger_mask + "')"; + + // SiPM temp 1 + if (packet[offset + 6 + 64 + 64 + 64 + 2].value() != 1) + check = 1; + + // SiPM temp 2 + if (packet[offset + 6 + 64 + 64 + 64 + 3].value() != 2) + check = 1; + + // SiPM temp 3 + if (packet[offset + 6 + 64 + 64 + 64 + 4].value() != 3) + check = 1; + + // SiPM High voltate + if (packet[offset + 6 + 64 + 64 + 64 + 5].value() + != 4000) + check = 1; + + // SiPM current + if (packet[offset + 6 + 64 + 64 + 64 + 6].value() + != 5000000) + check = 1; + + } + fits_write_col(fptr_c14, TLOGICAL , 22, c14_row, 1, nrowsxtime, &pdm_val, &status); + fits_write_col(fptr_c14, TLOGICAL , 23, c14_row, 1, nrowsxtime, &trg_enb, &status); + fits_write_col(fptr_c14, TLOGICAL , 24, c14_row, 1, nrowsxtime, &trg_pdm, &status); + fits_write_col(fptr_c14, TLOGICAL , 25, c14_row, 1, nrowsxtime, &evt_val, &status); + + } + + + } + + // Reset parameter values for the next iteration + + packet.updatePacketStructure(structureGen); + + // update header of FITS files (adding info from the last packeT) + + + if (fits_movabs_hdu(fptr_c14, 1, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + + + char s22_tstart[] = ""; // to be customized + if (fits_update_key_str(fptr_c14, "TSTART", s22_tstart, + "First event time ", &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + char s22_tstop[] = ""; // to be customized + if (fits_update_key_str(fptr_c14, "TSTOP", s22_tstop, + "Last event time ", &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + char s22_telapse[] = ""; // to be customized + if (fits_update_key_str(fptr_c14, "TELAPSE", s22_telapse, + "Diff of start and end times ", &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + char s22_dstart[] = ""; // to be customized + if (fits_update_key_str(fptr_c14, "DATE-OBS", s22_dstart, + "Start date of the first data event (UTC)", &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + char s22_dstop[] = ""; // to be customized + if (fits_update_key_str(fptr_c14, "DATE-END", s22_dstop, + "End date of the last data event (UTC)", &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + // do the same for the other files || + + // Close the FITS files -> if the binary table is empty then remove file + long nrows = 0; + int hdunum = 2; // Access the second HDU + + nrows = 0; + if (fits_movabs_hdu(fptr_c14, hdunum, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_get_num_rows(fptr_c14, &nrows, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (fits_close_file(fptr_c14, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (nrows == 0) { + printf( + "Not found C14 packet. Corresponding FITS File will not be saved.\n"); + if (remove(c14filename) != 0) { + perror("Error removing file"); + } + } + + + // Free allocated memory + for (int i = 0; i < ncols14; ++i) { + delete[] ttype14[i]; + //free(tform14[i]); + } + + } + + } + + return 0; + +} + +int main(int argc, char **argv) { + + // get in input a directory to process + + if (argc != 2) { + std::cout << "Usage: " << argv[0] << " \n"; + return 1; + } + + const std::string folderPath = argv[1]; + const fs::path path(folderPath); + + try { + if (fs::exists(path) && fs::is_directory(path)) { + ReadFilesRecursively(path); + } else { + std::cerr << "Invalid directory path: " << folderPath << std::endl; + return 1; + } + } catch (const std::exception &e) { + std::cerr << "An error occurred: " << e.what() << std::endl; + return 1; + } + + return 0; +} -- GitLab From ace5debec5808cd1353ea54a815e2b6a6389ddec Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Thu, 8 Feb 2024 20:45:48 +0100 Subject: [PATCH 2/7] wip --- CMakeLists.txt | 2 +- include/AstriFitsProcessor.h | 5 +- include/FitsHelper.h | 141 ++++++++++++++++++++--------------- src/AstriFitsProcessor.cpp | 92 +++++++++++++---------- src/main.cpp | 3 - 5 files changed, 138 insertions(+), 105 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b2b719..0acf9c3 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ project(Fits-Preprocessor) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") if(NOT TARGET AstriPacket) diff --git a/include/AstriFitsProcessor.h b/include/AstriFitsProcessor.h index cfd4918..e59f616 100644 --- a/include/AstriFitsProcessor.h +++ b/include/AstriFitsProcessor.h @@ -1,4 +1,5 @@ #pragma once + #include #include @@ -27,7 +28,8 @@ protected: int tel_id, run_id; }; - int add14EventPacketToFits(fitsfile*); + std::string computeFitsFileName(int); + int add14EventPacketToFits(fitsfile*, int nrow); public: AstriFitsProcessor(std::string file_to_process); @@ -41,3 +43,4 @@ public: }; + diff --git a/include/FitsHelper.h b/include/FitsHelper.h index be4c8af..c56d9ef 100644 --- a/include/FitsHelper.h +++ b/include/FitsHelper.h @@ -7,26 +7,29 @@ #include #include -#define NUM_PDM 37 - namespace FitsElements { -static char **ttype14 = nullptr; // init in FitsFunctions::initFitsSchema -static char **tunit14 = nullptr; // init in FitsFunctions::initFitsSchema -static char **tform14 = nullptr; // init in FitsFunctions::initFitsSchema -static const int ncols14 = 142; +static int status = 0; +static int num_pdm = 37; -static const std::string extname = "events"; +// primary C14HDU {keyword, value, comment} +static std::vector> c14_primary_hdu; +// C14 hdu events {type, format, unit, format_CODE} +static std::vector> c14_hdu_events; +static char **ttype14; // init in FitsFunctions::initFitsSchema +static char **tunit14;// init in FitsFunctions::initFitsSchema +static char **tform14; // init in FitsFunctions::initFitsSchema +static int ncolC14; // init in FitsFunctions::initFitsSchema +static const char* extname = "events"; }; namespace FitsFunctions { -[[maybe_unused]] static void initFitsSchema(){ +static void initC14FitsSchema(){ - // primary HDU {keyword, value, comment}, when value = X it meant it will be read later - std::vector > - primary_hdu = { + // primary C14HDU {keyword, value, comment}, when value = X it meant it will be read later + FitsElements::c14_primary_hdu = { { "TELESCOP","ASTRI-MA","Name of telescope generating data"}, { "INSTRUME","CAMERA","Name of instrument generating data"}, { "TEL_ID","X","Telescope ID"}, @@ -34,7 +37,7 @@ namespace FitsFunctions { { "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS"}, { "FILENAME","X","Filename"}, { "FILEVERS","1","File version"}, - { "ORIGIN_ID","X","Date origin and contex"}, + { "ORIGIN_ID","X","Date origin and context"}, { "OBS_DATE","X","Date of the beginning of the observation night"}, { "OBS_MODE","X","Observation mode"}, { "PROG_ID","X","Observation program ID"}, @@ -67,74 +70,75 @@ namespace FitsFunctions { { "DATASUM","X","Data unit checksum updated"}, }; - // C14 hdu events {type, format, unit} - std::vector > - c14_hdu_events = { - {"VT","1L",""}, - {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss"}, - {"TIME_S","1V","s"}, - {"TIME_NS","1V","ns"}, - {"SSC","1U",""}, - {"PKT_LEN","1U",""}, - {"EVT_CTR","1V",""}, - {"LID","1L",""}, - {"FIB_ST","1L",""}, - {"FIB_CONT","1L",""}, - {"FIB_PULS","1L",""}, - {"RGB_CONT","1I",""}, - {"RGB_PULS","1I",""}, - {"TRG_DT","1U","pe"}, - {"TRG_CDT","1U","pe"}, - {"TRG_TYPE","1I",""}, - {"TRG_CONF","1I",""}, - {"PDM_VAL","37L",""}, - {"TRG_ENB","37L",""}, - {"TRG_PDM","37L",""}, - {"EVT_VAL","37L",""}, + // C14 hdu events {type, format, unit, format_CODE} + FitsElements::c14_hdu_events = { + {"VT","1L","", TLOGICAL}, + {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss", TSTRING}, + {"TIME_S","1V","s", TUINT}, + {"TIME_NS","1V","ns", TUINT}, + {"SSC","1U","", TUSHORT}, + {"PKT_LEN","1U","", TUSHORT}, + {"EVT_CTR","1V","", TUINT}, + {"LID","1L","", TLOGICAL}, + {"FIB_ST","1L","", TLOGICAL}, + {"FIB_CONT","1L","", TLOGICAL}, + {"FIB_PULS","1L","", TLOGICAL}, + {"RGB_CONT","1I","", TSHORT}, + {"RGB_PULS","1I","", TSHORT}, + {"TRG_DT","1U","pe", TUSHORT}, + {"TRG_CDT","1U","pe", TUSHORT}, + {"PTM","1L","", TLOGICAL}, + {"TRG_PXL_ID","1B","", TBYTE}, + {"TRG_TYPE","1I","", TSHORT}, + {"TRG_CONF","1I","", TSHORT}, + {"PDM_VAL","37L","", TLOGICAL}, + {"TRG_ENB","37L","", TLOGICAL}, + {"TRG_PDM","37L","", TLOGICAL}, + {"EVT_VAL","37L","", TLOGICAL}, }; // high gains - for(int i = 0; i < NUM_PDM; i++){ + for(int i = 0; i < FitsElements::num_pdm; i++){ std::stringstream fieldName; fieldName << "PDM"; fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 fieldName << "HI"; - c14_hdu_events.push_back({fieldName.str(),"64U","adu"}); + FitsElements::c14_hdu_events.push_back({fieldName.str(),"64U","adu", TUSHORT}); } // low gains - for(int i = 0; i < NUM_PDM; i++){ + for(int i = 0; i < FitsElements::num_pdm; i++){ std::stringstream fieldName; fieldName << "PDM"; fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 fieldName << "LO"; - c14_hdu_events.push_back({fieldName.str(),"64U","adu"}); + FitsElements::c14_hdu_events.push_back({fieldName.str(),"64U","adu", TUSHORT}); } // time trigger pixel - for(int i = 0; i < NUM_PDM; i++){ + for(int i = 0; i < FitsElements::num_pdm; i++){ std::stringstream fieldName; fieldName << "PDM"; fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 fieldName << "TTP"; - c14_hdu_events.push_back({fieldName.str(),"64B","ns"}); + FitsElements::c14_hdu_events.push_back({fieldName.str(),"64B","ns", TBYTE}); } // latest fields - c14_hdu_events.push_back({"PDM_HIT","64X",""}); - c14_hdu_events.push_back({"PDM_MASK","64X",""}); - c14_hdu_events.push_back({"PDM_TMP1","37U",""}); - c14_hdu_events.push_back({"PDM_TMP2","37U",""}); - c14_hdu_events.push_back({"PDM_TMP3","37U",""}); - c14_hdu_events.push_back({"PDM_HV","37U",""}); - c14_hdu_events.push_back({"PDM_CU","37V",""}); - + FitsElements::c14_hdu_events.push_back({"PDM_HIT","64X","", TBIT}); + FitsElements::c14_hdu_events.push_back({"PDM_MASK","64X","", TBIT}); + FitsElements::c14_hdu_events.push_back({"PDM_TMP1","37U","", TBIT}); + FitsElements::c14_hdu_events.push_back({"PDM_TMP2","37U","", TUSHORT}); + FitsElements::c14_hdu_events.push_back({"PDM_TMP3","37U","", TUSHORT}); + FitsElements::c14_hdu_events.push_back({"PDM_HV","37U","", TUSHORT}); + FitsElements::c14_hdu_events.push_back({"PDM_CU","37V","", TUINT}); + + FitsElements::ncolC14 = FitsElements::c14_hdu_events.size(); + FitsElements::ttype14 = new char*[FitsElements::ncolC14]; + FitsElements::tform14 = new char*[FitsElements::ncolC14]; + FitsElements::tunit14 = new char*[FitsElements::ncolC14]; // init char** of type, form, uinit - int hdu_event_size = c14_hdu_events.size(); - FitsElements::ttype14 = new char*[hdu_event_size]; - FitsElements::tform14 = new char*[hdu_event_size]; - FitsElements::tunit14 = new char*[hdu_event_size]; - for (int i = 0; i < hdu_event_size; i++) { - std::string type = std::get<0>(c14_hdu_events[i]); - std::string form = std::get<1>(c14_hdu_events[i]); - std::string unit = std::get<2>(c14_hdu_events[i]); + for (int i = 0; i < FitsElements::ncolC14; i++) { + std::string type = std::get<0>(FitsElements::c14_hdu_events[i]); + std::string form = std::get<1>(FitsElements::c14_hdu_events[i]); + std::string unit = std::get<2>(FitsElements::c14_hdu_events[i]); FitsElements::ttype14[i] = new char[type.size() + 1]; FitsElements::tform14[i] = new char[form.size() + 1]; FitsElements::tunit14[i] = new char[unit.size() + 1]; @@ -142,10 +146,27 @@ namespace FitsFunctions { std::strcpy(FitsElements::tform14[i], form.c_str()); std::strcpy(FitsElements::tunit14[i], unit.c_str()); } - } +static void initFitsFileC14(fitsfile *fits_file, std::string filename) { + using namespace FitsElements; + fits_create_file(&fits_file, filename.c_str(), &status); + if (status != 0) { + fits_report_error(stderr, status); // print error message + } -}; + for (auto entry : c14_primary_hdu) { + std::string keyword(std::get<0>(entry)); + std::string value(std::get<1>(entry)); + std::string comment(std::get<2>(entry)); + fits_update_key_str(fits_file, keyword.c_str(), value.c_str(), + comment.c_str(), &status); + } + + fits_create_tbl(fits_file, BINARY_TBL, 0, ncolC14, + ttype14, tform14, tunit14, + extname, &status); +} +}; diff --git a/src/AstriFitsProcessor.cpp b/src/AstriFitsProcessor.cpp index 4f8cd1f..025d38f 100644 --- a/src/AstriFitsProcessor.cpp +++ b/src/AstriFitsProcessor.cpp @@ -17,41 +17,34 @@ AstriFitsProcessor::AstriFitsProcessor(std::string file_to_process) { std::string pathGen( std::string(ASTRI_PACKETS_PATH).append( "/AstriMA/AstriMAGeneric.json")); - this->structureGen = new Packets::PacketStructureJson( - pathGen); + this->structureGen = new Packets::PacketStructureJson(pathGen); this->packet = new Packets::AstriMaGeneric(*structureGen); // prepare other packet structures std::string pathC11( std::string(ASTRI_PACKETS_PATH).append("/AstriMA/11.json")); - this->structureC11 = new Packets::PacketStructureJson( - pathC11); + this->structureC11 = new Packets::PacketStructureJson(pathC11); std::string pathC14( std::string(ASTRI_PACKETS_PATH).append("/AstriMA/14.json")); - this->structureC14 = new Packets::PacketStructureJson( - pathC14); + this->structureC14 = new Packets::PacketStructureJson(pathC14); std::string pathS22( std::string(ASTRI_PACKETS_PATH).append("/AstriMA/22.json")); - this->structureS22 = new Packets::PacketStructureJson( - pathS22); + this->structureS22 = new Packets::PacketStructureJson(pathS22); std::string pathVHG( std::string(ASTRI_PACKETS_PATH).append("/AstriMA/102.json")); - this->structureVHG = new Packets::PacketStructureJson( - pathVHG); + this->structureVHG = new Packets::PacketStructureJson(pathVHG); std::string pathVLG( std::string(ASTRI_PACKETS_PATH).append("/AstriMA/103.json")); - this->structureVLG = new Packets::PacketStructureJson( - pathVLG); + this->structureVLG = new Packets::PacketStructureJson(pathVLG); std::string pathHK( std::string(ASTRI_PACKETS_PATH).append("/AstriMA/101.json")); - this->structureHK = new Packets::PacketStructureJson( - pathHK); - + this->structureHK = new Packets::PacketStructureJson(pathHK); + FitsFunctions::initC14FitsSchema(); } void AstriFitsProcessor::setFileToProcess(std::string file_to_process) { @@ -64,38 +57,37 @@ std::string AstriFitsProcessor::getFileToProcess() { } int AstriFitsProcessor::startProcessing() { - if(this->receiver->connectToClient() < 0){ + using namespace FitsElements; + if (this->receiver->connectToClient() < 0) { std::cerr << "Cannot open file: " << receiver->getHost() << std::endl; return -1; } - - fitsfile *fptr_c14 = nullptr; - - int status = 0; - fits_create_file(&fptr_c14, "sdds", &status); - if (status != 0) { - fits_report_error(stderr, status); // print error message - return -1; - } - - fits_create_tbl(fptr_c14, BINARY_TBL, 0, FitsElements::ncols14, // TODO FIX seg fault - FitsElements::ttype14, FitsElements::tform14, FitsElements::tunit14, - FitsElements::extname.c_str(), &status); - if (status != 0) { - fits_report_error(stderr, status); // print error message - return -1; - } + fitsfile *fptr_c14; + bool firstC14 = true; + int nrow14 = 0; while (true) { // go ahead until no packet to read - std::cout << "Receiving packet" << std::endl; - int rcv = this->receiver->receiveFromClient(*this->packet); - if (rcv > 0) { // packet read - if(packet->getType() == 1 && packet->getSubType() == 4){ + if (packet->getType() == 1 && packet->getSubType() == 4) { + nrow14++; + if (firstC14) { + std::string filename = computeFitsFileName(14); + FitsFunctions::initFitsFileC14(fptr_c14, filename); + if (status != 0) { // error + fits_report_error(stderr, status); // print error message + continue; + } + fits_movabs_hdu(fptr_c14, 2, NULL, &status); // go to events hdu + if (status != 0) { // error + fits_report_error(stderr, status); // print error message + continue; + } + firstC14 = false; + } this->packet->updatePacketStructure(*this->structureC14); - add14EventPacketToFits(fptr_c14); + add14EventPacketToFits(fptr_c14, nrow14); this->packet->updatePacketStructure(*this->structureGen); continue; } @@ -103,9 +95,10 @@ int AstriFitsProcessor::startProcessing() { } if (rcv < 0) { // error reading packet std::cerr << "Error reading packet" << std::endl; + exit(EXIT_FAILURE); continue; } - if(rcv == 0){ // no more packets to read + if (rcv == 0) { // no more packets to read break; } @@ -114,9 +107,28 @@ int AstriFitsProcessor::startProcessing() { return 1; } -int AstriFitsProcessor::add14EventPacketToFits(fitsfile*){ +int AstriFitsProcessor::add14EventPacketToFits(fitsfile *fitsfile, int nrow) { + std::vector values; + // TODO + // leggere i dati da packet e inserirli in values + + for (int i = 0; i < values.size(); i++) { + fits_write_col(fitsfile, std::get<3>(FitsElements::c14_hdu_events[i]), + i + 1, nrow, 1, 1, &values[i], &FitsElements::status); + if (FitsElements::status != 0) { // error + fits_report_error(stderr, FitsElements::status); + } + } return 1; } +std::string AstriFitsProcessor::computeFitsFileName(int type_subtype) { + std::string ret = this->file_to_process; // TODO to check real naming conv + if (type_subtype == 14) { + ret = ret.substr(0, ret.length() - 4).append("_14.lv0.fits"); + return ret; + } + return ret; +} diff --git a/src/main.cpp b/src/main.cpp index 3091fde..0468c7d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,7 +5,6 @@ #include #include -#include #include @@ -18,8 +17,6 @@ int main(int argc, char **argv) { return 1; } - FitsFunctions::initFitsSchema(); - const fs::path path(argv[1]); try { -- GitLab From 418eff0a550d6d9a3df262a25535a0896b61dde5 Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Wed, 21 Feb 2024 20:44:09 +0100 Subject: [PATCH 3/7] . --- include/FitsHelper.h | 166 ++++---- src/AstriFitsProcessor.cpp | 205 +++++++++- src/main.cpp | 7 +- src/main_old.cpp | 758 ++++++++++++++++++++++++++++++++++++- 4 files changed, 1034 insertions(+), 102 deletions(-) diff --git a/include/FitsHelper.h b/include/FitsHelper.h index c56d9ef..0264ddd 100644 --- a/include/FitsHelper.h +++ b/include/FitsHelper.h @@ -6,16 +6,16 @@ #include #include #include +#include namespace FitsElements { -static int status = 0; static int num_pdm = 37; // primary C14HDU {keyword, value, comment} static std::vector> c14_primary_hdu; // C14 hdu events {type, format, unit, format_CODE} -static std::vector> c14_hdu_events; +static std::vector> c14_events_hdu; static char **ttype14; // init in FitsFunctions::initFitsSchema static char **tunit14;// init in FitsFunctions::initFitsSchema static char **tform14; // init in FitsFunctions::initFitsSchema @@ -28,50 +28,8 @@ namespace FitsFunctions { static void initC14FitsSchema(){ - // primary C14HDU {keyword, value, comment}, when value = X it meant it will be read later - FitsElements::c14_primary_hdu = { - { "TELESCOP","ASTRI-MA","Name of telescope generating data"}, - { "INSTRUME","CAMERA","Name of instrument generating data"}, - { "TEL_ID","X","Telescope ID"}, - { "ORIGIN","ASTRIDPS","Name of organization making file"}, - { "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS"}, - { "FILENAME","X","Filename"}, - { "FILEVERS","1","File version"}, - { "ORIGIN_ID","X","Date origin and context"}, - { "OBS_DATE","X","Date of the beginning of the observation night"}, - { "OBS_MODE","X","Observation mode"}, - { "PROG_ID","X","Observation program ID"}, - { "SBL_ID","X","Observation scheduling block"}, - { "RUN_ID","X","Incremental array-wise file counter"}, - { "DAQ_MODE","X","DAQ status identification"}, - { "DAQ_ID","X","Telescope-wise DAQ incremental counter"}, - { "DATAMODE","X","Run type"}, - { "SUBMODE","X","Run subtype"}, - { "NTEL","X","Number of active telescopes during observation"}, - { "TIMESYS","TT","Time reference system"}, - { "MJDREFI","58849","MJD reference date"}, - { "MJDREFF","0.00080074","MJD reference fraction of day"}, - { "TIMEOFFS","0.0","Time offset"}, - { "TIMEUNIT","s","Time unit"}, - { "TSTART","X","First event time"}, - { "TSTOP","X","Last event time"}, - { "TELAPSE","X","Diff of start and end times"}, - { "DATE-OBS","X","Start date of the first data event (UTC)"}, - { "DATE-END","X","End date of the last data event (UTC)"}, - { "DATE","X","File creation date (UTC)"}, - { "OBJECT","X","Name of observed object"}, - { "RADECSYS","FK5","Coordinate reference frame"}, - { "EQUINOX","2000.0","Coordinate epoch"}, - { "RA_OBJ","X","[deg] R.A. Object"}, - { "DEC_OBJ","X","[deg] Decl. Objec"}, - { "RA_PNT","X","Pointed R.A. (J2000)"}, - { "DEC_PNT","X","Pointed Dec. (J2000"}, - { "CHECKSUM","X","HDU checksum updated"}, - { "DATASUM","X","Data unit checksum updated"}, - }; - // C14 hdu events {type, format, unit, format_CODE} - FitsElements::c14_hdu_events = { + FitsElements::c14_events_hdu = { {"VT","1L","", TLOGICAL}, {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss", TSTRING}, {"TIME_S","1V","s", TUINT}, @@ -91,6 +49,8 @@ static void initC14FitsSchema(){ {"TRG_PXL_ID","1B","", TBYTE}, {"TRG_TYPE","1I","", TSHORT}, {"TRG_CONF","1I","", TSHORT}, + {"ETRG_TYPE","1I","", TSHORT}, + {"ETRG_FREQ","1I","", TSHORT}, {"PDM_VAL","37L","", TLOGICAL}, {"TRG_ENB","37L","", TLOGICAL}, {"TRG_PDM","37L","", TLOGICAL}, @@ -103,7 +63,7 @@ static void initC14FitsSchema(){ fieldName << "PDM"; fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 fieldName << "HI"; - FitsElements::c14_hdu_events.push_back({fieldName.str(),"64U","adu", TUSHORT}); + FitsElements::c14_events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); } // low gains for(int i = 0; i < FitsElements::num_pdm; i++){ @@ -111,7 +71,7 @@ static void initC14FitsSchema(){ fieldName << "PDM"; fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 fieldName << "LO"; - FitsElements::c14_hdu_events.push_back({fieldName.str(),"64U","adu", TUSHORT}); + FitsElements::c14_events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); } // time trigger pixel for(int i = 0; i < FitsElements::num_pdm; i++){ @@ -119,26 +79,26 @@ static void initC14FitsSchema(){ fieldName << "PDM"; fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 fieldName << "TTP"; - FitsElements::c14_hdu_events.push_back({fieldName.str(),"64B","ns", TBYTE}); + FitsElements::c14_events_hdu.push_back({fieldName.str(),"64B","ns", TBYTE}); } // latest fields - FitsElements::c14_hdu_events.push_back({"PDM_HIT","64X","", TBIT}); - FitsElements::c14_hdu_events.push_back({"PDM_MASK","64X","", TBIT}); - FitsElements::c14_hdu_events.push_back({"PDM_TMP1","37U","", TBIT}); - FitsElements::c14_hdu_events.push_back({"PDM_TMP2","37U","", TUSHORT}); - FitsElements::c14_hdu_events.push_back({"PDM_TMP3","37U","", TUSHORT}); - FitsElements::c14_hdu_events.push_back({"PDM_HV","37U","", TUSHORT}); - FitsElements::c14_hdu_events.push_back({"PDM_CU","37V","", TUINT}); - - FitsElements::ncolC14 = FitsElements::c14_hdu_events.size(); + FitsElements::c14_events_hdu.push_back({"PDM_HIT","64X","", TBIT}); + FitsElements::c14_events_hdu.push_back({"PDM_MASK","64X","", TBIT}); + FitsElements::c14_events_hdu.push_back({"PDM_TMP1","37U","", TUSHORT}); + FitsElements::c14_events_hdu.push_back({"PDM_TMP2","37U","", TUSHORT}); + FitsElements::c14_events_hdu.push_back({"PDM_TMP3","37U","", TUSHORT}); + FitsElements::c14_events_hdu.push_back({"PDM_HV","37U","", TUSHORT}); + FitsElements::c14_events_hdu.push_back({"PDM_CU","37V","", TUINT}); + + FitsElements::ncolC14 = FitsElements::c14_events_hdu.size(); FitsElements::ttype14 = new char*[FitsElements::ncolC14]; FitsElements::tform14 = new char*[FitsElements::ncolC14]; FitsElements::tunit14 = new char*[FitsElements::ncolC14]; // init char** of type, form, uinit for (int i = 0; i < FitsElements::ncolC14; i++) { - std::string type = std::get<0>(FitsElements::c14_hdu_events[i]); - std::string form = std::get<1>(FitsElements::c14_hdu_events[i]); - std::string unit = std::get<2>(FitsElements::c14_hdu_events[i]); + std::string type = std::get<0>(FitsElements::c14_events_hdu[i]); + std::string form = std::get<1>(FitsElements::c14_events_hdu[i]); + std::string unit = std::get<2>(FitsElements::c14_events_hdu[i]); FitsElements::ttype14[i] = new char[type.size() + 1]; FitsElements::tform14[i] = new char[form.size() + 1]; FitsElements::tunit14[i] = new char[unit.size() + 1]; @@ -148,25 +108,85 @@ static void initC14FitsSchema(){ } } - -static void initFitsFileC14(fitsfile *fits_file, std::string filename) { +static int initFitsFileC14(fitsfile *fits_file, std::string filename) { using namespace FitsElements; - fits_create_file(&fits_file, filename.c_str(), &status); + int status = 0; + + int simple = 1; + fits_write_key(fits_file, TLOGICAL, "SIMPLE", &simple, "File FITS di esempio", &status); + int bitpix = 16; + fits_write_key(fits_file, TINT, "BITPIX", &bitpix, "Numero di bit per pixel", &status); + int naxis = 0; + fits_write_key(fits_file, TINT, "NAXIS", &naxis, "Numero di dimensioni", &status); + int extend = 1; + fits_write_key(fits_file, TLOGICAL, "EXTEND", &extend, "Fits Dataset may contain extensions", &status); + fits_write_key_str(fits_file, "TELESCOP", "ASTRI-MA","Name of telescope generating data", &status); + fits_write_key_str(fits_file, "INSTRUME","CAMERA","Name of instrument generating data", &status); + fits_write_key_str(fits_file, "TEL_ID","X","Telescope ID", &status); + fits_write_key_str(fits_file, "ORIGIN","ASTRIDPS","Name of organization making file", &status); + fits_write_key_str(fits_file, "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS", &status); + fits_write_key_str(fits_file, "FILENAME","X","Filename", &status); + int16_t filevers = 1; + fits_write_key(fits_file, TSHORT, "FILEVERS",&filevers,"File version", &status); + fits_write_key_str(fits_file, "ORIGIN_ID","X","Date origin and context", &status); + fits_write_key_str(fits_file, "OBS_DATE","X","Date of the beginning of the observation night", &status); + fits_write_key_str(fits_file, "OBS_MODE","X","Observation mode", &status); + fits_write_key_str(fits_file, "PROG_ID","X","Observation program ID", &status); + fits_write_key_str(fits_file, "SBL_ID","X","Observation scheduling block", &status); + fits_write_key_str(fits_file, "RUN_ID","X","Incremental array-wise file counter", &status); + fits_write_key_str(fits_file, "DAQ_MODE","X","DAQ status identification", &status); + fits_write_key_str(fits_file, "DAQ_ID","X","Telescope-wise DAQ incremental counter", &status); + fits_write_key_str(fits_file, "DATAMODE","X","Run type", &status); + fits_write_key_str(fits_file, "SUBMODE","X","Run subtype", &status); + int16_t ntel = 0; + fits_write_key(fits_file, TSHORT, "NTEL",&ntel,"Number of active telescopes during observation", &status); + fits_write_key_str(fits_file, "TIMESYS","TT","Time reference system", &status); + int32_t MJDREFI = 58849; + fits_write_key(fits_file, TINT, "MJDREFI",&MJDREFI,"MJD reference fraction of day", &status); + float MJDREFF = 0.00080074; + fits_write_key(fits_file, TFLOAT, "MJDREFF",&MJDREFF,"MJD reference fraction of day", &status); + float TIMEOFFS = 0.0; + fits_write_key(fits_file, TFLOAT, "TIMEOFFS",&MJDREFF,"MJD reference fraction of day", &status); + fits_write_key_str(fits_file, "TIMEUNIT","s","Time unit", &status); + fits_write_key_str(fits_file, "TSTART","X","First event time", &status); + fits_write_key_str(fits_file, "TSTOP","X","Last event time", &status); + fits_write_key_str(fits_file, "TELAPSE","X","Diff of start and end times", &status); + fits_write_key_str(fits_file, "DATE-OBS","X","Start date of the first data event (UTC)", &status); + fits_write_key_str(fits_file, "DATE-END","X","End date of the last data event (UTC)", &status); + fits_write_key_str(fits_file, "DATE","X","File creation date (UTC)", &status); + fits_write_key_str(fits_file, "OBJECT","X","Name of observed object", &status); + fits_write_key_str(fits_file, "RADECSYS","FK5","Coordinate reference frame", &status); + fits_write_key_str(fits_file, "EQUINOX","2000.0","Coordinate epoch", &status); + float RA_OBJ = 0.0; + fits_write_key(fits_file, TFLOAT, "RA_OBJ",&RA_OBJ,"[deg] R.A. Object", &status); + float DEC_OBJ = 0.0; + fits_write_key(fits_file, TFLOAT, "DEC_OBJ",&DEC_OBJ,"[deg] Decl. Objec", &status); + float RA_PNT = 0.0; + fits_write_key(fits_file, TFLOAT, "RA_PNT",&RA_PNT,"Pointed R.A. (J2000)", &status); + float DEC_PNT = 0.0; + fits_write_key(fits_file, TFLOAT, "DEC_PNT",&DEC_PNT,"Pointed Dec. (J2000", &status); + fits_write_key_str(fits_file, "CHECKSUM","X","HDU checksum updated", &status); + fits_write_key_str(fits_file, "DATASUM","X","Data unit checksum updated", &status); + + + fits_create_tbl(fits_file, BINARY_TBL, 0, ncolC14, ttype14, tform14, + tunit14, extname, &status); if (status != 0) { fits_report_error(stderr, status); // print error message + fits_delete_file(fits_file, &status); + return -1; } - for (auto entry : c14_primary_hdu) { - std::string keyword(std::get<0>(entry)); - std::string value(std::get<1>(entry)); - std::string comment(std::get<2>(entry)); - fits_update_key_str(fits_file, keyword.c_str(), value.c_str(), - comment.c_str(), &status); - } - fits_create_tbl(fits_file, BINARY_TBL, 0, ncolC14, - ttype14, tform14, tunit14, - extname, &status); + status = 0; + fits_movabs_hdu(fits_file, 2, nullptr, &status); + + if (status != 0) { + fits_report_error(stderr, status); // print error message + fits_delete_file(fits_file, &status); + return -1; + } + return 1; } }; diff --git a/src/AstriFitsProcessor.cpp b/src/AstriFitsProcessor.cpp index 025d38f..3d82894 100644 --- a/src/AstriFitsProcessor.cpp +++ b/src/AstriFitsProcessor.cpp @@ -67,6 +67,7 @@ int AstriFitsProcessor::startProcessing() { bool firstC14 = true; int nrow14 = 0; + while (true) { // go ahead until no packet to read int rcv = this->receiver->receiveFromClient(*this->packet); if (rcv > 0) { // packet read @@ -74,14 +75,15 @@ int AstriFitsProcessor::startProcessing() { nrow14++; if (firstC14) { std::string filename = computeFitsFileName(14); - FitsFunctions::initFitsFileC14(fptr_c14, filename); - if (status != 0) { // error + int status = 0; + fits_create_file(&fptr_c14, filename.c_str(), &status); + if (status != 0) { fits_report_error(stderr, status); // print error message - continue; + return -1; } - fits_movabs_hdu(fptr_c14, 2, NULL, &status); // go to events hdu - if (status != 0) { // error - fits_report_error(stderr, status); // print error message + status = 0; + int done = FitsFunctions::initFitsFileC14(fptr_c14, filename); + if(done < 1){ // error continue; } firstC14 = false; @@ -95,10 +97,11 @@ int AstriFitsProcessor::startProcessing() { } if (rcv < 0) { // error reading packet std::cerr << "Error reading packet" << std::endl; - exit(EXIT_FAILURE); continue; } if (rcv == 0) { // no more packets to read + int res = 0; + fits_close_file(fptr_c14, &res); break; } @@ -109,14 +112,190 @@ int AstriFitsProcessor::startProcessing() { int AstriFitsProcessor::add14EventPacketToFits(fitsfile *fitsfile, int nrow) { std::vector values; - // TODO - // leggere i dati da packet e inserirli in values + + bool vt = this->packet->operator []("vt").value(); + values.push_back(&vt); + uint8_t year = this->packet->operator []("year").value(); + uint8_t month = this->packet->operator []("month").value(); + uint8_t day = this->packet->operator []("day").value(); + uint8_t hours = this->packet->operator []("hours").value(); + uint8_t minutes = this->packet->operator []("minutes").value(); + uint8_t seconds = this->packet->operator []("seconds").value(); + std::stringstream ss; + ss << year; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << month; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << seconds; + std::string time_utc = ss.str(); + values.push_back(&time_utc); + values.push_back(&seconds); + uint32_t time_tag_ns = this->packet->operator []("Time Tag Nanoseconds").value(); + values.push_back(&time_tag_ns); + uint16_t ssc = this->packet->operator []("Source Sequence Counter SSC").value(); + values.push_back(&ssc); + uint16_t packet_len = this->packet->operator []("Packet Length").value(); + values.push_back(&packet_len); + uint32_t evt_counter = this->packet->operator []("Event Counter").value(); + values.push_back(&evt_counter); + bool lid = this->packet->operator []("lid").value(); + values.push_back(&lid); + bool fib_st = this->packet->operator []("fib st").value(); + values.push_back(&fib_st); + bool fib_cont = this->packet->operator []("fib cont").value(); + values.push_back(&fib_cont); + bool fib_puls = this->packet->operator []("fib puls").value(); + values.push_back(&fib_puls); + int8_t rgb_cont = this->packet->operator []("rgb cont").value(); + values.push_back(&rgb_cont); + int8_t rgb_puls = this->packet->operator []("rgb puls").value(); + values.push_back(&rgb_puls); + uint16_t pix_trg_dt = this->packet->operator []("pixel trigger discriminator threshold").value(); + values.push_back(&pix_trg_dt); + uint16_t pix_trg_charge_dt = this->packet->operator []("pixel trigger charge discriminator threshold").value(); + values.push_back(&pix_trg_charge_dt); + bool ptm = this->packet->operator []("PTM").value(); + values.push_back(&ptm); + uint8_t trg_pix_id = this->packet->operator []("triggered pixel id").value(); + values.push_back(&trg_pix_id); + bool trg_type = this->packet->operator []("trg type").value(); + values.push_back(&trg_type); + bool trg_config = this->packet->operator []("trigger config").value(); + values.push_back(&trg_config); + uint16_t etrg_type = this->packet->operator []("ext trigger type").value(); + values.push_back(&etrg_type); + uint16_t etrg_freq = this->packet->operator []("ext trigger frequency").value(); + values.push_back(&etrg_freq); + bool pdm_vals[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "pdm val_#" << i; + pdm_vals[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&pdm_vals); + bool trg_enbs[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "trg enb_#" << i; + trg_enbs[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&trg_enbs); + bool trg_pdms[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "trg pdm_#" << i; + trg_pdms[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&trg_pdms); + bool evt_vals[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "evt val_#" << i; + evt_vals[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&evt_vals); + uint16_t high_gains[37][64]; + for (int i = 0; i < 37; i++) { + for (int j = 0; j < 64; j++) { + std::stringstream ss; + ss << "high gain pixel_#" << j << "_#" << i; + high_gains[i][j] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&high_gains[i]); + } + uint16_t low_gains[37][64]; + for (int i = 0; i < 37; i++) { + for (int j = 0; j < 64; j++) { + std::stringstream ss; + ss << "low gain pixel_#" << j << "_#" << i; + low_gains[i][j] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&low_gains[i]); + } + uint8_t time_triggers[37][64]; + for (int i = 0; i < 37; i++) { + for (int j = 0; j < 64; j++) { + std::stringstream ss; + ss << "time trigger pixel_#" << j << "_#" << i; + time_triggers[i][j] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&time_triggers[i]); + } +// bool hit_registers[37][64] = {}; +// for (int i = 0; i < 37; i++) { +// std::stringstream ss; +// ss << "HIT register_#" << i; +// size_t hit = this->packet->operator [](ss.str()).value(); +// int count = 37; +// while (hit > 0) { +// hit_registers[i][count] = (hit & 1); +// hit >>= 1; +// count--; +// } +// values.push_back(&hit_registers[i]); +// } +// bool trigger_mask[37][64] = {}; +// for (int i = 0; i < 37; i++) { +// std::stringstream ss; +// ss << "Trigger Mask_#" << i; +// size_t mask = this->packet->operator [](ss.str()).value(); +// int count = 37; +// while (mask > 0) { +// trigger_mask[i][count] = (mask & 1); +// mask >>= 1; +// count--; +// } +// values.push_back(&trigger_mask[i]); +// } + uint16_t sipm_t1[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 1_#" << i; + sipm_t1[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t1); + uint16_t sipm_t2[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 2_#" << i; + sipm_t2[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t2); + uint16_t sipm_t3[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 3_#" << i; + sipm_t3[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t3); + uint16_t sipm_hv[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "SiPM High Voltage_#" << i; + sipm_hv[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_hv); + uint16_t sipm_cu[FitsElements::num_pdm]; + for(int i = 0; i < FitsElements::num_pdm; i++){ + std::stringstream ss; + ss << "SiPM current_#" << i; + sipm_cu[i] = this->packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_cu); for (int i = 0; i < values.size(); i++) { - fits_write_col(fitsfile, std::get<3>(FitsElements::c14_hdu_events[i]), - i + 1, nrow, 1, 1, &values[i], &FitsElements::status); - if (FitsElements::status != 0) { // error - fits_report_error(stderr, FitsElements::status); + int res = 0; + fits_write_col(fitsfile, std::get<3>(FitsElements::c14_events_hdu[i]), + i + 1, nrow, 1, 1, &values[i], &res); + if (res != 0) { // error + std::cerr << "error at: " << i << std::endl; + fits_report_error(stderr, res); } } return 1; diff --git a/src/main.cpp b/src/main.cpp index 0468c7d..87950f9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,12 +1,12 @@ #include #include +#include + #include #include #include #include -#include - namespace fs = std::filesystem; @@ -44,12 +44,9 @@ int main(int argc, char **argv) { } - } catch (const std::exception &e) { std::cerr << "An error occurred: " << e.what() << std::endl; return 1; } - return 0; - } diff --git a/src/main_old.cpp b/src/main_old.cpp index 525130f..819015e 100644 --- a/src/main_old.cpp +++ b/src/main_old.cpp @@ -1,3 +1,10 @@ +/* + * main.cpp + * + * Created on: Jul 13, 2023 + * Author: Vito Conforti + */ + #include #include #include @@ -5,6 +12,7 @@ #include #include +#include #include @@ -90,19 +98,41 @@ int ReadFilesRecursively(const fs::path &path) { int headerSize = packet.getHeaderSize(); // create fits files + fitsfile *fptr_c11; fitsfile *fptr_c14; - + fitsfile *fptr_s22; + fitsfile *fptr_hvg; + fitsfile *fptr_hlg; + fitsfile *fptr_hk; int status = 0; // status value that will be updated by CFITSIO functions + std::string filename_c11 = set_fitsname(filename, "0101"); + std::string *ptrfilenamec11 = &filename_c11; + const char *c11filename = ptrfilenamec11->c_str(); std::string filename_c14 = set_fitsname(filename, "0104"); std::string *ptrfilename_c14 = &filename_c14; const char *c14filename = ptrfilename_c14->c_str(); - char extname[] = "EVENTS"; // name of the extension + std::string filename_s22 = set_fitsname(filename, "0202"); + std::string *ptrfilenames22 = &filename_s22; + const char *s22filename = ptrfilenames22->c_str(); + + std::string filename_hvg = set_fitsname(filename, "1002"); + std::string *ptrfilenamehvg = &filename_hvg; + const char *hvgfilename = ptrfilenamehvg->c_str(); + + std::string filename_hlg = set_fitsname(filename, "1003"); + std::string *ptrfilenamehlg = &filename_hlg; + const char *hlgfilename = ptrfilenamehlg->c_str(); + + std::string filename_hk = set_fitsname(filename, "1001"); + std::string *ptrfilenamehk = &filename_hk; + const char *hkfilename = ptrfilenamehk->c_str(); + const int commonElements = 13; const std::string commonttype[commonElements] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS", "SSC", "PKT_LEN", "EVT_CTR", "LID", @@ -113,6 +143,19 @@ int ReadFilesRecursively(const fs::path &path) { "YYYY-MM-DDThh:mm:ss", "s", "ns", "", "", "", "", "", "", "", "", "" }; + // Set up parameters for the binary table DUMMY To be customized + char extname[] = "EVENTS"; // name of the extension + char *ttype11[58] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS", "SSC", + "PKT_LEN", "EVT_CTR", "LID", "FIB_ST", "FIB_CONT", + "FIB_PULS", "RGB_CONT", "RGB_PULS", "TRG_DT", "PTM", + "TRG_PXL_ID", "TIME_WIND", "DISC_CHAIN", "PDNM_VAL" }; + char *tform11[58] = { "1D", "19A", "1V", "1V", "1U", "1U", "1V", + "1L", "1L", "1L", "1L", "1I", "1I", "1U", "1L", "1B", "1I", + "1L", "37L" }; + char *tunit11[58] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns", "", "", + "", "", "", "", "", "", "", "", "", "", "", "", "" }; + int ncols11 = 19; + const int ncols14 = 142; // Using std::vector for dynamic strings @@ -191,23 +234,96 @@ int ReadFilesRecursively(const fs::path &path) { } + char *ttype22[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; + char *tform22[] = { "1D", "19A", "1V", "1V" }; + char *tunit22[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; + int ncols22 = 4; + + char *ttype102[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; + char *tform102[] = { "1D", "19A", "1V", "1V" }; + char *tunit102[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; + int ncols102 = 4; + + char *ttype103[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; + char *tform103[] = { "1D", "19A", "1V", "1V" }; + char *tunit103[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; + int ncols103 = 4; + + char *ttype101[] = { "VT", "TIME_UTC", "TIME_S", "TIME_NS" }; + char *tform101[] = { "1D", "19A", "1V", "1V" }; + char *tunit101[] = { "", "YYYY-MM-DDThh:mm:ss", "s", "ns" }; + int ncols101 = 4; int nrowsxtime = 1; // it's fixed -> one packet for row -> one packet each interation + if (fits_create_file(&fptr_c11, c11filename, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + if (fits_create_tbl(fptr_c11, BINARY_TBL, 0, ncols11, ttype11, + tform11, tunit11, extname, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } if (fits_create_file(&fptr_c14, c14filename, &status)) { fits_report_error(stderr, status); // print error message return (status); } - char* ttype14_c[] = {(char*)"we", (char*)"we"}; - if (fits_create_tbl(fptr_c14, BINARY_TBL, 0, ncols14, ttype14_c, + if (fits_create_tbl(fptr_c14, BINARY_TBL, 0, ncols14, ttype14, tform14, tunit14, extname, &status)) { fits_report_error(stderr, status); // print error message return (status); } + if (fits_create_file(&fptr_s22, s22filename, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + if (fits_create_tbl(fptr_s22, BINARY_TBL, 0, ncols22, ttype22, + tform22, tunit22, extname, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + if (fits_create_file(&fptr_hvg, hvgfilename, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + if (fits_create_tbl(fptr_hvg, BINARY_TBL, 0, ncols102, ttype102, + tform102, tunit102, extname, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + if (fits_create_file(&fptr_hlg, hlgfilename, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + if (fits_create_tbl(fptr_hlg, BINARY_TBL, 0, ncols103, ttype103, + tform103, tunit103, extname, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + if (fits_create_file(&fptr_hk, hkfilename, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + if (fits_create_tbl(fptr_hk, BINARY_TBL, 0, ncols101, ttype101, + tform101, tunit101, extname, &status)) { + fits_report_error(stderr, status); // print error message + return (status); + } + + // todo for other files + header_fits::set_header(fptr_s22, s22filename, "02", "02"); + header_fits::set_header(fptr_c11, c11filename, "01", "01"); header_fits::set_header(fptr_c14, c14filename, "01", "04"); + header_fits::set_header(fptr_hk, hkfilename, "10", "01"); + header_fits::set_header(fptr_hvg, hvgfilename, "10", "02"); + header_fits::set_header(fptr_hlg, hlgfilename, "10", "03"); std::string log_val_1; std::string log_val_2; @@ -299,6 +415,221 @@ int ReadFilesRecursively(const fs::path &path) { if (!(type == 1 && subtype == 4)) continue; // TODO to remove + if (type == 2 && subtype == 2) { + + s22_row++; // new row in the fits file + + + packet.updatePacketStructure(structureS22); + + if (fits_movabs_hdu(fptr_s22, 2, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + + + fits_write_col(fptr_s22, TLOGICAL, 1, c14_row, 1, nrowsxtime, &vt, &status); // vt + fits_write_col(fptr_s22, TSTRING, 2, c14_row, 1, nrowsxtime, &date, &status); // TIME_UTC + fits_write_col(fptr_s22, TINT, 3, c14_row, 1, nrowsxtime, &time, &status); // TIME_S to be updated with sofa TODO + fits_write_col(fptr_s22, TINT, 4, c14_row, 1, nrowsxtime, &time, &status); //TIME_NS -> to be updatew with ns value + fits_write_col(fptr_s22, TUSHORT , 5, c14_row, 1, nrowsxtime, &ssc, &status); //SSC 1U + fits_write_col(fptr_s22, TUSHORT , 6, c14_row, 1, nrowsxtime, &pkt_len, &status); // PKT_LEN 1U + fits_write_col(fptr_s22, TUINT, 7, c14_row, 1, nrowsxtime, &evt_counter, &status); // EVT_CTR 1V + fits_write_col(fptr_s22, TLOGICAL, 8, c14_row, 1, nrowsxtime, &lid, &status); // LID 1L + fits_write_col(fptr_s22, TLOGICAL, 9, c14_row, 1, nrowsxtime, &fib_st, &status); // FIB_ST 1L + fits_write_col(fptr_s22, TLOGICAL, 10, c14_row, 1, nrowsxtime, &fib_cont, &status); // FIB_CONT 1L + fits_write_col(fptr_s22, TLOGICAL, 11, c14_row, 1, nrowsxtime, &fib_puls, &status); // FIB_PULS 1L + fits_write_col(fptr_s22, TSHORT, 12, c14_row, 1, nrowsxtime, &rgb_cont, &status); // RGB_CONT 1L + fits_write_col(fptr_s22, TSHORT , 13, c14_row, 1, nrowsxtime, &rgb_puls, &status); //RGB_PULS 1I + + + + // DFH extension + int trg_dt = packet["pixel trigger discriminator threshold"].value(); + int trg_cdt = packet["pixel trigger charge discriminator threshold"].value(); + int trg_type = packet["trg type"].value(); + int trg_conf = packet["trigger config"].value(); + + + fits_write_col(fptr_s22, TUSHORT , 14, c14_row, 1, nrowsxtime, &trg_dt, &status); + fits_write_col(fptr_s22, TUSHORT , 15, c14_row, 1, nrowsxtime, &trg_cdt, &status); + fits_write_col(fptr_s22, TSHORT , 16, c14_row, 1, nrowsxtime, &trg_type, &status); + fits_write_col(fptr_s22, TSHORT , 17, c14_row, 1, nrowsxtime, &trg_conf, &status); + + + // SDF + bool pdm_val[37]; + bool trg_enb[37]; + bool trg_pdm[37]; + bool evt_val[37]; + for (long unsigned int i = 0; i < 37; i++) { + int offset = packet.getPacketStructure().indexOfField( + "pdm val_#" + std::to_string(i)).value(); + + //pdm val + pdm_val[i] = packet[offset].value(); + + //trg enb + trg_enb[i]= packet[offset + 1].value(); + + //trg pdm + trg_pdm[i] = packet[offset + 2].value(); + + //evt val + evt_val[i] = packet[offset + 3].value(); + + + // high gains + for (long unsigned int j = 0; j < 64; j++) { + if (packet[offset + 6 + j].value() != (j * 256)) + check = 1; + } + + // low gains + offset = offset + 6 + 64; + for (long unsigned int j = 0; j < 64; j++) { + if (packet[offset + j].value() != (j * 256)) + check = 1; + } + + // time trigger + offset = offset + 64; + for (long unsigned int j = 0; j < 64; j++) { + if (packet[offset + j].value() != j) + check = 1; + } + + //HIT + offset = offset + 64; + //std::cout << "HIT" << packet[offset].value() << std::endl; + //write log on db + std::string hit = std::to_string( + packet[offset].value()); + log_val_1 = "('S22 HIT value is: " + hit + "'), "; + // not tested + + // Trigger mask + std::string trigger_mask = std::to_string( + packet[offset + 1].value()); + log_val_2 = "('S22 TRIGGER MASK value is: " + + trigger_mask + "')"; + + // not tested + + // SiPM temp 1 + if (packet[offset + 2].value() != 1) + check = 1; + + // SiPM temp 2 + if (packet[offset + 3].value() != 2) + check = 1; + + // SiPM temp 3 + if (packet[offset + 4].value() != 3) + check = 1; + + // SiPM High voltate + if (packet[offset + 5].value() != 4000) + check = 1; + + // SiPM current + if (packet[offset + 6].value() != 5000000) + check = 1; + + } + + fits_write_col(fptr_s22, TLOGICAL , 18, c14_row, 1, nrowsxtime, &pdm_val, &status); + fits_write_col(fptr_s22, TLOGICAL , 19, c14_row, 1, nrowsxtime, &trg_enb, &status); + fits_write_col(fptr_s22, TLOGICAL , 20, c14_row, 1, nrowsxtime, &trg_pdm, &status); + fits_write_col(fptr_s22, TLOGICAL , 21, c14_row, 1, nrowsxtime, &evt_val, &status); + + } + + if (type == 1 && subtype == 1) { + packet.updatePacketStructure(structureC11); + + if (fits_movabs_hdu(fptr_c11, 2, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + + fits_write_col(fptr_c11, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, + &status); + fits_write_col(fptr_c11, TSTRING, 2, 1, 1, nrowsxtime, + &date, &status); + fits_write_col(fptr_c11, TINT, 3, 1, 1, nrowsxtime, &time, + &status); // should be second with sofa TODO + fits_write_col(fptr_c11, TINT, 4, 1, 1, nrowsxtime, &time, + &status); //sould be nanosecond field TODO + + // DFH extension + if (packet["pixel trigger discriminator threshold"].value() + != (240 + ssc)) + check = 1; // 240 first packet incremente by 1 + if (packet["PTM"].value() != 1) + check = 1; + if (packet["triggered pixel id"].value() != 1) + check = 1; + if (packet["time window"].value() != 3) + check = 1; + if (packet["discriminator chain"].value() != 0) + check = 1; + + // DFH + for (long unsigned int i = 0; i < 37; i++) { + int offset = packet.getPacketStructure().indexOfField( + "pdm val_#" + std::to_string(i)).value(); + + //pdm val + //if ((packet[offset].value() ) != 1) check = 1; + if ((packet[offset].value() != 1)) { + //std::cout << "file " << filename << " packet C11 - ssc:" << ssc << " -pdm: " << i << " has pdm val not set 1 has expected. Error not taken into account" << std::endl; + //write log on db + std::string pdm_val = + "file " + filename + " packet C11 - ssc:" + + std::to_string(ssc) + " -pdm: " + + std::to_string(i) + + " has pdm val not set 1 has expected. Error not taken into account"; + log_val_3 = "('HIT value is: " + pdm_val + "')"; + ; + } + + // pdm id + if (packet[offset + 2].value() != (i + 1)) + check = 1; + // std::cout << "pdm id " << packet[offset + 2].value() << std::endl; + + // trigger counts - second level cycle + for (long unsigned int j = 0; j < 64; j++) { + if (packet[offset + 3 + j].value() + != (240 + j + ssc)) + check = 1; + + } + + // SiPM temp 1 + if (packet[offset + 3 + 64].value() != 1) + check = 1; + + // SiPM temp 2 + if (packet[offset + 3 + 65].value() != 2) + check = 1; + + // SiPM temp 3 + if (packet[offset + 3 + 66].value() != 3) + check = 1; + + // SiPM High voltate + if (packet[offset + 3 + 67].value() != 4000) + check = 1; + + // SiPM current + if (packet[offset + 3 + 68].value() != 5000000) + check = 1; + + } + + } if (type == 1 && subtype == 4) { @@ -445,7 +776,291 @@ int ReadFilesRecursively(const fs::path &path) { } + if (type == 10 && subtype == 1) { + packet.updatePacketStructure(structureHK); + + if (fits_movabs_hdu(fptr_hk, 2, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + + fits_write_col(fptr_hk, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, + &status); + fits_write_col(fptr_hk, TSTRING, 2, 1, 1, nrowsxtime, &date, + &status); + fits_write_col(fptr_hk, TINT, 3, 1, 1, nrowsxtime, &time, + &status); // should be second with sofa TODO + fits_write_col(fptr_hk, TINT, 4, 1, 1, nrowsxtime, &time, + &status); //sould be nanosecond field TODO + + if (packet[0].value() != 1) + check = 1; + if (packet["lid"].value() != 1) + check = 1; + if (packet["fib st"].value() != 1) + check = 1; + if (packet["fib cont"].value() != 1) + check = 1; + if (packet["fib puls"].value() != 1) + check = 1; + if (packet["rgb cont"].value() != 3) + check = 1; + if (packet["rgb puls"].value() != 2) + check = 1; + + // DFH extension + if (packet["Camera Temperature 1"].value() != 5000) + check = 1; + if (packet["Camera Temperature 2"].value() != 5100) + check = 1; + if (packet["Camera Temperature 3"].value() != 5200) + check = 1; + if (packet["Camera Temperature 4"].value() != 5300) + check = 1; + if (packet["Camera Humidity 1"].value() != 5000) + check = 1; + if (packet["Camera Humidity 2"].value() != 5100) + check = 1; + if (packet["Camera Humidity 3"].value() != 5200) + check = 1; + if (packet["Camera Humidity 4"].value() != 5300) + check = 1; + if (packet["Blu laser frequency"].value() != 1) + check = 1; + if (packet["Blu laser duration"].value() != 2) + check = 1; + if (packet["Blu laser voltage"].value() != 3) + check = 1; + if (packet["Green laser frequency"].value() != 4) + check = 1; + if (packet["Green laser duration"].value() != 5) + check = 1; + if (packet["Green laser voltage"].value() != 6) + check = 1; + if (packet["Laser diodes temperature"].value() != 4700) + check = 1; + if (packet["Camera rate meter"].value() != 8) + check = 1; + if (packet["Total Camera rate meter"].value() != 9) + check = 1; + if (packet["Dead time"].value() != 1000) + check = 1; + + // DFH + for (long unsigned int i = 0; i < 37; i++) { + int offset = packet.getPacketStructure().indexOfField( + "pdm Val_#" + std::to_string(i)).value(); + + //pdm val + if ((packet[offset].value()) != 1) + check = 1; + + // pdm id + if (packet[offset + 2].value() != (i + 1)) + check = 1; + // std::cout << "pdm id " << packet[offset + 2].value() << std::endl; + + //SiPM temperature 1 + if (packet[offset + 3].value() != 0) + check = 1; + + //SiPM temperature 2 + if (packet[offset + 4].value() != 1) + check = 1; + + //SiPM temperature 3 + if (packet[offset + 5].value() != 2) + check = 1; + + //CITIROC board temperature + if (packet[offset + 6].value() != 3) + check = 1; + + //CITIROC board voltage 1 + if (packet[offset + 7].value() != 4) + check = 1; + + //CITIROC board voltage 2 + if (packet[offset + 8].value() != 5) + check = 1; + + //CITIROC board current 1 + if (packet[offset + 9].value() != 6) + check = 1; + + //CITIROC board current 2 + if (packet[offset + 10].value() != 7) + check = 1; + + //CITIROC board current 3 + if (packet[offset + 11].value() != 8) + check = 1; + + //FPGA temperature + if (packet[offset + 12].value() != 9) + check = 1; + + //FPGA voltage + if (packet[offset + 13].value() != 10) + check = 1; + + //SiPM High Voltage + if (packet[offset + 14].value() != 11000) + check = 1; + + //SiPM_current + if (packet[offset + 15].value() != 12000000) { + check = 1; // TO CHECK MAY BE WRONG !!! + std::cout + << "HK SiPM current expected 12000000, found " + << packet[offset + 15].value() << std::endl; + std::string sipm_error = std::to_string( + packet[offset + 15].value()); + log_val_6 = + "('HK SiPM current expected 12000000, found : " + + sipm_error + "')"; + + } + + //Camera Rate + if (packet[offset + 16].value() != 13) + check = 1; + + //PDM Trigger rate + if (packet[offset + 17].value() != 14) + check = 1; + + // PDM pixel id rate - second level cycle + for (long unsigned int j = 0; j < 64; j++) { + if (packet[offset + 18 + j].value() != (100 + j)) + check = 1; + } + + } + + } + + if (type == 10 && subtype == 2) { + packet.updatePacketStructure(structureVHG); + + if (fits_movabs_hdu(fptr_hvg, 2, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + + fits_write_col(fptr_hvg, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, + &status); + fits_write_col(fptr_hvg, TSTRING, 2, 1, 1, nrowsxtime, + &date, &status); + fits_write_col(fptr_hvg, TINT, 3, 1, 1, nrowsxtime, &time, + &status); // should be second with sofa TODO + fits_write_col(fptr_hvg, TINT, 4, 1, 1, nrowsxtime, &time, + &status); //sould be nanosecond field TODO + + for (long unsigned int i = 0; i < 37; i++) { + int offset = packet.getPacketStructure().indexOfField( + "pdm val_#" + std::to_string(i)).value(); + + // pdm val " + //if (packet[offset].value() != 1 ) check = 1; (per le prime pdm è 1 poi va a 0 -> non controllabile + if ((packet[offset].value() != 1)) { + //std::cout << "file " << filename << " packet VHG - ssc:" << ssc << " -pdm: " << i << " has pdm val not set 1 has expected. Error not taken into account" << std::endl; + + //write log on db + std::string error = + "file " + filename + " packet VHG - ssc:" + + std::to_string(ssc) + " -pdm: " + + std::to_string(i) + + " has pdm val not set 1 has expected. Error not taken into account"; + log_val_7 = " ('" + error + "')"; + + } + + // samp par + if (packet[offset + 1].value() != 14) + check = 1; // 65535 + + // pdm id + if (packet[offset + 2].value() != (i + 1)) + check = 1; + + // second level cycle + float step = 0; + for (int j = 0; j < 64; j++) { + //if (packet[offset + 3 + j].value() != (j + step)) check = 1; // VAR pixel . . 64 + int value = packet[offset + 3 + j].value(); + float floatValue; + std::memcpy(&floatValue, &value, sizeof(float)); + if (floatValue != step) + check = 1; + + step = step + 0.5; + } + + } + + } + + if (type == 10 && subtype == 3) { + packet.updatePacketStructure(structureVLG); + + if (fits_movabs_hdu(fptr_hlg, 2, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + + fits_write_col(fptr_hlg, TDOUBLE, 1, 1, 1, nrowsxtime, &vt, + &status); + fits_write_col(fptr_hlg, TSTRING, 2, 1, 1, nrowsxtime, + &date, &status); + fits_write_col(fptr_hlg, TINT, 3, 1, 1, nrowsxtime, &time, + &status); // should be second with sofa TODO + fits_write_col(fptr_hlg, TINT, 4, 1, 1, nrowsxtime, &time, + &status); //sould be nanosecond field TODO + + for (long unsigned int i = 0; i < 37; i++) { + int offset = packet.getPacketStructure().indexOfField( + "pdm val_#" + std::to_string(i)).value(); + + // pdm val " + //if (packet[offset].value() != 1 ) check = 1; (per le prime pdm è 1 poi va a 0 -> non controllabile + if (packet[offset].value() != 1) { + //std::cout << "file " << filename << " packet VLG - ssc:" << ssc << " pdm: " << i << " has pdm val not set 1 has expected. Error not taken into account" << std::endl; + //write log on db + std::string error = + "file " + filename + " packet LHG - ssc:" + + std::to_string(ssc) + " -pdm: " + + std::to_string(i) + + " has pdm val not set 1 has expected. Error not taken into account"; + log_val_8 = "('" + error + "')"; + ; + } + + // samp par + if (packet[offset + 1].value() != 16) + check = 1; // 16383 + + // pdm id + if (packet[offset + 2].value() != (i + 1)) + check = 1; + float epsilon = 1e-3; // Adjust this tolerance as needed. used only for test and little values + // second level cycle + float step = 0; + for (int j = 0; j < 64; j++) { + //if (packet[offset + 3 + j].value() != (j + step)) check = 1; // VAR pixel . . 64 + int value = packet[offset + 3 + j].value(); + float floatValue = 0.0; + std::memcpy(&floatValue, &value, sizeof(float)); + if (std::fabs(floatValue - step) > epsilon) { + check = 1; + std::cout << floatValue << " vs " << step + << std::endl; + } + step = step + 0.1; + } + } + } } // Reset parameter values for the next iteration @@ -454,43 +1069,61 @@ int ReadFilesRecursively(const fs::path &path) { // update header of FITS files (adding info from the last packeT) - + if (fits_movabs_hdu(fptr_c11, 1, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } if (fits_movabs_hdu(fptr_c14, 1, NULL, &status)) { fits_report_error(stderr, status); return status; } - + if (fits_movabs_hdu(fptr_s22, 1, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_movabs_hdu(fptr_hvg, 1, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_movabs_hdu(fptr_hlg, 1, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_movabs_hdu(fptr_hk, 1, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } char s22_tstart[] = ""; // to be customized - if (fits_update_key_str(fptr_c14, "TSTART", s22_tstart, + if (fits_update_key_str(fptr_s22, "TSTART", s22_tstart, "First event time ", &status)) { fits_report_error(stderr, status); // print error message return (status); } char s22_tstop[] = ""; // to be customized - if (fits_update_key_str(fptr_c14, "TSTOP", s22_tstop, + if (fits_update_key_str(fptr_s22, "TSTOP", s22_tstop, "Last event time ", &status)) { fits_report_error(stderr, status); // print error message return (status); } char s22_telapse[] = ""; // to be customized - if (fits_update_key_str(fptr_c14, "TELAPSE", s22_telapse, + if (fits_update_key_str(fptr_s22, "TELAPSE", s22_telapse, "Diff of start and end times ", &status)) { fits_report_error(stderr, status); // print error message return (status); } char s22_dstart[] = ""; // to be customized - if (fits_update_key_str(fptr_c14, "DATE-OBS", s22_dstart, + if (fits_update_key_str(fptr_s22, "DATE-OBS", s22_dstart, "Start date of the first data event (UTC)", &status)) { fits_report_error(stderr, status); // print error message return (status); } char s22_dstop[] = ""; // to be customized - if (fits_update_key_str(fptr_c14, "DATE-END", s22_dstop, + if (fits_update_key_str(fptr_s22, "DATE-END", s22_dstop, "End date of the last data event (UTC)", &status)) { fits_report_error(stderr, status); // print error message return (status); @@ -502,6 +1135,26 @@ int ReadFilesRecursively(const fs::path &path) { long nrows = 0; int hdunum = 2; // Access the second HDU + if (fits_movabs_hdu(fptr_c11, hdunum, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_get_num_rows(fptr_c11, &nrows, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (fits_close_file(fptr_c11, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (nrows == 0) { + printf( + "Not found C11 packet. Corresponding FITS File will not be saved.\n"); + if (remove(c11filename) != 0) { + perror("Error removing file"); + } + } + nrows = 0; if (fits_movabs_hdu(fptr_c14, hdunum, NULL, &status)) { fits_report_error(stderr, status); @@ -523,6 +1176,89 @@ int ReadFilesRecursively(const fs::path &path) { } } + nrows = 0; + if (fits_movabs_hdu(fptr_s22, hdunum, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_get_num_rows(fptr_s22, &nrows, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (fits_close_file(fptr_s22, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (nrows == 0) { + printf( + "Not found S22 packet. Corresponding FITS File will not be saved.\n"); + if (remove(s22filename) != 0) { + perror("Error removing file"); + } + } + + nrows = 0; + if (fits_movabs_hdu(fptr_hvg, hdunum, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_get_num_rows(fptr_hvg, &nrows, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (fits_close_file(fptr_hvg, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (nrows == 0) { + printf( + "Not found HVG packet. Corresponding FITS File will not be saved.\n"); + if (remove(hvgfilename) != 0) { + perror("Error removing file"); + } + } + + nrows = 0; + if (fits_movabs_hdu(fptr_hlg, hdunum, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_get_num_rows(fptr_hlg, &nrows, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (fits_close_file(fptr_hlg, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (nrows == 0) { + printf( + "Not found HLG packet. Corresponding FITS File will not be saved.\n"); + if (remove(hlgfilename) != 0) { + perror("Error removing file"); + } + } + + nrows = 0; + if (fits_movabs_hdu(fptr_hk, hdunum, NULL, &status)) { + fits_report_error(stderr, status); + return status; + } + if (fits_get_num_rows(fptr_hk, &nrows, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (fits_close_file(fptr_hk, &status)) { + fits_report_error(stderr, status); + return (status); + } + if (nrows == 0) { + printf( + "Not found HK packet. Corresponding FITS File will not be saved.\n"); + if (remove(hkfilename) != 0) { + perror("Error removing file"); + } + } // Free allocated memory for (int i = 0; i < ncols14; ++i) { -- GitLab From 3ed91903091841d349f59d6fbda8ea39ab220634 Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Thu, 22 Feb 2024 18:43:57 +0100 Subject: [PATCH 4/7] . --- include/AstriFitsProcessor.h | 9 - include/FitsHelper.h | 192 --------------- include/FitsHelperC14.h | 443 ++++++++++++++++++++++++++++++++++ include/FitsHelperS22.h | 456 +++++++++++++++++++++++++++++++++++ src/AstriFitsProcessor.cpp | 213 +--------------- 5 files changed, 912 insertions(+), 401 deletions(-) delete mode 100644 include/FitsHelper.h create mode 100644 include/FitsHelperC14.h create mode 100644 include/FitsHelperS22.h diff --git a/include/AstriFitsProcessor.h b/include/AstriFitsProcessor.h index e59f616..8168a3a 100644 --- a/include/AstriFitsProcessor.h +++ b/include/AstriFitsProcessor.h @@ -23,13 +23,7 @@ protected: Packets::PacketStructureJson *structureVHG; Packets::PacketStructureJson *structureVLG; - struct from_file_param { // TODO to rename and check fields - std::string date, target_id, obs_mode; - int tel_id, run_id; - }; - std::string computeFitsFileName(int); - int add14EventPacketToFits(fitsfile*, int nrow); public: AstriFitsProcessor(std::string file_to_process); @@ -38,9 +32,6 @@ public: std::string getFileToProcess(); int startProcessing(); - - from_file_param from_file;// TODO to rename - }; diff --git a/include/FitsHelper.h b/include/FitsHelper.h deleted file mode 100644 index 0264ddd..0000000 --- a/include/FitsHelper.h +++ /dev/null @@ -1,192 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -namespace FitsElements { - -static int num_pdm = 37; - -// primary C14HDU {keyword, value, comment} -static std::vector> c14_primary_hdu; -// C14 hdu events {type, format, unit, format_CODE} -static std::vector> c14_events_hdu; -static char **ttype14; // init in FitsFunctions::initFitsSchema -static char **tunit14;// init in FitsFunctions::initFitsSchema -static char **tform14; // init in FitsFunctions::initFitsSchema -static int ncolC14; // init in FitsFunctions::initFitsSchema -static const char* extname = "events"; - -}; - -namespace FitsFunctions { - -static void initC14FitsSchema(){ - - // C14 hdu events {type, format, unit, format_CODE} - FitsElements::c14_events_hdu = { - {"VT","1L","", TLOGICAL}, - {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss", TSTRING}, - {"TIME_S","1V","s", TUINT}, - {"TIME_NS","1V","ns", TUINT}, - {"SSC","1U","", TUSHORT}, - {"PKT_LEN","1U","", TUSHORT}, - {"EVT_CTR","1V","", TUINT}, - {"LID","1L","", TLOGICAL}, - {"FIB_ST","1L","", TLOGICAL}, - {"FIB_CONT","1L","", TLOGICAL}, - {"FIB_PULS","1L","", TLOGICAL}, - {"RGB_CONT","1I","", TSHORT}, - {"RGB_PULS","1I","", TSHORT}, - {"TRG_DT","1U","pe", TUSHORT}, - {"TRG_CDT","1U","pe", TUSHORT}, - {"PTM","1L","", TLOGICAL}, - {"TRG_PXL_ID","1B","", TBYTE}, - {"TRG_TYPE","1I","", TSHORT}, - {"TRG_CONF","1I","", TSHORT}, - {"ETRG_TYPE","1I","", TSHORT}, - {"ETRG_FREQ","1I","", TSHORT}, - {"PDM_VAL","37L","", TLOGICAL}, - {"TRG_ENB","37L","", TLOGICAL}, - {"TRG_PDM","37L","", TLOGICAL}, - {"EVT_VAL","37L","", TLOGICAL}, - }; - - // high gains - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream fieldName; - fieldName << "PDM"; - fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 - fieldName << "HI"; - FitsElements::c14_events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); - } - // low gains - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream fieldName; - fieldName << "PDM"; - fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 - fieldName << "LO"; - FitsElements::c14_events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); - } - // time trigger pixel - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream fieldName; - fieldName << "PDM"; - fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 - fieldName << "TTP"; - FitsElements::c14_events_hdu.push_back({fieldName.str(),"64B","ns", TBYTE}); - } - // latest fields - FitsElements::c14_events_hdu.push_back({"PDM_HIT","64X","", TBIT}); - FitsElements::c14_events_hdu.push_back({"PDM_MASK","64X","", TBIT}); - FitsElements::c14_events_hdu.push_back({"PDM_TMP1","37U","", TUSHORT}); - FitsElements::c14_events_hdu.push_back({"PDM_TMP2","37U","", TUSHORT}); - FitsElements::c14_events_hdu.push_back({"PDM_TMP3","37U","", TUSHORT}); - FitsElements::c14_events_hdu.push_back({"PDM_HV","37U","", TUSHORT}); - FitsElements::c14_events_hdu.push_back({"PDM_CU","37V","", TUINT}); - - FitsElements::ncolC14 = FitsElements::c14_events_hdu.size(); - FitsElements::ttype14 = new char*[FitsElements::ncolC14]; - FitsElements::tform14 = new char*[FitsElements::ncolC14]; - FitsElements::tunit14 = new char*[FitsElements::ncolC14]; -// init char** of type, form, uinit - for (int i = 0; i < FitsElements::ncolC14; i++) { - std::string type = std::get<0>(FitsElements::c14_events_hdu[i]); - std::string form = std::get<1>(FitsElements::c14_events_hdu[i]); - std::string unit = std::get<2>(FitsElements::c14_events_hdu[i]); - FitsElements::ttype14[i] = new char[type.size() + 1]; - FitsElements::tform14[i] = new char[form.size() + 1]; - FitsElements::tunit14[i] = new char[unit.size() + 1]; - std::strcpy(FitsElements::ttype14[i], type.c_str()); - std::strcpy(FitsElements::tform14[i], form.c_str()); - std::strcpy(FitsElements::tunit14[i], unit.c_str()); - } -} - -static int initFitsFileC14(fitsfile *fits_file, std::string filename) { - using namespace FitsElements; - int status = 0; - - int simple = 1; - fits_write_key(fits_file, TLOGICAL, "SIMPLE", &simple, "File FITS di esempio", &status); - int bitpix = 16; - fits_write_key(fits_file, TINT, "BITPIX", &bitpix, "Numero di bit per pixel", &status); - int naxis = 0; - fits_write_key(fits_file, TINT, "NAXIS", &naxis, "Numero di dimensioni", &status); - int extend = 1; - fits_write_key(fits_file, TLOGICAL, "EXTEND", &extend, "Fits Dataset may contain extensions", &status); - fits_write_key_str(fits_file, "TELESCOP", "ASTRI-MA","Name of telescope generating data", &status); - fits_write_key_str(fits_file, "INSTRUME","CAMERA","Name of instrument generating data", &status); - fits_write_key_str(fits_file, "TEL_ID","X","Telescope ID", &status); - fits_write_key_str(fits_file, "ORIGIN","ASTRIDPS","Name of organization making file", &status); - fits_write_key_str(fits_file, "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS", &status); - fits_write_key_str(fits_file, "FILENAME","X","Filename", &status); - int16_t filevers = 1; - fits_write_key(fits_file, TSHORT, "FILEVERS",&filevers,"File version", &status); - fits_write_key_str(fits_file, "ORIGIN_ID","X","Date origin and context", &status); - fits_write_key_str(fits_file, "OBS_DATE","X","Date of the beginning of the observation night", &status); - fits_write_key_str(fits_file, "OBS_MODE","X","Observation mode", &status); - fits_write_key_str(fits_file, "PROG_ID","X","Observation program ID", &status); - fits_write_key_str(fits_file, "SBL_ID","X","Observation scheduling block", &status); - fits_write_key_str(fits_file, "RUN_ID","X","Incremental array-wise file counter", &status); - fits_write_key_str(fits_file, "DAQ_MODE","X","DAQ status identification", &status); - fits_write_key_str(fits_file, "DAQ_ID","X","Telescope-wise DAQ incremental counter", &status); - fits_write_key_str(fits_file, "DATAMODE","X","Run type", &status); - fits_write_key_str(fits_file, "SUBMODE","X","Run subtype", &status); - int16_t ntel = 0; - fits_write_key(fits_file, TSHORT, "NTEL",&ntel,"Number of active telescopes during observation", &status); - fits_write_key_str(fits_file, "TIMESYS","TT","Time reference system", &status); - int32_t MJDREFI = 58849; - fits_write_key(fits_file, TINT, "MJDREFI",&MJDREFI,"MJD reference fraction of day", &status); - float MJDREFF = 0.00080074; - fits_write_key(fits_file, TFLOAT, "MJDREFF",&MJDREFF,"MJD reference fraction of day", &status); - float TIMEOFFS = 0.0; - fits_write_key(fits_file, TFLOAT, "TIMEOFFS",&MJDREFF,"MJD reference fraction of day", &status); - fits_write_key_str(fits_file, "TIMEUNIT","s","Time unit", &status); - fits_write_key_str(fits_file, "TSTART","X","First event time", &status); - fits_write_key_str(fits_file, "TSTOP","X","Last event time", &status); - fits_write_key_str(fits_file, "TELAPSE","X","Diff of start and end times", &status); - fits_write_key_str(fits_file, "DATE-OBS","X","Start date of the first data event (UTC)", &status); - fits_write_key_str(fits_file, "DATE-END","X","End date of the last data event (UTC)", &status); - fits_write_key_str(fits_file, "DATE","X","File creation date (UTC)", &status); - fits_write_key_str(fits_file, "OBJECT","X","Name of observed object", &status); - fits_write_key_str(fits_file, "RADECSYS","FK5","Coordinate reference frame", &status); - fits_write_key_str(fits_file, "EQUINOX","2000.0","Coordinate epoch", &status); - float RA_OBJ = 0.0; - fits_write_key(fits_file, TFLOAT, "RA_OBJ",&RA_OBJ,"[deg] R.A. Object", &status); - float DEC_OBJ = 0.0; - fits_write_key(fits_file, TFLOAT, "DEC_OBJ",&DEC_OBJ,"[deg] Decl. Objec", &status); - float RA_PNT = 0.0; - fits_write_key(fits_file, TFLOAT, "RA_PNT",&RA_PNT,"Pointed R.A. (J2000)", &status); - float DEC_PNT = 0.0; - fits_write_key(fits_file, TFLOAT, "DEC_PNT",&DEC_PNT,"Pointed Dec. (J2000", &status); - fits_write_key_str(fits_file, "CHECKSUM","X","HDU checksum updated", &status); - fits_write_key_str(fits_file, "DATASUM","X","Data unit checksum updated", &status); - - - fits_create_tbl(fits_file, BINARY_TBL, 0, ncolC14, ttype14, tform14, - tunit14, extname, &status); - if (status != 0) { - fits_report_error(stderr, status); // print error message - fits_delete_file(fits_file, &status); - return -1; - } - - - status = 0; - fits_movabs_hdu(fits_file, 2, nullptr, &status); - - if (status != 0) { - fits_report_error(stderr, status); // print error message - fits_delete_file(fits_file, &status); - return -1; - } - return 1; -} - -}; diff --git a/include/FitsHelperC14.h b/include/FitsHelperC14.h new file mode 100644 index 0000000..37b0689 --- /dev/null +++ b/include/FitsHelperC14.h @@ -0,0 +1,443 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace FitsElements { +namespace C14{ + +static int num_pdm = 37; +static int num_highgains = 64; +static int num_lowgains = 64; +static int num_timetriggers = 64; +static std::string time_utc; +namespace filename_params { + std::string date, tel_id, obs_mode, run_id, mode_id, daq_id; +}; + +namespace database_params { + std::string orig_id, prog_id, sbl_id; + uint16_t ntel; +}; + +// primary C14HDU {keyword, value, comment} +static std::vector> primary_hdu; +// C14 hdu events {type, format, unit, format_CODE} +static std::vector> events_hdu; +static char **ttype; // init in FitsFunctions::initFitsSchema +static char **tunit;// init in FitsFunctions::initFitsSchema +static char **tform; // init in FitsFunctions::initFitsSchema +static int ncol; // init in FitsFunctions::initFitsSchema +static const char* extname = "events"; + +}}; + +namespace FitsFunctions { + +static void initC14FitsSchema(){ + + // C14 hdu events {type, format, unit, format_CODE} + FitsElements::C14::events_hdu = { + {"VT","1L","", TLOGICAL}, + {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss", TSTRING}, + {"TIME_S","1V","s", TUINT}, + {"TIME_NS","1V","ns", TUINT}, + {"SSC","1U","", TUSHORT}, + {"PKT_LEN","1U","", TUSHORT}, + {"EVT_CTR","1V","", TUINT}, + {"LID","1L","", TLOGICAL}, + {"FIB_ST","1L","", TLOGICAL}, + {"FIB_CONT","1L","", TLOGICAL}, + {"FIB_PULS","1L","", TLOGICAL}, + {"RGB_CONT","1I","", TSHORT}, + {"RGB_PULS","1I","", TSHORT}, + {"TRG_DT","1U","pe", TUSHORT}, + {"TRG_CDT","1U","pe", TUSHORT}, + {"PTM","1L","", TLOGICAL}, + {"TRG_PXL_ID","1B","", TBYTE}, + {"TRG_TYPE","1I","", TSHORT}, + {"TRG_CONF","1I","", TSHORT}, + {"ETRG_TYPE","1I","", TSHORT}, + {"ETRG_FREQ","1I","", TSHORT}, + {"PDM_VAL","37L","", TLOGICAL}, + {"TRG_ENB","37L","", TLOGICAL}, + {"TRG_PDM","37L","", TLOGICAL}, + {"EVT_VAL","37L","", TLOGICAL}, + }; + + // high gains + for(int i = 0; i < FitsElements::C14::num_pdm; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "HI"; + FitsElements::C14::events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); + } + // low gains + for(int i = 0; i < FitsElements::C14::num_pdm; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "LO"; + FitsElements::C14::events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); + } + // time trigger pixel + for(int i = 0; i < FitsElements::C14::num_pdm; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "TTP"; + FitsElements::C14::events_hdu.push_back({fieldName.str(),"64B","ns", TBYTE}); + } + // latest fields + FitsElements::C14::events_hdu.push_back({"PDM_HIT","2368X","", TBIT}); // 2368 = 37pdm * 64 values + FitsElements::C14::events_hdu.push_back({"PDM_MASK","2368X","", TBIT}); + FitsElements::C14::events_hdu.push_back({"PDM_TMP1","37U","", TUSHORT}); + FitsElements::C14::events_hdu.push_back({"PDM_TMP2","37U","", TUSHORT}); + FitsElements::C14::events_hdu.push_back({"PDM_TMP3","37U","", TUSHORT}); + FitsElements::C14::events_hdu.push_back({"PDM_HV","37U","", TUSHORT}); + FitsElements::C14::events_hdu.push_back({"PDM_CU","37V","", TUINT}); + + FitsElements::C14::ncol = FitsElements::C14::events_hdu.size(); + FitsElements::C14::ttype = new char*[FitsElements::C14::ncol]; + FitsElements::C14::tform = new char*[FitsElements::C14::ncol]; + FitsElements::C14::tunit = new char*[FitsElements::C14::ncol]; +// init char** of type, form, uinit + for (int i = 0; i < FitsElements::C14::ncol; i++) { + std::string type = std::get<0>(FitsElements::C14::events_hdu[i]); + std::string form = std::get<1>(FitsElements::C14::events_hdu[i]); + std::string unit = std::get<2>(FitsElements::C14::events_hdu[i]); + FitsElements::C14::ttype[i] = new char[type.size() + 1]; + FitsElements::C14::tform[i] = new char[form.size() + 1]; + FitsElements::C14::tunit[i] = new char[unit.size() + 1]; + std::strcpy(FitsElements::C14::ttype[i], type.c_str()); + std::strcpy(FitsElements::C14::tform[i], form.c_str()); + std::strcpy(FitsElements::C14::tunit[i], unit.c_str()); + } +} + +static int initFitsFileC14(fitsfile *fits_file, std::string filename) { + // TODO check filename regex with conventions and extract filename_params + // .. + // TODO check db connection and extract database_params + + using namespace FitsElements::C14; + int status = 0; + + int simple = 1; + fits_write_key(fits_file, TLOGICAL, "SIMPLE", &simple, "File FITS di esempio", &status); + int bitpix = 16; + fits_write_key(fits_file, TINT, "BITPIX", &bitpix, "Numero di bit per pixel", &status); + int naxis = 0; + fits_write_key(fits_file, TINT, "NAXIS", &naxis, "Numero di dimensioni", &status); + int extend = 1; + fits_write_key(fits_file, TLOGICAL, "EXTEND", &extend, "Fits Dataset may contain extensions", &status); + fits_write_key_str(fits_file, "COMMENT", "FITS (Flexible Image Transport System) format is defined in 'Astronomy and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H", "comment", &status); + fits_write_key_str(fits_file, "TELESCOP", "ASTRI-MA","Name of telescope generating data", &status); + fits_write_key_str(fits_file, "INSTRUME","CAMERA","Name of instrument generating data", &status); + fits_write_key_str(fits_file, "TEL_ID", filename_params::tel_id.c_str(),"Telescope ID", &status); + fits_write_key_str(fits_file, "ORIGIN","ASTRIDPS","Name of organization making file", &status); + fits_write_key_str(fits_file, "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS", &status); + fits_write_key_str(fits_file, "FILENAME",filename.c_str(),"Filename", &status); + int16_t filevers = 1; + fits_write_key(fits_file, TSHORT, "FILEVERS",&filevers,"File version", &status); + fits_write_key_str(fits_file, "ORIGIN_ID",database_params::orig_id.c_str(),"Date origin and context", &status); + fits_write_key_str(fits_file, "OBS_DATE",filename_params::date.c_str(),"Date of the beginning of the observation night", &status); + fits_write_key_str(fits_file, "OBS_MODE",filename_params::obs_mode.c_str(),"Observation mode", &status); + fits_write_key_str(fits_file, "PROG_ID",database_params::prog_id.c_str(),"Observation program ID", &status); + fits_write_key_str(fits_file, "SBL_ID",database_params::sbl_id.c_str(),"Observation scheduling block", &status); + fits_write_key_str(fits_file, "RUN_ID",filename_params::run_id.c_str(),"Incremental array-wise file counter", &status); + fits_write_key_str(fits_file, "DAQ_MODE",filename_params::mode_id.c_str(),"DAQ status identification", &status); + fits_write_key_str(fits_file, "DAQ_ID",filename_params::daq_id.c_str(),"Telescope-wise DAQ incremental counter", &status); + fits_write_key_str(fits_file, "DATAMODE","01","Run type", &status); + fits_write_key_str(fits_file, "SUBMODE","04","Run subtype", &status); + fits_write_key(fits_file, TSHORT, "NTEL",&database_params::ntel,"Number of active telescopes during observation", &status); + fits_write_key_str(fits_file, "TIMESYS","TT","Time reference system", &status); + int32_t MJDREFI = 58849; + fits_write_key(fits_file, TINT, "MJDREFI",&MJDREFI,"MJD reference date", &status); + float MJDREFF = 0.00080074; + fits_write_key(fits_file, TFLOAT, "MJDREFF",&MJDREFF,"MJD reference fraction of day", &status); + float TIMEOFFS = 0.0; + fits_write_key(fits_file, TFLOAT, "TIMEOFFS",&MJDREFF,"Time offset", &status); + fits_write_key_str(fits_file, "TIMEUNIT","s","Time unit", &status); + fits_write_key_str(fits_file, "TSTART","X","First event time", &status); + fits_write_key_str(fits_file, "TSTOP","X","Last event time", &status); + fits_write_key_str(fits_file, "TELAPSE","X","Diff of start and end times", &status); + fits_write_key_str(fits_file, "DATE-OBS","X","Start date of the first data event (UTC)", &status); + fits_write_key_str(fits_file, "DATE-END","X","End date of the last data event (UTC)", &status); + auto now = std::chrono::system_clock::now(); + std::time_t time_now = std::chrono::system_clock::to_time_t(now); + std::tm tm_utc = *std::gmtime(&time_now); + std::stringstream oss; + oss << std::put_time(&tm_utc, "%Y-%m-%dT%H:%M:%S"); + fits_write_key_str(fits_file, "DATE",oss.str().c_str(),"File creation date (UTC)", &status); + + + fits_create_tbl(fits_file, BINARY_TBL, 0, ncol, ttype, tform, + tunit, extname, &status); + if (status != 0) { + fits_report_error(stderr, status); // print error message + fits_delete_file(fits_file, &status); + return -1; + } + + + status = 0; + fits_movabs_hdu(fits_file, 2, nullptr, &status); + + if (status != 0) { + fits_report_error(stderr, status); // print error message + fits_delete_file(fits_file, &status); + return -1; + } + return 1; +} + +static int addC14StartTimesToFits(Packets::AstriMaGeneric *packet, + fitsfile *fitsfile) { + int status = 0; + fits_movabs_hdu(fitsfile, 1, nullptr, &status); + + // TODO scrivere il tstart nel giusto formato + fits_update_key_str(fitsfile, "TSTART", "X", "First event time", &status); + + int year = packet->operator []("year").value(); + int month = packet->operator []("month").value(); + int day = packet->operator []("day").value(); + int hours = packet->operator []("hours").value(); + int minutes = packet->operator []("minutes").value(); + int seconds = packet->operator []("seconds").value(); + std::stringstream ss; + ss << year; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << month; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << seconds; + std::string time_utc = ss.str(); + fits_update_key_str(fitsfile, "DATE-OBS", time_utc.c_str(), + "Start date of the first data event (UTC)", &status); + fits_movabs_hdu(fitsfile, 2, nullptr, &status); + return 1; +} +static int addC14EndTimesToFits(Packets::AstriMaGeneric *packet, + fitsfile *fitsfile) { + int status = 0; + fits_movabs_hdu(fitsfile, 1, nullptr, &status); + + // TODO scrivere il tstop nel giusto formato + fits_update_key_str(fitsfile, "TSTOP", "X", "Last event time", &status); + // TODO compute telapse + fits_update_key_str(fitsfile, "TELAPSE", "X", "Diff of start and end times", + &status); + + fits_update_key_str(fitsfile, "DATE-END", FitsElements::C14::time_utc.c_str(), + "End date of the last data event (UTC)", &status); + fits_movabs_hdu(fitsfile, 2, nullptr, &status); + return 1; +} + + +static int addC14EventPacketToFits(Packets::AstriMaGeneric *packet, fitsfile *fitsfile, int nrow) { + using namespace FitsElements::C14; + std::vector values; + + bool vt = packet->operator []("vt").value(); + values.push_back(&vt); + int year = packet->operator []("year").value(); + int month = packet->operator []("month").value(); + int day = packet->operator []("day").value(); + int hours = packet->operator []("hours").value(); + int minutes = packet->operator []("minutes").value(); + int seconds = packet->operator []("seconds").value(); + std::stringstream ss; + ss << year; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << month; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << seconds; + FitsElements::C14::time_utc = ss.str(); + values.push_back(&FitsElements::C14::time_utc); + values.push_back(&seconds); + uint32_t time_tag_ns = packet->operator []("Time Tag Nanoseconds").value(); + values.push_back(&time_tag_ns); + uint16_t ssc = packet->operator []("Source Sequence Counter SSC").value(); + values.push_back(&ssc); + uint16_t packet_len = packet->operator []("Packet Length").value(); + values.push_back(&packet_len); + uint32_t evt_counter = packet->operator []("Event Counter").value(); + values.push_back(&evt_counter); + bool lid = packet->operator []("lid").value(); + values.push_back(&lid); + bool fib_st = packet->operator []("fib st").value(); + values.push_back(&fib_st); + bool fib_cont = packet->operator []("fib cont").value(); + values.push_back(&fib_cont); + bool fib_puls = packet->operator []("fib puls").value(); + values.push_back(&fib_puls); + int8_t rgb_cont = packet->operator []("rgb cont").value(); + values.push_back(&rgb_cont); + int8_t rgb_puls = packet->operator []("rgb puls").value(); + values.push_back(&rgb_puls); + uint16_t pix_trg_dt = packet->operator []("pixel trigger discriminator threshold").value(); + values.push_back(&pix_trg_dt); + uint16_t pix_trg_charge_dt = packet->operator []("pixel trigger charge discriminator threshold").value(); + values.push_back(&pix_trg_charge_dt); + bool ptm = packet->operator []("PTM").value(); + values.push_back(&ptm); + uint8_t trg_pix_id = packet->operator []("triggered pixel id").value(); + values.push_back(&trg_pix_id); + int16_t trg_type = packet->operator []("trg type").value(); + values.push_back(&trg_type); + int16_t trg_config = packet->operator []("trigger config").value(); + values.push_back(&trg_config); + int16_t etrg_type = packet->operator []("ext trigger type").value(); + values.push_back(&etrg_type); + int16_t etrg_freq = packet->operator []("ext trigger frequency").value(); + values.push_back(&etrg_freq); + bool pdm_vals[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "pdm val_#" << i; + pdm_vals[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&pdm_vals); + bool trg_enbs[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "trg enb_#" << i; + trg_enbs[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&trg_enbs); + bool trg_pdms[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "trg pdm_#" << i; + trg_pdms[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&trg_pdms); + bool evt_vals[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "evt val_#" << i; + evt_vals[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&evt_vals); + uint16_t high_gains[num_pdm][num_highgains]; + for (int i = 0; i < num_pdm; i++) { + for (int j = 0; j < num_highgains; j++) { + std::stringstream ss; + ss << "high gain pixel_#" << j << "_#" << i; + high_gains[i][j] = packet->operator [](ss.str()).value(); + } + values.push_back(&high_gains[i]); + } + uint16_t low_gains[num_pdm][num_highgains]; + for (int i = 0; i < num_pdm; i++) { + for (int j = 0; j < num_highgains; j++) { + std::stringstream ss; + ss << "low gain pixel_#" << j << "_#" << i; + low_gains[i][j] = packet->operator [](ss.str()).value(); + } + values.push_back(&low_gains[i]); + } + uint8_t time_triggers[num_pdm][num_highgains]; + for (int i = 0; i < num_pdm; i++) { + for (int j = 0; j < num_highgains; j++) { + std::stringstream ss; + ss << "time trigger pixel_#" << j << "_#" << i; + time_triggers[i][j] = packet->operator [](ss.str()).value(); + } + values.push_back(&time_triggers[i]); + } + bool hit_registers[num_pdm*num_highgains] = {}; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "HIT register_#" << i; + size_t hit = packet->operator [](ss.str()).value(); + for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + hit_registers[j] = (hit & 1); + hit >>= 1; + } + } + values.push_back(&hit_registers); + + bool trigger_mask[num_pdm*num_highgains] = {}; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "Trigger Mask_#" << i; + size_t mask = packet->operator [](ss.str()).value(); + for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + trigger_mask[j] = (mask & 1); + mask >>= 1; + } + } + values.push_back(&trigger_mask); + + uint16_t sipm_t1[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 1_#" << i; + sipm_t1[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t1); + uint16_t sipm_t2[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 2_#" << i; + sipm_t2[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t2); + uint16_t sipm_t3[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 3_#" << i; + sipm_t3[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t3); + uint16_t sipm_hv[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM High Voltage_#" << i; + sipm_hv[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_hv); + uint32_t sipm_cu[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM current_#" << i; + sipm_cu[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_cu); + + for (int i = 0; i < values.size(); i++) { + int res = 0; + fits_write_col(fitsfile, std::get<3>(FitsElements::C14::events_hdu[i]), + i + 1, nrow, 1, 1, &values[i], &res); + if (res != 0) { // error + fits_report_error(stderr, res); + } + } + return 1; +} + +}; diff --git a/include/FitsHelperS22.h b/include/FitsHelperS22.h new file mode 100644 index 0000000..1fc64ed --- /dev/null +++ b/include/FitsHelperS22.h @@ -0,0 +1,456 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace FitsElements { +namespace S22{ + +static int num_pdm = 37; +static int num_highgains = 64; +static int num_lowgains = 64; +static int num_timetriggers = 64; +static std::string time_utc; +namespace filename_params { + std::string date, tel_id, obs_mode, run_id, mode_id, daq_id, object; +}; + +namespace database_params { + std::string orig_id, prog_id, sbl_id; + uint16_t ntel; + float ra_obj, dec_obj, ra_pnt, dec_pnt; +}; + +// primary S22HDU {keyword, value, comment} +static std::vector> primary_hdu; +// S22 hdu events {type, format, unit, format_CODE} +static std::vector> events_hdu; +static char **ttype; // init in FitsFunctions::initFitsSchema +static char **tunit;// init in FitsFunctions::initFitsSchema +static char **tform; // init in FitsFunctions::initFitsSchema +static int ncol; // init in FitsFunctions::initFitsSchema +static const char* extname = "events"; + +}}; + +namespace FitsFunctions { + +static void initS22FitsSchema(){ + + // S22 hdu events {type, format, unit, format_CODE} + FitsElements::S22::events_hdu = { + {"VT","1L","", TLOGICAL}, + {"TIME_UTC","19A","YYYY-MM-DDThh:mm:ss", TSTRING}, + {"TIME_S","1V","s", TUINT}, + {"TIME_NS","1V","ns", TUINT}, + {"SSC","1U","", TUSHORT}, + {"PKT_LEN","1U","", TUSHORT}, + {"EVT_CTR","1V","", TUINT}, + {"LID","1L","", TLOGICAL}, + {"FIB_ST","1L","", TLOGICAL}, + {"FIB_CONT","1L","", TLOGICAL}, + {"FIB_PULS","1L","", TLOGICAL}, + {"RGB_CONT","1I","", TSHORT}, + {"RGB_PULS","1I","", TSHORT}, + {"TRG_DT","1U","pe", TUSHORT}, + {"TRG_CDT","1U","pe", TUSHORT}, + {"PTM","1L","", TLOGICAL}, + {"TRG_PXL_ID","1B","", TBYTE}, + {"TRG_TYPE","1I","", TSHORT}, + {"TRG_CONF","1I","", TSHORT}, + {"ETRG_TYPE","1I","", TSHORT}, + {"ETRG_FREQ","1I","", TSHORT}, + {"PDM_VAL","37L","", TLOGICAL}, + {"TRG_ENB","37L","", TLOGICAL}, + {"TRG_PDM","37L","", TLOGICAL}, + {"EVT_VAL","37L","", TLOGICAL}, + }; + + // high gains + for(int i = 0; i < FitsElements::S22::num_pdm; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "HI"; + FitsElements::S22::events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); + } + // low gains + for(int i = 0; i < FitsElements::S22::num_pdm; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "LO"; + FitsElements::S22::events_hdu.push_back({fieldName.str(),"64U","adu", TUSHORT}); + } + // time trigger pixel + for(int i = 0; i < FitsElements::S22::num_pdm; i++){ + std::stringstream fieldName; + fieldName << "PDM"; + fieldName << std::setfill('0') << std::setw(2) << i; // 01, 02...37 + fieldName << "TTP"; + FitsElements::S22::events_hdu.push_back({fieldName.str(),"64B","ns", TBYTE}); + } + // latest fields + FitsElements::S22::events_hdu.push_back({"PDM_HIT","2368X","", TBIT}); // 2368 = 37pdm * 64 values + FitsElements::S22::events_hdu.push_back({"PDM_MASK","2368X","", TBIT}); + FitsElements::S22::events_hdu.push_back({"PDM_TMP1","37U","", TUSHORT}); + FitsElements::S22::events_hdu.push_back({"PDM_TMP2","37U","", TUSHORT}); + FitsElements::S22::events_hdu.push_back({"PDM_TMP3","37U","", TUSHORT}); + FitsElements::S22::events_hdu.push_back({"PDM_HV","37U","", TUSHORT}); + FitsElements::S22::events_hdu.push_back({"PDM_CU","37V","", TUINT}); + + FitsElements::S22::ncol = FitsElements::S22::events_hdu.size(); + FitsElements::S22::ttype = new char*[FitsElements::S22::ncol]; + FitsElements::S22::tform = new char*[FitsElements::S22::ncol]; + FitsElements::S22::tunit = new char*[FitsElements::S22::ncol]; +// init char** of type, form, uinit + for (int i = 0; i < FitsElements::S22::ncol; i++) { + std::string type = std::get<0>(FitsElements::S22::events_hdu[i]); + std::string form = std::get<1>(FitsElements::S22::events_hdu[i]); + std::string unit = std::get<2>(FitsElements::S22::events_hdu[i]); + FitsElements::S22::ttype[i] = new char[type.size() + 1]; + FitsElements::S22::tform[i] = new char[form.size() + 1]; + FitsElements::S22::tunit[i] = new char[unit.size() + 1]; + std::strcpy(FitsElements::S22::ttype[i], type.c_str()); + std::strcpy(FitsElements::S22::tform[i], form.c_str()); + std::strcpy(FitsElements::S22::tunit[i], unit.c_str()); + } +} + +static int initFitsFileS22(fitsfile *fits_file, std::string filename) { + // TODO check filename regex with conventions and extract filename_params + // .. + // TODO check db connection and extract database_params + + using namespace FitsElements::S22; + int status = 0; + + int simple = 1; + fits_write_key(fits_file, TLOGICAL, "SIMPLE", &simple, "File FITS di esempio", &status); + int bitpix = 16; + fits_write_key(fits_file, TINT, "BITPIX", &bitpix, "Numero di bit per pixel", &status); + int naxis = 0; + fits_write_key(fits_file, TINT, "NAXIS", &naxis, "Numero di dimensioni", &status); + int extend = 1; + fits_write_key(fits_file, TLOGICAL, "EXTEND", &extend, "Fits Dataset may contain extensions", &status); + fits_write_key_str(fits_file, "COMMENT", "FITS (Flexible Image Transport System) format is defined in 'Astronomy and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H", "comment", &status); + fits_write_key_str(fits_file, "TELESCOP", "ASTRI-MA","Name of telescope generating data", &status); + fits_write_key_str(fits_file, "INSTRUME","CAMERA","Name of instrument generating data", &status); + fits_write_key_str(fits_file, "TEL_ID", filename_params::tel_id.c_str(),"Telescope ID", &status); + fits_write_key_str(fits_file, "ORIGIN","ASTRIDPS","Name of organization making file", &status); + fits_write_key_str(fits_file, "CREATOR","adas preprocessing v.0.0.1"," Program and version that created the FITS", &status); + fits_write_key_str(fits_file, "FILENAME",filename.c_str(),"Filename", &status); + int16_t filevers = 1; + fits_write_key(fits_file, TSHORT, "FILEVERS",&filevers,"File version", &status); + fits_write_key_str(fits_file, "ORIGIN_ID",database_params::orig_id.c_str(),"Date origin and context", &status); + fits_write_key_str(fits_file, "OBS_DATE",filename_params::date.c_str(),"Date of the beginning of the observation night", &status); + fits_write_key_str(fits_file, "OBS_MODE",filename_params::obs_mode.c_str(),"Observation mode", &status); + fits_write_key_str(fits_file, "PROG_ID",database_params::prog_id.c_str(),"Observation program ID", &status); + fits_write_key_str(fits_file, "SBL_ID",database_params::sbl_id.c_str(),"Observation scheduling block", &status); + fits_write_key_str(fits_file, "RUN_ID",filename_params::run_id.c_str(),"Incremental array-wise file counter", &status); + fits_write_key_str(fits_file, "DAQ_MODE",filename_params::mode_id.c_str(),"DAQ status identification", &status); + fits_write_key_str(fits_file, "DAQ_ID",filename_params::daq_id.c_str(),"Telescope-wise DAQ incremental counter", &status); + fits_write_key_str(fits_file, "DATAMODE","01","Run type", &status); + fits_write_key_str(fits_file, "SUBMODE","04","Run subtype", &status); + fits_write_key(fits_file, TSHORT, "NTEL",&database_params::ntel,"Number of active telescopes during observation", &status); + fits_write_key_str(fits_file, "TIMESYS","TT","Time reference system", &status); + int32_t MJDREFI = 58849; + fits_write_key(fits_file, TINT, "MJDREFI",&MJDREFI,"MJD reference date", &status); + float MJDREFF = 0.00080074; + fits_write_key(fits_file, TFLOAT, "MJDREFF",&MJDREFF,"MJD reference fraction of day", &status); + float TIMEOFFS = 0.0; + fits_write_key(fits_file, TFLOAT, "TIMEOFFS",&MJDREFF,"Time offset", &status); + fits_write_key_str(fits_file, "TIMEUNIT","s","Time unit", &status); + fits_write_key_str(fits_file, "TSTART","X","First event time", &status); + fits_write_key_str(fits_file, "TSTOP","X","Last event time", &status); + fits_write_key_str(fits_file, "TELAPSE","X","Diff of start and end times", &status); + fits_write_key_str(fits_file, "DATE-OBS","X","Start date of the first data event (UTC)", &status); + fits_write_key_str(fits_file, "DATE-END","X","End date of the last data event (UTC)", &status); + auto now = std::chrono::system_clock::now(); + std::time_t time_now = std::chrono::system_clock::to_time_t(now); + std::tm tm_utc = *std::gmtime(&time_now); + std::stringstream oss; + oss << std::put_time(&tm_utc, "%Y-%m-%dT%H:%M:%S"); + fits_write_key_str(fits_file, "DATE",oss.str().c_str(),"File creation date (UTC)", &status); + fits_write_key_str(fits_file, "OBJECT",filename_params::object.c_str(),"Name of observed object", &status); + fits_write_key_str(fits_file, "RADECSYS","FK5","Coordinate reference frame", &status); + fits_write_key_str(fits_file, "EQUINOX","2000.0","Coordinate epoch", &status); + float RA_OBJ = 83.6331; // TODO check se questi paramtri da db o fissi + fits_write_key(fits_file, TFLOAT, "RA_OBJ",&RA_OBJ,"[deg] R.A. Object", &status); + float DEC_OBJ = 22.0145 ; + fits_write_key(fits_file, TFLOAT, "DEC_OBJ",&DEC_OBJ,"[deg] Decl. Objec", &status); + float RA_PNT = 84.133333 ; + fits_write_key(fits_file, TFLOAT, "RA_PNT",&RA_PNT,"Pointed R.A. (J2000)", &status); + float DEC_PNT = 22.014444; + fits_write_key(fits_file, TFLOAT, "DEC_PNT",&DEC_PNT,"Pointed Dec. (J2000", &status); + fits_write_key_str(fits_file, "CHECKSUM","g5XEj3XBg3XBg3XB","HDU checksum updated", &status); + fits_write_key_str(fits_file, "DATASUM","0","Data unit checksum updated", &status); + + fits_create_tbl(fits_file, BINARY_TBL, 0, ncol, ttype, tform, + tunit, extname, &status); + if (status != 0) { + fits_report_error(stderr, status); // print error message + fits_delete_file(fits_file, &status); + return -1; + } + + + status = 0; + fits_movabs_hdu(fits_file, 2, nullptr, &status); + + if (status != 0) { + fits_report_error(stderr, status); // print error message + fits_delete_file(fits_file, &status); + return -1; + } + return 1; +} + +static int addS22StartTimesToFits(Packets::AstriMaGeneric *packet, + fitsfile *fitsfile) { + int status = 0; + fits_movabs_hdu(fitsfile, 1, nullptr, &status); + + // TODO scrivere il tstart nel giusto formato + fits_update_key_str(fitsfile, "TSTART", "X", "First event time", &status); + + int year = packet->operator []("year").value(); + int month = packet->operator []("month").value(); + int day = packet->operator []("day").value(); + int hours = packet->operator []("hours").value(); + int minutes = packet->operator []("minutes").value(); + int seconds = packet->operator []("seconds").value(); + std::stringstream ss; + ss << year; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << month; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << seconds; + std::string time_utc = ss.str(); + fits_update_key_str(fitsfile, "DATE-OBS", time_utc.c_str(), + "Start date of the first data event (UTC)", &status); + fits_movabs_hdu(fitsfile, 2, nullptr, &status); + return 1; +} +static int addS22EndTimesToFits(Packets::AstriMaGeneric *packet, + fitsfile *fitsfile) { + int status = 0; + fits_movabs_hdu(fitsfile, 1, nullptr, &status); + + // TODO scrivere il tstop nel giusto formato + fits_update_key_str(fitsfile, "TSTOP", "X", "Last event time", &status); + // TODO compute telapse + fits_update_key_str(fitsfile, "TELAPSE", "X", "Diff of start and end times", + &status); + + fits_update_key_str(fitsfile, "DATE-END", FitsElements::S22::time_utc.c_str(), + "End date of the last data event (UTC)", &status); + fits_movabs_hdu(fitsfile, 2, nullptr, &status); + return 1; +} + + +static int addS22EventPacketToFits(Packets::AstriMaGeneric *packet, fitsfile *fitsfile, int nrow) { + using namespace FitsElements::S22; + std::vector values; + + bool vt = packet->operator []("vt").value(); + values.push_back(&vt); + int year = packet->operator []("year").value(); + int month = packet->operator []("month").value(); + int day = packet->operator []("day").value(); + int hours = packet->operator []("hours").value(); + int minutes = packet->operator []("minutes").value(); + int seconds = packet->operator []("seconds").value(); + std::stringstream ss; + ss << year; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << month; + ss << "-"; + ss << std::setfill('0') << std::setw(2) << day; + ss << "T"; + ss << std::setfill('0') << std::setw(2) << hours; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << minutes; + ss << ":"; + ss << std::setfill('0') << std::setw(2) << seconds; + FitsElements::S22::time_utc = ss.str(); + values.push_back(&FitsElements::S22::time_utc); + values.push_back(&seconds); + uint32_t time_tag_ns = packet->operator []("Time Tag Nanoseconds").value(); + values.push_back(&time_tag_ns); + uint16_t ssc = packet->operator []("Source Sequence Counter SSC").value(); + values.push_back(&ssc); + uint16_t packet_len = packet->operator []("Packet Length").value(); + values.push_back(&packet_len); + uint32_t evt_counter = packet->operator []("Event Counter").value(); + values.push_back(&evt_counter); + bool lid = packet->operator []("lid").value(); + values.push_back(&lid); + bool fib_st = packet->operator []("fib st").value(); + values.push_back(&fib_st); + bool fib_cont = packet->operator []("fib cont").value(); + values.push_back(&fib_cont); + bool fib_puls = packet->operator []("fib puls").value(); + values.push_back(&fib_puls); + int8_t rgb_cont = packet->operator []("rgb cont").value(); + values.push_back(&rgb_cont); + int8_t rgb_puls = packet->operator []("rgb puls").value(); + values.push_back(&rgb_puls); + uint16_t pix_trg_dt = packet->operator []("pixel trigger discriminator threshold").value(); + values.push_back(&pix_trg_dt); + uint16_t pix_trg_charge_dt = packet->operator []("pixel trigger charge discriminator threshold").value(); + values.push_back(&pix_trg_charge_dt); + bool ptm = packet->operator []("PTM").value(); + values.push_back(&ptm); + uint8_t trg_pix_id = packet->operator []("triggered pixel id").value(); + values.push_back(&trg_pix_id); + int16_t trg_type = packet->operator []("trg type").value(); + values.push_back(&trg_type); + int16_t trg_config = packet->operator []("trigger config").value(); + values.push_back(&trg_config); + int16_t etrg_type = packet->operator []("ext trigger type").value(); + values.push_back(&etrg_type); + int16_t etrg_freq = packet->operator []("ext trigger frequency").value(); + values.push_back(&etrg_freq); + bool pdm_vals[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "pdm val_#" << i; + pdm_vals[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&pdm_vals); + bool trg_enbs[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "trg enb_#" << i; + trg_enbs[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&trg_enbs); + bool trg_pdms[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "trg pdm_#" << i; + trg_pdms[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&trg_pdms); + bool evt_vals[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "evt val_#" << i; + evt_vals[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&evt_vals); + uint16_t high_gains[num_pdm][num_highgains]; + for (int i = 0; i < num_pdm; i++) { + for (int j = 0; j < num_highgains; j++) { + std::stringstream ss; + ss << "high gain pixel_#" << j << "_#" << i; + high_gains[i][j] = packet->operator [](ss.str()).value(); + } + values.push_back(&high_gains[i]); + } + uint16_t low_gains[num_pdm][num_highgains]; + for (int i = 0; i < num_pdm; i++) { + for (int j = 0; j < num_highgains; j++) { + std::stringstream ss; + ss << "low gain pixel_#" << j << "_#" << i; + low_gains[i][j] = packet->operator [](ss.str()).value(); + } + values.push_back(&low_gains[i]); + } + uint8_t time_triggers[num_pdm][num_highgains]; + for (int i = 0; i < num_pdm; i++) { + for (int j = 0; j < num_highgains; j++) { + std::stringstream ss; + ss << "time trigger pixel_#" << j << "_#" << i; + time_triggers[i][j] = packet->operator [](ss.str()).value(); + } + values.push_back(&time_triggers[i]); + } + bool hit_registers[num_pdm*num_highgains] = {}; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "HIT register_#" << i; + size_t hit = packet->operator [](ss.str()).value(); + for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + hit_registers[j] = (hit & 1); + hit >>= 1; + } + } + values.push_back(&hit_registers); + + bool trigger_mask[num_pdm*num_highgains] = {}; + for (int i = 0; i < num_pdm; i++) { + std::stringstream ss; + ss << "Trigger Mask_#" << i; + size_t mask = packet->operator [](ss.str()).value(); + for(int j = num_highgains*i +num_highgains-1; j >= num_highgains*i; j--){ + trigger_mask[j] = (mask & 1); + mask >>= 1; + } + } + values.push_back(&trigger_mask); + + uint16_t sipm_t1[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 1_#" << i; + sipm_t1[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t1); + uint16_t sipm_t2[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 2_#" << i; + sipm_t2[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t2); + uint16_t sipm_t3[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM temperature 3_#" << i; + sipm_t3[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_t3); + uint16_t sipm_hv[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM High Voltage_#" << i; + sipm_hv[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_hv); + uint32_t sipm_cu[num_pdm]; + for(int i = 0; i < num_pdm; i++){ + std::stringstream ss; + ss << "SiPM current_#" << i; + sipm_cu[i] = packet->operator [](ss.str()).value(); + } + values.push_back(&sipm_cu); + + for (int i = 0; i < values.size(); i++) { + int res = 0; + fits_write_col(fitsfile, std::get<3>(FitsElements::S22::events_hdu[i]), + i + 1, nrow, 1, 1, &values[i], &res); + if (res != 0) { // error + fits_report_error(stderr, res); + } + } + return 1; +} + +}; diff --git a/src/AstriFitsProcessor.cpp b/src/AstriFitsProcessor.cpp index 3d82894..f8da751 100644 --- a/src/AstriFitsProcessor.cpp +++ b/src/AstriFitsProcessor.cpp @@ -1,5 +1,6 @@ #include -#include +#include +#include using namespace inaf::oasbo; @@ -72,7 +73,6 @@ int AstriFitsProcessor::startProcessing() { int rcv = this->receiver->receiveFromClient(*this->packet); if (rcv > 0) { // packet read if (packet->getType() == 1 && packet->getSubType() == 4) { - nrow14++; if (firstC14) { std::string filename = computeFitsFileName(14); int status = 0; @@ -83,13 +83,15 @@ int AstriFitsProcessor::startProcessing() { } status = 0; int done = FitsFunctions::initFitsFileC14(fptr_c14, filename); - if(done < 1){ // error - continue; + if(done < 1){ // error initiating the file + break; // exit } + FitsFunctions::addC14StartTimesToFits(this->packet, fptr_c14); firstC14 = false; } + nrow14++; this->packet->updatePacketStructure(*this->structureC14); - add14EventPacketToFits(fptr_c14, nrow14); + FitsFunctions::addC14EventPacketToFits(this->packet,fptr_c14, nrow14); this->packet->updatePacketStructure(*this->structureGen); continue; } @@ -97,210 +99,21 @@ int AstriFitsProcessor::startProcessing() { } if (rcv < 0) { // error reading packet std::cerr << "Error reading packet" << std::endl; - continue; + continue; // go to next packet } if (rcv == 0) { // no more packets to read - int res = 0; - fits_close_file(fptr_c14, &res); + int status = 0; + if (!firstC14) { //at least one packet received -> file created + FitsFunctions::addC14EndTimesToFits(this->packet, fptr_c14); + fits_close_file(fptr_c14, &status); + } break; } - } return 1; } -int AstriFitsProcessor::add14EventPacketToFits(fitsfile *fitsfile, int nrow) { - std::vector values; - - bool vt = this->packet->operator []("vt").value(); - values.push_back(&vt); - uint8_t year = this->packet->operator []("year").value(); - uint8_t month = this->packet->operator []("month").value(); - uint8_t day = this->packet->operator []("day").value(); - uint8_t hours = this->packet->operator []("hours").value(); - uint8_t minutes = this->packet->operator []("minutes").value(); - uint8_t seconds = this->packet->operator []("seconds").value(); - std::stringstream ss; - ss << year; - ss << "-"; - ss << std::setfill('0') << std::setw(2) << month; - ss << "-"; - ss << std::setfill('0') << std::setw(2) << day; - ss << "T"; - ss << std::setfill('0') << std::setw(2) << hours; - ss << ":"; - ss << std::setfill('0') << std::setw(2) << minutes; - ss << ":"; - ss << std::setfill('0') << std::setw(2) << seconds; - std::string time_utc = ss.str(); - values.push_back(&time_utc); - values.push_back(&seconds); - uint32_t time_tag_ns = this->packet->operator []("Time Tag Nanoseconds").value(); - values.push_back(&time_tag_ns); - uint16_t ssc = this->packet->operator []("Source Sequence Counter SSC").value(); - values.push_back(&ssc); - uint16_t packet_len = this->packet->operator []("Packet Length").value(); - values.push_back(&packet_len); - uint32_t evt_counter = this->packet->operator []("Event Counter").value(); - values.push_back(&evt_counter); - bool lid = this->packet->operator []("lid").value(); - values.push_back(&lid); - bool fib_st = this->packet->operator []("fib st").value(); - values.push_back(&fib_st); - bool fib_cont = this->packet->operator []("fib cont").value(); - values.push_back(&fib_cont); - bool fib_puls = this->packet->operator []("fib puls").value(); - values.push_back(&fib_puls); - int8_t rgb_cont = this->packet->operator []("rgb cont").value(); - values.push_back(&rgb_cont); - int8_t rgb_puls = this->packet->operator []("rgb puls").value(); - values.push_back(&rgb_puls); - uint16_t pix_trg_dt = this->packet->operator []("pixel trigger discriminator threshold").value(); - values.push_back(&pix_trg_dt); - uint16_t pix_trg_charge_dt = this->packet->operator []("pixel trigger charge discriminator threshold").value(); - values.push_back(&pix_trg_charge_dt); - bool ptm = this->packet->operator []("PTM").value(); - values.push_back(&ptm); - uint8_t trg_pix_id = this->packet->operator []("triggered pixel id").value(); - values.push_back(&trg_pix_id); - bool trg_type = this->packet->operator []("trg type").value(); - values.push_back(&trg_type); - bool trg_config = this->packet->operator []("trigger config").value(); - values.push_back(&trg_config); - uint16_t etrg_type = this->packet->operator []("ext trigger type").value(); - values.push_back(&etrg_type); - uint16_t etrg_freq = this->packet->operator []("ext trigger frequency").value(); - values.push_back(&etrg_freq); - bool pdm_vals[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "pdm val_#" << i; - pdm_vals[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&pdm_vals); - bool trg_enbs[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "trg enb_#" << i; - trg_enbs[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&trg_enbs); - bool trg_pdms[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "trg pdm_#" << i; - trg_pdms[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&trg_pdms); - bool evt_vals[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "evt val_#" << i; - evt_vals[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&evt_vals); - uint16_t high_gains[37][64]; - for (int i = 0; i < 37; i++) { - for (int j = 0; j < 64; j++) { - std::stringstream ss; - ss << "high gain pixel_#" << j << "_#" << i; - high_gains[i][j] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&high_gains[i]); - } - uint16_t low_gains[37][64]; - for (int i = 0; i < 37; i++) { - for (int j = 0; j < 64; j++) { - std::stringstream ss; - ss << "low gain pixel_#" << j << "_#" << i; - low_gains[i][j] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&low_gains[i]); - } - uint8_t time_triggers[37][64]; - for (int i = 0; i < 37; i++) { - for (int j = 0; j < 64; j++) { - std::stringstream ss; - ss << "time trigger pixel_#" << j << "_#" << i; - time_triggers[i][j] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&time_triggers[i]); - } -// bool hit_registers[37][64] = {}; -// for (int i = 0; i < 37; i++) { -// std::stringstream ss; -// ss << "HIT register_#" << i; -// size_t hit = this->packet->operator [](ss.str()).value(); -// int count = 37; -// while (hit > 0) { -// hit_registers[i][count] = (hit & 1); -// hit >>= 1; -// count--; -// } -// values.push_back(&hit_registers[i]); -// } -// bool trigger_mask[37][64] = {}; -// for (int i = 0; i < 37; i++) { -// std::stringstream ss; -// ss << "Trigger Mask_#" << i; -// size_t mask = this->packet->operator [](ss.str()).value(); -// int count = 37; -// while (mask > 0) { -// trigger_mask[i][count] = (mask & 1); -// mask >>= 1; -// count--; -// } -// values.push_back(&trigger_mask[i]); -// } - uint16_t sipm_t1[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 1_#" << i; - sipm_t1[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t1); - uint16_t sipm_t2[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 2_#" << i; - sipm_t2[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t2); - uint16_t sipm_t3[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "SiPM temperature 3_#" << i; - sipm_t3[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_t3); - uint16_t sipm_hv[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "SiPM High Voltage_#" << i; - sipm_hv[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_hv); - uint16_t sipm_cu[FitsElements::num_pdm]; - for(int i = 0; i < FitsElements::num_pdm; i++){ - std::stringstream ss; - ss << "SiPM current_#" << i; - sipm_cu[i] = this->packet->operator [](ss.str()).value(); - } - values.push_back(&sipm_cu); - - for (int i = 0; i < values.size(); i++) { - int res = 0; - fits_write_col(fitsfile, std::get<3>(FitsElements::c14_events_hdu[i]), - i + 1, nrow, 1, 1, &values[i], &res); - if (res != 0) { // error - std::cerr << "error at: " << i << std::endl; - fits_report_error(stderr, res); - } - } - return 1; -} - std::string AstriFitsProcessor::computeFitsFileName(int type_subtype) { std::string ret = this->file_to_process; // TODO to check real naming conv if (type_subtype == 14) { -- GitLab From ec54f6aa5fd8b8ebcb458a1c491cc36c4f86b02b Mon Sep 17 00:00:00 2001 From: valerio pastore Date: Wed, 6 Mar 2024 17:38:31 +0100 Subject: [PATCH 5/7] . --- CMakeLists.txt | 2 + deps/sofa/20231011/c/00READ.ME | 49 + deps/sofa/20231011/c/doc/board.lis | 40 + deps/sofa/20231011/c/doc/board.pdf | Bin 0 -> 8614 bytes deps/sofa/20231011/c/doc/changes.lis | 131 + deps/sofa/20231011/c/doc/changes.pdf | Bin 0 -> 11642 bytes deps/sofa/20231011/c/doc/consts.lis | 54 + deps/sofa/20231011/c/doc/consts.pdf | Bin 0 -> 8483 bytes deps/sofa/20231011/c/doc/contents.lis | 25 + deps/sofa/20231011/c/doc/contents.pdf | Bin 0 -> 7025 bytes deps/sofa/20231011/c/doc/copyr.lis | 111 + deps/sofa/20231011/c/doc/copyr.pdf | Bin 0 -> 11677 bytes deps/sofa/20231011/c/doc/intro.lis | 216 + deps/sofa/20231011/c/doc/intro.pdf | Bin 0 -> 15039 bytes deps/sofa/20231011/c/doc/manual.lis | 19236 ++++++++++++++++ deps/sofa/20231011/c/doc/manual.pdf | Bin 0 -> 485794 bytes deps/sofa/20231011/c/doc/sofa_ast_c.pdf | Bin 0 -> 612133 bytes deps/sofa/20231011/c/doc/sofa_ast_summary.pdf | Bin 0 -> 63625 bytes deps/sofa/20231011/c/doc/sofa_lib.lis | 761 + deps/sofa/20231011/c/doc/sofa_lib.pdf | Bin 0 -> 23708 bytes deps/sofa/20231011/c/doc/sofa_misc_c.pdf | Bin 0 -> 235545 bytes deps/sofa/20231011/c/doc/sofa_pn_c.pdf | Bin 0 -> 1054150 bytes deps/sofa/20231011/c/doc/sofa_ts_c.pdf | Bin 0 -> 391202 bytes deps/sofa/20231011/c/doc/sofa_vm_c.pdf | Bin 0 -> 368981 bytes deps/sofa/20231011/c/doc/sofa_vml.lis | 315 + deps/sofa/20231011/c/doc/sofa_vml.pdf | Bin 0 -> 15284 bytes deps/sofa/20231011/c/doc/title.lis | 58 + deps/sofa/20231011/c/doc/title.pdf | Bin 0 -> 6271 bytes deps/sofa/20231011/c/src/a2af.c | 171 + deps/sofa/20231011/c/src/a2tf.c | 167 + deps/sofa/20231011/c/src/ab.c | 179 + deps/sofa/20231011/c/src/ae2hd.c | 185 + deps/sofa/20231011/c/src/af2a.c | 160 + deps/sofa/20231011/c/src/anp.c | 135 + deps/sofa/20231011/c/src/anpm.c | 135 + deps/sofa/20231011/c/src/apcg.c | 222 + deps/sofa/20231011/c/src/apcg13.c | 225 + deps/sofa/20231011/c/src/apci.c | 231 + deps/sofa/20231011/c/src/apci13.c | 243 + deps/sofa/20231011/c/src/apco.c | 325 + deps/sofa/20231011/c/src/apco13.c | 329 + deps/sofa/20231011/c/src/apcs.c | 275 + deps/sofa/20231011/c/src/apcs13.c | 232 + deps/sofa/20231011/c/src/aper.c | 203 + deps/sofa/20231011/c/src/aper13.c | 222 + deps/sofa/20231011/c/src/apio.c | 271 + deps/sofa/20231011/c/src/apio13.c | 301 + deps/sofa/20231011/c/src/atcc13.c | 185 + deps/sofa/20231011/c/src/atccq.c | 184 + deps/sofa/20231011/c/src/atci13.c | 200 + deps/sofa/20231011/c/src/atciq.c | 193 + deps/sofa/20231011/c/src/atciqn.c | 232 + deps/sofa/20231011/c/src/atciqz.c | 194 + deps/sofa/20231011/c/src/atco13.c | 285 + deps/sofa/20231011/c/src/atic13.c | 193 + deps/sofa/20231011/c/src/aticq.c | 240 + deps/sofa/20231011/c/src/aticqn.c | 278 + deps/sofa/20231011/c/src/atio13.c | 264 + deps/sofa/20231011/c/src/atioq.c | 289 + deps/sofa/20231011/c/src/atoc13.c | 276 + deps/sofa/20231011/c/src/atoi13.c | 271 + deps/sofa/20231011/c/src/atoiq.c | 300 + deps/sofa/20231011/c/src/bi00.c | 168 + deps/sofa/20231011/c/src/bp00.c | 223 + deps/sofa/20231011/c/src/bp06.c | 194 + deps/sofa/20231011/c/src/bpn2xy.c | 150 + deps/sofa/20231011/c/src/c2i00a.c | 189 + deps/sofa/20231011/c/src/c2i00b.c | 189 + deps/sofa/20231011/c/src/c2i06a.c | 186 + deps/sofa/20231011/c/src/c2ibpn.c | 192 + deps/sofa/20231011/c/src/c2ixy.c | 181 + deps/sofa/20231011/c/src/c2ixys.c | 173 + deps/sofa/20231011/c/src/c2s.c | 146 + deps/sofa/20231011/c/src/c2t00a.c | 204 + deps/sofa/20231011/c/src/c2t00b.c | 200 + deps/sofa/20231011/c/src/c2t06a.c | 202 + deps/sofa/20231011/c/src/c2tcio.c | 172 + deps/sofa/20231011/c/src/c2teqx.c | 172 + deps/sofa/20231011/c/src/c2tpe.c | 217 + deps/sofa/20231011/c/src/c2txy.c | 209 + deps/sofa/20231011/c/src/cal2jd.c | 192 + deps/sofa/20231011/c/src/cp.c | 130 + deps/sofa/20231011/c/src/cpv.c | 132 + deps/sofa/20231011/c/src/cr.c | 133 + deps/sofa/20231011/c/src/d2dtf.c | 289 + deps/sofa/20231011/c/src/d2tf.c | 211 + deps/sofa/20231011/c/src/dat.c | 353 + deps/sofa/20231011/c/src/dtdb.c | 1266 + deps/sofa/20231011/c/src/dtf2d.c | 256 + deps/sofa/20231011/c/src/eceq06.c | 184 + deps/sofa/20231011/c/src/ecm06.c | 187 + deps/sofa/20231011/c/src/ee00.c | 180 + deps/sofa/20231011/c/src/ee00a.c | 187 + deps/sofa/20231011/c/src/ee00b.c | 193 + deps/sofa/20231011/c/src/ee06a.c | 174 + deps/sofa/20231011/c/src/eect00.c | 335 + deps/sofa/20231011/c/src/eform.c | 199 + deps/sofa/20231011/c/src/eo06a.c | 183 + deps/sofa/20231011/c/src/eors.c | 160 + deps/sofa/20231011/c/src/epb.c | 158 + deps/sofa/20231011/c/src/epb2jd.c | 142 + deps/sofa/20231011/c/src/epj.c | 160 + deps/sofa/20231011/c/src/epj2jd.c | 142 + deps/sofa/20231011/c/src/epv00.c | 2642 +++ deps/sofa/20231011/c/src/eqec06.c | 185 + deps/sofa/20231011/c/src/eqeq94.c | 185 + deps/sofa/20231011/c/src/era00.c | 189 + deps/sofa/20231011/c/src/fad03.c | 156 + deps/sofa/20231011/c/src/fae03.c | 155 + deps/sofa/20231011/c/src/faf03.c | 158 + deps/sofa/20231011/c/src/faju03.c | 155 + deps/sofa/20231011/c/src/fal03.c | 156 + deps/sofa/20231011/c/src/falp03.c | 156 + deps/sofa/20231011/c/src/fama03.c | 155 + deps/sofa/20231011/c/src/fame03.c | 155 + deps/sofa/20231011/c/src/fane03.c | 152 + deps/sofa/20231011/c/src/faom03.c | 157 + deps/sofa/20231011/c/src/fapa03.c | 155 + deps/sofa/20231011/c/src/fasa03.c | 155 + deps/sofa/20231011/c/src/faur03.c | 152 + deps/sofa/20231011/c/src/fave03.c | 155 + deps/sofa/20231011/c/src/fk425.c | 322 + deps/sofa/20231011/c/src/fk45z.c | 252 + deps/sofa/20231011/c/src/fk524.c | 334 + deps/sofa/20231011/c/src/fk52h.c | 193 + deps/sofa/20231011/c/src/fk54z.c | 193 + deps/sofa/20231011/c/src/fk5hip.c | 177 + deps/sofa/20231011/c/src/fk5hz.c | 211 + deps/sofa/20231011/c/src/fw2m.c | 189 + deps/sofa/20231011/c/src/fw2xy.c | 171 + deps/sofa/20231011/c/src/g2icrs.c | 212 + deps/sofa/20231011/c/src/gc2gd.c | 187 + deps/sofa/20231011/c/src/gc2gde.c | 252 + deps/sofa/20231011/c/src/gd2gc.c | 186 + deps/sofa/20231011/c/src/gd2gce.c | 190 + deps/sofa/20231011/c/src/gmst00.c | 198 + deps/sofa/20231011/c/src/gmst06.c | 189 + deps/sofa/20231011/c/src/gmst82.c | 203 + deps/sofa/20231011/c/src/gst00a.c | 190 + deps/sofa/20231011/c/src/gst00b.c | 198 + deps/sofa/20231011/c/src/gst06.c | 192 + deps/sofa/20231011/c/src/gst06a.c | 183 + deps/sofa/20231011/c/src/gst94.c | 183 + deps/sofa/20231011/c/src/h2fk5.c | 198 + deps/sofa/20231011/c/src/hd2ae.c | 191 + deps/sofa/20231011/c/src/hd2pa.c | 164 + deps/sofa/20231011/c/src/hfk5z.c | 226 + deps/sofa/20231011/c/src/icrs2g.c | 211 + deps/sofa/20231011/c/src/ir.c | 133 + deps/sofa/20231011/c/src/jd2cal.c | 251 + deps/sofa/20231011/c/src/jdcalf.c | 226 + deps/sofa/20231011/c/src/ld.c | 203 + deps/sofa/20231011/c/src/ldn.c | 225 + deps/sofa/20231011/c/src/ldsun.c | 156 + deps/sofa/20231011/c/src/libsofa_c.a | Bin 0 -> 819278 bytes deps/sofa/20231011/c/src/lteceq.c | 181 + deps/sofa/20231011/c/src/ltecm.c | 201 + deps/sofa/20231011/c/src/lteqec.c | 181 + deps/sofa/20231011/c/src/ltp.c | 183 + deps/sofa/20231011/c/src/ltpb.c | 177 + deps/sofa/20231011/c/src/ltpecl.c | 221 + deps/sofa/20231011/c/src/ltpequ.c | 221 + deps/sofa/20231011/c/src/makefile | 895 + deps/sofa/20231011/c/src/moon98.c | 654 + deps/sofa/20231011/c/src/num00a.c | 171 + deps/sofa/20231011/c/src/num00b.c | 171 + deps/sofa/20231011/c/src/num06a.c | 175 + deps/sofa/20231011/c/src/numat.c | 159 + deps/sofa/20231011/c/src/nut00a.c | 2098 ++ deps/sofa/20231011/c/src/nut00b.c | 423 + deps/sofa/20231011/c/src/nut06a.c | 201 + deps/sofa/20231011/c/src/nut80.c | 376 + deps/sofa/20231011/c/src/nutm80.c | 167 + deps/sofa/20231011/c/src/obl06.c | 171 + deps/sofa/20231011/c/src/obl80.c | 171 + deps/sofa/20231011/c/src/p06e.c | 379 + deps/sofa/20231011/c/src/p2pv.c | 133 + deps/sofa/20231011/c/src/p2s.c | 141 + deps/sofa/20231011/c/src/pap.c | 191 + deps/sofa/20231011/c/src/pas.c | 148 + deps/sofa/20231011/c/src/pb06.c | 202 + deps/sofa/20231011/c/src/pdp.c | 136 + deps/sofa/20231011/c/src/pfw06.c | 216 + deps/sofa/20231011/c/src/plan94.c | 569 + deps/sofa/20231011/c/src/pm.c | 128 + deps/sofa/20231011/c/src/pmat00.c | 168 + deps/sofa/20231011/c/src/pmat06.c | 176 + deps/sofa/20231011/c/src/pmat76.c | 192 + deps/sofa/20231011/c/src/pmp.c | 135 + deps/sofa/20231011/c/src/pmpx.c | 195 + deps/sofa/20231011/c/src/pmsafe.c | 247 + deps/sofa/20231011/c/src/pn.c | 159 + deps/sofa/20231011/c/src/pn00.c | 227 + deps/sofa/20231011/c/src/pn00a.c | 213 + deps/sofa/20231011/c/src/pn00b.c | 213 + deps/sofa/20231011/c/src/pn06.c | 238 + deps/sofa/20231011/c/src/pn06a.c | 203 + deps/sofa/20231011/c/src/pnm00a.c | 171 + deps/sofa/20231011/c/src/pnm00b.c | 171 + deps/sofa/20231011/c/src/pnm06a.c | 175 + deps/sofa/20231011/c/src/pnm80.c | 176 + deps/sofa/20231011/c/src/pom00.c | 165 + deps/sofa/20231011/c/src/ppp.c | 135 + deps/sofa/20231011/c/src/ppsp.c | 144 + deps/sofa/20231011/c/src/pr00.c | 193 + deps/sofa/20231011/c/src/prec76.c | 199 + deps/sofa/20231011/c/src/pv2p.c | 131 + deps/sofa/20231011/c/src/pv2s.c | 194 + deps/sofa/20231011/c/src/pvdpv.c | 152 + deps/sofa/20231011/c/src/pvm.c | 136 + deps/sofa/20231011/c/src/pvmpv.c | 137 + deps/sofa/20231011/c/src/pvppv.c | 137 + deps/sofa/20231011/c/src/pvstar.c | 258 + deps/sofa/20231011/c/src/pvtob.c | 204 + deps/sofa/20231011/c/src/pvu.c | 143 + deps/sofa/20231011/c/src/pvup.c | 138 + deps/sofa/20231011/c/src/pvxpv.c | 157 + deps/sofa/20231011/c/src/pxp.c | 144 + deps/sofa/20231011/c/src/refco.c | 308 + deps/sofa/20231011/c/src/rm2v.c | 161 + deps/sofa/20231011/c/src/rv2m.c | 168 + deps/sofa/20231011/c/src/rx.c | 160 + deps/sofa/20231011/c/src/rxp.c | 149 + deps/sofa/20231011/c/src/rxpv.c | 142 + deps/sofa/20231011/c/src/rxr.c | 149 + deps/sofa/20231011/c/src/ry.c | 160 + deps/sofa/20231011/c/src/rz.c | 160 + deps/sofa/20231011/c/src/s00.c | 424 + deps/sofa/20231011/c/src/s00a.c | 195 + deps/sofa/20231011/c/src/s00b.c | 195 + deps/sofa/20231011/c/src/s06.c | 421 + deps/sofa/20231011/c/src/s06a.c | 197 + deps/sofa/20231011/c/src/s2c.c | 135 + deps/sofa/20231011/c/src/s2p.c | 138 + deps/sofa/20231011/c/src/s2pv.c | 153 + deps/sofa/20231011/c/src/s2xpv.c | 137 + deps/sofa/20231011/c/src/sepp.c | 157 + deps/sofa/20231011/c/src/seps.c | 145 + deps/sofa/20231011/c/src/sofa.h | 627 + deps/sofa/20231011/c/src/sofam.h | 222 + deps/sofa/20231011/c/src/sp00.c | 171 + deps/sofa/20231011/c/src/starpm.c | 258 + deps/sofa/20231011/c/src/starpv.c | 317 + deps/sofa/20231011/c/src/sxp.c | 134 + deps/sofa/20231011/c/src/sxpv.c | 135 + deps/sofa/20231011/c/src/t_sofa_c.c | 10367 +++++++++ deps/sofa/20231011/c/src/taitt.c | 163 + deps/sofa/20231011/c/src/taiut1.c | 165 + deps/sofa/20231011/c/src/taiutc.c | 211 + deps/sofa/20231011/c/src/tcbtdb.c | 185 + deps/sofa/20231011/c/src/tcgtt.c | 162 + deps/sofa/20231011/c/src/tdbtcb.c | 190 + deps/sofa/20231011/c/src/tdbtt.c | 175 + deps/sofa/20231011/c/src/tf2a.c | 160 + deps/sofa/20231011/c/src/tf2d.c | 160 + deps/sofa/20231011/c/src/tpors.c | 222 + deps/sofa/20231011/c/src/tporv.c | 219 + deps/sofa/20231011/c/src/tpsts.c | 170 + deps/sofa/20231011/c/src/tpstv.c | 194 + deps/sofa/20231011/c/src/tpxes.c | 203 + deps/sofa/20231011/c/src/tpxev.c | 223 + deps/sofa/20231011/c/src/tr.c | 143 + deps/sofa/20231011/c/src/trxp.c | 143 + deps/sofa/20231011/c/src/trxpv.c | 149 + deps/sofa/20231011/c/src/tttai.c | 163 + deps/sofa/20231011/c/src/tttcg.c | 165 + deps/sofa/20231011/c/src/tttdb.c | 174 + deps/sofa/20231011/c/src/ttut1.c | 163 + deps/sofa/20231011/c/src/ut1tai.c | 164 + deps/sofa/20231011/c/src/ut1tt.c | 163 + deps/sofa/20231011/c/src/ut1utc.c | 246 + deps/sofa/20231011/c/src/utctai.c | 231 + deps/sofa/20231011/c/src/utcut1.c | 199 + deps/sofa/20231011/c/src/xy06.c | 2809 +++ deps/sofa/20231011/c/src/xys00a.c | 183 + deps/sofa/20231011/c/src/xys00b.c | 183 + deps/sofa/20231011/c/src/xys06a.c | 183 + deps/sofa/20231011/c/src/zp.c | 127 + deps/sofa/20231011/c/src/zpv.c | 129 + deps/sofa/20231011/c/src/zr.c | 133 + include/AstriFitsProcessor.h | 1 + include/FitsHelperC14.h | 64 +- include/constants.h | 6 + src/AstriFitsProcessor.cpp | 33 +- src/main.cpp | 21 +- 285 files changed, 89956 insertions(+), 40 deletions(-) create mode 100644 deps/sofa/20231011/c/00READ.ME create mode 100644 deps/sofa/20231011/c/doc/board.lis create mode 100644 deps/sofa/20231011/c/doc/board.pdf create mode 100644 deps/sofa/20231011/c/doc/changes.lis create mode 100644 deps/sofa/20231011/c/doc/changes.pdf create mode 100644 deps/sofa/20231011/c/doc/consts.lis create mode 100644 deps/sofa/20231011/c/doc/consts.pdf create mode 100644 deps/sofa/20231011/c/doc/contents.lis create mode 100644 deps/sofa/20231011/c/doc/contents.pdf create mode 100644 deps/sofa/20231011/c/doc/copyr.lis create mode 100644 deps/sofa/20231011/c/doc/copyr.pdf create mode 100644 deps/sofa/20231011/c/doc/intro.lis create mode 100644 deps/sofa/20231011/c/doc/intro.pdf create mode 100644 deps/sofa/20231011/c/doc/manual.lis create mode 100644 deps/sofa/20231011/c/doc/manual.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_ast_c.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_ast_summary.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_lib.lis create mode 100644 deps/sofa/20231011/c/doc/sofa_lib.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_misc_c.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_pn_c.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_ts_c.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_vm_c.pdf create mode 100644 deps/sofa/20231011/c/doc/sofa_vml.lis create mode 100644 deps/sofa/20231011/c/doc/sofa_vml.pdf create mode 100644 deps/sofa/20231011/c/doc/title.lis create mode 100644 deps/sofa/20231011/c/doc/title.pdf create mode 100644 deps/sofa/20231011/c/src/a2af.c create mode 100644 deps/sofa/20231011/c/src/a2tf.c create mode 100644 deps/sofa/20231011/c/src/ab.c create mode 100644 deps/sofa/20231011/c/src/ae2hd.c create mode 100644 deps/sofa/20231011/c/src/af2a.c create mode 100644 deps/sofa/20231011/c/src/anp.c create mode 100644 deps/sofa/20231011/c/src/anpm.c create mode 100644 deps/sofa/20231011/c/src/apcg.c create mode 100644 deps/sofa/20231011/c/src/apcg13.c create mode 100644 deps/sofa/20231011/c/src/apci.c create mode 100644 deps/sofa/20231011/c/src/apci13.c create mode 100644 deps/sofa/20231011/c/src/apco.c create mode 100644 deps/sofa/20231011/c/src/apco13.c create mode 100644 deps/sofa/20231011/c/src/apcs.c create mode 100644 deps/sofa/20231011/c/src/apcs13.c create mode 100644 deps/sofa/20231011/c/src/aper.c create mode 100644 deps/sofa/20231011/c/src/aper13.c create mode 100644 deps/sofa/20231011/c/src/apio.c create mode 100644 deps/sofa/20231011/c/src/apio13.c create mode 100644 deps/sofa/20231011/c/src/atcc13.c create mode 100644 deps/sofa/20231011/c/src/atccq.c create mode 100644 deps/sofa/20231011/c/src/atci13.c create mode 100644 deps/sofa/20231011/c/src/atciq.c create mode 100644 deps/sofa/20231011/c/src/atciqn.c create mode 100644 deps/sofa/20231011/c/src/atciqz.c create mode 100644 deps/sofa/20231011/c/src/atco13.c create mode 100644 deps/sofa/20231011/c/src/atic13.c create mode 100644 deps/sofa/20231011/c/src/aticq.c create mode 100644 deps/sofa/20231011/c/src/aticqn.c create mode 100644 deps/sofa/20231011/c/src/atio13.c create mode 100644 deps/sofa/20231011/c/src/atioq.c create mode 100644 deps/sofa/20231011/c/src/atoc13.c create mode 100644 deps/sofa/20231011/c/src/atoi13.c create mode 100644 deps/sofa/20231011/c/src/atoiq.c create mode 100644 deps/sofa/20231011/c/src/bi00.c create mode 100644 deps/sofa/20231011/c/src/bp00.c create mode 100644 deps/sofa/20231011/c/src/bp06.c create mode 100644 deps/sofa/20231011/c/src/bpn2xy.c create mode 100644 deps/sofa/20231011/c/src/c2i00a.c create mode 100644 deps/sofa/20231011/c/src/c2i00b.c create mode 100644 deps/sofa/20231011/c/src/c2i06a.c create mode 100644 deps/sofa/20231011/c/src/c2ibpn.c create mode 100644 deps/sofa/20231011/c/src/c2ixy.c create mode 100644 deps/sofa/20231011/c/src/c2ixys.c create mode 100644 deps/sofa/20231011/c/src/c2s.c create mode 100644 deps/sofa/20231011/c/src/c2t00a.c create mode 100644 deps/sofa/20231011/c/src/c2t00b.c create mode 100644 deps/sofa/20231011/c/src/c2t06a.c create mode 100644 deps/sofa/20231011/c/src/c2tcio.c create mode 100644 deps/sofa/20231011/c/src/c2teqx.c create mode 100644 deps/sofa/20231011/c/src/c2tpe.c create mode 100644 deps/sofa/20231011/c/src/c2txy.c create mode 100644 deps/sofa/20231011/c/src/cal2jd.c create mode 100644 deps/sofa/20231011/c/src/cp.c create mode 100644 deps/sofa/20231011/c/src/cpv.c create mode 100644 deps/sofa/20231011/c/src/cr.c create mode 100644 deps/sofa/20231011/c/src/d2dtf.c create mode 100644 deps/sofa/20231011/c/src/d2tf.c create mode 100644 deps/sofa/20231011/c/src/dat.c create mode 100644 deps/sofa/20231011/c/src/dtdb.c create mode 100644 deps/sofa/20231011/c/src/dtf2d.c create mode 100644 deps/sofa/20231011/c/src/eceq06.c create mode 100644 deps/sofa/20231011/c/src/ecm06.c create mode 100644 deps/sofa/20231011/c/src/ee00.c create mode 100644 deps/sofa/20231011/c/src/ee00a.c create mode 100644 deps/sofa/20231011/c/src/ee00b.c create mode 100644 deps/sofa/20231011/c/src/ee06a.c create mode 100644 deps/sofa/20231011/c/src/eect00.c create mode 100644 deps/sofa/20231011/c/src/eform.c create mode 100644 deps/sofa/20231011/c/src/eo06a.c create mode 100644 deps/sofa/20231011/c/src/eors.c create mode 100644 deps/sofa/20231011/c/src/epb.c create mode 100644 deps/sofa/20231011/c/src/epb2jd.c create mode 100644 deps/sofa/20231011/c/src/epj.c create mode 100644 deps/sofa/20231011/c/src/epj2jd.c create mode 100644 deps/sofa/20231011/c/src/epv00.c create mode 100644 deps/sofa/20231011/c/src/eqec06.c create mode 100644 deps/sofa/20231011/c/src/eqeq94.c create mode 100644 deps/sofa/20231011/c/src/era00.c create mode 100644 deps/sofa/20231011/c/src/fad03.c create mode 100644 deps/sofa/20231011/c/src/fae03.c create mode 100644 deps/sofa/20231011/c/src/faf03.c create mode 100644 deps/sofa/20231011/c/src/faju03.c create mode 100644 deps/sofa/20231011/c/src/fal03.c create mode 100644 deps/sofa/20231011/c/src/falp03.c create mode 100644 deps/sofa/20231011/c/src/fama03.c create mode 100644 deps/sofa/20231011/c/src/fame03.c create mode 100644 deps/sofa/20231011/c/src/fane03.c create mode 100644 deps/sofa/20231011/c/src/faom03.c create mode 100644 deps/sofa/20231011/c/src/fapa03.c create mode 100644 deps/sofa/20231011/c/src/fasa03.c create mode 100644 deps/sofa/20231011/c/src/faur03.c create mode 100644 deps/sofa/20231011/c/src/fave03.c create mode 100644 deps/sofa/20231011/c/src/fk425.c create mode 100644 deps/sofa/20231011/c/src/fk45z.c create mode 100644 deps/sofa/20231011/c/src/fk524.c create mode 100644 deps/sofa/20231011/c/src/fk52h.c create mode 100644 deps/sofa/20231011/c/src/fk54z.c create mode 100644 deps/sofa/20231011/c/src/fk5hip.c create mode 100644 deps/sofa/20231011/c/src/fk5hz.c create mode 100644 deps/sofa/20231011/c/src/fw2m.c create mode 100644 deps/sofa/20231011/c/src/fw2xy.c create mode 100644 deps/sofa/20231011/c/src/g2icrs.c create mode 100644 deps/sofa/20231011/c/src/gc2gd.c create mode 100644 deps/sofa/20231011/c/src/gc2gde.c create mode 100644 deps/sofa/20231011/c/src/gd2gc.c create mode 100644 deps/sofa/20231011/c/src/gd2gce.c create mode 100644 deps/sofa/20231011/c/src/gmst00.c create mode 100644 deps/sofa/20231011/c/src/gmst06.c create mode 100644 deps/sofa/20231011/c/src/gmst82.c create mode 100644 deps/sofa/20231011/c/src/gst00a.c create mode 100644 deps/sofa/20231011/c/src/gst00b.c create mode 100644 deps/sofa/20231011/c/src/gst06.c create mode 100644 deps/sofa/20231011/c/src/gst06a.c create mode 100644 deps/sofa/20231011/c/src/gst94.c create mode 100644 deps/sofa/20231011/c/src/h2fk5.c create mode 100644 deps/sofa/20231011/c/src/hd2ae.c create mode 100644 deps/sofa/20231011/c/src/hd2pa.c create mode 100644 deps/sofa/20231011/c/src/hfk5z.c create mode 100644 deps/sofa/20231011/c/src/icrs2g.c create mode 100644 deps/sofa/20231011/c/src/ir.c create mode 100644 deps/sofa/20231011/c/src/jd2cal.c create mode 100644 deps/sofa/20231011/c/src/jdcalf.c create mode 100644 deps/sofa/20231011/c/src/ld.c create mode 100644 deps/sofa/20231011/c/src/ldn.c create mode 100644 deps/sofa/20231011/c/src/ldsun.c create mode 100644 deps/sofa/20231011/c/src/libsofa_c.a create mode 100644 deps/sofa/20231011/c/src/lteceq.c create mode 100644 deps/sofa/20231011/c/src/ltecm.c create mode 100644 deps/sofa/20231011/c/src/lteqec.c create mode 100644 deps/sofa/20231011/c/src/ltp.c create mode 100644 deps/sofa/20231011/c/src/ltpb.c create mode 100644 deps/sofa/20231011/c/src/ltpecl.c create mode 100644 deps/sofa/20231011/c/src/ltpequ.c create mode 100644 deps/sofa/20231011/c/src/makefile create mode 100644 deps/sofa/20231011/c/src/moon98.c create mode 100644 deps/sofa/20231011/c/src/num00a.c create mode 100644 deps/sofa/20231011/c/src/num00b.c create mode 100644 deps/sofa/20231011/c/src/num06a.c create mode 100644 deps/sofa/20231011/c/src/numat.c create mode 100644 deps/sofa/20231011/c/src/nut00a.c create mode 100644 deps/sofa/20231011/c/src/nut00b.c create mode 100644 deps/sofa/20231011/c/src/nut06a.c create mode 100644 deps/sofa/20231011/c/src/nut80.c create mode 100644 deps/sofa/20231011/c/src/nutm80.c create mode 100644 deps/sofa/20231011/c/src/obl06.c create mode 100644 deps/sofa/20231011/c/src/obl80.c create mode 100644 deps/sofa/20231011/c/src/p06e.c create mode 100644 deps/sofa/20231011/c/src/p2pv.c create mode 100644 deps/sofa/20231011/c/src/p2s.c create mode 100644 deps/sofa/20231011/c/src/pap.c create mode 100644 deps/sofa/20231011/c/src/pas.c create mode 100644 deps/sofa/20231011/c/src/pb06.c create mode 100644 deps/sofa/20231011/c/src/pdp.c create mode 100644 deps/sofa/20231011/c/src/pfw06.c create mode 100644 deps/sofa/20231011/c/src/plan94.c create mode 100644 deps/sofa/20231011/c/src/pm.c create mode 100644 deps/sofa/20231011/c/src/pmat00.c create mode 100644 deps/sofa/20231011/c/src/pmat06.c create mode 100644 deps/sofa/20231011/c/src/pmat76.c create mode 100644 deps/sofa/20231011/c/src/pmp.c create mode 100644 deps/sofa/20231011/c/src/pmpx.c create mode 100644 deps/sofa/20231011/c/src/pmsafe.c create mode 100644 deps/sofa/20231011/c/src/pn.c create mode 100644 deps/sofa/20231011/c/src/pn00.c create mode 100644 deps/sofa/20231011/c/src/pn00a.c create mode 100644 deps/sofa/20231011/c/src/pn00b.c create mode 100644 deps/sofa/20231011/c/src/pn06.c create mode 100644 deps/sofa/20231011/c/src/pn06a.c create mode 100644 deps/sofa/20231011/c/src/pnm00a.c create mode 100644 deps/sofa/20231011/c/src/pnm00b.c create mode 100644 deps/sofa/20231011/c/src/pnm06a.c create mode 100644 deps/sofa/20231011/c/src/pnm80.c create mode 100644 deps/sofa/20231011/c/src/pom00.c create mode 100644 deps/sofa/20231011/c/src/ppp.c create mode 100644 deps/sofa/20231011/c/src/ppsp.c create mode 100644 deps/sofa/20231011/c/src/pr00.c create mode 100644 deps/sofa/20231011/c/src/prec76.c create mode 100644 deps/sofa/20231011/c/src/pv2p.c create mode 100644 deps/sofa/20231011/c/src/pv2s.c create mode 100644 deps/sofa/20231011/c/src/pvdpv.c create mode 100644 deps/sofa/20231011/c/src/pvm.c create mode 100644 deps/sofa/20231011/c/src/pvmpv.c create mode 100644 deps/sofa/20231011/c/src/pvppv.c create mode 100644 deps/sofa/20231011/c/src/pvstar.c create mode 100644 deps/sofa/20231011/c/src/pvtob.c create mode 100644 deps/sofa/20231011/c/src/pvu.c create mode 100644 deps/sofa/20231011/c/src/pvup.c create mode 100644 deps/sofa/20231011/c/src/pvxpv.c create mode 100644 deps/sofa/20231011/c/src/pxp.c create mode 100644 deps/sofa/20231011/c/src/refco.c create mode 100644 deps/sofa/20231011/c/src/rm2v.c create mode 100644 deps/sofa/20231011/c/src/rv2m.c create mode 100644 deps/sofa/20231011/c/src/rx.c create mode 100644 deps/sofa/20231011/c/src/rxp.c create mode 100644 deps/sofa/20231011/c/src/rxpv.c create mode 100644 deps/sofa/20231011/c/src/rxr.c create mode 100644 deps/sofa/20231011/c/src/ry.c create mode 100644 deps/sofa/20231011/c/src/rz.c create mode 100644 deps/sofa/20231011/c/src/s00.c create mode 100644 deps/sofa/20231011/c/src/s00a.c create mode 100644 deps/sofa/20231011/c/src/s00b.c create mode 100644 deps/sofa/20231011/c/src/s06.c create mode 100644 deps/sofa/20231011/c/src/s06a.c create mode 100644 deps/sofa/20231011/c/src/s2c.c create mode 100644 deps/sofa/20231011/c/src/s2p.c create mode 100644 deps/sofa/20231011/c/src/s2pv.c create mode 100644 deps/sofa/20231011/c/src/s2xpv.c create mode 100644 deps/sofa/20231011/c/src/sepp.c create mode 100644 deps/sofa/20231011/c/src/seps.c create mode 100644 deps/sofa/20231011/c/src/sofa.h create mode 100644 deps/sofa/20231011/c/src/sofam.h create mode 100644 deps/sofa/20231011/c/src/sp00.c create mode 100644 deps/sofa/20231011/c/src/starpm.c create mode 100644 deps/sofa/20231011/c/src/starpv.c create mode 100644 deps/sofa/20231011/c/src/sxp.c create mode 100644 deps/sofa/20231011/c/src/sxpv.c create mode 100644 deps/sofa/20231011/c/src/t_sofa_c.c create mode 100644 deps/sofa/20231011/c/src/taitt.c create mode 100644 deps/sofa/20231011/c/src/taiut1.c create mode 100644 deps/sofa/20231011/c/src/taiutc.c create mode 100644 deps/sofa/20231011/c/src/tcbtdb.c create mode 100644 deps/sofa/20231011/c/src/tcgtt.c create mode 100644 deps/sofa/20231011/c/src/tdbtcb.c create mode 100644 deps/sofa/20231011/c/src/tdbtt.c create mode 100644 deps/sofa/20231011/c/src/tf2a.c create mode 100644 deps/sofa/20231011/c/src/tf2d.c create mode 100644 deps/sofa/20231011/c/src/tpors.c create mode 100644 deps/sofa/20231011/c/src/tporv.c create mode 100644 deps/sofa/20231011/c/src/tpsts.c create mode 100644 deps/sofa/20231011/c/src/tpstv.c create mode 100644 deps/sofa/20231011/c/src/tpxes.c create mode 100644 deps/sofa/20231011/c/src/tpxev.c create mode 100644 deps/sofa/20231011/c/src/tr.c create mode 100644 deps/sofa/20231011/c/src/trxp.c create mode 100644 deps/sofa/20231011/c/src/trxpv.c create mode 100644 deps/sofa/20231011/c/src/tttai.c create mode 100644 deps/sofa/20231011/c/src/tttcg.c create mode 100644 deps/sofa/20231011/c/src/tttdb.c create mode 100644 deps/sofa/20231011/c/src/ttut1.c create mode 100644 deps/sofa/20231011/c/src/ut1tai.c create mode 100644 deps/sofa/20231011/c/src/ut1tt.c create mode 100644 deps/sofa/20231011/c/src/ut1utc.c create mode 100644 deps/sofa/20231011/c/src/utctai.c create mode 100644 deps/sofa/20231011/c/src/utcut1.c create mode 100644 deps/sofa/20231011/c/src/xy06.c create mode 100644 deps/sofa/20231011/c/src/xys00a.c create mode 100644 deps/sofa/20231011/c/src/xys00b.c create mode 100644 deps/sofa/20231011/c/src/xys06a.c create mode 100644 deps/sofa/20231011/c/src/zp.c create mode 100644 deps/sofa/20231011/c/src/zpv.c create mode 100644 deps/sofa/20231011/c/src/zr.c create mode 100644 include/constants.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0acf9c3..7aa4f67 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ add_executable(FitsPreprocessor.lnx ${SOURCES}) # include files set(INC_DIR + "${PROJECT_SOURCE_DIR}/deps/sofa/20231011/c/src" "${PROJECT_SOURCE_DIR}/include" ) target_include_directories (FitsPreprocessor.lnx PUBLIC ${INC_DIR}) @@ -32,6 +33,7 @@ target_include_directories (FitsPreprocessor.lnx PUBLIC ${INC_DIR}) set(LIBS) find_library(libcfitsio cfitsio REQUIRED) list(APPEND LIBS cfitsio) +list(APPEND LIBS "${PROJECT_SOURCE_DIR}/deps/sofa/20231011/c/src/libsofa_c.a") list(APPEND LIBS AstriPacket) list(APPEND LIBS FileReceiver) diff --git a/deps/sofa/20231011/c/00READ.ME b/deps/sofa/20231011/c/00READ.ME new file mode 100644 index 0000000..c99cdca --- /dev/null +++ b/deps/sofa/20231011/c/00READ.ME @@ -0,0 +1,49 @@ + +SOFA-Issue: 2023-10-11 + +This is the IAU Standards of Fundamental Astronomy (SOFA) Libraries product, +issued on 2023-10-11. The tag `SOFA-Issue' above defines this release and +differentiates it from previous or subsequent releases of the SOFA product. +The 00READ.ME file must remain with this distribution set. + +Changes made since the previous release are noted in the file changes.lis. + +Notes: + +1/ Unix users: The distribution set contains a simple makefile which + can be used to create a single object library for the SOFA Libraries. + To build the object library: + + a/ Examine the makefile to be sure definition of the C compiler + is correct for your system. You need an ANSI standard compliant + C compiler. Edit the CCOMPC macro in the makefile as necessary. + + b/ To create libsofa.a, execute make: + + % make + + (where % is the shell prompt). + + c/ To remove the object files: + + % make clean + + To link with the SOFA library, include the library in the compile/link + command in the normal Unix fashion, eg: + + % gcc myprog.c -o myprog libsofa.a + + You should specify the appropriate C compiler name for `gcc' + in the above command sequence. + + +2/ Windows/DOS/Mac users: There is no `build' procedure to create a linkable + object library or DLL for the SOFA Libraries. This is due to the many + different C compilers and development environments available on + Windows/DOS and Mac machines. + + To use the SOFA routines with your program(s), you must use your preferred + development environment to create the appropriate library or DLL. + +IAU SOFA Center +2023/10/11 diff --git a/deps/sofa/20231011/c/doc/board.lis b/deps/sofa/20231011/c/doc/board.lis new file mode 100644 index 0000000..863454c --- /dev/null +++ b/deps/sofa/20231011/c/doc/board.lis @@ -0,0 +1,40 @@ +board.lis 2023 May 31 + + + +IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD + + +Current Membership + + John Bangert - United States Naval Observatory, retired + Steven Bell - His Majesty's Nautical Almanac Office (HMNAO) + Nicole Capitaine - Paris Observatory + Maria Davis - United States Naval Observatory (IERS) + Mickael Gastineau - Paris Observatory, IMCCE + Catherine Hohenkerk - HMNAO (Chair, retired) + Li Jinling - Shanghai Astronomical Observatory + Zinovy Malkin - Pulkovo Observatory, St Petersburg + Jeffrey Percival - University of Wisconsin + Wendy Puatua - United States Naval Observatory + Scott Ransom - National Radio Astronomy Observatory + Nick Stamatakos - United States Naval Observatory + Patrick Wallace - RAL Space, retired + Toni Wilmot - His Majesty's Nautical Almanac Office + + +Past Members + + Wim Brouw University of Groningen + Mark Calabretta Australia Telescope National Facility + William Folkner Jet Propulsion Laboratory + Anne-Marie Gontier Paris Observatory + George Hobbs Australia Telescope National Facility + George Kaplan United States Naval Observatory + Brian Luzum United States Naval Observatory + Dennis McCarthy United States Naval Observatory + Skip Newhall Jet Propulsion Laboratory + Jin Wen-Jing Shanghai Astronomical Observatory + + +The email address for the Board chair is catherine.hohenkerk@gmail.com diff --git a/deps/sofa/20231011/c/doc/board.pdf b/deps/sofa/20231011/c/doc/board.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9e9afbbae295100a27c03e034b38f91b7e075ca4 GIT binary patch literal 8614 zcma)i30PCd*Y~|i2w5O2VF{3hRS>yJ1PqFpu!Eq8h^(3m37ZJWCa%3<$E7MD0$Q4& zB3iUat;MA_K?KANwOX_;H)xSs8qr#yYW=^#+S>m6eb4&_c<#)ZbIzQ5=KN*`emF)3 z1kDn?<%o;(3BCpnYk;{$~&veOFEd0qxd6cm(^RiMb@K|xt?fg(VWk|S66 z`jYYs@)YoDQt`e|mPIW6UO@Z$_42W!0&KSL3}wP6*(ROP>*!JZWhCXyDWMqxBEPx`X$=w_fGJT)74F_EF}y>HnsvuwD{0RTcU*!#K6JtkJ|Y=u6DYL>u8fj1Uw_uY zHPKHrUS0Dtu*Feo{G_`jvL|3pdPC;^GFOks&j@K<=q>7{k$~@>oFDaGJfp@WwA<0V z{-*4=6)o5<%Dhj0A>EMfty$xl^kZFgkW>Em1wYK*;2a1yUs!kbCUcM#M)G_#G()l5 zn^MxvK3Z@t>haH4Hz1_C?c*W*)MU3XZbBd=!c1wd(s!aiR~eoIo^%8Y;i5Ps`8Cjvw|sW>|Xxzp#B-} z)S1SVYuA%o*QO_wpOLPzDJY9d9u61Ee+tgu{P5*|^7bzoXCoR{rH$NAoXSkk9%BAf zy>6bnz4l4T^&cKhyvhD)<3&d9wa~9WVVqpuyP`%s(mm_gbLqv?YI$&rFL|Rm74YT3Ta<{LUy6TmA6TGx8#ZdINjp%tYSRsA%FQ31XqGsQ3?AyM z`}yRq-|RQ78@w;EExLc=o5VBWzt{dAV_v-!Gq5B?bFn9Ki6+__-EVwX{~t{CymVx; zzWtj0f}~G_AEr@8o#&=q{blI&#mSY}30AfuTmBvohSoHOrjaxKoHNIR^j_rg0bbGT zaurY{oTh*x6!Hw%FQ=H7ATSJjdVBK39-<@?6qQq802@zW(8^O}7w~3JBhesM&%!Nm;5WNPr9|=0VYl;sS$RP>w;_`<=1@qmaL$YcS8}O=CNXWDva%X4>B$ zST~p&qT#&@C!Yr`%#i2v5=hg*Mv;kHWv13jZ>FZ|M&gz*#wIf4cZ1)DKfl zNArGLiJC*2Gwt}p;B@!>pdXyCm<}I`@{fpG7%gpFWtL({?iVcUdX>X%QLd2+4&iN^#d|eQx%4i zHq>weX|^}CrZC5FxMZZI7mz$Wq174Lh51PzCYfIBzt1sUA0KMrT>&hDS1bNsCF5s6 zl>t<W#s1@GWa*ibbT7YIs=kIevm&D z00lxpP%sn%g+gJ_LMR-HfEGcEp-9M(ZzvjC1}%r;pm+#|-~uQaN`X>xRWBTJE5@JH)iYN1?1igVucD*Np$4*9lLtr=ft}ZQEO1RodyHGT4OMW{TQ$nFGQrzR z!KxR$eOI5f90zFw`5ui|x=jYH&>nfUO#7E8`fkVZ*Nu5i;E^`yd8Z}KuV*{Xvo}}MLqjZmDMLZal+*{ukYNa zaBkdU7Pad@Yo;rEp!IyliaL>16>eCWegJW^fXgJ9Vju{Z0T@d_9?$~VA~+Q&09pYi zLP9_Za0Dc=2Qeg&xDgdq5;39#ufIR>rfIR|M0S*8r1h7Id zkpLUO!~$#tBLl1fOgi8UfEs{+06PI90<@R_AOJ7`GYwz{;CKdI5Cw`$R1zLA7cuU_ z%tahKaArUt0Z#`~1o&h?IZlWHRHLM1pu5T>9?_wcCBTzd8dr%^(bg&Lhs;2wf4>>5 zgp17=fk>O>Ol1X+%~b9mWTz>+c{Wj?E|RmX1Qhe;VfX~Qxg|~l2gj1YbcaHWJjAI0 zQ_?mgyrgp6H3)N{*fkb&2z8@i&WqhXD$xP%+)s^Vwz0bu&-Es^FNAK~YJ8}xfwZS@ zNQ9|E1!EGL|Io{Yv_QajLj@p|EUYQhc}W;JieNM2sb1khfd*FVh-IOUDy0W2q_e~)p#fVVBokz zN;5j+*vjU|+RfyWG*Hj`6zp=fO*~+FU2z|2?1<*3ZoilxH)q+O0MQck(grKcdYO*`$2sZA?>>%w4}lll#xZtpuq!&=+9 zd~8vAhp;bj+oS$=7o}zW4A0x$=iD|Zi*<=BcZ#Q+*5@=xzFa?YQn7DC11h|+s>zvH zFSJnp7)dQj({5g7R<0~IwbuPs&n)e`1FipIW2Em2;KFYcGfNJ29otYL^H#~W*|oLI z*e31w-BcEQXa3Okw5||r!{fLZzuo@*bnWg($0eTId4nx8$t~jf)zre{50e^)bZ=K8 zX{V|-61qY>7)H)RPMb=M8y0OSd8mH8mh)o>hr!|I`ttoWEKW)m4}-)|wBt@V&1e=y z`>j`RzaIPZ&`PQjaMlneS=5~ywrlkcNmYKF;Y7?9z{I&svzwWmwV+y}fA(G8h+@^z zG}6J-1mhujG4`GaShDCF^R|67OvGyHm-mj}4;w2xf6wl;qQ^ohHjdRh?ybfbTr)qv z05=vG`}Os4?y{i^8%t5I9ZGj2ztK*T9pYHkvD2JUZVwcfZ~e2_7m6shlCM8Z+FEIhx4p1v`^c)0MlSZlyFGYEsKEQd>i(&oofZiygZtg?#(JZcN20Lcz^LLxBiKrf9< zG{LPZJh1=%*?CSA4}-hd7LVFjR`lT(7P%&MK-(?5+dFat7GQj$5`X=%Xc4bl_hg>i-bei#jkJ2x`rX3Tg4_1gCXF(i5xzGrGHvxTsvQs~6TqXd782rpQ5wEQOa_N_bAHI>;U5Quv&hHyPXKJ^x4mn;i{{rv4928|ybIpum zy6VprU8V+~t@-lc?FE?R4lgnt;q*$ZubkfqZ&$Cdy^y;qPTLk)0lP5+s%A4&Ko@;FsvJN|}^4X#!cn0vgX)Sv)DzzcpvY|pcJcKh+HCSmoyos0- z@t5JD$@G$wX7sX^I}p(F0&UWS7agXk*g*H|{GltWBeMNfwlN}zrbs*djH-Rc!H&Be zG?BVpK(XtkwOV0@;Eq~#y7%ye0NA3{VnRbA9 zB}*C|QFfI==)0evD5;~CiKk3M#T`%js5LD-(YwJU9%* z%uaZ?YWC&_*WEzn)BxH3M3RZn%{g$0V~&wWR4dJ$4iqB{?Mr{c8Z&-?xj#j1IlnyA zhv82Gbmn$4_>ixkM+~&HK;N6?tu+u5i2Nx=#D-N&UXqW-xmo@XED4 zc~j$^W4RGqCsV;VK+Xj%$)?vrhVE&KP0tUXdJs7}aLhT0n=HVB!d$aY26Kp#tXUOH zR-%1fTHKYKamA8i-=18&vA@Yo(~-LbWj!6PGK0%3+GAplv>yb+OScp;DwDB`Q=g}8 zW>-dbRhnZ1hq<}DQ!Y0#J4!A&e}uu0{pK2JYy8xBaTlP5F;FH~7Q45@4f}*$Y&h^$ zZxd8u99>ITZfsS@3d-kC3#G~JNHG^70PS5|V0bxv;$TRx$psBYefi~%^p{U!D*|s! zYT~)@5TGd`s#M0vNwU`096fPZV%P6}qBpH$ytDlrV%Xa!9+pw0#~^;|g97}V2vBobg^?9@Tz>&;ap3&93D4cV(%K;wTy z(2y)OCN@r&ZKM-)+Rm-*r(-mkF&gvazHW}L=(h{ma^Nu+kYlvytI^JUU`qY-Q#Mj% z3B;JF>ZqD=65^v*5@@hF6{S&+ikKjeuC=7=1XyhqQ=Q3xV`{Z67P7l!jW1C}A?iFR zQXBGB3PzJoMCJJ)&RE+((%xo+WoCTDYF2@zhCq}wlh9GZMIR#2&5{;bs$0zA2j;pW znikL6`3p!oma{FBgQ6I9hn4oKsXCLyZ{x~NV)>V7i^~!u$AD|DMA?9aW`%i<2?uS) zg0meLFEmn_|GKyvtBXlci@36JnQFXl(08J0i}9fA+Y7@3S*o}fjo6>{SajP|-)U2$ zEbHg;CgOpV>LYTXZ7(=(`{T(ss^i#-cv5u_-DQ9r^=+IMWnUYxkThAq6{gw)gA$Id z7Uc}bVqE+-8wDjw$(dJ)Rco@WEt== zSAJkKNi(3Y2__b!$;0mqW{#%1JW(F*jqx5+#{mpUag|=LHTi z866ug_gvoDBnMSonhK+GHG!i^S}}=2!K$K+%FDPiSKEvcEWFQ3?ZeU`SX~rT=fONG z20?*d@`eVR(D}G$yiT%e9|ftX)%X#>77jSdRvzGJPg`jQ$b37jj{O+M-^vch>LWF# zsY!f%>-H-k!5wh!<^uRq<=N4+WIVAAP*0gqI!`%{$DzwC@f)$vPMSc$9@oqmshe?% z(?;+lOA^n~^#H0+Z|CSqN%vu7;5_ELSDfo)u-Vf7W{UGW!o791oC%&K}RTYI^x z$kPCzs$4<=*a?MpaY?JDl$MZ07 zF&E^!bzXCKj^WBK1DdmzXfsPvg`ylIV9{n{)K(MDL2cO58Wz0G{CODxME6|0_u81k zmFXRqa*#s;7P4HF>1901wuO&bgSUcR!IYdTy+YGQ;g!XS%m zBR#k>0j}dDc+w_#Fb_M11K}cbzDO^5MN?Dgd{QmYYpSZCsG8}rAi8Y5mF(3*?M6T; zwpO=V@~_h2%XGMnr1UZlkJ;L<0r+|MRZ*ptSJ|ly+|_&uIAIJ=7(0oMDfKwlZ;u6! zj>3ApJ}(WNz&?44xJ0Tnpm@*&4^99vH9$cXAk_~_L^cEU!8hDvE}e*Z8cAsrv!Jdb zUL&bCk}GSl3>`Dq##l*ZETWsG%7-B}qwCD+hkcl^8$<2E1n~^y6ud=n@ z+VWOAs4#0sDp#27cX`>9I`+Bi4oPfSKSe{}pl^>#DAr&N39Tnewvkjh)Y%_px->NQ z&RVMc!U7P$Z?|3;FnCATMsgcY0e%Y;T%?t!$>lh?zFqGW8h1qtH5w6j8PA= z!`$$aDgq+I0~PzVy==JErvA}VVQMd4%ye57U41J0#@)$1iEC2x*AvlnJ_XQ*v-o1B z){X&2n!(`=but~6(_!C?UKJJJN|!yz)L~4rn%l*@i=0Ymh>5jonGK%F;o4M0NQIiecOD8#Ps@lBB6N{74JwMmk&%g4*Ik zAzavczD0f4WYe0w)~v-+SDl`|{77+I3!7h023kqLda@*;^0N~*ts+Oh1Dn^`q}3lv zjmS98_{6b?JzHCMu$lW^N+ZvS12VW^Gp4Nx`0VE>ov+~#&XM6PrFsi#nH^{ z>Z?v9tG!6s6mQALc*!{?+RHjlVM(5v18>>9x9kvinmUN845PwcrfPFj8I7RXNd{zi z*%k|F4Nc=imoCUtP1FwFUOPp@`#@%#e*R4d0SCW=eAwK(mr=u>eo9wOdRit@Z8!45d+!X+kW2f!E9I zhE~TpzZ|f*QvkF?ailG@jCL*n=kTYnVfToVvt)f%ChFpRWh%~a>(^eU^AE743>yu7 zpK`)nMtMD2^YBzNM@Ql49GjGrP2Xk2zbsBcWGTpsQsqgQ3>cv`06MORy_iZThC1M| zguz9wa%GHF>%|PMA6DBGZ!~OVu{cqu|BtuT9;2+~tT{7BBu!{52mKhMPG=pfXp@kr zwY8zy7T%vrOdQX6$=a`|IDmRhM6Q+ZS-Yr<5zLGEKRc3?wF(_ zMw50yxlxV}07Fk0uiK(ft5U(1&qn_f=x(gRFhKqy`j7V{5gsX6Rj0=gsWIBZgl*FM&bnNT-ErpNZryRdUiq zHviyuGZPmd`5Yfp&4ej(3HYs(Mv4S^voK1%JjGo0y*JHc_T6N7{_Q$aFn zxJs!+RINKz=T29<(vN>-3MxXhSZqT4i%ZY70?|qsatBaNLN0$~1h`^otF*q|a|54qTw(i_gw+bTORY z-^A)L)Z!UQ%G-4QaXE_cd1XXRDoNJCR445KaSXl*T}`OfyrF>rRWrc^-mreIvp^qM zNPe%KZ3#-hqv#sQ>KcMNIv> zH!-!&YO=ibuq2A3lP+2#Vi$H1mxWMu<}@XN3Opbb4OA}T;MC?gT|5utR62&)FFZ&K zEsN!Q)Gu_3A{@x%+i~r`)>ibbpEbI5-H~RK$*x&8yMpYOWB`8hxAnf2%4?M=_h*~~ z&NPqZ9=-#V%x|vgcLX+#J7H%;T?`mr4b;u89GUI0FdRS0@wL@09R`6-{`T}4k7sOZ zer!Ga2k7ZUJs8$+(dm0q&33aIZ5&b1XkBytJ>HliWta};j>CLEp z(?#6w1%6K*e)#F$igO#WPFH_@t=v3GfHXPEt@i?0abO)$-c;yb7RJ4?%J3Xp|dTAMt~)`TnGcO?XK!|mi& zPiM+ZZ068Jci?d)bq!*xXUO+e(i@VlP7 zXHOiad`qcIOk#r*n4Ur3QX=25^+{JesjBi0JCOFg(cHh(UhCn@e0<$0qz>2Rv!UGi zlmv4`IE2}-XSKjpustQcU&Km*GpRKiVdk>kj*W89-S#Ba{Ms~4W<)c3++Alz(Z zp^3{10}(hYREeYm0FO6Kvi*||6n)?^478oRFh!9!BRDdg7o47xU+@RD#q)L-dAb|UKV<^(zikBqp@FFUZ#~a{*$Rc8 z|I!nBdH*XGp-^NXV*lw+BozEx&(qsLME9PkW;Y>t5j zo#sGzP-u2)4sUu%4UBAP058EO$isWKIM7=dFgwu0-*dJ|BovARrGegay!?fpL4jVr c|GP%gG{c%-0Ou9FOT5_NgXHKKxHyRPKS!0qY5)KL literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/doc/changes.lis b/deps/sofa/20231011/c/doc/changes.lis new file mode 100644 index 0000000..54c0d3d --- /dev/null +++ b/deps/sofa/20231011/c/doc/changes.lis @@ -0,0 +1,131 @@ + +This is the list of updates and changes that are actual errors. +Additions, such as including the units "radians", and/or typographical +alterations are not listed. They include changing capitalisation, e.g. +AU -> au and Of -> of, and consistent spelling i.e. catalogue -> catalog. + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Corrections to Code +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Fortran + +STARPV, PVSTAR Code changes to make better use of machine precision + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ANSI C + +Starpv, Pvstar + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Updated parameters +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Fortran + +DAT + PARAMETER ( IYV = 2023 ) + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ANSI C + +Dat + enum { IYV = 2023}; + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Changes to comments +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Fortran + +A2TF, D2TF Notes: 3, last line + +* by testing for IHMSF(1)=24 and setting IHMSF(2-4) to zero. + + +ATOIQ Notes: 1, first line + +* 1) "Observed" Az,ZD means ... + + +C2T06A Notes: 1, 2nd line, i.e. the end of the first sentence is + +* apportioned in any convenient way between the two arguments. + + +FK45Z Notes: 4, last sentence + + * stars, whether polar or not. At epoch J2000.0, ... + +FK54Z Notes 3, first line is + + 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. + + +HFK5Z Notes: 6, first line + + 6) See also iau_FK52H, iau_H2FK5, iau_FK5HZ. + + +LTPB Notes: 1, line 3 + +* where P_ICRS is a vector in the International Celestial Reference + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ANSI C + + +A2tf Note 3, last line + +** by testing for ihmsf[0]=24 and setting ihmsf[1-3] to zero. + + +Atoiq Notes: 1, first line + +** 1) "Observed" Az,ZD means ... + + +C2t06a Notes: 1, 2nd line, i.e. the end of the first sentence is + +< ** apportioned in any convenient way between the two arguments. + + +Fk45z Notes: 4, last sentence + +** motions for all stars, whether polar or not. At epoch J2000.0, + + +Fk54z Notes 3, first line is + +** 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. + + +Hfk5z Notes: 6, first line + + ** 6) See also iauFk52h, iauH2fk5, iauFk5hz. + + +t_sofa_c.c The test program. In the routine t_atccq the list of + called routines is + ** Called: iauApci13, iauAtccq, vvd + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Additions to Cookbooks +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Forty SOFA routines are not mentioned in the existing cookbooks; in +some cases simply because the routine was developed after the relevant +cookbook had been written. To address this deficiency, enhancements +have been drafted to two of the existing cookbooks (those on astrometry +and Earth attitude) and a new one (on miscellaneous topics) has been +written. This new cookbook is available for each distribution i.e. +sofa_misc_f.pdf for Fortran and sofa_misc_c.pdf for ANSI C. Topics +include ecliptic and galactic coordinates, Hipparcos/FK5 and FK4/FK5 +transformations, geodesy and solar-system ephemerides. + +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2023 May 31 +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deps/sofa/20231011/c/doc/changes.pdf b/deps/sofa/20231011/c/doc/changes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..127d7da6d9e83f8381bc21768d9d5c58f3d409ca GIT binary patch literal 11642 zcmcI~cU)81w(v=>q>|8+6F@{n6RLoK2^~ZQY=|uf2t|5R1k{9%f)o)OVuFa+0UOpy z=sJwT4CA$+CV+qpMl6Hazu-9c&VBRld*AoRm)|ev?7jACd+oK>+2`yvE5O5Rp4EJ7 z{H(5t(ptP7$O98XH{qR~x&ET~$kZs%UIPi@dPT>kijqODS1gn&@(_h3go|8V@hPdv zA}9`@UVUTb`h-XJ+S~qd&Y}CqiKQ!NJxDr8GLkyrs?WTSszpZ$g+kMZBNpWrzK)3n zpWm$y@*B#?^f%LE`WB5=XL7erGmeqSIg+k33h&6nPKp#xv66a`*9R<`)=&wh~BloIcPxzk za_*;3h6`lzkx3^njCkr?UAg~c#Wk>|^fW<{a@ZoyZV&0J+1<0};@#IhzFKvBTL=tq z_pvqU?!3LIGphJA{ilO*xBAM~K|U|v+%^o?SrEBDBd+Rs#FB^i@g7wAo58nUuJgcmy;3cmAK#AB-fRAcur)LW4*axq5MF zG+X<@hvwf`7B?Q9eEaUzm&aQqL#_`>@!N}8MmOG|oHnyoRV(fESC%geppFel-NEz9 zl3M!n%eK3R%t?Ktc@0xtTa5Oc8edhhtr}5mesQ@@;bu}n-m2eC@KMckp9UtkJWcBg zXnxpYbFpvJJipthGr5o9JyB1Vr|*foclf@U$M&}8$}`2;!WV2?o5OiG9T%UVyY9ZD z-n_?t>XTRkxxv{0nGy}RP@C5&fD=h8=Y7t=QF>EkPdJeJUGfxx}nw{3y> z2L8Hq=~;(M=2;Urw~-TGA$_aeTJL^YYoCK$m2+G$?hSpNWsts*ef=i8ZAta_Z8QQw`ds7am1XA}+>9{oI*|d>(d(Rj~S+NxQ1%JtF_B*$;iyk1|F)*XN|Q-Y;Bc zc+95vd5Es`%BpL+!a-o+yt(N|X8F=)_vtM@-*rkg9}qrUHob_W-0wOYR=@64Q!dQ! z=plFE{?Dl$);}ysINN%cGj{38>*p_v)hh+5)RB|}@jrIa@m|L%cgEj+D#a=g#w+9P z%$v+Utzo=+6z5f5`#JdHkn@vfU-8|Zf*tWt+8m~J6_B#3aJRMlI=wzh*cQQpqyN|) zok&pCWxWo&Si3iMT~@=n9j3nSsFz3Y%OlL8@#9Yb_rs|{$F6w0sBEckwi?>-m9l(WS}BB>VTRMN+2kaqav1-V3*`{&LK1OF3rU z)4qP07#cSTc?|Z&&M8~DWcB$Mb-`;t6=WGeGC3>eabQ+p&?Buk{mGeqPV=YBP!@p! z6l-;-xi_;IS~@ZhpHmfeQoF!nuj!E=<2-I0r40uq#FCa5vD&6u6Kk^%h(5kF==tGP z_A;HbKj-eh?$J4Wfy`#@?vA*(hk0k=f*bv32z4oUbKoHZy%}{kE}RNn6}o;G^Y?>$ zCn_&oXs$h}hb#CHM9`66EB*a-M?YcZE>X$NBU0(oK#Kp-s+fE2Tl{tp&TD(X6b&$r zZT#t=eqVmgj_Q3~?-PIF6%ltGZCG`01wndxY&YLfB-nPN!#v$_dqoWB&KZn2hTfX>~31$+8ql49-3B&eZ`C`S^L=iUtiWG5| zh{B^Gw}ff+9sUzn4gCK}>Yp>3 zq5ID=|0?aj#rhv*{+0UA_BSq?`0$L^Y?7nnBSEWg5y4%a7MeN}j59uG^_TVk%Z~e7 zc>GDnomudIc2-Bn3*u9v|JnD5j))Lx;#Cu%8ke=>#zn`crL6xK+Zi|bYtYSj&cD3m zn`lihZ226 z(UDQ#yE77I#%3t-TwhI8M289DBV#q`1xcqdo$jJ=PrTL|JsXA zNzqvCFOV7E)np%Yu7K;tb?16;J-J?7AFeOgkGq)b&t1Y@%3a0{;0AJoxXZaKxGTA< zxNEo}T!^djby0G3N(?uY8=4G-iDE?&seiPRXH@>yj1i^&6Rc_fF%ZTLONdQ~*IeV` zAZ|EU#1$o_L9yHjZbbBE5jR2;dE7{Dq~_g6BY+#ljpoL1W4W=SloW2dqOzX|%*`a?{jM!SS?Zena&3O9+Hl$MYx3J;CtCUaA`DWbUOKXgcm zPUoh?LMc()ltj%OxT)OKsAQ4mz9oU1#!ZV47bT~JB_xZuo4H%K>D;Z{3~q)fIbqJX zCDy#PiEKctZz=6xzVWU9-8uevujBfMtp4MrPP0sZ^;7ph-vSrd*x0zbe&4E!0Y1Q| z00<0{^3&+@^19o}If8bw_&#dV5ax=I+Waz6GrhyrQ@WCp=nCLm;R2m2!>o6VTmW!z z7&y3Ao8jk~}q~7F24}ZymLnVW7i9bKc`oNv~Hr(xBVlF*WFId=sAo_!c3cX(6A}T|S z4SkLqTlI|jI8`idKYAs%D&2}sHnWZ%>t1TTr>6tq=+PTwTX{Rb`9$OCI9*n!iOE<` zl$`+<>0aJDk?z9AqiV|o{1i!nl&IZy}C0lX0A05kv= zViX8(1XciZ#V8?M4&(wTG0+TPg+K^E-~)vKN)B8Cuu??52>=rVCSq72U<$y>08=q+ zKQIe`NdbK^TnHEd@F>7Q3{M2GV)$SHpaES6;9|f6&@i2!V68r9TO)R8Ej+QdKO;ut0GiBlK94 zm6_w<7_`w?@my^NKlW;hD6VxNE~FqSQ!cc2DxX}V5)%Vx!!m~@Wk~5bxrA>uWqAZC z#cwMX^2Yg;u->W|m2<%3`#0`^r4`4zF=`t2DXgwXkAH#&m#T9>5ofKiQYJ zi$SYJ$CEx44rG=CR?WuyRp~BQirRzkIPYxTPi>kwx`8zJ1*S#kGNa=?q9r@>_~FyL zLKcvB4~<^gjW9C1Qk!@njGE5c3rw43={yVc3Dyz!-DDqt9GtgRe6athMm$pzxn1{H z!;cQkElrGob&3^4&IsP|LLj$M;zmrigRdnQT?&JS{x@Bau#^w3Ka=TQsF)GVb>rg+lF z*%)9`WI}wY)g=myKNlmMro)A)_88%~L0I?}*t;@rfm}>iA~Sau#=3MW-_dwP4moK) z%o9M6UEE&xbDGOYiDfJ|BsguoiICdVu-y=+pa`Vqs>tyB;kHBfqHW zDpylCw%HKm)rh8oOM@Oc#YsKKy0bU8%Vp`)G!;9JB*U80-iaDt68;I8GprRyu+4(<#QVl)6cz)By*tmJqx#pN#FDG;P;@3WF#5;UcdBVh1V3 zZRKGs2QX5_z}e88oNOk^s$()D4xW^2-=|)O@afF`T z_5;CvfQ|39SeW19i3Ymax%^dl$@I^LM~h=htbWnkZy80jw9d3wZJd|8&Kpw+P)M~H3YhW@tM;uTI8*-RFCq!@9Cw#;)6N+EfM*Jp$@l-P&A>fW9!$hx z}u7KE&JWxID!arOht#jNREw*(a5@-n?P`A)mC>`Q3^qE09~yIcG{_ z+nqY5V>5ClGjm?OL?xSt1Bxd-51Pzpd7^6ImuPL6lk-Bu<5r1lTXfg#vWv9teus3Q zG`YPhDdoTmJ0dsY@a6Gv=Yo#k(LK9c?`P7@yzjSNWDIAPP_uMvqBdsa@H2~?LR{rB zI^>Bcm!c$iS7%O6xZwVxLdx_YYpiec5{D(2S98IFfwbFve_fJ74WNWFraX38VUrV> zr<+0xrFdh@=Qw-xR?%8x{R#ukS;$^C30~+_#J_Lc+OmrvY1hkn^iyfqO~Kak^Ty$j z8XmTN>1`lp4hAv@lN+n(?_=giDqZ#q!FRe__oYN+7#vIqUiZ__hf7B-pXbdP+g_1I z@`oMRu#l4;MIRd2K~VlYdr(Nw4I2m|+7Hv`1iypvS61TU7VVS2z4PRBO}@I(Y%W6B zqzjt}huySY(5d^7p&D3?zT~Q(hmD{qY<+U9EI7HsG&*c}F&1WP+}@34x&te;tQxrP z;!tU}t#j}0Qnz<4Y`y6+QXt2Y)ix&irFGWRoeDpFx5@o@X)GNHT%aKW4r^uCIZIvz zusr#>`n41Y8@TvsjO?D2sKoz-G*S%1N2QR0mVHFb= z%P1APc|KRe;Q^WXQgT3eU6m;5NbL2i(}=Z+RaFY|?2FQS%*jIqWfNjb;sVy~HlvgD z*C&6v6=@>TyOhumWUZG|r)EjPYs%!+j2(o7cjT`0k=(@7=AR(-r+S~gn+geW%}O;* z1u45D2I$asu@oQA?`8wVa7D}KVkfw8QcE$}^1_&uKYfSn!-jMLxtR`7ClNov@$Cu1 z+l-f$ELAqLYb|mT(2-10{BgBh-)7srnnpEauq3zd% zx@=Cv4u55))HX`+4nHw|yzw$@J~o?ob}I!uC+RIzrXhuRCZ+MKG`OB}6)}1<+Zzo? zzlh|1y;8hx*~lKsIH@sxha~hekj@rkfrfP@z#t^KaPC$tu`?7d>-k(d{dx3LS$!HH z4`D<10eLn~D#eH|5frXW<%RQdNJQ<}(9!2zihkSC|{D_E*cfGmZQbck|06!B`e!7E)r zRtzXwx4_!j5S4mMs3Y$cDmMw0%s6ZWOSJ`FPl@Lbvw?89LWQ^$yp2D78ZrkI4Ood7 zCA^K}ewj*6K^92tsSargE6qD!h{TQCvloWua6N?`3M7 zl1H~5{Cw^MEMf4i(3KIfj?S4Pqfe7@Z-{rN_W;`nWf@URzC6trSSR*;Qo3UAkYdje zOC+~h$|quBI7?%28JlNSNlV(#7NYdJrWu{<;IJu?T=$5OU`3XmPpZnc2}Ay(We2Iz zf~f*!FYm;ReX&+LfKRr8hq0RJ#FLoS|R}c-tB&vvL-w^XIeRfoAan zDVu5ums${^6?laMp704FUGB4s376e#P}=J$4$>7HbOBce$CWN{dJa(Nf5SFSP zkox*XWCHxwOKA<1IdjeU*J$W8^&>YGqfo3 z16$Yw$gk@vYZ&~(ALJ|)u(Z%8*GTTqQX1+DDi}~P^ECwvQ`TBKf}_oBp*prFd>5vl zAztmi^9g25ZUmh*fc+XAbQ7=$U_IXiK$BFZWdtWMdRZ+k;pv7z=P!_yEzT9)3nJA= z+S^9mG0R)uOW1%GY*_xo2Fa^m59enRLhZ3Xk5AN z=Wb)1B=>|MmH|~VVF8CZI}r*~s(?j>^lLcwG=&9Sz@tFsWSJpCd5^{~rh%O`;07FU z5(~KE#mS%MZfaFrO%!hU!fj9D$Tmdtuyj|UGGD0tYKf5!aMYx3G<-ze#QFHkz>6&4%Vjyq09JulR^j-?cxilBf7uNS*BfHf8;bMn zABW*FEbMO+aOq85=~?aOnlzAxsw^sl^`lB|DmXP%NUW`h*NqGUKoV6c#e;RYJY%+y zvV;GcyeV^uqLrd(H;_>by4~6V+xFPSYflG>VuL&6iJhEYeZPJ*zYr@HqJjLgf=+#? z-f;hYK$b=F>DA5e+j_YsLp+%&pB4)}Xt41jh{;kWx%FMn0xa1=Z}Q^OgUV#IDgdJp zgaX?j7Wuu)MZ;`fLcpDMUkoz!Y@<^ zOFfgC3r^CM4@nZ1me`&QF)0FVl8OR@`LJPSVj;;;_HLVW;kI{!z?L)H_f0@Luk)wt zKkWIDJ+CEBVLf0Ud~9mH>m;sV_O*pw(N2+O6eUqx5k!|b(>Ndl=B2H$U~-tuKyfO@ zvwpU})@Tp~?0gy%b80$0S@6=Ca}}%DjS|-o`D(oUa!gO|hpQ)9s*H$s+KA2t!VQjv$K)Rl#72owFy{kinAavv<wl39el?cGaiy>lO%;gFKb znbcESR08<^ReZW?l3H*O5ahB{sk&anId{jFi-)jJk9zcyfF^FisD&BwtNn~;= z9de*S7TSxQVVr5AY6>=cZ3kqj4La-9yG8K>^OudVCMD-zHuQE29G$+?oAWjPH`Pi zWEmwI(Fj!4D;fyD#cZ!q7|?!`?Opb9L-6S%uqgwOh?bV&OvE_YLBqMu1~zOx2dcy8 zkXEUy_U9T=hb}sLqDIke2&sXo>ueYu&pR&C_`q~henb{qLceCe{#xduYrOsvi)p&p zQg3k*tutJ^|HgyND1@p`B(Gr?uftBf24qK6b9m8*4^{;9tMYqkbBhUR5_-FvPUmpE zSo@fC%hi+N`WU4C+=%#1n}3$U>7D$|Jo=qI^>C;~>xDk>D~rMLV4N6a2$pIId$Tz; z2AlgEBI8CcvKTNAM$sTcvQ$g@b2jJLbMHvlhJ)IXmIO`)PTsC1eM=B_A_g{($Xjd7 zM)SY{vhY6f%vo|_ulC7l0R6bxzMH~PvzGfq|9CVY&TNoPq4_RMXbKITZ@6*q2-N)R z7;(F*)lg|cg(~Q>{R~*5Hf$9Ga$riB%qR!4j~@fLPM20vg$H3M+J50{95_IbPiP7I zZ529sU_V_v!4MAU0B>|SWe>+5mZ)0TFw|?=D!RgrAz*0>3~7)t6>>Z(0BF+J_&LS6 zE;U9JOVBiM z48$s5HG$~?#=i;+THca&tvS-~^$afK?+a{`0HbY9%$vZC{@*4I9$%Wy%G)S%+o~eW z^E~1{d-%%d`6Yfw0}ChL3>Y`Vf1q$1dkx3M0@hvMRGQfJ-6mKiF1$9$UhHR-^A@z- zRgnk1}&>l z;cyXekFVLNZ|7XSs2XPIKfn$weM_MAI~x%v!d29izd*8Yu=d@X#bs_^2bJde{}$NP#r4$gDf zwM1GGnHqgUKP}Ms*RqB%@ai@5ngA?a_1r8kkP5t7;l8KsR6dd&-`%-*cOHLY0jX_z z#Irc+w!Q1zjyYL4He7GJ{mhrQDAuzz>OH&fc2Buf+zxh4D>swZcoqWud=5^rzuuC5 zEb$VV;!#BODl2aJ#HS!8r~Jts>95KAhPI|I(&@RPMj1uCQbrK!eRi%yC=bZP8K~$~ zD90O2kIc<(Y;-9(s_X1THW_>CS*qlJ>Y$q*F!rXIik(+iiDV98%_ArB=NAnHzqZ$E zle;>W=3F6KTaOPqWr}~plFHeDquOW|;82L@z&lk4=;Kkr2>S5V`jaP>(~p-7_S{pq#@3^v&c4yR++){#|BAXM zULdhud0`gLr0l9i&LFVgCck~n6jDBjlW&uBwHR(WG#jP{Y6Q>aOq{X!wkc8h%9H~? zMvYiZ&%I^8a&JeG^Xlf2=v=cxSno-*!ffEu`kI{l(2~m%*yNV%V@XrK)S<1Gi}nl$ zTjx}?UtulZd;E$iktw{q_8(I&M`9kmb9tIUj97E=+`*&D8#h<)lj==c*Ni$?cu`E( zAU(^5gR5PNh7w!n6+)BOL2B47rYp4_$C)l04m(g(W(s_8Vhr_VL=gLY=6hk;`fcW` zcf*)2aseL8e{lVB;!?7p@go41#pXc$HeTjUdaZIYR?vWQmxfVbW3HIS`}*$YTZkj; zO!EX4cKJ$$o{3KkL3#@>T3`Wj2g$LCY-8MuSt45%?g^2!pH*KmsA z*1ZPZ6r{_a7PAJ&P1^VGqlab%?hLJ4(~*9jjFB4`x(`^DCWfHgz>m~gbN8;un`n3W z!GhLk*Ycpvc<&Y|ARW#uy8i>MHhk$$s?W;Ks6OUSWfyDk0=`t7<=Qq@MumHL+9q13 zx9=~b4*GZ%DtRUzTOFyPF11+56hsz&G&(w94wI-C9&4-$fcw_M4ulxzrWeK}OWko+ zXj7!YQ);NLM`0i(&s+Eo*E*eCMRoQCPL9*EW0x{S4;R73=#{YNjM~0QZOnbnp_sFY zu=gE~cq<>zJlX@XJbKSF4z;x~i znA95@KplUjYZ9W_Hk+BcN`}&BVc%ZWRjypI%(oY}&tFa3b>Rv2V3dpE*#dI$3U{o6 zW|C{p)*G5Y?Uec(D|B}u1&#FFq$vcFpGS2wi)gZ%AKKnhL368K22<6$$aR~;2QAYJ zn+Ei~rCuy0)^QgHIm`X^ev`0)$r9}iE%{MhY zIHXkNan%|};T+}gk>^I7EX z_qgrkixBwlr)=8~4rq6j#gUWDu4Ef!w*C6{bgq?}fzQ{nuYU^9vznsFU18*GQ$bI& zkahgT!sDtH2uzYWh*Vb7vV)hY^y+nna+7zLKXk^X|IS8!+D@|uGP~zsSMzEZ9eHKT zk^H$kXIqZW*_E1=Up|GKU6x(_OFvoFDKZE(^(vxSSoz%lQE#xlqLmLemh?@*XGbqT zG`KXec;elL*-Zv)*hH3?Z()i&6MbgO+r^mPuYxvZuKZ}?_MBH_wL;Ow3!0iWHSBt2Oap{ZZ6vd8oO`2+3k>}>472=F`1+Qv>(MKJRN6uGy>p&C zKc>cnhI@HW_hC%E_F``X!w-@}S&8Y4IdkBJs?2qoRLI{ViG{<{GBheR1czs!8daz& zDJxkO6vW8Us8#3&M*iV_H47F!P;jpO_`6Nc`sU8ub>D9pHsVlaYUGAjT~{OhotGx= z*f23Z=J){W^`#8XZSkG){MV-+?4{yNZQhfoYhF09@@|I|eJ-d!eU;TcI=m#^IHQy@ z_0h@He67ut1Fj!_T1%gIdbMvtoa!6@j7w>F-J)zWWc6x8-`645)gM3lzzIFDJX*Qk zG3wl*-Jx)bHLMH2e~uryQ=UN*rJE1uF{sF6o<&Iff*DEoZy! z?%dbZGKzWqXsws{3A*yP#FzP_T%_&(0zbrc=J&TwACoUQ_GJ0}Z@*q1k+S@|-NxCw zzZw6^_v5DQ*-z(;h@C@r_FEk}n)|R|TH}&%(NsR`g6o#%n)u7JKM^hRniy#E;LY;- zEbRHGGj72cOdG)P?70ex@P4G z=6rLJ%|JrZ=OMqrH^AzKH4a`2-<0`mblromUh6Y&|G5GC<9=T@w8ZV&JpGdJY3eiZ z#eq=MN$34ejzpR5#%venFDLg`od2o$a<%W===Fiij$~900$GV~P?`(wcma=4D%qiWi#l6~;O`lGimbzq2`8>umr`-*Dme`e&dP^Y$}P)& zfqqbcug_`*9Gj)F03DKBwA89h4K!o23oK$)PSz%Mk}Aj2A2I5zq$MiNO4!mt5FDq< z*I4YrvnR+KIvw7Fju`?MnCmsK_I5~Z{7>wqq zCew#wmqtZIM0i*ttJ75Kx3?6k%1KhEWoxq3P{5>vw~^njSZ+B@oudg!Mb*#@A9x}9 zZtU&j4KGhi)}-dFWcbS`i~Ih2Qu60#QvUDpTirir|J(HsZ<899H{&l4|7r8r%KLHN zX}!zr?>2vUfA9N$iSWMl|9_14tt?{;biy(%Pt~-{b&&Vu4#&bvHYI8%aXJYP@4t5J z?drQNdyC^g?cm7`{P$#eTBb5HC+*+!(6p2kl?BQc>{`&}2X9Er+?2EWFSnE1`o7mm zB>c7OZ?`%c-Jtq^fg{+`KbH3K@(!43>7YQ!-^XY5 zI0;UMRq)&FVAaM=Xa<}Dr=;bo;1o+A!0X^tI1SE#H~djJI1|oH%T&QxaF*pe8_u45 zN@S=~G=GfLllKT`TU=))!)iDO&Qay6GU1%Gd^jf?O;W)cSd*$&S+03m@FqAH&V%#e z&2WKAoi*)ksV&E?Y6j#z38(j(_3ixKCjD_B!wXj||Kl{a6zqMxg#3AY`vv&V2nu@l zaKr!wpx^*RDv9&;lOt%E^}d(dYIXZ9l7# zyb=@vKtRC2!Id_G`C%I)T9$e4bYRQB3DgZkVkTvZ5-b^o4tGCkI16%aw=ZN)w#3l7EzqgM_o}q{PM=1y@ShQeQR#)T!OaM_=xvVj-bFmcA%t; z+)x#BiRlFJ4Fox;0Gt6E1tA8g1C{`E16cva0n-2hM$mz)fOvp|kt;za-~|XVl7cc` z2H0XW1Bd|?fC!@lga{x7peuk>fT9C30J;u13=klTM*;%40R$c32@rn3J|{_FmX2rLWN@5DA5Y{jv-31 zfHvY`MDdK|h(x55YM>YgG6!EgOfJI{;>aK4$S}nYOFd6Hgk+zl+8FX1s5J_VMx#Mm z1Fck7>O`wIRMF^mcwHs^0Cb>^0T^`S45_YJ!>BYIU&yG3S}$9%j~V-@aiIxYx9so> zj9u$wd}?+f9Q|pGi8TZ;XLCrLvAMiXu7X`}!k96m-O9&4%6UrX{YF=oIUv$Zq4AMvJ@7z60%(z!O?2;j%-anGw|I4=* zGVAfH#S7x^D&1xi|0OmDV_nLYSbn%txV$R)Cq~TPsUq`&ilTU&Bu%D0BtE(j9s^*V zzkRnqg}Bii3UpmBOWKK#xwvwZ0!BR;NI11{&!&JgMG}0C!*bh4EGK&Xp$(&6tM2=4 zSzA98z|!rqE8fl}+KO*&n0au|=AY1Tzm93KTA_JQ_1f%G{a%BE~u?!q=^=W4MBiBz+g1 z_ib^m!$0=pVsoOD;Puj)q>UV-e~f5{`1SaO8=D=kwZ~G6cJ2CtUD;r8-+U+$h!N~U zM;7v_;l{pM#eMf34cmrxn?|Hdk*ftqaR0s9>Ez(ya||bJYDsIQQ%CkjD}4sMvuA*d z7-&?5!#3@;-k>k@rQ#jVu~tk$yxsDO%2^mBrN*_W?| z26e<9Be@?=+Ku1rAPqL7M+R~)c=yaTF0m!(4(thRniELI-*A4w=@mP(A0ALF1v+-t zPXDE5aGo5Nn0km-m5uTpCA}rLnseuk2nQ8CuRyFNhu!MN3GU0G8__dly_vl;Rp5AK zmD3I&ncV?-kQHyzSc|*-y6T={Wwk_#AbxgT_Pv55pKUE38a+MG_lgCHM@x=QfF$G< z34u^xqaZ*ldIjuwVMS}I^8dE8c=^*gYfnS&K}6asqQPMkU1ng0Vy}T@XJScZxV17{ z&OLQ7g`In6_(4*p1W#RCadx}Cecc-g{$|Ui`7UBWp2sT$qQklFZotSZ!r3|{J+&7i zwn~^g%yI3?RZJitw^38;9ji6dcH#4md7v8tKjVp3cJ4jI%-_t$F3vTcyK?mW7j-?d zF}Y#(y10LZuBEv2**>W2kqkyF*{yb`u1vJE6IUrt{-nEJ%gJRAl7f74$9-3nnfb~$ z^LOPToL!$o1jLZb&IUZlv^HYm*09psB)2PdA94x7&0k2PYEmoQdYfjl8IbC8M%g{h+crE{B)4r~PRgxpC zy_+<>Tgqo`j6Uv+mTQ`HO8OF*Ylsmf5LUDgRL-TD3$K+gXVS|IeV*aK7BP_d#`>pX|DE}H0^_N* z#rj}zQELcK?~*Y~i!^LSm10%})2m4K-K zMQxpc*6T{wceKV9S6+4@G~1JmfENktbqzs|v!ShV)T$U6rMXBHY!my~Fg}eqa){O7 zIUB&v^N9ieR2j5vcl^L?N%kuT_tq_iR%(H>&9kFbO^?E_d4hx)3!BR|F`c)^reg9B z#LDE{-TLCGMZ=ef9fpOaXXQ?vy)!w4_@EM$8LTx?HEsRJMI6Xz^O0yj{ zrzXB5TS52RzpObYy&Ln}MNbuSe&~B`ofg$}PleH7Qf&fSv6ViyyycgZaw+1yKGpBy znX3iee# z6O>YvBV4R?;QnYr9Vj2M-_`lN#dLd*Im&8fCqf}4;?rieKICD2E13=dT*ls5NI$sF z`qJs_Z6!F9RV-R&|8>3-^Q_RDEb6dr`)tXg^5JQxuJ^C-|2b>@(%PV|BL@cdj95>1 zPxJd#^lI3HH}d87iu*rCkF_P~e3M$raNpTO*vNJuwETEMS&I~mu(E!5+NJUEK7Ju7a@RcM!t1T0#K8d~>Fk)7 z((sA{*|-6S`c81fE1}M2)z~fez0ahW{cpX5a)cSM;^Lq*amuA1p`PQ$6UV>|*;Dq$ zyf5~J@K_c05^+RUW@9!$O42UM(?dVaWwlj!*YhP^K7G*ogsqqvZfr zL&s0Eu<{Z^B~un>i#vfR}<_G4mgWhcYB$T2wlOYE8N5b7K+K6!s zSft27S0xxAsp>FTq675HNhcPNo}lDtQRUZGB(0gE9NS_jmm>Lqp7NA@C*JD%(>*oB zr_P7NVvapdK`SdcVZAD^zROD5LyzvbAy%frc`xL%H+3RW(Oe0RI6kEeDq4?6hZB(I zDjBZ|`_%fHzXWUk)c$)%?LryZog< zyX4V9{2OO$1iuA?P*b>wY5MbVw@|85q3Q zj0fg_kQXQBWX+NyE2LbU2@Lar5)O&yD9>WFt)D2tnu0MB^C7 z00#RJQ5Q?znIc8p9n*Y?=wY#bj=+QwO|g8FFTZ6W2+F@f-f&PRS4QepoU_s$W?{u8 zhF}`lAOVN%w2cyDyV!8UO6Ei~*|AJ6oQ(ALuwI824aKT_rIOObd^n^B_&A|JIRdO# z+Z)ZXj|=x=3@K*lk$*>@28@%d(@z}|oN6HA;R%Li(yTbk+2o*Lkg6I6j&>frbCPit zBgdSp#>=IoLsZk4rpHUOgd?_fimfvGtZMW5qF%3*BV+Gw5N89@d z#A8TLI=0FNNJcYgY!u6uiHw=!3QR(~S$(E33mjt&S@U+i*eHu9Z9w*D>%ZUwXf_WCA~tecD80QZ1Oy(p2DQ&nWA-B1lk9zX-zI>3v!zQ?fAZyf_W^`hvmXq;Hh7Kd*%~UT^wKc=ODU|%f ziR7<)B_{p!>Dy`6gNUv;4*$Ko%sG?Vas+#!Q8*vMI1Z*3N97%gv018Vm8PUQ%;2qB z&~}N8UHZB0a#+eC?1y>C?}rsEd$5{;*U}Z`3|$tHhF3%kSKOIEjptqgK8ev9n#nAI z+^tMy4ATP8r4ob^pl`bz74dCPcy`))E{fS0Ges$t0L0?rItJ88*NV~rP7XB6PW!~s z)WI=!+Uq&?*D#WHgs9BFrUd(x|4>^})<6N)Xv0X8$r3KYP$sC+%V~pi%=kR2Z01US=x(j7O zp;E{n+MWuHq-urMLzNt;tNmGRR;?y|eP>Eco4u}FgvZnIP8Qx`m7{L3&QTRR2-?<2 zOoF8V)6UQ%)U`Tj$0!)*<=xx_1P2UTx9a+ZNTU$#5P%w6qfm@+90Z73KgK<4nsuYf z%VnJUtuGNTKcp4RTbDt?S$48oE1-!16j&)%s^oq|j4@T_YzLj&YcxLz_YSXIrXn}l zdEZuF#iaLUV!Z<@?d=8Fqi~9g&k;J4Cg*)4VBXs?U4R=CdXy+qM zzbgQ$qJpCMf{%9z&M*avXF}k2JLq@2*fNejoUNVDM*XezLTiLWGgMju2n8v#RaSEh zbGXV67U{-HZcg+s9VTS=A6wse6!f{K%x0pgBJ7#CTtoo7>>?&uXeJX4C*pm4!$TfY zzy}WVbb~x(h;R8*ys^;=1pr5^EVBjM?2KhhMbmDXs8LCF_000E%D*^TxaVxdfjbqb z0YMFGF38%}P8+fOaG^siwsim>4d9{fHuGaa**McQ2D%(5q;=XrbHqmrS1A@R9y**= z5tY^I9f}PuE%Tb$EaaZfjU1Dax-U!@WSlaN*+Wc#)1u0whv#D{rKz7jOp> z$U+6p)HO zbXx0PS|MG;K1B!CQPSlaV;Eo~eaw@q*dCk|c;e|EQ%T`?HZem(116amo*2ZkM>>wAd94a5S8E=$=qiYq-bbN%<-p55I zh|n7z{yWcP$J5)rE{i3|RPHiDQyt#dz0ZTPCKvEq(#+&_zoc2IiKFia9L&5&PZ<8{n{Cg!5%`9_q|TB}8L@NMA10)|D7f zh>=FR!r+FiqCi1ZAfJkt(R7D7N(vFE3X@$ty1U|^h6f__euMI-2FzIs6gNEUkeHT9 zCc2k{1a>a4Qh%2#JFCPn8B|0!q%e?HzJB!vki?TQxq4cO;SC1_*oHAa@J8^W$rgWT ztN3l>Vkb~}*WQSWv34<3CYZ-_04oLHirWTX2P|KVM=%VnY~+DXH_V16*o&G$;I~gv z7oN;96|)@HDMD>Po`PeiFSgRvTO*^^*Z>;{Vj<%!ll6)At2NOtfnj0kW7yG9x}LI# zVZQXSxF_Af-uq3IN8lYP;7PuEn5`TqU<}6fdK=ZK6zM;NU6z=-fHMG6;4CrK#^I~F zu?W=YegSHgg83RHXt!^xP&;M=G1;hlXKe{r@ATT3X(LPFwQmQ(iy}n>#Sl$bRFJVI z#&ez(62wuuesRe>@!%y}H_nH~1y^fr4ZXIyG10Ve&~%lExs(B0?RCLS;0^~Fv5N8j zS|1;WpYO(|uhFi#0M$rLz68AuPcJ-Ygt%x0AFU98>9%N-J(z9xmEAWW?@G%ouE~by zR?e5X^NeyE#Z5kTp0227DcTvjAR4oW(lN_&G|*%QDdIQ-eQ59E2FM;!^#(Fl%>ZuD zfm_i~5kVg+L_PU?+y&?=p^v1*cu=G`NCPw_mM1^ZW{VE9IC3PPDJ3s+GL%U{WUV4q zsud{oHXM_XgZoUF0KUwJCv)QKosL48QgG_#IqlT^?)HE?L}QG^w6c9wKlkx4n{vOw z(1CVA%Q2xx zU$U%&ioTHOJM7VZvEsT&Q7s6+?1&{weyXwi^b0z4kfCU!DT)}%T(PW9q{r-Bc@pKA zKtZ$DS2FGf(REE!T|Ql3Y^T(T!6JLdyn9y{-8-2=7;+Gpw#>wDNG1}wS^^g(54p+N zNWHb8!wM;;8ZOg7AzLP7YaKW;*{?>K{w1q0f>6U^rA1#=cAj$txD(S zFW1i$dDecIpjpYCb_IWO<*Ye+ZQyc)ZO3Nw14eV~m!bU|ftp#nzTXLW-v!L$+b%ds}CD&fm>H z85%|HBZnu=hd$&q-bwI05aCqSTvW2P;uXc-ari=m*U*Xl84vOE>M+rsutt#n;Y9p| z#W`8#|)pXd+;59@s_>r`Xz%Puq|W?*X@zpw))rP6Ghk0 z+Ifa%@TTH>OplMeLxi`}r$cFCKPRBE?*F$E=`l6a!bm}v_zPmk(OgIQf|_uW~tr&jA9w0KG``?u1cL_i3s^l_x7C@6!eZF z%vY;YEVPri4@3U%7v%5fH^UD~f&P>Q`dXOI$rqIQr)*~6Bv0@^W%2+EH}jvenSZyH z%e^g3<$u`D^!b~ux1}oospswIYhf+_!!|JRZ!+&d|G&$8{oaeAvHWnzP^m5dgaE-y z(h5|T8bB6CHp{|;P7)#z9GRJt1x@a$g_4a7g;vh7n1|2wpBdsaQ>hH|mj}*}D}4jy op~1esp)=)yzP>^Kx5ny8iZw@rsx@y5A0Q8uGp0@rTNKXtZ!WEqjsO4v literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/doc/contents.lis b/deps/sofa/20231011/c/doc/contents.lis new file mode 100644 index 0000000..d3acfdb --- /dev/null +++ b/deps/sofa/20231011/c/doc/contents.lis @@ -0,0 +1,25 @@ +contents.lis 2018 January 26 + + + -------- + CONTENTS + -------- + + + + + + 1) Introduction + + 2) The SOFA Astronomy Library + + 3) The SOFA Vector/Matrix Library + + 4) The individual routines + + + A1 The SOFA copyright notice + + A2 Constants + + A3 SOFA Board membership diff --git a/deps/sofa/20231011/c/doc/contents.pdf b/deps/sofa/20231011/c/doc/contents.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5b392d709bf69b428566deaf92dfecca65b6288 GIT binary patch literal 7025 zcmai330xER^54y!5XeOiA|xABM4)Vf;Zmdta;czPS`?2g5J)TnCJ`xW-zFfJh^T1M zT1-$ZQngsEr9Pj{DxmeL53E`|o=p_RT8pvIBDKDL{u_^K+yCeD62k7xZ)Se8GvE0I zW+tY^C%&Z!4P#6^{a|AoBOH=LCArHOF)?t8wz$xwgCcNF2ArrbGHDGEoLGdIwDH=! zl6-A!EW>CrXp!ZN@|{~Zr_VhpXP^G=*U2NPqnZUdn(MdaEjo6aGWM6SV`rCTdn_&- zy1qIkPO0wy`%vhYHy=KI*q&26xw8CW&HiQFQ}spkA395uJF5>(`0vN0u%N+Odef&v z>otSpb=BymbckURwBkR6~MJpLES<2Vp&w8&^3#TE4S~yjkuSeoa%Ap)Nz8oGM z4n--$7Bk?C5)+;bNRCSxw8bW9iaS#{TWc&?X~@$W@f@ZZO7b$brW_d0G6ZL7%T2gm zVhJuB{ahH&Av^;oadji)&V2?0XT5aBZSMsZa8=wJ=(#&a2%fFaH$piKx3d|H#Sm^` zC2mpihN|Ls)t8zx5ED{VQuxZm3s+xn<@V+!>@p%5k#57U7v1E`#W=*Mb-NFz#LbyC ze|9jwvq7&lJb$EktufD_FEy1IpeVP2=Q}@N!5>*~Fq&rQ5Cb$N3{F8_-Ydcs@H_f^ zlg^mKh>*L3`^Wcdp8M|Q=egt?^mG1;)mOjYu)_FV?+v+Ec3)ZfqYTc)wcPJNuD@aR zg`a=2{YUB7)N4C0c`u*!mBgFZ-(_)_BoyOSt}iZx6z*(hz?my^O>RuOp`du3o#(4B z)AJm&uk>JdvVJGt(HEE7Kbg4QyfX*@N#|eO5@_!X5A@#)2ch`uQU8S zt#gp&+W!v-ad@rZrSg^{DiW`jXec5ge6joBD#RhqfYru4cd_719QsIUvQ}THdr7+O zyVu;B40tAvSbd(lxUdMXF$SDz(k`D5MMdKl$_k&O#+@GqoQjmcN$HJ7JZ5ij+^EA# zFc4P5aqtW{0ZxQx!n5EMI2E1)&xJGLEODx|gT5pmHo!*Ms4s_&MTk)c8%vQqEo_2KI)fI!t}207 z!ewwd{2pAPHIz(#9zFa-*G_>HZdAQdYtQMIaer~$noaSN?4J+e}2e1UzYrvXzM-5he;W)25WzUc3v26I|Q=N8kO76 zp9I6R&X$FJ=s8T(H{UQ#5~uDRzwewXHS)s^w+QAGRYutM3wuw|&wlgn(d#3T(>jRE zQ0T+j#GicZ^@j1j7iuzQ4mKk(qPm(bKFTw5!nWMoyLo%s;QWY-)iV^=z^paaAx-3oT&YBZFf0$PATfM5keD*@mPkO=^302QS-EwNZt5HJ;`b`z$e6T8UN zZGb2X+yX#cf&d5%By3bot|k&3@YKr#c0Sbl9jQx zK_kDfV(0Zgo;{GIp{CN39484I9{YLBxJ>%5h(GXn!=zakZ$Zo@7tqNg>JRMuo@BQc zewjhotWi43<|KW2VksdpdW2Aa=a-Qbp`$yXRC0^%8fURxj#phel8{0FkgOinT?+T} z%)C6QTamQ+($>IPUiPuR)lF7K)4SeP15F8AhZe-dHIM%~aoXnFHbE3fy-J8gpKR4v zppfG2#Y9XLQMV17Ea-{@r&*TU#saBF6a0DLM*lv?p>L? ze%{vM_<_PN8;O1aU$&KQ&*PL!wgO`TYlL^wle2~BzzOMgBr0a@=AXBIvxj)c!Cbm4 zw>xNc{cv{yaR-HVGN|6aw#T<}crbqLmh0tLR#&0XjR{-xCuhZ&#q=f9youQtJsJL8 z$HrG)DSs0E(SNXymP_x9QC7Fq*w^O~)lkM-OW`2&Ue$2-TURAXD@K~lPMPxxaVW5h z(ONKwdXtgCH9QhF&{gJ_c=fYY#AgF**02s^>j$Jny=%6m?fd+|X2Jr&1Ws=0t$~*ju?0R8Wrih{z0tEK_6)A)I-rzVPLPzuuI3P!YO|v=^;A<5 zrzneP*>r8XT_qI*zN=BBC%V7ODR$}t>wuW?GwfT~X(SRI3!JzknE>2E)%1BOP!+Js zIJtXm)t(kz*N%1RN+k`XFrAL-xS59-jjJ^^hbL@@iVRFej+>$=OcoC@}saYM@J z51Llpoj?K3NUK!y8RoHzzPlUV-JrPmIJ4eZa30%v_|OPt-PjL8=OHT#8)2RPyLpSV ziAY@$2$6FP?YG*o-zA5sl-ZG+tFJg;Ryh}G>}H;O8$-COEzKcIBTf3sB% ze!vb2(S`o(>sL8uX00FCvq2DZu&V!WT-(1-RLLF&11)mD${PR!i+c+l+{MW?sTuOS z6MCRVj(-Nd&K5GUYH%yNEiHy_jrAq7S8~l=3F}q}gv8n@)cqGyHog~e0q~fblYy>A zKS-E-XLboOutvI zJTjJMS`ffVXkyed_@ZxKyaN9(Q)O5Kdz6<5Wg{15@ zqd}CGOG2An5r>E+$h^br4o_e;xV%XAJ6SB`v8rFjJ=?2k_mq{VkkcaQ7GNPA?3h!H zWk^(G9V~xqoM$>sUKQB>51A{2>WuJ<&n^Q&T>z!D$SY2DK+yG|Ec(z$RHpq2iSHW} z|7Zl9*b~v&f9DW>9`+Sj?t9C1YwI*jR$tlzzqWfw9Wpi4?&{+C7p2e+g@Ytu8>>w; zqt?cN+FdJY*n=Roe6wg>^09PF+Uja6OO(~LlTApS{g0pr(@$4@loMC9^b0oQi%MvW zX3s8$>u-J~?ke{@bgw@jkgBxeP@WtiRP?fz$x?%Niq^f1GvT;%V8w6{F$fB69VR{+$%c zhVX9>wq*D$oeg&0JraCkX2*Ej)ynCG;m4NnAc>-^0#bDMu`!de6QxrqK7|?y`Hgqagc3~Wngp~ zAXn3EDhavk_@v(Mh1>Skcg_*?F;r1kX}4TcnS%k-lSDTq+}z*RJNkEGoksB8^nYz! zv1&_Z+fA<-4j&M4e&ORWpS77e3qU$J6d;&s3w)c3c2EyxSFv+L-bT@1i{kA~oRjjT zIy6Q>y7xIZ_aJ=(r)*rDOG>x;PO7sGjki4JNj2GGk}Lmm6+70)oV{`bSQVHEe0_{4 zB9N@D{8QFM3j)dOZDoqY+QWXgZY-`vD8W(w10T&J88(*QypAi*#7eztU(j-u{o1pPXycEvK+jxEBxUAxvw9B0-Z>uQL_9AtLI+KS-(@ArIr z?Su8VZ*V@Ixoy{#(|hK3Dpuc*>TB-_`1s(y^ZFz5i5&D?a^39mp!fmTv|H7M9=x0w zP`-~}m9oHNsp1F=Jg~jDKUJ8=jPwjv5>J=9Btu;^tZ>ogb%%eXJG)>qz>$%gYs8Lc zt(A^7jB8!pWb~Iijkbg1CWn3mx(4bk^q@x8fg{&96kNZ5Evt}|8hCL#}5jTFc9&BVjY4l!Lb5P=(dJ75=nq6F0<1cW>JXyI^a}KZ{ z7dcw_s@m^yyaRJqo?hfDP zsKeX*kb~pE%ihZcb7{?z;e!C;;y6MwZRxU@qr2b-Yg?fZib(dJ>l7jKYKoD2s#Z8VPpmY3YqEd~Vbl@ELSy$Y7 zlz2Y?M9KuRuwLjX+vdfQG0fIJPiwW8wUwhuhG&Vj4J2&zpY07)WRyDb;P=P~3C^|;Yx&p+yB#9ZF#ZhwVEpfJl-bltkG%$#5bNN~`I3zc#SOH{r;*P>4A3_(h;m;=Dz$ zo)B3NdLQh`wQ|W#Z%1hi zzA~n-`WOd1zQUR;1(d?|jU=_|;X^{ky*7fTTdFB#+JpSSJ)2bdG_;liXlVKgzQ|rN za%Mzf*DbSb!NNKmfAiDr_UpVLHFK8)T@IM|LB^IC$eKStdWeiGF2lC`xoQSTZ9+x18o^x zb(=@vHp!3BqAg*r-us!(-LywL^s@gZBt9iSxF7+!Qm~a^#o@uQo@?MaU7TtIpstcQ zO`?S3LeNFGxxCrO`1WHw&ED@-09DmUQJvs9`uLwx_^SH?;5RY!n>am%ZA)aCXR(k7 zPn*CqzlaWWQGf!P&Ez9v5;1R{lfp$uEk%Os|LG%?Y-_o1-)0W$c9t>`od~_}vtCI6 z`^3r3UPv($NhCT3dG?!JO$86w$+h0%YVPvzAJsE&vw#n$Yz7>zUUdY|9Kf~3Z?kfx=mn{Un-`9* zbH)*|9qH|h$V_O7DeYe+ML#R$Qjj}vK9)k+gIo*{oX&$O{#Y-H2d2f zU2`;rMc|s8UOSlFN;REJ*93^kH^hpzobUJVk`Z{lqPzo1$T9~3>Gu5o7SQkD%i{SR z0etlwPfdS`t#zCstDzvFq|3nv%|gV`-;Tavroj{1tbqy1>N4`X?^UW z=_6jY9#NgNXiqQ^fv0`c6FoZsja4AC>=2NnUbq@0NSs3tNk50TD*;D^)VPqMiun#4 zr67mPv60H^l(y=jBIKm6BZz}+=Gj{KV5v7apN~Wd%mP6no0a6x2afZs%^b}R5dY6_ z_$&+B>}fylWxwL7ddxHnSK2S}&A-A^&*+UM^-xyJ6d*c zgy&4-APpecPf>T1>^m6H&GU{JFUJt;avBR@vwq0s$>dyQ0uPZ8u_%$PL11pNAe}y% zJ#>{lP_u{v#ZrNCs-vD}-N{x{h`=TV*8Ksa^ALKSq`q2adsOC_AO)(M^*1HX`I0eF znwh{d-kc}9!jT;cg-{t(MYk6)G+jK~;#p1-SH|SnXco;gHVClnqdedl{|CF!aZ{*z zCOqQ+)mI$q77yEInk{P?X7>Tp`1_-X>N8YxD+%520gQTnF~=bE^(H&P<(4eQ?MReR{p(E^Xe@1)m0zYj7hPx^^Ev4J*k{`}W z->}@cN<_Sy2sqP)DP8~6gphlcEcIBtV}GSNG21rkd0?9dHsY&c@KWcN*+%$PcRf-F zggfZ9;Y7N6gr^GPsDn7mlDVKjVPCBY2%T7{}2NK)K zamY0v)ftg$Ge2>@ADSz1Wrz>&q(eIxs-rYj6+>O-BWn@aP;tP1iF%Z;qK&gPF)sPi zt$V4~a=NWrthV}qRpY#95@+CCYLUnhT!6UhL(G)+R*91~{MVL8sh)DyU%lAAOo3v*Fy5oPL7 zZ`U57!&_(<2(Um96$!8a5EaW$65P%3Kep||UUw$(_Im!xJgp%xDJ=y`(v=uZFIv!0 zbZA)kWW2wKk4H@UlHz#0PahaRHB25hMIl$<7o}Vo5iD0slFKLIVyPwh|3e~6Zz|FT z=DqCHhZgCLxSD#UNmpVBe6=j<*Q^$diXp!5j8};!XLhu3WCbX9|Coi~Or@ zMC4!O6pBcEKJq8s2<2aRituo}J^e>Hg*@twJxm4!Z*>~*kro7J>MOK(3?O`VQi4w` z+`Uf-o>^Q_0=ct_4^L*sLpd>#VG+?&W<*Vi3y+LQh>TRo6Qd&V)X8T=$iw61ip1Fe cEwR`=3^AGzgXwwTBO<2Y6Sj#7a}yc=2TjusmjD0& literal 0 HcmV?d00001 diff --git a/deps/sofa/20231011/c/doc/copyr.lis b/deps/sofa/20231011/c/doc/copyr.lis new file mode 100644 index 0000000..5323a53 --- /dev/null +++ b/deps/sofa/20231011/c/doc/copyr.lis @@ -0,0 +1,111 @@ +copyr.lis 2023 April 17 + + +COPYRIGHT NOTICE + +Text equivalent to that below appears at the end of every SOFA routine +(with one exception). There are small formatting differences between +the Fortran and C versions. + +The one exception is the "leap second" routine DAT. This uniquely is +classified as "user replaceable", and has a mitigated license statement +that permits the distribution of local variants under the same name. +This measure allows other SOFA routines to call the local variant, which +may be file or network based, or otherwise equipped to pick up IERS leap +second updates with no need to download new SOFA code. + +*+---------------------------------------------------------------------- +* +* Copyright (C) 2023 +* 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 +* +*----------------------------------------------------------------------- diff --git a/deps/sofa/20231011/c/doc/copyr.pdf b/deps/sofa/20231011/c/doc/copyr.pdf new file mode 100644 index 0000000000000000000000000000000000000000..548655a7ed66c7be6c975f9c65c5c4f6139d8ef2 GIT binary patch literal 11677 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 GCRS, geocentric, special + APCG13 prepare for ICRS <-> GCRS, geocentric + APCI prepare for ICRS <-> CIRS, terrestrial, special + APCI13 prepare for ICRS <-> CIRS, terrestrial + APCO prepare for ICRS <-> observed, terrestrial, special + APCO13 prepare for ICRS <-> observed, terrestrial + APCS prepare for ICRS <-> CIRS, space, special + APCS13 prepare for ICRS <-> CIRS, space + APER insert ERA into context + APER13 update context for Earth rotation + APIO prepare for CIRS <-> observed, terrestrial, special + APIO13 prepare for CIRS <-> observed, terrestrial + ATCC13 catalog -> astrometric + ATCCQ quick catalog -> astrometric + ATCI13 catalog -> CIRS + ATCIQ quick ICRS -> CIRS + ATCIQN quick ICRS -> CIRS, multiple deflections + ATCIQZ quick astrometric ICRS -> CIRS + ATCO13 ICRS -> observed + ATIC13 CIRS -> ICRS + ATICQ quick CIRS -> ICRS + ATICQN quick CIRS -> ICRS, multiple deflections + ATIO13 CIRS -> observed + ATIOQ quick CIRS -> observed + ATOC13 observed -> astrometric ICRS + ATOI13 observed -> CIRS + ATOIQ quick observed -> CIRS + LD light deflection by a single solar-system body + LDN light deflection by multiple solar-system bodies + LDSUN light deflection by the Sun + PMPX apply proper motion and parallax + PMSAFE apply proper motion, with zero-parallax precautions + PVTOB observatory position and velocity + PVSTAR space motion pv-vector to star catalog data + REFCO refraction constants + STARPM apply proper motion + STARPV star catalog data to space motion pv-vector + + Time scales + + D2DTF format 2-part JD for output + DAT Delta(AT) (=TAI-UTC) for a given UTC date + DTDB TDB-TT + DTF2D encode time and date fields into 2-part JD + TAITT TAI to TT + TAIUT1 TAI to UT1 + TAIUTC TAI to UTC + TCBTDB TCB to TDB + TCGTT TCG to TT + TDBTCB TDB to TCB + TDBTT TDB to TT + TTTAI TT to TAI + TTTCG TT to TCG + TTTDB TT to TDB + TTUT1 TT to UT1 + UT1TAI UT1 to TAI + UT1TT UT1 to TT + UT1UTC UT1 to UTC + UTCTAI UTC to TAI + UTCUT1 UTC to UT1 + + Earth rotation angle and sidereal time + + EE00 equation of the equinoxes, IAU 2000 + EE00A equation of the equinoxes, IAU 2000A + EE00B equation of the equinoxes, IAU 2000B + EE06A equation of the equinoxes, IAU 2006/2000A + EECT00 equation of the equinoxes complementary terms, IAU 2000 + EQEQ94 equation of the equinoxes, IAU 1994 + ERA00 Earth rotation angle, IAU 2000 + GMST00 Greenwich mean sidereal time, IAU 2000 + GMST06 Greenwich mean sidereal time, IAU 2006 + GMST82 Greenwich mean sidereal time, IAU 1982 + GST00A Greenwich apparent sidereal time, IAU 2000A + GST00B Greenwich apparent sidereal time, IAU 2000B + GST06 Greenwich apparent ST, IAU 2006, given NPB matrix + GST06A Greenwich apparent sidereal time, IAU 2006/2000A + GST94 Greenwich apparent sidereal time, IAU 1994 + + Ephemerides (limited precision) + + EPV00 Earth position and velocity + MOON98 Moon position and velocity + PLAN94 major-planet position and velocity + + Precession, nutation, polar motion + + BI00 frame bias components, IAU 2000 + BP00 frame bias and precession matrices, IAU 2000 + BP06 frame bias and precession matrices, IAU 2006 + BPN2XY extract CIP X,Y coordinates from NPB matrix + C2I00A celestial-to-intermediate matrix, IAU 2000A + C2I00B celestial-to-intermediate matrix, IAU 2000B + C2I06A celestial-to-intermediate matrix, IAU 2006/2000A + C2IBPN celestial-to-intermediate matrix, given NPB matrix, IAU 2000 + C2IXY celestial-to-intermediate matrix, given X,Y, IAU 2000 + C2IXYS celestial-to-intermediate matrix, given X,Y and s + C2T00A celestial-to-terrestrial matrix, IAU 2000A + C2T00B celestial-to-terrestrial matrix, IAU 2000B + C2T06A celestial-to-terrestrial matrix, IAU 2006/2000A + C2TCIO form CIO-based celestial-to-terrestrial matrix + C2TEQX form equinox-based celestial-to-terrestrial matrix + C2TPE celestial-to-terrestrial matrix given nutation, IAU 2000 + C2TXY celestial-to-terrestrial matrix given CIP, IAU 2000 + EO06A equation of the origins, IAU 2006/2000A + EORS equation of the origins, given NPB matrix and s + FW2M Fukushima-Williams angles to r-matrix + FW2XY Fukushima-Williams angles to X,Y + LTP long-term precession matrix + LTPB long-term precession matrix, including ICRS frame bias + LTPECL long-term precession of the ecliptic + LTPEQU long-term precession of the equator + NUM00A nutation matrix, IAU 2000A + NUM00B nutation matrix, IAU 2000B + NUM06A nutation matrix, IAU 2006/2000A + NUMAT form nutation matrix + NUT00A nutation, IAU 2000A + NUT00B nutation, IAU 2000B + NUT06A nutation, IAU 2006/2000A + NUT80 nutation, IAU 1980 + NUTM80 nutation matrix, IAU 1980 + OBL06 mean obliquity, IAU 2006 + OBL80 mean obliquity, IAU 1980 + PB06 zeta,z,theta precession angles, IAU 2006, including bias + PFW06 bias-precession Fukushima-Williams angles, IAU 2006 + PMAT00 precession matrix (including frame bias), IAU 2000 + PMAT06 PB matrix, IAU 2006 + PMAT76 precession matrix, IAU 1976 + PN00 bias/precession/nutation results, IAU 2000 + PN00A bias/precession/nutation, IAU 2000A + PN00B bias/precession/nutation, IAU 2000B + PN06 bias/precession/nutation results, IAU 2006 + PN06A bias/precession/nutation results, IAU 2006/2000A + PNM00A classical NPB matrix, IAU 2000A + PNM00B classical NPB matrix, IAU 2000B + PNM06A classical NPB matrix, IAU 2006/2000A + PNM80 precession/nutation matrix, IAU 1976/1980 + P06E precession angles, IAU 2006, equinox based + POM00 polar motion matrix + PR00 IAU 2000 precession adjustments + PREC76 accumulated precession angles, IAU 1976 + S00 the CIO locator s, given X,Y, IAU 2000A + S00A the CIO locator s, IAU 2000A + S00B the CIO locator s, IAU 2000B + S06 the CIO locator s, given X,Y, IAU 2006 + S06A the CIO locator s, IAU 2006/2000A + SP00 the TIO locator s', IERS 2003 + XY06 CIP, IAU 2006/2000A, from series + XYS00A CIP and s, IAU 2000A + XYS00B CIP and s, IAU 2000B + XYS06A CIP and s, IAU 2006/2000A + + Fundamental arguments for nutation etc. + + FAD03 mean elongation of the Moon from the Sun + FAE03 mean longitude of Earth + FAF03 mean argument of the latitude of the Moon + FAJU03 mean longitude of Jupiter + FAL03 mean anomaly of the Moon + FALP03 mean anomaly of the Sun + FAMA03 mean longitude of Mars + FAME03 mean longitude of Mercury + FANE03 mean longitude of Neptune + FAOM03 mean longitude of the Moon's ascending node + FAPA03 general accumulated precession in longitude + FASA03 mean longitude of Saturn + FAUR03 mean longitude of Uranus + FAVE03 mean longitude of Venus + + Star catalog conversions + + FK52H transform FK5 star data into the Hipparcos system + FK5HIP FK5 to Hipparcos rotation and spin + FK5HZ FK5 to Hipparcos assuming zero Hipparcos proper motion + H2FK5 transform Hipparcos star data into the FK5 system + HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion + FK425 transform FK4 star data into FK5 + FK45Z FK4 to FK5 assuming zero FK5 proper motion + FK524 transform FK5 star data into FK4 + FK54Z FK5 to FK4 assuming zero FK5 proper motion + + Ecliptic coordinates + + ECEQ06 ecliptic to ICRS, IAU 2006 + ECM06 rotation matrix, ICRS to ecliptic, IAU 2006 + EQEC06 ICRS to ecliptic, IAU 2006 + LTECEQ ecliptic to ICRS, long term + LTECM rotation matrix, ICRS to ecliptic, long-term + LTEQEC ICRS to ecliptic, long term + + Galactic coordinates + + G2ICRS transform IAU 1958 galactic coordinates to ICRS + ICRS2G transform ICRS coordinates to IAU 1958 Galactic + + Geodetic/geocentric + + EFORM a,f for a nominated Earth reference ellipsoid + GC2GD geocentric to geodetic for a nominated ellipsoid + GC2GDE geocentric to geodetic given ellipsoid a,f + GD2GC geodetic to geocentric for a nominated ellipsoid + GD2GCE geodetic to geocentric given ellipsoid a,f + + Gnomonic projection + + TPORS solve for tangent point, spherical + TPORV solve for tangent point, vector + TPSTS deproject tangent plane to celestial, spherical + TPSTV deproject tangent plane to celestial, vector + TPXES project celestial to tangent plane, spherical + TPXEV project celestial to tangent plane, vector + + Horizon/equatorial + + AE2HD (azimuth, altitude) to (hour angle, declination) + HD2AE (hour angle, declination) to (azimuth, altitude) + HD2PA parallactic angle + + Obsolete + + C2TCEO former name of C2TCIO + + +CALLS: FORTRAN VERSION + + CALL iau_AB ( PNAT, V, S, BM1, PPR ) + CALL iau_AE2HD ( AZ, EL, PHI, HA, DEC ) + CALL iau_APCG ( DATE1, DATE2, EB, EH, ASTROM ) + CALL iau_APCG13 ( DATE1, DATE2, ASTROM ) + CALL iau_APCI ( DATE1, DATE2, EB, EH, X, Y, S, ASTROM ) + CALL iau_APCI13 ( DATE1, DATE2, ASTROM, EO ) + CALL iau_APCO ( DATE1, DATE2, EB, EH, X, Y, S, + : THETA, ELONG, PHI, HM, XP, YP, SP, + : REFA, REFB, ASTROM ) + CALL iau_APCO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, + : PHPA, TC, RH, WL, ASTROM, EO, J ) + CALL iau_APCS ( DATE1, DATE2, PV, EB, EH, ASTROM ) + CALL iau_APCS13 ( DATE1, DATE2, PV, ASTROM ) + CALL iau_APER ( THETA, ASTROM ) + CALL iau_APER13 ( UT11, UT12, ASTROM ) + CALL iau_APIO ( SP, THETA, ELONG, PHI, HM, XP, YP, + : REFA, REFB, ASTROM ) + CALL iau_APIO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, + : PHPA, TC, RH, WL, ASTROM, J ) + CALL iau_ATCC13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RA, DA ) + CALL iau_ATCCQ ( RC, DC, PR, PD, PX, RV, ASTROM, RA, DA ) + CALL iau_ATCI13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RI, DI, EO ) + CALL iau_ATCIQ ( RC, DC, PR, PD, PX, RV, ASTROM, RI, DI ) + CALL iau_ATCIQN ( RC, DC, PR, PD, PX, RV, ASTROM, N, B, RI, DI ) + CALL iau_ATCIQZ ( RC, DC, ASTROM, RI, DI ) + CALL iau_ATCO13 ( RC, DC, PR, PD, PX, RV, UTC1, UTC2, DUT1, ELONG, + : PHI, HM, XP, YP, PHPA, TC, RH, WL, + : AOB, ZOB, HOB, DOB, ROB, EO, J ) + CALL iau_ATIC13 ( RI, DI, DATE1, DATE2, RC, DC, EO ) + CALL iau_ATICQ ( RI, DI, ASTROM, RC, DC ) + CALL iau_ATICQN ( RI, DI, ASTROM, N, B, RC, DC ) + CALL iau_ATIO13 ( RI, DI, UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP, + : PHPA, TC, RH, WL, AOB, ZOB, HOB, DOB, ROB, J ) + CALL iau_ATIOQ ( RI, DI, ASTROM, AOB, ZOB, HOB, DOB, ROB ) + CALL iau_ATOC13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, + : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, + : RC, DC, J ) + CALL iau_ATOI13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1, + : ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL, + : RI, DI, J ) + CALL iau_ATOIQ ( TYPE, OB1, OB2, ASTROM, RI, DI ) + CALL iau_BI00 ( DPSIBI, DEPSBI, DRA ) + CALL iau_BP00 ( DATE1, DATE2, RB, RP, RBP ) + CALL iau_BP06 ( DATE1, DATE2, RB, RP, RBP ) + CALL iau_BPN2XY ( RBPN, X, Y ) + CALL iau_C2I00A ( DATE1, DATE2, RC2I ) + CALL iau_C2I00B ( DATE1, DATE2, RC2I ) + CALL iau_C2I06A ( DATE1, DATE2, RC2I ) + CALL iau_C2IBPN ( DATE1, DATE2, RBPN, RC2I ) + CALL iau_C2IXY ( DATE1, DATE2, X, Y, RC2I ) + CALL iau_C2IXYS ( X, Y, S, RC2I ) + CALL iau_C2T00A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) + CALL iau_C2T00B ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) + CALL iau_C2T06A ( TTA, TTB, UTA, UTB, XP, YP, RC2T ) + CALL iau_C2TCEO ( RC2I, ERA, RPOM, RC2T ) + CALL iau_C2TCIO ( RC2I, ERA, RPOM, RC2T ) + CALL iau_C2TEQX ( RBPN, GST, RPOM, RC2T ) + CALL iau_C2TPE ( TTA, TTB, UTA, UTB, DPSI, DEPS, XP, YP, RC2T ) + CALL iau_C2TXY ( TTA, TTB, UTA, UTB, X, Y, XP, YP, RC2T ) + CALL iau_CAL2JD ( IY, IM, ID, DJM0, DJM, J ) + CALL iau_D2DTF ( SCALE, NDP, D1, D2, IY, IM, ID, IHMSF, J ) + CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J ) + D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V ) + CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J ) + CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD ) + CALL iau_ECM06 ( DATE1, DATE2, RM ); + D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI ) + D = iau_EE00A ( DATE1, DATE2 ) + D = iau_EE00B ( DATE1, DATE2 ) + D = iau_EE06A ( DATE1, DATE2 ) + D = iau_EECT00 ( DATE1, DATE2 ) + CALL iau_EFORM ( N, A, F, J ) + D = iau_EO06A ( DATE1, DATE2 ) + D = iau_EORS ( RNPB, S ) + D = iau_EPB ( DJ1, DJ2 ) + CALL iau_EPB2JD ( EPB, DJM0, DJM ) + D = iau_EPJ ( DJ1, DJ2 ) + CALL iau_EPJ2JD ( EPJ, DJM0, DJM ) + CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J ) + CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB ) + D = iau_EQEQ94 ( DATE1, DATE2 ) + D = iau_ERA00 ( DJ1, DJ2 ) + D = iau_FAD03 ( T ) + D = iau_FAE03 ( T ) + D = iau_FAF03 ( T ) + D = iau_FAJU03 ( T ) + D = iau_FAL03 ( T ) + D = iau_FALP03 ( T ) + D = iau_FAMA03 ( T ) + D = iau_FAME03 ( T ) + D = iau_FANE03 ( T ) + D = iau_FAOM03 ( T ) + D = iau_FAPA03 ( T ) + D = iau_FASA03 ( T ) + D = iau_FAUR03 ( T ) + D = iau_FAVE03 ( T ) + CALL iau_FK425 ( R1950, D1950, DR1950, DD1950, P1950, V1950, + : R2000, D2000, DR2000, DD2000, P2000, V2000 ) + CALL iau_FK45Z ( R1950, D1950, BEPOCH, R2000, D2000 ) + CALL iau_FK524 ( R2000, D2000, DR2000, DD2000, P2000, V2000, + : R1950, D1950, DR1950, DD1950, P1950, V1950 ) + CALL iau_FK52H ( R5, D5, DR5, DD5, PX5, RV5, + : RH, DH, DRH, DDH, PXH, RVH ) + CALL iau_FK54Z ( R2000, D2000, BEPOCH, R1950, D1950, DR1950, DD1950 ) + CALL iau_FK5HIP ( R5H, S5H ) + CALL iau_FK5HZ ( R5, D5, DATE1, DATE2, RH, DH ) + CALL iau_FW2M ( GAMB, PHIB, PSI, EPS, R ) + CALL iau_FW2XY ( GAMB, PHIB, PSI, EPS, X, Y ) + CALL iau_G2ICRS ( DL, DB, DR, DD ) + CALL iau_GC2GD ( N, XYZ, ELONG, PHI, HEIGHT, J ) + CALL iau_GC2GDE ( A, F, XYZ, ELONG, PHI, HEIGHT, J ) + CALL iau_GD2GC ( N, ELONG, PHI, HEIGHT, XYZ, J ) + CALL iau_GD2GCE ( A, F, ELONG, PHI, HEIGHT, XYZ, J ) + D = iau_GMST00 ( UTA, UTB, TTA, TTB ) + D = iau_GMST06 ( UTA, UTB, TTA, TTB ) + D = iau_GMST82 ( UTA, UTB ) + D = iau_GST00A ( UTA, UTB, TTA, TTB ) + D = iau_GST00B ( UTA, UTB ) + D = iau_GST06 ( UTA, UTB, TTA, TTB, RNPB ) + D = iau_GST06A ( UTA, UTB, TTA, TTB ) + D = iau_GST94 ( UTA, UTB ) + CALL iau_H2FK5 ( RH, DH, DRH, DDH, PXH, RVH, + : R5, D5, DR5, DD5, PX5, RV5 ) + CALL iau_HD2AE ( HA, DEC, PHI, AZ, EL ) + D = iau_HD2PA ( HA, DEC, PHI ) + CALL iau_HFK5Z ( RH, DH, DATE1, DATE2, R5, D5, DR5, DD5 ) + CALL iau_ICRS2G ( DR, DD, DL, DB ) + CALL iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J ) + CALL iau_JDCALF ( NDP, DJ1, DJ2, IYMDF, J ) + CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 ) + CALL iau_LDN ( N, B, OB, SC, SN ) + CALL iau_LDSUN ( P, E, EM, P1 ) + CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD ) + CALL iau_LTECM ( EPJ, RM] ) + CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB ) + CALL iau_LTP ( EPJ, RP ) + CALL iau_LTPB ( EPJ, RPB ) + CALL iau_LTPECL ( EPJ, VEC ) + CALL iau_LTPEQU ( EPJ, VEQ ) + CALL iau_MOON98 ( DATE1, DATE2, PV ) + CALL iau_NUM00A ( DATE1, DATE2, RMATN ) + CALL iau_NUM00B ( DATE1, DATE2, RMATN ) + CALL iau_NUM06A ( DATE1, DATE2, RMATN ) + CALL iau_NUMAT ( EPSA, DPSI, DEPS, RMATN ) + CALL iau_NUT00A ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUT00B ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUT06A ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUT80 ( DATE1, DATE2, DPSI, DEPS ) + CALL iau_NUTM80 ( DATE1, DATE2, RMATN ) + D = iau_OBL06 ( DATE1, DATE2 ) + D = iau_OBL80 ( DATE1, DATE2 ) + CALL iau_PB06 ( DATE1, DATE2, BZETA, BZ, BTHETA ) + CALL iau_PFW06 ( DATE1, DATE2, GAMB, PHIB, PSIB, EPSA ) + CALL iau_PLAN94 ( DATE1, DATE2, NP, PV, J ) + CALL iau_PMAT00 ( DATE1, DATE2, RBP ) + CALL iau_PMAT06 ( DATE1, DATE2, RBP ) + CALL iau_PMAT76 ( DATE1, DATE2, RMATP ) + CALL iau_PMPX ( RC, DC, PR, PD, PX, RV, PMT, POB, PCO ) + CALL iau_PMSAFE ( RA1, DEC1, PMR1, PMD1, PX1, RV1, + : EP1A, EP1B, EP2A, EP2B, + : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) + CALL iau_PN00 ( DATE1, DATE2, DPSI, DEPS, + : EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN00A ( DATE1, DATE2, + : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN00B ( DATE1, DATE2, + : DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN06 ( DATE1, DATE2, DPSI, DEPS, + : EPSA, RB, RP, RBP, RN, RBPN ) + CALL iau_PN06A ( DATE1, DATE2, + : DPSI, DEPS, RB, RP, RBP, RN, RBPN ) + CALL iau_PNM00A ( DATE1, DATE2, RBPN ) + CALL iau_PNM00B ( DATE1, DATE2, RBPN ) + CALL iau_PNM06A ( DATE1, DATE2, RNPB ) + CALL iau_PNM80 ( DATE1, DATE2, RMATPN ) + CALL iau_P06E ( DATE1, DATE2, + : EPS0, PSIA, OMA, BPA, BQA, PIA, BPIA, + : EPSA, CHIA, ZA, ZETAA, THETAA, PA, GAM, PHI, PSI ) + CALL iau_POM00 ( XP, YP, SP, RPOM ) + CALL iau_PR00 ( DATE1, DATE2, DPSIPR, DEPSPR ) + CALL iau_PREC76 ( DATE01, DATE02, DATE11, DATE12, ZETA, Z, THETA ) + CALL iau_PVSTAR ( PV, RA, DEC, PMR, PMD, PX, RV, J ) + CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PV ) + CALL iau_REFCO ( PHPA, TC, RH, WL, REFA, REFB ) + D = iau_S00 ( DATE1, DATE2, X, Y ) + D = iau_S00A ( DATE1, DATE2 ) + D = iau_S00B ( DATE1, DATE2 ) + D = iau_S06 ( DATE1, DATE2, X, Y ) + D = iau_S06A ( DATE1, DATE2 ) + D = iau_SP00 ( DATE1, DATE2 ) + CALL iau_STARPM ( RA1, DEC1, PMR1, PMD1, PX1, RV1, + : EP1A, EP1B, EP2A, EP2B, + : RA2, DEC2, PMR2, PMD2, PX2, RV2, J ) + CALL iau_STARPV ( RA, DEC, PMR, PMD, PX, RV, PV, J ) + CALL iau_TAITT ( TAI1, TAI2, TT1, TT2, J ) + CALL iau_TAIUT1 ( TAI1, TAI2, DTA, UT11, UT12, J ) + CALL iau_TAIUTC ( TAI1, TAI2, UTC1, UTC2, J ) + CALL iau_TCBTDB ( TCB1, TCB2, TDB1, TDB2, J ) + CALL iau_TCGTT ( TCG1, TCG2, TT1, TT2, J ) + CALL iau_TDBTCB ( TDB1, TDB2, TCB1, TCB2, J ) + CALL iau_TDBTT ( TDB1, TDB2, DTR, TT1, TT2, J ) + CALL iau_TPORS ( XI, ETA, A, B, A01, B01, A02, B02, N ) + CALL iau_TPORV ( XI, ETA, V, V01, V02, N ) + CALL iau_TPSTS ( XI, ETA, A0, B0, A, B ) + CALL iau_TPSTV ( XI, ETA, V0, V ) + CALL iau_TPXES ( A, B, A0, B0, XI, ETA, J ) + CALL iau_TPXEV ( V, V0, XI, ETA, J ) + CALL iau_TTTAI ( TT1, TT2, TAI1, TAI2, J ) + CALL iau_TTTCG ( TT1, TT2, TCG1, TCG2, J ) + CALL iau_TTTDB ( TT1, TT2, DTR, TDB1, TDB2, J ) + CALL iau_TTUT1 ( TT1, TT2, DT, UT11, UT12, J ) + CALL iau_UT1TAI ( UT11, UT12, TAI1, TAI2, J ) + CALL iau_UT1TT ( UT11, UT12, DT, TT1, TT2, J ) + CALL iau_UT1UTC ( UT11, UT12, DUT, UTC1, UTC2, J ) + CALL iau_UTCTAI ( UTC1, UTC2, DTA, TAI1, TAI2, J ) + CALL iau_UTCUT1 ( UTC1, UTC2, DUT, UT11, UT12, J ) + CALL iau_XY06 ( DATE1, DATE2, X, Y ) + CALL iau_XYS00A ( DATE1, DATE2, X, Y, S ) + CALL iau_XYS00B ( DATE1, DATE2, X, Y, S ) + CALL iau_XYS06A ( DATE1, DATE2, X, Y, S ) + + +CALLS: C VERSION + + iauAb ( pnat, v, s, bm1, ppr ); + iauAe2hd ( az, el, phi, &ha, &dec ); + iauApcg ( date1, date2, eb, eh, &astrom ); + iauApcg13 ( date1, date2, &astrom ); + iauApci ( date1, date2, eb, eh, x, y, s, &astrom ); + iauApci13 ( date1, date2, &astrom, &eo ); + iauApco ( date1, date2, eb, eh, x, y, s, + theta, elong, phi, hm, xp, yp, sp, + refa, refb, &astrom ); + i = iauApco13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom, &eo ); + iauApcs ( date1, date2, pv, eb, eh, &astrom ); + iauApcs13 ( date1, date2, pv, &astrom ); + iauAper ( theta, &astrom ); + iauAper13 ( ut11, ut12, &astrom ); + iauApio ( sp, theta, elong, phi, hm, xp, yp, refa, refb, + &astrom ); + i = iauApio13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, &astrom ); + iauAtcc13 ( rc, dc, pr, pd, px, rv, date1, date2, &ra, &da ); + iauAtccq ( rc, dc, pr, pd, px, rv, &astrom, &ra, &da ); + iauAtci13 ( rc, dc, pr, pd, px, rv, date1, date2, + &ri, &di, &eo ); + iauAtciq ( rc, dc, pr, pd, px, rv, &astrom, &ri, &di ); + iauAtciqn ( rc, dc, pr, pd, px, rv, astrom, n, b, &ri, &di ); + iauAtciqz ( rc, dc, &astrom, &ri, &di ); + i = iauAtco13 ( rc, dc, pr, pd, px, rv, utc1, utc2, dut1, + elong phi, hm, xp, yp, phpa, tc, rh, wl, + aob, zob, hob, dob, rob, eo ); + iauAtic13 ( ri, di, date1, date2, &rc, &dc, &eo ); + iauAticq ( ri, di, &astrom, &rc, &dc ); + iauAticqn ( ri, di, astrom, n, b, &rc, &dc ); + i = iauAtio13 ( ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, + phpa, tc, rh, wl, aob, zob, hob, dob, rob ); + iauAtioq ( ri, di, &astrom, &aob, &zob, &hob, &dob, &rob ); + i = iauAtoc13 ( type, ob1, ob2, utc1, utc2, dut1, + elong, phi, hm, xp, yp, phpa, tc, rh, wl, + &rc, &dc ); + i = iauAtoi13 ( type, ob1, ob2, utc1, utc2, dut1, elong, phi, hm, + xp, yp, phpa, tc, rh, wl, &ri, &di ); + iauAtoiq ( type, ob1, ob2, &astrom, &ri, &di ); + iauBi00 ( &dpsibi, &depsbi, &dra ); + iauBp00 ( date1, date2, rb, rp, rbp ); + iauBp06 ( date1, date2, rb, rp, rbp ); + iauBpn2xy ( rbpn, &x, &y ); + iauC2i00a ( date1, date2, rc2i ); + iauC2i00b ( date1, date2, rc2i ); + iauC2i06a ( date1, date2, rc2i ); + iauC2ibpn ( date1, date2, rbpn, rc2i ); + iauC2ixy ( date1, date2, x, y, rc2i ); + iauC2ixys ( x, y, s, rc2i ); + iauC2t00a ( tta, ttb, uta, utb, xp, yp, rc2t ); + iauC2t00b ( tta, ttb, uta, utb, xp, yp, rc2t ); + iauC2t06a ( tta, ttb, uta, utb, xp, yp, rc2t ); + iauC2tcio ( rc2i, era, rpom, rc2t ); + iauC2teqx ( rbpn, gst, rpom, rc2t ); + iauC2tpe ( tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t ); + iauC2txy ( tta, ttb, uta, utb, x, y, xp, yp, rc2t ); + i = iauCal2jd ( iy, im, id, &djm0, &djm ); + i = iauD2dtf ( scale, ndp, d1, d2, &iy, &im, &id, ihmsf ); + i = iauDat ( iy, im, id, fd, &deltat ); + d = iauDtdb ( date1, date2, ut, elong, u, v ); + i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 ); + iauEceq06 ( date1, date2, dl, db, &dr, &dd ); + iauEcm06 ( date1, date2, rm ); + d = iauEe00 ( date1, date2, epsa, dpsi ); + d = iauEe00a ( date1, date2 ); + d = iauEe00b ( date1, date2 ); + d = iauEe06 ( date1, date2 ); + d = iauEect00 ( date1, date2 ); + i = iauEform ( n, &a, &f ); + d = iauEo06 ( date1, date2 ); + d = iauEors ( rnpb, s ); + d = iauEpb ( dj1, dj2 ); + iauEpb2jd ( epb, &djm0, &djm ); + d = iauEpj ( dj1, dj2 ); + iauEpj2jd ( epj, &djm0, &djm ); + i = iauEpv00 ( dj1, dj2, pvh, pvb ); + iauEqec06 ( date1, date2, dr, dd, &dl, &db ); + d = iauEqeq94 ( date1, date2 ); + d = iauEra00 ( dj1, dj2 ); + d = iauFad03 ( t ); + d = iauFae03 ( t ); + d = iauFaf03 ( t ); + d = iauFaju03 ( t ); + d = iauFal03 ( t ); + d = iauFalp03 ( t ); + d = iauFama03 ( t ); + d = iauFame03 ( t ); + d = iauFane03 ( t ); + d = iauFaom03 ( t ); + d = iauFapa03 ( t ); + d = iauFasa03 ( t ); + d = iauFaur03 ( t ); + d = iauFave03 ( t ); + iauFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950, + &r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000 ); + iauFk45z ( r1950, d1950, bepoch, &r2000, &d2000 ); + iauFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000, + &r1950, &d1950, &dr1950, &dd1950, &p1950, &v1950 ); + iauFk52h ( r5, d5, dr5, dd5, px5, rv5, + &rh, &dh, &drh, &ddh, &pxh, &rvh ); + iauFk54z ( r2000, d2000, bepoch, + &r1950, &d1950, &dr1950, &dd1950 ); + iauFk5hip ( r5h, s5h ); + iauFk5hz ( r5, d5, date1, date2, &rh, &dh ); + iauFw2m ( gamb, phib, psi, eps, r ); + iauFw2xy ( gamb, phib, psi, eps, &x, &y ); + iauG2icrs ( dl, db, &dr, &dd ); + i = iauGc2gd ( n, xyz, &elong, &phi, &height ); + i = iauGc2gde ( a, f, xyz, &elong, &phi, &height ); + i = iauGd2gc ( n, elong, phi, height, xyz ); + i = iauGd2gce ( a, f, elong, phi, height, xyz ); + d = iauGmst00 ( uta, utb, tta, ttb ); + d = iauGmst06 ( uta, utb, tta, ttb ); + d = iauGmst82 ( uta, utb ); + d = iauGst00a ( uta, utb, tta, ttb ); + d = iauGst00b ( uta, utb ); + d = iauGst06 ( uta, utb, tta, ttb, rnpb ); + d = iauGst06a ( uta, utb, tta, ttb ); + d = iauGst94 ( uta, utb ); + iauH2fk5 ( rh, dh, drh, ddh, pxh, rvh, + &r5, &d5, &dr5, &dd5, &px5, &rv5 ); + iauHd2ae ( ha, dec, phi, &az, &el ); + d = iauHd2pa ( ha, dec, phi ); + iauHfk5z ( rh, dh, date1, date2, + &r5, &d5, &dr5, &dd5 ); + iauIcrs2g ( dr, dd, &dl, &db ); + i = iauJd2cal ( dj1, dj2, &iy, &im, &id, &fd ); + i = iauJdcalf ( ndp, dj1, dj2, iymdf ); + iauLd ( bm, p, q, e, em, dlim, p1 ); + iauLdn ( n, b, ob, sc, sn ); + iauLdsun ( p, e, em, p1 ); + iauLteceq ( epj, dl, db, &dr, &dd ); + iauLtecm ( epj, rm ); + iauLteqec ( epj, dr, dd, &dl, &db ); + iauLtp ( epj, rp ); + iauLtpb ( epj, rpb ); + iauLtpecl ( epj, vec ); + iauLtpequ ( epj, veq ); + iauMoon98 ( date1, date2, pv ); + iauNum00a ( date1, date2, rmatn ); + iauNum00b ( date1, date2, rmatn ); + iauNum06a ( date1, date2, rmatn ); + iauNumat ( epsa, dpsi, deps, rmatn ); + iauNut00a ( date1, date2, &dpsi, &deps ); + iauNut00b ( date1, date2, &dpsi, &deps ); + iauNut06a ( date1, date2, &dpsi, &deps ); + iauNut80 ( date1, date2, &dpsi, &deps ); + iauNutm80 ( date1, date2, rmatn ); + d = iauObl06 ( date1, date2 ); + d = iauObl80 ( date1, date2 ); + iauPb06 ( date1, date2, &bzeta, &bz, &btheta ); + iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa ); + i = iauPlan94 ( date1, date2, np, pv ); + iauPmat00 ( date1, date2, rbp ); + iauPmat06 ( date1, date2, rbp ); + iauPmat76 ( date1, date2, rmatp ); + iauPmpx ( rc, dc, pr, pd, px, rv, pmt, pob, pco ); + i = iauPmsafe ( ra1, dec1, pmr1, pmd1, px1, rv1, + ep1a, ep1b, ep2a, ep2b, + &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2); + iauPn00 ( date1, date2, dpsi, deps, + &epsa, rb, rp, rbp, rn, rbpn ); + iauPn00a ( date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); + iauPn00b ( date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); + iauPn06 ( date1, date2, dpsi, deps, + &epsa, rb, rp, rbp, rn, rbpn ); + iauPn06a ( date1, date2, + &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn ); + iauPnm00a ( date1, date2, rbpn ); + iauPnm00b ( date1, date2, rbpn ); + iauPnm06a ( date1, date2, rnpb ); + iauPnm80 ( date1, date2, rmatpn ); + iauP06e ( date1, date2, + &eps0, &psia, &oma, &bpa, &bqa, &pia, &bpia, + &epsa, &chia, &za, &zetaa, &thetaa, &pa, + &gam, &phi, &psi ); + iauPom00 ( xp, yp, sp, rpom ); + iauPr00 ( date1, date2, &dpsipr, &depspr ); + iauPrec76 ( date01, date02, date11, date12, &zeta, &z, &theta ); + i = iauPvstar ( pv, &ra, &dec, &pmr, &pmd, &px, &rv ); + iauPvtob ( elong, phi, hm, xp, yp, sp, theta, pv ); + iauRefco ( phpa, tc, rh, wl, refa, refb ); + d = iauS00 ( date1, date2, x, y ); + d = iauS00a ( date1, date2 ); + d = iauS00b ( date1, date2 ); + d = iauS06 ( date1, date2, x, y ); + d = iauS06a ( date1, date2 ); + d = iauSp00 ( date1, date2 ); + i = iauStarpm ( ra1, dec1, pmr1, pmd1, px1, rv1, + ep1a, ep1b, ep2a, ep2b, + &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2 ); + i = iauStarpv ( ra, dec, pmr, pmd, px, rv, pv ); + i = iauTaitt ( tai1, tai2, &tt1, &tt2 ); + i = iauTaiut1 ( tai1, tai2, dta, &ut11, &ut12 ); + i = iauTaiutc ( tai1, tai2, &utc1, &utc2 ); + i = iauTcbtdb ( tcb1, tcb2, &tdb1, &tdb2 ); + i = iauTcgtt ( tcg1, tcg2, &tt1, &tt2 ); + i = iauTdbtcb ( tdb1, tdb2, &tcb1, &tcb2 ); + i = iauTdbtt ( tdb1, tdb2, dtr, &tt1, &tt2 ); + i = iauTpors ( xi, eta, a, b, &a01, &b01, &a02, &b02 ); + i = iauTporv ( xi, eta, v, v01, v02 ); + iauTpsts ( xi, eta, a0, b0, &a, &b ); + iauTpstv ( xi, eta, v0, v ); + i = iauTpxes ( a, b, a0, b0, &xi, &eta ); + i = iauTpxev ( v, v0, &xi, &eta ); + i = iauTttai ( tt1, tt2, &tai1, &tai2 ); + i = iauTttcg ( tt1, tt2, &tcg1, &tcg2 ); + i = iauTttdb ( tt1, tt2, dtr, &tdb1, &tdb2 ); + i = iauTtut1 ( tt1, tt2, dt, &ut11, &ut12 ); + i = iauUt1tai ( ut11, ut12, &tai1, &tai2 ); + i = iauUt1tt ( ut11, ut12, dt, &tt1, &tt2 ); + i = iauUt1utc ( ut11, ut12, dut, &utc1, &utc2 ); + i = iauUtctai ( utc1, utc2, dta, &tai1, &tai2 ); + i = iauUtcut1 ( utc1, utc2, dut, &ut11, &ut12 ); + iauXy06 ( date1, date2, &x, &y ); + iauXys00a ( date1, date2, &x, &y, &s ); + iauXys00b ( date1, date2, &x, &y, &s ); + iauXys06a ( date1, date2, &x, &y, &s ); + + + + + + +sofa_vml.lis 2020 September 9 + + -------------------------- + SOFA Vector/Matrix Library + -------------------------- + +PREFACE + +The routines described here comprise the SOFA vector/matrix library. +Their general appearance and coding style conforms to conventions +agreed by the SOFA Board, and their functions, names and algorithms have +been ratified by the Board. Procedures for soliciting and agreeing +additions to the library are still evolving. + + +PROGRAMMING LANGUAGES + +The SOFA routines are available in two programming languages at present: +Fortran 77 and ANSI C. + +There is a one-to-one relationship between the two language versions. +The naming convention is such that a SOFA routine referred to +generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a +C function iauExampl. The calls for the two versions are very similar, +with the same arguments in the same order. In a few cases, the C +equivalent of a Fortran SUBROUTINE subprogram uses a return value rather +than an argument. + + +GENERAL PRINCIPLES + +The library consists mostly of routines which operate on ordinary +Cartesian vectors (x,y,z) and 3x3 rotation matrices. However, there is +also support for vectors which represent velocity as well as position +and vectors which represent rotation instead of position. The vectors +which represent both position and velocity may be considered still to +have dimensions (3), but to comprise elements each of which is two +numbers, representing the value itself and the time derivative. Thus: + +* "Position" or "p" vectors (or just plain 3-vectors) have dimension + (3) in Fortran and [3] in C. + +* "Position/velocity" or "pv" vectors have dimensions (3,2) in Fortran + and [2][3] in C. + +* "Rotation" or "r" matrices have dimensions (3,3) in Fortran and [3][3] + in C. When used for rotation, they are "orthogonal"; the inverse of + such a matrix is equal to the transpose. Most of the routines in + this library do not assume that r-matrices are necessarily orthogonal + and in fact work on any 3x3 matrix. + +* "Rotation" or "r" vectors have dimensions (3) in Fortran and [3] in C. + Such vectors are a combination of the Euler axis and angle and are + convertible to and from r-matrices. The direction is the axis of + rotation and the magnitude is the angle of rotation, in radians. + Because the amount of rotation can be scaled up and down simply by + multiplying the vector by a scalar, r-vectors are useful for + representing spins about an axis which is fixed. + +* The above rules mean that in terms of memory address, the three + velocity components of a pv-vector follow the three position + components. Application code is permitted to exploit this and all + other knowledge of the internal layouts: that x, y and z appear in + that order and are in a right-handed Cartesian coordinate system etc. + For example, the cp function (copy a p-vector) can be used to copy + the velocity component of a pv-vector (indeed, this is how the + CPV routine is coded). + +* The routines provided do not completely fill the range of operations + that link all the various vector and matrix options, but are confined + to functions that are required by other parts of the SOFA software or + which are likely to prove useful. + +In addition to the vector/matrix routines, the library contains some +routines related to spherical angles, including conversions to and +from sexagesimal format. + +Using the library requires knowledge of vector/matrix methods, spherical +trigonometry, and methods of attitude representation. These topics are +covered in many textbooks, including "Spacecraft Attitude Determination +and Control", James R. Wertz (ed.), Astrophysics and Space Science +Library, Vol. 73, D. Reidel Publishing Company, 1986. + + +OPERATIONS INVOLVING P-VECTORS AND R-MATRICES + + Initialize + + ZP zero p-vector + ZR initialize r-matrix to null + IR initialize r-matrix to identity + + Copy + + CP copy p-vector + CR copy r-matrix + + Build rotations + + RX rotate r-matrix about x + RY rotate r-matrix about y + RZ rotate r-matrix about z + + Spherical/Cartesian conversions + + S2C spherical to unit vector + C2S unit vector to spherical + S2P spherical to p-vector + P2S p-vector to spherical + + Operations on vectors + + PPP p-vector plus p-vector + PMP p-vector minus p-vector + PPSP p-vector plus scaled p-vector + PDP inner (=scalar=dot) product of two p-vectors + PXP outer (=vector=cross) product of two p-vectors + PM modulus of p-vector + PN normalize p-vector returning modulus + SXP multiply p-vector by scalar + + Operations on matrices + + RXR r-matrix multiply + TR transpose r-matrix + + Matrix-vector products + + RXP product of r-matrix and p-vector + TRXP product of transpose of r-matrix and p-vector + + Separation and position-angle + + SEPP angular separation from p-vectors + SEPS angular separation from spherical coordinates + PAP position-angle from p-vectors + PAS position-angle from spherical coordinates + + Rotation vectors + + RV2M r-vector to r-matrix + RM2V r-matrix to r-vector + + +OPERATIONS INVOLVING PV-VECTORS + + Initialize + + ZPV zero pv-vector + + Copy/extend/extract + + CPV copy pv-vector + P2PV append zero velocity to p-vector + PV2P discard velocity component of pv-vector + + Spherical/Cartesian conversions + + S2PV spherical to pv-vector + PV2S pv-vector to spherical + + Operations on pv-vectors + + PVPPV pv-vector plus pv-vector + PVMPV pv-vector minus pv-vector + PVDPV inner (=scalar=dot) product of two pv-vectors + PVXPV outer (=vector=cross) product of two pv-vectors + PVM modulus of pv-vector + SXPV multiply pv-vector by scalar + S2XPV multiply pv-vector by two scalars + PVU update pv-vector + PVUP update pv-vector discarding velocity + + Matrix-vector products + + RXPV product of r-matrix and pv-vector + TRXPV product of transpose of r-matrix and pv-vector + + +OPERATIONS ON ANGLES + + Wrap + + ANP normalize radians to range 0 to 2pi + ANPM normalize radians to range -pi to +pi + + To sexagesimal + + A2TF decompose radians into hours, minutes, seconds + A2AF decompose radians into degrees, arcminutes, arcseconds + D2TF decompose days into hours, minutes, seconds + + From sexagesimal + + AF2A degrees, arcminutes, arcseconds to radians + TF2A hours, minutes, seconds to radians + TF2D hours, minutes, seconds to days + + +CALLS: FORTRAN VERSION + + CALL iau_A2AF ( NDP, ANGLE, SIGN, IDMSF ) + CALL iau_A2TF ( NDP, ANGLE, SIGN, IHMSF ) + CALL iau_AF2A ( S, IDEG, IAMIN, ASEC, RAD, J ) + D = iau_ANP ( A ) + D = iau_ANPM ( A ) + CALL iau_C2S ( P, THETA, PHI ) + CALL iau_CP ( P, C ) + CALL iau_CPV ( PV, C ) + CALL iau_CR ( R, C ) + CALL iau_D2TF ( NDP, DAYS, SIGN, IHMSF ) + CALL iau_IR ( R ) + CALL iau_P2PV ( P, PV ) + CALL iau_P2S ( P, THETA, PHI, R ) + CALL iau_PAP ( A, B, THETA ) + CALL iau_PAS ( AL, AP, BL, BP, THETA ) + CALL iau_PDP ( A, B, ADB ) + CALL iau_PM ( P, R ) + CALL iau_PMP ( A, B, AMB ) + CALL iau_PN ( P, R, U ) + CALL iau_PPP ( A, B, APB ) + CALL iau_PPSP ( A, S, B, APSB ) + CALL iau_PV2P ( PV, P ) + CALL iau_PV2S ( PV, THETA, PHI, R, TD, PD, RD ) + CALL iau_PVDPV ( A, B, ADB ) + CALL iau_PVM ( PV, R, S ) + CALL iau_PVMPV ( A, B, AMB ) + CALL iau_PVPPV ( A, B, APB ) + CALL iau_PVU ( DT, PV, UPV ) + CALL iau_PVUP ( DT, PV, P ) + CALL iau_PVXPV ( A, B, AXB ) + CALL iau_PXP ( A, B, AXB ) + CALL iau_RM2V ( R, P ) + CALL iau_RV2M ( P, R ) + CALL iau_RX ( PHI, R ) + CALL iau_RXP ( R, P, RP ) + CALL iau_RXPV ( R, PV, RPV ) + CALL iau_RXR ( A, B, ATB ) + CALL iau_RY ( THETA, R ) + CALL iau_RZ ( PSI, R ) + CALL iau_S2C ( THETA, PHI, C ) + CALL iau_S2P ( THETA, PHI, R, P ) + CALL iau_S2PV ( THETA, PHI, R, TD, PD, RD, PV ) + CALL iau_S2XPV ( S1, S2, PV ) + CALL iau_SEPP ( A, B, S ) + CALL iau_SEPS ( AL, AP, BL, BP, S ) + CALL iau_SXP ( S, P, SP ) + CALL iau_SXPV ( S, PV, SPV ) + CALL iau_TF2A ( S, IHOUR, IMIN, SEC, RAD, J ) + CALL iau_TF2D ( S, IHOUR, IMIN, SEC, DAYS, J ) + CALL iau_TR ( R, RT ) + CALL iau_TRXP ( R, P, TRP ) + CALL iau_TRXPV ( R, PV, TRPV ) + CALL iau_ZP ( P ) + CALL iau_ZPV ( PV ) + CALL iau_ZR ( R ) + + +CALLS: C VERSION + + iauA2af ( ndp, angle, &sign, idmsf ); + iauA2tf ( ndp, angle, &sign, ihmsf ); + i = iauAf2a ( s, ideg, iamin, asec, &rad ); + d = iauAnp ( a ); + d = iauAnpm ( a ); + iauC2s ( p, &theta, &phi ); + iauCp ( p, c ); + iauCpv ( pv, c ); + iauCr ( r, c ); + iauD2tf ( ndp, days, &sign, ihmsf ); + iauIr ( r ); + iauP2pv ( p, pv ); + iauP2s ( p, &theta, &phi, &r ); + d = iauPap ( a, b ); + d = iauPas ( al, ap, bl, bp ); + d = iauPdp ( a, b ); + d = iauPm ( p ); + iauPmp ( a, b, amb ); + iauPn ( p, &r, u ); + iauPpp ( a, b, apb ); + iauPpsp ( a, s, b, apsb ); + iauPv2p ( pv, p ); + iauPv2s ( pv, &theta, &phi, &r, &td, &pd, &rd ); + iauPvdpv ( a, b, adb ); + iauPvm ( pv, &r, &s ); + iauPvmpv ( a, b, amb ); + iauPvppv ( a, b, apb ); + iauPvu ( dt, pv, upv ); + iauPvup ( dt, pv, p ); + iauPvxpv ( a, b, axb ); + iauPxp ( a, b, axb ); + iauRm2v ( r, p ); + iauRv2m ( p, r ); + iauRx ( phi, r ); + iauRxp ( r, p, rp ); + iauRxpv ( r, pv, rpv ); + iauRxr ( a, b, atb ); + iauRy ( theta, r ); + iauRz ( psi, r ); + iauS2c ( theta, phi, c ); + iauS2p ( theta, phi, r, p ); + iauS2pv ( theta, phi, r, td, pd, rd, pv ); + iauS2xpv ( s1, s2, pv ); + d = iauSepp ( a, b ); + d = iauSeps ( al, ap, bl, bp ); + iauSxp ( s, p, sp ); + iauSxpv ( s, pv, spv ); + i = iauTf2a ( s, ihour, imin, sec, &rad ); + i = iauTf2d ( s, ihour, imin, sec, &days ); + iauTr ( r, rt ); + iauTrxp ( r, p, trp ); + iauTrxpv ( r, pv, trpv ); + iauZp ( p ); + iauZpv ( pv ); + iauZr ( r ); + + + +void iauA2af(int ndp, double angle, char *sign, int idmsf[4]) +/* +** - - - - - - - - +** i a u A 2 a f +** - - - - - - - - +** +** Decompose radians into degrees, arcminutes, arcseconds, fraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** ndp int resolution (Note 1) +** angle double angle in radians +** +** Returned: +** sign char* '+' or '-' +** idmsf int[4] degrees, arcminutes, arcseconds, fraction +** +** Notes: +** +** 1) The argument ndp is interpreted as follows: +** +** ndp resolution +** : ...0000 00 00 +** -7 1000 00 00 +** -6 100 00 00 +** -5 10 00 00 +** -4 1 00 00 +** -3 0 10 00 +** -2 0 01 00 +** -1 0 00 10 +** 0 0 00 01 +** 1 0 00 00.1 +** 2 0 00 00.01 +** 3 0 00 00.001 +** : 0 00 00.000... +** +** 2) The largest positive useful value for ndp is determined by the +** size of angle, the format of doubles on the target platform, and +** the risk of overflowing idmsf[3]. On a typical platform, for +** angle up to 2pi, the available floating-point precision might +** correspond to ndp=12. However, the practical limit is typically +** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is +** only 16 bits. +** +** 3) The absolute value of angle may exceed 2pi. In cases where it +** does not, it is up to the caller to test for and handle the +** case where angle is very nearly 2pi and rounds up to 360 degrees, +** by testing for idmsf[0]=360 and setting idmsf[0-3] to zero. +** +** Called: +** iauD2tf decompose days to hms +** +*/ + + + +void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4]) +/* +** - - - - - - - - +** i a u A 2 t f +** - - - - - - - - +** +** Decompose radians into hours, minutes, seconds, fraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** ndp int resolution (Note 1) +** angle double angle in radians +** +** Returned: +** sign char* '+' or '-' +** ihmsf int[4] hours, minutes, seconds, fraction +** +** Notes: +** +** 1) The argument ndp is interpreted as follows: +** +** ndp resolution +** : ...0000 00 00 +** -7 1000 00 00 +** -6 100 00 00 +** -5 10 00 00 +** -4 1 00 00 +** -3 0 10 00 +** -2 0 01 00 +** -1 0 00 10 +** 0 0 00 01 +** 1 0 00 00.1 +** 2 0 00 00.01 +** 3 0 00 00.001 +** : 0 00 00.000... +** +** 2) The largest positive useful value for ndp is determined by the +** size of angle, the format of doubles on the target platform, and +** the risk of overflowing ihmsf[3]. On a typical platform, for +** angle up to 2pi, the available floating-point precision might +** correspond to ndp=12. However, the practical limit is typically +** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is +** only 16 bits. +** +** 3) The absolute value of angle may exceed 2pi. In cases where it +** does not, it is up to the caller to test for and handle the +** case where angle is very nearly 2pi and rounds up to 24 hours, +** by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero. +** +** Called: +** iauD2tf decompose days to hms +** +*/ + + + +void iauAb(double pnat[3], double v[3], double s, double bm1, + double ppr[3]) +/* +** - - - - - - +** i a u A b +** - - - - - - +** +** Apply aberration to transform natural direction into proper +** direction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** pnat double[3] natural direction to the source (unit vector) +** v double[3] observer barycentric velocity in units of c +** s double distance between the Sun and the observer (au) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** +** Returned: +** ppr double[3] proper direction to source (unit vector) +** +** Notes: +** +** 1) The algorithm is based on Expr. (7.40) in the Explanatory +** Supplement (Urban & Seidelmann 2013), but with the following +** changes: +** +** o Rigorous rather than approximate normalization is applied. +** +** o The gravitational potential term from Expr. (7) in +** Klioner (2003) is added, taking into account only the Sun's +** contribution. This has a maximum effect of about +** 0.4 microarcsecond. +** +** 2) In almost all cases, the maximum accuracy will be limited by the +** supplied velocity. For example, if the SOFA iauEpv00 function is +** used, errors of up to 5 microarcseconds could occur. +** +** References: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013). +** +** Klioner, Sergei A., "A practical relativistic model for micro- +** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). +** +** Called: +** iauPdp scalar product of two p-vectors +** +*/ + + + +void iauAe2hd (double az, double el, double phi, + double *ha, double *dec) +/* +** - - - - - - - - - +** i a u A e 2 h d +** - - - - - - - - - +** +** Horizon to equatorial coordinates: transform azimuth and altitude +** to hour angle and declination. +** +** Given: +** az double azimuth +** el double altitude (informally, elevation) +** phi double site latitude +** +** Returned: +** ha double hour angle (local) +** dec double declination +** +** Notes: +** +** 1) All the arguments are angles in radians. +** +** 2) The sign convention for azimuth is north zero, east +pi/2. +** +** 3) HA is returned in the range +/-pi. Declination is returned in +** the range +/-pi/2. +** +** 4) The latitude phi is pi/2 minus the angle between the Earth's +** rotation axis and the adopted zenith. In many applications it +** will be sufficient to use the published geodetic latitude of the +** site. In very precise (sub-arcsecond) applications, phi can be +** corrected for polar motion. +** +** 5) The azimuth az must be with respect to the rotational north pole, +** as opposed to the ITRS pole, and an azimuth with respect to north +** on a map of the Earth's surface will need to be adjusted for +** polar motion if sub-arcsecond accuracy is required. +** +** 6) Should the user wish to work with respect to the astronomical +** zenith rather than the geodetic zenith, phi will need to be +** adjusted for deflection of the vertical (often tens of +** arcseconds), and the zero point of ha will also be affected. +** +** 7) The transformation is the same as Ve = Ry(phi-pi/2)*Rz(pi)*Vh, +** where Ve and Vh are lefthanded unit vectors in the (ha,dec) and +** (az,el) systems respectively and Rz and Ry are rotations about +** first the z-axis and then the y-axis. (n.b. Rz(pi) simply +** reverses the signs of the x and y components.) For efficiency, +** the algorithm is written out rather than calling other utility +** functions. For applications that require even greater +** efficiency, additional savings are possible if constant terms +** such as functions of latitude are computed once and for all. +** +** 8) Again for efficiency, no range checking of arguments is carried +** out. +** +** Last revision: 2017 September 12 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double sa, ca, se, ce, sp, cp, x, y, z, r; + + +/* Useful trig functions. */ + sa = sin(az); + ca = cos(az); + se = sin(el); + ce = cos(el); + sp = sin(phi); + cp = cos(phi); + +/* HA,Dec unit vector. */ + x = - ca*ce*sp + se*cp; + y = - sa*ce; + z = ca*ce*cp + se*sp; + +/* To spherical. */ + r = sqrt(x*x + y*y); + *ha = (r != 0.0) ? atan2(y,x) : 0.0; + *dec = atan2(z,r); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} + + + +int iauAf2a(char s, int ideg, int iamin, double asec, double *rad) +/* +** - - - - - - - - +** i a u A f 2 a +** - - - - - - - - +** +** Convert degrees, arcminutes, arcseconds to radians. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** s char sign: '-' = negative, otherwise positive +** ideg int degrees +** iamin int arcminutes +** asec double arcseconds +** +** Returned: +** rad double angle in radians +** +** Returned (function value): +** int status: 0 = OK +** 1 = ideg outside range 0-359 +** 2 = iamin outside range 0-59 +** 3 = asec outside range 0-59.999... +** +** Notes: +** +** 1) The result is computed even if any of the range checks fail. +** +** 2) Negative ideg, iamin and/or asec produce a warning status, but +** the absolute value is used in the conversion. +** +** 3) If there are multiple errors, the status value reflects only the +** first, the smallest taking precedence. +** +*/ + + + +double iauAnp(double a) +/* +** - - - - - - - +** i a u A n p +** - - - - - - - +** +** Normalize angle into the range 0 <= a < 2pi. +** +** 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 angle (radians) +** +** Returned (function value): +** double angle in range 0-2pi +** +*/ + + + +double iauAnpm(double a) +/* +** - - - - - - - - +** i a u A n p m +** - - - - - - - - +** +** Normalize angle into the range -pi <= a < +pi. +** +** 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 angle (radians) +** +** Returned (function value): +** double angle in range +/-pi +** +*/ + + + +void iauApcg(double date1, double date2, + double ebpv[2][3], double ehp[3], + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p c g +** - - - - - - - - +** +** For a geocentric observer, prepare star-independent astrometry +** parameters for transformations between ICRS and GCRS coordinates. +** The Earth ephemeris is supplied by the caller. +** +** The parameters produced by this function are required in the +** parallax, light deflection and aberration parts of the astrometric +** transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** ebpv double[2][3] Earth barycentric pos/vel (au, au/day) +** ehp double[3] Earth heliocentric position (au) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 4) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauApcs astrometry parameters, ICRS-GCRS, space observer +** +*/ + + + +void iauApcg13(double date1, double date2, iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p c g 1 3 +** - - - - - - - - - - +** +** For a geocentric observer, prepare star-independent astrometry +** parameters for transformations between ICRS and GCRS coordinates. +** The caller supplies the date, and SOFA models are used to predict +** the Earth ephemeris. +** +** The parameters produced by this function are required in the +** parallax, light deflection and aberration parts of the astrometric +** transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) In cases where the caller wishes to supply his own Earth +** ephemeris, the function iauApcg can be used instead of the present +** function. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 5) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauEpv00 Earth position and velocity +** iauApcg astrometry parameters, ICRS-GCRS, geocenter +** +*/ + + + +void iauApci(double date1, double date2, + double ebpv[2][3], double ehp[3], + double x, double y, double s, + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p c i +** - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and geocentric CIRS +** coordinates. The Earth ephemeris and CIP/CIO are supplied by the +** caller. +** +** The parameters produced by this function are required in the +** parallax, light deflection, aberration, and bias-precession-nutation +** parts of the astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** ebpv double[2][3] Earth barycentric position/velocity (au, au/day) +** ehp double[3] Earth heliocentric position (au) +** x,y double CIP X,Y (components of unit vector) +** s double the CIO locator s (radians) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) In cases where the caller does not wish to provide the Earth +** ephemeris and CIP/CIO, the function iauApci13 can be used instead +** of the present function. This computes the required quantities +** using other SOFA functions. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 5) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauApcg astrometry parameters, ICRS-GCRS, geocenter +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** +*/ + + + +void iauApci13(double date1, double date2, + iauASTROM *astrom, double *eo) +/* +** - - - - - - - - - - +** i a u A p c i 1 3 +** - - - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and geocentric CIRS +** coordinates. The caller supplies the date, and SOFA models are used +** to predict the Earth ephemeris and CIP/CIO. +** +** The parameters produced by this function are required in the +** parallax, light deflection, aberration, and bias-precession-nutation +** parts of the astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** eo double* equation of the origins (ERA-GST, radians) +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) In cases where the caller wishes to supply his own Earth +** ephemeris and CIP/CIO, the function iauApci can be used instead +** of the present function. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 5) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauEpv00 Earth position and velocity +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauApci astrometry parameters, ICRS-CIRS +** iauEors equation of the origins, given NPB matrix and s +** +*/ + + + +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) +/* +** - - - - - - - - +** i a u A p c o +** - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and observed +** coordinates. The caller supplies the Earth ephemeris, the Earth +** rotation information and the refraction constants as well as the +** site coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** ebpv double[2][3] Earth barycentric PV (au, au/day, Note 2) +** ehp double[3] Earth heliocentric P (au, Note 2) +** x,y double CIP X,Y (components of unit vector) +** s double the CIO locator s (radians) +** theta double Earth rotation angle (radians) +** elong double longitude (radians, east +ve, Note 3) +** phi double latitude (geodetic, radians, Note 3) +** hm double height above ellipsoid (m, geodetic, Note 3) +** xp,yp double polar motion coordinates (radians, Note 4) +** sp double the TIO locator s' (radians, Note 4) +** refa double refraction constant A (radians, Note 5) +** refb double refraction constant B (radians, Note 5) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double adjusted longitude (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) The vectors eb, eh, and all the astrom vectors, are with respect +** to BCRS axes. +** +** 3) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN +** CONVENTION: the longitude required by the present function is +** right-handed, i.e. east-positive, in accordance with geographical +** convention. +** +** The adjusted longitude stored in the astrom array takes into +** account the TIO locator and polar motion. +** +** 4) xp and yp are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions), measured along the +** meridians 0 and 90 deg west respectively. sp is the TIO locator +** s', in radians, which positions the Terrestrial Intermediate +** Origin on the equator. For many applications, xp, yp and +** (especially) sp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto the +** local meridian. +** +** 5) The refraction constants refa and refb are for use in a +** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed +** (i.e. refracted) zenith distance and dZ is the amount of +** refraction. +** +** 6) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 7) In cases where the caller does not wish to provide the Earth +** Ephemeris, the Earth rotation information and refraction +** constants, the function iauApco13 can be used instead of the +** present function. This starts from UTC and weather readings etc. +** and computes suitable values using other SOFA functions. +** +** 8) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 9) The context structure astrom produced by this function is used by +** iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauRx rotate around X-axis +** iauAnpm normalize angle into range +/- pi +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** iauPvtob position/velocity of terrestrial station +** iauTrxpv product of transpose of r-matrix and pv-vector +** iauApcs astrometry parameters, ICRS-GCRS, space observer +** iauCr copy r-matrix +** +*/ + + + +int iauApco13(double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + iauASTROM *astrom, double *eo) +/* +** - - - - - - - - - - +** i a u A p c o 1 3 +** - - - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between ICRS and observed +** coordinates. The caller supplies UTC, site coordinates, ambient air +** conditions and observing wavelength, and SOFA models are used to +** obtain the Earth ephemeris, CIP/CIO and refraction constants. +** +** The parameters produced by this function are required in the +** parallax, light deflection, aberration, and bias-precession-nutation +** parts of the ICRS/CIRS transformations. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 1,2) +** dut1 double UT1-UTC (seconds, Note 3) +** elong double longitude (radians, east +ve, Note 4) +** phi double latitude (geodetic, radians, Note 4) +** hm double height above ellipsoid (m, geodetic, Notes 4,6) +** xp,yp double polar motion coordinates (radians, Note 5) +** phpa double pressure at the observer (hPa = mB, Note 6) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 7) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** eo double* equation of the origins (ERA-GST, radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 2) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 4) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 5) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto +** the local meridian. +** +** 6) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 7) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 8) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 9) In cases where the caller wishes to supply his own Earth +** ephemeris, Earth rotation information and refraction constants, +** the function iauApco can be used instead of the present function. +** +** 10) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 11) The context structure astrom produced by this function is used +** by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*. +** +** Called: +** iauUtctai UTC to TAI +** iauTaitt TAI to TT +** iauUtcut1 UTC to UT1 +** iauEpv00 Earth position and velocity +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauRefco refraction constants for given ambient conditions +** iauApco astrometry parameters, ICRS-observed +** iauEors equation of the origins, given NPB matrix and s +** +*/ + + + +void iauApcs(double date1, double date2, double pv[2][3], + double ebpv[2][3], double ehp[3], + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p c s +** - - - - - - - - +** +** For an observer whose geocentric position and velocity are known, +** prepare star-independent astrometry parameters for transformations +** between ICRS and GCRS. The Earth ephemeris is supplied by the +** caller. +** +** The parameters produced by this function are required in the space +** motion, parallax, light deflection and aberration parts of the +** astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** pv double[2][3] observer's geocentric pos/vel (m, m/s) +** ebpv double[2][3] Earth barycentric PV (au, au/day) +** ehp double[3] Earth heliocentric P (au) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) Providing separate arguments for (i) the observer's geocentric +** position and velocity and (ii) the Earth ephemeris is done for +** convenience in the geocentric, terrestrial and Earth orbit cases. +** For deep space applications it maybe more convenient to specify +** zero geocentric position and velocity and to supply the +** observer's position and velocity information directly instead of +** with respect to the Earth. However, note the different units: +** m and m/s for the geocentric vectors, au and au/day for the +** heliocentric and barycentric vectors. +** +** 4) In cases where the caller does not wish to provide the Earth +** ephemeris, the function iauApcs13 can be used instead of the +** present function. This computes the Earth ephemeris using the +** SOFA function iauEpv00. +** +** 5) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 6) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauCp copy p-vector +** iauPm modulus of p-vector +** iauPn decompose p-vector into modulus and direction +** iauIr initialize r-matrix to identity +** +*/ + + + +void iauApcs13(double date1, double date2, double pv[2][3], + iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p c s 1 3 +** - - - - - - - - - - +** +** For an observer whose geocentric position and velocity are known, +** prepare star-independent astrometry parameters for transformations +** between ICRS and GCRS. The Earth ephemeris is from SOFA models. +** +** The parameters produced by this function are required in the space +** motion, parallax, light deflection and aberration parts of the +** astrometric transformation chain. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** pv double[2][3] observer's geocentric pos/vel (Note 3) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double unchanged +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) All the vectors are with respect to BCRS axes. +** +** 3) The observer's position and velocity pv are geocentric but with +** respect to BCRS axes, and in units of m and m/s. No assumptions +** are made about proximity to the Earth, and the function can be +** used for deep space applications as well as Earth orbit and +** terrestrial. +** +** 4) In cases where the caller wishes to supply his own Earth +** ephemeris, the function iauApcs can be used instead of the present +** function. +** +** 5) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 6) The context structure astrom produced by this function is used by +** iauAtciq* and iauAticq*. +** +** Called: +** iauEpv00 Earth position and velocity +** iauApcs astrometry parameters, ICRS-GCRS, space observer +** +*/ + + + +void iauAper(double theta, iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p e r +** - - - - - - - - +** +** In the star-independent astrometry parameters, update only the +** Earth rotation angle, supplied by the caller explicitly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** theta double Earth rotation angle (radians, Note 2) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double not used +** eb double[3] not used +** eh double[3] not used +** em double not used +** v double[3] not used +** bm1 double not used +** bpn double[3][3] not used +** along double longitude + s' (radians) +** xpl double not used +** ypl double not used +** sphi double not used +** cphi double not used +** diurab double not used +** eral double not used +** refa double not used +** refb double not used +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double "local" Earth rotation angle (radians) +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) This function exists to enable sidereal-tracking applications to +** avoid wasteful recomputation of the bulk of the astrometry +** parameters: only the Earth rotation is updated. +** +** 2) For targets expressed as equinox based positions, such as +** classical geocentric apparent (RA,Dec), the supplied theta can be +** Greenwich apparent sidereal time rather than Earth rotation +** angle. +** +** 3) The function iauAper13 can be used instead of the present +** function, and starts from UT1 rather than ERA itself. +** +** 4) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +*/ + + + +void iauAper13(double ut11, double ut12, iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p e r 1 3 +** - - - - - - - - - - +** +** In the star-independent astrometry parameters, update only the +** Earth rotation angle. The caller provides UT1, (n.b. not UTC). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ut11 double UT1 as a 2-part... +** ut12 double ...Julian Date (Note 1) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double not used +** eb double[3] not used +** eh double[3] not used +** em double not used +** v double[3] not used +** bm1 double not used +** bpn double[3][3] not used +** along double longitude + s' (radians) +** xpl double not used +** ypl double not used +** sphi double not used +** cphi double not used +** diurab double not used +** eral double not used +** refa double not used +** refb double not used +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double unchanged +** xpl double unchanged +** ypl double unchanged +** sphi double unchanged +** cphi double unchanged +** diurab double unchanged +** eral double "local" Earth rotation angle (radians) +** refa double unchanged +** refb double unchanged +** +** Notes: +** +** 1) The UT1 date (n.b. not UTC) ut11+ut12 is a Julian Date, +** apportioned in any convenient way between the arguments ut11 and +** ut12. For example, JD(UT1)=2450123.7 could be expressed in any +** of these ways, among others: +** +** ut11 ut12 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. The date & time method is +** best matched to the algorithm used: maximum precision is +** delivered when the ut11 argument is for 0hrs UT1 on the day in +** question and the ut12 argument lies in the range 0 to 1, or vice +** versa. +** +** 2) If the caller wishes to provide the Earth rotation angle itself, +** the function iauAper can be used instead. One use of this +** technique is to substitute Greenwich apparent sidereal time and +** thereby to support equinox based transformations directly. +** +** 3) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** Called: +** iauAper astrometry parameters: update ERA +** iauEra00 Earth rotation angle, IAU 2000 +** +*/ + + + +void iauApio(double sp, double theta, + double elong, double phi, double hm, double xp, double yp, + double refa, double refb, + iauASTROM *astrom) +/* +** - - - - - - - - +** i a u A p i o +** - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between CIRS and observed +** coordinates. The caller supplies the Earth orientation information +** and the refraction constants as well as the site coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** sp double the TIO locator s' (radians, Note 1) +** theta double Earth rotation angle (radians) +** elong double longitude (radians, east +ve, Note 2) +** phi double geodetic latitude (radians, Note 2) +** hm double height above ellipsoid (m, geodetic Note 2) +** xp,yp double polar motion coordinates (radians, Note 3) +** refa double refraction constant A (radians, Note 4) +** refb double refraction constant B (radians, Note 4) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double adjusted longitude (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Notes: +** +** 1) sp, the TIO locator s', is a tiny quantity needed only by the +** most precise applications. It can either be set to zero or +** predicted using the SOFA function iauSp00. +** +** 2) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 3) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many applications, +** xp and yp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto the +** local meridian. +** +** 4) The refraction constants refa and refb are for use in a +** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed +** (i.e. refracted) zenith distance and dZ is the amount of +** refraction. +** +** 5) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 6) In cases where the caller does not wish to provide the Earth +** rotation information and refraction constants, the function +** iauApio13 can be used instead of the present function. This +** starts from UTC and weather readings etc. and computes suitable +** values using other SOFA functions. +** +** 7) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 8) The context structure astrom produced by this function is used by +** iauAtioq and iauAtoiq. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauRx rotate around X-axis +** iauAnpm normalize angle into range +/- pi +** iauPvtob position/velocity of terrestrial station +** +*/ + + + +int iauApio13(double utc1, double utc2, double dut1, + double elong, double phi, double hm, double xp, double yp, + double phpa, double tc, double rh, double wl, + iauASTROM *astrom) +/* +** - - - - - - - - - - +** i a u A p i o 1 3 +** - - - - - - - - - - +** +** For a terrestrial observer, prepare star-independent astrometry +** parameters for transformations between CIRS and observed +** coordinates. The caller supplies UTC, site coordinates, ambient air +** conditions and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 1,2) +** dut1 double UT1-UTC (seconds) +** elong double longitude (radians, east +ve, Note 3) +** phi double geodetic latitude (radians, Note 3) +** hm double height above ellipsoid (m, geodetic Notes 4,6) +** xp,yp double polar motion coordinates (radians, Note 5) +** phpa double pressure at the observer (hPa = mB, Note 6) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 7) +** +** Returned: +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double unchanged +** eb double[3] unchanged +** eh double[3] unchanged +** em double unchanged +** v double[3] unchanged +** bm1 double unchanged +** bpn double[3][3] unchanged +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 2) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 4) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 5) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many applications, +** xp and yp can be set to zero. +** +** Internally, the polar motion is stored in a form rotated onto +** the local meridian. +** +** 6) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to the +** pressure and that an accurate phpa value is important for +** precise work. +** +** 7) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 8) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 9) In cases where the caller wishes to supply his own Earth +** rotation information and refraction constants, the function +** iauApc can be used instead of the present function. +** +** 10) This is one of several functions that inserts into the astrom +** structure star-independent parameters needed for the chain of +** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. +** +** The various functions support different classes of observer and +** portions of the transformation chain: +** +** functions observer transformation +** +** iauApcg iauApcg13 geocentric ICRS <-> GCRS +** iauApci iauApci13 terrestrial ICRS <-> CIRS +** iauApco iauApco13 terrestrial ICRS <-> observed +** iauApcs iauApcs13 space ICRS <-> GCRS +** iauAper iauAper13 terrestrial update Earth rotation +** iauApio iauApio13 terrestrial CIRS <-> observed +** +** Those with names ending in "13" use contemporary SOFA models to +** compute the various ephemerides. The others accept ephemerides +** supplied by the caller. +** +** The transformation from ICRS to GCRS covers space motion, +** parallax, light deflection, and aberration. From GCRS to CIRS +** comprises frame bias and precession-nutation. From CIRS to +** observed takes account of Earth rotation, polar motion, diurnal +** aberration and parallax (unless subsumed into the ICRS <-> GCRS +** transformation), and atmospheric refraction. +** +** 11) The context structure astrom produced by this function is used +** by iauAtioq and iauAtoiq. +** +** Called: +** iauUtctai UTC to TAI +** iauTaitt TAI to TT +** iauUtcut1 UTC to UT1 +** iauSp00 the TIO locator s', IERS 2000 +** iauEra00 Earth rotation angle, IAU 2000 +** iauRefco refraction constants for given ambient conditions +** iauApio astrometry parameters, CIRS-observed +** +*/ + + + +void iauAtcc13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ra, double *da) +/* +** - - - - - - - - - - +** i a u A t c c 1 3 +** - - - - - - - - - - +** +** Transform a star's ICRS catalog entry (epoch J2000.0) into ICRS +** astrometric place. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc double ICRS right ascension at J2000.0 (radians, Note 1) +** dc double ICRS declination at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 3) +** +** Returned: +** ra,da double* ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** Called: +** iauApci13 astrometry parameters, ICRS-CIRS, 2013 +** iauAtccq quick catalog ICRS to astrometric +** +*/ + + + +void iauAtccq(double rc, double dc, + double pr, double pd, double px, double rv, + iauASTROM *astrom, double *ra, double *da) +/* +** - - - - - - - - - +** i a u A t c c q +** - - - - - - - - - +** +** Quick transformation of a star's ICRS catalog entry (epoch J2000.0) +** into ICRS astrometric place, given precomputed star-independent +** astrometry parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** If the parallax and proper motions are zero the transformation has +** no effect. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at J2000.0 (radians) +** pr double RA proper motion (radians/year, Note 3) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ra,da double* ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) All the vectors are with respect to BCRS axes. +** +** 2) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 3) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** Called: +** iauPmpx proper motion and parallax +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +*/ + + + +void iauAtci13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ri, double *di, double *eo) +/* +** - - - - - - - - - - +** i a u A t c i 1 3 +** - - - - - - - - - - +** +** Transform ICRS star data, epoch J2000.0, to CIRS. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc double ICRS right ascension at J2000.0 (radians, Note 1) +** dc double ICRS declination at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 3) +** +** Returned: +** ri,di double* CIRS geocentric RA,Dec (radians) +** eo double* equation of the origins (ERA-GST, radians, Note 5) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 4) The available accuracy is better than 1 milliarcsecond, limited +** mainly by the precession-nutation model that is used, namely +** IAU 2000A/2006. Very close to solar system bodies, additional +** errors of up to several milliarcseconds can occur because of +** unmodeled light deflection; however, the Sun's contribution is +** taken into account, to first order. The accuracy limitations of +** the SOFA function iauEpv00 (used to compute Earth position and +** velocity) can contribute aberration errors of up to +** 5 microarcseconds. Light deflection at the Sun's limb is +** uncertain at the 0.4 mas level. +** +** 5) Should the transformation to (equinox based) apparent place be +** required rather than (CIO based) intermediate place, subtract the +** equation of the origins from the returned right ascension: +** RA = RI - EO. (The iauAnp function can then be applied, as +** required, to keep the result in the conventional 0-2pi range.) +** +** Called: +** iauApci13 astrometry parameters, ICRS-CIRS, 2013 +** iauAtciq quick ICRS to CIRS +** +*/ + + + +void iauAtciq(double rc, double dc, + double pr, double pd, double px, double rv, + iauASTROM *astrom, double *ri, double *di) +/* +** - - - - - - - - - +** i a u A t c i q +** - - - - - - - - - +** +** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed +** star-independent astrometry parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** If the parallax and proper motions are zero the iauAtciqz function +** can be used instead. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ri,di double CIRS RA,Dec (radians) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** Called: +** iauPmpx proper motion and parallax +** iauLdsun light deflection by the Sun +** iauAb stellar aberration +** iauRxp product of r-matrix and pv-vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +*/ + + + +void iauAtciqn(double rc, double dc, double pr, double pd, + double px, double rv, iauASTROM *astrom, + int n, iauLDBODY b[], double *ri, double *di) +/* +** - - - - - - - - - - +** i a u A t c i q n +** - - - - - - - - - - +** +** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed +** star-independent astrometry parameters plus a list of light- +** deflecting bodies. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** +** If the only light-deflecting body to be taken into account is the +** Sun, the iauAtciq function can be used instead. If in addition the +** parallax and proper motions are zero, the iauAtciqz function can be +** used. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at J2000.0 (radians) +** pr double RA proper motion (radians/year, Note 3) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** n int number of bodies (Note 3) +** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): +** bm double mass of the body (solar masses, Note 5) +** dl double deflection limiter (Note 6) +** pv [2][3] barycentric PV of the body (au, au/day) +** +** Returned: +** ri,di double CIRS RA,Dec (radians) +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require a +** preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The struct b contains n entries, one for each body to be +** considered. If n = 0, no gravitational light deflection will be +** applied, not even for the Sun. +** +** 4) The struct b should include an entry for the Sun as well as for +** any planet or other body to be taken into account. The entries +** should be in the order in which the light passes the body. +** +** 5) In the entry in the b struct for body i, the mass parameter +** b[i].bm can, as required, be adjusted in order to allow for such +** effects as quadrupole field. +** +** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is +** the angular separation (in radians) between star and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. Example values suitable for a terrestrial +** observer, together with masses, are as follows: +** +** body i b[i].bm b[i].dl +** +** Sun 1.0 6e-6 +** Jupiter 0.00095435 3e-9 +** Saturn 0.00028574 3e-10 +** +** 7) For efficiency, validation of the contents of the b array is +** omitted. The supplied masses must be greater than zero, the +** position and velocity vectors must be right, and the deflection +** limiter greater than zero. +** +** Called: +** iauPmpx proper motion and parallax +** iauLdn light deflection by n bodies +** iauAb stellar aberration +** iauRxp product of r-matrix and pv-vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +*/ + + + +void iauAtciqz(double rc, double dc, iauASTROM *astrom, + double *ri, double *di) +/* +** - - - - - - - - - - +** i a u A t c i q z +** - - - - - - - - - - +** +** Quick ICRS to CIRS transformation, given precomputed star- +** independent astrometry parameters, and assuming zero parallax and +** proper motion. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are to be transformed for one date. The +** star-independent parameters can be obtained by calling one of the +** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13]. +** +** The corresponding function for the case of non-zero parallax and +** proper motion is iauAtciq. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS astrometric RA,Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ri,di double CIRS RA,Dec (radians) +** +** Note: +** +** All the vectors are with respect to BCRS axes. +** +** References: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013). +** +** Klioner, Sergei A., "A practical relativistic model for micro- +** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLdsun light deflection due to Sun +** iauAb stellar aberration +** iauRxp product of r-matrix and p-vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range +/- pi +** +*/ + + + +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 tc, double rh, double wl, + double *aob, double *zob, double *hob, + double *dob, double *rob, double *eo) +/* +** - - - - - - - - - - +** i a u A t c o 1 3 +** - - - - - - - - - - +** +** ICRS RA,Dec to observed place. The caller supplies UTC, site +** coordinates, ambient air conditions and observing wavelength. +** +** SOFA models are used for the Earth ephemeris, bias-precession- +** nutation, Earth orientation and refraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS right ascension at J2000.0 (radians, Note 1) +** pr double RA proper motion (radians/year, Note 2) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 3-4) +** dut1 double UT1-UTC (seconds, Note 5) +** elong double longitude (radians, east +ve, Note 6) +** phi double latitude (geodetic, radians, Note 6) +** hm double height above ellipsoid (m, geodetic, Notes 6,8) +** xp,yp double polar motion coordinates (radians, Note 7) +** phpa double pressure at the observer (hPa = mB, Note 8) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 9) +** +** Returned: +** aob double* observed azimuth (radians: N=0,E=90) +** zob double* observed zenith distance (radians) +** hob double* observed hour angle (radians) +** dob double* observed declination (radians) +** rob double* observed right ascension (CIO-based, radians) +** eo double* equation of the origins (ERA-GST, radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 4) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) Star data for an epoch other than J2000.0 (for example from the +** Hipparcos catalog, which has an epoch of J1991.25) will require +** a preliminary call to iauPmsafe before use. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 6) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 7) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 8) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), +** is available, an adequate estimate of hm can be obtained from +** the expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 9) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 10) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted observed +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtco13 and +** iauAtoc13 are self-consistent to better than 1 microarcsecond +** all over the celestial sphere. With refraction included, +** consistency falls off at high zenith distances, but is still +** better than 0.05 arcsec at 85 degrees. +** +** 11) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and RA are related simply through the Earth rotation +** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus +** means the position that would be seen by a perfect equatorial +** with its polar axis aligned to the Earth's axis of rotation. +** +** 12) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApco13 astrometry parameters, ICRS-observed, 2013 +** iauAtciq quick ICRS to CIRS +** iauAtioq quick CIRS to observed +** +*/ + + + +void iauAtic13(double ri, double di, double date1, double date2, + double *rc, double *dc, double *eo) +/* +** - - - - - - - - - - +** i a u A t i c 1 3 +** - - - - - - - - - - +** +** Transform star RA,Dec from geocentric CIRS to ICRS astrometric. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri,di double CIRS geocentric RA,Dec (radians) +** date1 double TDB as a 2-part... +** date2 double ...Julian Date (Note 1) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** eo double equation of the origins (ERA-GST, radians, Note 4) +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. For most +** applications of this function the choice will not be at all +** critical. +** +** TT can be used instead of TDB without any significant impact on +** accuracy. +** +** 2) Iterative techniques are used for the aberration and light +** deflection corrections so that the functions iauAtic13 (or +** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; +** even at the edge of the Sun's disk the discrepancy is only about +** 1 nanoarcsecond. +** +** 3) The available accuracy is better than 1 milliarcsecond, limited +** mainly by the precession-nutation model that is used, namely +** IAU 2000A/2006. Very close to solar system bodies, additional +** errors of up to several milliarcseconds can occur because of +** unmodeled light deflection; however, the Sun's contribution is +** taken into account, to first order. The accuracy limitations of +** the SOFA function iauEpv00 (used to compute Earth position and +** velocity) can contribute aberration errors of up to +** 5 microarcseconds. Light deflection at the Sun's limb is +** uncertain at the 0.4 mas level. +** +** 4) Should the transformation to (equinox based) J2000.0 mean place +** be required rather than (CIO based) ICRS coordinates, subtract the +** equation of the origins from the returned right ascension: +** RA = RI - EO. (The iauAnp function can then be applied, as +** required, to keep the result in the conventional 0-2pi range.) +** +** Called: +** iauApci13 astrometry parameters, ICRS-CIRS, 2013 +** iauAticq quick CIRS to ICRS astrometric +** +*/ + + + +void iauAticq(double ri, double di, iauASTROM *astrom, + double *rc, double *dc) +/* +** - - - - - - - - - +** i a u A t i c q +** - - - - - - - - - +** +** Quick CIRS RA,Dec to ICRS astrometric place, given the star- +** independent astrometry parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] +** or iauApcs[13]. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri,di double CIRS RA,Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) Only the Sun is taken into account in the light deflection +** correction. +** +** 2) Iterative techniques are used for the aberration and light +** deflection corrections so that the functions iauAtic13 (or +** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; +** even at the edge of the Sun's disk the discrepancy is only about +** 1 nanoarcsecond. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauZp zero p-vector +** iauAb stellar aberration +** iauLdsun light deflection by the Sun +** iauC2s p-vector to spherical +** iauAnp normalize angle into range +/- pi +** +*/ + + + +void iauAticqn(double ri, double di, iauASTROM *astrom, + int n, iauLDBODY b[], double *rc, double *dc) +/* +** - - - - - - - - - - +** i a u A t i c q n +** - - - - - - - - - - +** +** Quick CIRS to ICRS astrometric place transformation, given the star- +** independent astrometry parameters plus a list of light-deflecting +** bodies. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling one of the functions iauApci[13], iauApcg[13], iauApco[13] +** or iauApcs[13]. +* +* If the only light-deflecting body to be taken into account is the +* Sun, the iauAticq function can be used instead. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri,di double CIRS RA,Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** n int number of bodies (Note 3) +** b iauLDBODY[n] data for each of the n bodies (Notes 3,4): +** bm double mass of the body (solar masses, Note 5) +** dl double deflection limiter (Note 6) +** pv [2][3] barycentric PV of the body (au, au/day) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** +** Notes: +** +** 1) Iterative techniques are used for the aberration and light +** deflection corrections so that the functions iauAticqn and +** iauAtciqn are accurate inverses; even at the edge of the Sun's +** disk the discrepancy is only about 1 nanoarcsecond. +** +** 2) If the only light-deflecting body to be taken into account is the +** Sun, the iauAticq function can be used instead. +** +** 3) The struct b contains n entries, one for each body to be +** considered. If n = 0, no gravitational light deflection will be +** applied, not even for the Sun. +** +** 4) The struct b should include an entry for the Sun as well as for +** any planet or other body to be taken into account. The entries +** should be in the order in which the light passes the body. +** +** 5) In the entry in the b struct for body i, the mass parameter +** b[i].bm can, as required, be adjusted in order to allow for such +** effects as quadrupole field. +** +** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is +** the angular separation (in radians) between star and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. Example values suitable for a terrestrial +** observer, together with masses, are as follows: +** +** body i b[i].bm b[i].dl +** +** Sun 1.0 6e-6 +** Jupiter 0.00095435 3e-9 +** Saturn 0.00028574 3e-10 +** +** 7) For efficiency, validation of the contents of the b array is +** omitted. The supplied masses must be greater than zero, the +** position and velocity vectors must be right, and the deflection +** limiter greater than zero. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauZp zero p-vector +** iauAb stellar aberration +** iauLdn light deflection by n bodies +** iauC2s p-vector to spherical +** iauAnp normalize angle into range +/- pi +** +*/ + + + +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 tc, double rh, double wl, + double *aob, double *zob, double *hob, + double *dob, double *rob) +/* +** - - - - - - - - - - +** i a u A t i o 1 3 +** - - - - - - - - - - +** +** CIRS RA,Dec to observed place. The caller supplies UTC, site +** coordinates, ambient air conditions and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri double CIRS right ascension (CIO-based, radians) +** di double CIRS declination (radians) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 1,2) +** dut1 double UT1-UTC (seconds, Note 3) +** elong double longitude (radians, east +ve, Note 4) +** phi double geodetic latitude (radians, Note 4) +** hm double height above ellipsoid (m, geodetic Notes 4,6) +** xp,yp double polar motion coordinates (radians, Note 5) +** phpa double pressure at the observer (hPa = mB, Note 6) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 7) +** +** Returned: +** aob double* observed azimuth (radians: N=0,E=90) +** zob double* observed zenith distance (radians) +** hob double* observed hour angle (radians) +** dob double* observed declination (radians) +** rob double* observed right ascension (CIO-based, radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 2) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 4) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 5) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 6) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 7) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 8) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and RA are related simply through the Earth rotation +** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus +** means the position that would be seen by a perfect equatorial +** with its polar axis aligned to the Earth's axis of rotation. +** +** 9) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted astrometric +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** 10) The complementary functions iauAtio13 and iauAtoi13 are self- +** consistent to better than 1 microarcsecond all over the +** celestial sphere. +** +** 11) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApio13 astrometry parameters, CIRS-observed, 2013 +** iauAtioq quick CIRS to observed +** +*/ + + + +void iauAtioq(double ri, double di, iauASTROM *astrom, + double *aob, double *zob, + double *hob, double *dob, double *rob) +/* +** - - - - - - - - - +** i a u A t i o q +** - - - - - - - - - +** +** Quick CIRS to observed place transformation. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling iauApio[13] or iauApco[13]. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ri double CIRS right ascension +** di double CIRS declination +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** aob double* observed azimuth (radians: N=0,E=90) +** zob double* observed zenith distance (radians) +** hob double* observed hour angle (radians) +** dob double* observed declination (radians) +** rob double* observed right ascension (CIO-based, radians) +** +** Notes: +** +** 1) This function returns zenith distance rather than altitude in +** order to reflect the fact that no allowance is made for +** depression of the horizon. +** +** 2) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted observed +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtioq and +** iauAtoiq are self-consistent to better than 1 microarcsecond all +** over the celestial sphere. With refraction included, consistency +** falls off at high zenith distances, but is still better than +** 0.05 arcsec at 85 degrees. +** +** 3) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** 4) The CIRS RA,Dec is obtained from a star catalog mean place by +** allowing for space motion, parallax, the Sun's gravitational lens +** effect, annual aberration and precession-nutation. For star +** positions in the ICRS, these effects can be applied by means of +** the iauAtci13 (etc.) functions. Starting from classical "mean +** place" systems, additional transformations will be needed first. +** +** 5) "Observed" Az,El means the position that would be seen by a +** perfect geodetically aligned theodolite. This is obtained from +** the CIRS RA,Dec by allowing for Earth orientation and diurnal +** aberration, rotating from equator to horizon coordinates, and +** then adjusting for refraction. The HA,Dec is obtained by +** rotating back into equatorial coordinates, and is the position +** that would be seen by a perfect equatorial with its polar axis +** aligned to the Earth's axis of rotation. Finally, the +** (CIO-based) RA is obtained by subtracting the HA from the local +** ERA. +** +** 6) The star-independent CIRS-to-observed-place parameters in ASTROM +** may be computed with iauApio[13] or iauApco[13]. If nothing has +** changed significantly except the time, iauAper[13] may be used to +** perform the requisite adjustment to the astrom structure. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +*/ + + + +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 tc, double rh, double wl, + double *rc, double *dc) +/* +** - - - - - - - - - - +** i a u A t o c 1 3 +** - - - - - - - - - - +** +** Observed place at a groundbased site to to ICRS astrometric RA,Dec. +** The caller supplies UTC, site coordinates, ambient air conditions +** and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) +** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) +** ob2 double observed ZD or Dec (radians) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 3,4) +** dut1 double UT1-UTC (seconds, Note 5) +** elong double longitude (radians, east +ve, Note 6) +** phi double geodetic latitude (radians, Note 6) +** hm double height above ellipsoid (m, geodetic Notes 6,8) +** xp,yp double polar motion coordinates (radians, Note 7) +** phpa double pressure at the observer (hPa = mB, Note 8) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 9) +** +** Returned: +** rc,dc double ICRS astrometric RA,Dec (radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 4) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and (CIO-based) RA are related simply through the +** Earth rotation angle and the site longitude. "Observed" RA,Dec +** or HA,Dec thus means the position that would be seen by a +** perfect equatorial with its polar axis aligned to the Earth's +** axis of rotation. +** +** 2) Only the first character of the type argument is significant. +** "R" or "r" indicates that ob1 and ob2 are the observed right +** ascension (CIO-based) and declination; "H" or "h" indicates +** that they are hour angle (west +ve) and declination; anything +** else ("A" or "a" is recommended) indicates that ob1 and ob2 are +** azimuth (north zero, east 90 deg) and zenith distance. +** +** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 6) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 7) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 8) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 9) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 10) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted astrometric +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtco13 and +** iauAtoc13 are self-consistent to better than 1 microarcsecond +** all over the celestial sphere. With refraction included, +** consistency falls off at high zenith distances, but is still +** better than 0.05 arcsec at 85 degrees. +** +** 11) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApco13 astrometry parameters, ICRS-observed +** iauAtoiq quick observed to CIRS +** iauAticq quick CIRS to ICRS +** +*/ + + + +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 tc, double rh, double wl, + double *ri, double *di) +/* +** - - - - - - - - - - +** i a u A t o i 1 3 +** - - - - - - - - - - +** +** Observed place to CIRS. The caller supplies UTC, site coordinates, +** ambient air conditions and observing wavelength. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2) +** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) +** ob2 double observed ZD or Dec (radians) +** utc1 double UTC as a 2-part... +** utc2 double ...quasi Julian Date (Notes 3,4) +** dut1 double UT1-UTC (seconds, Note 5) +** elong double longitude (radians, east +ve, Note 6) +** phi double geodetic latitude (radians, Note 6) +** hm double height above the ellipsoid (meters, Notes 6,8) +** xp,yp double polar motion coordinates (radians, Note 7) +** phpa double pressure at the observer (hPa = mB, Note 8) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers, Note 9) +** +** Returned: +** ri double* CIRS right ascension (CIO-based, radians) +** di double* CIRS declination (radians) +** +** Returned (function value): +** int status: +1 = dubious year (Note 2) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. (Zenith distance is +** used rather than altitude in order to reflect the fact that no +** allowance is made for depression of the horizon.) This is +** related to the observed HA,Dec via the standard rotation, using +** the geodetic latitude (corrected for polar motion), while the +** observed HA and (CIO-based) RA are related simply through the +** Earth rotation angle and the site longitude. "Observed" RA,Dec +** or HA,Dec thus means the position that would be seen by a +** perfect equatorial with its polar axis aligned to the Earth's +** axis of rotation. +** +** 2) Only the first character of the type argument is significant. +** "R" or "r" indicates that ob1 and ob2 are the observed right +** ascension and declination; "H" or "h" indicates that they are +** hour angle (west +ve) and declination; anything else ("A" or +** "a" is recommended) indicates that ob1 and ob2 are azimuth +** (north zero, east 90 deg) and zenith distance. +** +** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** However, JD cannot unambiguously represent UTC during a leap +** second unless special measures are taken. The convention in the +** present function is that the JD day represents UTC days whether +** the length is 86399, 86400 or 86401 SI seconds. +** +** Applications should use the function iauDtf2d to convert from +** calendar date and time of day into 2-part quasi Julian Date, as +** it implements the leap-second-ambiguity convention just +** described. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the +** future to be trusted. See iauDat for further details. +** +** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly +** one second at the end of each positive UTC leap second, +** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This +** practice is under review, and in the future UT1-UTC may grow +** essentially without limit. +** +** 6) The geographical coordinates are with respect to the WGS84 +** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the +** longitude required by the present function is east-positive +** (i.e. right-handed), in accordance with geographical convention. +** +** 7) The polar motion xp,yp can be obtained from IERS bulletins. The +** values are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions 2003), measured along the +** meridians 0 and 90 deg west respectively. For many +** applications, xp and yp can be set to zero. +** +** 8) If hm, the height above the ellipsoid of the observing station +** in meters, is not known but phpa, the pressure in hPa (=mB), is +** available, an adequate estimate of hm can be obtained from the +** expression +** +** hm = -29.3 * tsl * log ( phpa / 1013.25 ); +** +** where tsl is the approximate sea-level air temperature in K +** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section +** 52). Similarly, if the pressure phpa is not known, it can be +** estimated from the height of the observing station, hm, as +** follows: +** +** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) ); +** +** Note, however, that the refraction is nearly proportional to +** the pressure and that an accurate phpa value is important for +** precise work. +** +** 9) The argument wl specifies the observing wavelength in +** micrometers. The transition from optical to radio is assumed to +** occur at 100 micrometers (about 3000 GHz). +** +** 10) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted astrometric +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better +** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtio13 and +** iauAtoi13 are self-consistent to better than 1 microarcsecond +** all over the celestial sphere. With refraction included, +** consistency falls off at high zenith distances, but is still +** better than 0.05 arcsec at 85 degrees. +** +** 12) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauApio13 astrometry parameters, CIRS-observed, 2013 +** iauAtoiq quick observed to CIRS +** +*/ + + + +void iauAtoiq(const char *type, + double ob1, double ob2, iauASTROM *astrom, + double *ri, double *di) +/* +** - - - - - - - - - +** i a u A t o i q +** - - - - - - - - - +** +** Quick observed place to CIRS, given the star-independent astrometry +** parameters. +** +** Use of this function is appropriate when efficiency is important and +** where many star positions are all to be transformed for one date. +** The star-independent astrometry parameters can be obtained by +** calling iauApio[13] or iauApco[13]. +** +** Status: support function. +** +** Given: +** type char[] type of coordinates: "R", "H" or "A" (Note 1) +** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90) +** ob2 double observed ZD or Dec (radians) +** astrom iauASTROM* star-independent astrometry parameters: +** pmt double PM time interval (SSB, Julian years) +** eb double[3] SSB to observer (vector, au) +** eh double[3] Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** v double[3] barycentric observer velocity (vector, c) +** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor +** bpn double[3][3] bias-precession-nutation matrix +** along double longitude + s' (radians) +** xpl double polar motion xp wrt local meridian (radians) +** ypl double polar motion yp wrt local meridian (radians) +** sphi double sine of geodetic latitude +** cphi double cosine of geodetic latitude +** diurab double magnitude of diurnal aberration vector +** eral double "local" Earth rotation angle (radians) +** refa double refraction constant A (radians) +** refb double refraction constant B (radians) +** +** Returned: +** ri double* CIRS right ascension (CIO-based, radians) +** di double* CIRS declination (radians) +** +** Notes: +** +** 1) "Observed" Az,ZD means the position that would be seen by a +** perfect geodetically aligned theodolite. This is related to +** the observed HA,Dec via the standard rotation, using the geodetic +** latitude (corrected for polar motion), while the observed HA and +** (CIO-based) RA are related simply through the Earth rotation +** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus +** means the position that would be seen by a perfect equatorial +** with its polar axis aligned to the Earth's axis of rotation. +** +** 2) Only the first character of the type argument is significant. +** "R" or "r" indicates that ob1 and ob2 are the observed right +** ascension (CIO-based) and declination; "H" or "h" indicates that +** they are hour angle (west +ve) and declination; anything else +** ("A" or "a" is recommended) indicates that ob1 and ob2 are +** azimuth (north zero, east 90 deg) and zenith distance. (Zenith +** distance is used rather than altitude in order to reflect the +** fact that no allowance is made for depression of the horizon.) +** +** 3) The accuracy of the result is limited by the corrections for +** refraction, which use a simple A*tan(z) + B*tan^3(z) model. +** Providing the meteorological parameters are known accurately and +** there are no gross local effects, the predicted intermediate +** coordinates should be within 0.05 arcsec (optical) or 1 arcsec +** (radio) for a zenith distance of less than 70 degrees, better +** than 30 arcsec (optical or radio) at 85 degrees and better than +** 20 arcmin (optical) or 25 arcmin (radio) at the horizon. +** +** Without refraction, the complementary functions iauAtioq and +** iauAtoiq are self-consistent to better than 1 microarcsecond all +** over the celestial sphere. With refraction included, consistency +** falls off at high zenith distances, but is still better than +** 0.05 arcsec at 85 degrees. +** +** 4) It is advisable to take great care with units, as even unlikely +** values of the input parameters are accepted and processed in +** accordance with the models used. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +*/ + + + +void iauBi00(double *dpsibi, double *depsbi, double *dra) +/* +** - - - - - - - - +** i a u B i 0 0 +** - - - - - - - - +** +** Frame bias components of IAU 2000 precession-nutation models; part +** of the Mathews-Herring-Buffett (MHB2000) nutation series, with +** additions. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Returned: +** dpsibi,depsbi double longitude and obliquity corrections +** dra double the ICRS RA of the J2000.0 mean equinox +** +** Notes: +** +** 1) The frame bias corrections in longitude and obliquity (radians) +** are required in order to correct for the offset between the GCRS +** pole and the mean J2000.0 pole. They define, with respect to the +** GCRS frame, a J2000.0 mean pole that is consistent with the rest +** of the IAU 2000A precession-nutation model. +** +** 2) In addition to the displacement of the pole, the complete +** description of the frame bias requires also an offset in right +** ascension. This is not part of the IAU 2000A model, and is from +** Chapront et al. (2002). It is returned in radians. +** +** 3) This is a supplemented implementation of one aspect of the IAU +** 2000A nutation model, formally adopted by the IAU General +** Assembly in 2000, namely MHB2000 (Mathews et al. 2002). +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G., Astron. +** Astrophys., 387, 700, 2002. +** +** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation +** and precession: New nutation series for nonrigid Earth and +** insights into the Earth's interior", J.Geophys.Res., 107, B4, +** 2002. The MHB2000 code itself was obtained on 2002 September 9 +** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +*/ + + + +void iauBp00(double date1, double date2, + double rb[3][3], double rp[3][3], double rbp[3][3]) +/* +** - - - - - - - - +** i a u B p 0 0 +** - - - - - - - - +** +** Frame bias and precession, IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rb double[3][3] frame bias matrix (Note 2) +** rp double[3][3] precession matrix (Note 3) +** rbp double[3][3] bias-precession matrix (Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by +** applying frame bias. +** +** 3) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 4) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 5) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the order given. +** +** Called: +** iauBi00 frame bias components, IAU 2000 +** iauPr00 IAU 2000 precession adjustments +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRy rotate around Y-axis +** iauRz rotate around Z-axis +** iauCr copy r-matrix +** iauRxr product of two r-matrices +** +** Reference: +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +*/ + + + +void iauBp06(double date1, double date2, + double rb[3][3], double rp[3][3], double rbp[3][3]) +/* +** - - - - - - - - +** i a u B p 0 6 +** - - - - - - - - +** +** Frame bias and precession, IAU 2006. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rb double[3][3] frame bias matrix (Note 2) +** rp double[3][3] precession matrix (Note 3) +** rbp double[3][3] bias-precession matrix (Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by +** applying frame bias. +** +** 3) The matrix rp transforms vectors from mean J2000.0 to mean of +** date by applying precession. +** +** 4) The matrix rbp transforms vectors from GCRS to mean of date by +** applying frame bias then precession. It is the product rp x rb. +** +** 5) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the order given. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** iauPmat06 PB matrix, IAU 2006 +** iauTr transpose r-matrix +** iauRxr product of two r-matrices +** iauCr copy r-matrix +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +void iauBpn2xy(double rbpn[3][3], double *x, double *y) +/* +** - - - - - - - - - - +** i a u B p n 2 x y +** - - - - - - - - - - +** +** Extract from the bias-precession-nutation matrix the X,Y coordinates +** of the Celestial Intermediate Pole. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rbpn double[3][3] celestial-to-true matrix (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** +** Notes: +** +** 1) The matrix rbpn transforms vectors from GCRS to true equator (and +** CIO or equinox) of date, and therefore the Celestial Intermediate +** Pole unit vector is the bottom row of the matrix. +** +** 2) The arguments x,y are components of the Celestial Intermediate +** Pole unit vector in the Geocentric Celestial Reference System. +** +** Reference: +** +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 +** (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +*/ + + + +void iauC2i00a(double date1, double date2, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i 0 0 a +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date using the +** IAU 2000A precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 3) A faster, but slightly less accurate, result (about 1 mas) can be +** obtained by using instead the iauC2i00b function. +** +** Called: +** iauPnm00a classical NPB matrix, IAU 2000A +** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix +** +** References: +** +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 +** (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2i00b(double date1, double date2, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i 0 0 b +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date using the +** IAU 2000B precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauC2i00a function. +** +** Called: +** iauPnm00b classical NPB matrix, IAU 2000B +** iauC2ibpn celestial-to-intermediate matrix, given NPB matrix +** +** References: +** +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 +** (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2i06a(double date1, double date2, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i 0 6 a +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date using the +** IAU 2006 precession and IAU 2000A nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +*/ + + + +void iauC2ibpn(double date1, double date2, double rbpn[3][3], + double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i b p n +** - - - - - - - - - - +** +** Form the celestial-to-intermediate matrix for a given date given +** the bias-precession-nutation matrix. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** rbpn double[3][3] celestial-to-true matrix (Note 2) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix rbpn transforms vectors from GCRS to true equator (and +** CIO or equinox) of date. Only the CIP (bottom row) is used. +** +** 3) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 4) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauC2ixy celestial-to-intermediate matrix, given X,Y +** +** References: +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2ixy(double date1, double date2, double x, double y, + double rc2i[3][3]) +/* +** - - - - - - - - - +** i a u C 2 i x y +** - - - - - - - - - +** +** Form the celestial to intermediate-frame-of-date matrix for a given +** date when the CIP X,Y coordinates are known. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** x,y double Celestial Intermediate Pole (Note 2) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y components +** of the unit vector in the Geocentric Celestial Reference System. +** +** 3) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 4) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauC2ixys celestial-to-intermediate matrix, given X,Y and s +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2ixys(double x, double y, double s, double rc2i[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 i x y s +** - - - - - - - - - - +** +** Form the celestial to intermediate-frame-of-date matrix given the CIP +** X,Y and the CIO locator s. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** x,y double Celestial Intermediate Pole (Note 1) +** s double the CIO locator s (Note 2) +** +** Returned: +** rc2i double[3][3] celestial-to-intermediate matrix (Note 3) +** +** Notes: +** +** 1) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 2) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 3) The matrix rc2i is the first stage in the transformation from +** celestial to terrestrial coordinates: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = RC2T * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2s(double p[3], double *theta, double *phi) +/* +** - - - - - - - +** i a u C 2 s +** - - - - - - - +** +** P-vector to spherical coordinates. +** +** 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: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** +** Notes: +** +** 1) The vector p can have any magnitude; only its direction is used. +** +** 2) If p is null, zero theta and phi are returned. +** +** 3) At either pole, zero theta is returned. +** +*/ + + + +void iauC2t00a(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t 0 0 a +** - - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1 and +** the polar motion, using the IAU 2000A precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** xp,yp double CIP coordinates (radians, Note 2) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 3) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RC2I is the +** celestial-to-intermediate matrix, ERA is the Earth rotation +** angle and RPOM is the polar motion matrix. +** +** 4) A faster, but slightly less accurate, result (about 1 mas) can +** be obtained by using instead the iauC2t00b function. +** +** Called: +** iauC2i00a celestial-to-intermediate matrix, IAU 2000A +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2t00b(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t 0 0 b +** - - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1 and +** the polar motion, using the IAU 2000B precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** xp,yp double coordinates of the pole (radians, Note 2) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 3) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RC2I is the +** celestial-to-intermediate matrix, ERA is the Earth rotation +** angle and RPOM is the polar motion matrix. +** +** 4) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauC2t00a function. +** +** Called: +** iauC2i00b celestial-to-intermediate matrix, IAU 2000B +** iauEra00 Earth rotation angle, IAU 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2t06a(double tta, double ttb, double uta, double utb, + double xp, double yp, double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t 0 6 a +** - - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1 and +** the polar motion, using the IAU 2006/2000A precession-nutation +** model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** xp,yp double coordinates of the pole (radians, Note 2) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the two arguments. For +** example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 3) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RC2I is the +** celestial-to-intermediate matrix, ERA is the Earth rotation +** angle and RPOM is the polar motion matrix. +** +** Called: +** iauC2i06a celestial-to-intermediate matrix, IAU 2006/2000A +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +*/ + + + +void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3], + double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t c i o +** - - - - - - - - - - +** +** Assemble the celestial to terrestrial matrix from CIO-based +** components (the celestial-to-intermediate matrix, the Earth Rotation +** Angle and the polar motion matrix). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc2i double[3][3] celestial-to-intermediate matrix +** era double Earth rotation angle (radians) +** rpom double[3][3] polar-motion matrix +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix +** +** Notes: +** +** 1) This function constructs the rotation matrix that transforms +** vectors in the celestial system into vectors in the terrestrial +** system. It does so starting from precomputed components, namely +** the matrix which rotates from celestial coordinates to the +** intermediate frame, the Earth rotation angle and the polar motion +** matrix. One use of the present function is when generating a +** series of celestial-to-terrestrial matrices where only the Earth +** Rotation Angle changes, avoiding the considerable overhead of +** recomputing the precession-nutation more often than necessary to +** achieve given accuracy objectives. +** +** 2) The relationship between the arguments is as follows: +** +** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003). +** +** Called: +** iauCr copy r-matrix +** iauRz rotate around Z-axis +** iauRxr product of two r-matrices +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +*/ + + + +void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3], + double rc2t[3][3]) +/* +** - - - - - - - - - - +** i a u C 2 t e q x +** - - - - - - - - - - +** +** Assemble the celestial to terrestrial matrix from equinox-based +** components (the celestial-to-true matrix, the Greenwich Apparent +** Sidereal Time and the polar motion matrix). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rbpn double[3][3] celestial-to-true matrix +** gst double Greenwich (apparent) Sidereal Time (radians) +** rpom double[3][3] polar-motion matrix +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 2) +** +** Notes: +** +** 1) This function constructs the rotation matrix that transforms +** vectors in the celestial system into vectors in the terrestrial +** system. It does so starting from precomputed components, namely +** the matrix which rotates from celestial coordinates to the +** true equator and equinox of date, the Greenwich Apparent Sidereal +** Time and the polar motion matrix. One use of the present function +** is when generating a series of celestial-to-terrestrial matrices +** where only the Sidereal Time changes, avoiding the considerable +** overhead of recomputing the precession-nutation more often than +** necessary to achieve given accuracy objectives. +** +** 2) The relationship between the arguments is as follows: +** +** [TRS] = rpom * R_3(gst) * rbpn * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003). +** +** Called: +** iauCr copy r-matrix +** iauRz rotate around Z-axis +** iauRxr product of two r-matrices +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2tpe(double tta, double ttb, double uta, double utb, + double dpsi, double deps, double xp, double yp, + double rc2t[3][3]) +/* +** - - - - - - - - - +** i a u C 2 t p e +** - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1, +** the nutation and the polar motion. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** dpsi,deps double nutation (Note 2) +** xp,yp double coordinates of the pole (radians, Note 3) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any of +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. For high-accuracy +** applications, free core nutation should be included as well as +** any other relevant corrections to the position of the CIP. +** +** 3) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 4) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(GST) * RBPN * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), RBPN is the +** bias-precession-nutation matrix, GST is the Greenwich (apparent) +** Sidereal Time and RPOM is the polar motion matrix. +** +** 5) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauPn00 bias/precession/nutation results, IAU 2000 +** iauGmst00 Greenwich mean sidereal time, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauEe00 equation of the equinoxes, IAU 2000 +** iauPom00 polar motion matrix +** iauC2teqx form equinox-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauC2txy(double tta, double ttb, double uta, double utb, + double x, double y, double xp, double yp, + double rc2t[3][3]) +/* +** - - - - - - - - - +** i a u C 2 t x y +** - - - - - - - - - +** +** Form the celestial to terrestrial matrix given the date, the UT1, +** the CIP coordinates and the polar motion. IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** tta,ttb double TT as a 2-part Julian Date (Note 1) +** uta,utb double UT1 as a 2-part Julian Date (Note 1) +** x,y double Celestial Intermediate Pole (Note 2) +** xp,yp double coordinates of the pole (radians, Note 3) +** +** Returned: +** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4) +** +** Notes: +** +** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, +** apportioned in any convenient way between the arguments uta and +** utb. For example, JD(UT1)=2450123.7 could be expressed in any o +** these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. In the case of uta,utb, the +** date & time method is best matched to the Earth rotation angle +** algorithm used: maximum precision is delivered when the uta +** argument is for 0hrs UT1 on the day in question and the utb +** argument lies in the range 0 to 1, or vice versa. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 3) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 4) The matrix rc2t transforms from celestial to terrestrial +** coordinates: +** +** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS] +** +** = rc2t * [CRS] +** +** where [CRS] is a vector in the Geocentric Celestial Reference +** System and [TRS] is a vector in the International Terrestrial +** Reference System (see IERS Conventions 2003), ERA is the Earth +** Rotation Angle and RPOM is the polar motion matrix. +** +** 5) Although its name does not include "00", This function is in fact +** specific to the IAU 2000 models. +** +** Called: +** iauC2ixy celestial-to-intermediate matrix, given X,Y +** iauEra00 Earth rotation angle, IAU 2000 +** iauSp00 the TIO locator s', IERS 2000 +** iauPom00 polar motion matrix +** iauC2tcio form CIO-based celestial-to-terrestrial matrix +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +int iauCal2jd(int iy, int im, int id, double *djm0, double *djm) +/* +** - - - - - - - - - - +** i a u C a l 2 j d +** - - - - - - - - - - +** +** Gregorian Calendar to Julian Date. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** iy,im,id int year, month, day in Gregorian calendar (Note 1) +** +** Returned: +** djm0 double MJD zero-point: always 2400000.5 +** djm double Modified Julian Date for 0 hrs +** +** Returned (function value): +** int status: +** 0 = OK +** -1 = bad year (Note 3: JD not computed) +** -2 = bad month (JD not computed) +** -3 = bad day (JD computed) +** +** Notes: +** +** 1) The algorithm used is valid from -4800 March 1, but this +** implementation rejects dates before -4799 January 1. +** +** 2) The Julian Date is returned in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding djm0 and +** djm. +** +** 3) In early eras the conversion is from the "Proleptic Gregorian +** Calendar"; no account is taken of the date(s) of adoption of +** the Gregorian Calendar, nor is the AD/BC numbering convention +** observed. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 12.92 (p604). +** +*/ + + + +void iauCp(double p[3], double c[3]) +/* +** - - - - - - +** i a u C p +** - - - - - - +** +** Copy a p-vector. +** +** 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 to be copied +** +** Returned: +** c double[3] copy +** +*/ + + + +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 +** +*/ + + + +void iauCr(double r[3][3], double c[3][3]) +/* +** - - - - - - +** i a u C r +** - - - - - - +** +** Copy 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 to be copied +** +** Returned: +** c double[3][3] copy +** +** Called: +** iauCp copy p-vector +** +*/ + + + +int iauD2dtf(const char *scale, int ndp, double d1, double d2, + int *iy, int *im, int *id, int ihmsf[4]) +/* +** - - - - - - - - - +** i a u D 2 d t f +** - - - - - - - - - +** +** Format for output a 2-part Julian Date (or in the case of UTC a +** quasi-JD form that includes special provision for leap seconds). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** scale char[] time scale ID (Note 1) +** ndp int resolution (Note 2) +** d1,d2 double time as a 2-part Julian Date (Notes 3,4) +** +** Returned: +** iy,im,id int year, month, day in Gregorian calendar (Note 5) +** ihmsf int[4] hours, minutes, seconds, fraction (Note 1) +** +** Returned (function value): +** int status: +1 = dubious year (Note 5) +** 0 = OK +** -1 = unacceptable date (Note 6) +** +** Notes: +** +** 1) scale identifies the time scale. Only the value "UTC" (in upper +** case) is significant, and enables handling of leap seconds (see +** Note 4). +** +** 2) ndp is the number of decimal places in the seconds field, and can +** have negative as well as positive values, such as: +** +** ndp resolution +** -4 1 00 00 +** -3 0 10 00 +** -2 0 01 00 +** -1 0 00 10 +** 0 0 00 01 +** 1 0 00 00.1 +** 2 0 00 00.01 +** 3 0 00 00.001 +** +** The limits are platform dependent, but a safe range is -5 to +9. +** +** 3) d1+d2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where d1 is the Julian Day Number +** and d2 is the fraction of a day. In the case of UTC, where the +** use of JD is problematical, special conventions apply: see the +** next note. +** +** 4) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The SOFA internal convention is that +** the quasi-JD day represents UTC days whether the length is 86399, +** 86400 or 86401 SI seconds. In the 1960-1972 era there were +** smaller jumps (in either direction) each time the linear UTC(TAI) +** expression was changed, and these "mini-leaps" are also included +** in the SOFA convention. +** +** 5) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 6) For calendar conventions and limitations, see iauCal2jd. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauD2tf decompose days to hms +** iauDat delta(AT) = TAI-UTC +** +*/ + + + +void iauD2tf(int ndp, double days, char *sign, int ihmsf[4]) +/* +** - - - - - - - - +** i a u D 2 t f +** - - - - - - - - +** +** Decompose days to hours, minutes, seconds, fraction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** ndp int resolution (Note 1) +** days double interval in days +** +** Returned: +** sign char* '+' or '-' +** ihmsf int[4] hours, minutes, seconds, fraction +** +** Notes: +** +** 1) The argument ndp is interpreted as follows: +** +** ndp resolution +** : ...0000 00 00 +** -7 1000 00 00 +** -6 100 00 00 +** -5 10 00 00 +** -4 1 00 00 +** -3 0 10 00 +** -2 0 01 00 +** -1 0 00 10 +** 0 0 00 01 +** 1 0 00 00.1 +** 2 0 00 00.01 +** 3 0 00 00.001 +** : 0 00 00.000... +** +** 2) The largest positive useful value for ndp is determined by the +** size of days, the format of double on the target platform, and +** the risk of overflowing ihmsf[3]. On a typical platform, for +** days up to 1.0, the available floating-point precision might +** correspond to ndp=12. However, the practical limit is typically +** ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is +** only 16 bits. +** +** 3) The absolute value of days may exceed 1.0. In cases where it +** does not, it is up to the caller to test for and handle the +** case where days is very nearly 1.0 and rounds up to 24 hours, +** by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero. +** +*/ + + + +int iauDat(int iy, int im, int id, double fd, double *deltat) +/* +** - - - - - - - +** i a u D a t +** - - - - - - - +** +** For a given UTC date, calculate Delta(AT) = TAI-UTC. +** +** :------------------------------------------: +** : : +** : IMPORTANT : +** : : +** : A new version of this function must be : +** : produced whenever a new leap second is : +** : announced. There are four items to : +** : change on each such occasion: : +** : : +** : 1) A new line must be added to the set : +** : of statements that initialize the : +** : array "changes". : +** : : +** : 2) The constant IYV must be set to the : +** : current year. : +** : : +** : 3) The "Latest leap second" comment : +** : below must be set to the new leap : +** : second date. : +** : : +** : 4) The "This revision" comment, later, : +** : must be set to the current date. : +** : : +** : Change (2) must also be carried out : +** : whenever the function is re-issued, : +** : even if no leap seconds have been : +** : added. : +** : : +** : Latest leap second: 2016 December 31 : +** : : +** :__________________________________________: +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: user-replaceable support function. +** +** Given: +** iy int UTC: year (Notes 1 and 2) +** im int month (Note 2) +** id int day (Notes 2 and 3) +** fd double fraction of day (Note 4) +** +** Returned: +** deltat double TAI minus UTC, seconds +** +** Returned (function value): +** int status (Note 5): +** 1 = dubious year (Note 1) +** 0 = OK +** -1 = bad year +** -2 = bad month +** -3 = bad day (Note 3) +** -4 = bad fraction (Note 4) +** -5 = internal error (Note 5) +** +** Notes: +** +** 1) UTC began at 1960 January 1.0 (JD 2436934.5) and it is improper +** to call the function with an earlier date. If this is attempted, +** zero is returned together with a warning status. +** +** Because leap seconds cannot, in principle, be predicted in +** advance, a reliable check for dates beyond the valid range is +** impossible. To guard against gross errors, a year five or more +** after the release year of the present function (see the constant +** IYV) is considered dubious. In this case a warning status is +** returned but the result is computed in the normal way. +** +** For both too-early and too-late years, the warning status is +1. +** This is distinct from the error status -1, which signifies a year +** so early that JD could not be computed. +** +** 2) If the specified date is for a day which ends with a leap second, +** the TAI-UTC value returned is for the period leading up to the +** leap second. If the date is for a day which begins as a leap +** second ends, the TAI-UTC returned is for the period following the +** leap second. +** +** 3) The day number must be in the normal calendar range, for example +** 1 through 30 for April. The "almanac" convention of allowing +** such dates as January 0 and December 32 is not supported in this +** function, in order to avoid confusion near leap seconds. +** +** 4) The fraction of day is used only for dates before the +** introduction of leap seconds, the first of which occurred at the +** end of 1971. It is tested for validity (0 to 1 is the valid +** range) even if not used; if invalid, zero is used and status -4 +** is returned. For many applications, setting fd to zero is +** acceptable; the resulting error is always less than 3 ms (and +** occurs only pre-1972). +** +** 5) The status value returned in the case where there are multiple +** errors refers to the first error detected. For example, if the +** month and day are 13 and 32 respectively, status -2 (bad month) +** will be returned. The "internal error" status refers to a +** case that is impossible but causes some compilers to issue a +** warning. +** +** 6) In cases where a valid result is not available, zero is returned. +** +** References: +** +** 1) For dates from 1961 January 1 onwards, the expressions from the +** file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used. +** +** 2) The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of +** the 1992 Explanatory Supplement. +** +** Called: +** iauCal2jd Gregorian calendar to JD +** +*/ + + + +double iauDtdb(double date1, double date2, + double ut, double elong, double u, double v) +/* +** - - - - - - - - +** i a u D t d b +** - - - - - - - - +** +** An approximation to TDB-TT, the difference between barycentric +** dynamical time and terrestrial time, for an observer on the Earth. +** +** The different time scales - proper, coordinate and realized - are +** related to each other: +** +** TAI <- physically realized +** : +** offset <- observed (nominally +32.184s) +** : +** TT <- terrestrial time +** : +** rate adjustment (L_G) <- definition of TT +** : +** TCG <- time scale for GCRS +** : +** "periodic" terms <- iauDtdb is an implementation +** : +** rate adjustment (L_C) <- function of solar-system ephemeris +** : +** TCB <- time scale for BCRS +** : +** rate adjustment (-L_B) <- definition of TDB +** : +** TDB <- TCB scaled to track TT +** : +** "periodic" terms <- -iauDtdb is an approximation +** : +** TT <- terrestrial time +** +** Adopted values for the various constants can be found in the IERS +** Conventions (McCarthy & Petit 2003). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double date, TDB (Notes 1-3) +** ut double universal time (UT1, fraction of one day) +** elong double longitude (east positive, radians) +** u double distance from Earth spin axis (km) +** v double distance north of equatorial plane (km) +** +** Returned (function value): +** double TDB-TT (seconds) +** +** Notes: +** +** 1) The date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** Although the date is, formally, barycentric dynamical time (TDB), +** the terrestrial dynamical time (TT) can be used with no practical +** effect on the accuracy of the prediction. +** +** 2) TT can be regarded as a coordinate time that is realized as an +** offset of 32.184s from International Atomic Time, TAI. TT is a +** specific linear transformation of geocentric coordinate time TCG, +** which is the time scale for the Geocentric Celestial Reference +** System, GCRS. +** +** 3) TDB is a coordinate time, and is a specific linear transformation +** of barycentric coordinate time TCB, which is the time scale for +** the Barycentric Celestial Reference System, BCRS. +** +** 4) The difference TCG-TCB depends on the masses and positions of the +** bodies of the solar system and the velocity of the Earth. It is +** dominated by a rate difference, the residual being of a periodic +** character. The latter, which is modeled by the present function, +** comprises a main (annual) sinusoidal term of amplitude +** approximately 0.00166 seconds, plus planetary terms up to about +** 20 microseconds, and lunar and diurnal terms up to 2 microseconds. +** These effects come from the changing transverse Doppler effect +** and gravitational red-shift as the observer (on the Earth's +** surface) experiences variations in speed (with respect to the +** BCRS) and gravitational potential. +** +** 5) TDB can be regarded as the same as TCB but with a rate adjustment +** to keep it close to TT, which is convenient for many applications. +** The history of successive attempts to define TDB is set out in +** Resolution 3 adopted by the IAU General Assembly in 2006, which +** defines a fixed TDB(TCB) transformation that is consistent with +** contemporary solar-system ephemerides. Future ephemerides will +** imply slightly changed transformations between TCG and TCB, which +** could introduce a linear drift between TDB and TT; however, any +** such drift is unlikely to exceed 1 nanosecond per century. +** +** 6) The geocentric TDB-TT model used in the present function is that of +** Fairhead & Bretagnon (1990), in its full form. It was originally +** supplied by Fairhead (private communications with P.T.Wallace, +** 1990) as a Fortran subroutine. The present C function contains an +** adaptation of the Fairhead code. The numerical results are +** essentially unaffected by the changes, the differences with +** respect to the Fairhead & Bretagnon original being at the 1e-20 s +** level. +** +** The topocentric part of the model is from Moyer (1981) and +** Murray (1983), with fundamental arguments adapted from +** Simon et al. 1994. It is an approximation to the expression +** ( v / c ) . ( r / c ), where v is the barycentric velocity of +** the Earth, r is the geocentric position of the observer and +** c is the speed of light. +** +** By supplying zeroes for u and v, the topocentric part of the +** model can be nullified, and the function will return the Fairhead +** & Bretagnon result alone. +** +** 7) During the interval 1950-2050, the absolute accuracy is better +** than +/- 3 nanoseconds relative to time ephemerides obtained by +** direct numerical integrations based on the JPL DE405 solar system +** ephemeris. +** +** 8) It must be stressed that the present function is merely a model, +** and that numerical integration of solar-system ephemerides is the +** definitive method for predicting the relationship between TCG and +** TCB and hence between TT and TDB. +** +** References: +** +** Fairhead, L., & Bretagnon, P., Astron.Astrophys., 229, 240-247 +** (1990). +** +** IAU 2006 Resolution 3. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Moyer, T.D., Cel.Mech., 23, 33 (1981). +** +** Murray, C.A., Vectorial Astrometry, Adam Hilger (1983). +** +** Seidelmann, P.K. et al., Explanatory Supplement to the +** Astronomical Almanac, Chapter 2, University Science Books (1992). +** +** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G. & Laskar, J., Astron.Astrophys., 282, 663-683 (1994). +** +*/ + + + +int iauDtf2d(const char *scale, int iy, int im, int id, + int ihr, int imn, double sec, double *d1, double *d2) +/* +** - - - - - - - - - +** i a u D t f 2 d +** - - - - - - - - - +** +** Encode date and time fields into 2-part Julian Date (or in the case +** of UTC a quasi-JD form that includes special provision for leap +** seconds). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** scale char[] time scale ID (Note 1) +** iy,im,id int year, month, day in Gregorian calendar (Note 2) +** ihr,imn int hour, minute +** sec double seconds +** +** Returned: +** d1,d2 double 2-part Julian Date (Notes 3,4) +** +** Returned (function value): +** int status: +3 = both of next two +** +2 = time is after end of day (Note 5) +** +1 = dubious year (Note 6) +** 0 = OK +** -1 = bad year +** -2 = bad month +** -3 = bad day +** -4 = bad hour +** -5 = bad minute +** -6 = bad second (<0) +** +** Notes: +** +** 1) scale identifies the time scale. Only the value "UTC" (in upper +** case) is significant, and enables handling of leap seconds (see +** Note 4). +** +** 2) For calendar conventions and limitations, see iauCal2jd. +** +** 3) The sum of the results, d1+d2, is Julian Date, where normally d1 +** is the Julian Day Number and d2 is the fraction of a day. In the +** case of UTC, where the use of JD is problematical, special +** conventions apply: see the next note. +** +** 4) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The SOFA internal convention is that +** the quasi-JD day represents UTC days whether the length is 86399, +** 86400 or 86401 SI seconds. In the 1960-1972 era there were +** smaller jumps (in either direction) each time the linear UTC(TAI) +** expression was changed, and these "mini-leaps" are also included +** in the SOFA convention. +** +** 5) The warning status "time is after end of day" usually means that +** the sec argument is greater than 60.0. However, in a day ending +** in a leap second the limit changes to 61.0 (or 59.0 in the case +** of a negative leap second). +** +** 6) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 7) Only in the case of continuous and regular time scales (TAI, TT, +** TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly +** speaking. In the other cases (UT1 and UTC) the result must be +** used with circumspection; in particular the difference between +** two such results cannot be interpreted as a precise time +** interval. +** +** Called: +** iauCal2jd Gregorian calendar to JD +** iauDat delta(AT) = TAI-UTC +** iauJd2cal JD to Gregorian calendar +** +*/ + + + +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u E c e q 0 6 +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using the IAU 2006 precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +*/ + + + +void iauEcm06(double date1, double date2, double rm[3][3]) +/* +** - - - - - - - - - +** i a u E c m 0 6 +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, IAU 2006. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of date. +** +** P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** iauPmat06 PB matrix, IAU 2006 +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRxr product of two r-matrices +** +*/ + + + +double iauEe00(double date1, double date2, double epsa, double dpsi) +/* +** - - - - - - - - +** i a u E e 0 0 +** - - - - - - - - +** +** The equation of the equinoxes, compatible with IAU 2000 resolutions, +** given the nutation in longitude and the mean obliquity. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** epsa double mean obliquity (Note 2) +** dpsi double nutation in longitude (Note 3) +** +** Returned (function value): +** double equation of the equinoxes (Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The obliquity, in radians, is mean of date. +** +** 3) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** 4) The result is compatible with the IAU 2000 resolutions. For +** further details, see IERS Conventions 2003 and Capitaine et al. +** (2002). +** +** Called: +** iauEect00 equation of the equinoxes complementary terms +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauEe00a(double date1, double date2) +/* +** - - - - - - - - - +** i a u E e 0 0 a +** - - - - - - - - - +** +** Equation of the equinoxes, compatible with IAU 2000 resolutions. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** 3) The result is compatible with the IAU 2000 resolutions. For +** further details, see IERS Conventions 2003 and Capitaine et al. +** (2002). +** +** Called: +** iauPr00 IAU 2000 precession adjustments +** iauObl80 mean obliquity, IAU 1980 +** iauNut00a nutation, IAU 2000A +** iauEe00 equation of the equinoxes, IAU 2000 +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003). +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004). +** +*/ + + + +double iauEe00b(double date1, double date2) +/* +** - - - - - - - - - +** i a u E e 0 0 b +** - - - - - - - - - +** +** Equation of the equinoxes, compatible with IAU 2000 resolutions but +** using the truncated nutation model IAU 2000B. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** 3) The result is compatible with the IAU 2000 resolutions except +** that accuracy has been compromised (1 mas) for the sake of speed. +** For further details, see McCarthy & Luzum (2003), IERS +** Conventions 2003 and Capitaine et al. (2003). +** +** Called: +** iauPr00 IAU 2000 precession adjustments +** iauObl80 mean obliquity, IAU 1980 +** iauNut00b nutation, IAU 2000B +** iauEe00 equation of the equinoxes, IAU 2000 +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Celestial Mechanics & +** Dynamical Astronomy, 85, 37-49 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauEe06a(double date1, double date2) +/* +** - - - - - - - - - +** i a u E e 0 6 a +** - - - - - - - - - +** +** Equation of the equinoxes, compatible with IAU 2000 resolutions and +** IAU 2006/2000A precession-nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** Called: +** iauAnpm normalize angle into range +/- pi +** iauGst06a Greenwich apparent sidereal time, IAU 2006/2000A +** iauGmst06 Greenwich mean sidereal time, IAU 2006 +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +*/ + + + +double iauEect00(double date1, double date2) +/* +** - - - - - - - - - - +** i a u E e c t 0 0 +** - - - - - - - - - - +** +** Equation of the equinoxes complementary terms, consistent with +** IAU 2000 resolutions. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double complementary terms (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The "complementary terms" are part of the equation of the +** equinoxes (EE), classically the difference between apparent and +** mean Sidereal Time: +** +** GAST = GMST + EE +** +** with: +** +** EE = dpsi * cos(eps) +** +** where dpsi is the nutation in longitude and eps is the obliquity +** of date. However, if the rotation of the Earth were constant in +** an inertial frame the classical formulation would lead to +** apparent irregularities in the UT1 timescale traceable to side- +** effects of precession-nutation. In order to eliminate these +** effects from UT1, "complementary terms" were introduced in 1994 +** (IAU, 1994) and took effect from 1997 (Capitaine and Gontier, +** 1993): +** +** GAST = GMST + CT + EE +** +** By convention, the complementary terms are included as part of +** the equation of the equinoxes rather than as part of the mean +** Sidereal Time. This slightly compromises the "geometrical" +** interpretation of mean sidereal time but is otherwise +** inconsequential. +** +** The present function computes CT in the above expression, +** compatible with IAU 2000 resolutions (Capitaine et al., 2002, and +** IERS Conventions 2003). +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N. & Gontier, A.-M., Astron.Astrophys., 275, +** 645-650 (1993) +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astron.Astrophys., 406, +** 1135-1149 (2003) +** +** IAU Resolution C7, Recommendation 3 (1994) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +int iauEform ( int n, double *a, double *f ) +/* +** - - - - - - - - - +** i a u E f o r m +** - - - - - - - - - +** +** Earth reference ellipsoids. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** n int ellipsoid identifier (Note 1) +** +** Returned: +** a double equatorial radius (meters, Note 2) +** f double flattening (Note 2) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal identifier (Note 3) +** +** Notes: +** +** 1) The identifier n is a number that specifies the choice of +** reference ellipsoid. The following are supported: +** +** n ellipsoid +** +** 1 WGS84 +** 2 GRS80 +** 3 WGS72 +** +** The n value has no significance outside the SOFA software. For +** convenience, symbols WGS84 etc. are defined in sofam.h. +** +** 2) The ellipsoid parameters are returned in the form of equatorial +** radius in meters (a) and flattening (f). The latter is a number +** around 0.00335, i.e. around 1/298. +** +** 3) For the case where an unsupported n value is supplied, zero a and +** f are returned, as well as error status. +** +** References: +** +** Department of Defense World Geodetic System 1984, National +** Imagery and Mapping Agency Technical Report 8350.2, Third +** Edition, p3-2. +** +** Moritz, H., Bull. Geodesique 66-2, 187 (1992). +** +** The Department of Defense World Geodetic System 1972, World +** Geodetic System Committee, May 1974. +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** p220. +** +*/ + + + +double iauEo06a(double date1, double date2) +/* +** - - - - - - - - - +** i a u E o 0 6 a +** - - - - - - - - - +** +** Equation of the origins, IAU 2006 precession and IAU 2000A nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the equation of the origins in radians +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The equation of the origins is the distance between the true +** equinox and the celestial intermediate origin and, equivalently, +** the difference between Earth rotation angle and Greenwich +** apparent sidereal time (ERA-GST). It comprises the precession +** (since J2000.0) in right ascension plus the equation of the +** equinoxes (including the small correction terms). +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauEors equation of the origins, given NPB matrix and s +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +double iauEors(double rnpb[3][3], double s) +/* +** - - - - - - - - +** i a u E o r s +** - - - - - - - - +** +** Equation of the origins, given the classical NPB matrix and the +** quantity s. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rnpb double[3][3] classical nutation x precession x bias matrix +** s double the quantity s (the CIO locator) in radians +** +** Returned (function value): +** double the equation of the origins in radians +** +** Notes: +** +** 1) The equation of the origins is the distance between the true +** equinox and the celestial intermediate origin and, equivalently, +** the difference between Earth rotation angle and Greenwich +** apparent sidereal time (ERA-GST). It comprises the precession +** (since J2000.0) in right ascension plus the equation of the +** equinoxes (including the small correction terms). +** +** 2) The algorithm is from Wallace & Capitaine (2006). +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +double iauEpb(double dj1, double dj2) +/* +** - - - - - - - +** i a u E p b +** - - - - - - - +** +** Julian Date to Besselian Epoch. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dj1,dj2 double Julian Date (Notes 3,4) +** +** Returned (function value): +** double Besselian Epoch. +** +** Notes: +** +** 1) Besselian Epoch is a method of expressing a moment in time as a +** year plus fraction. It was superseded by Julian Year (see the +** function iauEpj). +** +** 2) The start of a Besselian year is when the right ascension of +** the fictitious mean Sun is 18h 40m, and the unit is the tropical +** year. The conventional definition (see Lieske 1979) is that +** Besselian Epoch B1900.0 is JD 2415020.31352 and the length of the +** year is 365.242198781 days. +** +** 3) The time scale for the JD, originally Ephemeris Time, is TDB, +** which for all practical purposes in the present context is +** indistinguishable from TT. +** +** 4) The Julian Date is supplied in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding dj1 and +** dj2. The maximum resolution is achieved if dj1 is 2451545.0 +** (J2000.0). +** +** Reference: +** +** Lieske, J.H., 1979. Astron.Astrophys., 73, 282. +** +*/ + + + +void iauEpb2jd(double epb, double *djm0, double *djm) +/* +** - - - - - - - - - - +** i a u E p b 2 j d +** - - - - - - - - - - +** +** Besselian Epoch to Julian Date. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epb double Besselian Epoch (e.g. 1957.3) +** +** Returned: +** djm0 double MJD zero-point: always 2400000.5 +** djm double Modified Julian Date +** +** Note: +** +** The Julian Date is returned in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding djm0 and +** djm. +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** +*/ + + + +double iauEpj(double dj1, double dj2) +/* +** - - - - - - - +** i a u E p j +** - - - - - - - +** +** Julian Date to Julian Epoch. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dj1,dj2 double Julian Date (Note 4) +** +** Returned (function value): +** double Julian Epoch +** +** Notes: +** +** 1) Julian Epoch is a method of expressing a moment in time as a +** year plus fraction. +** +** 2) Julian Epoch J2000.0 is 2000 Jan 1.5, and the length of the year +** is 365.25 days. +** +** 3) For historical reasons, the time scale formally associated with +** Julian Epoch is TDB (or TT, near enough). However, Julian Epoch +** can be used more generally as a calendrical convention to +** represent other time scales such as TAI and TCB. This is +** analogous to Julian Date, which was originally defined +** specifically as a way of representing Universal Times but is now +** routinely used for any of the regular time scales. +** +** 4) The Julian Date is supplied in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding dj1 and +** dj2. The maximum resolution is achieved if dj1 is 2451545.0 +** (J2000.0). +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** +*/ + + + +void iauEpj2jd(double epj, double *djm0, double *djm) +/* +** - - - - - - - - - - +** i a u E p j 2 j d +** - - - - - - - - - - +** +** Julian Epoch to Julian Date. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian Epoch (e.g. 1996.8) +** +** Returned: +** djm0 double MJD zero-point: always 2400000.5 +** djm double Modified Julian Date +** +** Note: +** +** The Julian Date is returned in two pieces, in the usual SOFA +** manner, which is designed to preserve time resolution. The +** Julian Date is available as a single number by adding djm0 and +** djm. +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** +*/ + + + +int iauEpv00(double date1, double date2, + double pvh[2][3], double pvb[2][3]) +/* +** - - - - - - - - - +** i a u E p v 0 0 +** - - - - - - - - - +** +** Earth position and velocity, heliocentric and barycentric, with +** respect to the Barycentric Celestial Reference System. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TDB date (Note 1) +** +** Returned: +** pvh double[2][3] heliocentric Earth position/velocity +** pvb double[2][3] barycentric Earth position/velocity +** +** Returned (function value): +** int status: 0 = OK +** +1 = warning: date outside +** the range 1900-2100 AD +** +** Notes: +** +** 1) The TDB date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TDB)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. However, +** the accuracy of the result is more likely to be limited by the +** algorithm itself than the way the date has been expressed. +** +** n.b. TT can be used instead of TDB in most applications. +** +** 2) On return, the arrays pvh and pvb contain the following: +** +** pvh[0][0] x } +** pvh[0][1] y } heliocentric position, au +** pvh[0][2] z } +** +** pvh[1][0] xdot } +** pvh[1][1] ydot } heliocentric velocity, au/d +** pvh[1][2] zdot } +** +** pvb[0][0] x } +** pvb[0][1] y } barycentric position, au +** pvb[0][2] z } +** +** pvb[1][0] xdot } +** pvb[1][1] ydot } barycentric velocity, au/d +** pvb[1][2] zdot } +** +** The vectors are oriented with respect to the BCRS. The time unit +** is one day in TDB. +** +** 3) The function is a SIMPLIFIED SOLUTION from the planetary theory +** VSOP2000 (X. Moisson, P. Bretagnon, 2001, Celes. Mechanics & +** Dyn. Astron., 80, 3/4, 205-213) and is an adaptation of original +** Fortran code supplied by P. Bretagnon (private comm., 2000). +** +** 4) Comparisons over the time span 1900-2100 with this simplified +** solution and the JPL DE405 ephemeris give the following results: +** +** RMS max +** Heliocentric: +** position error 3.7 11.2 km +** velocity error 1.4 5.0 mm/s +** +** Barycentric: +** position error 4.6 13.4 km +** velocity error 1.4 4.9 mm/s +** +** Comparisons with the JPL DE406 ephemeris show that by 1800 and +** 2200 the position errors are approximately double their 1900-2100 +** size. By 1500 and 2500 the deterioration is a factor of 10 and +** by 1000 and 3000 a factor of 60. The velocity accuracy falls off +** at about half that rate. +** +** 5) It is permissible to use the same array for pvh and pvb, which +** will receive the barycentric values. +** +*/ + + + +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db) +/* +** - - - - - - - - - - +** i a u E q e c 0 6 +** - - - - - - - - - - +** +** Transformation from ICRS equatorial coordinates to ecliptic +** coordinates (mean equinox and ecliptic of date) using IAU 2006 +** precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian date (Note 1) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 3) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006 +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +*/ + + + +double iauEqeq94(double date1, double date2) +/* +** - - - - - - - - - - +** i a u E q e q 9 4 +** - - - - - - - - - - +** +** Equation of the equinoxes, IAU 1994 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TDB date (Note 1) +** +** Returned (function value): +** double equation of the equinoxes (Note 2) +** +** Notes: +** +** 1) The date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result, which is in radians, operates in the following sense: +** +** Greenwich apparent ST = GMST + equation of the equinoxes +** +** Called: +** iauAnpm normalize angle into range +/- pi +** iauNut80 nutation, IAU 1980 +** iauObl80 mean obliquity, IAU 1980 +** +** References: +** +** IAU Resolution C7, Recommendation 3 (1994). +** +** Capitaine, N. & Gontier, A.-M., 1993, Astron.Astrophys., 275, +** 645-650. +** +*/ + + + +double iauEra00(double dj1, double dj2) +/* +** - - - - - - - - - +** i a u E r a 0 0 +** - - - - - - - - - +** +** Earth rotation angle (IAU 2000 model). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** dj1,dj2 double UT1 as a 2-part Julian Date (see note) +** +** Returned (function value): +** double Earth rotation angle (radians), range 0-2pi +** +** Notes: +** +** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any +** convenient way between the arguments dj1 and dj2. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, +** among others: +** +** dj1 dj2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. The date & time method is +** best matched to the algorithm used: maximum precision is +** delivered when the dj1 argument is for 0hrs UT1 on the day in +** question and the dj2 argument lies in the range 0 to 1, or vice +** versa. +** +** 2) The algorithm is adapted from Expression 22 of Capitaine et al. +** 2000. The time argument has been expressed in days directly, +** and, to retain precision, integer contributions have been +** eliminated. The same formulation is given in IERS Conventions +** (2003), Chap. 5, Eq. 14. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine N., Guinot B. and McCarthy D.D, 2000, Astron. +** Astrophys., 355, 398-405. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauFad03(double t) +/* +** - - - - - - - - - +** i a u F a d 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean elongation of the Moon from the Sun. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double D, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +*/ + + + +double iauFae03(double t) +/* +** - - - - - - - - - +** i a u F a e 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Earth. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Earth, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +*/ + + + +double iauFaf03(double t) +/* +** - - - - - - - - - +** i a u F a f 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of the Moon minus mean longitude of the ascending +** node. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double F, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +*/ + + + +double iauFaju03(double t) +/* +** - - - - - - - - - - +** i a u F a j u 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Jupiter. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Jupiter, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +*/ + + + +double iauFal03(double t) +/* +** - - - - - - - - - +** i a u F a l 0 3 +** - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean anomaly of the Moon. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double l, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +*/ + + + +double iauFalp03(double t) +/* +** - - - - - - - - - - +** i a u F a l p 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean anomaly of the Sun. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double l', radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +*/ + + + +double iauFama03(double t) +/* +** - - - - - - - - - - +** i a u F a m a 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Mars. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Mars, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +*/ + + + +double iauFame03(double t) +/* +** - - - - - - - - - - +** i a u F a m e 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Mercury. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Mercury, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +*/ + + + +double iauFane03(double t) +/* +** - - - - - - - - - - +** i a u F a n e 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Neptune. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Neptune, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is adapted from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +*/ + + + +double iauFaom03(double t) +/* +** - - - - - - - - - - +** i a u F a o m 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of the Moon's ascending node. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double Omega, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J., 1994, Astron.Astrophys. 282, 663-683. +** +*/ + + + +double iauFapa03(double t) +/* +** - - - - - - - - - - +** i a u F a p a 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** general accumulated precession in longitude. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double general precession in longitude, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003). It +** is taken from Kinoshita & Souchay (1990) and comes originally +** from Lieske et al. (1977). +** +** References: +** +** Kinoshita, H. and Souchay J. 1990, Celest.Mech. and Dyn.Astron. +** 48, 187 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauFasa03(double t) +/* +** - - - - - - - - - - +** i a u F a s a 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Saturn. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Saturn, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +*/ + + + +double iauFaur03(double t) +/* +** - - - - - - - - - - +** i a u F a u r 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Uranus. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Uranus, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** is adapted from Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +*/ + + + +double iauFave03(double t) +/* +** - - - - - - - - - - +** i a u F a v e 0 3 +** - - - - - - - - - - +** +** Fundamental argument, IERS Conventions (2003): +** mean longitude of Venus. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** t double TDB, Julian centuries since J2000.0 (Note 1) +** +** Returned (function value): +** double mean longitude of Venus, radians (Note 2) +** +** Notes: +** +** 1) Though t is strictly TDB, it is usually more convenient to use +** TT, which makes no significant difference. +** +** 2) The expression used is as adopted in IERS Conventions (2003) and +** comes from Souchay et al. (1999) after Simon et al. (1994). +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +*/ + + + +void iauFk425(double r1950, double d1950, + double dr1950, double dd1950, + double p1950, double v1950, + double *r2000, double *d2000, + double *dr2000, double *dd2000, + double *p2000, double *v2000) +/* +** - - - - - - - - - +** i a u F k 4 2 5 +** - - - - - - - - - +** +** Convert B1950.0 FK4 star catalog data to J2000.0 FK5. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** This function converts a star's catalog data from the old FK4 +** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system. +** +** Given: (all B1950.0, FK4) +** r1950,d1950 double B1950.0 RA,Dec (rad) +** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) +** p1950 double parallax (arcsec) +** v1950 double radial velocity (km/s, +ve = moving away) +** +** Returned: (all J2000.0, FK5) +** r2000,d2000 double J2000.0 RA,Dec (rad) +** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) +** p2000 double parallax (arcsec) +** v2000 double radial velocity (km/s, +ve = moving away) +** +** Notes: +** +** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, +** and are per year rather than per century. +** +** 2) The conversion is somewhat complicated, for several reasons: +** +** . Change of standard epoch from B1950.0 to J2000.0. +** +** . An intermediate transition date of 1984 January 1.0 TT. +** +** . A change of precession model. +** +** . Change of time unit for proper motion (tropical to Julian). +** +** . FK4 positions include the E-terms of aberration, to simplify +** the hand computation of annual aberration. FK5 positions +** assume a rigorous aberration computation based on the Earth's +** barycentric velocity. +** +** . The E-terms also affect proper motions, and in particular cause +** objects at large distances to exhibit fictitious proper +** motions. +** +** The algorithm is based on Smith et al. (1989) and Yallop et al. +** (1989), which presented a matrix method due to Standish (1982) as +** developed by Aoki et al. (1983), using Kinoshita's development of +** Andoyer's post-Newcomb precession. The numerical constants from +** Seidelmann (1992) are used canonically. +** +** 3) Conversion from B1950.0 FK4 to J2000.0 FK5 only is provided for. +** Conversions for different epochs and equinoxes would require +** additional treatment for precession, proper motion and E-terms. +** +** 4) In the FK4 catalog the proper motions of stars within 10 degrees +** of the poles do not embody differential E-terms effects and +** should, strictly speaking, be handled in a different manner from +** stars outside these regions. However, given the general lack of +** homogeneity of the star data available for routine astrometry, +** the difficulties of handling positions that may have been +** determined from astrometric fields spanning the polar and non- +** polar regions, the likelihood that the differential E-terms +** effect was not taken into account when allowing for proper motion +** in past astrometry, and the undesirability of a discontinuity in +** the algorithm, the decision has been made in this SOFA algorithm +** to include the effects of differential E-terms on the proper +** motions for all stars, whether polar or not. At epoch J2000.0, +** and measuring "on the sky" rather than in terms of RA change, the +** errors resulting from this simplification are less than +** 1 milliarcsecond in position and 1 milliarcsecond per century in +** proper motion. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauPv2s pv-vector to spherical coordinates +** iauPdp scalar product of two p-vectors +** iauPvmpv pv-vector minus pv_vector +** iauPvppv pv-vector plus pv_vector +** iauS2pv spherical coordinates to pv-vector +** iauSxp multiply p-vector by scalar +** +** References: +** +** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 +** FK4-based positions of stars to epoch J2000.0 positions in +** accordance with the new IAU resolutions". Astron.Astrophys. +** 128, 263-267. +** +** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the +** Astronomical Almanac", ISBN 0-935702-68-7. +** +** Smith, C.A. et al., 1989, "The transformation of astrometric +** catalog systems to the equinox J2000.0". Astron.J. 97, 265. +** +** Standish, E.M., 1982, "Conversion of positions and proper motions +** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., +** 115, 1, 20-22. +** +** Yallop, B.D. et al., 1989, "Transformation of mean star places +** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". +** Astron.J. 97, 274. +** +*/ + + + +void iauFk45z(double r1950, double d1950, double bepoch, + double *r2000, double *d2000) +/* +** - - - - - - - - - +** i a u F k 4 5 z +** - - - - - - - - - +** +** Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero +** proper motion in the FK5 system. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** This function converts a star's catalog data from the old FK4 +** (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, +** in such a way that the FK5 proper motion is zero. Because such a +** star has, in general, a non-zero proper motion in the FK4 system, +** the function requires the epoch at which the position in the FK4 +** system was determined. +** +** Given: +** r1950,d1950 double B1950.0 FK4 RA,Dec at epoch (rad) +** bepoch double Besselian epoch (e.g. 1979.3) +** +** Returned: +** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) +** +** Notes: +** +** 1) The epoch bepoch is strictly speaking Besselian, but if a +** Julian epoch is supplied the result will be affected only to a +** negligible extent. +** +** 2) The method is from Appendix 2 of Aoki et al. (1983), but using +** the constants of Seidelmann (1992). See the function iauFk425 +** for a general introduction to the FK4 to FK5 conversion. +** +** 3) Conversion from equinox B1950.0 FK4 to equinox J2000.0 FK5 only +** is provided for. Conversions for different starting and/or +** ending epochs would require additional treatment for precession, +** proper motion and E-terms. +** +** 4) In the FK4 catalog the proper motions of stars within 10 degrees +** of the poles do not embody differential E-terms effects and +** should, strictly speaking, be handled in a different manner from +** stars outside these regions. However, given the general lack of +** homogeneity of the star data available for routine astrometry, +** the difficulties of handling positions that may have been +** determined from astrometric fields spanning the polar and non- +** polar regions, the likelihood that the differential E-terms +** effect was not taken into account when allowing for proper motion +** in past astrometry, and the undesirability of a discontinuity in +** the algorithm, the decision has been made in this SOFA algorithm +** to include the effects of differential E-terms on the proper +** motions for all stars, whether polar or not. At epoch J2000.0, +** and measuring "on the sky" rather than in terms of RA change, the +** errors resulting from this simplification are less than +** 1 milliarcsecond in position and 1 milliarcsecond per century in +** proper motion. +** +** References: +** +** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 +** FK4-based positions of stars to epoch J2000.0 positions in +** accordance with the new IAU resolutions". Astron.Astrophys. +** 128, 263-267. +** +** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the +** Astronomical Almanac", ISBN 0-935702-68-7. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauC2s p-vector to spherical +** iauEpb2jd Besselian epoch to Julian date +** iauEpj Julian date to Julian epoch +** iauPdp scalar product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPpsp p-vector plus scaled p-vector +** iauPvu update a pv-vector +** iauS2c spherical to p-vector +** +*/ + + + +void iauFk524(double r2000, double d2000, + double dr2000, double dd2000, + double p2000, double v2000, + double *r1950, double *d1950, + double *dr1950, double *dd1950, + double *p1950, double *v1950) +/* +** - - - - - - - - - +** i a u F k 5 2 4 +** - - - - - - - - - +** +** Convert J2000.0 FK5 star catalog data to B1950.0 FK4. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: (all J2000.0, FK5) +** r2000,d2000 double J2000.0 RA,Dec (rad) +** dr2000,dd2000 double J2000.0 proper motions (rad/Jul.yr) +** p2000 double parallax (arcsec) +** v2000 double radial velocity (km/s, +ve = moving away) +** +** Returned: (all B1950.0, FK4) +** r1950,d1950 double B1950.0 RA,Dec (rad) +** dr1950,dd1950 double B1950.0 proper motions (rad/trop.yr) +** p1950 double parallax (arcsec) +** v1950 double radial velocity (km/s, +ve = moving away) +** +** Notes: +** +** 1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, +** and are per year rather than per century. +** +** 2) The conversion is somewhat complicated, for several reasons: +** +** . Change of standard epoch from J2000.0 to B1950.0. +** +** . An intermediate transition date of 1984 January 1.0 TT. +** +** . A change of precession model. +** +** . Change of time unit for proper motion (Julian to tropical). +** +** . FK4 positions include the E-terms of aberration, to simplify +** the hand computation of annual aberration. FK5 positions +** assume a rigorous aberration computation based on the Earth's +** barycentric velocity. +** +** . The E-terms also affect proper motions, and in particular cause +** objects at large distances to exhibit fictitious proper +** motions. +** +** The algorithm is based on Smith et al. (1989) and Yallop et al. +** (1989), which presented a matrix method due to Standish (1982) as +** developed by Aoki et al. (1983), using Kinoshita's development of +** Andoyer's post-Newcomb precession. The numerical constants from +** Seidelmann (1992) are used canonically. +** +** 4) In the FK4 catalog the proper motions of stars within 10 degrees +** of the poles do not embody differential E-terms effects and +** should, strictly speaking, be handled in a different manner from +** stars outside these regions. However, given the general lack of +** homogeneity of the star data available for routine astrometry, +** the difficulties of handling positions that may have been +** determined from astrometric fields spanning the polar and non- +** polar regions, the likelihood that the differential E-terms +** effect was not taken into account when allowing for proper motion +** in past astrometry, and the undesirability of a discontinuity in +** the algorithm, the decision has been made in this SOFA algorithm +** to include the effects of differential E-terms on the proper +** motions for all stars, whether polar or not. At epoch J2000.0, +** and measuring "on the sky" rather than in terms of RA change, the +** errors resulting from this simplification are less than +** 1 milliarcsecond in position and 1 milliarcsecond per century in +** proper motion. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauPdp scalar product of two p-vectors +** iauPm modulus of p-vector +** iauPmp p-vector minus p-vector +** iauPpp p-vector pluus p-vector +** iauPv2s pv-vector to spherical coordinates +** iauS2pv spherical coordinates to pv-vector +** iauSxp multiply p-vector by scalar +** +** References: +** +** Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 +** FK4-based positions of stars to epoch J2000.0 positions in +** accordance with the new IAU resolutions". Astron.Astrophys. +** 128, 263-267. +** +** Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the +** Astronomical Almanac", ISBN 0-935702-68-7. +** +** Smith, C.A. et al., 1989, "The transformation of astrometric +** catalog systems to the equinox J2000.0". Astron.J. 97, 265. +** +** Standish, E.M., 1982, "Conversion of positions and proper motions +** from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., +** 115, 1, 20-22. +** +** Yallop, B.D. et al., 1989, "Transformation of mean star places +** from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". +** Astron.J. 97, 274. +** +*/ + + + +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) +/* +** - - - - - - - - - +** i a u F k 5 2 h +** - - - - - - - - - +** +** Transform FK5 (J2000.0) star data into the Hipparcos system. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (all FK5, equinox J2000.0, epoch J2000.0): +** r5 double RA (radians) +** d5 double Dec (radians) +** dr5 double proper motion in RA (dRA/dt, rad/Jyear) +** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) +** px5 double parallax (arcsec) +** rv5 double radial velocity (km/s, positive = receding) +** +** Returned (all Hipparcos, epoch J2000.0): +** rh double RA (radians) +** dh double Dec (radians) +** drh double proper motion in RA (dRA/dt, rad/Jyear) +** ddh double proper motion in Dec (dDec/dt, rad/Jyear) +** pxh double parallax (arcsec) +** rvh double radial velocity (km/s, positive = receding) +** +** Notes: +** +** 1) This function transforms FK5 star positions and proper motions +** into the system of the Hipparcos catalog. +** +** 2) The proper motions in RA are dRA/dt rather than +** cos(Dec)*dRA/dt, and are per year rather than per century. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure +** rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 4) See also iauH2fk5, iauFk5hz, iauHfk5z. +** +** Called: +** iauStarpv star catalog data to space motion pv-vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauRxp product of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauPpp p-vector plus p-vector +** iauPvstar space motion pv-vector to star catalog data +** +** Reference: +** +** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). +** +*/ + + + +void iauFk54z(double r2000, double d2000, double bepoch, + double *r1950, double *d1950, + double *dr1950, double *dd1950) +/* +** - - - - - - - - - +** i a u F k 5 4 z +** - - - - - - - - - +** +** Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero +** proper motion in FK5 and parallax. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** r2000,d2000 double J2000.0 FK5 RA,Dec (rad) +** bepoch double Besselian epoch (e.g. 1950.0) +** +** Returned: +** r1950,d1950 double B1950.0 FK4 RA,Dec (rad) at epoch BEPOCH +** dr1950,dd1950 double B1950.0 FK4 proper motions (rad/trop.yr) +** +** Notes: +** +** 1) In contrast to the iauFk524 function, here the FK5 proper +** motions, the parallax and the radial velocity are presumed zero. +** +** 2) This function converts a star position from the IAU 1976 FK5 +** (Fricke) system to the former FK4 (Bessel-Newcomb) system, for +** cases such as distant radio sources where it is presumed there is +** zero parallax and no proper motion. Because of the E-terms of +** aberration, such objects have (in general) non-zero proper motion +** in FK4, and the present function returns those fictitious proper +** motions. +** +** 3) Conversion from J2000.0 FK5 to B1950.0 FK4 only is provided for. +** Conversions involving other equinoxes would require additional +** treatment for precession. +** +** 4) The position returned by this function is in the B1950.0 FK4 +** reference system but at Besselian epoch bepoch. For comparison +** with catalogs the bepoch argument will frequently be 1950.0. (In +** this context the distinction between Besselian and Julian epoch +** is insignificant.) +** +** 5) The RA component of the returned (fictitious) proper motion is +** dRA/dt rather than cos(Dec)*dRA/dt. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauC2s p-vector to spherical +** iauFk524 FK4 to FK5 +** iauS2c spherical to p-vector +** +*/ + + + +void iauFk5hip(double r5h[3][3], double s5h[3]) +/* +** - - - - - - - - - - +** i a u F k 5 h i p +** - - - - - - - - - - +** +** FK5 to Hipparcos rotation and spin. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Returned: +** r5h double[3][3] r-matrix: FK5 rotation wrt Hipparcos (Note 2) +** s5h double[3] r-vector: FK5 spin wrt Hipparcos (Note 3) +** +** Notes: +** +** 1) This function models the FK5 to Hipparcos transformation as a +** pure rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 2) The r-matrix r5h operates in the sense: +** +** P_Hipparcos = r5h x P_FK5 +** +** where P_FK5 is a p-vector in the FK5 frame, and P_Hipparcos is +** the equivalent Hipparcos p-vector. +** +** 3) The r-vector s5h represents the time derivative of the FK5 to +** Hipparcos rotation. The units are radians per year (Julian, +** TDB). +** +** Called: +** iauRv2m r-vector to r-matrix +** +** Reference: +** +** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). +** +*/ + + + +void iauFk5hz(double r5, double d5, double date1, double date2, + double *rh, double *dh) +/* +** - - - - - - - - - +** i a u F k 5 h z +** - - - - - - - - - +** +** Transform an FK5 (J2000.0) star position into the system of the +** Hipparcos catalog, assuming zero Hipparcos proper motion. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** r5 double FK5 RA (radians), equinox J2000.0, at date +** d5 double FK5 Dec (radians), equinox J2000.0, at date +** date1,date2 double TDB date (Notes 1,2) +** +** Returned: +** rh double Hipparcos RA (radians) +** dh double Hipparcos Dec (radians) +** +** Notes: +** +** 1) This function converts a star position from the FK5 system to +** the Hipparcos system, in such a way that the Hipparcos proper +** motion is zero. Because such a star has, in general, a non-zero +** proper motion in the FK5 system, the function requires the date +** at which the position in the FK5 system was determined. +** +** 2) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure +** rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 4) The position returned by this function is in the Hipparcos +** reference system but at date date1+date2. +** +** 5) See also iauFk52h, iauH2fk5, iauHfk5z. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauSxp multiply p-vector by scalar +** iauRv2m r-vector to r-matrix +** iauTrxp product of transpose of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauC2s p-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. +** +*/ + + + +void iauFw2m(double gamb, double phib, double psi, double eps, + double r[3][3]) +/* +** - - - - - - - - +** i a u F w 2 m +** - - - - - - - - +** +** Form rotation matrix given the Fukushima-Williams angles. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psi double F-W angle psi (radians) +** eps double F-W angle epsilon (radians) +** +** Returned: +** r double[3][3] rotation matrix +** +** Notes: +** +** 1) Naming the following points: +** +** e = J2000.0 ecliptic pole, +** p = GCRS pole, +** E = ecliptic pole of date, +** and P = CIP, +** +** the four Fukushima-Williams angles are as follows: +** +** gamb = gamma = epE +** phib = phi = pE +** psi = psi = pEP +** eps = epsilon = EP +** +** 2) The matrix representing the combined effects of frame bias, +** precession and nutation is: +** +** NxPxB = R_1(-eps).R_3(-psi).R_1(phib).R_3(gamb) +** +** 3) The present function can construct three different matrices, +** depending on which angles are supplied as the arguments gamb, +** phib, psi and eps: +** +** o To obtain the nutation x precession x frame bias matrix, +** first generate the four precession angles known conventionally +** as gamma_bar, phi_bar, psi_bar and epsilon_A, then generate +** the nutation components Dpsi and Depsilon and add them to +** psi_bar and epsilon_A, and finally call the present function +** using those four angles as arguments. +** +** o To obtain the precession x frame bias matrix, generate the +** four precession angles and call the present function. +** +** o To obtain the frame bias matrix, generate the four precession +** angles for date J2000.0 and call the present function. +** +** The nutation-only and precession-only matrices can if necessary +** be obtained by combining these three appropriately. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRx rotate around X-axis +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +*/ + + + +void iauFw2xy(double gamb, double phib, double psi, double eps, + double *x, double *y) +/* +** - - - - - - - - - +** i a u F w 2 x y +** - - - - - - - - - +** +** CIP X,Y given Fukushima-Williams bias-precession-nutation angles. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psi double F-W angle psi (radians) +** eps double F-W angle epsilon (radians) +** +** Returned: +** x,y double CIP unit vector X,Y +** +** Notes: +** +** 1) Naming the following points: +** +** e = J2000.0 ecliptic pole, +** p = GCRS pole +** E = ecliptic pole of date, +** and P = CIP, +** +** the four Fukushima-Williams angles are as follows: +** +** gamb = gamma = epE +** phib = phi = pE +** psi = psi = pEP +** eps = epsilon = EP +** +** 2) The matrix representing the combined effects of frame bias, +** precession and nutation is: +** +** NxPxB = R_1(-epsA).R_3(-psi).R_1(phib).R_3(gamb) +** +** The returned values x,y are elements [2][0] and [2][1] of the +** matrix. Near J2000.0, they are essentially angles in radians. +** +** Called: +** iauFw2m F-W angles to r-matrix +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +*/ + + + + +void iauG2icrs ( double dl, double db, double *dr, double *dd ) +/* +** - - - - - - - - - - +** i a u G 2 i c r s +** - - - - - - - - - - +** +** Transformation from Galactic coordinates to ICRS. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dl double Galactic longitude (radians) +** db double Galactic latitude (radians) +** +** Returned: +** dr double ICRS right ascension (radians) +** dd double ICRS declination (radians) +** +** Notes: +** +** 1) The IAU 1958 system of Galactic coordinates was defined with +** respect to the now obsolete reference system FK4 B1950.0. When +** interpreting the system in a modern context, several factors have +** to be taken into account: +** +** . The inclusion in FK4 positions of the E-terms of aberration. +** +** . The distortion of the FK4 proper motion system by differential +** Galactic rotation. +** +** . The use of the B1950.0 equinox rather than the now-standard +** J2000.0. +** +** . The frame bias between ICRS and the J2000.0 mean place system. +** +** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation +** matrix that transforms directly between ICRS and Galactic +** coordinates with the above factors taken into account. The +** matrix is derived from three angles, namely the ICRS coordinates +** of the Galactic pole and the longitude of the ascending node of +** the Galactic equator on the ICRS equator. They are given in +** degrees to five decimal places and for canonical purposes are +** regarded as exact. In the Hipparcos Catalogue the matrix +** elements are given to 10 decimal places (about 20 microarcsec). +** In the present SOFA function the matrix elements have been +** recomputed from the canonical three angles and are given to 30 +** decimal places. +** +** 2) The inverse transformation is performed by the function iauIcrs2g. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** iauS2c spherical coordinates to unit vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s p-vector to spherical +** +** Reference: +** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho +** catalogues. Astrometric and photometric star catalogues +** derived from the ESA Hipparcos Space Astrometry Mission. ESA +** Publications Division, Noordwijk, Netherlands. +** +*/ + + + +int iauGc2gd ( int n, double xyz[3], + double *elong, double *phi, double *height ) +/* +** - - - - - - - - - +** i a u G c 2 g d +** - - - - - - - - - +** +** Transform geocentric coordinates to geodetic using the specified +** reference ellipsoid. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical transformation. +** +** Given: +** n int ellipsoid identifier (Note 1) +** xyz double[3] geocentric vector (Note 2) +** +** Returned: +** elong double longitude (radians, east +ve, Note 3) +** phi double latitude (geodetic, radians, Note 3) +** height double height above ellipsoid (geodetic, Notes 2,3) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal identifier (Note 3) +** -2 = internal error (Note 3) +** +** Notes: +** +** 1) The identifier n is a number that specifies the choice of +** reference ellipsoid. The following are supported: +** +** n ellipsoid +** +** 1 WGS84 +** 2 GRS80 +** 3 WGS72 +** +** The n value has no significance outside the SOFA software. For +** convenience, symbols WGS84 etc. are defined in sofam.h. +** +** 2) The geocentric vector (xyz, given) and height (height, returned) +** are in meters. +** +** 3) An error status -1 means that the identifier n is illegal. An +** error status -2 is theoretically impossible. In all error cases, +** all three results are set to -1e9. +** +** 4) The inverse transformation is performed in the function iauGd2gc. +** +** Called: +** iauEform Earth reference ellipsoids +** iauGc2gde geocentric to geodetic transformation, general +** +*/ + + + +int iauGc2gde ( double a, double f, double xyz[3], + double *elong, double *phi, double *height ) +/* +** - - - - - - - - - - +** i a u G c 2 g d e +** - - - - - - - - - - +** +** Transform geocentric coordinates to geodetic for a reference +** ellipsoid of specified form. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** a double equatorial radius (Notes 2,4) +** f double flattening (Note 3) +** xyz double[3] geocentric vector (Note 4) +** +** Returned: +** elong double longitude (radians, east +ve) +** phi double latitude (geodetic, radians) +** height double height above ellipsoid (geodetic, Note 4) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal f +** -2 = illegal a +** +** Notes: +** +** 1) This function is based on the GCONV2H Fortran subroutine by +** Toshio Fukushima (see reference). +** +** 2) The equatorial radius, a, can be in any units, but meters is +** the conventional choice. +** +** 3) The flattening, f, is (for the Earth) a value around 0.00335, +** i.e. around 1/298. +** +** 4) The equatorial radius, a, and the geocentric vector, xyz, +** must be given in the same units, and determine the units of +** the returned height, height. +** +** 5) If an error occurs (status < 0), elong, phi and height are +** unchanged. +** +** 6) The inverse transformation is performed in the function +** iauGd2gce. +** +** 7) The transformation for a standard ellipsoid (such as WGS84) can +** more conveniently be performed by calling iauGc2gd, which uses a +** numerical code to identify the required A and F values. +** +** Reference: +** +** Fukushima, T., "Transformation from Cartesian to geodetic +** coordinates accelerated by Halley's method", J.Geodesy (2006) +** 79: 689-693 +** +*/ + + + +int iauGd2gc ( int n, double elong, double phi, double height, + double xyz[3] ) +/* +** - - - - - - - - - +** i a u G d 2 g c +** - - - - - - - - - +** +** Transform geodetic coordinates to geocentric using the specified +** reference ellipsoid. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical transformation. +** +** Given: +** n int ellipsoid identifier (Note 1) +** elong double longitude (radians, east +ve, Note 3) +** phi double latitude (geodetic, radians, Note 3) +** height double height above ellipsoid (geodetic, Notes 2,3) +** +** Returned: +** xyz double[3] geocentric vector (Note 2) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal identifier (Note 3) +** -2 = illegal case (Note 3) +** +** Notes: +** +** 1) The identifier n is a number that specifies the choice of +** reference ellipsoid. The following are supported: +** +** n ellipsoid +** +** 1 WGS84 +** 2 GRS80 +** 3 WGS72 +** +** The n value has no significance outside the SOFA software. For +** convenience, symbols WGS84 etc. are defined in sofam.h. +** +** 2) The height (height, given) and the geocentric vector (xyz, +** returned) are in meters. +** +** 3) No validation is performed on the arguments elong, phi and +** height. An error status -1 means that the identifier n is +** illegal. An error status -2 protects against cases that would +** lead to arithmetic exceptions. In all error cases, xyz is set +** to zeros. +** +** 4) The inverse transformation is performed in the function iauGc2gd. +** +** Called: +** iauEform Earth reference ellipsoids +** iauGd2gce geodetic to geocentric transformation, general +** iauZp zero p-vector +** +*/ + + + +int iauGd2gce ( double a, double f, double elong, double phi, + double height, double xyz[3] ) +/* +** - - - - - - - - - - +** i a u G d 2 g c e +** - - - - - - - - - - +** +** Transform geodetic coordinates to geocentric for a reference +** ellipsoid of specified form. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** a double equatorial radius (Notes 1,3,4) +** f double flattening (Notes 2,4) +** elong double longitude (radians, east +ve, Note 4) +** phi double latitude (geodetic, radians, Note 4) +** height double height above ellipsoid (geodetic, Notes 3,4) +** +** Returned: +** xyz double[3] geocentric vector (Note 3) +** +** Returned (function value): +** int status: 0 = OK +** -1 = illegal case (Note 4) +** Notes: +** +** 1) The equatorial radius, a, can be in any units, but meters is +** the conventional choice. +** +** 2) The flattening, f, is (for the Earth) a value around 0.00335, +** i.e. around 1/298. +** +** 3) The equatorial radius, a, and the height, height, must be +** given in the same units, and determine the units of the +** returned geocentric vector, xyz. +** +** 4) No validation is performed on individual arguments. The error +** status -1 protects against (unrealistic) cases that would lead +** to arithmetic exceptions. If an error occurs, xyz is unchanged. +** +** 5) The inverse transformation is performed in the function +** iauGc2gde. +** +** 6) The transformation for a standard ellipsoid (such as WGS84) can +** more conveniently be performed by calling iauGd2gc, which uses a +** numerical code to identify the required a and f values. +** +** References: +** +** Green, R.M., Spherical Astronomy, Cambridge University Press, +** (1985) Section 4.5, p96. +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 4.22, p202. +** +*/ + + + +double iauGmst00(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G m s t 0 0 +** - - - - - - - - - - +** +** Greenwich mean sidereal time (model consistent with IAU 2000 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich mean sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** Part A Part B +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession. If UT1 is used for +** both purposes, errors of order 100 microarcseconds result. +** +** 3) This GMST is compatible with the IAU 2000 resolutions and must be +** used only in conjunction with other IAU 2000 compatible +** components such as precession-nutation and equation of the +** equinoxes. +** +** 4) The result is returned in the range 0 to 2pi. +** +** 5) The algorithm is from Capitaine et al. (2003) and IERS +** Conventions 2003. +** +** Called: +** iauEra00 Earth rotation angle, IAU 2000 +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauGmst06(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G m s t 0 6 +** - - - - - - - - - - +** +** Greenwich mean sidereal time (consistent with IAU 2006 precession). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich mean sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD=2450123.7 could be expressed in +** any of these ways, among others: +** +** Part A Part B +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** rotation angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession. If UT1 is used for +** both purposes, errors of order 100 microarcseconds result. +** +** 3) This GMST is compatible with the IAU 2006 precession and must not +** be used with other precession models. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauEra00 Earth rotation angle, IAU 2000 +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2005, +** Astron.Astrophys. 432, 355 +** +*/ + + + +double iauGmst82(double dj1, double dj2) +/* +** - - - - - - - - - - +** i a u G m s t 8 2 +** - - - - - - - - - - +** +** Universal Time to Greenwich mean sidereal time (IAU 1982 model). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** dj1,dj2 double UT1 Julian Date (see note) +** +** Returned (function value): +** double Greenwich mean sidereal time (radians) +** +** Notes: +** +** 1) The UT1 date dj1+dj2 is a Julian Date, apportioned in any +** convenient way between the arguments dj1 and dj2. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, +** among others: +** +** dj1 dj2 +** +** 2450123.7 0 (JD method) +** 2451545 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. The date & time method is +** best matched to the algorithm used: maximum accuracy (or, at +** least, minimum noise) is delivered when the dj1 argument is for +** 0hrs UT1 on the day in question and the dj2 argument lies in the +** range 0 to 1, or vice versa. +** +** 2) The algorithm is based on the IAU 1982 expression. This is +** always described as giving the GMST at 0 hours UT1. In fact, it +** gives the difference between the GMST and the UT, the steady +** 4-minutes-per-day drawing-ahead of ST with respect to UT. When +** whole days are ignored, the expression happens to equal the GMST +** at 0 hours UT1 each day. +** +** 3) In this function, the entire UT1 (the sum of the two arguments +** dj1 and dj2) is used directly as the argument for the standard +** formula, the constant term of which is adjusted by 12 hours to +** take account of the noon phasing of Julian Date. The UT1 is then +** added, but omitting whole days to conserve accuracy. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Transactions of the International Astronomical Union, +** XVIII B, 67 (1983). +** +** Aoki et al., Astron.Astrophys., 105, 359-361 (1982). +** +*/ + + + +double iauGst00a(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G s t 0 0 a +** - - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 2000 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession-nutation. If UT1 is +** used for both purposes, errors of order 100 microarcseconds +** result. +** +** 3) This GAST is compatible with the IAU 2000 resolutions and must be +** used only in conjunction with other IAU 2000 compatible +** components such as precession-nutation. +** +** 4) The result is returned in the range 0 to 2pi. +** +** 5) The algorithm is from Capitaine et al. (2003) and IERS +** Conventions 2003. +** +** Called: +** iauGmst00 Greenwich mean sidereal time, IAU 2000 +** iauEe00a equation of the equinoxes, IAU 2000A +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauGst00b(double uta, double utb) +/* +** - - - - - - - - - - +** i a u G s t 0 0 b +** - - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 2000 +** resolutions but using the truncated nutation model IAU 2000B). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 date uta+utb is a Julian Date, apportioned in any +** convenient way between the argument pair. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, +** among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) The result is compatible with the IAU 2000 resolutions, except +** that accuracy has been compromised for the sake of speed and +** convenience in two respects: +** +** . UT is used instead of TDB (or TT) to compute the precession +** component of GMST and the equation of the equinoxes. This +** results in errors of order 0.1 mas at present. +** +** . The IAU 2000B abridged nutation model (McCarthy & Luzum, 2003) +** is used, introducing errors of up to 1 mas. +** +** 3) This GAST is compatible with the IAU 2000 resolutions and must be +** used only in conjunction with other IAU 2000 compatible +** components such as precession-nutation. +** +** 4) The result is returned in the range 0 to 2pi. +** +** 5) The algorithm is from Capitaine et al. (2003) and IERS +** Conventions 2003. +** +** Called: +** iauGmst00 Greenwich mean sidereal time, IAU 2000 +** iauEe00b equation of the equinoxes, IAU 2000B +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to +** implement the IAU 2000 definition of UT1", Astronomy & +** Astrophysics, 406, 1135-1149 (2003) +** +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Celestial Mechanics & +** Dynamical Astronomy, 85, 37-49 (2003) +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauGst06(double uta, double utb, double tta, double ttb, + double rnpb[3][3]) +/* +** - - - - - - - - - +** i a u G s t 0 6 +** - - - - - - - - - +** +** Greenwich apparent sidereal time, IAU 2006, given the NPB matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** rnpb double[3][3] nutation x precession x bias matrix +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** rotation angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession-nutation. If UT1 is +** used for both purposes, errors of order 100 microarcseconds +** result. +** +** 3) Although the function uses the IAU 2006 series for s+XY/2, it is +** otherwise independent of the precession-nutation model and can in +** practice be used with any equinox-based NPB matrix. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** iauAnp normalize angle into range 0 to 2pi +** iauEra00 Earth rotation angle, IAU 2000 +** iauEors equation of the origins, given NPB matrix and s +** +** Reference: +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +double iauGst06a(double uta, double utb, double tta, double ttb) +/* +** - - - - - - - - - - +** i a u G s t 0 6 a +** - - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 2000 and 2006 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** tta,ttb double TT as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both +** Julian Dates, apportioned in any convenient way between the +** argument pairs. For example, JD(UT1)=2450123.7 could be +** expressed in any of these ways, among others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable (in the case of UT; the TT is not at all critical +** in this respect). The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** rotation angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) Both UT1 and TT are required, UT1 to predict the Earth rotation +** and TT to predict the effects of precession-nutation. If UT1 is +** used for both purposes, errors of order 100 microarcseconds +** result. +** +** 3) This GAST is compatible with the IAU 2000/2006 resolutions and +** must be used only in conjunction with IAU 2006 precession and +** IAU 2000A nutation. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauGst06 Greenwich apparent ST, IAU 2006, given NPB matrix +** +** Reference: +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +double iauGst94(double uta, double utb) +/* +** - - - - - - - - - +** i a u G s t 9 4 +** - - - - - - - - - +** +** Greenwich apparent sidereal time (consistent with IAU 1982/94 +** resolutions). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** uta,utb double UT1 as a 2-part Julian Date (Notes 1,2) +** +** Returned (function value): +** double Greenwich apparent sidereal time (radians) +** +** Notes: +** +** 1) The UT1 date uta+utb is a Julian Date, apportioned in any +** convenient way between the argument pair. For example, +** JD(UT1)=2450123.7 could be expressed in any of these ways, among +** others: +** +** uta utb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 and MJD methods are good compromises +** between resolution and convenience. For UT, the date & time +** method is best matched to the algorithm that is used by the Earth +** Rotation Angle function, called internally: maximum precision is +** delivered when the uta argument is for 0hrs UT1 on the day in +** question and the utb argument lies in the range 0 to 1, or vice +** versa. +** +** 2) The result is compatible with the IAU 1982 and 1994 resolutions, +** except that accuracy has been compromised for the sake of +** convenience in that UT is used instead of TDB (or TT) to compute +** the equation of the equinoxes. +** +** 3) This GAST must be used only in conjunction with contemporaneous +** IAU standards such as 1976 precession, 1980 obliquity and 1982 +** nutation. It is not compatible with the IAU 2000 resolutions. +** +** 4) The result is returned in the range 0 to 2pi. +** +** Called: +** iauGmst82 Greenwich mean sidereal time, IAU 1982 +** iauEqeq94 equation of the equinoxes, IAU 1994 +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** IAU Resolution C7, Recommendation 3 (1994) +** +*/ + + + +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) +/* +** - - - - - - - - - +** i a u H 2 f k 5 +** - - - - - - - - - +** +** Transform Hipparcos star data into the FK5 (J2000.0) system. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (all Hipparcos, epoch J2000.0): +** rh double RA (radians) +** dh double Dec (radians) +** drh double proper motion in RA (dRA/dt, rad/Jyear) +** ddh double proper motion in Dec (dDec/dt, rad/Jyear) +** pxh double parallax (arcsec) +** rvh double radial velocity (km/s, positive = receding) +** +** Returned (all FK5, equinox J2000.0, epoch J2000.0): +** r5 double RA (radians) +** d5 double Dec (radians) +** dr5 double proper motion in RA (dRA/dt, rad/Jyear) +** dd5 double proper motion in Dec (dDec/dt, rad/Jyear) +** px5 double parallax (arcsec) +** rv5 double radial velocity (km/s, positive = receding) +** +** Notes: +** +** 1) This function transforms Hipparcos star positions and proper +** motions into FK5 J2000.0. +** +** 2) The proper motions in RA are dRA/dt rather than +** cos(Dec)*dRA/dt, and are per year rather than per century. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure +** rotation and spin; zonal errors in the FK5 catalog are not +** taken into account. +** +** 4) See also iauFk52h, iauFk5hz, iauHfk5z. +** +** Called: +** iauStarpv star catalog data to space motion pv-vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauRv2m r-vector to r-matrix +** iauRxp product of r-matrix and p-vector +** iauTrxp product of transpose of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPvstar space motion pv-vector to star catalog data +** +** Reference: +** +** F.Mignard & M.Froeschle, Astron.Astrophys., 354, 732-739 (2000). +** +*/ + + + +void iauHd2ae (double ha, double dec, double phi, + double *az, double *el) +/* +** - - - - - - - - - +** i a u H d 2 a e +** - - - - - - - - - +** +** Equatorial to horizon coordinates: transform hour angle and +** declination to azimuth and altitude. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ha double hour angle (local) +** dec double declination +** phi double site latitude +** +** Returned: +** *az double azimuth +** *el double altitude (informally, elevation) +** +** Notes: +** +** 1) All the arguments are angles in radians. +** +** 2) Azimuth is returned in the range 0-2pi; north is zero, and east +** is +pi/2. Altitude is returned in the range +/- pi/2. +** +** 3) The latitude phi is pi/2 minus the angle between the Earth's +** rotation axis and the adopted zenith. In many applications it +** will be sufficient to use the published geodetic latitude of the +** site. In very precise (sub-arcsecond) applications, phi can be +** corrected for polar motion. +** +** 4) The returned azimuth az is with respect to the rotational north +** pole, as opposed to the ITRS pole, and for sub-arcsecond +** accuracy will need to be adjusted for polar motion if it is to +** be with respect to north on a map of the Earth's surface. +** +** 5) Should the user wish to work with respect to the astronomical +** zenith rather than the geodetic zenith, phi will need to be +** adjusted for deflection of the vertical (often tens of +** arcseconds), and the zero point of the hour angle ha will also +** be affected. +** +** 6) The transformation is the same as Vh = Rz(pi)*Ry(pi/2-phi)*Ve, +** where Vh and Ve are lefthanded unit vectors in the (az,el) and +** (ha,dec) systems respectively and Ry and Rz are rotations about +** first the y-axis and then the z-axis. (n.b. Rz(pi) simply +** reverses the signs of the x and y components.) For efficiency, +** the algorithm is written out rather than calling other utility +** functions. For applications that require even greater +** efficiency, additional savings are possible if constant terms +** such as functions of latitude are computed once and for all. +** +** 7) Again for efficiency, no range checking of arguments is carried +** out. +** +** Last revision: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double sh, ch, sd, cd, sp, cp, x, y, z, r, a; + + +/* Useful trig functions. */ + sh = sin(ha); + ch = cos(ha); + sd = sin(dec); + cd = cos(dec); + sp = sin(phi); + cp = cos(phi); + +/* Az,Alt unit vector. */ + x = - ch*cd*sp + sd*cp; + y = - sh*cd; + z = ch*cd*cp + sd*sp; + +/* To spherical. */ + r = sqrt(x*x + y*y); + a = (r != 0.0) ? atan2(y,x) : 0.0; + *az = (a < 0.0) ? a+D2PI : a; + *el = atan2(z,r); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} + + + +double iauHd2pa (double ha, double dec, double phi) +/* +** - - - - - - - - - +** i a u H d 2 p a +** - - - - - - - - - +** +** Parallactic angle for a given hour angle and declination. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ha double hour angle +** dec double declination +** phi double site latitude +** +** Returned (function value): +** double parallactic angle +** +** Notes: +** +** 1) All the arguments are angles in radians. +** +** 2) The parallactic angle at a point in the sky is the position +** angle of the vertical, i.e. the angle between the directions to +** the north celestial pole and to the zenith respectively. +** +** 3) The result is returned in the range -pi to +pi. +** +** 4) At the pole itself a zero result is returned. +** +** 5) The latitude phi is pi/2 minus the angle between the Earth's +** rotation axis and the adopted zenith. In many applications it +** will be sufficient to use the published geodetic latitude of the +** site. In very precise (sub-arcsecond) applications, phi can be +** corrected for polar motion. +** +** 6) Should the user wish to work with respect to the astronomical +** zenith rather than the geodetic zenith, phi will need to be +** adjusted for deflection of the vertical (often tens of +** arcseconds), and the zero point of the hour angle ha will also +** be affected. +** +** Reference: +** Smart, W.M., "Spherical Astronomy", Cambridge University Press, +** 6th edition (Green, 1977), p49. +** +** Last revision: 2017 September 12 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ +{ + double cp, cqsz, sqsz; + + + cp = cos(phi); + sqsz = cp*sin(ha); + cqsz = sin(phi)*cos(dec) - cp*sin(dec)*cos(ha); + return ( ( sqsz != 0.0 || cqsz != 0.0 ) ? atan2(sqsz,cqsz) : 0.0 ); + +/* Finished. */ + +/*---------------------------------------------------------------------- +** +** Copyright (C) 2023 +** 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 +** +**--------------------------------------------------------------------*/ +} + + + +void iauHfk5z(double rh, double dh, double date1, double date2, + double *r5, double *d5, double *dr5, double *dd5) +/* +** - - - - - - - - - +** i a u H f k 5 z +** - - - - - - - - - +** +** Transform a Hipparcos star position into FK5 J2000.0, assuming +** zero Hipparcos proper motion. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rh double Hipparcos RA (radians) +** dh double Hipparcos Dec (radians) +** date1,date2 double TDB date (Note 1) +** +** Returned (all FK5, equinox J2000.0, date date1+date2): +** r5 double RA (radians) +** d5 double Dec (radians) +** dr5 double RA proper motion (rad/year, Note 4) +** dd5 double Dec proper motion (rad/year, Note 4) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 3) The FK5 to Hipparcos transformation is modeled as a pure rotation +** and spin; zonal errors in the FK5 catalog are not taken into +** account. +** +** 4) It was the intention that Hipparcos should be a close +** approximation to an inertial frame, so that distant objects have +** zero proper motion; such objects have (in general) non-zero +** proper motion in FK5, and this function returns those fictitious +** proper motions. +** +** 5) The position returned by this function is in the FK5 J2000.0 +** reference system but at date date1+date2. +** +** 6) See also iauFk52h, iauH2fk5, iauFk5hz. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauFk5hip FK5 to Hipparcos rotation and spin +** iauRxp product of r-matrix and p-vector +** iauSxp multiply p-vector by scalar +** iauRxr product of two r-matrices +** iauTrxp product of transpose of r-matrix and p-vector +** iauPxp vector product of two p-vectors +** iauPv2s pv-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739. +** +*/ + + + +void iauIcrs2g ( double dr, double dd, double *dl, double *db ) +/* +** - - - - - - - - - - +** i a u I c r s 2 g +** - - - - - - - - - - +** +** Transformation from ICRS to Galactic coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dr double ICRS right ascension (radians) +** dd double ICRS declination (radians) +** +** Returned: +** dl double Galactic longitude (radians) +** db double Galactic latitude (radians) +** +** Notes: +** +** 1) The IAU 1958 system of Galactic coordinates was defined with +** respect to the now obsolete reference system FK4 B1950.0. When +** interpreting the system in a modern context, several factors have +** to be taken into account: +** +** . The inclusion in FK4 positions of the E-terms of aberration. +** +** . The distortion of the FK4 proper motion system by differential +** Galactic rotation. +** +** . The use of the B1950.0 equinox rather than the now-standard +** J2000.0. +** +** . The frame bias between ICRS and the J2000.0 mean place system. +** +** The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation +** matrix that transforms directly between ICRS and Galactic +** coordinates with the above factors taken into account. The +** matrix is derived from three angles, namely the ICRS coordinates +** of the Galactic pole and the longitude of the ascending node of +** the Galactic equator on the ICRS equator. They are given in +** degrees to five decimal places and for canonical purposes are +** regarded as exact. In the Hipparcos Catalogue the matrix +** elements are given to 10 decimal places (about 20 microarcsec). +** In the present SOFA function the matrix elements have been +** recomputed from the canonical three angles and are given to 30 +** decimal places. +** +** 2) The inverse transformation is performed by the function iauG2icrs. +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** iauS2c spherical coordinates to unit vector +** iauRxp product of r-matrix and p-vector +** iauC2s p-vector to spherical +** +** Reference: +** Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho +** catalogues. Astrometric and photometric star catalogues +** derived from the ESA Hipparcos Space Astrometry Mission. ESA +** Publications Division, Noordwijk, Netherlands. +** +*/ + + + +void iauIr(double r[3][3]) +/* +** - - - - - - +** i a u I r +** - - - - - - +** +** Initialize an r-matrix to the identity matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Returned: +** r double[3][3] r-matrix +** +*/ + + + +int iauJd2cal(double dj1, double dj2, + int *iy, int *im, int *id, double *fd) +/* +** - - - - - - - - - - +** i a u J d 2 c a l +** - - - - - - - - - - +** +** Julian Date to Gregorian year, month, day, and fraction of a day. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** dj1,dj2 double Julian Date (Notes 1, 2) +** +** Returned (arguments): +** iy int year +** im int month +** id int day +** fd double fraction of day +** +** Returned (function value): +** int status: +** 0 = OK +** -1 = unacceptable date (Note 1) +** +** Notes: +** +** 1) The earliest valid date is -68569.5 (-4900 March 1). The +** largest value accepted is 1e9. +** +** 2) The Julian Date is apportioned in any convenient way between +** the arguments dj1 and dj2. For example, JD=2450123.7 could +** be expressed in any of these ways, among others: +** +** dj1 dj2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** Separating integer and fraction uses the "compensated summation" +** algorithm of Kahan-Neumaier to preserve as much precision as +** possible irrespective of the jd1+jd2 apportionment. +** +** 3) In early eras the conversion is from the "proleptic Gregorian +** calendar"; no account is taken of the date(s) of adoption of +** the Gregorian calendar, nor is the AD/BC numbering convention +** observed. +** +** References: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 12.92 (p604). +** +** Klein, A., A Generalized Kahan-Babuska-Summation-Algorithm. +** Computing, 76, 279-293 (2006), Section 3. +** +*/ + + + +int iauJdcalf(int ndp, double dj1, double dj2, int iymdf[4]) +/* +** - - - - - - - - - - +** i a u J d c a l f +** - - - - - - - - - - +** +** Julian Date to Gregorian Calendar, expressed in a form convenient +** for formatting messages: rounded to a specified precision. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ndp int number of decimal places of days in fraction +** dj1,dj2 double dj1+dj2 = Julian Date (Note 1) +** +** Returned: +** iymdf int[4] year, month, day, fraction in Gregorian +** calendar +** +** Returned (function value): +** int status: +** -1 = date out of range +** 0 = OK +** +1 = ndp not 0-9 (interpreted as 0) +** +** Notes: +** +** 1) The Julian Date is apportioned in any convenient way between +** the arguments dj1 and dj2. For example, JD=2450123.7 could +** be expressed in any of these ways, among others: +** +** dj1 dj2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** 2) In early eras the conversion is from the "Proleptic Gregorian +** Calendar"; no account is taken of the date(s) of adoption of +** the Gregorian Calendar, nor is the AD/BC numbering convention +** observed. +** +** 3) See also the function iauJd2cal. +** +** 4) The number of decimal places ndp should be 4 or less if internal +** overflows are to be avoided on platforms which use 16-bit +** integers. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 12.92 (p604). +** +*/ + + + +void iauLd(double bm, double p[3], double q[3], double e[3], + double em, double dlim, double p1[3]) +/* +** - - - - - - +** i a u L d +** - - - - - - +** +** Apply light deflection by a solar-system body, as part of +** transforming coordinate direction into natural direction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** bm double mass of the gravitating body (solar masses) +** p double[3] direction from observer to source (unit vector) +** q double[3] direction from body to source (unit vector) +** e double[3] direction from body to observer (unit vector) +** em double distance from body to observer (au) +** dlim double deflection limiter (Note 4) +** +** Returned: +** p1 double[3] observer to deflected source (unit vector) +** +** Notes: +** +** 1) The algorithm is based on Expr. (70) in Klioner (2003) and +** Expr. (7.63) in the Explanatory Supplement (Urban & Seidelmann +** 2013), with some rearrangement to minimize the effects of machine +** precision. +** +** 2) The mass parameter bm can, as required, be adjusted in order to +** allow for such effects as quadrupole field. +** +** 3) The barycentric position of the deflecting body should ideally +** correspond to the time of closest approach of the light ray to +** the body. +** +** 4) The deflection limiter parameter dlim is phi^2/2, where phi is +** the angular separation (in radians) between source and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. +** +** 5) The returned vector p1 is not normalized, but the consequential +** departure from unit magnitude is always negligible. +** +** 6) The arguments p and p1 can be the same array. +** +** 7) To accumulate total light deflection taking into account the +** contributions from several bodies, call the present function for +** each body in succession, in decreasing order of distance from the +** observer. +** +** 8) For efficiency, validation is omitted. The supplied vectors must +** be of unit magnitude, and the deflection limiter non-zero and +** positive. +** +** References: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013). +** +** Klioner, Sergei A., "A practical relativistic model for micro- +** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003). +** +** Called: +** iauPdp scalar product of two p-vectors +** iauPxp vector product of two p-vectors +** +*/ + + + +void iauLdn(int n, iauLDBODY b[], double ob[3], double sc[3], + double sn[3]) +/*+ +** - - - - - - - +** i a u L d n +** - - - - - - - +** +** For a star, apply light deflection by multiple solar-system bodies, +** as part of transforming coordinate direction into natural direction. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** n int number of bodies (note 1) +** b iauLDBODY[n] data for each of the n bodies (Notes 1,2): +** bm double mass of the body (solar masses, Note 3) +** dl double deflection limiter (Note 4) +** pv [2][3] barycentric PV of the body (au, au/day) +** ob double[3] barycentric position of the observer (au) +** sc double[3] observer to star coord direction (unit vector) +** +** Returned: +** sn double[3] observer to deflected star (unit vector) +** +** 1) The array b contains n entries, one for each body to be +** considered. If n = 0, no gravitational light deflection will be +** applied, not even for the Sun. +** +** 2) The array b should include an entry for the Sun as well as for +** any planet or other body to be taken into account. The entries +** should be in the order in which the light passes the body. +** +** 3) In the entry in the b array for body i, the mass parameter +** b[i].bm can, as required, be adjusted in order to allow for such +** effects as quadrupole field. +** +** 4) The deflection limiter parameter b[i].dl is phi^2/2, where phi is +** the angular separation (in radians) between star and body at +** which limiting is applied. As phi shrinks below the chosen +** threshold, the deflection is artificially reduced, reaching zero +** for phi = 0. Example values suitable for a terrestrial +** observer, together with masses, are as follows: +** +** body i b[i].bm b[i].dl +** +** Sun 1.0 6e-6 +** Jupiter 0.00095435 3e-9 +** Saturn 0.00028574 3e-10 +** +** 5) For cases where the starlight passes the body before reaching the +** observer, the body is placed back along its barycentric track by +** the light time from that point to the observer. For cases where +** the body is "behind" the observer no such shift is applied. If +** a different treatment is preferred, the user has the option of +** instead using the iauLd function. Similarly, iauLd can be used +** for cases where the source is nearby, not a star. +** +** 6) The returned vector sn is not normalized, but the consequential +** departure from unit magnitude is always negligible. +** +** 7) The arguments sc and sn can be the same array. +** +** 8) For efficiency, validation is omitted. The supplied masses must +** be greater than zero, the position and velocity vectors must be +** right, and the deflection limiter greater than zero. +** +** Reference: +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013), Section 7.2.4. +** +** Called: +** iauCp copy p-vector +** iauPdp scalar product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPpsp p-vector plus scaled p-vector +** iauPn decompose p-vector into modulus and direction +** iauLd light deflection by a solar-system body +** +*/ + + + +void iauLdsun(double p[3], double e[3], double em, double p1[3]) +/* +** - - - - - - - - - +** i a u L d s u n +** - - - - - - - - - +** +** Deflection of starlight by the Sun. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** p double[3] direction from observer to star (unit vector) +** e double[3] direction from Sun to observer (unit vector) +** em double distance from Sun to observer (au) +** +** Returned: +** p1 double[3] observer to deflected star (unit vector) +** +** Notes: +** +** 1) The source is presumed to be sufficiently distant that its +** directions seen from the Sun and the observer are essentially +** the same. +** +** 2) The deflection is restrained when the angle between the star and +** the center of the Sun is less than a threshold value, falling to +** zero deflection for zero separation. The chosen threshold value +** is within the solar limb for all solar-system applications, and +** is about 5 arcminutes for the case of a terrestrial observer. +** +** 3) The arguments p and p1 can be the same array. +** +** Called: +** iauLd light deflection by a solar-system body +** +*/ + + + +void iauLteceq(double epj, double dl, double db, double *dr, double *dd) +/* +** - - - - - - - - - - +** i a u L t e c e q +** - - - - - - - - - - +** +** Transformation from ecliptic coordinates (mean equinox and ecliptic +** of date) to ICRS RA,Dec, using a long-term precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** dl,db double ecliptic longitude and latitude (radians) +** +** Returned: +** dr,dd double ICRS right ascension and declination (radians) +** +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 2) The transformation is approximately that from ecliptic longitude +** and latitude (mean equinox and ecliptic of date) to mean J2000.0 +** right ascension and declination, with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauTrxp product of transpose of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauLtecm(double epj, double rm[3][3]) +/* +** - - - - - - - - - +** i a u L t e c m +** - - - - - - - - - +** +** ICRS equatorial to ecliptic rotation matrix, long-term. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rm double[3][3] ICRS to ecliptic rotation matrix +** +** Notes: +** +** 1) The matrix is in the sense +** +** E_ep = rm x P_ICRS, +** +** where P_ICRS is a vector with respect to ICRS right ascension +** and declination axes and E_ep is the same vector with respect to +** the (inertial) ecliptic and equinox of epoch epj. +** +** 2) P_ICRS is a free vector, merely a direction, typically of unit +** magnitude, and not bound to any particular spatial origin, such +** as the Earth, Sun or SSB. No assumptions are made about whether +** it represents starlight and embodies astrometric effects such as +** parallax or aberration. The transformation is approximately that +** between mean J2000.0 right ascension and declination and ecliptic +** longitude and latitude, with only frame bias (always less than +** 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauLteqec(double epj, double dr, double dd, double *dl, double *db) +/* +** - - - - - - - - - - +** i a u L t e q e c +** - - - - - - - - - - +** +** Transformation from ICRS RA,Dec to ecliptic coordinates (mean equinox +** and ecliptic of date), using a long-term precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** dr,dd double ICRS right ascension and declination (radians) +** +** Returned: +** dl,db double ecliptic longitude and latitude (radians) +** +** 1) No assumptions are made about whether the coordinates represent +** starlight and embody astrometric effects such as parallax or +** aberration. +** +** 2) The transformation is approximately that from mean J2000.0 right +** ascension and declination to ecliptic longitude and latitude +** (mean equinox and ecliptic of date), with only frame bias (always +** less than 25 mas) to disturb this classical picture. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauLtecm J2000.0 to ecliptic rotation matrix, long term +** iauRxp product of r-matrix and p-vector +** iauC2s unit vector to spherical coordinates +** iauAnp normalize angle into range 0 to 2pi +** iauAnpm normalize angle into range +/- pi +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauLtp(double epj, double rp[3][3]) +/* +** - - - - - - - +** i a u L t p +** - - - - - - - +** +** Long-term precession matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rp double[3][3] precession matrix, J2000.0 to date +** +** Notes: +** +** 1) The matrix is in the sense +** +** P_date = rp x P_J2000, +** +** where P_J2000 is a vector with respect to the J2000.0 mean +** equator and equinox and P_date is the same vector with respect to +** the mean equator and equinox of epoch epj. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** Called: +** iauLtpequ equator pole, long term +** iauLtpecl ecliptic pole, long term +** iauPxp vector product +** iauPn normalize vector +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauLtpb(double epj, double rpb[3][3]) +/* +** - - - - - - - - +** i a u L t p b +** - - - - - - - - +** +** Long-term precession matrix, including ICRS frame bias. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** rpb double[3][3] precession+bias matrix, J2000.0 to date +** +** Notes: +** +** 1) The matrix is in the sense +** +** P_date = rpb x P_ICRS, +** +** where P_ICRS is a vector in the Geocentric Celestial Reference +** System, and P_date is the vector with respect to the Celestial +** Intermediate Reference System at that date but with nutation +** neglected. +** +** 2) A first order frame bias formulation is used, of sub- +** microarcsecond accuracy compared with a full 3D rotation. +** +** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauLtpecl(double epj, double vec[3]) +/* +** - - - - - - - - - - +** i a u L t p e c l +** - - - - - - - - - - +** +** Long-term precession of the ecliptic. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** vec double[3] ecliptic pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauLtpequ(double epj, double veq[3]) +/* +** - - - - - - - - - - +** i a u L t p e q u +** - - - - - - - - - - +** +** Long-term precession of the equator. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epj double Julian epoch (TT) +** +** Returned: +** veq double[3] equator pole unit vector +** +** Notes: +** +** 1) The returned vector is with respect to the J2000.0 mean equator +** and equinox. +** +** 2) The Vondrak et al. (2011, 2012) 400 millennia precession model +** agrees with the IAU 2006 precession at J2000.0 and stays within +** 100 microarcseconds during the 20th and 21st centuries. It is +** accurate to a few arcseconds throughout the historical period, +** worsening to a few tenths of a degree at the end of the +** +/- 200,000 year time span. +** +** References: +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession +** expressions, valid for long time intervals, Astron.Astrophys. 534, +** A22 +** +** Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession +** expressions, valid for long time intervals (Corrigendum), +** Astron.Astrophys. 541, C1 +** +*/ + + + +void iauMoon98 ( double date1, double date2, double pv[2][3] ) +/* +** - - - - - - - - - - +** i a u M o o n 9 8 +** - - - - - - - - - - +** +** Approximate geocentric position and velocity of the Moon. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** n.b. Not IAU-endorsed and without canonical status. +** +** Given: +** date1 double TT date part A (Notes 1,4) +** date2 double TT date part B (Notes 1,4) +** +** Returned: +** pv double[2][3] Moon p,v, GCRS (au, au/d, Note 5) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. The limited +** accuracy of the present algorithm is such that any of the methods +** is satisfactory. +** +** 2) This function is a full implementation of the algorithm +** published by Meeus (see reference) except that the light-time +** correction to the Moon's mean longitude has been omitted. +** +** 3) Comparisons with ELP/MPP02 over the interval 1950-2100 gave RMS +** errors of 2.9 arcsec in geocentric direction, 6.1 km in position +** and 36 mm/s in velocity. The worst case errors were 18.3 arcsec +** in geocentric direction, 31.7 km in position and 172 mm/s in +** velocity. +** +** 4) The original algorithm is expressed in terms of "dynamical time", +** which can either be TDB or TT without any significant change in +** accuracy. UT cannot be used without incurring significant errors +** (30 arcsec in the present era) due to the Moon's 0.5 arcsec/sec +** movement. +** +** 5) The result is with respect to the GCRS (the same as J2000.0 mean +** equator and equinox to within 23 mas). +** +** 6) Velocity is obtained by a complete analytical differentiation +** of the Meeus model. +** +** 7) The Meeus algorithm generates position and velocity in mean +** ecliptic coordinates of date, which the present function then +** rotates into GCRS. Because the ecliptic system is precessing, +** there is a coupling between this spin (about 1.4 degrees per +** century) and the Moon position that produces a small velocity +** contribution. In the present function this effect is neglected +** as it corresponds to a maximum difference of less than 3 mm/s and +** increases the RMS error by only 0.4%. +** +** References: +** +** Meeus, J., Astronomical Algorithms, 2nd edition, Willmann-Bell, +** 1998, p337. +** +** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 +** +** Defined in sofam.h: +** DAU astronomical unit (m) +** DJC days per Julian century +** DJ00 reference epoch (J2000.0), Julian Date +** DD2R degrees to radians +** +** Called: +** iauS2pv spherical coordinates to pv-vector +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRx rotate around X-axis +** iauRxpv product of r-matrix and pv-vector +** +*/ + + + +void iauNum00a(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u m 0 0 a +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 2000A model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** 3) A faster, but slightly less accurate, result (about 1 mas) can be +** obtained by using instead the iauNum00b function. +** +** Called: +** iauPn00a bias/precession/nutation, IAU 2000A +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +*/ + + + +void iauNum00b(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u m 0 0 b +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 2000B model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauNum00a function. +** +** Called: +** iauPn00b bias/precession/nutation, IAU 2000B +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +*/ + + + +void iauNum06a(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u m 0 6 a +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 2006/2000A model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), where +** the p-vector V(true) is with respect to the true equatorial triad +** of date and the p-vector V(mean) is with respect to the mean +** equatorial triad of date. +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** iauNut06a nutation, IAU 2006/2000A +** iauNumat form nutation matrix +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +*/ + + + +void iauNumat(double epsa, double dpsi, double deps, double rmatn[3][3]) +/* +** - - - - - - - - - +** i a u N u m a t +** - - - - - - - - - +** +** Form the matrix of nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** epsa double mean obliquity of date (Note 1) +** dpsi,deps double nutation (Note 2) +** +** Returned: +** rmatn double[3][3] nutation matrix (Note 3) +** +** Notes: +** +** +** 1) The supplied mean obliquity epsa, must be consistent with the +** precession-nutation models from which dpsi and deps were obtained. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. +** +** 3) The matrix operates in the sense V(true) = rmatn * V(mean), +** where the p-vector V(true) is with respect to the true +** equatorial triad of date and the p-vector V(mean) is with +** respect to the mean equatorial triad of date. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRx rotate around X-axis +** iauRz rotate around Z-axis +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222-3 (p114). +** +*/ + + + +void iauNut00a(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - - +** i a u N u t 0 0 a +** - - - - - - - - - - +** +** Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation +** with free core nutation omitted). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the equinox and ecliptic of date. The +** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) +** value of 84381.448 arcsec. +** +** Both the luni-solar and planetary nutations are included. The +** latter are due to direct planetary nutations and the +** perturbations of the lunar and terrestrial orbits. +** +** 3) The function computes the MHB2000 nutation series with the +** associated corrections for planetary nutations. It is an +** implementation of the nutation part of the IAU 2000A precession- +** nutation model, formally adopted by the IAU General Assembly in +** 2000, namely MHB2000 (Mathews et al. 2002), but with the free +** core nutation (FCN - see Note 4) omitted. +** +** 4) The full MHB2000 model also contains contributions to the +** nutations in longitude and obliquity due to the free-excitation +** of the free-core-nutation during the period 1979-2000. These FCN +** terms, which are time-dependent and unpredictable, are NOT +** included in the present function and, if required, must be +** independently computed. With the FCN corrections included, the +** present function delivers a pole which is at current epochs +** accurate to a few hundred microarcseconds. The omission of FCN +** introduces further errors of about that size. +** +** 5) The present function provides classical nutation. The MHB2000 +** algorithm, from which it is adapted, deals also with (i) the +** offsets between the GCRS and mean poles and (ii) the adjustments +** in longitude and obliquity due to the changed precession rates. +** These additional functions, namely frame bias and precession +** adjustments, are supported by the SOFA functions iauBi00 and +** iauPr00. +** +** 6) The MHB2000 algorithm also provides "total" nutations, comprising +** the arithmetic sum of the frame bias, precession adjustments, +** luni-solar nutation and planetary nutation. These total +** nutations can be used in combination with an existing IAU 1976 +** precession implementation, such as iauPmat76, to deliver GCRS- +** to-true predictions of sub-mas accuracy at current dates. +** However, there are three shortcomings in the MHB2000 model that +** must be taken into account if more accurate or definitive results +** are required (see Wallace 2002): +** +** (i) The MHB2000 total nutations are simply arithmetic sums, +** yet in reality the various components are successive Euler +** rotations. This slight lack of rigor leads to cross terms +** that exceed 1 mas after a century. The rigorous procedure +** is to form the GCRS-to-true rotation matrix by applying the +** bias, precession and nutation in that order. +** +** (ii) Although the precession adjustments are stated to be with +** respect to Lieske et al. (1977), the MHB2000 model does +** not specify which set of Euler angles are to be used and +** how the adjustments are to be applied. The most literal +** and straightforward procedure is to adopt the 4-rotation +** epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR +** to psi_A and DEPSPR to both omega_A and eps_A. +** +** (iii) The MHB2000 model predates the determination by Chapront +** et al. (2002) of a 14.6 mas displacement between the +** J2000.0 mean equinox and the origin of the ICRS frame. It +** should, however, be noted that neglecting this displacement +** when calculating star coordinates does not lead to a +** 14.6 mas change in right ascension, only a small second- +** order distortion in the pattern of the precession-nutation +** effect. +** +** For these reasons, the SOFA functions do not generate the "total +** nutations" directly, though they can of course easily be +** generated by calling iauBi00, iauPr00 and the present function +** and adding the results. +** +** 7) The MHB2000 model contains 41 instances where the same frequency +** appears multiple times, of which 38 are duplicates and three are +** triplicates. To keep the present code close to the original MHB +** algorithm, this small inefficiency has not been corrected. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFaf03 mean argument of the latitude of the Moon +** iauFaom03 mean longitude of the Moon's ascending node +** iauFame03 mean longitude of Mercury +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFama03 mean longitude of Mars +** iauFaju03 mean longitude of Jupiter +** iauFasa03 mean longitude of Saturn +** iauFaur03 mean longitude of Uranus +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, +** Astron.Astrophys. 387, 700 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. +** 107, B4. The MHB_2000 code itself was obtained on 9th September +** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002) +** +*/ + + + +void iauNut00b(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - - +** i a u N u t 0 0 b +** - - - - - - - - - - +** +** Nutation, IAU 2000B model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the equinox and ecliptic of date. The +** obliquity at J2000.0 is assumed to be the Lieske et al. (1977) +** value of 84381.448 arcsec. (The errors that result from using +** this function with the IAU 2006 value of 84381.406 arcsec can be +** neglected.) +** +** The nutation model consists only of luni-solar terms, but +** includes also a fixed offset which compensates for certain long- +** period planetary terms (Note 7). +** +** 3) This function is an implementation of the IAU 2000B abridged +** nutation model formally adopted by the IAU General Assembly in +** 2000. The function computes the MHB_2000_SHORT luni-solar +** nutation series (Luzum 2001), but without the associated +** corrections for the precession rate adjustments and the offset +** between the GCRS and J2000.0 mean poles. +** +** 4) The full IAU 2000A (MHB2000) nutation model contains nearly 1400 +** terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only +** 77 terms, plus additional simplifications, yet still delivers +** results of 1 mas accuracy at present epochs. This combination of +** accuracy and size makes the IAU 2000B abridged nutation model +** suitable for most practical applications. +** +** The function delivers a pole accurate to 1 mas from 1900 to 2100 +** (usually better than 1 mas, very occasionally just outside +** 1 mas). The full IAU 2000A model, which is implemented in the +** function iauNut00a (q.v.), delivers considerably greater accuracy +** at current dates; however, to realize this improved accuracy, +** corrections for the essentially unpredictable free-core-nutation +** (FCN) must also be included. +** +** 5) The present function provides classical nutation. The +** MHB_2000_SHORT algorithm, from which it is adapted, deals also +** with (i) the offsets between the GCRS and mean poles and (ii) the +** adjustments in longitude and obliquity due to the changed +** precession rates. These additional functions, namely frame bias +** and precession adjustments, are supported by the SOFA functions +** iauBi00 and iauPr00. +** +** 6) The MHB_2000_SHORT algorithm also provides "total" nutations, +** comprising the arithmetic sum of the frame bias, precession +** adjustments, and nutation (luni-solar + planetary). These total +** nutations can be used in combination with an existing IAU 1976 +** precession implementation, such as iauPmat76, to deliver GCRS- +** to-true predictions of mas accuracy at current epochs. However, +** for symmetry with the iauNut00a function (q.v. for the reasons), +** the SOFA functions do not generate the "total nutations" +** directly. Should they be required, they could of course easily +** be generated by calling iauBi00, iauPr00 and the present function +** and adding the results. +** +** 7) The IAU 2000B model includes "planetary bias" terms that are +** fixed in size but compensate for long-period nutations. The +** amplitudes quoted in McCarthy & Luzum (2003), namely +** Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for +** the "total nutations" method described in Note 6. The Luzum +** (2001) values used in this SOFA implementation, namely -0.135 mas +** and +0.388 mas, are optimized for the "rigorous" method, where +** frame bias, precession and nutation are applied separately and in +** that order. During the interval 1995-2050, the SOFA +** implementation delivers a maximum error of 1.001 mas (not +** including FCN). +** +** References: +** +** Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions +** for the precession quantities based upon the IAU /1976/ system of +** astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977) +** +** Luzum, B., private communication, 2001 (Fortran code +** MHB_2000_SHORT) +** +** McCarthy, D.D. & Luzum, B.J., "An abridged model of the +** precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. +** 85, 37-49 (2003) +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994) +** +*/ + + + +void iauNut06a(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - - +** i a u N u t 0 6 a +** - - - - - - - - - - +** +** IAU 2000A nutation with adjustments to match the IAU 2006 +** precession. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation, luni-solar + planetary (Note 2) +** +** Status: canonical model. +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components in longitude and obliquity are in radians +** and with respect to the mean equinox and ecliptic of date, +** IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. +** 2005). +** +** 3) The function first computes the IAU 2000A nutation, then applies +** adjustments for (i) the consequences of the change in obliquity +** from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the +** secular variation in the Earth's dynamical form factor J2. +** +** 4) The present function provides classical nutation, complementing +** the IAU 2000 frame bias and IAU 2006 precession. It delivers a +** pole which is at current epochs accurate to a few tens of +** microarcseconds, apart from the free core nutation. +** +** Called: +** iauNut00a nutation, IAU 2000A +** +** References: +** +** Chapront, J., Chapront-Touze, M. & Francou, G. 2002, +** Astron.Astrophys. 387, 700 +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, +** Astron.Astrophys. 58, 1-16 +** +** Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. +** 107, B4. The MHB_2000 code itself was obtained on 9th September +** 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002) +** +*/ + + + +void iauNut80(double date1, double date2, double *dpsi, double *deps) +/* +** - - - - - - - - - +** i a u N u t 8 0 +** - - - - - - - - - +** +** Nutation, IAU 1980 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi double nutation in longitude (radians) +** deps double nutation in obliquity (radians) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components are with respect to the ecliptic of +** date. +** +** Called: +** iauAnpm normalize angle into range +/- pi +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.222 (p111). +** +*/ + + + +void iauNutm80(double date1, double date2, double rmatn[3][3]) +/* +** - - - - - - - - - - +** i a u N u t m 8 0 +** - - - - - - - - - - +** +** Form the matrix of nutation for a given date, IAU 1980 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TDB date (Note 1) +** +** Returned: +** rmatn double[3][3] nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(true) = rmatn * V(mean), +** where the p-vector V(true) is with respect to the true +** equatorial triad of date and the p-vector V(mean) is with +** respect to the mean equatorial triad of date. +** +** Called: +** iauNut80 nutation, IAU 1980 +** iauObl80 mean obliquity, IAU 1980 +** iauNumat form nutation matrix +** +*/ + + + +double iauObl06(double date1, double date2) +/* +** - - - - - - - - - +** i a u O b l 0 6 +** - - - - - - - - - +** +** Mean obliquity of the ecliptic, IAU 2006 precession model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double obliquity of the ecliptic (radians, Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result is the angle between the ecliptic and mean equator of +** date date1+date2. +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +*/ + + + +double iauObl80(double date1, double date2) +/* +** - - - - - - - - - +** i a u O b l 8 0 +** - - - - - - - - - +** +** Mean obliquity of the ecliptic, IAU 1980 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double obliquity of the ecliptic (radians, Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The result is the angle between the ecliptic and mean equator of +** date date1+date2. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Expression 3.222-1 (p114). +** +*/ + + + +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) +/* +** - - - - - - - - +** i a u P 0 6 e +** - - - - - - - - +** +** Precession angles, IAU 2006, equinox based. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical models. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (see Note 2): +** eps0 double epsilon_0 +** psia double psi_A +** oma double omega_A +** bpa double P_A +** bqa double Q_A +** pia double pi_A +** bpia double Pi_A +** epsa double obliquity epsilon_A +** chia double chi_A +** za double z_A +** zetaa double zeta_A +** thetaa double theta_A +** pa double p_A +** gam double F-W angle gamma_J2000 +** phi double F-W angle phi_J2000 +** psi double F-W angle psi_J2000 +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) This function returns the set of equinox based angles for the +** Capitaine et al. "P03" precession theory, adopted by the IAU in +** 2006. The angles are set out in Table 1 of Hilton et al. (2006): +** +** eps0 epsilon_0 obliquity at J2000.0 +** psia psi_A luni-solar precession +** oma omega_A inclination of equator wrt J2000.0 ecliptic +** bpa P_A ecliptic pole x, J2000.0 ecliptic triad +** bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad +** pia pi_A angle between moving and J2000.0 ecliptics +** bpia Pi_A longitude of ascending node of the ecliptic +** epsa epsilon_A obliquity of the ecliptic +** chia chi_A planetary precession +** za z_A equatorial precession: -3rd 323 Euler angle +** zetaa zeta_A equatorial precession: -1st 323 Euler angle +** thetaa theta_A equatorial precession: 2nd 323 Euler angle +** pa p_A general precession (n.b. see below) +** gam gamma_J2000 J2000.0 RA difference of ecliptic poles +** phi phi_J2000 J2000.0 codeclination of ecliptic pole +** psi psi_J2000 longitude difference of equator poles, J2000.0 +** +** The returned values are all radians. +** +** Note that the t^5 coefficient in the series for p_A from +** Capitaine et al. (2003) is incorrectly signed in Hilton et al. +** (2006). +** +** 3) Hilton et al. (2006) Table 1 also contains angles that depend on +** models distinct from the P03 precession theory itself, namely the +** IAU 2000A frame bias and nutation. The quoted polynomials are +** used in other SOFA functions: +** +** . iauXy06 contains the polynomial parts of the X and Y series. +** +** . iauS06 contains the polynomial part of the s+XY/2 series. +** +** . iauPfw06 implements the series for the Fukushima-Williams +** angles that are with respect to the GCRS pole (i.e. the variants +** that include frame bias). +** +** 4) The IAU resolution stipulated that the choice of parameterization +** was left to the user, and so an IAU compliant precession +** implementation can be constructed using various combinations of +** the angles returned by the present function. +** +** 5) The parameterization used by SOFA is the version of the Fukushima- +** Williams angles that refers directly to the GCRS pole. These +** angles may be calculated by calling the function iauPfw06. SOFA +** also supports the direct computation of the CIP GCRS X,Y by +** series, available by calling iauXy06. +** +** 6) The agreement between the different parameterizations is at the +** 1 microarcsecond level in the present era. +** +** 7) When constructing a precession formulation that refers to the GCRS +** pole rather than the dynamical pole, it may (depending on the +** choice of angles) be necessary to introduce the frame bias +** explicitly. +** +** 8) It is permissible to re-use the same variable in the returned +** arguments. The quantities are stored in the stated order. +** +** References: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, +** Astron.Astrophys., 412, 567 +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** +*/ + + + +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 +** +*/ + + + +void iauP2s(double p[3], double *theta, double *phi, double *r) +/* +** - - - - - - - +** i a u P 2 s +** - - - - - - - +** +** P-vector to spherical polar coordinates. +** +** 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: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** +** Notes: +** +** 1) If P is null, zero theta, phi and r are returned. +** +** 2) At either pole, zero theta is returned. +** +** Called: +** iauC2s p-vector to spherical +** iauPm modulus of p-vector +** +*/ + + + +double iauPap(double a[3], double b[3]) +/* +** - - - - - - - +** i a u P a p +** - - - - - - - +** +** Position-angle from two p-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[3] direction of reference point +** b double[3] direction of point whose PA is required +** +** Returned (function value): +** double position angle of b with respect to a (radians) +** +** Notes: +** +** 1) The result is the position angle, in radians, of direction b with +** respect to direction a. It is in the range -pi to +pi. The +** sense is such that if b is a small distance "north" of a the +** position angle is approximately zero, and if b is a small +** distance "east" of a the position angle is approximately +pi/2. +** +** 2) The vectors a and b need not be of unit length. +** +** 3) Zero is returned if the two directions are the same or if either +** vector is null. +** +** 4) If vector a is at a pole, the result is ill-defined. +** +** Called: +** iauPn decompose p-vector into modulus and direction +** iauPm modulus of p-vector +** iauPxp vector product of two p-vectors +** iauPmp p-vector minus p-vector +** iauPdp scalar product of two p-vectors +** +*/ + + + +double iauPas(double al, double ap, double bl, double bp) +/* +** - - - - - - - +** i a u P a s +** - - - - - - - +** +** Position-angle from spherical coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** al double longitude of point A (e.g. RA) in radians +** ap double latitude of point A (e.g. Dec) in radians +** bl double longitude of point B +** bp double latitude of point B +** +** Returned (function value): +** double position angle of B with respect to A +** +** Notes: +** +** 1) The result is the bearing (position angle), in radians, of point +** B with respect to point A. It is in the range -pi to +pi. The +** sense is such that if B is a small distance "east" of point A, +** the bearing is approximately +pi/2. +** +** 2) Zero is returned if the two points are coincident. +** +*/ + + + +void iauPb06(double date1, double date2, + double *bzeta, double *bz, double *btheta) +/* +** - - - - - - - - +** i a u P b 0 6 +** - - - - - - - - +** +** This function forms three Euler angles which implement general +** precession from epoch J2000.0, using the IAU 2006 model. Frame +** bias (the offset between ICRS and mean J2000.0) is included. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** bzeta double 1st rotation: radians cw around z +** bz double 3rd rotation: radians cw around z +** btheta double 2nd rotation: radians ccw around y +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The traditional accumulated precession angles zeta_A, z_A, +** theta_A cannot be obtained in the usual way, namely through +** polynomial expressions, because of the frame bias. The latter +** means that two of the angles undergo rapid changes near this +** date. They are instead the results of decomposing the +** precession-bias matrix obtained by using the Fukushima-Williams +** method, which does not suffer from the problem. The +** decomposition returns values which can be used in the +** conventional formulation and which include frame bias. +** +** 3) The three angles are returned in the conventional order, which +** is not the same as the order of the corresponding Euler +** rotations. The precession-bias matrix is +** R_3(-z) x R_2(+theta) x R_3(-zeta). +** +** 4) Should zeta_A, z_A, theta_A angles be required that do not +** contain frame bias, they are available by calling the SOFA +** function iauP06e. +** +** Called: +** iauPmat06 PB matrix, IAU 2006 +** iauRz rotate around Z-axis +** +*/ + + + +double iauPdp(double a[3], double b[3]) +/* +** - - - - - - - +** i a u P d p +** - - - - - - - +** +** p-vector inner (=scalar=dot) product. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned (function value): +** double a . b +** +*/ + + + +void iauPfw06(double date1, double date2, + double *gamb, double *phib, double *psib, double *epsa) +/* +** - - - - - - - - - +** i a u P f w 0 6 +** - - - - - - - - - +** +** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** gamb double F-W angle gamma_bar (radians) +** phib double F-W angle phi_bar (radians) +** psib double F-W angle psi_bar (radians) +** epsa double F-W angle epsilon_A (radians) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) Naming the following points: +** +** e = J2000.0 ecliptic pole, +** p = GCRS pole, +** E = mean ecliptic pole of date, +** and P = mean pole of date, +** +** the four Fukushima-Williams angles are as follows: +** +** gamb = gamma_bar = epE +** phib = phi_bar = pE +** psib = psi_bar = pEP +** epsa = epsilon_A = EP +** +** 3) The matrix representing the combined effects of frame bias and +** precession is: +** +** PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb) +** +** 4) The matrix representing the combined effects of frame bias, +** precession and nutation is simply: +** +** NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb) +** +** where dP and dE are the nutation components with respect to the +** ecliptic of date. +** +** Reference: +** +** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351 +** +** Called: +** iauObl06 mean obliquity, IAU 2006 +** +*/ + + + +int iauPlan94(double date1, double date2, int np, double pv[2][3]) +/* +** - - - - - - - - - - +** i a u P l a n 9 4 +** - - - - - - - - - - +** +** Approximate heliocentric position and velocity of a nominated +** planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or +** Neptune (but not the Earth itself). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** n.b. Not IAU-endorsed and without canonical status. +** +** Given: +** date1 double TDB date part A (Note 1) +** date2 double TDB date part B (Note 1) +** np int planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, +** 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) +** +** Returned (argument): +** pv double[2][3] planet p,v (heliocentric, J2000.0, au,au/d) +** +** Returned (function value): +** int status: -1 = illegal NP (outside 1-8) +** 0 = OK +** +1 = warning: year outside 1000-3000 +** +2 = warning: failed to converge +** +** Notes: +** +** 1) The date date1+date2 is in the TDB time scale (in practice TT can +** be used) and is a Julian Date, apportioned in any convenient way +** between the two arguments. For example, JD(TDB)=2450123.7 could +** be expressed in any of these ways, among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. The limited +** accuracy of the present algorithm is such that any of the methods +** is satisfactory. +** +** 2) If an np value outside the range 1-8 is supplied, an error status +** (function value -1) is returned and the pv vector set to zeroes. +** +** 3) For np=3 the result is for the Earth-Moon barycenter (EMB). To +** obtain the heliocentric position and velocity of the Earth, use +** instead the SOFA function iauEpv00. +** +** 4) On successful return, the array pv contains the following: +** +** pv[0][0] x } +** pv[0][1] y } heliocentric position, au +** pv[0][2] z } +** +** pv[1][0] xdot } +** pv[1][1] ydot } heliocentric velocity, au/d +** pv[1][2] zdot } +** +** The reference frame is equatorial and is with respect to the +** mean equator and equinox of epoch J2000.0. +** +** 5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, +** M. Chapront-Touze, G. Francou and J. Laskar (Bureau des +** Longitudes, Paris, France). From comparisons with JPL +** ephemeris DE102, they quote the following maximum errors +** over the interval 1800-2050: +** +** L (arcsec) B (arcsec) R (km) +** +** Mercury 4 1 300 +** Venus 5 1 800 +** EMB 6 1 1000 +** Mars 17 1 7700 +** Jupiter 71 5 76000 +** Saturn 81 13 267000 +** Uranus 86 7 712000 +** Neptune 11 1 253000 +** +** Over the interval 1000-3000, they report that the accuracy is no +** worse than 1.5 times that over 1800-2050. Outside 1000-3000 the +** accuracy declines. +** +** Comparisons of the present function with the JPL DE200 ephemeris +** give the following RMS errors over the interval 1960-2025: +** +** position (km) velocity (m/s) +** +** Mercury 334 0.437 +** Venus 1060 0.855 +** EMB 2010 0.815 +** Mars 7690 1.98 +** Jupiter 71700 7.70 +** Saturn 199000 19.4 +** Uranus 564000 16.4 +** Neptune 158000 14.4 +** +** Comparisons against DE200 over the interval 1800-2100 gave the +** following maximum absolute differences (the results using +** DE406 were essentially the same): +** +** L (arcsec) B (arcsec) R (km) Rdot (m/s) +** +** Mercury 7 1 500 0.7 +** Venus 7 1 1100 0.9 +** EMB 9 1 1300 1.0 +** Mars 26 1 9000 2.5 +** Jupiter 78 6 82000 8.2 +** Saturn 87 14 263000 24.6 +** Uranus 86 7 661000 27.4 +** Neptune 11 2 248000 21.4 +** +** 6) The present SOFA re-implementation of the original Simon et al. +** Fortran code differs from the original in the following respects: +** +** * C instead of Fortran. +** +** * The date is supplied in two parts. +** +** * The result is returned only in equatorial Cartesian form; +** the ecliptic longitude, latitude and radius vector are not +** returned. +** +** * The result is in the J2000.0 equatorial frame, not ecliptic. +** +** * More is done in-line: there are fewer calls to subroutines. +** +** * Different error/warning status values are used. +** +** * A different Kepler's-equation-solver is used (avoiding +** use of double precision complex). +** +** * Polynomials in t are nested to minimize rounding errors. +** +** * Explicit double constants are used to avoid mixed-mode +** expressions. +** +** None of the above changes affects the result significantly. +** +** 7) The returned status indicates the most serious condition +** encountered during execution of the function. Illegal np is +** considered the most serious, overriding failure to converge, +** which in turn takes precedence over the remote date warning. +** +** Called: +** iauAnpm normalize angle into range +/- pi +** +** Reference: Simon, J.L, Bretagnon, P., Chapront, J., +** Chapront-Touze, M., Francou, G., and Laskar, J., +** Astron.Astrophys., 282, 663 (1994). +** +*/ + + + +double iauPm(double p[3]) +/* +** - - - - - - +** i a u P m +** - - - - - - +** +** Modulus of p-vector. +** +** 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 (function value): +** double modulus +** +*/ + + + +void iauPmat00(double date1, double date2, double rbp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 0 0 +** - - - - - - - - - - +** +** Precession matrix (including frame bias) from GCRS to a specified +** date, IAU 2000 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbp double[3][3] bias-precession matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where +** the p-vector V(GCRS) is with respect to the Geocentric Celestial +** Reference System (IAU, 2000) and the p-vector V(date) is with +** respect to the mean equatorial triad of the given date. +** +** Called: +** iauBp00 frame bias and precession matrices, IAU 2000 +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +*/ + + + +void iauPmat06(double date1, double date2, double rbp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 0 6 +** - - - - - - - - - - +** +** Precession matrix (including frame bias) from GCRS to a specified +** date, IAU 2006 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbp double[3][3] bias-precession matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbp * V(GCRS), where +** the p-vector V(GCRS) is with respect to the Geocentric Celestial +** Reference System (IAU, 2000) and the p-vector V(date) is with +** respect to the mean equatorial triad of the given date. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +void iauPmat76(double date1, double date2, double rmatp[3][3]) +/* +** - - - - - - - - - - +** i a u P m a t 7 6 +** - - - - - - - - - - +** +** Precession matrix from J2000.0 to a specified date, IAU 1976 model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double ending date, TT (Note 1) +** +** Returned: +** rmatp double[3][3] precession matrix, J2000.0 -> date1+date2 +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = RMATP * V(J2000), +** where the p-vector V(J2000) is with respect to the mean +** equatorial triad of epoch J2000.0 and the p-vector V(date) +** is with respect to the mean equatorial triad of the given +** date. +** +** 3) Though the matrix method itself is rigorous, the precession +** angles are expressed through canonical polynomials which are +** valid only for a limited time span. In addition, the IAU 1976 +** precession rate is known to be imperfect. The absolute accuracy +** of the present formulation is better than 0.1 arcsec from +** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, +** and remains below 3 arcsec for the whole of the period +** 500BC to 3000AD. The errors exceed 10 arcsec outside the +** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to +** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD. +** +** Called: +** iauPrec76 accumulated precession angles, IAU 1976 +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauCr copy r-matrix +** +** References: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282. +** equations (6) & (7), p283. +** +** Kaplan,G.H., 1981. USNO circular no. 163, pA2. +** +*/ + + + +void iauPmp(double a[3], double b[3], double amb[3]) +/* +** - - - - - - - +** i a u P m p +** - - - - - - - +** +** P-vector subtraction. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** amb double[3] a - b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +*/ + + + +void iauPmpx(double rc, double dc, double pr, double pd, + double px, double rv, double pmt, double pob[3], + double pco[3]) +/* +** - - - - - - - - +** i a u P m p x +** - - - - - - - - +** +** Proper motion and parallax. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** rc,dc double ICRS RA,Dec at catalog epoch (radians) +** pr double RA proper motion (radians/year, Note 1) +** pd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, +ve if receding) +** pmt double proper motion time interval (SSB, Julian years) +** pob double[3] SSB to observer vector (au) +** +** Returned: +** pco double[3] coordinate direction (BCRS unit vector) +** +** Notes: +** +** 1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. +** +** 2) The proper motion time interval is for when the starlight +** reaches the solar system barycenter. +** +** 3) To avoid the need for iteration, the Roemer effect (i.e. the +** small annual modulation of the proper motion coming from the +** changing light time) is applied approximately, using the +** direction of the star at the catalog epoch. +** +** References: +** +** 1984 Astronomical Almanac, pp B39-B41. +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013), Section 7.2. +** +** Called: +** iauPdp scalar product of two p-vectors +** iauPn decompose p-vector into modulus and direction +** +*/ + + + +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) +/* +** - - - - - - - - - - +** i a u P m s a f e +** - - - - - - - - - - +** +** Star proper motion: update star catalog data for space motion, with +** special handling to handle the zero parallax case. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ra1 double right ascension (radians), before +** dec1 double declination (radians), before +** pmr1 double RA proper motion (radians/year), before +** pmd1 double Dec proper motion (radians/year), before +** px1 double parallax (arcseconds), before +** rv1 double radial velocity (km/s, +ve = receding), before +** ep1a double "before" epoch, part A (Note 1) +** ep1b double "before" epoch, part B (Note 1) +** ep2a double "after" epoch, part A (Note 1) +** ep2b double "after" epoch, part B (Note 1) +** +** Returned: +** ra2 double right ascension (radians), after +** dec2 double declination (radians), after +** pmr2 double RA proper motion (radians/year), after +** pmd2 double Dec proper motion (radians/year), after +** px2 double parallax (arcseconds), after +** rv2 double radial velocity (km/s, +ve = receding), after +** +** Returned (function value): +** int status: +** -1 = system error (should not occur) +** 0 = no warnings or errors +** 1 = distance overridden (Note 6) +** 2 = excessive velocity (Note 7) +** 4 = solution didn't converge (Note 8) +** else = binary logical OR of the above warnings +** +** Notes: +** +** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are +** Julian Dates, apportioned in any convenient way between the two +** parts (A and B). For example, JD(TDB)=2450123.7 could be +** expressed in any of these ways, among others: +** +** epNa epNb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. +** +** 2) In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** The proper motions are the rate of change of the right ascension +** and declination at the catalog epoch and are in radians per TDB +** Julian year. +** +** The parallax and radial velocity are in the same frame. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds. +** +** 4) The RA proper motion is in terms of coordinate angle, not true +** angle. If the catalog uses arcseconds for both RA and Dec proper +** motions, the RA proper motion will need to be divided by cos(Dec) +** before use. +** +** 5) Straight-line motion at constant speed, in the inertial frame, is +** assumed. +** +** 6) An extremely small (or zero or negative) parallax is overridden +** to ensure that the object is at a finite but very large distance, +** but not so large that the proper motion is equivalent to a large +** but safe speed (about 0.1c using the chosen constant). A warning +** status of 1 is added to the status if this action has been taken. +** +** 7) If the space velocity is a significant fraction of c (see the +** constant VMAX in the function iauStarpv), it is arbitrarily set +** to zero. When this action occurs, 2 is added to the status. +** +** 8) The relativistic adjustment carried out in the iauStarpv function +** involves an iterative calculation. If the process fails to +** converge within a set number of iterations, 4 is added to the +** status. +** +** Called: +** iauSeps angle between two points +** iauStarpm update star catalog data for space motion +** +*/ + + + +void iauPn(double p[3], double *r, double u[3]) +/* +** - - - - - - +** i a u P n +** - - - - - - +** +** Convert a p-vector into modulus and unit vector. +** +** 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: +** r double modulus +** u double[3] unit vector +** +** Notes: +** +** 1) If p is null, the result is null. Otherwise the result is a unit +** vector. +** +** 2) It is permissible to re-use the same array for any of the +** arguments. +** +** Called: +** iauPm modulus of p-vector +** iauZp zero p-vector +** iauSxp multiply p-vector by scalar +** +*/ + + + +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]) +/* +** - - - - - - - - +** i a u P n 0 0 +** - - - - - - - - +** +** Precession-nutation, IAU 2000 model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based +** use indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** dpsi,deps double nutation (Note 2) +** +** Returned: +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Note 8) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. For high-accuracy +** applications, free core nutation should be included as well as +** any other relevant corrections to the position of the CIP. +** +** 3) The returned mean obliquity is consistent with the IAU 2000 +** precession-nutation models. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox of +** date to true equator and equinox of date by applying the nutation +** (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the order given. +** +** Called: +** iauPr00 IAU 2000 precession adjustments +** iauObl80 mean obliquity, IAU 1980 +** iauBp00 frame bias and precession matrices, IAU 2000 +** iauCr copy r-matrix +** iauNumat form nutation matrix +** iauRxr product of two r-matrices +** +** Reference: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +*/ + + + +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]) +/* +** - - - - - - - - - +** i a u P n 0 0 a +** - - - - - - - - - +** +** Precession-nutation, IAU 2000A model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based +** use indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation (Note 2) +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components (luni-solar + planetary, IAU 2000A) in +** longitude and obliquity are in radians and with respect to the +** equinox and ecliptic of date. Free core nutation is omitted; +** for the utmost accuracy, use the iauPn00 function, where the +** nutation components are caller-specified. For faster but +** slightly less accurate results, use the iauPn00b function. +** +** 3) The mean obliquity is consistent with the IAU 2000 precession. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox +** of date to true equator and equinox of date by applying the +** nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the IAU 2000A Celestial Intermediate +** Pole are elements (3,1-3) of the GCRS-to-true matrix, +** i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauNut00a nutation, IAU 2000A +** iauPn00 bias/precession/nutation results, IAU 2000 +** +** Reference: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +*/ + + + +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]) +/* +** - - - - - - - - - +** i a u P n 0 0 b +** - - - - - - - - - +** +** Precession-nutation, IAU 2000B model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based +** use indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation (Note 2) +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components (luni-solar + planetary, IAU 2000B) in +** longitude and obliquity are in radians and with respect to the +** equinox and ecliptic of date. For more accurate results, but +** at the cost of increased computation, use the iauPn00a function. +** For the utmost accuracy, use the iauPn00 function, where the +** nutation components are caller-specified. +** +** 3) The mean obliquity is consistent with the IAU 2000 precession. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox +** of date to true equator and equinox of date by applying the +** nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the IAU 2000B Celestial Intermediate +** Pole are elements (3,1-3) of the GCRS-to-true matrix, +** i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauNut00b nutation, IAU 2000B +** iauPn00 bias/precession/nutation results, IAU 2000 +** +** Reference: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003). +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +*/ + + + +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]) +/* +** - - - - - - - - +** i a u P n 0 6 +** - - - - - - - - +** +** Precession-nutation, IAU 2006 model: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based use +** indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** dpsi,deps double nutation (Note 2) +** +** Returned: +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The caller is responsible for providing the nutation components; +** they are in longitude and obliquity, in radians and are with +** respect to the equinox and ecliptic of date. For high-accuracy +** applications, free core nutation should be included as well as +** any other relevant corrections to the position of the CIP. +** +** 3) The returned mean obliquity is consistent with the IAU 2006 +** precession. +** +** 4) The matrix rb transforms vectors from GCRS to J2000.0 mean +** equator and equinox by applying frame bias. +** +** 5) The matrix rp transforms vectors from J2000.0 mean equator and +** equinox to mean equator and equinox of date by applying +** precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean equator and +** equinox of date by applying frame bias then precession. It is +** the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean equator and equinox +** of date to true equator and equinox of date by applying the +** nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true equator and +** equinox of date. It is the product rn x rbp, applying frame +** bias, precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the Celestial Intermediate Pole are +** elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauFw2m F-W angles to r-matrix +** iauCr copy r-matrix +** iauTr transpose r-matrix +** iauRxr product of two r-matrices +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +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]) +/* +** - - - - - - - - - +** i a u P n 0 6 a +** - - - - - - - - - +** +** Precession-nutation, IAU 2006/2000A models: a multi-purpose function, +** supporting classical (equinox-based) use directly and CIO-based use +** indirectly. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsi,deps double nutation (Note 2) +** epsa double mean obliquity (Note 3) +** rb double[3][3] frame bias matrix (Note 4) +** rp double[3][3] precession matrix (Note 5) +** rbp double[3][3] bias-precession matrix (Note 6) +** rn double[3][3] nutation matrix (Note 7) +** rbpn double[3][3] GCRS-to-true matrix (Notes 8,9) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The nutation components (luni-solar + planetary, IAU 2000A) in +** longitude and obliquity are in radians and with respect to the +** equinox and ecliptic of date. Free core nutation is omitted; +** for the utmost accuracy, use the iauPn06 function, where the +** nutation components are caller-specified. +** +** 3) The mean obliquity is consistent with the IAU 2006 precession. +** +** 4) The matrix rb transforms vectors from GCRS to mean J2000.0 by +** applying frame bias. +** +** 5) The matrix rp transforms vectors from mean J2000.0 to mean of +** date by applying precession. +** +** 6) The matrix rbp transforms vectors from GCRS to mean of date by +** applying frame bias then precession. It is the product rp x rb. +** +** 7) The matrix rn transforms vectors from mean of date to true of +** date by applying the nutation (luni-solar + planetary). +** +** 8) The matrix rbpn transforms vectors from GCRS to true of date +** (CIP/equinox). It is the product rn x rbp, applying frame bias, +** precession and nutation in that order. +** +** 9) The X,Y,Z coordinates of the IAU 2006/2000A Celestial +** Intermediate Pole are elements (3,1-3) of the GCRS-to-true +** matrix, i.e. rbpn[2][0-2]. +** +** 10) It is permissible to re-use the same array in the returned +** arguments. The arrays are filled in the stated order. +** +** Called: +** iauNut06a nutation, IAU 2006/2000A +** iauPn06 bias/precession/nutation results, IAU 2006 +** +** Reference: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +*/ + + + +void iauPnm00a(double date1, double date2, double rbpn[3][3]) +/* +** - - - - - - - - - - +** i a u P n m 0 0 a +** - - - - - - - - - - +** +** Form the matrix of precession-nutation for a given date (including +** frame bias), equinox based, IAU 2000A model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbpn double[3][3] bias-precession-nutation matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where +** the p-vector V(date) is with respect to the true equatorial triad +** of date date1+date2 and the p-vector V(GCRS) is with respect to +** the Geocentric Celestial Reference System (IAU, 2000). +** +** 3) A faster, but slightly less accurate, result (about 1 mas) can be +** obtained by using instead the iauPnm00b function. +** +** Called: +** iauPn00a bias/precession/nutation, IAU 2000A +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +*/ + + + +void iauPnm00b(double date1, double date2, double rbpn[3][3]) +/* +** - - - - - - - - - - +** i a u P n m 0 0 b +** - - - - - - - - - - +** +** Form the matrix of precession-nutation for a given date (including +** frame bias), equinox-based, IAU 2000B model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbpn double[3][3] bias-precession-nutation matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where +** the p-vector V(date) is with respect to the true equatorial triad +** of date date1+date2 and the p-vector V(GCRS) is with respect to +** the Geocentric Celestial Reference System (IAU, 2000). +** +** 3) The present function is faster, but slightly less accurate (about +** 1 mas), than the iauPnm00a function. +** +** Called: +** iauPn00b bias/precession/nutation, IAU 2000B +** +** Reference: +** +** IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. +** 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. +** (2000) +** +*/ + + + +void iauPnm06a(double date1, double date2, double rbpn[3][3]) +/* +** - - - - - - - - - - +** i a u P n m 0 6 a +** - - - - - - - - - - +** +** Form the matrix of precession-nutation for a given date (including +** frame bias), equinox based, IAU 2006 precession and IAU 2000A +** nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rbpn double[3][3] bias-precession-nutation matrix (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, among +** others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where +** the p-vector V(date) is with respect to the true equatorial triad +** of date date1+date2 and the p-vector V(GCRS) is with respect to +** the Geocentric Celestial Reference System (IAU, 2000). +** +** Called: +** iauPfw06 bias-precession F-W angles, IAU 2006 +** iauNut06a nutation, IAU 2006/2000A +** iauFw2m F-W angles to r-matrix +** +** Reference: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855. +** +*/ + + + +void iauPnm80(double date1, double date2, double rmatpn[3][3]) +/* +** - - - - - - - - - +** i a u P n m 8 0 +** - - - - - - - - - +** +** Form the matrix of precession/nutation for a given date, IAU 1976 +** precession model, IAU 1980 nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** rmatpn double[3][3] combined precession/nutation matrix +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The matrix operates in the sense V(date) = rmatpn * V(J2000), +** where the p-vector V(date) is with respect to the true equatorial +** triad of date date1+date2 and the p-vector V(J2000) is with +** respect to the mean equatorial triad of epoch J2000.0. +** +** Called: +** iauPmat76 precession matrix, IAU 1976 +** iauNutm80 nutation matrix, IAU 1980 +** iauRxr product of two r-matrices +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992), +** Section 3.3 (p145). +** +*/ + + + +void iauPom00(double xp, double yp, double sp, double rpom[3][3]) +/* +** - - - - - - - - - - +** i a u P o m 0 0 +** - - - - - - - - - - +** +** Form the matrix of polar motion for a given date, IAU 2000. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xp,yp double coordinates of the pole (radians, Note 1) +** sp double the TIO locator s' (radians, Note 2) +** +** Returned: +** rpom double[3][3] polar-motion matrix (Note 3) +** +** Notes: +** +** 1) The arguments xp and yp are the coordinates (in radians) of the +** Celestial Intermediate Pole with respect to the International +** Terrestrial Reference System (see IERS Conventions 2003), +** measured along the meridians 0 and 90 deg west respectively. +** +** 2) The argument sp is the TIO locator s', in radians, which +** positions the Terrestrial Intermediate Origin on the equator. It +** is obtained from polar motion observations by numerical +** integration, and so is in essence unpredictable. However, it is +** dominated by a secular drift of about 47 microarcseconds per +** century, and so can be taken into account by using s' = -47*t, +** where t is centuries since J2000.0. The function iauSp00 +** implements this approximation. +** +** 3) The matrix operates in the sense V(TRS) = rpom * V(CIP), meaning +** that it is the final rotation when computing the pointing +** direction to a celestial source. +** +** Called: +** iauIr initialize r-matrix to identity +** iauRz rotate around Z-axis +** iauRy rotate around Y-axis +** iauRx rotate around X-axis +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauPpp(double a[3], double b[3], double apb[3]) +/* +** - - - - - - - +** i a u P p p +** - - - - - - - +** +** P-vector addition. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** apb double[3] a + b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +*/ + + + +void iauPpsp(double a[3], double s, double b[3], double apsb[3]) +/* +** - - - - - - - - +** i a u P p s p +** - - - - - - - - +** +** P-vector plus scaled p-vector. +** +** 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[3] first p-vector +** s double scalar (multiplier for b) +** b double[3] second p-vector +** +** Returned: +** apsb double[3] a + s*b +** +** Note: +** It is permissible for any of a, b and apsb to be the same array. +** +** Called: +** iauSxp multiply p-vector by scalar +** iauPpp p-vector plus p-vector +** +*/ + + + +void iauPr00(double date1, double date2, double *dpsipr, double *depspr) +/* +** - - - - - - - - +** i a u P r 0 0 +** - - - - - - - - +** +** Precession-rate part of the IAU 2000 precession-nutation models +** (part of MHB2000). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** dpsipr,depspr double precession corrections (Notes 2,3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The precession adjustments are expressed as "nutation +** components", corrections in longitude and obliquity with respect +** to the J2000.0 equinox and ecliptic. +** +** 3) Although the precession adjustments are stated to be with respect +** to Lieske et al. (1977), the MHB2000 model does not specify which +** set of Euler angles are to be used and how the adjustments are to +** be applied. The most literal and straightforward procedure is to +** adopt the 4-rotation epsilon_0, psi_A, omega_A, xi_A option, and +** to add dpsipr to psi_A and depspr to both omega_A and eps_A. +** +** 4) This is an implementation of one aspect of the IAU 2000A nutation +** model, formally adopted by the IAU General Assembly in 2000, +** namely MHB2000 (Mathews et al. 2002). +** +** References: +** +** Lieske, J.H., Lederle, T., Fricke, W. & Morando, B., "Expressions +** for the precession quantities based upon the IAU (1976) System of +** Astronomical Constants", Astron.Astrophys., 58, 1-16 (1977) +** +** Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation +** and precession New nutation series for nonrigid Earth and +** insights into the Earth's interior", J.Geophys.Res., 107, B4, +** 2002. The MHB2000 code itself was obtained on 9th September 2002 +** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A. +** +** Wallace, P.T., "Software for Implementing the IAU 2000 +** Resolutions", in IERS Workshop 5.1 (2002). +** +*/ + + + +void iauPrec76(double date01, double date02, double date11, double date12, + double *zeta, double *z, double *theta) +/* +** - - - - - - - - - - +** i a u P r e c 7 6 +** - - - - - - - - - - +** +** IAU 1976 precession model. +** +** This function forms the three Euler angles which implement general +** precession between two dates, using the IAU 1976 model (as for the +** FK5 catalog). +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date01,date02 double TDB starting date (Note 1) +** date11,date12 double TDB ending date (Note 1) +** +** Returned: +** zeta double 1st rotation: radians cw around z +** z double 3rd rotation: radians cw around z +** theta double 2nd rotation: radians ccw around y +** +** Notes: +** +** 1) The dates date01+date02 and date11+date12 are Julian Dates, +** apportioned in any convenient way between the arguments daten1 +** and daten2. For example, JD(TDB)=2450123.7 could be expressed in +** any of these ways, among others: +** +** daten1 daten2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** The two dates may be expressed using different methods, but at +** the risk of losing some resolution. +** +** 2) The accumulated precession angles zeta, z, theta are expressed +** through canonical polynomials which are valid only for a limited +** time span. In addition, the IAU 1976 precession rate is known to +** be imperfect. The absolute accuracy of the present formulation +** is better than 0.1 arcsec from 1960AD to 2040AD, better than +** 1 arcsec from 1640AD to 2360AD, and remains below 3 arcsec for +** the whole of the period 500BC to 3000AD. The errors exceed +** 10 arcsec outside the range 1200BC to 3900AD, exceed 100 arcsec +** outside 4200BC to 5600AD and exceed 1000 arcsec outside 6800BC to +** 8200AD. +** +** 3) The three angles are returned in the conventional order, which +** is not the same as the order of the corresponding Euler +** rotations. The precession matrix is +** R_3(-z) x R_2(+theta) x R_3(-zeta). +** +** Reference: +** +** Lieske, J.H., 1979, Astron.Astrophys. 73, 282, equations +** (6) & (7), p283. +** +*/ + + + +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 +** +*/ + + + +void iauPv2s(double pv[2][3], + double *theta, double *phi, double *r, + double *td, double *pd, double *rd) +/* +** - - - - - - - - +** i a u P v 2 s +** - - - - - - - - +** +** Convert position/velocity from Cartesian to spherical coordinates. +** +** 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: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** td double rate of change of theta +** pd double rate of change of phi +** rd double rate of change of r +** +** Notes: +** +** 1) If the position part of pv is null, theta, phi, td and pd +** are indeterminate. This is handled by extrapolating the +** position through unit time by using the velocity part of +** pv. This moves the origin without changing the direction +** of the velocity component. If the position and velocity +** components of pv are both null, zeroes are returned for all +** six results. +** +** 2) If the position is a pole, theta, td and pd are indeterminate. +** In such cases zeroes are returned for all three. +** +*/ + + + +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 +** +*/ + + + +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 +** +*/ + + + +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 +** +*/ + + + +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 +** +*/ + + + +int iauPvstar(double pv[2][3], double *ra, double *dec, + double *pmr, double *pmd, double *px, double *rv) +/* +** - - - - - - - - - - +** i a u P v s t a r +** - - - - - - - - - - +** +** Convert star position+velocity vector to catalog coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (Note 1): +** pv double[2][3] pv-vector (au, au/day) +** +** Returned (Note 2): +** ra double right ascension (radians) +** dec double declination (radians) +** pmr double RA proper motion (radians/year) +** pmd double Dec proper motion (radians/year) +** px double parallax (arcsec) +** rv double radial velocity (km/s, positive = receding) +** +** Returned (function value): +** int status: +** 0 = OK +** -1 = superluminal speed (Note 5) +** -2 = null position vector +** +** Notes: +** +** 1) The specified pv-vector is the coordinate direction (and its rate +** of change) for the date at which the light leaving the star +** reached the solar-system barycenter. +** +** 2) The star data returned by this function are "observables" for an +** imaginary observer at the solar-system barycenter. Proper motion +** and radial velocity are, strictly, in terms of barycentric +** coordinate time, TCB. For most practical applications, it is +** permissible to neglect the distinction between TCB and ordinary +** "proper" time on Earth (TT/TAI). The result will, as a rule, be +** limited by the intrinsic accuracy of the proper-motion and +** radial-velocity data; moreover, the supplied pv-vector is likely +** to be merely an intermediate result (for example generated by the +** function iauStarpv), so that a change of time unit will cancel +** out overall. +** +** In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** Summarizing, the specified pv-vector is for most stars almost +** identical to the result of applying the standard geometrical +** "space motion" transformation to the catalog data. The +** differences, which are the subject of the Stumpff paper cited +** below, are: +** +** (i) In stars with significant radial velocity and proper motion, +** the constantly changing light-time distorts the apparent proper +** motion. Note that this is a classical, not a relativistic, +** effect. +** +** (ii) The transformation complies with special relativity. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds; the radial velocity is in km/s, but +** the pv-vector result is in au and au/day. +** +** 4) The proper motions are the rate of change of the right ascension +** and declination at the catalog epoch and are in radians per Julian +** year. The RA proper motion is in terms of coordinate angle, not +** true angle, and will thus be numerically larger at high +** declinations. +** +** 5) Straight-line motion at constant speed in the inertial frame is +** assumed. If the speed is greater than or equal to the speed of +** light, the function aborts with an error status. +** +** 6) The inverse transformation is performed by the function iauStarpv. +** +** Called: +** iauPn decompose p-vector into modulus and direction +** iauPdp scalar product of two p-vectors +** iauSxp multiply p-vector by scalar +** iauPmp p-vector minus p-vector +** iauPm modulus of p-vector +** iauPpp p-vector plus p-vector +** iauPv2s pv-vector to spherical +** iauAnp normalize angle into range 0 to 2pi +** +** Reference: +** +** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. +** +*/ + + + +void iauPvtob(double elong, double phi, double hm, + double xp, double yp, double sp, double theta, + double pv[2][3]) +/* +** - - - - - - - - - +** i a u P v t o b +** - - - - - - - - - +** +** Position and velocity of a terrestrial observing station. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** elong double longitude (radians, east +ve, Note 1) +** phi double latitude (geodetic, radians, Note 1) +** hm double height above ref. ellipsoid (geodetic, m) +** xp,yp double coordinates of the pole (radians, Note 2) +** sp double the TIO locator s' (radians, Note 2) +** theta double Earth rotation angle (radians, Note 3) +** +** Returned: +** pv double[2][3] position/velocity vector (m, m/s, CIRS) +** +** Notes: +** +** 1) The terrestrial coordinates are with respect to the WGS84 +** reference ellipsoid. +** +** 2) xp and yp are the coordinates (in radians) of the Celestial +** Intermediate Pole with respect to the International Terrestrial +** Reference System (see IERS Conventions), measured along the +** meridians 0 and 90 deg west respectively. sp is the TIO locator +** s', in radians, which positions the Terrestrial Intermediate +** Origin on the equator. For many applications, xp, yp and +** (especially) sp can be set to zero. +** +** 3) If theta is Greenwich apparent sidereal time instead of Earth +** rotation angle, the result is with respect to the true equator +** and equinox of date, i.e. with the x-axis at the equinox rather +** than the celestial intermediate origin. +** +** 4) The velocity units are meters per UT1 second, not per SI second. +** This is unlikely to have any practical consequences in the modern +** era. +** +** 5) No validation is performed on the arguments. Error cases that +** could lead to arithmetic exceptions are trapped by the iauGd2gc +** function, and the result set to zeros. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to +** the Astronomical Almanac, 3rd ed., University Science Books +** (2013), Section 7.4.3.3. +** +** Called: +** iauGd2gc geodetic to geocentric transformation +** iauPom00 polar motion matrix +** iauTrxp product of transpose of r-matrix and p-vector +** +*/ + + + +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 +** +*/ + + + +void iauPvup(double dt, double pv[2][3], double p[3]) +/* +** - - - - - - - - +** i a u P v u p +** - - - - - - - - +** +** Update a pv-vector, discarding the velocity component. +** +** 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: +** p double[3] p-vector +** +** 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. +** +*/ + + + +void iauPvxpv(double a[2][3], double b[2][3], double axb[2][3]) +/* +** - - - - - - - - - +** i a u P v x p v +** - - - - - - - - - +** +** Outer (=vector=cross) 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: +** axb double[2][3] a x b +** +** Notes: +** +** 1) If the position and velocity components of the two pv-vectors are +** ( ap, av ) and ( bp, bv ), the result, a x b, is the pair of +** vectors ( ap x bp, ap x bv + av x bp ). The two vectors are the +** cross-product of the two p-vectors and its derivative. +** +** 2) It is permissible to re-use the same array for any of the +** arguments. +** +** Called: +** iauCpv copy pv-vector +** iauPxp vector product of two p-vectors +** iauPpp p-vector plus p-vector +** +*/ + + + +void iauPxp(double a[3], double b[3], double axb[3]) +/* +** - - - - - - - +** i a u P x p +** - - - - - - - +** +** p-vector outer (=vector=cross) product. +** +** 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[3] first p-vector +** b double[3] second p-vector +** +** Returned: +** axb double[3] a x b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +*/ + + + +void iauRefco(double phpa, double tc, double rh, double wl, + double *refa, double *refb) +/* +** - - - - - - - - - +** i a u R e f c o +** - - - - - - - - - +** +** Determine the constants A and B in the atmospheric refraction model +** dZ = A tan Z + B tan^3 Z. +** +** Z is the "observed" zenith distance (i.e. affected by refraction) +** and dZ is what to add to Z to give the "topocentric" (i.e. in vacuo) +** zenith distance. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** phpa double pressure at the observer (hPa = millibar) +** tc double ambient temperature at the observer (deg C) +** rh double relative humidity at the observer (range 0-1) +** wl double wavelength (micrometers) +** +** Returned: +** refa double* tan Z coefficient (radians) +** refb double* tan^3 Z coefficient (radians) +** +** Notes: +** +** 1) The model balances speed and accuracy to give good results in +** applications where performance at low altitudes is not paramount. +** Performance is maintained across a range of conditions, and +** applies to both optical/IR and radio. +** +** 2) The model omits the effects of (i) height above sea level (apart +** from the reduced pressure itself), (ii) latitude (i.e. the +** flattening of the Earth), (iii) variations in tropospheric lapse +** rate and (iv) dispersive effects in the radio. +** +** The model was tested using the following range of conditions: +** +** lapse rates 0.0055, 0.0065, 0.0075 deg/meter +** latitudes 0, 25, 50, 75 degrees +** heights 0, 2500, 5000 meters ASL +** pressures mean for height -10% to +5% in steps of 5% +** temperatures -10 deg to +20 deg with respect to 280 deg at SL +** relative humidity 0, 0.5, 1 +** wavelengths 0.4, 0.6, ... 2 micron, + radio +** zenith distances 15, 45, 75 degrees +** +** The accuracy with respect to raytracing through a model +** atmosphere was as follows: +** +** worst RMS +** +** optical/IR 62 mas 8 mas +** radio 319 mas 49 mas +** +** For this particular set of conditions: +** +** lapse rate 0.0065 K/meter +** latitude 50 degrees +** sea level +** pressure 1005 mb +** temperature 280.15 K +** humidity 80% +** wavelength 5740 Angstroms +** +** the results were as follows: +** +** ZD raytrace iauRefco Saastamoinen +** +** 10 10.27 10.27 10.27 +** 20 21.19 21.20 21.19 +** 30 33.61 33.61 33.60 +** 40 48.82 48.83 48.81 +** 45 58.16 58.18 58.16 +** 50 69.28 69.30 69.27 +** 55 82.97 82.99 82.95 +** 60 100.51 100.54 100.50 +** 65 124.23 124.26 124.20 +** 70 158.63 158.68 158.61 +** 72 177.32 177.37 177.31 +** 74 200.35 200.38 200.32 +** 76 229.45 229.43 229.42 +** 78 267.44 267.29 267.41 +** 80 319.13 318.55 319.10 +** +** deg arcsec arcsec arcsec +** +** The values for Saastamoinen's formula (which includes terms +** up to tan^5) are taken from Hohenkerk and Sinclair (1985). +** +** 3) A wl value in the range 0-100 selects the optical/IR case and is +** wavelength in micrometers. Any value outside this range selects +** the radio case. +** +** 4) Outlandish input parameters are silently limited to +** mathematically safe values. Zero pressure is permissible, and +** causes zeroes to be returned. +** +** 5) The algorithm draws on several sources, as follows: +** +** a) The formula for the saturation vapour pressure of water as +** a function of temperature and temperature is taken from +** Equations (A4.5-A4.7) of Gill (1982). +** +** b) The formula for the water vapour pressure, given the +** saturation pressure and the relative humidity, is from +** Crane (1976), Equation (2.5.5). +** +** c) The refractivity of air is a function of temperature, +** total pressure, water-vapour pressure and, in the case +** of optical/IR, wavelength. The formulae for the two cases are +** developed from Hohenkerk & Sinclair (1985) and Rueger (2002). +** The IAG (1999) optical refractivity for dry air is used. +** +** d) The formula for beta, the ratio of the scale height of the +** atmosphere to the geocentric distance of the observer, is +** an adaption of Equation (9) from Stone (1996). The +** adaptations, arrived at empirically, consist of (i) a small +** adjustment to the coefficient and (ii) a humidity term for the +** radio case only. +** +** e) The formulae for the refraction constants as a function of +** n-1 and beta are from Green (1987), Equation (4.31). +** +** References: +** +** Crane, R.K., Meeks, M.L. (ed), "Refraction Effects in the Neutral +** Atmosphere", Methods of Experimental Physics: Astrophysics 12B, +** Academic Press, 1976. +** +** Gill, Adrian E., "Atmosphere-Ocean Dynamics", Academic Press, +** 1982. +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987. +** +** Hohenkerk, C.Y., & Sinclair, A.T., NAO Technical Note No. 63, +** 1985. +** +** IAG Resolutions adopted at the XXIIth General Assembly in +** Birmingham, 1999, Resolution 3. +** +** Rueger, J.M., "Refractive Index Formulae for Electronic Distance +** Measurement with Radio and Millimetre Waves", in Unisurv Report +** S-68, School of Surveying and Spatial Information Systems, +** University of New South Wales, Sydney, Australia, 2002. +** +** Stone, Ronald C., P.A.S.P. 108, 1051-1058, 1996. +** +*/ + + + +void iauRm2v(double r[3][3], double w[3]) +/* +** - - - - - - - - +** i a u R m 2 v +** - - - - - - - - +** +** Express an r-matrix as an r-vector. +** +** 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] rotation matrix +** +** Returned: +** w double[3] rotation vector (Note 1) +** +** Notes: +** +** 1) A rotation matrix describes a rotation through some angle about +** some arbitrary axis called the Euler axis. The "rotation vector" +** returned by this function has the same direction as the Euler axis, +** and its magnitude is the angle in radians. (The magnitude and +** direction can be separated by means of the function iauPn.) +** +** 2) If r is null, so is the result. If r is not a rotation matrix +** the result is undefined; r must be proper (i.e. have a positive +** determinant) and real orthogonal (inverse = transpose). +** +** 3) The reference frame rotates clockwise as seen looking along +** the rotation vector from the origin. +** +*/ + + + +void iauRv2m(double w[3], double r[3][3]) +/* +** - - - - - - - - +** i a u R v 2 m +** - - - - - - - - +** +** Form the r-matrix corresponding to a given r-vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** w double[3] rotation vector (Note 1) +** +** Returned: +** r double[3][3] rotation matrix +** +** Notes: +** +** 1) A rotation matrix describes a rotation through some angle about +** some arbitrary axis called the Euler axis. The "rotation vector" +** supplied to This function has the same direction as the Euler +** axis, and its magnitude is the angle in radians. +** +** 2) If w is null, the identity matrix is returned. +** +** 3) The reference frame rotates clockwise as seen looking along the +** rotation vector from the origin. +** +*/ + + + +void iauRx(double phi, double r[3][3]) +/* +** - - - - - - +** i a u R x +** - - - - - - +** +** Rotate an r-matrix about the x-axis. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** phi double angle (radians) +** +** Given and returned: +** r double[3][3] r-matrix, rotated +** +** Notes: +** +** 1) Calling this function with positive phi incorporates in the +** supplied r-matrix r an additional rotation, about the x-axis, +** anticlockwise as seen looking towards the origin from positive x. +** +** 2) The additional rotation can be represented by this matrix: +** +** ( 1 0 0 ) +** ( ) +** ( 0 + cos(phi) + sin(phi) ) +** ( ) +** ( 0 - sin(phi) + cos(phi) ) +** +*/ + + + +void iauRxp(double r[3][3], double p[3], double rp[3]) +/* +** - - - - - - - +** i a u R x p +** - - - - - - - +** +** Multiply a p-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 +** p double[3] p-vector +** +** Returned: +** rp double[3] r * p +** +** Note: +** It is permissible for p and rp to be the same array. +** +** Called: +** iauCp copy p-vector +** +*/ + + + +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 +** +** Notes: +** +** 1) The algorithm is for the simple case where the r-matrix r is not +** a function of time. The case where r is a function of time leads +** to an additional velocity component equal to the product of the +** derivative of r and the position vector. +** +** 2) It is permissible for pv and rpv to be the same array. +** +** Called: +** iauRxp product of r-matrix and p-vector +** +*/ + + + +void iauRxr(double a[3][3], double b[3][3], double atb[3][3]) +/* +** - - - - - - - +** i a u R x r +** - - - - - - - +** +** Multiply two r-matrices. +** +** 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[3][3] first r-matrix +** b double[3][3] second r-matrix +** +** Returned: +** atb double[3][3] a * b +** +** Note: +** It is permissible to re-use the same array for any of the +** arguments. +** +** Called: +** iauCr copy r-matrix +** +*/ + + + +void iauRy(double theta, double r[3][3]) +/* +** - - - - - - +** i a u R y +** - - - - - - +** +** Rotate an r-matrix about the y-axis. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double angle (radians) +** +** Given and returned: +** r double[3][3] r-matrix, rotated +** +** Notes: +** +** 1) Calling this function with positive theta incorporates in the +** supplied r-matrix r an additional rotation, about the y-axis, +** anticlockwise as seen looking towards the origin from positive y. +** +** 2) The additional rotation can be represented by this matrix: +** +** ( + cos(theta) 0 - sin(theta) ) +** ( ) +** ( 0 1 0 ) +** ( ) +** ( + sin(theta) 0 + cos(theta) ) +** +*/ + + + +void iauRz(double psi, double r[3][3]) +/* +** - - - - - - +** i a u R z +** - - - - - - +** +** Rotate an r-matrix about the z-axis. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** psi double angle (radians) +** +** Given and returned: +** r double[3][3] r-matrix, rotated +** +** Notes: +** +** 1) Calling this function with positive psi incorporates in the +** supplied r-matrix r an additional rotation, about the z-axis, +** anticlockwise as seen looking towards the origin from positive z. +** +** 2) The additional rotation can be represented by this matrix: +** +** ( + cos(psi) + sin(psi) 0 ) +** ( ) +** ( - sin(psi) + cos(psi) 0 ) +** ( ) +** ( 0 0 1 ) +** +*/ + + + +double iauS00(double date1, double date2, double x, double y) +/* +** - - - - - - - +** i a u S 0 0 +** - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, given the CIP's X,Y +** coordinates. Compatible with IAU 2000A precession-nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** x,y double CIP coordinates (Note 3) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems: the two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The quantity s remains below 0.1 arcsecond +** throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. This +** function requires X,Y to be supplied by the caller, who is +** responsible for providing values that are consistent with the +** supplied date. +** +** 4) The model is consistent with the IAU 2000A precession-nutation. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauS00a(double date1, double date2) +/* +** - - - - - - - - +** i a u S 0 0 a +** - - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, using the IAU 2000A +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems. The two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The CIO locator s remains a small fraction of +** 1 arcsecond throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. The present +** function uses the full IAU 2000A nutation model when predicting +** the CIP position. Faster results, with no significant loss of +** accuracy, can be obtained via the function iauS00b, which uses +** instead the IAU 2000B truncated model. +** +** Called: +** iauPnm00a classical NPB matrix, IAU 2000A +** iauBnp2xy extract CIP X,Y from the BPN matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauS00b(double date1, double date2) +/* +** - - - - - - - - +** i a u S 0 0 b +** - - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, using the IAU 2000B +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems. The two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The CIO locator s remains a small fraction of +** 1 arcsecond throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. The present +** function uses the IAU 2000B truncated nutation model when +** predicting the CIP position. The function iauS00a uses instead +** the full IAU 2000A model, but with no significant increase in +** accuracy and at some cost in speed. +** +** Called: +** iauPnm00b classical NPB matrix, IAU 2000B +** iauBnp2xy extract CIP X,Y from the BPN matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +double iauS06(double date1, double date2, double x, double y) +/* +** - - - - - - - +** i a u S 0 6 +** - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, given the CIP's X,Y +** coordinates. Compatible with IAU 2006/2000A precession-nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** x,y double CIP coordinates (Note 3) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems: the two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The quantity s remains below 0.1 arcsecond +** throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series +** is more compact than a direct series for s would be. This +** function requires X,Y to be supplied by the caller, who is +** responsible for providing values that are consistent with the +** supplied date. +** +** 4) The model is consistent with the "P03" precession (Capitaine et +** al. 2003), adopted by IAU 2006 Resolution 1, 2006, and the +** IAU 2000A nutation (with P03 adjustments). +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, Astron. +** Astrophys. 432, 355 +** +** McCarthy, D.D., Petit, G. (eds.) 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +*/ + + + +double iauS06a(double date1, double date2) +/* +** - - - - - - - - +** i a u S 0 6 a +** - - - - - - - - +** +** The CIO locator s, positioning the Celestial Intermediate Origin on +** the equator of the Celestial Intermediate Pole, using the IAU 2006 +** precession and IAU 2000A nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the CIO locator s in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The CIO locator s is the difference between the right ascensions +** of the same point in two systems. The two systems are the GCRS +** and the CIP,CIO, and the point is the ascending node of the +** CIP equator. The CIO locator s remains a small fraction of +** 1 arcsecond throughout 1900-2100. +** +** 3) The series used to compute s is in fact for s+XY/2, where X and Y +** are the x and y components of the CIP unit vector; this series is +** more compact than a direct series for s would be. The present +** function uses the full IAU 2000A nutation model when predicting +** the CIP position. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** +** References: +** +** Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., +** "Expressions for the Celestial Intermediate Pole and Celestial +** Ephemeris Origin consistent with the IAU 2000A precession- +** nutation model", Astron.Astrophys. 400, 1145-1154 (2003) +** +** n.b. The celestial ephemeris origin (CEO) was renamed "celestial +** intermediate origin" (CIO) by IAU 2006 Resolution 2. +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +void iauS2c(double theta, double phi, double c[3]) +/* +** - - - - - - - +** i a u S 2 c +** - - - - - - - +** +** Convert spherical coordinates to Cartesian. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** +** Returned: +** c double[3] direction cosines +** +*/ + + + +void iauS2p(double theta, double phi, double r, double p[3]) +/* +** - - - - - - - +** i a u S 2 p +** - - - - - - - +** +** Convert spherical polar coordinates to p-vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** +** Returned: +** p double[3] Cartesian coordinates +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauSxp multiply p-vector by scalar +** +*/ + + + +void iauS2pv(double theta, double phi, double r, + double td, double pd, double rd, + double pv[2][3]) +/* +** - - - - - - - - +** i a u S 2 p v +** - - - - - - - - +** +** Convert position/velocity from spherical to Cartesian coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** theta double longitude angle (radians) +** phi double latitude angle (radians) +** r double radial distance +** td double rate of change of theta +** pd double rate of change of phi +** rd double rate of change of r +** +** Returned: +** pv double[2][3] pv-vector +** +*/ + + + +void iauS2xpv(double s1, double s2, double pv[2][3], double spv[2][3]) +/* +** - - - - - - - - - +** i a u S 2 x p v +** - - - - - - - - - +** +** Multiply a pv-vector by two scalars. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** s1 double scalar to multiply position component by +** s2 double scalar to multiply velocity component by +** pv double[2][3] pv-vector +** +** Returned: +** spv double[2][3] pv-vector: p scaled by s1, v scaled by s2 +** +** Note: +** It is permissible for pv and spv to be the same array. +** +** Called: +** iauSxp multiply p-vector by scalar +** +*/ + + + +double iauSepp(double a[3], double b[3]) +/* +** - - - - - - - - +** i a u S e p p +** - - - - - - - - +** +** Angular separation between two p-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[3] first p-vector (not necessarily unit length) +** b double[3] second p-vector (not necessarily unit length) +** +** Returned (function value): +** double angular separation (radians, always positive) +** +** Notes: +** +** 1) If either vector is null, a zero result is returned. +** +** 2) The angular separation is most simply formulated in terms of +** scalar product. However, this gives poor accuracy for angles +** near zero and pi. The present algorithm uses both cross product +** and dot product, to deliver full accuracy whatever the size of +** the angle. +** +** Called: +** iauPxp vector product of two p-vectors +** iauPm modulus of p-vector +** iauPdp scalar product of two p-vectors +** +*/ + + + +double iauSeps(double al, double ap, double bl, double bp) +/* +** - - - - - - - - +** i a u S e p s +** - - - - - - - - +** +** Angular separation between two sets of spherical coordinates. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** al double first longitude (radians) +** ap double first latitude (radians) +** bl double second longitude (radians) +** bp double second latitude (radians) +** +** Returned (function value): +** double angular separation (radians) +** +** Called: +** iauS2c spherical coordinates to unit vector +** iauSepp angular separation between two p-vectors +** +*/ + + + +double iauSp00(double date1, double date2) +/* +** - - - - - - - - +** i a u S p 0 0 +** - - - - - - - - +** +** The TIO locator s', positioning the Terrestrial Intermediate Origin +** on the equator of the Celestial Intermediate Pole. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned (function value): +** double the TIO locator s' in radians (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The TIO locator s' is obtained from polar motion observations by +** numerical integration, and so is in essence unpredictable. +** However, it is dominated by a secular drift of about +** 47 microarcseconds per century, which is the approximation +** evaluated by the present function. +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +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) +/* +** - - - - - - - - - - +** i a u S t a r p m +** - - - - - - - - - - +** +** Star proper motion: update star catalog data for space motion. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** ra1 double right ascension (radians), before +** dec1 double declination (radians), before +** pmr1 double RA proper motion (radians/year), before +** pmd1 double Dec proper motion (radians/year), before +** px1 double parallax (arcseconds), before +** rv1 double radial velocity (km/s, +ve = receding), before +** ep1a double "before" epoch, part A (Note 1) +** ep1b double "before" epoch, part B (Note 1) +** ep2a double "after" epoch, part A (Note 1) +** ep2b double "after" epoch, part B (Note 1) +** +** Returned: +** ra2 double right ascension (radians), after +** dec2 double declination (radians), after +** pmr2 double RA proper motion (radians/year), after +** pmd2 double Dec proper motion (radians/year), after +** px2 double parallax (arcseconds), after +** rv2 double radial velocity (km/s, +ve = receding), after +** +** Returned (function value): +** int status: +** -1 = system error (should not occur) +** 0 = no warnings or errors +** 1 = distance overridden (Note 6) +** 2 = excessive velocity (Note 7) +** 4 = solution didn't converge (Note 8) +** else = binary logical OR of the above warnings +** +** Notes: +** +** 1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are +** Julian Dates, apportioned in any convenient way between the two +** parts (A and B). For example, JD(TDB)=2450123.7 could be +** expressed in any of these ways, among others: +** +** epNa epNb +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in cases +** where the loss of several decimal digits of resolution is +** acceptable. The J2000 method is best matched to the way the +** argument is handled internally and will deliver the optimum +** resolution. The MJD method and the date & time methods are both +** good compromises between resolution and convenience. +** +** 2) In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** The proper motions are the rate of change of the right ascension +** and declination at the catalog epoch and are in radians per TDB +** Julian year. +** +** The parallax and radial velocity are in the same frame. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds. +** +** 4) The RA proper motion is in terms of coordinate angle, not true +** angle. If the catalog uses arcseconds for both RA and Dec proper +** motions, the RA proper motion will need to be divided by cos(Dec) +** before use. +** +** 5) Straight-line motion at constant speed, in the inertial frame, +** is assumed. +** +** 6) An extremely small (or zero or negative) parallax is interpreted +** to mean that the object is on the "celestial sphere", the radius +** of which is an arbitrary (large) value (see the iauStarpv +** function for the value used). When the distance is overridden in +** this way, the status, initially zero, has 1 added to it. +** +** 7) If the space velocity is a significant fraction of c (see the +** constant VMAX in the function iauStarpv), it is arbitrarily set +** to zero. When this action occurs, 2 is added to the status. +** +** 8) The relativistic adjustment carried out in the iauStarpv function +** involves an iterative calculation. If the process fails to +** converge within a set number of iterations, 4 is added to the +** status. +** +** Called: +** iauStarpv star catalog data to space motion pv-vector +** iauPvu update a pv-vector +** iauPdp scalar product of two p-vectors +** iauPvstar space motion pv-vector to star catalog data +** +*/ + + + +int iauStarpv(double ra, double dec, + double pmr, double pmd, double px, double rv, + double pv[2][3]) +/* +** - - - - - - - - - - +** i a u S t a r p v +** - - - - - - - - - - +** +** Convert star catalog coordinates to position+velocity vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given (Note 1): +** ra double right ascension (radians) +** dec double declination (radians) +** pmr double RA proper motion (radians/year) +** pmd double Dec proper motion (radians/year) +** px double parallax (arcseconds) +** rv double radial velocity (km/s, positive = receding) +** +** Returned (Note 2): +** pv double[2][3] pv-vector (au, au/day) +** +** Returned (function value): +** int status: +** 0 = no warnings +** 1 = distance overridden (Note 6) +** 2 = excessive speed (Note 7) +** 4 = solution didn't converge (Note 8) +** else = binary logical OR of the above +** +** Notes: +** +** 1) The star data accepted by this function are "observables" for an +** imaginary observer at the solar-system barycenter. Proper motion +** and radial velocity are, strictly, in terms of barycentric +** coordinate time, TCB. For most practical applications, it is +** permissible to neglect the distinction between TCB and ordinary +** "proper" time on Earth (TT/TAI). The result will, as a rule, be +** limited by the intrinsic accuracy of the proper-motion and +** radial-velocity data; moreover, the pv-vector is likely to be +** merely an intermediate result, so that a change of time unit +** would cancel out overall. +** +** In accordance with normal star-catalog conventions, the object's +** right ascension and declination are freed from the effects of +** secular aberration. The frame, which is aligned to the catalog +** equator and equinox, is Lorentzian and centered on the SSB. +** +** 2) The resulting position and velocity pv-vector is with respect to +** the same frame and, like the catalog coordinates, is freed from +** the effects of secular aberration. Should the "coordinate +** direction", where the object was located at the catalog epoch, be +** required, it may be obtained by calculating the magnitude of the +** position vector pv[0][0-2] dividing by the speed of light in +** au/day to give the light-time, and then multiplying the space +** velocity pv[1][0-2] by this light-time and adding the result to +** pv[0][0-2]. +** +** Summarizing, the pv-vector returned is for most stars almost +** identical to the result of applying the standard geometrical +** "space motion" transformation. The differences, which are the +** subject of the Stumpff paper referenced below, are: +** +** (i) In stars with significant radial velocity and proper motion, +** the constantly changing light-time distorts the apparent proper +** motion. Note that this is a classical, not a relativistic, +** effect. +** +** (ii) The transformation complies with special relativity. +** +** 3) Care is needed with units. The star coordinates are in radians +** and the proper motions in radians per Julian year, but the +** parallax is in arcseconds; the radial velocity is in km/s, but +** the pv-vector result is in au and au/day. +** +** 4) The RA proper motion is in terms of coordinate angle, not true +** angle. If the catalog uses arcseconds for both RA and Dec proper +** motions, the RA proper motion will need to be divided by cos(Dec) +** before use. +** +** 5) Straight-line motion at constant speed, in the inertial frame, +** is assumed. +** +** 6) An extremely small (or zero or negative) parallax is interpreted +** to mean that the object is on the "celestial sphere", the radius +** of which is an arbitrary (large) value (see the constant PXMIN). +** When the distance is overridden in this way, the status, +** initially zero, has 1 added to it. +** +** 7) If the space velocity is a significant fraction of c (see the +** constant VMAX), it is arbitrarily set to zero. When this action +** occurs, 2 is added to the status. +** +** 8) The relativistic adjustment involves an iterative calculation. +** If the process fails to converge within a set number (IMAX) of +** iterations, 4 is added to the status. +** +** 9) The inverse transformation is performed by the function +** iauPvstar. +** +** Called: +** iauS2pv spherical coordinates to pv-vector +** iauPm modulus of p-vector +** iauZp zero p-vector +** iauPn decompose p-vector into modulus and direction +** iauPdp scalar product of two p-vectors +** iauSxp multiply p-vector by scalar +** iauPmp p-vector minus p-vector +** iauPpp p-vector plus p-vector +** +** Reference: +** +** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. +** +*/ + + + +void iauSxp(double s, double p[3], double sp[3]) +/* +** - - - - - - - +** i a u S x p +** - - - - - - - +** +** Multiply a p-vector by a scalar. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** s double scalar +** p double[3] p-vector +** +** Returned: +** sp double[3] s * p +** +** Note: +** It is permissible for p and sp to be the same array. +** +*/ + + + +void iauSxpv(double s, double pv[2][3], double spv[2][3]) +/* +** - - - - - - - - +** i a u S x p v +** - - - - - - - - +** +** Multiply a pv-vector by a scalar. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Given: +** s double scalar +** pv double[2][3] pv-vector +** +** Returned: +** spv double[2][3] s * pv +** +** Note: +** It is permissible for pv and spv to be the same array. +** +** Called: +** iauS2xpv multiply pv-vector by two scalars +** +*/ + + + +int iauTaitt(double tai1, double tai2, double *tt1, double *tt2) +/* +** - - - - - - - - - +** i a u T a i t t +** - - - - - - - - - +** +** Time scale transformation: International Atomic Time, TAI, to +** Terrestrial Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tai1,tai2 double TAI as a 2-part Julian Date +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tai1+tai2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tai1 is the Julian +** Day Number and tai2 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauTaiut1(double tai1, double tai2, double dta, + double *ut11, double *ut12) +/* +** - - - - - - - - - - +** i a u T a i u t 1 +** - - - - - - - - - - +** +** Time scale transformation: International Atomic Time, TAI, to +** Universal Time, UT1. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tai1,tai2 double TAI as a 2-part Julian Date +** dta double UT1-TAI in seconds +** +** Returned: +** ut11,ut12 double UT1 as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tai1+tai2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tai1 is the Julian +** Day Number and tai2 is the fraction of a day. The returned +** UT11,UT12 follow suit. +** +** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is +** available from IERS tabulations. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2) +/* +** - - - - - - - - - - +** i a u T a i u t c +** - - - - - - - - - - +** +** Time scale transformation: International Atomic Time, TAI, to +** Coordinated Universal Time, UTC. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tai1,tai2 double TAI as a 2-part Julian Date (Note 1) +** +** Returned: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3) +** +** Returned (function value): +** int status: +1 = dubious year (Note 4) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) tai1+tai2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tai1 is the Julian +** Day Number and tai2 is the fraction of a day. The returned utc1 +** and utc2 form an analogous pair, except that a special convention +** is used, to deal with the problem of leap seconds - see the next +** note. +** +** 2) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the JD day represents UTC days whether the +** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era +** there were smaller jumps (in either direction) each time the +** linear UTC(TAI) expression was changed, and these "mini-leaps" +** are also included in the SOFA convention. +** +** 3) The function iauD2dtf can be used to transform the UTC quasi-JD +** into calendar date and clock time, including UTC leap second +** handling. +** +** 4) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** Called: +** iauUtctai UTC to TAI +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2) +/* +** - - - - - - - - - - +** i a u T c b t d b +** - - - - - - - - - - +** +** Time scale transformation: Barycentric Coordinate Time, TCB, to +** Barycentric Dynamical Time, TDB. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tcb1,tcb2 double TCB as a 2-part Julian Date +** +** Returned: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tcb1+tcb2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tcb1 is the Julian +** Day Number and tcb2 is the fraction of a day. The returned +** tdb1,tdb2 follow suit. +** +** 2) The 2006 IAU General Assembly introduced a conventional linear +** transformation between TDB and TCB. This transformation +** compensates for the drift between TCB and terrestrial time TT, +** and keeps TDB approximately centered on TT. Because the +** relationship between TT and TCB depends on the adopted solar +** system ephemeris, the degree of alignment between TDB and TT over +** long intervals will vary according to which ephemeris is used. +** Former definitions of TDB attempted to avoid this problem by +** stipulating that TDB and TT should differ only by periodic +** effects. This is a good description of the nature of the +** relationship but eluded precise mathematical formulation. The +** conventional linear relationship adopted in 2006 sidestepped +** these difficulties whilst delivering a TDB that in practice was +** consistent with values before that date. +** +** 3) TDB is essentially the same as Teph, the time argument for the +** JPL solar system ephemerides. +** +** Reference: +** +** IAU 2006 Resolution B3 +** +*/ + + + +int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2) +/* +** - - - - - - - - - +** i a u T c g t t +** - - - - - - - - - +** +** Time scale transformation: Geocentric Coordinate Time, TCG, to +** Terrestrial Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tcg1,tcg2 double TCG as a 2-part Julian Date +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tcg1+tcg2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tcg1 is the Julian +** Day Number and tcg22 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2000 Resolution B1.9 +** +*/ + + + +int iauTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2) +/* +** - - - - - - - - - - +** i a u T d b t c b +** - - - - - - - - - - +** +** Time scale transformation: Barycentric Dynamical Time, TDB, to +** Barycentric Coordinate Time, TCB. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** +** Returned: +** tcb1,tcb2 double TCB as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tdb1 is the Julian +** Day Number and tdb2 is the fraction of a day. The returned +** tcb1,tcb2 follow suit. +** +** 2) The 2006 IAU General Assembly introduced a conventional linear +** transformation between TDB and TCB. This transformation +** compensates for the drift between TCB and terrestrial time TT, +** and keeps TDB approximately centered on TT. Because the +** relationship between TT and TCB depends on the adopted solar +** system ephemeris, the degree of alignment between TDB and TT over +** long intervals will vary according to which ephemeris is used. +** Former definitions of TDB attempted to avoid this problem by +** stipulating that TDB and TT should differ only by periodic +** effects. This is a good description of the nature of the +** relationship but eluded precise mathematical formulation. The +** conventional linear relationship adopted in 2006 sidestepped +** these difficulties whilst delivering a TDB that in practice was +** consistent with values before that date. +** +** 3) TDB is essentially the same as Teph, the time argument for the +** JPL solar system ephemerides. +** +** Reference: +** +** IAU 2006 Resolution B3 +** +*/ + + + +int iauTdbtt(double tdb1, double tdb2, double dtr, + double *tt1, double *tt2 ) +/* +** - - - - - - - - - +** i a u T d b t t +** - - - - - - - - - +** +** Time scale transformation: Barycentric Dynamical Time, TDB, to +** Terrestrial Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** dtr double TDB-TT in seconds +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tdb1+tdb2 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where tdb1 is the Julian +** Day Number and tdb2 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** 2) The argument dtr represents the quasi-periodic component of the +** GR transformation between TT and TCB. It is dependent upon the +** adopted solar-system ephemeris, and can be obtained by numerical +** integration, by interrogating a precomputed time ephemeris or by +** evaluating a model such as that implemented in the SOFA function +** iauDtdb. The quantity is dominated by an annual term of 1.7 ms +** amplitude. +** +** 3) TDB is essentially the same as Teph, the time argument for the +** JPL solar system ephemerides. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2006 Resolution 3 +** +*/ + + + +int iauTf2a(char s, int ihour, int imin, double sec, double *rad) +/* +** - - - - - - - - +** i a u T f 2 a +** - - - - - - - - +** +** Convert hours, minutes, seconds to radians. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** s char sign: '-' = negative, otherwise positive +** ihour int hours +** imin int minutes +** sec double seconds +** +** Returned: +** rad double angle in radians +** +** Returned (function value): +** int status: 0 = OK +** 1 = ihour outside range 0-23 +** 2 = imin outside range 0-59 +** 3 = sec outside range 0-59.999... +** +** Notes: +** +** 1) The result is computed even if any of the range checks fail. +** +** 2) Negative ihour, imin and/or sec produce a warning status, but +** the absolute value is used in the conversion. +** +** 3) If there are multiple errors, the status value reflects only the +** first, the smallest taking precedence. +** +*/ + + + +int iauTf2d(char s, int ihour, int imin, double sec, double *days) +/* +** - - - - - - - - +** i a u T f 2 d +** - - - - - - - - +** +** Convert hours, minutes, seconds to days. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** s char sign: '-' = negative, otherwise positive +** ihour int hours +** imin int minutes +** sec double seconds +** +** Returned: +** days double interval in days +** +** Returned (function value): +** int status: 0 = OK +** 1 = ihour outside range 0-23 +** 2 = imin outside range 0-59 +** 3 = sec outside range 0-59.999... +** +** Notes: +** +** 1) The result is computed even if any of the range checks fail. +** +** 2) Negative ihour, imin and/or sec produce a warning status, but +** the absolute value is used in the conversion. +** +** 3) If there are multiple errors, the status value reflects only the +** first, the smallest taking precedence. +** +*/ + + + +int iauTpors(double xi, double eta, double a, double b, + double *a01, double *b01, double *a02, double *b02) +/* +** - - - - - - - - - +** i a u T p o r s +** - - - - - - - - - +** +** In the tangent plane projection, given the rectangular coordinates +** of a star and its spherical coordinates, determine the spherical +** coordinates of the tangent point. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** a,b double star's spherical coordinates (Note 3) +** +** Returned: +** *a01,*b01 double tangent point's spherical coordinates, Soln. 1 +** *a02,*b02 double tangent point's spherical coordinates, Soln. 2 +** +** Returned (function value): +** int number of solutions: +** 0 = no solutions returned (Note 5) +** 1 = only the first solution is useful (Note 6) +** 2 = both solutions are useful (Note 6) +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the spherical coordinates are observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the spherical coordinates are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) All angular arguments are in radians. +** +** 4) The angles a01 and a02 are returned in the range 0-2pi. The +** angles b01 and b02 are returned in the range +/-pi, but in the +** usual, non-pole-crossing, case, the range is +/-pi/2. +** +** 5) Cases where there is no solution can arise only near the poles. +** For example, it is clearly impossible for a star at the pole +** itself to have a non-zero xi value, and hence it is meaningless +** to ask where the tangent point would have to be to bring about +** this combination of xi and dec. +** +** 6) Also near the poles, cases can arise where there are two useful +** solutions. The return value indicates whether the second of the +** two solutions returned is useful; 1 indicates only one useful +** solution, the usual case. +** +** 7) The basis of the algorithm is to solve the spherical triangle PSC, +** where P is the north celestial pole, S is the star and C is the +** tangent point. The spherical coordinates of the tangent point are +** [a0,b0]; writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), side c +** is then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be +** found) is (pi/2-b0). Angle C is given by sin(C) = xi/rho and +** cos(C) = eta/rho. Angle P (to be found) is the longitude +** difference between star and tangent point (a-a0). +** +** 8) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** iauTpsts iauTpstv star +** > iauTpors < iauTporv origin +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +*/ + + + +int iauTporv(double xi, double eta, double v[3], + double v01[3], double v02[3]) +/* +** - - - - - - - - - +** i a u T p o r v +** - - - - - - - - - +** +** In the tangent plane projection, given the rectangular coordinates +** of a star and its direction cosines, determine the direction +** cosines of the tangent point. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** v double[3] star's direction cosines (Note 3) +** +** Returned: +** v01 double[3] tangent point's direction cosines, Solution 1 +** v02 double[3] tangent point's direction cosines, Solution 2 +** +** Returned (function value): +** int number of solutions: +** 0 = no solutions returned (Note 4) +** 1 = only the first solution is useful (Note 5) +** 2 = both solutions are useful (Note 5) +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the direction cosines represent observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the direction cosines are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) The vector v must be of unit length or the result will be wrong. +** +** 4) Cases where there is no solution can arise only near the poles. +** For example, it is clearly impossible for a star at the pole +** itself to have a non-zero xi value, and hence it is meaningless +** to ask where the tangent point would have to be. +** +** 5) Also near the poles, cases can arise where there are two useful +** solutions. The return value indicates whether the second of the +** two solutions returned is useful; 1 indicates only one useful +** solution, the usual case. +** +** 6) The basis of the algorithm is to solve the spherical triangle +** PSC, where P is the north celestial pole, S is the star and C is +** the tangent point. Calling the celestial spherical coordinates +** of the star and tangent point (a,b) and (a0,b0) respectively, and +** writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), and +** transforming the vector v into (a,b) in the normal way, side c is +** then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be +** found) is (pi/2-b0), while angle C is given by sin(C) = xi/rho +** and cos(C) = eta/rho; angle P (to be found) is (a-a0). After +** solving the spherical triangle, the result (a0,b0) can be +** expressed in vector form as v0. +** +** 7) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** iauTpsts iauTpstv star +** iauTpors > iauTporv < origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +*/ + + + +void iauTpsts(double xi, double eta, double a0, double b0, + double *a, double *b) +/* +** - - - - - - - - - +** i a u T p s t s +** - - - - - - - - - +** +** In the tangent plane projection, given the star's rectangular +** coordinates and the spherical coordinates of the tangent point, +** solve for the spherical coordinates of the star. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** a0,b0 double tangent point's spherical coordinates +** +** Returned: +** *a,*b double star's spherical coordinates +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the spherical coordinates are observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the spherical coordinates are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) All angular arguments are in radians. +** +** 4) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** > iauTpsts < iauTpstv star +** iauTpors iauTporv origin +** +** Called: +** iauAnp normalize angle into range 0 to 2pi +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +*/ + + + +void iauTpstv(double xi, double eta, double v0[3], double v[3]) +/* +** - - - - - - - - - +** i a u T p s t v +** - - - - - - - - - +** +** In the tangent plane projection, given the star's rectangular +** coordinates and the direction cosines of the tangent point, solve +** for the direction cosines of the star. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** xi,eta double rectangular coordinates of star image (Note 2) +** v0 double[3] tangent point's direction cosines +** +** Returned: +** v double[3] star's direction cosines +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the direction cosines represent observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the direction cosines are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) The method used is to complete the star vector in the (xi,eta) +** based triad and normalize it, then rotate the triad to put the +** tangent point at the pole with the x-axis aligned to zero +** longitude. Writing (a0,b0) for the celestial spherical +** coordinates of the tangent point, the sequence of rotations is +** (b-pi/2) around the x-axis followed by (-a-pi/2) around the +** z-axis. +** +** 4) If vector v0 is not of unit length, the returned vector v will +** be wrong. +** +** 5) If vector v0 points at a pole, the returned vector v will be +** based on the arbitrary assumption that the longitude coordinate +** of the tangent point is zero. +** +** 6) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes iauTpxev xi,eta +** iauTpsts > iauTpstv < star +** iauTpors iauTporv origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +*/ + + + +int iauTpxes(double a, double b, double a0, double b0, + double *xi, double *eta) +/* +** - - - - - - - - - +** i a u T p x e s +** - - - - - - - - - +** +** In the tangent plane projection, given celestial spherical +** coordinates for a star and the tangent point, solve for the star's +** rectangular coordinates in the tangent plane. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** a,b double star's spherical coordinates +** a0,b0 double tangent point's spherical coordinates +** +** Returned: +** *xi,*eta double rectangular coordinates of star image (Note 2) +** +** Returned (function value): +** int status: 0 = OK +** 1 = star too far from axis +** 2 = antistar on tangent plane +** 3 = antistar too far from axis +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the spherical coordinates are observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". For right-handed spherical coordinates, +** (xi,eta) are also right-handed. The units of (xi,eta) are, +** effectively, radians at the tangent point. +** +** 3) All angular arguments are in radians. +** +** 4) This function is a member of the following set: +** +** spherical vector solve for +** +** > iauTpxes < iauTpxev xi,eta +** iauTpsts iauTpstv star +** iauTpors iauTporv origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +*/ + + + +int iauTpxev(double v[3], double v0[3], double *xi, double *eta) +/* +** - - - - - - - - - +** i a u T p x e v +** - - - - - - - - - +** +** In the tangent plane projection, given celestial direction cosines +** for a star and the tangent point, solve for the star's rectangular +** coordinates in the tangent plane. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** v double[3] direction cosines of star (Note 4) +** v0 double[3] direction cosines of tangent point (Note 4) +** +** Returned: +** *xi,*eta double tangent plane coordinates of star +** +** Returned (function value): +** int status: 0 = OK +** 1 = star too far from axis +** 2 = antistar on tangent plane +** 3 = antistar too far from axis +** +** Notes: +** +** 1) The tangent plane projection is also called the "gnomonic +** projection" and the "central projection". +** +** 2) The eta axis points due north in the adopted coordinate system. +** If the direction cosines represent observed (RA,Dec), the tangent +** plane coordinates (xi,eta) are conventionally called the +** "standard coordinates". If the direction cosines are with +** respect to a right-handed triad, (xi,eta) are also right-handed. +** The units of (xi,eta) are, effectively, radians at the tangent +** point. +** +** 3) The method used is to extend the star vector to the tangent +** plane and then rotate the triad so that (x,y) becomes (xi,eta). +** Writing (a,b) for the celestial spherical coordinates of the +** star, the sequence of rotations is (a+pi/2) around the z-axis +** followed by (pi/2-b) around the x-axis. +** +** 4) If vector v0 is not of unit length, or if vector v is of zero +** length, the results will be wrong. +** +** 5) If v0 points at a pole, the returned (xi,eta) will be based on +** the arbitrary assumption that the longitude coordinate of the +** tangent point is zero. +** +** 6) This function is a member of the following set: +** +** spherical vector solve for +** +** iauTpxes > iauTpxev < xi,eta +** iauTpsts iauTpstv star +** iauTpors iauTporv origin +** +** References: +** +** Calabretta M.R. & Greisen, E.W., 2002, "Representations of +** celestial coordinates in FITS", Astron.Astrophys. 395, 1077 +** +** Green, R.M., "Spherical Astronomy", Cambridge University Press, +** 1987, Chapter 13. +** +*/ + + + +void iauTr(double r[3][3], double rt[3][3]) +/* +** - - - - - - +** i a u T r +** - - - - - - +** +** Transpose 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 +** +** Returned: +** rt double[3][3] transpose +** +** Note: +** It is permissible for r and rt to be the same array. +** +** Called: +** iauCr copy r-matrix +** +*/ + + + +void iauTrxp(double r[3][3], double p[3], double trp[3]) +/* +** - - - - - - - - +** i a u T r x p +** - - - - - - - - +** +** Multiply a p-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 +** p double[3] p-vector +** +** Returned: +** trp double[3] r^T * p +** +** Note: +** It is permissible for p and trp to be the same array. +** +** Called: +** iauTr transpose r-matrix +** iauRxp product of r-matrix and p-vector +** +*/ + + + +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^T * pv +** +** Notes: +** +** 1) The algorithm is for the simple case where the r-matrix r is not +** a function of time. The case where r is a function of time leads +** to an additional velocity component equal to the product of the +** derivative of the transpose of r and the position vector. +** +** 2) It is permissible for pv and rpv to be the same array. +** +** Called: +** iauTr transpose r-matrix +** iauRxpv product of r-matrix and pv-vector +** +*/ + + + +int iauTttai(double tt1, double tt2, double *tai1, double *tai2) +/* +** - - - - - - - - - +** i a u T t t a i +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to International +** Atomic Time, TAI. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned: +** tai1,tai2 double TAI as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned tai1,tai2 follow +** suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauTttcg(double tt1, double tt2, double *tcg1, double *tcg2) +/* +** - - - - - - - - - +** i a u T t t c g +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to Geocentric +** Coordinate Time, TCG. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned: +** tcg1,tcg2 double TCG as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Note: +** +** tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned tcg1,tcg2 follow +** suit. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2000 Resolution B1.9 +** +*/ + + + +int iauTttdb(double tt1, double tt2, double dtr, + double *tdb1, double *tdb2) +/* +** - - - - - - - - - +** i a u T t t d b +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to Barycentric +** Dynamical Time, TDB. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** dtr double TDB-TT in seconds +** +** Returned: +** tdb1,tdb2 double TDB as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned tdb1,tdb2 follow +** suit. +** +** 2) The argument dtr represents the quasi-periodic component of the +** GR transformation between TT and TCB. It is dependent upon the +** adopted solar-system ephemeris, and can be obtained by numerical +** integration, by interrogating a precomputed time ephemeris or by +** evaluating a model such as that implemented in the SOFA function +** iauDtdb. The quantity is dominated by an annual term of 1.7 ms +** amplitude. +** +** 3) TDB is essentially the same as Teph, the time argument for the JPL +** solar system ephemerides. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** IAU 2006 Resolution 3 +** +*/ + + + +int iauTtut1(double tt1, double tt2, double dt, + double *ut11, double *ut12) +/* +** - - - - - - - - - +** i a u T t u t 1 +** - - - - - - - - - +** +** Time scale transformation: Terrestrial Time, TT, to Universal Time, +** UT1. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** tt1,tt2 double TT as a 2-part Julian Date +** dt double TT-UT1 in seconds +** +** Returned: +** ut11,ut12 double UT1 as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) tt1+tt2 is Julian Date, apportioned in any convenient way between +** the two arguments, for example where tt1 is the Julian Day Number +** and tt2 is the fraction of a day. The returned ut11,ut12 follow +** suit. +** +** 2) The argument dt is classical Delta T. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauUt1tai(double ut11, double ut12, double dta, + double *tai1, double *tai2) +/* +** - - - - - - - - - - +** i a u U t 1 t a i +** - - - - - - - - - - +** +** Time scale transformation: Universal Time, UT1, to International +** Atomic Time, TAI. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** ut11,ut12 double UT1 as a 2-part Julian Date +** dta double UT1-TAI in seconds +** +** Returned: +** tai1,tai2 double TAI as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) ut11+ut12 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where ut11 is the Julian +** Day Number and ut12 is the fraction of a day. The returned +** tai1,tai2 follow suit. +** +** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is +** available from IERS tabulations. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauUt1tt(double ut11, double ut12, double dt, + double *tt1, double *tt2) +/* +** - - - - - - - - - +** i a u U t 1 t t +** - - - - - - - - - +** +** Time scale transformation: Universal Time, UT1, to Terrestrial +** Time, TT. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** ut11,ut12 double UT1 as a 2-part Julian Date +** dt double TT-UT1 in seconds +** +** Returned: +** tt1,tt2 double TT as a 2-part Julian Date +** +** Returned (function value): +** int status: 0 = OK +** +** Notes: +** +** 1) ut11+ut12 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where ut11 is the Julian +** Day Number and ut12 is the fraction of a day. The returned +** tt1,tt2 follow suit. +** +** 2) The argument dt is classical Delta T. +** +** Reference: +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauUt1utc(double ut11, double ut12, double dut1, + double *utc1, double *utc2) +/* +** - - - - - - - - - - +** i a u U t 1 u t c +** - - - - - - - - - - +** +** Time scale transformation: Universal Time, UT1, to Coordinated +** Universal Time, UTC. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** ut11,ut12 double UT1 as a 2-part Julian Date (Note 1) +** dut1 double Delta UT1: UT1-UTC in seconds (Note 2) +** +** Returned: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 3,4) +** +** Returned (function value): +** int status: +1 = dubious year (Note 5) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) ut11+ut12 is Julian Date, apportioned in any convenient way +** between the two arguments, for example where ut11 is the Julian +** Day Number and ut12 is the fraction of a day. The returned utc1 +** and utc2 form an analogous pair, except that a special convention +** is used, to deal with the problem of leap seconds - see Note 3. +** +** 2) Delta UT1 can be obtained from tabulations provided by the +** International Earth Rotation and Reference Systems Service. The +** value changes abruptly by 1s at a leap second; however, close to +** a leap second the algorithm used here is tolerant of the "wrong" +** choice of value being made. +** +** 3) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the returned quasi-JD UTC1+UTC2 represents UTC +** days whether the length is 86399, 86400 or 86401 SI seconds. +** +** 4) The function iauD2dtf can be used to transform the UTC quasi-JD +** into calendar date and clock time, including UTC leap second +** handling. +** +** 5) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauDat delta(AT) = TAI-UTC +** iauCal2jd Gregorian calendar to JD +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauUtctai(double utc1, double utc2, double *tai1, double *tai2) +/* +** - - - - - - - - - - +** i a u U t c t a i +** - - - - - - - - - - +** +** Time scale transformation: Coordinated Universal Time, UTC, to +** International Atomic Time, TAI. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) +** +** Returned: +** tai1,tai2 double TAI as a 2-part Julian Date (Note 5) +** +** Returned (function value): +** int status: +1 = dubious year (Note 3) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** 2) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the JD day represents UTC days whether the +** length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era +** there were smaller jumps (in either direction) each time the +** linear UTC(TAI) expression was changed, and these "mini-leaps" +** are also included in the SOFA convention. +** +** 3) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 4) The function iauDtf2d converts from calendar date and time of day +** into 2-part Julian Date, and in the case of UTC implements the +** leap-second-ambiguity convention described above. +** +** 5) The returned TAI1,TAI2 are such that their sum is the TAI Julian +** Date. +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauDat delta(AT) = TAI-UTC +** iauCal2jd Gregorian calendar to JD +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +*/ + + + +int iauUtcut1(double utc1, double utc2, double dut1, + double *ut11, double *ut12) +/* +** - - - - - - - - - - +** i a u U t c u t 1 +** - - - - - - - - - - +** +** Time scale transformation: Coordinated Universal Time, UTC, to +** Universal Time, UT1. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical. +** +** Given: +** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-4) +** dut1 double Delta UT1 = UT1-UTC in seconds (Note 5) +** +** Returned: +** ut11,ut12 double UT1 as a 2-part Julian Date (Note 6) +** +** Returned (function value): +** int status: +1 = dubious year (Note 3) +** 0 = OK +** -1 = unacceptable date +** +** Notes: +** +** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any +** convenient way between the two arguments, for example where utc1 +** is the Julian Day Number and utc2 is the fraction of a day. +** +** 2) JD cannot unambiguously represent UTC during a leap second unless +** special measures are taken. The convention in the present +** function is that the JD day represents UTC days whether the +** length is 86399, 86400 or 86401 SI seconds. +** +** 3) The warning status "dubious year" flags UTCs that predate the +** introduction of the time scale or that are too far in the future +** to be trusted. See iauDat for further details. +** +** 4) The function iauDtf2d converts from calendar date and time of +** day into 2-part Julian Date, and in the case of UTC implements +** the leap-second-ambiguity convention described above. +** +** 5) Delta UT1 can be obtained from tabulations provided by the +** International Earth Rotation and Reference Systems Service. +** It is the caller's responsibility to supply a dut1 argument +** containing the UT1-UTC value that matches the given UTC. +** +** 6) The returned ut11,ut12 are such that their sum is the UT1 Julian +** Date. +** +** References: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +** Explanatory Supplement to the Astronomical Almanac, +** P. Kenneth Seidelmann (ed), University Science Books (1992) +** +** Called: +** iauJd2cal JD to Gregorian calendar +** iauDat delta(AT) = TAI-UTC +** iauUtctai UTC to TAI +** iauTaiut1 TAI to UT1 +** +*/ + + + +void iauXy06(double date1, double date2, double *x, double *y) +/* +** - - - - - - - - +** i a u X y 0 6 +** - - - - - - - - +** +** X,Y coordinates of celestial intermediate pole from series based +** on IAU 2006 precession and IAU 2000A nutation. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: canonical model. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double CIP X,Y coordinates (Note 2) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The X,Y coordinates are those of the unit vector towards the +** celestial intermediate pole. They represent the combined effects +** of frame bias, precession and nutation. +** +** 3) The fundamental arguments used are as adopted in IERS Conventions +** (2003) and are from Simon et al. (1994) and Souchay et al. +** (1999). +** +** 4) This is an alternative to the angles-based method, via the SOFA +** function iauFw2xy and as used in iauXys06a for example. The two +** methods agree at the 1 microarcsecond level (at present), a +** negligible amount compared with the intrinsic accuracy of the +** models. However, it would be unwise to mix the two methods +** (angles-based and series-based) in a single application. +** +** Called: +** iauFal03 mean anomaly of the Moon +** iauFalp03 mean anomaly of the Sun +** iauFaf03 mean argument of the latitude of the Moon +** iauFad03 mean elongation of the Moon from the Sun +** iauFaom03 mean longitude of the Moon's ascending node +** iauFame03 mean longitude of Mercury +** iauFave03 mean longitude of Venus +** iauFae03 mean longitude of Earth +** iauFama03 mean longitude of Mars +** iauFaju03 mean longitude of Jupiter +** iauFasa03 mean longitude of Saturn +** iauFaur03 mean longitude of Uranus +** iauFane03 mean longitude of Neptune +** iauFapa03 general accumulated precession in longitude +** +** References: +** +** Capitaine, N., Wallace, P.T. & Chapront, J., 2003, +** Astron.Astrophys., 412, 567 +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), +** IERS Technical Note No. 32, BKG +** +** Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., +** Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663 +** +** Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M., 1999, +** Astron.Astrophys.Supp.Ser. 135, 111 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +void iauXys00a(double date1, double date2, + double *x, double *y, double *s) +/* +** - - - - - - - - - - +** i a u X y s 0 0 a +** - - - - - - - - - - +** +** For a given TT date, compute the X,Y coordinates of the Celestial +** Intermediate Pole and the CIO locator s, using the IAU 2000A +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** s double the CIO locator s (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 3) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 4) A faster, but slightly less accurate result (about 1 mas for +** X,Y), can be obtained by using instead the iauXys00b function. +** +** Called: +** iauPnm00a classical NPB matrix, IAU 2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauXys00b(double date1, double date2, + double *x, double *y, double *s) +/* +** - - - - - - - - - - +** i a u X y s 0 0 b +** - - - - - - - - - - +** +** For a given TT date, compute the X,Y coordinates of the Celestial +** Intermediate Pole and the CIO locator s, using the IAU 2000B +** precession-nutation model. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** s double the CIO locator s (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y +** components of the unit vector in the Geocentric Celestial +** Reference System. +** +** 3) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 4) The present function is faster, but slightly less accurate (about +** 1 mas in X,Y), than the iauXys00a function. +** +** Called: +** iauPnm00b classical NPB matrix, IAU 2000B +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS00 the CIO locator s, given X,Y, IAU 2000A +** +** Reference: +** +** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), +** IERS Technical Note No. 32, BKG (2004) +** +*/ + + + +void iauXys06a(double date1, double date2, + double *x, double *y, double *s) +/* +** - - - - - - - - - - +** i a u X y s 0 6 a +** - - - - - - - - - - +** +** For a given TT date, compute the X,Y coordinates of the Celestial +** Intermediate Pole and the CIO locator s, using the IAU 2006 +** precession and IAU 2000A nutation models. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: support function. +** +** Given: +** date1,date2 double TT as a 2-part Julian Date (Note 1) +** +** Returned: +** x,y double Celestial Intermediate Pole (Note 2) +** s double the CIO locator s (Note 3) +** +** Notes: +** +** 1) The TT date date1+date2 is a Julian Date, apportioned in any +** convenient way between the two arguments. For example, +** JD(TT)=2450123.7 could be expressed in any of these ways, +** among others: +** +** date1 date2 +** +** 2450123.7 0.0 (JD method) +** 2451545.0 -1421.3 (J2000 method) +** 2400000.5 50123.2 (MJD method) +** 2450123.5 0.2 (date & time method) +** +** The JD method is the most natural and convenient to use in +** cases where the loss of several decimal digits of resolution +** is acceptable. The J2000 method is best matched to the way +** the argument is handled internally and will deliver the +** optimum resolution. The MJD method and the date & time methods +** are both good compromises between resolution and convenience. +** +** 2) The Celestial Intermediate Pole coordinates are the x,y components +** of the unit vector in the Geocentric Celestial Reference System. +** +** 3) The CIO locator s (in radians) positions the Celestial +** Intermediate Origin on the equator of the CIP. +** +** 4) Series-based solutions for generating X and Y are also available: +** see Capitaine & Wallace (2006) and iauXy06. +** +** Called: +** iauPnm06a classical NPB matrix, IAU 2006/2000A +** iauBpn2xy extract CIP X,Y coordinates from NPB matrix +** iauS06 the CIO locator s, given X,Y, IAU 2006 +** +** References: +** +** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 +** +** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981 +** +*/ + + + +void iauZp(double p[3]) +/* +** - - - - - - +** i a u Z p +** - - - - - - +** +** Zero a p-vector. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Returned: +** p double[3] zero p-vector +** +*/ + + + +void iauZpv(double pv[2][3]) +/* +** - - - - - - - +** i a u Z p v +** - - - - - - - +** +** Zero 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. +** +** Returned: +** pv double[2][3] zero pv-vector +** +** Called: +** iauZp zero p-vector +** +*/ + + + +void iauZr(double r[3][3]) +/* +** - - - - - - +** i a u Z r +** - - - - - - +** +** Initialize an r-matrix to the null matrix. +** +** This function is part of the International Astronomical Union's +** SOFA (Standards of Fundamental Astronomy) software collection. +** +** Status: vector/matrix support function. +** +** Returned: +** r double[3][3] r-matrix +** +*/ + +copyr.lis 2023 April 17 + + +COPYRIGHT NOTICE + +Text equivalent to that below appears at the end of every SOFA routine +(with one exception). There are small formatting differences between +the Fortran and C versions. + +The one exception is the "leap second" routine DAT. This uniquely is +classified as "user replaceable", and has a mitigated license statement +that permits the distribution of local variants under the same name. +This measure allows other SOFA routines to call the local variant, which +may be file or network based, or otherwise equipped to pick up IERS leap +second updates with no need to download new SOFA code. + +*+---------------------------------------------------------------------- +* +* Copyright (C) 2023 +* 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 +* +*----------------------------------------------------------------------- + +consts.lis 2008 September 30 + + +SOFA Fortran constants +---------------------- + +These must be used exactly as presented below. + +* Pi + DOUBLE PRECISION DPI + PARAMETER ( DPI = 3.141592653589793238462643D0 ) + +* 2Pi + DOUBLE PRECISION D2PI + PARAMETER ( D2PI = 6.283185307179586476925287D0 ) + +* Radians to hours + DOUBLE PRECISION DR2H + PARAMETER ( DR2H = 3.819718634205488058453210D0 ) + +* Radians to seconds + DOUBLE PRECISION DR2S + PARAMETER ( DR2S = 13750.98708313975701043156D0 ) + +* Radians to degrees + DOUBLE PRECISION DR2D + PARAMETER ( DR2D = 57.29577951308232087679815D0 ) + +* Radians to arc seconds + DOUBLE PRECISION DR2AS + PARAMETER ( DR2AS = 206264.8062470963551564734D0 ) + +* Hours to radians + DOUBLE PRECISION DH2R + PARAMETER ( DH2R = 0.2617993877991494365385536D0 ) + +* Seconds to radians + DOUBLE PRECISION DS2R + PARAMETER ( DS2R = 7.272205216643039903848712D-5 ) + +* Degrees to radians + DOUBLE PRECISION DD2R + PARAMETER ( DD2R = 1.745329251994329576923691D-2 ) + +* Arc seconds to radians + DOUBLE PRECISION DAS2R + PARAMETER ( DAS2R = 4.848136811095359935899141D-6 ) + + +SOFA C constants +---------------- + +The constants used by the C version of SOFA are defined in the header +file sofam.h. + +#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: 2023 April 16 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ + +#include "math.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* 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; + +/* 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 tc, 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 tc, double rh, double wl, + iauASTROM *astrom); +void iauAtcc13(double rc, double dc, + double pr, double pd, double px, double rv, + double date1, double date2, + double *ra, double *da); +void iauAtccq(double rc, double dc, + double pr, double pd, double px, double rv, + iauASTROM *astrom, double *ra, double *da); +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 tc, 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 tc, 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 tc, 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 tc, 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 pob[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 height, double xp, + double yp, double sp, double theta, double pv[2][3]); +void iauRefco(double phpa, double tc, double rh, double wl, + double *refa, double *refb); + +/* Astronomy/Ephemerides */ +int iauEpv00(double date1, double date2, + double pvh[2][3], double pvb[2][3]); +void iauMoon98(double date1, double date2, double pv[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 iauLtp(double epj, double rp[3][3]); +void iauLtpb(double epj, double rpb[3][3]); +void iauLtpecl(double epj, double vec[3]); +void iauLtpequ(double epj, double veq[3]); +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 date01, double date02, + double date11, double date12, + 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 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 iauFk425(double r1950, double d1950, + double dr1950, double dd1950, + double p1950, double v1950, + double *r2000, double *d2000, + double *dr2000, double *dd2000, + double *p2000, double *v2000); +void iauFk45z(double r1950, double d1950, double bepoch, + double *r2000, double *d2000); +void iauFk524(double r2000, double d2000, + double dr2000, double dd2000, + double p2000, double v2000, + double *r1950, double *d1950, + double *dr1950, double *dd1950, + double *p1950, double *v1950); +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 iauFk54z(double r2000, double d2000, double bepoch, + double *r1950, double *d1950, + double *dr1950, double *dd1950); +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/EclipticCoordinates */ +void iauEceq06(double date1, double date2, double dl, double db, + double *dr, double *dd); +void iauEcm06(double date1, double date2, double rm[3][3]); +void iauEqec06(double date1, double date2, double dr, double dd, + double *dl, double *db); +void iauLteceq(double epj, double dl, double db, double *dr, double *dd); +void iauLtecm(double epj, double rm[3][3]); +void iauLteqec(double epj, double dr, double dd, double *dl, double *db); + +/* Astronomy/GalacticCoordinates */ +void iauG2icrs(double dl, double db, double *dr, double *dd); +void iauIcrs2g(double dr, double dd, double *dl, double *db); + +/* 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]); + +/* 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); + +/* Astronomy/HorizonEquatorial */ +void iauAe2hd(double az, double el, double phi, + double *ha, double *dec); +void iauHd2ae(double ha, double dec, double phi, + double *az, double *el); +double iauHd2pa(double ha, double dec, double phi); + +/* Astronomy/Gnomonic */ +int iauTpors(double xi, double eta, double a, double b, + double *a01, double *b01, double *a02, double *b02); +int iauTporv(double xi, double eta, double v[3], + double v01[3], double v02[3]); +void iauTpsts(double xi, double eta, double a0, double b0, + double *a, double *b); +void iauTpstv(double xi, double eta, double v0[3], double v[3]); +int iauTpxes(double a, double b, double a0, double b0, + double *xi, double *eta); +int iauTpxev(double v[3], double v0[3], double *xi, double *eta); + +/* 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) 2023 +** 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 +** +**--------------------------------------------------------------------*/ + +#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: 2021 February 24 +** +** SOFA release 2023-10-11 +** +** Copyright (C) 2023 IAU SOFA Board. See notes at end. +*/ + +/* 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, IAU 2012) */ +#define DAU (149597870.7e3) + +/* Speed of light (m/s) */ +#define CMPS 299792458.0 + +/* Light time for 1 au (s) */ +#define AULT (DAU/CMPS) + +/* 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) (fabs(A)<0.5?0.0\ + :((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) 2023 +** 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 +** +**--------------------------------------------------------------------*/ + +board.lis 2023 May 31 + + + +IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD + + +Current Membership + + John Bangert - United States Naval Observatory, retired + Steven Bell - His Majesty's Nautical Almanac Office (HMNAO) + Nicole Capitaine - Paris Observatory + Maria Davis - United States Naval Observatory (IERS) + Mickael Gastineau - Paris Observatory, IMCCE + Catherine Hohenkerk - HMNAO (Chair, retired) + Li Jinling - Shanghai Astronomical Observatory + Zinovy Malkin - Pulkovo Observatory, St Petersburg + Jeffrey Percival - University of Wisconsin + Wendy Puatua - United States Naval Observatory + Scott Ransom - National Radio Astronomy Observatory + Nick Stamatakos - United States Naval Observatory + Patrick Wallace - RAL Space, retired + Toni Wilmot - His Majesty's Nautical Almanac Office + + +Past Members + + Wim Brouw University of Groningen + Mark Calabretta Australia Telescope National Facility + William Folkner Jet Propulsion Laboratory + Anne-Marie Gontier Paris Observatory + George Hobbs Australia Telescope National Facility + George Kaplan United States Naval Observatory + Brian Luzum United States Naval Observatory + Dennis McCarthy United States Naval Observatory + Skip Newhall Jet Propulsion Laboratory + Jin Wen-Jing Shanghai Astronomical Observatory + + +The email address for the Board chair is catherine.hohenkerk@gmail.com + diff --git a/deps/sofa/20231011/c/doc/manual.pdf b/deps/sofa/20231011/c/doc/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8d84e19940217fc8f87b83127d46251145eab26e GIT binary patch literal 485794 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