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

sample83.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.

Namespaces

namespace  boost
namespace  boost::numeric
namespace  boost::numeric::ublas

Defines

#define NOCHECK
#define mul(a, b, d)
#define mul2(xtype)
#define mul3(xtype)
#define mul4(xtype)
#define mul5(xtype)
#define mul6(xtype)
#define mul7
#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)
template<class M, class E> int equals (const M &lhs, const E &rhs)
void test (const size_t size1, const size_t size2, const size_t size3)
int main (int argc, char *argv[])


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 305 of file sample83.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 320 of file sample83.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 332 of file sample83.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 344 of file sample83.cpp.

#define mul5 xtype   ) 
 

Value:

{ \
  zeromatrix(X); \
  initmatrix(A); \
  initmatrix(B); \
  t.restart(); \
  X.plus_assign(ublas::block_prod<xtype, 64>(A,B)); \
  time = t.elapsed(); \
  cout << setw(8) << time << flush; \
  cerr << equals(X,prod(A,B)) << endl; \
}

Definition at line 356 of file sample83.cpp.

#define mul6 xtype   ) 
 

Value:

{ \
  zeromatrix(X); \
  initmatrix(A); \
  initmatrix(B); \
  t.restart(); \
  X.plus_assign(ublas::block_prod_goto<xtype, 64, 64, 64>(A,B)); \
  time = t.elapsed(); \
  cout << setw(8) << time << flush; \
  cerr << equals(X,prod(A,B)) << endl; \
}

Definition at line 368 of file sample83.cpp.

#define mul7
 

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 380 of file sample83.cpp.

#define mulset xtype,
atype,
btype   ) 
 

Value:

{ \
 xtype X(size1,size3); \
 atype A(size1,size2); \
 btype B(size2,size3); \
 mul5(xtype); \
 mul6(xtype); \
 mul7 ; \
 cout << endl; \
}

Definition at line 393 of file sample83.cpp.

#define NOCHECK
 

Definition at line 293 of file sample83.cpp.


Typedef Documentation

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

Definition at line 303 of file sample83.cpp.

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

Definition at line 302 of file sample83.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 257 of file sample83.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 240 of file sample83.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 223 of file sample83.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 206 of file sample83.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 189 of file sample83.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 172 of file sample83.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 155 of file sample83.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 138 of file sample83.cpp.

template<class M, class E>
int equals const M &  lhs,
const E &  rhs
 

Definition at line 296 of file sample83.cpp.

Referenced by boost::numeric::ublas::block_prod_goto().

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

Definition at line 287 of file sample83.cpp.

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

Definition at line 282 of file sample83.cpp.

int main int  argc,
char *  argv[]
 

Definition at line 435 of file sample83.cpp.

References test().

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

Definition at line 416 of file sample83.cpp.

References CT, mulset, and RT.

Referenced by main().

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

Definition at line 277 of file sample83.cpp.

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

Definition at line 272 of file sample83.cpp.


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