Skip to content

Commit f86ba2e

Browse files
Remove past dependency from fssd.py and test_density.py, fix float division in simulate_null_dist
1 parent bb7b95a commit f86ba2e

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

hyppo/kgof/fssd.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import division
22

33
from builtins import str, range, object
4-
from past.utils import old_div
54

65
import autograd.numpy as np
76
from ._utils import outer_rows
@@ -122,7 +121,7 @@ def simulate(self, gof, fea_tensor=None):
122121
Tau = fea_tensor.reshape(n, -1)
123122
# Make sure it is a matrix i.e, np.cov returns a scalar when Tau is
124123
# 1d.
125-
cov = old_div(Tau.T.dot(Tau), n) + np.zeros((1, 1))
124+
cov = Tau.T.dot(Tau) / n + np.zeros((1, 1))
126125
n_simulate = self.n_simulate
127126

128127
arr_nfssd, eigs = list_simulate_spectral(cov, J, n_simulate, seed=self.seed)
@@ -310,7 +309,7 @@ def feature_tensor(self, X):
310309
# n x d x J tensor
311310
grad_logp_K = outer_rows(grad_logp, K)
312311

313-
Xi = old_div((grad_logp_K + dKdV), np.sqrt(d * J))
312+
Xi = (grad_logp_K + dKdV) / np.sqrt(d * J)
314313
return Xi
315314

316315

@@ -340,9 +339,9 @@ def power_criterion(p, X, k, test_locs, reg=1e-2, use_unbiased=True, use_2terms=
340339

341340
# mean/sd criterion
342341
sigma_h1 = np.sqrt(u_variance + reg)
343-
ratio = old_div(u_mean, sigma_h1)
342+
ratio = u_mean / sigma_h1
344343
if use_2terms:
345-
obj = old_div(-1.0, (np.sqrt(n) * sigma_h1)) + np.sqrt(n) * ratio
344+
obj = -1.0 / (np.sqrt(n) * sigma_h1) + np.sqrt(n) * ratio
346345
else:
347346
obj = ratio
348347
return obj
@@ -372,8 +371,8 @@ def ustat_h1_mean_variance(fea_tensor, return_variance=True, use_unbiased=True):
372371
# n x d*J
373372
Tau = np.reshape(Xi, [n, d * J])
374373
if use_unbiased:
375-
t1 = np.sum(np.mean(Tau, 0) ** 2) * (old_div(n, float(n - 1)))
376-
t2 = old_div(np.sum(np.mean(Tau**2, 0)), float(n - 1))
374+
t1 = np.sum(np.mean(Tau, 0) ** 2) * (n / float(n - 1))
375+
t2 = np.sum(np.mean(Tau**2, 0)) / float(n - 1)
377376
# stat is the mean
378377
stat = t1 - t2
379378
else:
@@ -425,20 +424,16 @@ def simulate_null_dist(eigs, J, n_simulate=2000, seed=7):
425424
-------
426425
fssds : a numpy array of simulated statistics.
427426
"""
428-
d = old_div(len(eigs), J)
427+
d = len(eigs) // J # Use integer division
429428
assert d > 0
430-
# draw at most d x J x block_size values at a time
431-
block_size = max(20, int(old_div(1000.0, (d * J))))
429+
block_size = max(20, int(1000.0 / (d * J)))
432430
fssds = np.zeros(n_simulate)
433431
from_ind = 0
434432
rng = default_rng(seed)
435433
while from_ind < n_simulate:
436434
to_draw = min(block_size, n_simulate - from_ind)
437-
# draw chi^2 random variables.
438-
chi2 = rng.standard_normal(size=(d * J, to_draw)) ** 2
439-
# an array of length to_draw
435+
chi2 = rng.standard_normal(size=(d * J, to_draw)) ** 2 # d * J is now an integer
440436
sim_fssds = eigs.dot(chi2 - 1.0)
441-
# store
442437
end_ind = from_ind + to_draw
443438
fssds[from_ind:end_ind] = sim_fssds
444439
from_ind = end_ind

hyppo/kgof/tests/test_density.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import numpy as np
22
from numpy import testing
3-
from past.utils import old_div
43
from scipy.linalg.misc import norm
54

65
from ..datasource import DSNormal, DSIsotropicNormal
@@ -61,10 +60,10 @@ def test_log_den(self, n, d):
6160
norm = Normal(mean, cov)
6261
log_dens = norm.log_den(X)
6362
E, V = np.linalg.eigh(cov)
64-
prec = np.dot(np.dot(V, np.diag(old_div(1.0, E))), V.T)
63+
prec = np.dot(np.dot(V, np.diag(1.0 / E)), V.T)
6564
X0 = X - mean
6665
X0prec = np.dot(X0, prec)
67-
my_log_dens = old_div(-np.sum(X0prec * X0, 1), 2.0)
66+
my_log_dens = -np.sum(X0prec * X0, 1) / 2.0
6867

6968
ds_norm = DSNormal(test_mean, cov)
7069
ds_norm.sample(n=10)

0 commit comments

Comments
 (0)