Bentley-Ottann test implementation
[geda-pcb/pcjc2.git] / src / borast / borastint-minimal.h
blobba0f8ebbfec3f5a90dec7ce98eb75f974f717733
1 /* cairo - a vector graphics library with display and print output
3 * Copyright © 2002 University of Southern California
4 * Copyright © 2005 Red Hat, Inc.
6 * This library is free software; you can redistribute it and/or
7 * modify it either under the terms of the GNU Lesser General Public
8 * License version 2.1 as published by the Free Software Foundation
9 * (the "LGPL") or, at your option, under the terms of the Mozilla
10 * Public License Version 1.1 (the "MPL"). If you do not alter this
11 * notice, a recipient may use your version of this file under either
12 * the MPL or the LGPL.
14 * You should have received a copy of the LGPL along with this library
15 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 * You should have received a copy of the MPL along with this library
18 * in the file COPYING-MPL-1.1
20 * The contents of this file are subject to the Mozilla Public License
21 * Version 1.1 (the "License"); you may not use this file except in
22 * compliance with the License. You may obtain a copy of the License at
23 * http://www.mozilla.org/MPL/
25 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
26 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
27 * the specific language governing rights and limitations.
29 * The Original Code is the cairo graphics library.
31 * The Initial Developer of the Original Code is University of Southern
32 * California.
34 * Contributor(s):
35 * Carl D. Worth <cworth@cworth.org>
39 * These definitions are solely for use by the implementation of cairo
40 * and constitute no kind of standard. If you need any of these
41 * functions, please drop me a note. Either the library needs new
42 * functionality, or there's a way to do what you need using the
43 * existing published interfaces. cworth@cworth.org
46 #ifndef _BORASTINT_H_
47 #define _BORASTINT_H_
49 #if HAVE_CONFIG_H
50 #include "config.h"
51 #endif
53 #ifdef _MSC_VER
54 #define borast_public __declspec(dllexport)
55 #endif
57 #include <assert.h>
58 #include <stdlib.h>
59 #include <string.h>
60 #include <stdarg.h>
61 #include <stddef.h>
63 #ifdef _MSC_VER
64 #define _USE_MATH_DEFINES
65 #endif
66 #include <math.h>
67 #include <limits.h>
68 #include <stdio.h>
70 #include "borast-minimal.h"
72 #include "borast-compiler-private.h"
74 BORAST_BEGIN_DECLS
76 #if _WIN32 && !_WIN32_WCE /* Permissions on WinCE? No worries! */
77 borast_private FILE *
78 _borast_win32_tmpfile (void);
79 #define tmpfile() _borast_win32_tmpfile()
80 #endif
82 #undef MIN
83 #define MIN(a, b) ((a) < (b) ? (a) : (b))
85 #undef MAX
86 #define MAX(a, b) ((a) > (b) ? (a) : (b))
88 #ifndef FALSE
89 #define FALSE 0
90 #endif
92 #ifndef TRUE
93 #define TRUE 1
94 #endif
96 #ifndef M_PI
97 #define M_PI 3.14159265358979323846
98 #endif
100 #ifndef M_SQRT2
101 #define M_SQRT2 1.41421356237309504880
102 #endif
104 #ifndef M_SQRT1_2
105 #define M_SQRT1_2 0.707106781186547524400844362104849039
106 #endif
108 #undef ARRAY_LENGTH
109 #define ARRAY_LENGTH(__array) ((int) (sizeof (__array) / sizeof (__array[0])))
111 #undef STRINGIFY
112 #undef STRINGIFY_ARG
113 #define STRINGIFY(macro_or_string) STRINGIFY_ARG (macro_or_string)
114 #define STRINGIFY_ARG(contents) #contents
116 #if defined (__GNUC__)
117 #define borast_container_of(ptr, type, member) ({ \
118 const __typeof__ (((type *) 0)->member) *mptr__ = (ptr); \
119 (type *) ((char *) mptr__ - offsetof (type, member)); \
121 #else
122 #define borast_container_of(ptr, type, member) \
123 (type *)((char *) (ptr) - (char *) &((type *)0)->member)
124 #endif
127 /* Size in bytes of buffer to use off the stack per functions.
128 * Mostly used by text functions. For larger allocations, they'll
129 * malloc(). */
130 #ifndef BORAST_STACK_BUFFER_SIZE
131 #define BORAST_STACK_BUFFER_SIZE (512 * sizeof (int))
132 #endif
134 #define BORAST_STACK_ARRAY_LENGTH(T) (BORAST_STACK_BUFFER_SIZE / sizeof(T))
137 #include "borast-types-private.h"
139 #if HAVE_VALGRIND
140 # include <memcheck.h>
141 # define VG(x) x
142 #else
143 # define VG(x)
144 #endif
146 #endif