Exemple #1
0
///60. Several Pearson VII
double Mult_Pearson7(const double& X, const int& Nb_peak, const vec& Mean, const vec &Inv_Width, const vec& Shape, const vec& Max){
	double result = 0.;
	  	
	for (int i = 0; i < Nb_peak; i++) {
		assert(Shape(i)>0);
		result += Pearson7(X, Mean(i), Inv_Width(i), Shape(i), Max(i));
	}
	return result;
}
Exemple #2
0
//-------------------------------------------------------------
double peak::get_density_ODF(const double &theta)
//-------------------------------------------------------------
{
    
    switch (method) {
        case 1: {
            return ODF_sd(theta, mean, params);
            break;
        }
        case 2: {
            return ODF_hard(theta, mean, s_dev, ampl) + ODF_hard(theta - pi, mean, s_dev, ampl) + ODF_hard(theta + pi, mean, s_dev, ampl);
            break;
        }
        case 3: {
            return Gaussian(theta, mean, s_dev, ampl) + Gaussian(theta - pi, mean, s_dev, ampl) + Gaussian(theta + pi, mean, s_dev, ampl);
            break;
        }
        case 4: {
            return Lorentzian(theta, mean, width, ampl) + Lorentzian(theta - pi, mean, width, ampl) + Lorentzian(theta + pi, mean, width, ampl);
            break;
        }
        case 5: {
            return PseudoVoigt(theta, mean, s_dev, width, ampl, params) + PseudoVoigt(theta - pi, mean, s_dev, width, ampl, params) + PseudoVoigt(theta + pi, mean, s_dev, width, ampl, params);
            break;
        }
        case 6: {
            assert(width > 0.);
            double inv_width = 1./width;
            return Pearson7(theta, mean, inv_width, params) + Pearson7(theta - pi, mean, inv_width, params) + Pearson7(theta + pi, mean, inv_width, params);
            break;
        }
        case 7: {
            return 1.;
            break;
        }
        default : {
            cout << "Error: The peak type specified is not recognized" << endl;
            return 0;
            break;            
        }
    }
}