Skip to content

Commit 03b5819

Browse files
committed
Add missing docstrings
1 parent d90b359 commit 03b5819

File tree

6 files changed

+32
-36
lines changed

6 files changed

+32
-36
lines changed

deep_tensor/references/reference.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
from typing import Tuple
33
import warnings
44

5+
import torch
56
from torch import Tensor
7+
from torch.quasirandom import SobolEngine
68

79
from ..domains import Domain
810

@@ -110,10 +112,10 @@ def eval_potential(self, rs: Tensor) -> Tuple[Tensor, Tensor]:
110112
"""
111113
pass
112114

113-
@abc.abstractmethod
114115
def random(self, d: int, n: int) -> Tensor:
115-
"""Generates a set of samples from the reference density using
116-
the inverse CDF method.
116+
r"""Generates a set of random samples.
117+
118+
Generates a set of random samples from the reference density.
117119
118120
Parameters
119121
----------
@@ -125,15 +127,18 @@ def random(self, d: int, n: int) -> Tensor:
125127
Returns
126128
-------
127129
rs:
128-
An n * d matrix containing the generated samples.
130+
An $n \times d$ matrix containing the generated samples.
129131
130132
"""
131-
pass
132-
133-
@abc.abstractmethod
133+
zs = torch.rand(n, d)
134+
rs = self.invert_cdf(zs)
135+
return rs
136+
134137
def sobol(self, d: int, n: int) -> Tensor:
135-
"""Generates a set of QMC samples from the reference density
136-
using a Sobol sequence.
138+
r"""Generates a set of QMC samples.
139+
140+
Generates a set of QMC samples from the reference density using
141+
a Sobol sequence.
137142
138143
Parameters
139144
----------
@@ -145,10 +150,13 @@ def sobol(self, d: int, n: int) -> Tensor:
145150
Returns
146151
-------
147152
rs:
148-
An n * d matrix containing the generated samples.
153+
An $n \times d$ matrix containing the generated samples.
149154
150155
"""
151-
pass
156+
S = SobolEngine(dimension=d)
157+
zs = S.draw(n)
158+
rs = self.invert_cdf(zs)
159+
return rs
152160

153161
def _out_domain(self, rs: Tensor) -> Tensor:
154162
outside = (rs < self.domain.left) | (self.domain.right < rs)

deep_tensor/references/symmetric_reference.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import torch
66
from torch import Tensor
7-
from torch.quasirandom import SobolEngine
87

98
from .reference import Reference
109
from ..domains import BoundedDomain, Domain
@@ -162,15 +161,4 @@ def eval_potential(self, rs: Tensor) -> Tuple[Tensor, Tensor]:
162161
d_rs = rs.shape[1]
163162
log_ps, log_dpdrs = self.eval_unit_potential(rs)
164163
log_ps = log_ps + d_rs * math.log(self.norm)
165-
return log_ps, log_dpdrs
166-
167-
def random(self, d: int, n: int) -> Tensor:
168-
zs = torch.rand(n, d)
169-
rs = self.invert_cdf(zs)
170-
return rs
171-
172-
def sobol(self, d: int, n: int) -> Tensor:
173-
S = SobolEngine(dimension=d)
174-
zs = S.draw(n)
175-
rs = self.invert_cdf(zs)
176-
return rs
164+
return log_ps, log_dpdrs

deep_tensor/references/uniform_reference.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import torch
44
from torch import Tensor
5-
from torch.quasirandom import SobolEngine
65

76
from .reference import Reference
87
from ..domains import BoundedDomain
@@ -37,13 +36,4 @@ def eval_potential(self, rs: Tensor) -> Tuple[Tensor, Tensor]:
3736
n_rs = rs.shape[0]
3837
log_ps = torch.zeros(n_rs)
3938
log_dpdrs = torch.zeros(n_rs) # TODO: look at this more closely.
40-
return log_ps, log_dpdrs
41-
42-
def random(self, d: int, n: int) -> Tensor:
43-
rs = torch.rand(n, d)
44-
return rs
45-
46-
def sobol(self, d: int, n: int) -> Tensor:
47-
S = SobolEngine(dimension=d)
48-
rs = S.draw(n)
49-
return rs
39+
return log_ps, log_dpdrs

docs/objects.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/reference/GaussianReference.qmd

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ GaussianReference.random(d: int, n: int)
3030

3131
Generates a set of random samples.
3232

33+
Generates a set of random samples from the reference density.
34+
3335
#### Parameters {.doc-section .doc-section-parameters}
3436

3537
<code>[**d**]{.parameter-name} [:]{.parameter-annotation-sep} [int]{.parameter-annotation}</code>
@@ -54,6 +56,9 @@ GaussianReference.sobol(d: int, n: int)
5456

5557
Generates a set of QMC samples.
5658

59+
Generates a set of QMC samples from the reference density using
60+
a Sobol sequence.
61+
5762
#### Parameters {.doc-section .doc-section-parameters}
5863

5964
<code>[**d**]{.parameter-name} [:]{.parameter-annotation-sep} [int]{.parameter-annotation}</code>

docs/reference/UniformReference.qmd

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ UniformReference.random(d: int, n: int)
2121

2222
Generates a set of random samples.
2323

24+
Generates a set of random samples from the reference density.
25+
2426
#### Parameters {.doc-section .doc-section-parameters}
2527

2628
<code>[**d**]{.parameter-name} [:]{.parameter-annotation-sep} [int]{.parameter-annotation}</code>
@@ -45,6 +47,9 @@ UniformReference.sobol(d: int, n: int)
4547

4648
Generates a set of QMC samples.
4749

50+
Generates a set of QMC samples from the reference density using
51+
a Sobol sequence.
52+
4853
#### Parameters {.doc-section .doc-section-parameters}
4954

5055
<code>[**d**]{.parameter-name} [:]{.parameter-annotation-sep} [int]{.parameter-annotation}</code>

0 commit comments

Comments
 (0)