func Sem(tsr etensor.Tensor) float64 {
	cnt := Count(tsr)
	if cnt < 2 {
		return 0
	}
	return Std(tsr) / math.Sqrt(cnt)
}
Sem returns the sample standard error of the mean of non-Null, non-NaN elements in given Tensor.
package tsragg
import (
	"math"
	"github.com/emer/etable/agg"
	"github.com/emer/etable/etensor"
)
func Count(tsr etensor.Tensor) float64 {
	return tsr.Agg(0, agg.CountFunc)
}
func Sum(tsr etensor.Tensor) float64 {
	return tsr.Agg(0, agg.SumFunc)
}
func Prod(tsr etensor.Tensor) float64 {
	return tsr.Agg(0, agg.ProdFunc)
}
func Max(tsr etensor.Tensor) float64 {
	return tsr.Agg(-math.MaxFloat64, agg.MaxFunc)
}
func Min(tsr etensor.Tensor) float64 {
	return tsr.Agg(math.MaxFloat64, agg.MinFunc)
}
func Mean(tsr etensor.Tensor) float64 {
	cnt := Count(tsr)
	if cnt == 0 {
		return 0
	}
	return Sum(tsr) / cnt
}
func Var(tsr etensor.Tensor) float64 {
	cnt := Count(tsr)
	if cnt < 2 {
		return 0
	}
	mean := Sum(tsr) / cnt
	vr := tsr.Agg(0, func(idx int, val float64, agg float64) float64 {
		dv := val - mean
		return agg + dv*dv
	})
	return vr / (cnt - 1)
}
func Std(tsr etensor.Tensor) float64 {
	return math.Sqrt(Var(tsr))
}