Main Page | Namespace List | Data Structures | File List | Namespace Members | Data Fields | Globals

sample78.cpp File Reference

#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 ()


Define Documentation

#define mul a,
b,
 ) 
 

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.

#define mul2 xtype   ) 
 

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.

#define mul3 xtype   ) 
 

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.

#define mul4 xtype   ) 
 

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.

#define mul5 xtype   ) 
 

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.

#define mul6
 

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.

#define mulset xtype,
atype,
btype   ) 
 

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.


Typedef Documentation

typedef ublas::matrix<double,ublas::column_major> CT
 

Definition at line 188 of file sample78.cpp.

typedef ublas::matrix<double,ublas::row_major> RT
 

Definition at line 187 of file sample78.cpp.


Function Documentation

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
 

Definition at line 143 of file sample78.cpp.

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
 

Definition at line 126 of file sample78.cpp.

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
 

Definition at line 109 of file sample78.cpp.

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
 

Definition at line 92 of file sample78.cpp.

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
 

Definition at line 75 of file sample78.cpp.

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
 

Definition at line 58 of file sample78.cpp.

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
 

Definition at line 41 of file sample78.cpp.

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
 

Definition at line 24 of file sample78.cpp.

void initmatrix ublas::matrix< double, ublas::column_major > &  A  ) 
 

Definition at line 173 of file sample78.cpp.

void initmatrix ublas::matrix< double, ublas::row_major > &  A  ) 
 

Definition at line 168 of file sample78.cpp.

int main  ) 
 

Definition at line 306 of file sample78.cpp.

References test().

void test const size_t  size1,
const size_t  size2,
const size_t  size3
 

Definition at line 288 of file sample78.cpp.

References CT, mulset, and RT.

void zeromatrix ublas::matrix< double, ublas::column_major > &  A  ) 
 

Definition at line 163 of file sample78.cpp.

void zeromatrix ublas::matrix< double, ublas::row_major > &  A  ) 
 

Definition at line 158 of file sample78.cpp.


Generated on Wed Oct 1 14:41:00 2003 for Sample Code by doxygen 1.3.2