numerical-collection-cpp
0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
problem.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/decayed_to.h
"
24
#include "
num_collect/base/concepts/real_scalar.h
"
25
#include "
num_collect/ode/evaluation_type.h
"
26
27
namespace
num_collect::ode::concepts
{
28
34
template
<
typename
T>
35
concept
problem
=
requires
(T& obj,
const
T& const_obj) {
36
typename
T::variable_type;
37
typename
T::scalar_type;
38
39
requires
base::concepts::real_scalar<typename T::scalar_type>
;
40
requires
requires
(
typename
T::variable_type& var,
41
const
typename
T::scalar_type& coeff) { var = var + coeff * var; };
42
43
{ T::allowed_evaluations } ->
base::concepts::decayed_to<evaluation_type>
;
44
requires
T::allowed_evaluations.allows(
evaluation_type
{.diff_coeff =
true
});
45
46
requires
requires
(
const
typename
T::scalar_type& time,
47
const
typename
T::variable_type& var,
evaluation_type
evaluations) {
48
obj.evaluate_on(time, var, evaluations);
49
};
50
51
{
52
const_obj.diff_coeff()
53
} ->
base::concepts::const_reference_of<typename T::variable_type>
;
54
};
55
56
}
// namespace num_collect::ode::concepts
num_collect::base::concepts::const_reference_of
Concept of constant references.
Definition
const_reference_of.h:35
num_collect::base::concepts::decayed_to
Concept of same types.
Definition
decayed_to.h:35
num_collect::base::concepts::real_scalar
Concept of real scalars.
Definition
real_scalar.h:55
num_collect::ode::concepts::problem
Concept of problems of ordinary differential equations.
Definition
problem.h:35
const_reference_of.h
Definition of const_reference_of concept.
decayed_to.h
Definition of decayed_to concept.
evaluation_type.h
Definition of evaluation_type enumeration.
num_collect::ode::concepts
Namespace of C++ concepts.
Definition
differentiable_problem.h:26
real_scalar.h
Definition of real_scalar concept.
num_collect::ode::evaluation_type
Struct to specify types of evaluations.
Definition
evaluation_type.h:27
include
num_collect
ode
concepts
problem.h
Generated on Fri Feb 28 2025 06:27:37 for numerical-collection-cpp by
1.13.2