package com.github.lwhite1.tablesaw.reducing; import com.github.lwhite1.tablesaw.api.DoubleColumn; import com.github.lwhite1.tablesaw.api.FloatColumn; import com.github.lwhite1.tablesaw.api.IntColumn; import com.github.lwhite1.tablesaw.api.LongColumn; import com.github.lwhite1.tablesaw.api.ShortColumn; /** * Functions that calculate values over the data of an entire column, such as sum, mean, std. dev, etc. */ public interface NumericReduceFunction { String functionName(); double reduce(double[] data); default double reduce(FloatColumn data) { return this.reduce(data.toDoubleArray()); } default double reduce(DoubleColumn doubles) { return this.reduce(doubles.toDoubleArray()); } default double reduce(IntColumn data) { return this.reduce(data.toDoubleArray()); } default double reduce(ShortColumn data) { return this.reduce(data.toDoubleArray()); } default double reduce(LongColumn data) { return this.reduce(data.toDoubleArray()); } }