Skip to content

Commit

Permalink
cargo fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
alecmocatta committed Aug 1, 2020
1 parent 9a6965c commit c9f6989
Show file tree
Hide file tree
Showing 10 changed files with 92 additions and 86 deletions.
2 changes: 1 addition & 1 deletion amadeus-core/src/par_sink.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ mod histogram;
mod max;
mod pipe;
mod sample;
mod stats;
mod sum;
mod tuple;
mod stats;

use super::par_pipe::*;
use crate::{pipe::Sink, pool::ProcessSend};
Expand Down
5 changes: 3 additions & 2 deletions amadeus-core/src/par_sink/combine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ where
});
}
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}

#[derive(new)]
Expand Down
5 changes: 3 additions & 2 deletions amadeus-core/src/par_sink/combiner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ where
});
}
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
5 changes: 3 additions & 2 deletions amadeus-core/src/par_sink/count.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ impl<Item> FolderSync<Item> for CountFolder {
*state += 1;
}
#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
10 changes: 6 additions & 4 deletions amadeus-core/src/par_sink/fold.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,9 @@ where
fn push(&mut self, state: &mut Self::State, item: Item) {
replace_with_or_abort(state, |state| self.op.call_mut((state, Either::Left(item))))
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
impl<A, ID, F, Item> FolderSync<Item> for FoldFolder<A, ID, F, Item, StepB>
where
Expand All @@ -79,6 +80,7 @@ where
})
}
#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
3 changes: 1 addition & 2 deletions amadeus-core/src/par_sink/folder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@ pub trait FolderSync<Item> {

fn zero(&mut self) -> Self::State;
fn push(&mut self, state: &mut Self::State, item: Item);
fn done(&mut self, state: Self::State) -> Self::Done;

fn done(&mut self, state: Self::State) -> Self::Done;
}

#[derive(Educe, Serialize, Deserialize, new)]
Expand Down
15 changes: 9 additions & 6 deletions amadeus-core/src/par_sink/histogram.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@ where
fn push(&mut self, state: &mut Self::Done, item: Item) {
*state.entry(item).or_insert(0) += 1;
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
impl<B> FolderSync<HashMap<B, usize>> for HistogramFolder<B, StepB>
where
Expand Down Expand Up @@ -77,8 +78,9 @@ where
.collect()
})
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
impl<B> FolderSync<Vec<(B, usize)>> for HistogramFolder<B, StepB>
where
Expand Down Expand Up @@ -106,6 +108,7 @@ where
})
}
#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
15 changes: 9 additions & 6 deletions amadeus-core/src/par_sink/sample.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@ impl<Item> FolderSync<Item> for SampleUnstableFolder {
fn push(&mut self, state: &mut Self::State, item: Item) {
state.push(item, &mut thread_rng())
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}

#[derive(new)]
Expand Down Expand Up @@ -95,8 +96,9 @@ where
fn push(&mut self, state: &mut Self::State, item: Item) {
state.push(item, &1)
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}

#[derive(new)]
Expand Down Expand Up @@ -152,6 +154,7 @@ where
fn push(&mut self, state: &mut Self::State, item: (A, B)) {
state.push(item.0, &item.1)
}
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}
108 changes: 51 additions & 57 deletions amadeus-core/src/par_sink/stats.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,24 @@ extern crate num;

use derive_new::new;
use educe::Educe;
use num::ToPrimitive;
use serde::{Deserialize, Serialize};
use std::{iter, marker::PhantomData, mem};
use num::ToPrimitive;

use super::{
folder_par_sink, FolderSync, FolderSyncReducer, ParallelPipe, ParallelSink
};
use super::{folder_par_sink, FolderSync, FolderSyncReducer, ParallelPipe, ParallelSink};

#[derive(new)]
#[must_use]
pub struct Mean<P, B> {
pipe: P,
marker: PhantomData<fn() -> B>,
pipe: P,
marker: PhantomData<fn() -> B>,
}

