MobilityDB 1.3
Loading...
Searching...
No Matches
Functions
tsequenceset.c File Reference

General functions for temporal sequence sets. More...

#include "temporal/tsequenceset.h"
#include <assert.h>
#include <postgres.h>
#include <utils/timestamp.h>
#include <meos.h>
#include <meos_internal.h>
#include "temporal/postgres_types.h"
#include "temporal/span.h"
#include "temporal/spanset.h"
#include "temporal/tsequence.h"
#include "temporal/temporal_boxops.h"
#include "temporal/type_parser.h"
#include "temporal/type_util.h"
#include "geo/tgeo_spatialfuncs.h"
#include "geo/tspatial_parser.h"

Functions

double datum_distance (Datum value1, Datum value2, meosType type, int16 flags)
 Return the distance between two datums. More...
 
int * ensure_valid_tinstarr_gaps (const TInstant **instants, int count, bool merge, double maxdist, const Interval *maxt, int *nsplits)
 Ensure that all temporal instants of the array have increasing timestamp (or may be equal if the merge parameter is true), and if they are temporal points, have the same srid and the same dimensionality. More...
 
bool ensure_valid_tseqarr (const TSequence **sequences, int count)
 Ensure that all temporal sequences of the array have increasing timestamp, and if they are temporal points, have the same srid and the same dimensionality. More...
 
bool intersection_tdiscseq_tsequenceset (const TSequence *seq, const TSequenceSet *ss, TSequence **inter1, TSequence **inter2)
 Temporally intersect two temporal values. More...
 
bool intersection_tinstant_tsequenceset (const TInstant *inst, const TSequenceSet *ss, TInstant **inter1, TInstant **inter2)
 Temporally intersect two temporal values. More...
 
bool intersection_tsequence_tsequenceset (const TSequence *seq, const TSequenceSet *ss, SyncMode mode, TSequenceSet **inter1, TSequenceSet **inter2)
 Temporally intersect or synchronize two temporal values. More...
 
bool intersection_tsequenceset_tdiscseq (const TSequenceSet *ss, const TSequence *seq, TSequence **inter1, TSequence **inter2)
 Temporally intersect two temporal values. More...
 
bool intersection_tsequenceset_tinstant (const TSequenceSet *ss, const TInstant *inst, TInstant **inter1, TInstant **inter2)
 Temporally intersect two temporal values. More...
 
bool synchronize_tsequenceset_tsequence (const TSequenceSet *ss, const TSequence *seq, SyncMode mode, TSequenceSet **inter1, TSequenceSet **inter2)
 Temporally intersect or synchronize a temporal sequence set and a temporal sequence. More...
 
bool synchronize_tsequenceset_tsequenceset (const TSequenceSet *ss1, const TSequenceSet *ss2, SyncMode mode, TSequenceSet **inter1, TSequenceSet **inter2)
 Temporally intersect or synchronize two temporal sequence sets. More...
 
TSequenceSettdiscseq_to_tsequenceset (const TSequence *seq, interpType interp)
 Return a temporal discrete sequence transformed into a temporal sequence set. More...
 
TSequenceSettinstant_to_tsequenceset (const TInstant *inst, interpType interp)
 Return a temporal instant transformed into a temporal sequence set. More...
 
double tnumberseqset_integral (const TSequenceSet *ss)
 Return the integral (area under the curve) of a temporal number. More...
 
TSequenceSettnumberseqset_shift_scale_value (const TSequenceSet *ss, Datum shift, Datum width, bool hasshift, bool haswidth)
 Return a temporal sequence set where the value dimension is shifted and/or scaled by two values. More...
 
double tnumberseqset_twavg (const TSequenceSet *ss)
 Return the time-weighted average of a temporal number. More...
 
SpanSettnumberseqset_valuespans (const TSequenceSet *ss)
 Return the base values of a temporal number sequence set as a number span set. More...
 
TSequence ** tseqarr_normalize (const TSequence **sequences, int count, int *newcount)
 Normalize the array of temporal sequences. More...
 
