MLPACK
1.0.11
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
mlpack
core
optimizers
lrsdp
lrsdp_function.hpp
Go to the documentation of this file.
1
23
#ifndef __MLPACK_CORE_OPTIMIZERS_LRSDP_LRSDP_FUNCTION_HPP
24
#define __MLPACK_CORE_OPTIMIZERS_LRSDP_LRSDP_FUNCTION_HPP
25
26
#include <
mlpack/core.hpp
>
27
#include <
mlpack/core/optimizers/aug_lagrangian/aug_lagrangian.hpp
>
28
29
namespace
mlpack {
30
namespace
optimization {
31
35
class
LRSDPFunction
36
{
37
public
:
43
LRSDPFunction
(
const
size_t
numConstraints,
44
const
arma::mat&
initialPoint
);
45
50
double
Evaluate
(
const
arma::mat& coordinates)
const
;
51
56
void
Gradient
(
const
arma::mat& coordinates, arma::mat& gradient)
const
;
57
61
double
EvaluateConstraint
(
const
size_t
index,
62
const
arma::mat& coordinates)
const
;
67
void
GradientConstraint
(
const
size_t
index,
68
const
arma::mat& coordinates,
69
arma::mat& gradient)
const
;
70
72
size_t
NumConstraints
()
const
{
return
b
.n_elem; }
73
75
const
arma::mat&
GetInitialPoint
()
const
{
return
initialPoint
; }
76
78
const
arma::mat&
C
()
const
{
return
c
; }
80
arma::mat&
C
() {
return
c
; }
81
83
const
std::vector<arma::mat>&
A
()
const
{
return
a
; }
85
std::vector<arma::mat>&
A
() {
return
a
; }
86
88
const
arma::uvec&
AModes
()
const
{
return
aModes
; }
90
arma::uvec&
AModes
() {
return
aModes
; }
91
93
const
arma::vec&
B
()
const
{
return
b
; }
95
arma::vec&
B
() {
return
b
; }
96
98
std::string
ToString
()
const
;
99
100
private
:
102
arma::mat
c
;
104
std::vector<arma::mat>
a
;
106
arma::vec
b
;
107
109
arma::mat
initialPoint
;
111
arma::uvec
aModes
;
112
};
113
114
// Declare specializations in lrsdp_function.cpp.
115
template
<>
116
double
AugLagrangianFunction<LRSDPFunction>::Evaluate
(
117
const
arma::mat& coordinates)
const
;
118
119
template
<>
120
void
AugLagrangianFunction<LRSDPFunction>::Gradient
(
121
const
arma::mat& coordinates,
122
arma::mat& gradient)
const
;
123
124
};
125
};
126
127
#endif // __MLPACK_CORE_OPTIMIZERS_LRSDP_LRSDP_FUNCTION_HPP
Generated by
1.8.3.1