TAI(3)

NAME
tai - manipulate times with 1-second precision

SYNOPSIS

#include <tai.h>
double \fBtai_approx\fP(&\fIt\fR);
int \fBtai_less\fP(&\fIa\fR,&\fIb\fR);
void \fBtai_add\fP(&\fIt\fR,&\fIa\fR,&\fIb\fR);
void \fBtai_sub\fP(&\fIt\fR,&\fIa\fR,&\fIb\fR);
struct tai \fIt\fR;
struct tai \fIa\fR;
struct tai \fIb\fR;

DESCRIPTION
A struct tai stores an integer between 0 inclusive and 2^64 exclusive. The format of struct tai is designed to speed up common operations; applications should not look inside struct tai\fR. A struct tai variable is commonly used to store a TAI64 label. Each TAI64 label refers to one second of real time. TAI64 labels span a period of hundreds of billions of years. See http://pobox.com/~djb/proto/tai64.txt for more information. A struct tai variable may also be used to store the numerical difference between two TAI64 labels.

ARITHMETIC
tai_approx returns a double-precision approximation to t. The result of tai_approx is always nonnegative. tai_less returns 1 if a is smaller than b, 0 otherwise. tai_add adds a and b modulo 2^64 and puts the result into t. The inputs and outputs may overlap. tai_sub subtracts b from a modulo 2^64 and puts the result into t. The inputs and outputs may overlap.

SEE ALSO

tai_now(3)

tai_pack(3)

taia(3)

utc(3)

AUTHOR

Original code and documentation by Daniel J. Bernstein. Converted to DocBook XML by Jonathan de Boyne Pollard.