TSequenceSettseqsetarr_to_tseqset (TSequenceSet **seqsets, int count, int totalseqs)
 Return an array of temporal sequences converted from an array of temporal sequence sets. More...
 
TSequenceSettsequence_to_tsequenceset (const TSequence *seq)
 Return a temporal sequence transformed into a temporal sequence set. More...
 
TSequenceSettsequence_to_tsequenceset_free (TSequence *seq)
 Return a temporal sequence transformed into a temporal sequence set. More...
 
TSequenceSettsequence_to_tsequenceset_interp (const TSequence *seq, interpType interp)
 Return a temporal sequence transformed into a temporal sequence set. More...
 
int tsequenceset_cmp (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Return -1, 0, or 1 depending on whether the first temporal sequence set is less than, equal, or greater than the second one. More...
 
TSequenceSettsequenceset_compact (const TSequenceSet *ss)
 Return a copy of a temporal sequence set without any extra storage space. More...
 
TSequenceSettsequenceset_copy (const TSequenceSet *ss)
 Return a copy of a temporal sequence set. More...
 
Intervaltsequenceset_duration (const TSequenceSet *ss, bool boundspan)
 Return the duration of a temporal sequence set. More...
 
TimestampTz tsequenceset_end_timestamptz (const TSequenceSet *ss)
 Return the end timestamptz of a temporal sequence set. More...
 
bool tsequenceset_eq (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Return true if two temporal sequence sets are equal. More...
 
bool tsequenceset_find_timestamptz (const TSequenceSet *ss, TimestampTz t, int *loc)
 Return the location of a timestamp in a temporal sequence set using binary search. More...
 
TSequenceSettsequenceset_from_base_tstzspanset (Datum value, meosType temptype, const SpanSet *ss, interpType interp)
 Return a temporal sequence set from a base value and a span set. More...
 
uint32 tsequenceset_hash (const TSequenceSet *ss)
 Return the 32-bit hash value of a temporal sequence set. More...
 
TSequenceSettsequenceset_in (const char *str, meosType temptype, interpType interp)
 Return a temporal sequence set from its Well-Known Text (WKT) representation. More...
 
const TInstanttsequenceset_inst_n (const TSequenceSet *ss, int n)
 Return a pointer to the n-th distinct instant of a temporal sequence set. More...
 
const TInstant ** tsequenceset_insts_p (const TSequenceSet *ss)
 Return an array of pointers to the instants of a temporal sequence set. More...
 
static double tsequenceset_interval_double (const TSequenceSet *ss)
 Return the duration of a temporal sequence set as a double. More...
 
TSequenceSettsequenceset_make (const TSequence **sequences, int count, bool normalize)
 Return a temporal sequence set from an array of temporal sequences. More...
 
TSequenceSettsequenceset_make_exp (const TSequence **sequences, int count, int maxcount, bool normalize)
 Return a temporal sequence set from an array of temporal sequences. More...
 
TSequenceSettsequenceset_make_free (TSequence **sequences, int count, bool normalize)
 Return a temporal sequence set from an array of temporal sequences and free the array and the sequences after the creation. More...
 
TSequenceSettsequenceset_make_gaps (const TInstant **instants, int count, interpType interp, const Interval *maxt, double maxdist)
 Return a temporal sequence set from an array of temporal instants introducing a gap when two consecutive instants are separated from each other by at least a distance or a time interval. More...
 
static int * tsequenceset_make_gaps_valid (const TInstant **instants, int count, bool lower_inc, bool upper_inc, interpType interp, double maxdist, const Interval *maxt, int *nsplits)
 Ensure the validity of the arguments when creating a temporal value This function extends function tsequence_make_valid by spliting the sequences according the maximum distance or interval between instants. More...
 
const TInstanttsequenceset_max_inst (const TSequenceSet *ss)
 Return a pointer to the instant with maximum base value of a temporal sequence set. More...
 
Datum tsequenceset_max_val (const TSequenceSet *ss)
 Return (a pointer to) the maximum base value of a temporal sequence set. More...
 
const TInstanttsequenceset_min_inst (const TSequenceSet *ss)
 Return a pointer to the instant with minimum base value of a temporal sequence set. More...
 
Datum tsequenceset_min_val (const TSequenceSet *ss)
 Return (a pointer to) the minimum base value of a temporal sequence set. More...
 
const TInstanttsequenceset_minmax_inst (const TSequenceSet *ss, bool(*func)(Datum, Datum, meosType))
 Return a pointer to the instant with minimum/maximum base value of a temporal sequence set. More...
 
int tsequenceset_num_instants (const TSequenceSet *ss)
 Return the number of distinct instants of a temporal sequence set. More...
 
int tsequenceset_num_timestamps (const TSequenceSet *ss)
 Return the number of distinct timestamptz values of a temporal sequence set. More...
 
char * tsequenceset_out (const TSequenceSet *ss, int maxdd)
 Return the Well-Known Text (WKT) representation of a temporal sequence set. More...
 
void tsequenceset_restart (TSequenceSet *ss, int count)
 Return a temporal sequence set restared by keeping only the last n sequences. More...
 
TSequence ** tsequenceset_segments (const TSequenceSet *ss, int *count)
 Return the array of segments of a temporal sequence set. More...
 
const TSequence ** tsequenceset_sequences_p (const TSequenceSet *ss)
 Return an array of pointers to the sequences of a temporal sequence set. More...
 
Temporaltsequenceset_set_interp (const TSequenceSet *ss, interpType interp)
 Return a temporal value transformed to the given interpolation. More...
 
void tsequenceset_set_tstzspan (const TSequenceSet *ss, Span *s)
 Return in the last argument the time span of a temporal sequence set. More...
 
TSequenceSettsequenceset_shift_scale_time (const TSequenceSet *ss, const Interval *shift, const Interval *duration)
 Return a temporal sequence set shifted and/or scaled by two intervals. More...
 
TimestampTz tsequenceset_start_timestamptz (const TSequenceSet *ss)
 Return the start timestamptz of a temporal sequence set. More...
 
SpanSettsequenceset_time (const TSequenceSet *ss)
 Return the time frame a temporal sequence set as a timestamptz span set. More...
 
TimestampTztsequenceset_timestamps (const TSequenceSet *ss, int *count)
 Return the array of distinct timestamps of a temporal sequence set. More...
 
bool tsequenceset_timestamptz_n (const TSequenceSet *ss, int n, TimestampTz *result)
 Return in the last argument the n-th distinct timestamptz of a temporal sequence set. More...
 
TSequencetsequenceset_to_discrete (const TSequenceSet *ss)
 Return a temporal sequence set transformed into a temporal discrete sequence. More...
 
TSequenceSettsequenceset_to_linear (const TSequenceSet *ss)
 Return a temporal sequence set with continuous base type from step to linear interpolation. More...
 
TSequenceSettsequenceset_to_step (const TSequenceSet *ss)
 Return a temporal sequence set with continuous base type from linear to step interpolation. More...
 
char * tsequenceset_to_string (const TSequenceSet *ss, int maxdd, outfunc value_out)
 Return the Well-Known Text (WKT) representation of a temporal sequence set. More...
 
TSequencetsequenceset_to_tsequence (const TSequenceSet *ss)
 Return a temporal sequence set transformed into a temporal sequence value. More...
 
bool tsequenceset_value_at_timestamptz (const TSequenceSet *ss, TimestampTz t, bool strict, Datum *result)
 Return in the last argument a copy of the value of a temporal sequence set at a timestamptz. More...
 
bool tsequenceset_value_n (const TSequenceSet *ss, int n, Datum *result)
 Return in the last argument a copy of the n-th value of a temporal sequence set. More...
 
Datumtsequenceset_values_p (const TSequenceSet *ss, int *count)
 Return the array of (pointers to the) distinct values of a temporal sequence set. More...
 

Detailed Description

General functions for temporal sequence sets.