Skip to content

Commit ffbaff6

Browse files
committed
added frolov to wn
1 parent d2aa33b commit ffbaff6

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import numpy as np
2+
from deterministic_gaussian_sampling_fibonacci import sample_gaussian_fibonacci
3+
4+
from util.selectors.silder_log import LogSlider
5+
from model.distributions.torus.torus_sampling_schema import TorusSamplingSchema
6+
from util.selectors.silder_manual_input_wrapper import SliderManualInputWrapper as MI
7+
from util.gaus_util import GausUtil as gu
8+
9+
10+
class CFrolovWNSampling(TorusSamplingSchema):
11+
def __init__(self):
12+
def _check_input(val):
13+
return val >= 1 and val <= 100003 and isinstance(val, int)
14+
15+
self.sample_options = [
16+
MI(LogSlider("Number of Samples", 10, 100, 10000))
17+
]
18+
19+
def get_name(self):
20+
return "Classical Frolov"
21+
22+
def sample(self, sample_options, distribution_options):
23+
sample_count = sample_options[0].state
24+
25+
mean_x = distribution_options[0].state
26+
mean_y = distribution_options[1].state
27+
sigma_t = distribution_options[2].state
28+
sigma_p = distribution_options[3].state
29+
correlation = distribution_options[4].state
30+
31+
mu = np.array([mean_x, mean_y])
32+
33+
Cov = np.array([
34+
[sigma_t**2, correlation * sigma_t * sigma_p],
35+
[correlation * sigma_t * sigma_p, sigma_p**2]
36+
])
37+
38+
gaus_grid = sample_gaussian_fibonacci(mu, Cov, sample_count, "ClassicalFrolov")
39+
40+
# wrapp
41+
gaus_grid[:,0] = gaus_grid[:,0] % (2 * np.pi)
42+
return gaus_grid
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import numpy as np
2+
from deterministic_gaussian_sampling_fibonacci import sample_gaussian_fibonacci
3+
4+
from util.selectors.silder_log import LogSlider
5+
from model.distributions.torus.torus_sampling_schema import TorusSamplingSchema
6+
from util.selectors.silder_manual_input_wrapper import SliderManualInputWrapper as MI
7+
from util.gaus_util import GausUtil as gu
8+
9+
10+
class IFrolovWNSampling(TorusSamplingSchema):
11+
def __init__(self):
12+
def _check_input(val):
13+
return val >= 1 and val <= 100003 and isinstance(val, int)
14+
15+
self.sample_options = [
16+
MI(LogSlider("Number of Samples", 10, 100, 10000))
17+
]
18+
19+
def get_name(self):
20+
return "Improved Frolov"
21+
22+
def sample(self, sample_options, distribution_options):
23+
sample_count = sample_options[0].state
24+
25+
mean_x = distribution_options[0].state
26+
mean_y = distribution_options[1].state
27+
sigma_t = distribution_options[2].state
28+
sigma_p = distribution_options[3].state
29+
correlation = distribution_options[4].state
30+
31+
mu = np.array([mean_x, mean_y])
32+
33+
Cov = np.array([
34+
[sigma_t**2, correlation * sigma_t * sigma_p],
35+
[correlation * sigma_t * sigma_p, sigma_p**2]
36+
])
37+
38+
gaus_grid = sample_gaussian_fibonacci(mu, Cov, sample_count, "ImprovedFrolov")
39+
40+
# wrapp
41+
gaus_grid[:,0] = gaus_grid[:,0] % (2 * np.pi)
42+
return gaus_grid

model/distributions/torus/wrapped_normal/wrapped_normal.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
from model.distributions.torus.wrapped_normal.fibonacci import TorusFibRank1WNSampling
99
from model.distributions.torus.wrapped_normal.fibonacci_kronecker import TorusFibKroneckerWNSampling
1010
from model.distributions.torus.wrapped_normal.cartesian import TorusFibCartWNSampling
11+
from model.distributions.torus.wrapped_normal.frolov import CFrolovWNSampling
12+
from model.distributions.torus.wrapped_normal.improved_frolov import IFrolovWNSampling
1113
from model.torus.torus import Torus
1214
class WrappedNormalTorusDistribution(TorusDistribution):
1315
def __init__(self):
@@ -23,6 +25,8 @@ def __init__(self):
2325
TorusFibRank1WNSampling(),
2426
TorusFibKroneckerWNSampling(),
2527
TorusFibCartWNSampling(),
28+
CFrolovWNSampling(),
29+
IFrolovWNSampling(),
2630
]
2731

2832

0 commit comments

Comments
 (0)