Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
taia(3) 		    Library Functions Manual			 taia(3)

NAME
     taia - manipulate times with 1-attosecond precision

SYNTAX
     #include <taia.h>

     double taia_approx(&t);
     double taia_frac(&t);
     void taia_tai(&t,&sec);

     int taia_less(&a,&b);
     void taia_add(&t,&a,&b);
     void taia_sub(&t,&a,&b);
     void taia_half(&t,&a);

     unsigned int taia_fmtfrac(s,&t);

     struct taia t;
     struct taia a;
     struct taia b;
     struct tai sec;
     char *s;

DESCRIPTION
     A	struct	taia stores an integer between 0 inclusive and 2^64x10^18 exclu-
     sive.  The format of struct taia is designed to speed up common operations;
     applications should not look inside struct taia.

     A struct taia variable is commonly used to store  a  TAI64NA  label.   Each
     TAI64NA	label	refers	 to   one   attosecond	 of   real   time;   see
     http://pobox.com/~djb/proto/tai64.txt for more information.  The integer in
     the struct taia is 10^18 times  the  second  count,  plus	10^9  times  the
     nanosecond count, plus the attosecond count.

     A	struct	taia variable may also be used to store the numerical difference
     between two TAI64NA labels.

ARITHMETIC
     taia_approx returns a double-precision approximation to t/10^18.	The  re-
     sult of taia_approx is always nonnegative.

     taia_tai places into sec the integer part of t/10^18.

     taia_frac	returns a double-precision approximation to the fraction part of
     t/10^18.  The result of taia_frac is always nonnegative.

     taia_less returns 1 if a is smaller than b, 0 otherwise.

     taia_add adds a and b modulo 2^64x10^18 and puts the result  into	t.   The
     inputs and outputs may overlap.

     taia_sub  subtracts  b from a modulo 2^64x10^18 and puts the result into t.
     The inputs and outputs may overlap.

     taia_half divides a by 2, rounding down, and puts the result into	t.   The
     input and output may overlap.

FORMATTING
     taia_fmtfrac  prints the remainder of t/10^18, padded to exactly 18 digits,
     into the character buffer s, without a terminating NUL.  It returns 18, the
     number of characters written.  s may be zero; then taia_fmtfrac returns  18
     without printing anything.

     The  macro TAIA_FMTFRAC is defined as 19; this is enough space for the out-
     put of taia_fmtfrac and a terminating NUL.

SEE ALSO
     taia_now(3), taia_pack(3), tai(3)

									 taia(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=taia&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help