351 int64_t overflowSize, i, i1 = 0, i2 = 0, n1 = ptwXY1->
length, n2 = ptwXY2->
length, length;
354 double x1 = 0., x2 = 0., y1 = 0., y2 = 0., y, biSectionMax, accuracy;
366 if( ( n1 == 1 ) || ( n2 == 1 ) ) {
376 if( fillWithFirst ) {
377 if( i1 < ( ptwXY1->
length - 1 ) ) {
412 length = ( n1 - i1 ) + ( n2 - i2 );
415 if( biSectionMax < ptwXY2->biSectionMax ) biSectionMax = ptwXY2->
biSectionMax;
417 if( accuracy < ptwXY2->accuracy ) accuracy = ptwXY2->
accuracy;
419 if( n == NULL )
return( NULL );
421 for( i = 0; ( i1 < n1 ) && ( i2 < n2 ); i++ ) {
425 if( fillWithFirst ) {
427 if( i1 < ( ptwXY1->
length - 1 ) ) {
441 if( fillWithFirst && ( ( y1 != 0. ) || ( y2 != 0. ) ) ) {
453 for( ; i1 < n1; i1++, i++ ) {
455 if( fillWithFirst ) y = ptwXY1->
points[i1].
y;
458 for( ; i2 < n2; i2++, i++ ) {
460 if( fillWithFirst && trim && ( n->
points[i].
x <= x2 ) ) {
ptwXY_interpolation interpolation
nfu_status ptwXY_interpolatePoint(ptwXY_interpolation interpolation, double x, double *y, double x1, double y1, double x2, double y2)
ptwXYPoints * ptwXY_free(ptwXYPoints *ptwXY)
#define ptwXY_union_mergeClosePoints
ptwXYPoints * ptwXY_new(ptwXY_interpolation interpolation, ptwXY_interpolationOtherInfo const *interpolationOtherInfo, double biSectionMax, double accuracy, int64_t primarySize, int64_t secondarySize, nfu_status *status, int userFlag)
int64_t overflowAllocatedSize
nfu_status ptwXY_simpleCoalescePoints(ptwXYPoints *ptwXY)
nfu_status ptwXY_mergeClosePoints(ptwXYPoints *ptwXY, double epsilon)
#define ptwXY_minimumSize