#pragma numlittype(push, TRUE)
#include <origin.h>

// Add your special include files here.
// For example, if you want to use functions from the NAG library, 
// add the header file for the NAG functions here.

// Add code here for other Origin C functions that you want to define in this file,
// and access in your parameter initialization.

// You can access C functions defined in other files, if those files are loaded and compiled 
// in your workspace, and the functions have been prototyped in a header file that you have 
// included above. 
	
// You can access NLSF object methods and properties directly in your function code.
// You should follow C-language syntax in defining your function. 
// For instance, if your parameter name is P1, you cannot use p1 in your function code. 
// When using fractions, remember that integer division such as 1/2 is equal to 0, and not 0.5
// Use 0.5 or 1/2.0 to get the correct value.

// For more information and examples, please refer to the "User-Defined Fitting Function" 
// section of the Origin Help file.


//----------------------------------------------------------
// 
void _nlsfParamGaussAmp(
// Fit Parameter(s):
double& y0, double& xc, double& w, double& A,
// Independent Dataset(s):
vector& x_data,
// Dependent Dataset(s):
vector& y_data,
// Curve(s):
Curve x_y_curve,
// Auxilary error code: 
int& nErr)
{
	// Beginning of editable part
	sort(x_y_curve);
	//smooth(x_y_curve, 2);
	y0 = yatxmin( x_y_curve );
	w = 0.42 * fwhm( x_y_curve, y0 );
	if ( max(y_data)>y0 )
	{ 
	   xc = xatymax( x_y_curve );
	   A = max( y_data ) - y0;
	}
	else
	{ 
	   xc = xatymin( x_y_curve );
	   A = min( y_data ) - y0;
	}
	// End of editable part
}