g2o
Toggle main menu visibility
Loading...
Searching...
No Matches
g2o
solvers
cholmod
cholmod_wrapper.h
Go to the documentation of this file.
1
// g2o - General Graph Optimization
2
// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright notice,
10
// this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above copyright
12
// notice, this list of conditions and the following disclaimer in the
13
// documentation and/or other materials provided with the distribution.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
16
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
21
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
#ifndef G2O_CHOLMOD_WRAPPER_H
28
#define G2O_CHOLMOD_WRAPPER_H
29
30
#include <cstddef>
31
#include <memory>
32
33
namespace
g2o
{
34
namespace
cholmod
{
35
36
class
Cholmod
{
37
public
:
38
Cholmod
();
39
~Cholmod
();
40
42
struct
SparseView
{
43
size_t
&
nrow
;
44
size_t
&
ncol
;
45
size_t
&
nzmax
;
46
int
*&
p
;
47
int
*&
i
;
48
double
*&
x
;
49
size_t
&
columnsAllocated
;
50
SparseView
(
size_t
&
nrow
,
size_t
&
ncol
,
size_t
&
nzmax
,
int
*&
p
,
int
*&
i
,
51
double
*&
x
,
size_t
&
columnsAllocated
)
52
:
nrow
(
nrow
),
53
ncol
(
ncol
),
54
nzmax
(
nzmax
),
55
p
(
p
),
56
i
(
i
),
57
x
(
x
),
58
columnsAllocated
(
columnsAllocated
) {}
59
};
60
62
struct
FactorView
{
63
size_t
&
n
;
64
int
*&
p
;
65
int
*&
i
;
66
double
*&
x
;
67
int
*&
perm
;
68
FactorView
(
size_t
&
n
,
int
*&
p
,
int
*&
i
,
double
*&
x
,
int
*&
perm
)
69
:
n
(
n
),
p
(
p
),
i
(
i
),
x
(
x
),
perm
(
perm
) {}
70
};
71
72
bool
factorize
();
73
bool
hasFactor
()
const
;
74
void
freeFactor
();
75
bool
simplifyFactor
();
76
78
bool
amd
(SparseView&
sparseView
,
int
* result);
79
80
int
choleskyNz
()
const
;
81
82
void
solve
(
double
* x,
double
* b)
const
;
83
84
bool
analyze
();
85
bool
analyze_p
(
int
* permutation);
86
87
SparseView
sparseView
();
88
FactorView
factor
();
89
90
private
:
91
class
Impl;
92
std::unique_ptr<Impl>
pImpl
;
93
};
94
95
}
// namespace cholmod
96
}
// namespace g2o
97
#endif
g2o::cholmod::Cholmod::sparseView
SparseView sparseView()
Definition
cholmod_wrapper.cpp:100
g2o::cholmod::Cholmod::amd
bool amd(SparseView &sparseView, int *result)
compute AMD ordering on the given SparseView, store into result
Definition
cholmod_wrapper.cpp:78
g2o::cholmod::Cholmod::factorize
bool factorize()
Definition
cholmod_wrapper.cpp:153
g2o::cholmod::Cholmod::factor
FactorView factor()
Definition
cholmod_wrapper.cpp:108
g2o::cholmod::Cholmod::analyze
bool analyze()
Definition
cholmod_wrapper.cpp:131
g2o::cholmod::Cholmod::~Cholmod
~Cholmod()
g2o::cholmod::Cholmod::analyze_p
bool analyze_p(int *permutation)
Definition
cholmod_wrapper.cpp:141
g2o::cholmod::Cholmod::simplifyFactor
bool simplifyFactor()
Definition
cholmod_wrapper.cpp:159
g2o::cholmod::Cholmod::Cholmod
Cholmod()
Definition
cholmod_wrapper.cpp:70
g2o::cholmod::Cholmod::solve
void solve(double *x, double *b) const
Definition
cholmod_wrapper.cpp:116
g2o::cholmod::Cholmod::pImpl
std::unique_ptr< Impl > pImpl
Definition
cholmod_wrapper.h:92
g2o::cholmod::Cholmod::freeFactor
void freeFactor()
Definition
cholmod_wrapper.cpp:74
g2o::cholmod::Cholmod::hasFactor
bool hasFactor() const
Definition
cholmod_wrapper.cpp:76
g2o::cholmod::Cholmod::choleskyNz
int choleskyNz() const
Definition
cholmod_wrapper.cpp:149
g2o::cholmod
Definition
graph_optimizer_sparse_incremental.h:27
g2o
Definition
dl_wrapper.cpp:55
g2o::cholmod::Cholmod::FactorView::perm
int *& perm
Definition
cholmod_wrapper.h:67
g2o::cholmod::Cholmod::FactorView::FactorView
FactorView(size_t &n, int *&p, int *&i, double *&x, int *&perm)
Definition
cholmod_wrapper.h:68
g2o::cholmod::Cholmod::FactorView::n
size_t & n
Definition
cholmod_wrapper.h:63
g2o::cholmod::Cholmod::FactorView::x
double *& x
Definition
cholmod_wrapper.h:66
g2o::cholmod::Cholmod::FactorView::i
int *& i
Definition
cholmod_wrapper.h:65
g2o::cholmod::Cholmod::FactorView::p
int *& p
Definition
cholmod_wrapper.h:64
g2o::cholmod::Cholmod::SparseView::columnsAllocated
size_t & columnsAllocated
Definition
cholmod_wrapper.h:49
g2o::cholmod::Cholmod::SparseView::i
int *& i
Definition
cholmod_wrapper.h:47
g2o::cholmod::Cholmod::SparseView::nzmax
size_t & nzmax
Definition
cholmod_wrapper.h:45
g2o::cholmod::Cholmod::SparseView::SparseView
SparseView(size_t &nrow, size_t &ncol, size_t &nzmax, int *&p, int *&i, double *&x, size_t &columnsAllocated)
Definition
cholmod_wrapper.h:50
g2o::cholmod::Cholmod::SparseView::p
int *& p
Definition
cholmod_wrapper.h:46
g2o::cholmod::Cholmod::SparseView::ncol
size_t & ncol
Definition
cholmod_wrapper.h:44
g2o::cholmod::Cholmod::SparseView::nrow
size_t & nrow
Definition
cholmod_wrapper.h:43
g2o::cholmod::Cholmod::SparseView::x
double *& x
Definition
cholmod_wrapper.h:48
Generated on
for g2o by
1.17.0