Loading [MathJax]/extensions/TeX/AMSsymbols.js
amino
1.0-beta2
Lightweight Robot Utility Library
Main Page
Download
Tutorial
Linear Algebra
Rotation
Transformation
Scene Graphs
Kinematics
Collision
Motion Planning
Documentation
Installation
Viewer GUI
Scene Compiler
Scene Files
FAQ
API
File List
File Members
All
a
o
Functions
a
o
Variables
Typedefs
a
Enumerations
Enumerator
a
Macros
a
Class List
Class Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
i
l
m
n
o
p
q
r
s
t
u
v
x
y
z
~
Variables
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Typedefs
Lisp API
Amino Core
Amino RX
Amino CLPython
About
License
Acknowledgments
•
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
95
#define AA_API
97
#define AA_EXTERN extern
99
#define AA_RESTRICT restrict
100
#endif
//__cplusplus
101
103
#define AA_DEPRECATED __attribute__ ((deprecated))
104
105
106
#if __has_attribute(__fallthrough__)
108
#define AA_FALLTHROUGH __attribute__((__fallthrough__))
109
#else
111
#define AA_FALLTHROUGH do {} while (0)
/* fallthrough */
112
#endif
113
114
116
#define AA_IBILLION 1000000000
118
#define AA_IMILLION 1000000
119
121
#define AA_QUOTE(X) (#X)
122
124
#define AA_ENUM_SYM_CASE( res, sym ) case sym: (res) = #sym; break;
125
127
#define AA_SWAP(a,b) \
128
{ \
129
const __typeof__(a) aa_$_tmpa = (a); \
130
const __typeof__(b) aa_$_tmpb = (b); \
131
(a) = aa_$_tmpb; \
132
(b) = aa_$_tmpa; \
133
}
134
135
136
// include our own headers
137
#include "
amino/mem.h
"
138
#include "
amino/math.h
"
139
#include "
amino/la.h
"
140
#include "
amino/tf.h
"
141
#include "amino/lapack.h"
142
#include "amino/clapack.h"
143
#include "
amino/time.h
"
144
#include "
amino/debug.h
"
145
#include "
amino/plot.h
"
146
#include "amino/kin.h"
147
#include "amino/type.h"
148
#include "
amino/endconv.h
"
149
#include "amino/unit.h"
150
#include "
amino/validate.h
"
151
#include "amino/io.h"
152
#include "
amino/cv.h
"
153
#include "amino/const.h"
154
#include "
amino/heap.h
"
155
156
157
#endif
//AMINO_H
cv.h
debug.h
endconv.h
Routines to convert numbers to different endian formats.
heap.h
Simple Heap / Heapsort.
la.h
Linear algebra routines.
math.h
Numerical routines.
mem.h
Memory Management.
plot.h
tf.h
Include this file for low-level operations for SE(3) orientations and transformations.
time.h
validate.h
Validation of data.