Lines Matching refs:reduction
22 static int coincident_line(const Cubic& cubic, Cubic& reduction) { in coincident_line() argument
23 reduction[0] = reduction[1] = cubic[0]; in coincident_line()
27 static int vertical_line(const Cubic& cubic, ReduceOrder_Styles reduceStyle, Cubic& reduction) { in vertical_line() argument
29 reduction[0] = cubic[0]; in vertical_line()
30 reduction[1] = cubic[3]; in vertical_line()
34 int smaller = reduction[1].y > reduction[0].y; in vertical_line()
39 if (reduction[smaller].y > yExtrema) { in vertical_line()
40 reduction[smaller].y = yExtrema; in vertical_line()
43 if (reduction[larger].y < yExtrema) { in vertical_line()
44 reduction[larger].y = yExtrema; in vertical_line()
50 static int horizontal_line(const Cubic& cubic, ReduceOrder_Styles reduceStyle, Cubic& reduction) { in horizontal_line() argument
52 reduction[0] = cubic[0]; in horizontal_line()
53 reduction[1] = cubic[3]; in horizontal_line()
57 int smaller = reduction[1].x > reduction[0].x; in horizontal_line()
62 if (reduction[smaller].x > xExtrema) { in horizontal_line()
63 reduction[smaller].x = xExtrema; in horizontal_line()
66 if (reduction[larger].x < xExtrema) { in horizontal_line()
67 reduction[larger].x = xExtrema; in horizontal_line()
74 static int check_quadratic(const Cubic& cubic, Cubic& reduction) { in check_quadratic() argument
87 reduction[0] = cubic[0]; in check_quadratic()
88 reduction[1].x = midX; in check_quadratic()
89 reduction[1].y = midY; in check_quadratic()
90 reduction[2] = cubic[3]; in check_quadratic()
95 int minX, int maxX, int minY, int maxY, Cubic& reduction) { in check_linear() argument
109 reduction[0] = cubic[0]; in check_linear()
110 reduction[1] = cubic[3]; in check_linear()
153 reduction[replace] = extrema; in check_linear()
197 int reduceOrder(const Cubic& cubic, Cubic& reduction, ReduceOrder_Quadratics allowQuadratics, in reduceOrder() argument
237 return coincident_line(cubic, reduction); in reduceOrder()
239 return vertical_line(cubic, reduceStyle, reduction); in reduceOrder()
242 return horizontal_line(cubic, reduceStyle, reduction); in reduceOrder()
244 int result = check_linear(cubic, reduceStyle, minX, maxX, minY, maxY, reduction); in reduceOrder()
249 && (result = check_quadratic(cubic, reduction))) { in reduceOrder()
252 memcpy(reduction, cubic, sizeof(Cubic)); in reduceOrder()