private List<Double> extractTangents(List<Point> points) {
    if (points.size() < 2) {
      return new ArrayList<>();
    }
    List<Double> tangents = new ArrayList<>();
    tangents.add(tangent(points.get(0), points.get(1)));
    for (int i = 1; i < points.size(); i++) {
      tangents.add(tangent(points.get(i - 1), points.get(i)));
    }
    return tangents;
  }
Extract the tangents of a set of points

@return *[] array of tangents: the first tangent is related to the first and second point the
    second is related to the second and the first the third is related to the third and the
    second ...
library-udf/src/main/java/org/apache/iotdb/library/match/PatternExecutor.java