--- ui64.pod 2002/04/28 19:04:00 1.4
+++ ui64.pod 2002/06/26 16:00:25 1.5
@@ -66,10 +66,21 @@
=head1 DESCRIPTION
B<OSSP ui64> is a small B<ISO-C> library for portable 64-bit arithmetic.
-It allows to perform the usual arithmetical and bit-wise operations on
-a B<ISO-C> type B<ui64_t> which resembles a 64-bit unsigned integer
-type. The library does no dynamic memory allocations and instead passes
-B<ui64_t> values directly through the API functions.
+It allows to perform the usual arithmetical and bit-wise operations on a
+B<ISO-C> type B<ui64_t> which resembles a 64-bit unsigned integer type.
+
+In contrast to a built-in C type like the C94 B<unsigned long> or even
+the similar C99 B<unsigned long long>, the operations on B<ui64_t>
+provide full support for correct carry/overflow semantics.
+
+The library does no dynamic memory allocations at all and instead
+passes B<ui64_t> objects by value within the API. This provides a very
+convinient and low-overhead interface.
+
+Internally, B<OSSP ui64> stores the B<ui64_t> in exactly (the expected)
+8 octets which at any time hold the 64-bit value in a portable
+I<8-digits-to-base-256> representation. Nevertheless the B<ui64_t> type
+should be treated as an opaque type.
=head1 APPLICATION PROGRAMMER INTERFACE (API)
@@ -81,11 +92,11 @@
=item ui64_t B<ui64_zero>(void);
-The value 0, expressed as an ui64_t.
+The value 0, expressed as an B<ui64_t>.
=item ui64_t B<ui64_max>(void);
-The maximum value expressable as an ui64_t.
+The maximum value expressable as an B<ui64_t>.
=back
@@ -139,7 +150,7 @@
=item ui64_t B<ui64_addn>(ui64_t I<x>, int I<y>, int *I<ov>);
-Same as B<ui64_add>, but I<y> and I<ov> are single digits to base 2^8.
+Same as B<ui64_add>, but I<y> and I<ov> are single digits to base 256.
=item ui64_t B<ui64_sub>(ui64_t I<x>, ui64_t I<y>, ui64_t *I<ov>);
@@ -149,7 +160,7 @@
=item ui64_t B<ui64_subn>(ui64_t I<x>, int I<y>, int *I<ov>);
-Same as B<ui64_sub>, but I<y> and I<ov> are single digits to base 2^8.
+Same as B<ui64_sub>, but I<y> and I<ov> are single digits to base 256.
=item ui64_t B<ui64_mul>(ui64_t I<x>, ui64_t I<y>, ui64_t *I<ov>);
@@ -159,7 +170,7 @@
=item ui64_t B<ui64_muln>(ui64_t I<x>, int I<y>, int *I<ov>);
-Same as B<ui64_mul>, but I<y> and I<ov> are single digits to base 2^8.
+Same as B<ui64_mul>, but I<y> and I<ov> are single digits to base 256.
=item ui64_t B<ui64_div>(ui64_t I<x>, ui64_t I<y>, ui64_t *I<ov>);
@@ -169,7 +180,7 @@
=item ui64_t B<ui64_divn>(ui64_t I<x>, int I<y>, int *I<ov>);
-Same as B<ui64_div>, but I<y> and I<ov> are single digits to base 2^8.
+Same as B<ui64_div>, but I<y> and I<ov> are single digits to base 256.
=back
@@ -213,7 +224,7 @@
=item int B<ui64_len>(ui64_t I<x>);
-Number of digits (1-8) to base 2^8 in I<x>.
+Number of digits (1-8) to base 256 in I<x>.
=item int B<ui64_cmp>(ui64_t I<x>, ui64_t I<y>);
@@ -224,12 +235,12 @@
=head1 HISTORY
-B<OSSP ui64> was invented in April 2002 by Ralf S. Engelschall
+B<OSSP ui64> was invented in April 2002 by I<Ralf S. Engelschall>
E<lt>rse@engelschall.comE<gt> for use inside the B<OSSP> project. Its
creation was prompted by the requirement to calculate with 64-bit
-integers inside B<OSSP tai>. The core implementation is derived
-from the B<XP> library in David R. Hanson's book C<C Interfaces and
-Implementations>.
+integers inside B<OSSP tai>, a time calculation library. The core
+implementation is derived from the B<XP> library in I<David R. Hanson>'s
+book I<C Interfaces and Implementations>.
=head1 AUTHORS
|