impl_par_dist! {
impl<P: ParallelPipe<Item>, Item, B> ParallelSink<Item> for Mean<P, B>
where
B: iter::Sum<P::Output> + iter::Sum<B> + Send + 'static,
{
impl<P: ParallelPipe<Item>, Item, B> ParallelSink<Item> for Mean<P, B>
where
B: iter::Sum<P::Output> + iter::Sum<B> + Send + 'static,
{
folder_par_sink!(
MeanFolder<B, StepA>,
MeanFolder<B, StepB>,
Expand All @@ -37,72 +35,68 @@ impl_par_dist! {
#[serde(bound = "")]

pub struct MeanFolder<B, Step> {
marker: PhantomData<fn() -> (B, Step)>,
marker: PhantomData<fn() -> (B, Step)>,
}

pub struct StepA;
pub struct StepB;

impl<B, Item> FolderSync<Item> for MeanFolder<B, StepA>
where
B: iter::Sum<Item> + iter::Sum<B> + ToPrimitive,
B: iter::Sum<Item> + iter::Sum<B> + ToPrimitive,
{
type State = (B, usize);
type Done = f64;
type State = (B, usize);
type Done = f64;

#[inline(always)]
fn zero(&mut self) -> Self::State {
(iter::empty::<B>().sum(),0)
}
#[inline(always)]
fn zero(&mut self) -> Self::State {
(iter::empty::<B>().sum(), 0)
}

#[inline(always)]
#[inline(always)]
fn push(&mut self, state: &mut Self::State, item: Item) {
let zero = iter::empty::<B>().sum();
let left = mem::replace(&mut state.0, zero);
let right = iter::once(item).sum::<B>();

state.0 = B::sum(iter::once(left).chain(iter::once(right)));
state.1 += 1;
}

#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done {
let sum = state.0;
let count = state.1 as f64;
B::to_f64(&sum).map(|sum| sum / count).unwrap()
}
}
let zero = iter::empty::<B>().sum();
let left = mem::replace(&mut state.0, zero);
let right = iter::once(item).sum::<B>();

state.0 = B::sum(iter::once(left).chain(iter::once(right)));
state.1 += 1;
}

#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done {
let sum = state.0;
let count = state.1 as f64;
B::to_f64(&sum).map(|sum| sum / count).unwrap()
}
}

impl<B> FolderSync<(B, usize)> for MeanFolder<B, StepB>
where
B: iter::Sum<B> + ToPrimitive,
B: iter::Sum<B> + ToPrimitive,
{
type State = (B, usize);
type Done = f64;
type State = (B, usize);
type Done = f64;

#[inline(always)]
fn zero(&mut self) -> Self::State {
(iter::empty().sum(),0)
}
#[inline(always)]
fn zero(&mut self) -> Self::State {
(iter::empty().sum(), 0)
}

#[inline(always)]
#[inline(always)]
fn push(&mut self, state: &mut Self::State, item: (B, usize)) {
let zero = iter::empty().sum();
let left = mem::replace(&mut state.0, zero);
let right = iter::once(item.0).sum();

state.0 = B::sum(iter::once(left).chain(iter::once(right)));
state.1 += 1;
}

#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done {
let sum = state.0;
let count = state.1 as f64;
B::to_f64(&sum).map(|sum| sum / count).unwrap()

}
let zero = iter::empty().sum();
let left = mem::replace(&mut state.0, zero);
let right = iter::once(item.0).sum();

state.0 = B::sum(iter::once(left).chain(iter::once(right)));
state.1 += 1;
}

#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done {
let sum = state.0;
let count = state.1 as f64;
B::to_f64(&sum).map(|sum| sum / count).unwrap()
}
}
10 changes: 6 additions & 4 deletions amadeus-core/src/par_sink/sum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ where
}

#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}

#[derive(Clone, Serialize, Deserialize)]
Expand Down Expand Up @@ -91,6 +92,7 @@ where
}

#[inline(always)]
fn done(&mut self, state: Self::State) -> Self::Done { state }

fn done(&mut self, state: Self::State) -> Self::Done {
state
}
}

0 comments on commit c9f6989

Please sign in to comment.