diff --git a/demos/critical_filtering.py b/demos/critical_filtering.py index 78b06079c9ce94e1a6eda3bd95b4972185079072..a296521ed651a15adf7c40ad9de088f80ee1cd37 100644 --- a/demos/critical_filtering.py +++ b/demos/critical_filtering.py @@ -64,7 +64,7 @@ if __name__ == "__main__": # Choose the measurement instrument # Instrument = SmoothingOperator(s_space, sigma=0.01) - Instrument = ift.DiagonalOperator(s_space, diagonal=1.) + Instrument = ift.DiagonalOperator(ift.Field(s_space, 1.)) # Instrument._diagonal.val[200:400, 200:400] = 0 # Instrument._diagonal.val[64:512-64, 64:512-64] = 0 @@ -72,7 +72,7 @@ if __name__ == "__main__": R = AdjointFFTResponse(fft, Instrument) noise = 1. - N = ift.DiagonalOperator(s_space, ift.Field(s_space,noise).weight(1)) + N = ift.DiagonalOperator(ift.Field(s_space,noise).weight(1)) n = ift.Field.from_random(domain=s_space, random_type='normal', std=np.sqrt(noise), @@ -101,7 +101,7 @@ if __name__ == "__main__": def ps0(k): return (1./(1.+k)**2) - t0 = ift.Field(p_space, val=np.log(1./(1+p_space.k)_lengths)**2)) + t0 = ift.Field(p_space, val=np.log(1./(1+p_space.k_lengths)**2)) for i in range(500): S0 = ift.create_power_operator(h_space, power_spectrum=ps0) diff --git a/demos/log_normal_wiener_filter.py b/demos/log_normal_wiener_filter.py index 17c74b1e6ffb2bdb5a1688bbc04ce3adb5e92686..6a47088485498dc7dd5bc11a8e46640106e8a029 100644 --- a/demos/log_normal_wiener_filter.py +++ b/demos/log_normal_wiener_filter.py @@ -39,7 +39,7 @@ if __name__ == "__main__": # Setting up the noise covariance and drawing a random noise realization ndiag = ift.Field(data_domain, mock_signal.var()/signal_to_noise).weight(1) - N = ift.DiagonalOperator(data_domain, ndiag) + N = ift.DiagonalOperator(ndiag) noise = ift.Field.from_random(domain=data_domain, random_type='normal', std=mock_signal.std()/np.sqrt(signal_to_noise), mean=0) data = R(ift.exp(mock_signal)) + noise #|\label{code:wf_mock_data}| diff --git a/demos/paper_demos/cartesian_wiener_filter.py b/demos/paper_demos/cartesian_wiener_filter.py index 2aee523a2293a58ac7efe97df7e06657f8fc96f3..c49887b47f034015697c60a3e9903a980165a570 100644 --- a/demos/paper_demos/cartesian_wiener_filter.py +++ b/demos/paper_demos/cartesian_wiener_filter.py @@ -58,8 +58,7 @@ if __name__ == "__main__": diagonal = mock_power.power_synthesize_special(spaces=(0, 1))**2 diagonal = diagonal.real - S = ift.DiagonalOperator(domain=(harmonic_space_1, harmonic_space_2), - diagonal=diagonal) + S = ift.DiagonalOperator(diagonal) np.random.seed(10) @@ -82,7 +81,7 @@ if __name__ == "__main__": # Setting up the noise covariance and drawing a random noise realization ndiag = ift.Field(data_domain, mock_signal.var()/signal_to_noise).weight(1) - N = ift.DiagonalOperator(data_domain, ndiag) + N = ift.DiagonalOperator(ndiag) noise = ift.Field.from_random(domain=data_domain, random_type='normal', std=mock_signal.std()/np.sqrt(signal_to_noise), mean=0) diff --git a/demos/paper_demos/wiener_filter.py b/demos/paper_demos/wiener_filter.py index 6c60d23ab27f10b4d8d4e630eec546eb79e7e330..abafd70fa6b20c58155acbe6a76e3c6d170e676d 100644 --- a/demos/paper_demos/wiener_filter.py +++ b/demos/paper_demos/wiener_filter.py @@ -38,14 +38,14 @@ if __name__ == "__main__": # Setting up the noise covariance and drawing a random noise realization ndiag = ift.Field(data_domain, mock_signal.var()/signal_to_noise).weight(1) - N = ift.DiagonalOperator(data_domain, ndiag) + N = ift.DiagonalOperator(ndiag) noise = ift.Field.from_random(domain=data_domain, random_type='normal', std=mock_signal.std()/np.sqrt(signal_to_noise), mean=0) data = R(mock_signal) + noise #|\label{code:wf_mock_data}| # Wiener filter j = R_harmonic.adjoint_times(N.inverse_times(data)) - ctrl = ift.DefaultIterationController(verbose=True,tol_abs_gradnorm=0.1,iteration_limit=10) + ctrl = ift.DefaultIterationController(verbose=True,tol_abs_gradnorm=0.1) inverter = ift.ConjugateGradient(controller=ctrl) wiener_curvature = ift.library.WienerFilterCurvature(S=S, N=N, R=R_harmonic,inverter=inverter) m_k = wiener_curvature.inverse_times(j) #|\label{code:wf_wiener_filter}| diff --git a/demos/probing.py b/demos/probing.py index 5bd282e62de80dc85595df2dff256cf78d3ae70a..b27dbea39af4e739d0a98afb9dc3a0ba4687a50c 100644 --- a/demos/probing.py +++ b/demos/probing.py @@ -17,7 +17,7 @@ class MultiProber(ift.DiagonalProberMixin, ift.TraceProberMixin, ift.Prober): x = ift.RGSpace((8, 8)) f = ift.Field.from_random(domain=x, random_type='normal') -diagOp = ift.DiagonalOperator(domain=x, diagonal=f) +diagOp = ift.DiagonalOperator(f) diagProber = DiagonalProber(domain=x) diagProber(diagOp) diff --git a/demos/wiener_filter_via_curvature.py b/demos/wiener_filter_via_curvature.py index 252cffc4df37dfa96055466ae370d4bdac2ac9ae..03e585bc7c194e09501329fb94d644fd90d34e12 100644 --- a/demos/wiener_filter_via_curvature.py +++ b/demos/wiener_filter_via_curvature.py @@ -47,8 +47,7 @@ if __name__ == "__main__": data_domain = R.target[0] R_harmonic = ift.ComposedOperator([fft, R], default_spaces=[0, 0]) - N = ift.DiagonalOperator(data_domain, - diagonal=ift.Field(data_domain,mock_signal.var()/signal_to_noise).weight(1)) + N = ift.DiagonalOperator(ift.Field(data_domain,mock_signal.var()/signal_to_noise).weight(1)) noise = ift.Field.from_random(domain=data_domain, random_type='normal', std=mock_signal.std()/np.sqrt(signal_to_noise), diff --git a/demos/wiener_filter_via_hamiltonian.py b/demos/wiener_filter_via_hamiltonian.py index ee19bc324395717c17ceb44f97ff708060a8c89f..bafd2950b5617b024d42e1a3e107b71591f6e32e 100644 --- a/demos/wiener_filter_via_hamiltonian.py +++ b/demos/wiener_filter_via_hamiltonian.py @@ -56,14 +56,14 @@ if __name__ == "__main__": # Choosing the measurement instrument # Instrument = SmoothingOperator(s_space, sigma=0.05) - Instrument = ift.DiagonalOperator(s_space, diagonal=1.) + Instrument = ift.DiagonalOperator(ift.Field(s_space, 1.)) # Instrument._diagonal.val[200:400, 200:400] = 0 # Adding a harmonic transformation to the instrument R = AdjointFFTResponse(fft, Instrument) signal_to_noise = 1. ndiag = ift.Field(s_space, ss.var()/signal_to_noise).weight(1) - N = ift.DiagonalOperator(s_space, ndiag) + N = ift.DiagonalOperator(ndiag) n = ift.Field.from_random(domain=s_space, random_type='normal', std=ss.std()/np.sqrt(signal_to_noise), diff --git a/nifty/data_objects/numpy_do.py b/nifty/data_objects/numpy_do.py index de04b230e9c027a9de751579fa94bbda14e73cf2..8c6eca28e61f13e8aed5dab3da80445390152cda 100644 --- a/nifty/data_objects/numpy_do.py +++ b/nifty/data_objects/numpy_do.py @@ -2,7 +2,7 @@ import numpy as np from numpy import ndarray as data_object -from numpy import full, empty, sqrt, ones, zeros, vdot, abs, bincount +from numpy import full, empty, sqrt, ones, zeros, vdot, abs, bincount, exp, log from ..nifty_utilities import cast_iseq_to_tuple, get_slice_list from functools import reduce diff --git a/nifty/library/critical_filter/critical_power_curvature.py b/nifty/library/critical_filter/critical_power_curvature.py index d1c0c820b7c0d51e793bb0d3dab2980e27e90bf1..9e57920e4665f196f3c3be34d8e7cba9649b7601 100644 --- a/nifty/library/critical_filter/critical_power_curvature.py +++ b/nifty/library/critical_filter/critical_power_curvature.py @@ -22,7 +22,7 @@ class CriticalPowerCurvature(InvertibleOperatorMixin, EndomorphicOperator): # ---Overwritten properties and methods--- def __init__(self, theta, T, inverter, preconditioner=None, **kwargs): - self.theta = DiagonalOperator(theta.domain, diagonal=theta) + self.theta = DiagonalOperator(theta) self.T = T if preconditioner is None: preconditioner = self.theta.inverse_times diff --git a/nifty/sugar.py b/nifty/sugar.py index 27b607aae12320d5ee8df564ab208e96e7618f01..9902bc55c7b23c3f8af6abb0be33a65c4b8cdce3 100644 --- a/nifty/sugar.py +++ b/nifty/sugar.py @@ -66,7 +66,7 @@ def create_power_operator(domain, power_spectrum, dtype=None): f = f.real f **= 2 - return DiagonalOperator(domain, diagonal=Field(domain,f).weight(1)) + return DiagonalOperator(Field(domain,f).weight(1)) def generate_posterior_sample(mean, covariance):