ipints man page on Inferno

Man page or keyword search:  
man Server   579 pages
apropos Keyword Search (all sections)
Output format
Inferno logo
[printable version]

IPINTS(2)							     IPINTS(2)

NAME
       ipints: IPint - `infinite' precision integer utility functions

SYNOPSIS
       include "ipints.m"
       ipints:= load IPints IPints->PATH;

       IPint: adt
       {
	 iptob64:   fn(i: self ref IPint): string;
	 iptob64z:  fn(i: self ref IPint): string;
	 b64toip:   fn(str: string)  : ref IPint;
	 iptobytes: fn(i: self ref IPint): array of byte;
	 bytestoip: fn(buf: array of byte): ref IPint;
	 iptobebytes: fn(i: self ref IPint): array of byte;
	 bebytestoip: fn(buf: array of byte): ref IPint;
	 inttoip:   fn(i: int): ref IPint;
	 iptoint:   fn(i: self ref IPint): int;
	 iptostr:   fn(i: self ref IPint, base: int): string;
	 strtoip:   fn(str: string, base: int): ref IPint;
	 random:    fn(nbits: int): ref IPint;
	 copy:	    fn(i: self ref IPint): ref IPint;
	 bits:	    fn(i:  self ref IPint): int;
	 expmod:    fn(base: self ref IPint, exp, mod: ref IPint):ref IPint;
	 add:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
	 sub:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
	 neg:  fn(i: self ref IPint): ref IPint;
	 mul:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
	 div:  fn(i1: self ref IPint, i2: ref IPint): (ref IPint, ref IPint);
	 mod:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
	 eq:   fn(i1:  self ref IPint, i2: ref IPint): int;
	 cmp:  fn(i1: self ref IPint, i2: ref IPint): int;
	 shl:  fn(i: self ref IPint, n: int): ref IPint;
	 shr:  fn(i: self ref IPint, n: int): ref IPint;
	 and:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
	 ori:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
	 not:  fn(i: self ref IPint): ref IPint;
	 xor:  fn(i1: self ref IPint, i2: ref IPint): ref IPint;
       };

DESCRIPTION
       IPint  provides	the  following	arbitrary-length  integer manipulation
       functions required for cryptographic support in Limbo:

       i.iptob64()
	      Returns a string that represents a large	integer	 textually  in
	      base 64 for convenient transmission over a network connection.

       i.iptob64z()
	      Returns a similar representation to iptob64 but ensures that the
	      top bit of the received value is zero.

       b64toip(str)
	      Returns the IPint represented by the base-64 encoded str.

       i.iptobytes()
	      Returns an array of bytes representing a large integer. The rep‐
	      resentation includes both positive and negative numbers.

       bytestoip(buf)
	      The inverse operation of iptobytes.

       i.iptobebytes()
	      Returns  an array of bytes in big-endian format representing the
	      magnitude of a large integer; used for instance to pass a	 value
	      to ssl(3).  Only non-negative numbers are represented.

       bebytestoip(buf)
	      The inverse operation of iptobebytes.

       inttoip(i)
	      Creates a new large integer from integer i.

       i.iptoint()
	      Converts a large integer i to an int; returns 0 on error.

       i.iptostr(base)
	      Converts	a  large integer to a string in base base; returns nil
	      on error.	 Only the bases 10, 16,	 32,  and  64  are  supported.
	      Anything else defaults to 16.

       strtoip(str,base)
	      Converts a string str representing a number in in base base to a
	      large integer; returns nil on error.  Only the bases 10, 16, 32,
	      and 64 are supported.

       random(nbits)
	      Returns  a  large	 random number of length at most minbits.  The
	      largest number allowed in the current implementation is 2^8192-1
	      .	 The seed for the generator is obtained by duelling clocks.

       i.copy()
	      Returns a reference to the same value as i.

       i.bits()
	      Returns the number of bits of precision of i.

       base.expmod(exp , mod)
	      Returns (base**exp) mod mod.

       i1.add(i2)
	      Returns (i1+i2).

       i1.sub(i2)
	      Returns (i1-i2).

       i1.mul(i2)
	      Returns i1*i2.

       i1.div(i2)
	      Returns (i1/i2, i1remi2).

       i1.mod(i2)
	      Returns (i1modi2).

       i1.eq(i2)
	      Returns 1 if i1 and i2 are equal; 0 otherwise.

       i1.cmp(i2)
	      Compares	two large integers, returning 1 if i1 is larger, -1 if
	      i2 is larger, and 0 if they are equal.

       i.shl(n)
	      Returns i<<n

       i.shr(n)
	      Returns i>>n

       i1.and(i2)
	      Returns i&n, bitwise AND

       i1.ori(i2)
	      Returns i|n, bitwise inclusive-OR (it is ori because plain or is
	      a Limbo keyword)

       i.not()
	      Returns ~i, bitwise ones-complement

       i1.xor(i2)
	      Returns i^n, bitwise exclusive-OR

SOURCE
       /libinterp/ipint.c
       /libmp

								     IPINTS(2)
[top]

List of man pages available for Inferno

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net