Go to the documentation of this file.00001 #ifndef VIENNACL_TRAITS_CLEAR_HPP_
00002 #define VIENNACL_TRAITS_CLEAR_HPP_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00024 #include <string>
00025 #include <fstream>
00026 #include <sstream>
00027 #include "viennacl/forwards.h"
00028
00029 #ifdef VIENNACL_HAVE_UBLAS
00030 #include <boost/numeric/ublas/matrix_sparse.hpp>
00031 #include <boost/numeric/ublas/matrix.hpp>
00032 #endif
00033
00034 #ifdef VIENNACL_HAVE_EIGEN
00035 #include <Eigen/Core>
00036 #include <Eigen/Sparse>
00037 #endif
00038
00039 #ifdef VIENNACL_HAVE_MTL4
00040 #include <boost/numeric/mtl/mtl.hpp>
00041 #endif
00042
00043 #include "viennacl/traits/size.hpp"
00044
00045 #include <vector>
00046 #include <map>
00047
00048 namespace viennacl
00049 {
00050 namespace traits
00051 {
00052
00053
00054 template <typename VectorType>
00055 void clear(VectorType & vec)
00056 {
00057 typedef typename viennacl::result_of::size_type<VectorType>::type size_type;
00058
00059 for (size_type i=0; i<viennacl::traits::size(vec); ++i)
00060 vec[i] = 0;
00061 }
00062
00063 template <typename ScalarType, unsigned int ALIGNMENT>
00064 void clear(viennacl::vector<ScalarType, ALIGNMENT> & vec)
00065 {
00066 vec.clear();
00067 }
00068 }
00069 }
00070
00071
00072 #endif