File: pgs_epochprop.sql.in

package info (click to toggle)
pgsphere 1.5.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,220 kB
  • sloc: ansic: 13,926; sql: 6,895; cpp: 853; makefile: 278; perl: 168; yacc: 145; python: 106; lex: 55; xml: 51; sh: 1
file content (41 lines) | stat: -rw-r--r-- 1,017 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-- ***********************************
--
-- functions for propagating positions
--
-- ***********************************

CREATE FUNCTION epoch_prop(
	pos spoint,
	parallax DOUBLE PRECISION,
	pmlng DOUBLE PRECISION,
	pmlat DOUBLE PRECISION,
	rv DOUBLE PRECISION,
	delta_t DOUBLE PRECISION)
	RETURNS double precision[6]
	AS 'MODULE_PATHNAME', 'epoch_prop'
	LANGUAGE 'c'
	IMMUTABLE PARALLEL SAFE;

CREATE FUNCTION epoch_prop_pos(
	pos spoint,
	parallax DOUBLE PRECISION,
	pmlng DOUBLE PRECISION,
	pmlat DOUBLE PRECISION,
	rv DOUBLE PRECISION,
	delta_t DOUBLE PRECISION)
	RETURNS spoint
	AS $body$
		SELECT spoint(pv[1], pv[2])
		FROM epoch_prop(pos, parallax, pmlng, pmlat, rv, delta_t) as pv
	$body$ LANGUAGE SQL STABLE PARALLEL SAFE;

CREATE FUNCTION epoch_prop_pos(
	pos spoint,
	pmlng DOUBLE PRECISION,
	pmlat DOUBLE PRECISION,
	delta_t DOUBLE PRECISION)
	RETURNS spoint
	AS $body$
		SELECT spoint(pv[1], pv[2])
		FROM epoch_prop(pos, 0, pmlng, pmlat, 0, delta_t) as pv
	$body$ LANGUAGE SQL STABLE PARALLEL SAFE;