Joshua Moerman
11 years ago
2 changed files with 95 additions and 4 deletions
@ -0,0 +1,59 @@ |
|||
#include <includes.hpp> |
|||
#include <utilities.hpp> |
|||
|
|||
#include "wavelet.hpp" |
|||
#include "wavelet2.hpp" |
|||
|
|||
|
|||
template <typename T> |
|||
void print_vec(std::vector<T> v){ |
|||
auto it = v.begin(), end = v.end(); |
|||
std::cout << "{" << *it++; |
|||
while(it != end) std::cout << ", " << *it++; |
|||
std::cout << "}\n"; |
|||
} |
|||
|
|||
void timing_test(){ |
|||
std::vector<double> input1 = {-1.0, -2.0, 2.0, 1.0, -3.0, -4.0, 4.0, 3.0}; |
|||
std::vector<double> input2 = input1; |
|||
int test_size = 10; |
|||
|
|||
{ timer t("newwvlt"); |
|||
auto const n = input1.size(); |
|||
for(int i = 0; i < test_size; ++i) |
|||
wvlt::V2::wavelet_mul(input2.data(), input2[0], input2[1], n, 1); |
|||
for(int i = 0; i < test_size; ++i) |
|||
wvlt::V2::wavelet_inv(input2.data(), input2[n-1], input2[n-2], n, 1); |
|||
} |
|||
{ timer t("wavelet"); |
|||
for(int i = 0; i < test_size; ++i) |
|||
wvlt::V1::wavelet_mul(input1.begin(), input1.end()); |
|||
for(int i = 0; i < test_size; ++i) |
|||
wvlt::V1::wavelet_inv(input1.begin(), input1.end()); |
|||
} |
|||
|
|||
print_vec(input1); |
|||
print_vec(input2); |
|||
} |
|||
|
|||
void correctness_test(){ |
|||
std::vector<double> input1 = {-1.0, -2.0, 2.0, 1.0, -3.0, -4.0, 4.0, 3.0}; |
|||
std::vector<double> input2 = input1; |
|||
|
|||
wvlt::V1::wavelet(input1.begin(), input1.end()); |
|||
wvlt::V1::unwavelet(input1.begin(), input1.end()); |
|||
|
|||
wvlt::V2::wavelet(input2.data(), input2.size()); |
|||
wvlt::V2::unwavelet(input2.data(), input2.size()); |
|||
|
|||
std::cout << "V1\t"; print_vec(input1); |
|||
std::cout << "V2\t"; print_vec(input2); |
|||
} |
|||
|
|||
int main(){ |
|||
std::cout << "*** CORRECTNESS TEST ***\n"; |
|||
correctness_test(); |
|||
std::cout << "*** TIMING TEST ***\n"; |
|||
timing_test(); |
|||
} |
|||
|
Reference in new issue