![]() |
das2C
das core C utilities (v3)
|
Absolute positions on a scale with an agreed origin. More...
#include <das3/form.h>
Go to the source code of this file.
Macros | |
| #define | DAS_FORM_POINT (&das_form_point_vtbl) |
| A position on a scale measured from an agreed origin, calendar time being the common case. | |
Absolute positions on a scale with an agreed origin.
The searchable name for these rules is an AFFINE SPACE: points and the vectors (here "intervals") that translate between them. Measurement theory calls the same idea an INTERVAL SCALE. das uses the word "interval" for the difference quantity itself, so this library says affine for the rule set.
The rules, all of them:
point - point = interval (linear, in the epoch's interval units)
point + interval = point
interval + point = point (stated explicitly, never inferred)
point - interval = point
point + point = REFUSED adding two calendar dates means nothing
interval - point = REFUSED
point * anything = REFUSED scaling an origin-relative position is
meaningless without moving the origin
Calendar time is the canonical case – a datetime is stored as plain ticks with this formalism riding on top – but nothing here is time specific. Any zero-referenced axis fits: a position measured from a chosen origin, a pressure measured from a reference altitude.
The wire form takes no parameters, so kind= alone carries it:
<scalar semantic="datetime" units="TT2000" index="*"> <ops kind="point"> </scalar>
| #define DAS_FORM_POINT (&das_form_point_vtbl) |
A position on a scale measured from an agreed origin, calendar time being the common case.
Two of these subtract to give an interval, but adding two calendar dates means nothing and is refused.