GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
linearExceptions.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/ThreadsafeException.h>
21 #include <gtsam/base/types.h>
22 
23 namespace gtsam {
24 
94  class GTSAM_EXPORT IndeterminantLinearSystemException : public ThreadsafeException<IndeterminantLinearSystemException> {
95  Key j_;
96  public:
97  IndeterminantLinearSystemException(Key j) noexcept : j_(j) {}
98  ~IndeterminantLinearSystemException() noexcept override {}
99  Key nearbyVariable() const { return j_; }
100  const char* what() const noexcept override;
101  };
102 
103  /* ************************************************************************* */
106  class GTSAM_EXPORT InvalidNoiseModel : public ThreadsafeException<InvalidNoiseModel> {
107  public:
110 
111  InvalidNoiseModel(DenseIndex factorDims, DenseIndex noiseModelDims) :
112  factorDims(factorDims), noiseModelDims(noiseModelDims) {}
113  ~InvalidNoiseModel() noexcept override {}
114 
115  const char* what() const noexcept override;
116  };
117 
118  /* ************************************************************************* */
121  class GTSAM_EXPORT InvalidMatrixBlock : public ThreadsafeException<InvalidMatrixBlock> {
122  public:
125 
126  InvalidMatrixBlock(DenseIndex factorRows, DenseIndex blockRows) :
127  factorRows(factorRows), blockRows(blockRows) {}
128  ~InvalidMatrixBlock() noexcept override {}
129 
130  const char* what() const noexcept override;
131  };
132 
133  /* ************************************************************************* */
134  class InvalidDenseElimination : public ThreadsafeException<InvalidDenseElimination> {
135  public:
137  };
138 
139  }
Typedefs for easier changing of types.
const DenseIndex noiseModelDims
The dimensionality of the noise model.
Definition: linearExceptions.h:109
const DenseIndex blockRows
The dimensionality of the noise model.
Definition: linearExceptions.h:124
ptrdiff_t DenseIndex
The index type for Eigen objects.
Definition: types.h:108
Base exception type that uses tbb_allocator if GTSAM is compiled with TBB.
Definition: ThreadsafeException.h:40
const DenseIndex factorDims
The dimensionality of the factor.
Definition: linearExceptions.h:108
Definition: chartTesting.h:28
Definition: linearExceptions.h:106
Definition: linearExceptions.h:94
Definition: linearExceptions.h:121
const DenseIndex factorRows
The dimensionality of the factor.
Definition: linearExceptions.h:123
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
Definition: linearExceptions.h:134