op_neg_meat.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 template<typename T1>
00024 inline
00025 void
00026 op_neg::apply(Mat<typename T1::elem_type>& out, const Op<T1,op_neg> &in)
00027 {
00028 arma_extra_debug_sigprint();
00029
00030 typedef typename T1::elem_type eT;
00031
00032 const unwrap_write<T1> tmp(out, in.m);
00033 const Mat<eT>& A = tmp.M;
00034
00035 eT* out_mem = out.memptr();
00036 const eT* A_mem = A.memptr();
00037 const u32 n_elem = out.n_elem;
00038
00039 for(u32 i=0; i<n_elem; ++i)
00040 {
00041 out_mem[i] = -A_mem[i];
00042 }
00043 }
00044
00045
00046
00047
00048
00049 template<typename T1>
00050 inline
00051 void
00052 op_neg::apply(Cube<typename T1::elem_type>& out, const OpCube<T1,op_neg> &in)
00053 {
00054 arma_extra_debug_sigprint();
00055
00056 typedef typename T1::elem_type eT;
00057
00058 const unwrap_cube_write<T1> tmp(out, in.m);
00059 const Cube<eT>& A = tmp.M;
00060
00061 eT* out_mem = out.memptr();
00062 const eT* A_mem = A.memptr();
00063 const u32 n_elem = out.n_elem;
00064
00065 for(u32 i=0; i<n_elem; ++i)
00066 {
00067 out_mem[i] = -A_mem[i];
00068 }
00069 }
00070
00071
00072
00073