BioDynaMo
v1.05.125-2619fe54
Home
Main Page
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
i
k
l
n
o
p
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
i
l
n
o
p
r
s
t
u
v
w
Variables
Typedefs
Enumerations
Enumerator
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
b
c
d
e
f
i
n
p
r
t
v
Enumerations
Enumerator
Related Functions
:
d
e
i
m
o
p
r
s
t
Files
File List
File Members
All
_
b
c
d
h
n
p
s
Functions
Variables
Macros
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
core
multi_simulation
optimization_param_type
log_range_param.h
Go to the documentation of this file.
1
// -----------------------------------------------------------------------------
2
//
3
// Copyright (C) 2021 CERN & University of Surrey for the benefit of the
4
// BioDynaMo collaboration. All Rights Reserved.
5
//
6
// Licensed under the Apache License, Version 2.0 (the "License");
7
// you may not use this file except in compliance with the License.
8
//
9
// See the LICENSE file distributed with this work for details.
10
// See the NOTICE file distributed with this work for additional information
11
// regarding copyright ownership.
12
//
13
// -----------------------------------------------------------------------------
14
15
#ifndef CORE_MULTI_SIMULATION_OPTIMIZATION_PARAM_TYPE_LOG_RANGE_PARAM_H_
16
#define CORE_MULTI_SIMULATION_OPTIMIZATION_PARAM_TYPE_LOG_RANGE_PARAM_H_
17
18
#include <string>
19
20
#include "
core/multi_simulation/optimization_param_type/optimization_param_type.h
"
21
#include "
core/util/log.h
"
22
23
namespace
bdm
{
24
26
struct
LogRangeParam
:
public
OptimizationParamType
{
27
LogRangeParam
() =
default
;
28
LogRangeParam
(
const
std::string& n,
real_t
base
,
real_t
min,
real_t
max,
29
real_t
stride
)
30
:
OptimizationParamType
(n),
31
base
(
base
),
32
lower_bound
(min),
33
upper_bound
(max),
34
stride
(
stride
) {
35
Validate
();
36
};
37
38
void
Validate
()
const override
{
39
if
(
lower_bound
>
upper_bound
) {
40
Log::Fatal
(
"LogRangeParam"
,
"Tried to initialize parameter '"
,
param_name
,
41
"' with a lower_bound value higher than upper_bound: "
,
42
lower_bound
,
" > "
,
upper_bound
);
43
}
44
}
45
46
OptimizationParamType
*
GetCopy
()
const override
{
47
return
new
LogRangeParam
(*
this
);
48
}
49
50
// Get the nth value
51
real_t
GetValue
(
int
n)
const override
{
52
real_t
exp =
lower_bound
+ n *
stride
;
53
return
exp >
upper_bound
? std::pow(
base
,
upper_bound
)
54
: std::pow(
base
, exp);
55
}
56
57
// Returns the number of discrete values that this range contains (including
58
// the `lower_bound` and `upper_bound` values)
59
uint32_t
GetNumElements
()
const override
{
60
return
std::round(((
upper_bound
-
lower_bound
) +
stride
) /
stride
);
61
}
62
63
// The base value
64
real_t
base
= 10;
65
// The minimum value
66
real_t
lower_bound
= 0;
67
// THe maximum value
68
real_t
upper_bound
= 0;
69
// The stride
70
real_t
stride
= 1;
71
BDM_CLASS_DEF_OVERRIDE
(
LogRangeParam
, 1);
72
};
73
74
}
// namespace bdm
75
76
#endif // CORE_MULTI_SIMULATION_OPTIMIZATION_PARAM_TYPE_LOG_RANGE_PARAM_H_
bdm::LogRangeParam::lower_bound
real_t lower_bound
Definition:
log_range_param.h:66
optimization_param_type.h
bdm
Definition:
agent.cc:39
bdm::LogRangeParam::GetCopy
OptimizationParamType * GetCopy() const override
Definition:
log_range_param.h:46
bdm::LogRangeParam::base
real_t base
Definition:
log_range_param.h:64
bdm::real_t
double real_t
Definition:
real_t.h:21
bdm::OptimizationParamType
An interface for creating different types of optimization parameters.
Definition:
optimization_param_type.h:27
bdm::OptimizationParamType::param_name
std::string param_name
Definition:
optimization_param_type.h:52
bdm::LogRangeParam::LogRangeParam
LogRangeParam()=default
bdm::LogRangeParam::BDM_CLASS_DEF_OVERRIDE
BDM_CLASS_DEF_OVERRIDE(LogRangeParam, 1)
bdm::LogRangeParam
A uniform range of logarithmically scaled values (e.g. 1, 10, 100, 1000)
Definition:
log_range_param.h:26
bdm::LogRangeParam::stride
real_t stride
Definition:
log_range_param.h:70
bdm::Log::Fatal
static void Fatal(const std::string &location, const Args &... parts)
Prints fatal error message.
Definition:
log.h:115
log.h
bdm::LogRangeParam::Validate
void Validate() const override
Definition:
log_range_param.h:38
bdm::LogRangeParam::upper_bound
real_t upper_bound
Definition:
log_range_param.h:68
bdm::LogRangeParam::LogRangeParam
LogRangeParam(const std::string &n, real_t base, real_t min, real_t max, real_t stride)
Definition:
log_range_param.h:28
bdm::LogRangeParam::GetNumElements
uint32_t GetNumElements() const override
Definition:
log_range_param.h:59
bdm::LogRangeParam::GetValue
real_t GetValue(int n) const override
Definition:
log_range_param.h:51
Generated by
1.8.17