def calculate_jacobian(Ih_table): """Calculate the jacobian matrix, size Ih_table.size by len(self.apm.x).""" gsq = np.square(Ih_table.inverse_scale_factors) * Ih_table.weights sumgsq = Ih_table.sum_in_groups(gsq) dIh = (Ih_table.intensities - (Ih_table.Ih_values * 2.0 * Ih_table.inverse_scale_factors)) * Ih_table.weights jacobian = calc_jacobian( Ih_table.derivatives.transpose(), Ih_table.h_index_matrix, flumpy.from_numpy(Ih_table.Ih_values), flumpy.from_numpy(Ih_table.inverse_scale_factors), flumpy.from_numpy(dIh), flumpy.from_numpy(sumgsq), ) return jacobian
def calculate_jacobian(Ih_table): """Calculate the jacobian matrix, size Ih_table.size by len(self.apm.x).""" gsq = Ih_table.inverse_scale_factors**2 * Ih_table.weights sumgsq = gsq * Ih_table.h_index_matrix dIh = (Ih_table.intensities - (Ih_table.Ih_values * 2.0 * Ih_table.inverse_scale_factors)) * Ih_table.weights jacobian = calc_jacobian( Ih_table.derivatives.transpose(), Ih_table.h_index_matrix, Ih_table.Ih_values, Ih_table.inverse_scale_factors, dIh, sumgsq, ) return jacobian