From d50bbb44c72b85c25f94436118b7c27672f5ca10 Mon Sep 17 00:00:00 2001 From: Nicola Vigano <nicola.vigano@esrf.fr> Date: Wed, 8 Apr 2015 19:19:00 +0200 Subject: [PATCH] 6D-Reconstruction: changed dual TV behavior to return -div instead of div. Signed-off-by: Nicola Vigano <nicola.vigano@esrf.fr> --- zUtil_Deformation/Gt6DBlobReconstructor.m | 8 ++++---- zUtil_Deformation/gt6DUpdateDualTV.m | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/zUtil_Deformation/Gt6DBlobReconstructor.m b/zUtil_Deformation/Gt6DBlobReconstructor.m index 7b0dc9ed..448216e2 100644 --- a/zUtil_Deformation/Gt6DBlobReconstructor.m +++ b/zUtil_Deformation/Gt6DBlobReconstructor.m @@ -393,7 +393,7 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector % Computing update dual TV self.statistics.tic('cp_dual_update_tv'); - [divq, q] = gt6DUpdateDualTV(q, nextEnhancedSolution, 1, self.algo_ops_c_functions, self.num_threads); + [mdivq, q] = gt6DUpdateDualTV(q, nextEnhancedSolution, 1, self.algo_ops_c_functions, self.num_threads); self.statistics.toc('cp_dual_update_tv'); % Computing update primal @@ -409,7 +409,7 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector timing_bs = timing_bs + bs_time; [self.currentSolution{n}, nextEnhancedSolution{n}, app_time] ... - = gt6DUpdatePrimal(self.currentSolution{n}, v, -divq, tau{n}, self.algo_ops_c_functions, self.num_threads); + = gt6DUpdatePrimal(self.currentSolution{n}, v, mdivq, tau{n}, self.algo_ops_c_functions, self.num_threads); timing_app = timing_app + app_time; clear v end @@ -505,7 +505,7 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector % Computing update dual TV self.statistics.tic('cp_dual_update_tv'); - [div_tv, q_tv] = gt6DUpdateDualTV(q_tv, nextEnhancedSolution, 1, self.algo_ops_c_functions, self.num_threads); + [mdiv_tv, q_tv] = gt6DUpdateDualTV(q_tv, nextEnhancedSolution, 1, self.algo_ops_c_functions, self.num_threads); self.statistics.toc('cp_dual_update_tv'); % Computing update dual l1 @@ -526,7 +526,7 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector timing_bs = timing_bs + bs_time; [self.currentSolution{n}, nextEnhancedSolution{n}, app_time] ... - = gt6DUpdatePrimal(self.currentSolution{n}, v, q_l1{n}-div_tv, tau{n}, self.algo_ops_c_functions, self.num_threads); + = gt6DUpdatePrimal(self.currentSolution{n}, v, q_l1{n}+mdiv_tv, tau{n}, self.algo_ops_c_functions, self.num_threads); timing_app = timing_app + app_time; clear v end diff --git a/zUtil_Deformation/gt6DUpdateDualTV.m b/zUtil_Deformation/gt6DUpdateDualTV.m index 049d98b5..72967004 100644 --- a/zUtil_Deformation/gt6DUpdateDualTV.m +++ b/zUtil_Deformation/gt6DUpdateDualTV.m @@ -1,4 +1,4 @@ -function [divq, q] = gt6DUpdateDualTV(q, new_enh_sol, lambda, use_c_function, num_threads) +function [mdivq, q] = gt6DUpdateDualTV(q, new_enh_sol, lambda, use_c_function, num_threads) % function q = gt6DUpdateDualTV(q, new_enh_sol, lambda, use_c_function) % @@ -21,5 +21,8 @@ function [divq, q] = gt6DUpdateDualTV(q, new_enh_sol, lambda, use_c_function, nu end end - divq = gtMathsDivergence(q); + % Let's try to at least mark them for deletion + clear sES dsES + + mdivq = -gtMathsDivergence(q); end \ No newline at end of file -- GitLab