예제 #1
0
 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
예제 #2
0
 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