Clipper

#include <resol_targetfn.h>
Public Member Functions  
TargetFn_sigmaa_omegaa (const HKL_data< T > &eo, const HKL_data< T > &ec)  
constructor: takes the datalist against which to calc target  
Rderiv  rderiv (const HKL_info::HKL_reference_index &ih, const ftype &omegaa) const 
return the value and derivatives of the target function  
Static Public Member Functions  
static ftype  sigmaa (const ftype &omegaa) 
convert omegaa to sigmaa 
This class implements the target function for calculating sigma_a. Required is a datalist containing Eo, Ec.
It actually refines omegaa = sigmaa/(1sigmaa^2). This has better proerties for refinement. To get sigmaa use
sigmaa = ( sqrt( 4*omegaa^2 + 1 )  1 ) / ( 2*omegaa )
This is available as a static function:
sigmaa = targetfn.sigmaa( omegaa )
This version simplifies terms in Eo^2 and Ec^2 which should average out to 1 if the normalisation scheme is consistent with the sigmaa calc.
Convergence is good for calculations using the 'binner' basis function, however the smooth basis function have convergence problems. This is still under investigation.