Restructure priorWeight_QGGMRF/priorWeight_proxMap flags.
Created by: dyang37
Currently in C code we have two flags to control whether recon() function is in qGGMRF mode or proximal map mode:
In struct ReconParams
:
float priorWeight_QGGMRF; /* Prior mode: (-1: QGGMRF mode off; 1: QGGMRF mode on) */
float priorWeight_proxMap; /* Prior mode: (-1: prox mode off; 1: prox mode on) */
There are three issues related to this:
- These flags need to be changed to
int
orbool
instead offloat
. - If it should be the case that only one of qGGMRF or prox modes may be turned on at the same time, then we may merge two flags into one
bool
flag. - When calculating
theta_1
andtheta_2
values in ICD update, we have the update code as follows:
float theta1, theta2;
theta1 = icdInfo->theta1_f + reconParams->priorWeight_QGGMRF*icdInfo->theta1_p_QGGMRF + reconParams->priorWeight_proxMap*icdInfo->theta1_p_proxMap;
theta2 = icdInfo->theta2_f + reconParams->priorWeight_QGGMRF*icdInfo->theta2_p_QGGMRF + reconParams->priorWeight_proxMap*icdInfo->theta2_p_proxMap;
If we follow the definition that theta1_p_QGGMRF
and priorWeight_proxMap
is either -1 or 1, then this could be wrong since both qGGMRF and proxMap prior weights are added to theta values.