diff --git a/benchmark/csharp/Tpch/Tpch.csproj b/benchmark/csharp/Tpch/Tpch.csproj index 7985a31b0..815dca6f3 100644 --- a/benchmark/csharp/Tpch/Tpch.csproj +++ b/benchmark/csharp/Tpch/Tpch.csproj @@ -2,7 +2,7 @@ Exe - net461;netcoreapp3.1 + netcoreapp3.1 netcoreapp3.1 Tpch Tpch @@ -11,7 +11,6 @@ - @@ -21,16 +20,7 @@ true - - - - - - - - - - + diff --git a/benchmark/csharp/Tpch/TpchFunctionalQueries.cs b/benchmark/csharp/Tpch/TpchFunctionalQueries.cs index cb53fdabd..6a965476b 100644 --- a/benchmark/csharp/Tpch/TpchFunctionalQueries.cs +++ b/benchmark/csharp/Tpch/TpchFunctionalQueries.cs @@ -60,14 +60,8 @@ internal void Q1() .Show(); } - internal void Q1v() - { - Func discPrice = VectorUdf( - (price, discount) => VectorFunctions.ComputeDiscountPrice(price, discount)); - - Func total = VectorUdf( - (price, discount, tax) => VectorFunctions.ComputeTotal(price, discount, tax)); - + internal void Q1aCommon(Func discPrice, Func total) + { _lineitem.Filter(Col("l_shipdate") <= "1998-09-02") .GroupBy(Col("l_returnflag"), Col("l_linestatus")) .Agg(Sum(Col("l_quantity")).As("sum_qty"), Sum(Col("l_extendedprice")).As("sum_base_price"), @@ -82,6 +76,28 @@ internal void Q1v() .Show(); } + internal void Q1a() + { + Func discPrice = VectorUdf( + (price, discount) => VectorFunctions.ComputeDiscountPrice(price, discount)); + + Func total = VectorUdf( + (price, discount, tax) => VectorFunctions.ComputeTotal(price, discount, tax)); + + Q1aCommon(discPrice, total); + } + + internal void Q1ha() + { + Func discPrice = VectorUdf( + (price, discount) => VectorFunctionsIntrinsics.ComputeDiscountPrice(price, discount)); + + Func total = VectorUdf( + (price, discount, tax) => VectorFunctionsIntrinsics.ComputeTotal(price, discount, tax)); + + Q1aCommon(discPrice, total); + } + internal void Q2() { DataFrame europe = _region.Filter(Col("r_name") == "EUROPE") @@ -227,12 +243,9 @@ internal void Q8() .Show(); } - internal void Q8v() + internal void Q8aCommon(Func discPrice) { - Func getYear = Udf(x => x.Substring(0, 4)); - Func discPrice = VectorUdf( - (price, discount) => VectorFunctions.ComputeDiscountPrice(price, discount)); - + Func getYear = Udf(x => x.Substring(0, 4)); Func isBrazil = Udf((x, y) => x == "BRAZIL" ? y : 0); DataFrame fregion = _region.Filter(Col("r_name") == "AMERICA"); @@ -261,6 +274,20 @@ internal void Q8v() .Show(); } + internal void Q8a() + { + Func discPrice = VectorUdf( + (price, discount) => VectorFunctions.ComputeDiscountPrice(price, discount)); + Q8aCommon(discPrice); + } + + internal void Q8ha() + { + Func discPrice = VectorUdf( + (price, discount) => VectorFunctionsIntrinsics.ComputeDiscountPrice(price, discount)); + Q8aCommon(discPrice); + } + internal void Q9() { Func getYear = Udf(x => x.Substring(0, 4)); diff --git a/benchmark/csharp/Tpch/VectorFunctions.intrinsics.cs b/benchmark/csharp/Tpch/VectorFunctions.intrinsics.cs index e63849a3b..9a709c2ed 100644 --- a/benchmark/csharp/Tpch/VectorFunctions.intrinsics.cs +++ b/benchmark/csharp/Tpch/VectorFunctions.intrinsics.cs @@ -9,7 +9,7 @@ namespace Tpch { - internal static class VectorFunctions + internal static class VectorFunctionsIntrinsics { internal static unsafe DoubleArray ComputeTotal(DoubleArray price, DoubleArray discount, DoubleArray tax) {