numerical-collection-cpp
0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
descent_method.h
Go to the documentation of this file.
1
/*
2
* Copyright 2021 MusicScience37 (Kenta Kabashima)
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
20
#pragma once
21
22
#include "
num_collect/base/concepts/const_reference_of.h
"
23
#include "
num_collect/base/concepts/reference_of.h
"
24
#include "
num_collect/opt/concepts/line_searcher.h
"
25
#include "
num_collect/opt/concepts/optimizer.h
"
26
27
namespace
num_collect::opt::concepts
{
28
34
template
<
typename
T>
35
concept
descent_method
=
optimizer<T>
&&
requires
() {
36
typename
T::line_searcher_type;
37
requires
line_searcher<typename T::line_searcher_type>
;
38
39
requires
requires
(T& solver,
const
typename
T::variable_type& init_var) {
40
{ solver.init(init_var) };
41
};
42
43
requires
requires
(T& solver) {
44
{
45
solver.line_searcher()
46
} ->
base::concepts::reference_of<typename T::line_searcher_type>
;
47
};
48
49
requires
requires
(
const
T& solver) {
50
{
51
solver.line_searcher()
52
} ->
base::concepts::const_reference_of<typename T::line_searcher_type>
;
53
54
{
55
solver.gradient()
56
} ->
base::concepts::const_reference_of<typename T::variable_type>
;
57
};
58
};
59
60
}
// namespace num_collect::opt::concepts
num_collect::base::concepts::const_reference_of
Concept of constant references.
Definition
const_reference_of.h:35
num_collect::base::concepts::reference_of
Concept of references.
Definition
reference_of.h:35
num_collect::opt::concepts::descent_method
Concept of descent methods for optimization.
Definition
descent_method.h:35
num_collect::opt::concepts::line_searcher
Concept of objects to perform line search in optimization.
Definition
line_searcher.h:38
num_collect::opt::concepts::optimizer
Concept of optimizers.
Definition
optimizer.h:37
const_reference_of.h
Definition of const_reference_of concept.
line_searcher.h
Definition of line_searcher concept.
num_collect::opt::concepts
Namespace of C++ concepts.
Definition
box_constrained_optimizer.h:24
optimizer.h
Definition of optimizer concept.
reference_of.h
Definition of reference_of concept.
include
num_collect
opt
concepts
descent_method.h
Generated on Sat Jan 18 2025 03:47:33 for numerical-collection-cpp by
1.12.0