| 2.1.17.8.15 ocmath_simple_math
 DescriptionPerform arithmatic operation element-wised on two curves
 Syntaxint ocmath_simple_math( UINT nSize, double * pX, double * pY, UINT nSrcSize1, const double * pSrcX1, const double * pSrcY1, UINT nSrcSize2, const double * pSrcX2, const double * pSrcY2, int nOperator = MATHTOOL_OPT_ADD, int nRange = MATHTOOL_RNG_CUV, int nMethod = INTERP_TYPE_LINEAR, double dSmoothingFactor = 0 ) Parameters nSize[input] the size of result curve pX[output] pointer to the x coordinates of result curve pY[output] pointer to the y coordinates of result curve nSrcSize1[input] the size of the first curve pSrcX1[input] pointer to the x coordinates of the first curve pSrcY1[input] pointer to the y coordinates of the first curve nSrcSize2[input] the size of the second curve pSrcX2[input] pointer to the x coordinates of the second curve pSrcY2[input] pointer to the y coordinates of the second curve nOperator[input] the operation between the two input curveMATHTOOL_OPT_ADD		add operationMATHTOOL_OPT_SUB		subtract operationMATHTOOL_OPT_DIV		divide operationMATHTOOL_OPT_MUL		multiply operationMATHTOOL_OPT_EXP		exponent operation nRange[input] the range to perform the operation onMATHTOOL_RNG_CUV		perform the operation on entire curvesMATHTOOL_RNG_COM		perform the operation on common x coordinatesMATHTOOL_RNG_UD			reserved for future nMethod[input] interpolating method, only available when use MATHTOOL_RNG_CUV.INTERP_TYPE_LINEAR(linear interpolation),INTERP_TYPE_SPLINE(cubic spline interpolation with not-a-knot boundary condition, and the not-a-knot boundary condition assume that the 3rd order derivative are continuous on the 2nd and last 2nd points),INTERP_TYPE_BSPLINE(B-Spline curve fitting using method by Dierckx.P) dSmoothingFactor[input] This argument specifies the closeness to the original data, only available when nMethod = INTERP_TYPE_BSPLINE. dSmoothingFactor >= 0.By means of this parameter, the user can control the tradeoff between closeness of fit and smoothness of fit of the approximation.If dSmoothingFactor is too large, the spline will be too smooth and signal will be lost ; if it is too small the spline will pick up too much noise.In the extreme cases the program will return an interpolating spline if  dSmoothingFactor=0 and the weighted least-squares polynomial of degree 3 if s is very large.
 ReturnReturn OE_NOERROR if succeed, otherwise, non-zero error code is returned.
 ExamplesEX1
 //Assume there is a workbook named "Book1" in the current project
void ocmath_simple_math_ex1()
{
    Worksheet wks("Book1");
    vector vA, vB, vC;
    
    vA.Data(0.0, 6.0, 0.03);
    int iCount = vA.GetSize();
    vB.SetSize(iCount);
    vC.SetSize(iCount);
    
    for( int ii=0; ii<iCount; ii++ )
    {
        vB[ii] = sin(vA[ii]);
        vC[ii] = cos(vA[ii]);
    }
    Dataset dsX(wks, 0);
    Dataset dsY(wks, 1);
    dsX.SetSize(iCount);
    dsY.SetSize(iCount);
    vector vx(iCount);
    vector vy(iCount);
    ocmath_simple_math(iCount, vx, vy, iCount, vA, vB, iCount, vA, vC, MATHTOOL_OPT_ADD);
    dsX = vx;
    dsY = vy;
}RemarkSee AlsoHeader to Includeorigin.h
 Reference |