[python-dtcwt] 328/497: fixed 3dtransform bugs, still not the same as numpy...

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Tue Jul 21 18:06:22 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch debian/sid
in repository python-dtcwt.

commit c08599533984a6359ba5fc78fc3002a2256963bf
Author: tim <tim at tim.(none)>
Date:   Tue Feb 4 09:50:34 2014 +0000

    fixed 3dtransform bugs, still not the same as numpy...
---
 dtcwt/backend/backend_opencl/transform3d.py | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/dtcwt/backend/backend_opencl/transform3d.py b/dtcwt/backend/backend_opencl/transform3d.py
index b3dd265..35b56ff 100644
--- a/dtcwt/backend/backend_opencl/transform3d.py
+++ b/dtcwt/backend/backend_opencl/transform3d.py
@@ -41,7 +41,7 @@ class Transform3d(Transform3dNumPy):
         super(Transform3d, self).__init__(biort=biort, qshift=qshift, ext_mode=ext_mode)
         self.queue = to_queue(queue)
 
-    def forward(self, X, nlevels=3, discard_level_1=False):
+    def forward(self, X, nlevels=3, include_scale=False, discard_level_1=False):
         """Perform a *n*-level DTCWT-3D decompostion on a 3D matrix *X*.
         
         :param X: 3D real array-like object
@@ -114,16 +114,30 @@ class Transform3d(Transform3dNumPy):
         Yl = X
         Yh = [None,] * nlevels
 
+        if include_scale:
+            # this is only required if the user specifies a third output component.
+            Yscale = [None,] * nlevels
+
         # level is 0-indexed
         for level in xrange(nlevels):
             # Transform
             if level == 0 and discard_level_1:
                 Yl = _level1_xfm_no_highpass(Yl, h0o, h1o, self.ext_mode)
+                if include_scale:
+                    Yscale[0] = Yl
             elif level == 0 and not discard_level_1:
                 Yl, Yh[level] = _level1_xfm(Yl, h0o, h1o, self.ext_mode)
+                if include_scale:
+                    Yscale[0] = Yl
             else:
                 Yl, Yh[level] = _level2_xfm(Yl, h0a, h0b, h1a, h1b, self.ext_mode)
+                if include_scale:
+                    Yscale[level] = Yl
         #FIXME: need some way to separate the Yscale component to include the scale when necessary.
+        if include_scale:
+            return TransformDomainSignal(Yl, tuple(Yh), tuple(Yscale))
+        else: 
+            return TransformDomainSignal(Yl, tuple(Yh))
         return TransformDomainSignal(Yl, tuple(Yh))
 
     def inverse(self, td_signal):

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/python-dtcwt.git



More information about the debian-science-commits mailing list