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

FreeBSD Manual Pages


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

       taia - manipulate times with 1-attosecond precision

       #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;

       A  struct taia stores an	integer	between	0 inclusive and	2^64x10^18 ex-
       clusive.	 The format of struct taia is designed to speed	up common  op-
       erations; 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  for more information.  The inte-
       ger 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 differ-
       ence between two	TAI64NA	labels.

       taia_approx returns a double-precision approximation to	t/10^18.   The
       result 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.

       taia_fmtfrac prints the remainder of t/10^18, padded to exactly 18 dig-
       its, into the character buffer s, without a terminating	NUL.   It  re-
       turns  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
       output of taia_fmtfrac and a terminating	NUL.

       taia_now(3), taia_pack(3), tai(3)



Want to link to this manual page? Use this URL:

home | help