#include <iostream>
#include <iomanip>
#include <atlas/cblas.h>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/operation.hpp>
#include <boost/numeric/ublas/operation_blocked.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/timer.hpp>
Go to the source code of this file.
Defines | |
#define | mul(a, b, d) |
#define | mul2(xtype) |
#define | mul3(xtype) |
#define | mul4(xtype) |
#define | mul5(xtype) |
#define | mul6 |
#define | mulset(xtype, atype, btype) |
Typedefs | |
typedef ublas::matrix< double, ublas::row_major > | RT |
typedef ublas::matrix< double, ublas::column_major > | CT |
Functions | |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::row_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &B) |
BOOST_UBLAS_INLINE void | cblas_prod (ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &C, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &A, const ublas::matrix< double, ublas::column_major, ublas::unbounded_array< double > > &B) |
void | zeromatrix (ublas::matrix< double, ublas::row_major > &A) |
void | zeromatrix (ublas::matrix< double, ublas::column_major > &A) |
void | initmatrix (ublas::matrix< double, ublas::row_major > &A) |
void | initmatrix (ublas::matrix< double, ublas::column_major > &A) |
void | test (const size_t size1, const size_t size2, const size_t size3) |
int | main () |
|
Value: { \ zeromatrix(X); \ initmatrix(A); \ initmatrix(B); \ t.restart(); \ for (size_t a=0;a<size;a++) \ for (size_t b=0;b<size;b++) \ for (size_t d=0;d<size;d++) \ X(r,c) += A(r,k)*B(k,c); \ time = t.elapsed(); \ cout << setw(8) << time << flush; \ cerr << equals(X,prod(A,B))<< endl; \ } Definition at line 190 of file sample78.cpp. |
|
Value: { \ zeromatrix(X); \ initmatrix(A); \ initmatrix(B); \ t.restart(); \ X.plus_assign(prod(A,B)); \ time = t.elapsed(); \ cout << setw(8) << time << flush; \ cerr << equals(X,prod(A,B)) << endl; \ } Definition at line 205 of file sample78.cpp. |
|
Value: { \ zeromatrix(X); \ initmatrix(A); \ initmatrix(B); \ t.restart(); \ ublas::axpy_prod(A,B,X,false); \ time = t.elapsed(); \ cout << setw(8) << time << flush; \ cerr << equals(X,prod(A,B)) << endl; \ } Definition at line 217 of file sample78.cpp. |
|
Value: { \ zeromatrix(X); \ initmatrix(A); \ initmatrix(B); \ t.restart(); \ ublas::opb_prod(A,B,X,false); \ time = t.elapsed(); \ cout << setw(8) << time << flush; \ cerr << equals(X,prod(A,B)) << endl; \ } Definition at line 229 of file sample78.cpp. |
|
Value: { \ zeromatrix(X); \ initmatrix(A); \ initmatrix(B); \ t.restart(); \ X.plus_assign(ublas::block_prod<xtype>(A,B,64)); \ time = t.elapsed(); \ cout << setw(8) << time << flush; \ cerr << equals(X,prod(A,B)) << endl; \ } Definition at line 241 of file sample78.cpp. |
|
Value: { \ zeromatrix(X); \ initmatrix(A); \ initmatrix(B); \ t.restart(); \ cblas_prod(X, A, B); \ time = t.elapsed(); \ \ cout << setw(8) << time << flush; \ cerr << equals(X,prod(A,B)) << endl; \ } Definition at line 253 of file sample78.cpp. |
|
Value: { \ xtype X(size1,size3); \ atype A(size1,size2); \ btype B(size2,size3); \ mul2(xtype); \ mul3(xtype); \ mul4(xtype); \ mul5(xtype); \ mul6 ; \ cout << endl; \ } Definition at line 266 of file sample78.cpp. |
|
Definition at line 188 of file sample78.cpp. |
|
Definition at line 187 of file sample78.cpp. |
|
Definition at line 143 of file sample78.cpp. |
|
Definition at line 126 of file sample78.cpp. |
|
Definition at line 109 of file sample78.cpp. |
|
Definition at line 92 of file sample78.cpp. |
|
Definition at line 75 of file sample78.cpp. |
|
Definition at line 58 of file sample78.cpp. |
|
Definition at line 41 of file sample78.cpp. |
|
Definition at line 24 of file sample78.cpp. |
|
Definition at line 173 of file sample78.cpp. |
|
Definition at line 168 of file sample78.cpp. |
|
Definition at line 306 of file sample78.cpp. References test(). |
|
Definition at line 288 of file sample78.cpp. |
|
Definition at line 163 of file sample78.cpp. |
|
Definition at line 158 of file sample78.cpp. |