00001 #ifndef blas_plus_plus_H
00002 #define blas_plus_plus_H
00003
00004
00005
00006 #include <base/subscriptor.h>
00007 #include <base/smartpointer.h>
00008 #include <lac/vector.h>
00009 #include <lac/full_matrix.h>
00010 #include <lac/identity_matrix.h>
00011
00012
00013
00014
00015
00016 #include <lac/blas_wrapper.hh>
00017 #include <lac/cublas_wrapper.hh>
00018
00019 #include <lac/FullMatrixAccessor.h>
00020
00021 #include <lac/cublas_Array.h>
00022
00023 #include <lac/cublas_Vector.h>
00024 #include <lac/cublas_VectorView.h>
00025
00026 #include <lac/cublas_Matrix.h>
00027 #include <lac/cublas_SubMatrixView.h>
00028
00029
00030
00031 template<typename T, typename BW>
00032 struct blas_pp {
00033
00034 typedef T value_type;
00035
00036 typedef ::FullMatrixAccessor<T> FullMatrixAccessor;
00037
00038 typedef BW blas_wrapper_type;
00039
00040
00041 typedef bw_types::Array<T, BW> Array;
00042
00043 typedef bw_types::Matrix<T, BW> Matrix;
00044
00045 typedef bw_types::SubMatrixView<T, BW> SubMatrix;
00046
00047 typedef bw_types::Vector<T, BW> Vector;
00048
00049
00050 typedef bw_types::ColVectorView<T, Matrix> MatrixSubCol;
00051
00052 typedef bw_types::RowVectorView<T, Matrix> MatrixSubRow;
00053
00054 typedef bw_types::ColVectorView<T, Vector> SubColVector;
00055
00056 typedef bw_types::RowVectorView<T, Vector> SubRowVector;
00057
00058 typedef bw_types::VectorView<T, Vector> SubVectorBase;
00059 };
00060
00061
00062 #endif // blas_plus_plus_H
00063