func funcDeriv(vals []Value, args Expressions, enh *EvalNodeHelper) Vector {
	mat := vals[0].(Matrix)

	for _, samples := range mat {
		// No sense in trying to compute a derivative without at least two points.
		// Drop this Vector element.
		if len(samples.Points) < 2 {
			continue
		}

		// We pass in an arbitrary timestamp that is near the values in use
		// to avoid floating point accuracy issues, see
		// https://github.com/prometheus/prometheus/issues/2674
		slope, _ := linearRegression(samples.Points, samples.Points[0].T)
		enh.out = append(enh.out, Sample{
			Point: Point{V: slope},
		})
	}
	return enh.out
}
func funcDeriv(vals []Value, args Expressions, enh *EvalNodeHelper) Vector {
	mat := vals[0].(Matrix)

	for _, samples := range mat {
		
		
		if len(samples.Points) < 2 {
			continue
		}

		
		
		
		slope, _ := linearRegression(samples.Points, samples.Points[0].T)
		enh.out = append(enh.out, Sample{
			Point: Point{V: slope},
		})
	}
	return enh.out
}
func funcDeriv ( vals [ ] Value , args Expressions , enh * EvalNodeHelper ) Vector { mat := vals [ 0 ] . ( Matrix ) for _ , samples := range mat { // No sense in trying to compute a derivative without at least two points. // Drop this Vector element. if len ( samples . Points ) < 2 { continue } // We pass in an arbitrary timestamp that is near the values in use // to avoid floating point accuracy issues, see // https://github.com/prometheus/prometheus/issues/2674 slope , _ := linearRegression ( samples . Points , samples . Points [ 0 ] . T ) enh . out = append ( enh . out , Sample { Point : Point { V : slope } , } ) } return enh . out }
// === deriv(node ValueTypeMatrix) Vector ===
=== deriv ( node ValueTypeMatrix ) Vector ===