gtsam
geometry
Cyclic.h
Go to the documentation of this file.
1
/* ----------------------------------------------------------------------------
2
3
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
4
* Atlanta, Georgia 30332-0415
5
* All Rights Reserved
6
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7
8
* See LICENSE for the license information
9
10
* -------------------------------------------------------------------------- */
11
18
#pragma once
19
20
#include <
gtsam/base/Group.h
>
21
#include <
gtsam/base/Testable.h
>
22
23
#include <cassert>
24
#include <iostream>
// for cout :-(
25
26
namespace
gtsam
{
27
29
template
<
size_t
N>
30
class
Cyclic
{
31
size_t
i_
;
32
public
:
34
Cyclic
(
size_t
i
) :
35
i_
(
i
) {
36
assert(
i
<
N
);
37
}
39
Cyclic
():
i_
(0) {
40
}
41
static
Cyclic
Identity
() {
return
Cyclic
();}
42
44
operator
size_t
()
const
{
45
return
i_
;
46
}
48
Cyclic
operator+
(
const
Cyclic
&
h
)
const
{
49
return
(
i_
+
h
.i_) %
N
;
50
}
52
Cyclic
operator-
(
const
Cyclic
&
h
)
const
{
53
return
(
N
+
i_
-
h
.i_) %
N
;
54
}
56
Cyclic
operator-
()
const
{
57
return
(
N
-
i_
) %
N
;
58
}
60
void
print
(
const
std::string&
s
=
""
)
const
{
61
std::cout <<
s
<<
i_
<< std::endl;
62
}
64
bool
equals
(
const
Cyclic
&
other
,
double
tol
= 1
e
-9)
const
{
65
return
other
.i_ ==
i_
;
66
}
67
};
68
70
template
<
size_t
N>
71
struct
traits
<
Cyclic
<
N
> > : internal::AdditiveGroupTraits<Cyclic<N> >,
//
72
Testable
<Cyclic<N> > {
73
};
74
75
}
// \namespace gtsam
76
gtsam::Cyclic::Cyclic
Cyclic(size_t i)
Constructor.
Definition:
Cyclic.h:34
s
RealScalar s
Definition:
level1_cplx_impl.h:126
e
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Testable.h
Concept check for values that can be used in unit tests.
gtsam::Cyclic::operator-
Cyclic operator-(const Cyclic &h) const
Subtraction modulo N.
Definition:
Cyclic.h:52
gtsam::Cyclic
Cyclic group of order N.
Definition:
Cyclic.h:30
Group.h
Concept check class for variable types with Group properties.
gtsam::Cyclic::print
void print(const std::string &s="") const
print with optional string
Definition:
Cyclic.h:60
h
const double h
Definition:
testSimpleHelicopter.cpp:19
gtsam::Cyclic::equals
bool equals(const Cyclic &other, double tol=1e-9) const
equals with an tolerance, prints out message if unequal
Definition:
Cyclic.h:64
gtsam::Cyclic::Identity
static Cyclic Identity()
Definition:
Cyclic.h:41
gtsam::Cyclic::Cyclic
Cyclic()
Default constructor yields identity.
Definition:
Cyclic.h:39
gtsam::Cyclic::i_
size_t i_
we just use an unsigned int
Definition:
Cyclic.h:31
gtsam::Cyclic::operator+
Cyclic operator+(const Cyclic &h) const
Addition modulo N.
Definition:
Cyclic.h:48
size_t
std::size_t size_t
Definition:
wrap/pybind11/include/pybind11/detail/common.h:490
gtsam
traits
Definition:
SFMdata.h:40
gtsam::Testable
Definition:
Testable.h:152
gtsam::traits
Definition:
Group.h:36
gtsam::tol
const G double tol
Definition:
Group.h:79
N
#define N
Definition:
igam.h:9
gtsam::Cyclic::operator-
Cyclic operator-() const
Inverse.
Definition:
Cyclic.h:56
i
int i
Definition:
BiCGSTAB_step_by_step.cpp:9
pybind_wrapper_test_script.other
other
Definition:
pybind_wrapper_test_script.py:42
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:11:25