[For the following function, we have to think hard whether going through the tangential plane is what we'd like to do; it should go in with a bunch of other astrometric functions] \subsubsection{ivo\_apply\_pm(long, lat, pmlong, pmlat, epochDist)} Returns a POINT for the position an object at \texttt{ra}, \texttt{dec} will be at after \texttt{epochDist} Julian years if its proper motion is \texttt{prma}, \texttt{pmdec}. Positions must be in degrees, proper motions are expected in degrees/year. The proper motions must be given in the tangential plane (i.e., the simple derivative has been ``divided by $cos(\delta)$''). Note that this is an operation of spherical geometry, i.e., the function would work as well with non-equatorial coordinates \emph{and} proper motions. However, you cannot, of course, mix galactic coordinates with equatorial proper motions. \begin{description} \item[Parameters] \begin{args} \arg long (REAL) -- longitude of the spherical position, in degrees. \arg lat (REAL) -- latitude of the spherical position, in degrees. \arg pmlong (REAL) -- proper motion in longitude in the tangential plane (i.e., the simple derivative has been divided by cos(lat)), in degrees per time unit. \arg pmlat (REAL) -- proper motion in latitude, in degrees per time unit. \arg epochDist (REAL) -- propagate the object this many time units. \end{args} \item[Return type] \texttt{POINT} \item[Source] This document. \end{description} \begin{examples} \example \verb|ivo_apply_pm(30, 15, 0, 0.1, 20)| \becomes \verb|[30, 16.9991882802]| \done as a 2-array with \xmlel{xtype}=\emph{point}; note that the latitude here is not 17 because of the gnomonic projection. \example \verb|ivo_apply_pm(30, 60, 0.1, 0, 20)| \becomes \verb|[33.993520433, 59.93965025567]| \done as a 2-array with \xmlel{xtype}=\emph{point}; note that the motion along the longitude is a lot longer than time times proper motion because of latitude effects. \end{examples} Note that this is a minimal, restricted form of ``applying proper motions''. A full, physically valid treatment requires an object's distance and radial velocity to reconstruct the actual space motion. Later versions of this specification may include extensions to this function supporting this. The five-parameter function discussed here should be implemented using calculations in the tangential plane; the result of the function should be $$G\big((\mu_l, \mu_b), (l, b)\big),$$ where $G(\vec d, \vec p)$ is the gnomonic projection of the tangential plane coordinate $\vec d$ and the tangent point $\vec b$, $l$ and $b$ are \verb|long| and \verb|lat|, repectively, and $\mu_l$ and $\mu_b$ are \verb|pmlong| and \verb|pmlat|, respectively. [This function may be a good idea in a world with interval-valued columns; as long as we don't have many of those, it's probably dispensable] \subsubsection{ivo\_interval\_has(value, interval)} The function returns 1 if the interval \texttt{interval} contains \texttt{val}, 0 otherwise. Both limits are always included in \texttt{interval}. \begin{description} \item[Parameters] \begin{args} \arg value (NUMERIC) -- a value to test for interval membership. \arg interval (INTERVAL) -- the interval to test against. There are no guarantees that whatever is put here can be a part of a select list or that any other operation is possible on it (i.e., the implementation of the UDF does not mean that some sort of interval is available as a type in the underlying database engine). \end{args} \item[Return type] \texttt{INTEGER} \item[Source] Originally proposed by the roadmap for STC discovery \citep{note:regstc}; standardised in this document. \end{description}