[graphite] Various flatten fixes

* Simplify the parabolic arc-length scale calculation to compute
  (cross * cross) / (std::sqrt(ddSq) * ddSq).

* Mask out the sign bit in is_finite_simd before comparing against the
  floating-point infinity exponent bit pattern, ensuring negative
  infinities and NaNs are correctly rejected.

* Zero out the starting arc-length integral (a0) and integral delta
  (da) when handling collinear segments, preventing invalid or stale
  integral parameters from propagating downstream.

* Pad the fOddPts off-curve control points array by four elements to
  match fEvenPts.

Bug: b/466122293
Bug: b/466119734
Bug: b/385170952
Change-Id: I71cda74e87d02e667585b01b73565a35710dcb75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1375977
Commit-Queue: Thomas Smith <thomsmit@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
3 files changed