KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I did a comparison between blitz++, armadillo, boost::MultiArray with the following code (borrowed from an old post ) #include <iostream> using namespace std; #include <windows.h> #define _SCL_SECURE_NO_WARNINGS #define BOOST_DISABLE_ASSERTS #include <boost/multi_array.hpp> #include <blitz/array.h> #include <armadillo> int main(int argc, char* argv[]) { const int X_SIZE = 1000; const int Y_SIZE = 1000; const int ITERATIONS = 100; unsigned int startTime = 0; unsigned int endTime = 0; // Create the boost array //------------------Measure boost Loop------------------------------------------ { typedef boost::multi_array<double, 2> ImageArrayType; ImageArrayType boostMatrix(boost::extents[X_SIZE][Y_SIZE]); startTime = ::GetTickCount(); for (int i = 0; i < ITERATIONS; ++i) { for (int x = 0; x < X_SIZE; ++x) { for (int y = 0; y < Y_SIZE; ++y) { boostMatrix[x][y] = 1.0001; } } } endTime = ::GetTickCount(); printf("[Boost Loop] Elapsed time: %6.3f seconds\n", (endTime - startTime) / 1000.0); } //------------------Measure blitz Loop------------------------------------------- { blitz::Array<double, 2> blitzArray( X_SIZE, Y_SIZE ); startTime = ::GetTickCount(); for (int i = 0; i < ITERATIONS; ++i) { for (int x = 0; x < X_SIZE; ++x) { for (int y = 0; y < Y_SIZE; ++y) { blitzArray(x,y) = 1.0001; } } } endTime = ::GetTickCount(); printf("[Blitz Loop] Elapsed time: %6.3f seconds\n", (endTime - startTime) / 1000.0); } //
Tags (comma-separated)
Save Edits
Cancel