17 theLabel(aLabel), theValue(aValue), thePrecision(aPrec), theDownWeight(
18 1.), thePrediction(0.), theParameters(), theDerivatives(), globalLabels(), globalDerivatives() {
39 const std::vector<unsigned int> &labDer,
const SMatrix55 &matDer,
40 unsigned int iOff,
const TMatrixD &derLocal,
41 const std::vector<int> &labGlobal,
const TMatrixD &derGlobal,
42 unsigned int extOff,
const TMatrixD &extDer) {
44 unsigned int nParMax = 5 + derLocal.GetNcols() + extDer.GetNcols();
48 for (
int i = 0; i < derLocal.GetNcols(); ++i)
50 if (derLocal(iRow - iOff, i)) {
56 for (
int i = 0; i < extDer.GetNcols(); ++i)
58 if (extDer(iRow - iOff, i)) {
64 for (
unsigned int i = 0; i < 5; ++i)
66 if (labDer[i] and matDer(iRow, i)) {
73 for (
int i = 0; i < derGlobal.GetNcols(); ++i)
87 const std::vector<unsigned int> &labDer,
const SMatrix27 &matDer,
88 unsigned int extOff,
const TMatrixD &extDer) {
90 unsigned int nParMax = 7 + extDer.GetNcols();
94 for (
int i = 0; i < extDer.GetNcols(); ++i)
96 if (extDer(iRow, i)) {
102 for (
unsigned int i = 0; i < 7; ++i)
104 if (labDer[i] and matDer(iRow, i)) {
118 const std::vector<double> &derivatives) {
119 for (
unsigned int i = 0; i < derivatives.size(); ++i)
121 if (derivatives[i]) {
147 if (scaledResidual < 4.6851) {
148 aWeight = (1.0 - 0.045558 * scaledResidual * scaledResidual);
153 }
else if (aMethod == 2)
155 if (scaledResidual >= 1.345) {
156 aWeight = 1.345 / scaledResidual;
158 }
else if (aMethod == 3)
160 aWeight = 1.0 / (1.0 + (scaledResidual * scaledResidual / 5.6877));
184 std::cout << std::endl;
189 std::cout << std::endl;
200 std::vector<unsigned int>* &indLocal, std::vector<double>* &derLocal) {
218 std::vector<unsigned int>* &indLocal, std::vector<double>* &derLocal,
219 std::vector<int>* &labGlobal, std::vector<double>* &derGlobal) {
237 double &aDownWeight, std::vector<unsigned int>* &indLocal,
238 std::vector<double>* &derLocal) {