$search
00001 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au) 00002 // Copyright (C) 2008-2011 Conrad Sanderson 00003 // 00004 // This file is part of the Armadillo C++ library. 00005 // It is provided without any warranty of fitness 00006 // for any purpose. You can redistribute this file 00007 // and/or modify it under the terms of the GNU 00008 // Lesser General Public License (LGPL) as published 00009 // by the Free Software Foundation, either version 3 00010 // of the License or (at your option) any later version. 00011 // (see http://www.opensource.org/licenses for more info) 00012 00013 00016 00017 00018 00019 template<typename elem_type, typename derived> 00020 arma_inline 00021 const derived& 00022 Base<elem_type,derived>::get_ref() const 00023 { 00024 return static_cast<const derived&>(*this); 00025 } 00026 00027 00028 00029 template<typename elem_type, typename derived> 00030 arma_inline 00031 const Op<derived,op_htrans> 00032 Base<elem_type,derived>::t() const 00033 { 00034 return Op<derived,op_htrans>( (*this).get_ref() ); 00035 } 00036 00037 00038 00039 template<typename elem_type, typename derived> 00040 arma_inline 00041 const Op<derived,op_strans> 00042 Base<elem_type,derived>::st() const 00043 { 00044 return Op<derived,op_strans>( (*this).get_ref() ); 00045 } 00046 00047 00048 00049 template<typename elem_type, typename derived> 00050 inline 00051 void 00052 Base<elem_type,derived>::print(const std::string extra_text) const 00053 { 00054 const unwrap<derived> tmp( (*this).get_ref() ); 00055 00056 tmp.M.impl_print(extra_text); 00057 } 00058 00059 00060 00061 template<typename elem_type, typename derived> 00062 inline 00063 void 00064 Base<elem_type,derived>::print(std::ostream& user_stream, const std::string extra_text) const 00065 { 00066 const unwrap<derived> tmp( (*this).get_ref() ); 00067 00068 tmp.M.impl_print(user_stream, extra_text); 00069 } 00070 00071 00072 00073 template<typename elem_type, typename derived> 00074 inline 00075 void 00076 Base<elem_type,derived>::print_trans(const std::string extra_text) const 00077 { 00078 const unwrap<derived> tmp( (*this).get_ref() ); 00079 00080 tmp.M.impl_print_trans(extra_text); 00081 } 00082 00083 00084 00085 template<typename elem_type, typename derived> 00086 inline 00087 void 00088 Base<elem_type,derived>::print_trans(std::ostream& user_stream, const std::string extra_text) const 00089 { 00090 const unwrap<derived> tmp( (*this).get_ref() ); 00091 00092 tmp.M.impl_print_trans(user_stream, extra_text); 00093 } 00094 00095 00096 00097 template<typename elem_type, typename derived> 00098 inline 00099 void 00100 Base<elem_type,derived>::raw_print(const std::string extra_text) const 00101 { 00102 const unwrap<derived> tmp( (*this).get_ref() ); 00103 00104 tmp.M.impl_raw_print(extra_text); 00105 } 00106 00107 00108 00109 template<typename elem_type, typename derived> 00110 inline 00111 void 00112 Base<elem_type,derived>::raw_print(std::ostream& user_stream, const std::string extra_text) const 00113 { 00114 const unwrap<derived> tmp( (*this).get_ref() ); 00115 00116 tmp.M.impl_raw_print(user_stream, extra_text); 00117 } 00118 00119 00120 00121 template<typename elem_type, typename derived> 00122 inline 00123 void 00124 Base<elem_type,derived>::raw_print_trans(const std::string extra_text) const 00125 { 00126 const unwrap<derived> tmp( (*this).get_ref() ); 00127 00128 tmp.M.impl_raw_print_trans(extra_text); 00129 } 00130 00131 00132 00133 template<typename elem_type, typename derived> 00134 inline 00135 void 00136 Base<elem_type,derived>::raw_print_trans(std::ostream& user_stream, const std::string extra_text) const 00137 { 00138 const unwrap<derived> tmp( (*this).get_ref() ); 00139 00140 tmp.M.impl_raw_print_trans(user_stream, extra_text); 00141 } 00142 00143 00144