From ab196d7e49ef1c22a1c88c8683b30412e4bf2c31 Mon Sep 17 00:00:00 2001 From: Ivan Ukhov Date: Wed, 24 Jun 2015 17:15:30 -0400 Subject: [PATCH] Dry a bit --- src/lib.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 5e4ebda..6d67a14 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,14 +11,18 @@ extern crate complex; pub use complex::c64; +macro_rules! power_of_two( + ($n:expr) => (if $n < 1 || $n & ($n - 1) != 0 { + panic!("expected the number of points to be a power of two"); + }); +); + /// Perform the forward transform. /// /// The number of points should be a power of two. pub fn forward(data: &mut [c64]) { let n = data.len(); - if n < 1 || n & (n - 1) != 0 { - panic!("expected the number of points to be a power of two"); - } + power_of_two!(n); rearrange(data, n); perform(data, n, false); } @@ -28,9 +32,7 @@ pub fn forward(data: &mut [c64]) { /// The number of points should be a power of two. pub fn inverse(data: &mut [c64], scaling: bool) { let n = data.len(); - if n < 1 || n & (n - 1) != 0 { - panic!("expected the number of points to be a power of two"); - } + power_of_two!(n); rearrange(data, n); perform(data, n, true); if scaling {