Skip to content

Commit 63e9996

Browse files
Merge pull request #1345 from SyneRBI/fix-prior-arg-order
Fixes order of arguments for some Hessian methods for priors
2 parents e9864c7 + a7365e7 commit 63e9996

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

src/xSTIR/cSTIR/cstir.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,7 +1381,7 @@ cSTIR_priorGradient(void* ptr_p, void* ptr_i)
13811381

13821382
extern "C"
13831383
void*
1384-
cSTIR_priorAccumulateHessianTimesInput(void* ptr_prior, void* ptr_out, void* ptr_cur, void* ptr_inp)
1384+
cSTIR_priorAccumulateHessianTimesInput(void* ptr_prior, void* ptr_cur, void* ptr_inp, void* ptr_out)
13851385
{
13861386
try {
13871387
auto& prior = objectFromHandle<stir::GeneralisedPrior <Image3DF> >(ptr_prior);
@@ -1399,7 +1399,7 @@ cSTIR_priorAccumulateHessianTimesInput(void* ptr_prior, void* ptr_out, void* ptr
13991399

14001400
extern "C"
14011401
void*
1402-
cSTIR_priorComputeHessianTimesInput(void* ptr_prior, void* ptr_out, void* ptr_cur, void* ptr_inp)
1402+
cSTIR_priorComputeHessianTimesInput(void* ptr_prior, void* ptr_cur, void* ptr_inp, void* ptr_out)
14031403
{
14041404
try {
14051405
auto& prior = objectFromHandle<xSTIR_GeneralisedPrior3DF>(ptr_prior);

src/xSTIR/pSTIR/STIR.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2448,7 +2448,7 @@ def accumulate_Hessian_times_input(self, current_estimate, input_, out=None):
24482448
if out is None or out.handle is None:
24492449
out = input_.get_uniform_copy(0.0)
24502450
try_calling(pystir.cSTIR_priorAccumulateHessianTimesInput
2451-
(self.handle, out.handle, current_estimate.handle, input_.handle))
2451+
(self.handle, current_estimate.handle, input_.handle, out.handle))
24522452
return out
24532453

24542454
def multiply_with_Hessian(self, current_estimate, input_, out=None):

src/xSTIR/pSTIR/tests/tests_qp_lc_rdp.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ def Hessian_test(test, prior, x, eps=1e-3):
5050
#print('norm of grad(x + dx) - grad(x): %f' % dg.norm())
5151
#print('norm of H(x)*dx: %f' % Hdx.norm())
5252
#print('relative difference: %g' % q)
53+
if dg.norm() == 0:
54+
q = 0
5355
test.check_if_less(q, .01*eps)
5456

5557

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
470837.34375
2-
35069.37890625
3-
5913.474609375
4-
566.474609375
5-
103.76306915283203
6-
37.39760208129883
7-
1883349.375
8-
140277.515625
9-
23653.8984375
10-
2265.8984375
11-
415.0522766113281
12-
149.5904083251953
1+
1.372872e+07
2+
1.135939e+06
3+
2.176679e+05
4+
1.787231e+04
5+
1.730207e+03
6+
6.195086e+02
7+
5.491489e+07
8+
4.543754e+06
9+
8.706718e+05
10+
7.148926e+04
11+
6.920829e+03
12+
2.478034e+03

0 commit comments

Comments
 (0)