amino
Lightweight Robot Utility Library
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
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.