From 3c6c0754b3f36448fe9ac876c53a148c9e109d96 Mon Sep 17 00:00:00 2001 From: Jorge Leitao Date: Wed, 29 Sep 2021 16:05:20 +0100 Subject: [PATCH] Removed one nest. (#461) --- benches/arithmetic_kernels.rs | 4 ++-- src/compute/arithmetics/basic/add.rs | 16 +++++++------- src/compute/arithmetics/basic/div.rs | 8 +++---- src/compute/arithmetics/basic/mod.rs | 26 +++++++++++++++++------ src/compute/arithmetics/basic/mul.rs | 16 +++++++------- src/compute/arithmetics/basic/pow.rs | 4 ++-- src/compute/arithmetics/basic/rem.rs | 8 +++---- src/compute/arithmetics/basic/sub.rs | 16 +++++++------- src/compute/arithmetics/mod.rs | 20 ++++++++--------- tests/it/compute/aggregate/sum.rs | 2 +- tests/it/compute/arithmetics/basic/add.rs | 2 +- tests/it/compute/arithmetics/basic/div.rs | 2 +- tests/it/compute/arithmetics/basic/mul.rs | 2 +- tests/it/compute/arithmetics/basic/pow.rs | 2 +- tests/it/compute/arithmetics/basic/rem.rs | 2 +- tests/it/compute/arithmetics/basic/sub.rs | 2 +- 16 files changed, 72 insertions(+), 60 deletions(-) diff --git a/benches/arithmetic_kernels.rs b/benches/arithmetic_kernels.rs index 855850b6f98..ce940c32e24 100644 --- a/benches/arithmetic_kernels.rs +++ b/benches/arithmetic_kernels.rs @@ -5,8 +5,8 @@ use criterion::Criterion; use arrow2::array::*; use arrow2::util::bench_util::*; use arrow2::{ - compute::arithmetics::basic::add::add, compute::arithmetics::basic::div::div_scalar, - datatypes::DataType, types::NativeType, + compute::arithmetics::basic::add, compute::arithmetics::basic::div_scalar, datatypes::DataType, + types::NativeType, }; use num_traits::NumCast; use std::ops::{Add, Div}; diff --git a/src/compute/arithmetics/basic/add.rs b/src/compute/arithmetics/basic/add.rs index d43113e3d06..48ce1d01eee 100644 --- a/src/compute/arithmetics/basic/add.rs +++ b/src/compute/arithmetics/basic/add.rs @@ -23,7 +23,7 @@ use crate::{ /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::add; +/// use arrow2::compute::arithmetics::basic::add; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([None, Some(6), None, Some(6)]); @@ -50,7 +50,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::checked_add; +/// use arrow2::compute::arithmetics::basic::checked_add; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([Some(100i8), Some(100i8), Some(100i8)]); @@ -80,7 +80,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::saturating_add; +/// use arrow2::compute::arithmetics::basic::saturating_add; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([Some(100i8)]); @@ -114,7 +114,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::overflowing_add; +/// use arrow2::compute::arithmetics::basic::overflowing_add; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([Some(1i8), Some(100i8)]); @@ -194,7 +194,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::add_scalar; +/// use arrow2::compute::arithmetics::basic::add_scalar; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([None, Some(6), None, Some(6)]); @@ -216,7 +216,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::checked_add_scalar; +/// use arrow2::compute::arithmetics::basic::checked_add_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[None, Some(100), None, Some(100)]); @@ -240,7 +240,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::saturating_add_scalar; +/// use arrow2::compute::arithmetics::basic::saturating_add_scalar; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([Some(100i8)]); @@ -265,7 +265,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::add::overflowing_add_scalar; +/// use arrow2::compute::arithmetics::basic::overflowing_add_scalar; /// use arrow2::array::PrimitiveArray; /// /// let a = PrimitiveArray::from([Some(1i8), Some(100i8)]); diff --git a/src/compute/arithmetics/basic/div.rs b/src/compute/arithmetics/basic/div.rs index 5632847cfe9..481053dd234 100644 --- a/src/compute/arithmetics/basic/div.rs +++ b/src/compute/arithmetics/basic/div.rs @@ -22,7 +22,7 @@ use strength_reduce::{ /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::div::div; +/// use arrow2::compute::arithmetics::basic::div; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[Some(10), Some(1), Some(6)]); @@ -64,7 +64,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::div::checked_div; +/// use arrow2::compute::arithmetics::basic::checked_div; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8), Some(10i8)]); @@ -117,7 +117,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::div::div_scalar; +/// use arrow2::compute::arithmetics::basic::div_scalar; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[None, Some(6), None, Some(6)]); @@ -200,7 +200,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::div::checked_div_scalar; +/// use arrow2::compute::arithmetics::basic::checked_div_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8)]); diff --git a/src/compute/arithmetics/basic/mod.rs b/src/compute/arithmetics/basic/mod.rs index 7ce27f29939..95d4ff4e0e1 100644 --- a/src/compute/arithmetics/basic/mod.rs +++ b/src/compute/arithmetics/basic/mod.rs @@ -1,7 +1,19 @@ -//! Defines the arithmetic kernels for `PrimitiveArrays`. -pub mod add; -pub mod div; -pub mod mul; -pub mod pow; -pub mod rem; -pub mod sub; +//! Contains arithemtic functions for [`PrimitiveArray`](crate::array::PrimitiveArray)s. +//! +//! Each operation has four variants, like the rest of Rust's ecosystem: +//! * usual, that [`panic!`]s on overflow +//! * `checked_*` that turns overflowings to `None` +//! * `overflowing_*` returning a [`Bitmap`](crate::bitmap::Bitmap) with items that overflow. +//! * `saturating_*` that saturates the result. +mod add; +pub use add::*; +mod div; +pub use div::*; +mod mul; +pub use mul::*; +mod pow; +pub use pow::*; +mod rem; +pub use rem::*; +mod sub; +pub use sub::*; diff --git a/src/compute/arithmetics/basic/mul.rs b/src/compute/arithmetics/basic/mul.rs index bbe8c3ee4b2..2cb22edf60e 100644 --- a/src/compute/arithmetics/basic/mul.rs +++ b/src/compute/arithmetics/basic/mul.rs @@ -23,7 +23,7 @@ use crate::{ /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::mul; +/// use arrow2::compute::arithmetics::basic::mul; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[None, Some(6), None, Some(6)]); @@ -51,7 +51,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::checked_mul; +/// use arrow2::compute::arithmetics::basic::checked_mul; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(100i8), Some(100i8), Some(100i8)]); @@ -81,7 +81,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::saturating_mul; +/// use arrow2::compute::arithmetics::basic::saturating_mul; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8)]); @@ -115,7 +115,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::overflowing_mul; +/// use arrow2::compute::arithmetics::basic::overflowing_mul; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(1i8), Some(-100i8)]); @@ -194,7 +194,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::mul_scalar; +/// use arrow2::compute::arithmetics::basic::mul_scalar; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[None, Some(6), None, Some(6)]); @@ -216,7 +216,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::checked_mul_scalar; +/// use arrow2::compute::arithmetics::basic::checked_mul_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[None, Some(100), None, Some(100)]); @@ -240,7 +240,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::saturating_mul_scalar; +/// use arrow2::compute::arithmetics::basic::saturating_mul_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8)]); @@ -265,7 +265,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::mul::overflowing_mul_scalar; +/// use arrow2::compute::arithmetics::basic::overflowing_mul_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(1i8), Some(100i8)]); diff --git a/src/compute/arithmetics/basic/pow.rs b/src/compute/arithmetics/basic/pow.rs index f1e2efbf9ca..0782619f880 100644 --- a/src/compute/arithmetics/basic/pow.rs +++ b/src/compute/arithmetics/basic/pow.rs @@ -12,7 +12,7 @@ use crate::{ /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::pow::powf_scalar; +/// use arrow2::compute::arithmetics::basic::powf_scalar; /// use arrow2::array::Float32Array; /// /// let a = Float32Array::from(&[Some(2f32), None]); @@ -33,7 +33,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::pow::checked_powf_scalar; +/// use arrow2::compute::arithmetics::basic::checked_powf_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(1i8), None, Some(7i8)]); diff --git a/src/compute/arithmetics/basic/rem.rs b/src/compute/arithmetics/basic/rem.rs index a087f1fd8da..d2601c44992 100644 --- a/src/compute/arithmetics/basic/rem.rs +++ b/src/compute/arithmetics/basic/rem.rs @@ -21,7 +21,7 @@ use strength_reduce::{ /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::rem::rem; +/// use arrow2::compute::arithmetics::basic::rem; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[Some(10), Some(7)]); @@ -49,7 +49,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::rem::checked_rem; +/// use arrow2::compute::arithmetics::basic::checked_rem; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8), Some(10i8)]); @@ -100,7 +100,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::rem::rem_scalar; +/// use arrow2::compute::arithmetics::basic::rem_scalar; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[None, Some(6), None, Some(7)]); @@ -184,7 +184,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::rem::checked_rem_scalar; +/// use arrow2::compute::arithmetics::basic::checked_rem_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8)]); diff --git a/src/compute/arithmetics/basic/sub.rs b/src/compute/arithmetics/basic/sub.rs index 7fae4258b6a..5f0cf7d8521 100644 --- a/src/compute/arithmetics/basic/sub.rs +++ b/src/compute/arithmetics/basic/sub.rs @@ -23,7 +23,7 @@ use crate::{ /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::sub; +/// use arrow2::compute::arithmetics::basic::sub; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[None, Some(6), None, Some(6)]); @@ -50,7 +50,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::checked_sub; +/// use arrow2::compute::arithmetics::basic::checked_sub; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(100i8), Some(-100i8), Some(100i8)]); @@ -80,7 +80,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::saturating_sub; +/// use arrow2::compute::arithmetics::basic::saturating_sub; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8)]); @@ -114,7 +114,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::overflowing_sub; +/// use arrow2::compute::arithmetics::basic::overflowing_sub; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(1i8), Some(-100i8)]); @@ -194,7 +194,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::sub_scalar; +/// use arrow2::compute::arithmetics::basic::sub_scalar; /// use arrow2::array::Int32Array; /// /// let a = Int32Array::from(&[None, Some(6), None, Some(6)]); @@ -216,7 +216,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::checked_sub_scalar; +/// use arrow2::compute::arithmetics::basic::checked_sub_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[None, Some(-100), None, Some(-100)]); @@ -240,7 +240,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::saturating_sub_scalar; +/// use arrow2::compute::arithmetics::basic::saturating_sub_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(-100i8)]); @@ -265,7 +265,7 @@ where /// /// # Examples /// ``` -/// use arrow2::compute::arithmetics::basic::sub::overflowing_sub_scalar; +/// use arrow2::compute::arithmetics::basic::overflowing_sub_scalar; /// use arrow2::array::Int8Array; /// /// let a = Int8Array::from(&[Some(1i8), Some(-100i8)]); diff --git a/src/compute/arithmetics/mod.rs b/src/compute/arithmetics/mod.rs index 8475055b771..99378716cab 100644 --- a/src/compute/arithmetics/mod.rs +++ b/src/compute/arithmetics/mod.rs @@ -250,11 +250,11 @@ where + Rem, { match op { - Operator::Add => basic::add::add(lhs, rhs), - Operator::Subtract => basic::sub::sub(lhs, rhs), - Operator::Multiply => basic::mul::mul(lhs, rhs), - Operator::Divide => basic::div::div(lhs, rhs), - Operator::Remainder => basic::rem::rem(lhs, rhs), + Operator::Add => basic::add(lhs, rhs), + Operator::Subtract => basic::sub(lhs, rhs), + Operator::Multiply => basic::mul(lhs, rhs), + Operator::Divide => basic::div(lhs, rhs), + Operator::Remainder => basic::rem(lhs, rhs), } } @@ -275,11 +275,11 @@ where + NumCast, { match op { - Operator::Add => Ok(basic::add::add_scalar(lhs, rhs)), - Operator::Subtract => Ok(basic::sub::sub_scalar(lhs, rhs)), - Operator::Multiply => Ok(basic::mul::mul_scalar(lhs, rhs)), - Operator::Divide => Ok(basic::div::div_scalar(lhs, rhs)), - Operator::Remainder => Ok(basic::rem::rem_scalar(lhs, rhs)), + Operator::Add => Ok(basic::add_scalar(lhs, rhs)), + Operator::Subtract => Ok(basic::sub_scalar(lhs, rhs)), + Operator::Multiply => Ok(basic::mul_scalar(lhs, rhs)), + Operator::Divide => Ok(basic::div_scalar(lhs, rhs)), + Operator::Remainder => Ok(basic::rem_scalar(lhs, rhs)), } } diff --git a/tests/it/compute/aggregate/sum.rs b/tests/it/compute/aggregate/sum.rs index 1ad77afc086..56c93624a0e 100644 --- a/tests/it/compute/aggregate/sum.rs +++ b/tests/it/compute/aggregate/sum.rs @@ -46,7 +46,7 @@ fn test_primitive_array_sum_large_64() { .map(|i| if i % 3 == 0 { Some(0) } else { Some(i) }) .collect(); // create an array that actually has non-zero values at the invalid indices - let c = arithmetics::basic::add::add(&a, &b).unwrap(); + let c = arithmetics::basic::add(&a, &b).unwrap(); assert_eq!( Some((1..=100).filter(|i| i % 3 == 0).sum()), sum_primitive(&c) diff --git a/tests/it/compute/arithmetics/basic/add.rs b/tests/it/compute/arithmetics/basic/add.rs index aa563cbbe47..32ccb5a0230 100644 --- a/tests/it/compute/arithmetics/basic/add.rs +++ b/tests/it/compute/arithmetics/basic/add.rs @@ -1,6 +1,6 @@ use arrow2::array::*; use arrow2::bitmap::Bitmap; -use arrow2::compute::arithmetics::basic::add::*; +use arrow2::compute::arithmetics::basic::*; use arrow2::compute::arithmetics::{ ArrayAdd, ArrayCheckedAdd, ArrayOverflowingAdd, ArraySaturatingAdd, }; diff --git a/tests/it/compute/arithmetics/basic/div.rs b/tests/it/compute/arithmetics/basic/div.rs index 98500dfbc05..6fd00c7bf4f 100644 --- a/tests/it/compute/arithmetics/basic/div.rs +++ b/tests/it/compute/arithmetics/basic/div.rs @@ -1,5 +1,5 @@ use arrow2::array::*; -use arrow2::compute::arithmetics::basic::div::*; +use arrow2::compute::arithmetics::basic::*; use arrow2::compute::arithmetics::{ArrayCheckedDiv, ArrayDiv}; #[test] diff --git a/tests/it/compute/arithmetics/basic/mul.rs b/tests/it/compute/arithmetics/basic/mul.rs index fa3ba7e8e73..5c2b8e57a58 100644 --- a/tests/it/compute/arithmetics/basic/mul.rs +++ b/tests/it/compute/arithmetics/basic/mul.rs @@ -1,6 +1,6 @@ use arrow2::array::*; use arrow2::bitmap::Bitmap; -use arrow2::compute::arithmetics::basic::mul::*; +use arrow2::compute::arithmetics::basic::*; use arrow2::compute::arithmetics::{ ArrayCheckedMul, ArrayMul, ArrayOverflowingMul, ArraySaturatingMul, }; diff --git a/tests/it/compute/arithmetics/basic/pow.rs b/tests/it/compute/arithmetics/basic/pow.rs index f73d0db5fee..e6ce52b03fb 100644 --- a/tests/it/compute/arithmetics/basic/pow.rs +++ b/tests/it/compute/arithmetics/basic/pow.rs @@ -1,5 +1,5 @@ use arrow2::array::*; -use arrow2::compute::arithmetics::basic::pow::*; +use arrow2::compute::arithmetics::basic::*; #[test] fn test_raise_power_scalar() { diff --git a/tests/it/compute/arithmetics/basic/rem.rs b/tests/it/compute/arithmetics/basic/rem.rs index 1001d9fe8c6..e5a487b4f16 100644 --- a/tests/it/compute/arithmetics/basic/rem.rs +++ b/tests/it/compute/arithmetics/basic/rem.rs @@ -1,5 +1,5 @@ use arrow2::array::*; -use arrow2::compute::arithmetics::basic::rem::*; +use arrow2::compute::arithmetics::basic::*; use arrow2::compute::arithmetics::{ArrayCheckedRem, ArrayRem}; #[test] diff --git a/tests/it/compute/arithmetics/basic/sub.rs b/tests/it/compute/arithmetics/basic/sub.rs index 53e15dad932..5c638c6e596 100644 --- a/tests/it/compute/arithmetics/basic/sub.rs +++ b/tests/it/compute/arithmetics/basic/sub.rs @@ -1,6 +1,6 @@ use arrow2::array::*; use arrow2::bitmap::Bitmap; -use arrow2::compute::arithmetics::basic::sub::*; +use arrow2::compute::arithmetics::basic::*; use arrow2::compute::arithmetics::{ ArrayCheckedSub, ArrayOverflowingSub, ArraySaturatingSub, ArraySub, };