9 #ifndef IMPSAXS_DERIVATIVE_CALCULATOR_H
10 #define IMPSAXS_DERIVATIVE_CALCULATOR_H
16 IMPSAXS_BEGIN_NAMESPACE
20 class IMPSAXSEXPORT DerivativeCalculator :
public base::RefCounted {
22 DerivativeCalculator(
const Profile& exp_profile);
28 std::vector<double> compute_gaussian_effect_size(
const Profile& model_profile,
29 const ProfileFitter<ChiScore>* pf,
30 bool use_offset =
false)
const;
36 void compute_all_derivatives(
const Particles& particles,
37 const std::vector<Particles>& rigid_bodies,
38 const std::vector<core::RigidBody>& rigid_bodies_decorators,
39 const Profile& model_profile,
const std::vector<double>& effect_size,
46 DeltaDistributionFunction precompute_derivative_helpers(
const Profile&
47 resampled_model_profile,
const Particles& particles1,
48 const Particles& particles2, std::vector<Floats>& sinc_cos_values)
55 void compute_intensity_derivatives(
const DeltaDistributionFunction&
56 delta_dist,
const std::vector<Floats>& sinc_cos_values,
70 void compute_chisquare_derivative(
const Profile& model_profile,
71 const Particles& particles1,
72 const Particles& particles2,
73 std::vector<algebra::Vector3D >& derivatives,
74 const std::vector<double>& effect_size)
const;
75 void compute_chisquare_derivative(
const Profile& model_profile,
76 const Particles& particles,
77 std::vector<algebra::Vector3D >& derivatives,
78 const std::vector<double>& effect_size)
const
80 return compute_chisquare_derivative(model_profile, particles, particles,
81 derivatives, effect_size);
85 const Profile exp_profile_;
88 void compute_sinc_cos(
Float pr_resolution,
Float max_distance,
89 const Profile& model_profile,
90 std::vector<Floats>& output_values)
const;
92 void compute_profile_difference(
const Profile& model_profile,
94 std::vector<double>& profile_diff)
const;