Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Simonstrator
API
Commits
11bd32e1
Commit
11bd32e1
authored
May 09, 2019
by
Tobias Meuser
Browse files
Added percentile-based lifetime generator
parent
7cc16532
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/de/tudarmstadt/maki/simonstrator/api/component/sensor/environment/generator/lifetime/DeterministicExponentialLifetimeDistribution.java
0 → 100755
View file @
11bd32e1
/*
* Copyright (c) 2005-2010 KOM – Multimedia Communications Lab
*
* This file is part of Simonstrator.KOM.
*
* Simonstrator.KOM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* PeerfactSim.KOM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PeerfactSim.KOM. If not, see <http://www.gnu.org/licenses/>.
*
*/
package
de.tudarmstadt.maki.simonstrator.api.component.sensor.environment.generator.lifetime
;
import
de.tudarmstadt.maki.simonstrator.api.Time
;
import
de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor
;
public
class
DeterministicExponentialLifetimeDistribution
implements
LifetimeDistribution
{
private
long
_averageEventDuration
;
private
double
_existProbability
;
private
double
_percentile
;
@XMLConfigurableConstructor
({
"duration"
,
"percentile"
})
public
DeterministicExponentialLifetimeDistribution
(
long
pEventDuration
,
double
pPercentile
)
{
_averageEventDuration
=
pEventDuration
;
_existProbability
=
1
-
1
/
(
double
)
(
pEventDuration
/
Time
.
SECOND
);
_percentile
=
pPercentile
;
}
@Override
public
long
getLifetime
()
{
return
(
long
)
Math
.
ceil
(
Math
.
log
(
_percentile
)
/
Math
.
log
(
_existProbability
))
*
Time
.
SECOND
;
}
@Override
public
long
getAverageLifetime
()
{
return
_averageEventDuration
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment