]> gitweb.factorcode.org Git - factor.git/blob - vm/bignum.hpp
Put brackets around ipv6 addresses in `inet6 present`
[factor.git] / vm / bignum.hpp
1 namespace factor {
2
3 // Copyright (C) 1989-1992 Massachusetts Institute of Technology
4 // Portions copyright (C) 2004-2009 Slava Pestov
5
6 // This material was developed by the Scheme project at the Massachusetts
7 // Institute of Technology, Department of Electrical Engineering and
8 // Computer Science.  Permission to copy and modify this software, to
9 // redistribute either the original software or a modified version, and
10 // to use this software for any purpose is granted, subject to the
11 // following restrictions and understandings.
12
13 // 1. Any copy made of this software must include this copyright notice
14 // in full.
15
16 // 2. Users of this software agree to make their best efforts (a) to
17 // return to the MIT Scheme project any improvements or extensions that
18 // they make, so that these may be included in future releases; and (b)
19 // to inform MIT of noteworthy uses of this software.
20
21 // 3. All materials developed as a consequence of the use of this
22 // software shall duly acknowledge such use, in accordance with the usual
23 // standards of acknowledging credit in academic research.
24
25 // 4. MIT has made no warrantee or representation that the operation of
26 // this software will be error-free, and MIT is under no obligation to
27 // provide any services, by way of maintenance, update, or otherwise.
28
29 // 5. In conjunction with products arising from the use of this material,
30 // there shall be no use of the name of the Massachusetts Institute of
31 // Technology nor of any adaptation thereof in any advertising,
32 // promotional, or sales literature without prior written consent from
33 // MIT in each case.
34
35 #define BIGNUM_OUT_OF_BAND ((bignum*)0)
36
37 enum bignum_comparison {
38   BIGNUM_COMPARISON_EQUAL = 0,
39   BIGNUM_COMPARISON_LESS = -1,
40   BIGNUM_COMPARISON_GREATER = 1
41 };
42
43 cell bignum_maybe_to_fixnum(bignum* bn);
44 cell bignum_to_cell(bignum* bn);
45 fixnum bignum_to_fixnum(bignum* bn);
46 int64_t bignum_to_long_long(bignum* bn);
47 uint64_t bignum_to_ulong_long(bignum* bn);
48
49 }