amino
1.0-beta2
Lightweight Robot Utility Library
amino.h
Go to the documentation of this file.
1
/* -*- mode: C; c-basic-offset: 4; -*- */
2
/* ex: set shiftwidth=4 tabstop=4 expandtab: */
3
/*
4
* Copyright (c) 2010-2011, Georgia Tech Research Corporation
5
* All rights reserved.
6
*
7
* Author(s): Neil T. Dantam <ntd@gatech.edu>
8
* Georgia Tech Humanoid Robotics Lab
9
* Under Direction of Prof. Mike Stilman <mstilman@cc.gatech.edu>
10
*
11
*
12
* This file is provided under the following "BSD-style" License:
13
*
14
*
15
* Redistribution and use in source and binary forms, with or
16
* without modification, are permitted provided that the following
17
* conditions are met:
18
*
19
* * Redistributions of source code must retain the above copyright
20
* notice, this list of conditions and the following disclaimer.
21
*
22
* * Redistributions in binary form must reproduce the above
23
* copyright notice, this list of conditions and the following
24
* disclaimer in the documentation and/or other materials provided
25
* with the distribution.
26
*
27
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
28
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
29
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
31
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
32
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
35
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
36
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
38
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39
* POSSIBILITY OF SUCH DAMAGE.
40
*
41
*/
42
43
#ifndef AMINO_H
44
#define AMINO_H
45
57
// include everything we'll typically need
58
#ifdef __cplusplus
59
#include <cstdlib>
60
#include <cstring>
61
#include <cmath>
62
#include <cstdio>
63
#include <cassert>
64
#include <ctime>
65
#include <stdint.h>
66
#include <iostream>
67
#include <vector>
68
#include <map>
69
#include <queue>
70
#include <stack>
71
#include <string>
72
#else
73
#include <assert.h>
74
#include <stdlib.h>
75
#include <stdint.h>
76
#include <string.h>
77
#include <stdio.h>
78
#include <
math.h
>
79
#include <errno.h>
80
#include <stdarg.h>
81
#endif //__cplusplus
82
83
#include "amino/cblas_order.h"
84
85
86
#include <
time.h
>
87
88
// for C symbols
89
#ifdef __cplusplus
90
#define AA_API extern "C"
91
#define AA_EXTERN extern "C"
92
#define AA_RESTRICT
93
#else
94
#define AA_API
96
#define AA_EXTERN extern
98
#define AA_RESTRICT restrict
100
#endif //__cplusplus
101
103
#define AA_DEPRECATED __attribute__ ((deprecated))
104
106
#define AA_IBILLION 1000000000
107
#define AA_IMILLION 1000000
109
111
#define AA_QUOTE(X) (#X)
112
114
#define AA_ENUM_SYM_CASE( res, sym ) case sym: (res) = #sym; break;
115
117
#define AA_SWAP(a,b) \
118
{ \
119
const __typeof__(a) aa_$_tmpa = (a); \
120
const __typeof__(b) aa_$_tmpb = (b); \
121
(a) = aa_$_tmpb; \
122
(b) = aa_$_tmpa; \
123
}
124
125
126
// include our own headers
127
#include "
amino/mem.h
"
128
#include "
amino/math.h
"
129
#include "
amino/la.h
"
130
#include "
amino/tf.h
"
131
#include "amino/lapack.h"
132
#include "amino/clapack.h"
133
#include "
amino/time.h
"
134
#include "
amino/debug.h
"
135
#include "
amino/plot.h
"
136
#include "amino/kin.h"
137
#include "amino/type.h"
138
#include "
amino/endconv.h
"
139
#include "amino/unit.h"
140
#include "
amino/validate.h
"
141
#include "amino/io.h"
142
#include "
amino/cv.h
"
143
#include "amino/const.h"
144
#include "
amino/heap.h
"
145
146
147
#endif //AMINO_H
math.h
Numerical routines.
mem.h
Memory Management.
endconv.h
Routines to convert numbers to different endian formats.
debug.h
time.h
validate.h
Validation of data.
heap.h
Simple Heap / Heapsort.
la.h
Linear algebra routines.
cv.h
plot.h
tf.h
Low-level operations for SE(3) orientations and transformations.