op_relational_meat.hpp
Go to the documentation of this file.
00001 // Copyright (C) 2009-2010 NICTA (www.nicta.com.au)
00002 // Copyright (C) 2009-2010 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 T1>
00020 inline
00021 void
00022 op_rel_lt_pre::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_lt_pre>& X)
00023   {
00024   arma_extra_debug_sigprint();
00025   
00026   typedef typename T1::elem_type      eT;
00027   typedef typename Proxy<T1>::ea_type ea_type;
00028   
00029   const Proxy<T1> Y(X.m);
00030   
00031   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00032   
00033   const eT      val     = X.aux;
00034         ea_type A       = Y.get_ea();
00035         uword*    out_mem = out.memptr();
00036   const uword     n_elem  = out.n_elem;
00037   
00038   uword i,j;
00039   
00040   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00041     {
00042     out_mem[i] = (val < A[i]) ? uword(1) : uword(0);
00043     out_mem[j] = (val < A[j]) ? uword(1) : uword(0);
00044     }
00045   
00046   if(i < n_elem)
00047     {
00048     out_mem[i] = (val < A[i]) ? uword(1) : uword(0);
00049     }
00050   }
00051 
00052 
00053 
00054 template<typename T1>
00055 inline
00056 void
00057 op_rel_lt_post::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_lt_post>& X)
00058   {
00059   arma_extra_debug_sigprint();
00060   
00061   typedef typename T1::elem_type      eT;
00062   typedef typename Proxy<T1>::ea_type ea_type;
00063   
00064   const Proxy<T1> Y(X.m);
00065   
00066   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00067   
00068   const eT      val     = X.aux;
00069         ea_type A       = Y.get_ea();
00070         uword*    out_mem = out.memptr();
00071   const uword     n_elem  = out.n_elem;
00072   
00073   uword i,j;
00074   
00075   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00076     {
00077     out_mem[i] = (A[i] < val) ? uword(1) : uword(0);
00078     out_mem[j] = (A[j] < val) ? uword(1) : uword(0);
00079     }
00080   
00081   if(i < n_elem)
00082     {
00083     out_mem[i] = (A[i] < val) ? uword(1) : uword(0);
00084     }
00085   }
00086 
00087 
00088 
00089 template<typename T1>
00090 inline
00091 void
00092 op_rel_gt_pre::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_gt_pre>& X)
00093   {
00094   arma_extra_debug_sigprint();
00095   
00096   typedef typename T1::elem_type      eT;
00097   typedef typename Proxy<T1>::ea_type ea_type;
00098   
00099   const Proxy<T1> Y(X.m);
00100   
00101   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00102   
00103   const eT      val     = X.aux;
00104         ea_type A       = Y.get_ea();
00105         uword*    out_mem = out.memptr();
00106   const uword     n_elem  = out.n_elem;
00107   
00108   uword i,j;
00109   
00110   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00111     {
00112     out_mem[i] = (val > A[i]) ? uword(1) : uword(0);
00113     out_mem[j] = (val > A[j]) ? uword(1) : uword(0);
00114     }
00115   
00116   if(i < n_elem)
00117     {
00118     out_mem[i] = (val > A[i]) ? uword(1) : uword(0);
00119     }
00120   }
00121 
00122 
00123 
00124 template<typename T1>
00125 inline
00126 void
00127 op_rel_gt_post::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_gt_post>& X)
00128   {
00129   arma_extra_debug_sigprint();
00130   
00131   typedef typename T1::elem_type      eT;
00132   typedef typename Proxy<T1>::ea_type ea_type;
00133   
00134   const Proxy<T1> Y(X.m);
00135   
00136   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00137   
00138   const eT      val     = X.aux;
00139         ea_type A       = Y.get_ea();
00140         uword*    out_mem = out.memptr();
00141   const uword     n_elem  = out.n_elem;
00142   
00143   uword i,j;
00144   
00145   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00146     {
00147     out_mem[i] = (A[i] > val) ? uword(1) : uword(0);
00148     out_mem[j] = (A[j] > val) ? uword(1) : uword(0);
00149     }
00150   
00151   if(i < n_elem)
00152     {
00153     out_mem[i] = (A[i] > val) ? uword(1) : uword(0);
00154     }
00155   }
00156 
00157 
00158 
00159 template<typename T1>
00160 inline
00161 void
00162 op_rel_lteq_pre::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_lteq_pre>& X)
00163   {
00164   arma_extra_debug_sigprint();
00165   
00166   typedef typename T1::elem_type      eT;
00167   typedef typename Proxy<T1>::ea_type ea_type;
00168   
00169   const Proxy<T1> Y(X.m);
00170   
00171   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00172   
00173   const eT      val     = X.aux;
00174         ea_type A       = Y.get_ea();
00175         uword*    out_mem = out.memptr();
00176   const uword     n_elem  = out.n_elem;
00177   
00178   uword i,j;
00179   
00180   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00181     {
00182     out_mem[i] = (val <= A[i]) ? uword(1) : uword(0);
00183     out_mem[j] = (val <= A[j]) ? uword(1) : uword(0);
00184     }
00185   
00186   if(i < n_elem)
00187     {
00188     out_mem[i] = (val <= A[i]) ? uword(1) : uword(0);
00189     }
00190   }
00191 
00192 
00193 
00194 template<typename T1>
00195 inline
00196 void
00197 op_rel_lteq_post::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_lteq_post>& X)
00198   {
00199   arma_extra_debug_sigprint();
00200   
00201   typedef typename T1::elem_type      eT;
00202   typedef typename Proxy<T1>::ea_type ea_type;
00203   
00204   const Proxy<T1> Y(X.m);
00205   
00206   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00207   
00208   const eT      val     = X.aux;
00209         ea_type A       = Y.get_ea();
00210         uword*    out_mem = out.memptr();
00211   const uword     n_elem  = out.n_elem;
00212   
00213   uword i,j;
00214   
00215   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00216     {
00217     out_mem[i] = (A[i] <= val) ? uword(1) : uword(0);
00218     out_mem[j] = (A[j] <= val) ? uword(1) : uword(0);
00219     }
00220   
00221   if(i < n_elem)
00222     {
00223     out_mem[i] = (A[i] <= val) ? uword(1) : uword(0);
00224     }
00225   }
00226 
00227 
00228 
00229 template<typename T1>
00230 inline
00231 void
00232 op_rel_gteq_pre::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_gteq_pre>& X)
00233   {
00234   arma_extra_debug_sigprint();
00235   
00236   typedef typename T1::elem_type      eT;
00237   typedef typename Proxy<T1>::ea_type ea_type;
00238   
00239   const Proxy<T1> Y(X.m);
00240   
00241   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00242   
00243   const eT      val     = X.aux;
00244         ea_type A       = Y.get_ea();
00245         uword*    out_mem = out.memptr();
00246   const uword     n_elem  = out.n_elem;
00247   
00248   uword i,j;
00249   
00250   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00251     {
00252     out_mem[i] = (val >= A[i]) ? uword(1) : uword(0);
00253     out_mem[j] = (val >= A[j]) ? uword(1) : uword(0);
00254     }
00255   
00256   if(i < n_elem)
00257     {
00258     out_mem[i] = (val >= A[i]) ? uword(1) : uword(0);
00259     }
00260   }
00261 
00262 
00263 
00264 template<typename T1>
00265 inline
00266 void
00267 op_rel_gteq_post::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_gteq_post>& X)
00268   {
00269   arma_extra_debug_sigprint();
00270   
00271   typedef typename T1::elem_type      eT;
00272   typedef typename Proxy<T1>::ea_type ea_type;
00273   
00274   const Proxy<T1> Y(X.m);
00275   
00276   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00277   
00278   const eT      val     = X.aux;
00279         ea_type A       = Y.get_ea();
00280         uword*    out_mem = out.memptr();
00281   const uword     n_elem  = out.n_elem;
00282   
00283   uword i,j;
00284   
00285   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00286     {
00287     out_mem[i] = (A[i] >= val) ? uword(1) : uword(0);
00288     out_mem[j] = (A[j] >= val) ? uword(1) : uword(0);
00289     }
00290   
00291   if(i < n_elem)
00292     {
00293     out_mem[i] = (A[i] >= val) ? uword(1) : uword(0);
00294     }
00295   }
00296 
00297 
00298 
00299 template<typename T1>
00300 inline
00301 void
00302 op_rel_eq::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_eq>& X)
00303   {
00304   arma_extra_debug_sigprint();
00305   
00306   typedef typename T1::elem_type      eT;
00307   typedef typename Proxy<T1>::ea_type ea_type;
00308   
00309   const Proxy<T1> Y(X.m);
00310   
00311   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00312   
00313   const eT      val     = X.aux;
00314         ea_type A       = Y.get_ea();
00315         uword*    out_mem = out.memptr();
00316   const uword     n_elem  = out.n_elem;
00317   
00318   uword i,j;
00319   
00320   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00321     {
00322     out_mem[i] = (A[i] == val) ? uword(1) : uword(0);
00323     out_mem[j] = (A[j] == val) ? uword(1) : uword(0);
00324     }
00325   
00326   if(i < n_elem)
00327     {
00328     out_mem[i] = (A[i] == val) ? uword(1) : uword(0);
00329     }
00330   }
00331 
00332 
00333 
00334 template<typename T1>
00335 inline
00336 void
00337 op_rel_noteq::apply(Mat<uword>& out, const mtOp<uword, T1, op_rel_noteq>& X)
00338   {
00339   arma_extra_debug_sigprint();
00340   
00341   typedef typename T1::elem_type      eT;
00342   typedef typename Proxy<T1>::ea_type ea_type;
00343   
00344   const Proxy<T1> Y(X.m);
00345   
00346   out.set_size(Y.get_n_rows(), Y.get_n_cols());
00347   
00348   const eT      val     = X.aux;
00349         ea_type A       = Y.get_ea();
00350         uword*    out_mem = out.memptr();
00351   const uword     n_elem  = out.n_elem;
00352   
00353   uword i,j;
00354   
00355   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00356     {
00357     out_mem[i] = (A[i] != val) ? uword(1) : uword(0);
00358     out_mem[j] = (A[j] != val) ? uword(1) : uword(0);
00359     }
00360   
00361   if(i < n_elem)
00362     {
00363     out_mem[i] = (A[i] != val) ? uword(1) : uword(0);
00364     }
00365   }
00366 
00367 
00368 
00369 //
00370 //
00371 //
00372 
00373 
00374 
00375 template<typename T1>
00376 inline
00377 void
00378 op_rel_lt_pre::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_lt_pre>& X)
00379   {
00380   arma_extra_debug_sigprint();
00381   
00382   typedef typename T1::elem_type          eT;
00383   typedef typename ProxyCube<T1>::ea_type ea_type;
00384   
00385   const ProxyCube<T1> Y(X.m);
00386   
00387   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00388   
00389   const eT      val     = X.aux;
00390         ea_type A       = Y.get_ea();
00391         uword*    out_mem = out.memptr();
00392   const uword     n_elem  = out.n_elem;
00393   
00394   uword i,j;
00395   
00396   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00397     {
00398     out_mem[i] = (val < A[i]) ? uword(1) : uword(0);
00399     out_mem[j] = (val < A[j]) ? uword(1) : uword(0);
00400     }
00401   
00402   if(i < n_elem)
00403     {
00404     out_mem[i] = (val < A[i]) ? uword(1) : uword(0);
00405     }
00406   }
00407 
00408 
00409 
00410 template<typename T1>
00411 inline
00412 void
00413 op_rel_lt_post::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_lt_post>& X)
00414   {
00415   arma_extra_debug_sigprint();
00416   
00417   typedef typename T1::elem_type          eT;
00418   typedef typename ProxyCube<T1>::ea_type ea_type;
00419   
00420   const ProxyCube<T1> Y(X.m);
00421   
00422   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00423   
00424   const eT      val     = X.aux;
00425         ea_type A       = Y.get_ea();
00426         uword*    out_mem = out.memptr();
00427   const uword     n_elem  = out.n_elem;
00428   
00429   uword i,j;
00430   
00431   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00432     {
00433     out_mem[i] = (A[i] < val) ? uword(1) : uword(0);
00434     out_mem[j] = (A[j] < val) ? uword(1) : uword(0);
00435     }
00436   
00437   if(i < n_elem)
00438     {
00439     out_mem[i] = (A[i] < val) ? uword(1) : uword(0);
00440     }
00441   }
00442 
00443 
00444 
00445 template<typename T1>
00446 inline
00447 void
00448 op_rel_gt_pre::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_gt_pre>& X)
00449   {
00450   arma_extra_debug_sigprint();
00451   
00452   typedef typename T1::elem_type          eT;
00453   typedef typename ProxyCube<T1>::ea_type ea_type;
00454   
00455   const ProxyCube<T1> Y(X.m);
00456   
00457   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00458   
00459   const eT      val     = X.aux;
00460         ea_type A       = Y.get_ea();
00461         uword*    out_mem = out.memptr();
00462   const uword     n_elem  = out.n_elem;
00463   
00464   uword i,j;
00465   
00466   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00467     {
00468     out_mem[i] = (val > A[i]) ? uword(1) : uword(0);
00469     out_mem[j] = (val > A[j]) ? uword(1) : uword(0);
00470     }
00471   
00472   if(i < n_elem)
00473     {
00474     out_mem[i] = (val > A[i]) ? uword(1) : uword(0);
00475     }
00476   }
00477 
00478 
00479 
00480 template<typename T1>
00481 inline
00482 void
00483 op_rel_gt_post::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_gt_post>& X)
00484   {
00485   arma_extra_debug_sigprint();
00486   
00487   typedef typename T1::elem_type          eT;
00488   typedef typename ProxyCube<T1>::ea_type ea_type;
00489   
00490   const ProxyCube<T1> Y(X.m);
00491   
00492   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00493   
00494   const eT      val     = X.aux;
00495         ea_type A       = Y.get_ea();
00496         uword*    out_mem = out.memptr();
00497   const uword     n_elem  = out.n_elem;
00498   
00499   uword i,j;
00500   
00501   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00502     {
00503     out_mem[i] = (A[i] > val) ? uword(1) : uword(0);
00504     out_mem[j] = (A[j] > val) ? uword(1) : uword(0);
00505     }
00506   
00507   if(i < n_elem)
00508     {
00509     out_mem[i] = (A[i] > val) ? uword(1) : uword(0);
00510     }
00511   }
00512 
00513 
00514 
00515 template<typename T1>
00516 inline
00517 void
00518 op_rel_lteq_pre::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_lteq_pre>& X)
00519   {
00520   arma_extra_debug_sigprint();
00521   
00522   typedef typename T1::elem_type          eT;
00523   typedef typename ProxyCube<T1>::ea_type ea_type;
00524   
00525   const ProxyCube<T1> Y(X.m);
00526   
00527   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00528   
00529   const eT      val     = X.aux;
00530         ea_type A       = Y.get_ea();
00531         uword*    out_mem = out.memptr();
00532   const uword     n_elem  = out.n_elem;
00533   
00534   uword i,j;
00535   
00536   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00537     {
00538     out_mem[i] = (val <= A[i]) ? uword(1) : uword(0);
00539     out_mem[j] = (val <= A[j]) ? uword(1) : uword(0);
00540     }
00541   
00542   if(i < n_elem)
00543     {
00544     out_mem[i] = (val <= A[i]) ? uword(1) : uword(0);
00545     }
00546   }
00547 
00548 
00549 
00550 template<typename T1>
00551 inline
00552 void
00553 op_rel_lteq_post::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_lteq_post>& X)
00554   {
00555   arma_extra_debug_sigprint();
00556   
00557   typedef typename T1::elem_type          eT;
00558   typedef typename ProxyCube<T1>::ea_type ea_type;
00559   
00560   const ProxyCube<T1> Y(X.m);
00561   
00562   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00563   
00564   const eT      val     = X.aux;
00565         ea_type A       = Y.get_ea();
00566         uword*    out_mem = out.memptr();
00567   const uword     n_elem  = out.n_elem;
00568   
00569   uword i,j;
00570   
00571   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00572     {
00573     out_mem[i] = (A[i] <= val) ? uword(1) : uword(0);
00574     out_mem[j] = (A[j] <= val) ? uword(1) : uword(0);
00575     }
00576   
00577   if(i < n_elem)
00578     {
00579     out_mem[i] = (A[i] <= val) ? uword(1) : uword(0);
00580     }
00581   }
00582 
00583 
00584 
00585 template<typename T1>
00586 inline
00587 void
00588 op_rel_gteq_pre::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_gteq_pre>& X)
00589   {
00590   arma_extra_debug_sigprint();
00591   
00592   typedef typename T1::elem_type          eT;
00593   typedef typename ProxyCube<T1>::ea_type ea_type;
00594   
00595   const ProxyCube<T1> Y(X.m);
00596   
00597   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00598   
00599   const eT      val     = X.aux;
00600         ea_type A       = Y.get_ea();
00601         uword*    out_mem = out.memptr();
00602   const uword     n_elem  = out.n_elem;
00603   
00604   uword i,j;
00605   
00606   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00607     {
00608     out_mem[i] = (val >= A[i]) ? uword(1) : uword(0);
00609     out_mem[j] = (val >= A[j]) ? uword(1) : uword(0);
00610     }
00611   
00612   if(i < n_elem)
00613     {
00614     out_mem[i] = (val >= A[i]) ? uword(1) : uword(0);
00615     }
00616   }
00617 
00618 
00619 
00620 template<typename T1>
00621 inline
00622 void
00623 op_rel_gteq_post::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_gteq_post>& X)
00624   {
00625   arma_extra_debug_sigprint();
00626   
00627   typedef typename T1::elem_type          eT;
00628   typedef typename ProxyCube<T1>::ea_type ea_type;
00629   
00630   const ProxyCube<T1> Y(X.m);
00631   
00632   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00633   
00634   const eT      val     = X.aux;
00635         ea_type A       = Y.get_ea();
00636         uword*    out_mem = out.memptr();
00637   const uword     n_elem  = out.n_elem;
00638   
00639   uword i,j;
00640   
00641   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00642     {
00643     out_mem[i] = (A[i] >= val) ? uword(1) : uword(0);
00644     out_mem[j] = (A[j] >= val) ? uword(1) : uword(0);
00645     }
00646   
00647   if(i < n_elem)
00648     {
00649     out_mem[i] = (A[i] >= val) ? uword(1) : uword(0);
00650     }
00651   }
00652 
00653 
00654 
00655 template<typename T1>
00656 inline
00657 void
00658 op_rel_eq::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_eq>& X)
00659   {
00660   arma_extra_debug_sigprint();
00661   
00662   typedef typename T1::elem_type          eT;
00663   typedef typename ProxyCube<T1>::ea_type ea_type;
00664   
00665   const ProxyCube<T1> Y(X.m);
00666   
00667   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00668   
00669   const eT      val     = X.aux;
00670         ea_type A       = Y.get_ea();
00671         uword*    out_mem = out.memptr();
00672   const uword     n_elem  = out.n_elem;
00673   
00674   uword i,j;
00675   
00676   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00677     {
00678     out_mem[i] = (A[i] == val) ? uword(1) : uword(0);
00679     out_mem[j] = (A[j] == val) ? uword(1) : uword(0);
00680     }
00681   
00682   if(i < n_elem)
00683     {
00684     out_mem[i] = (A[i] == val) ? uword(1) : uword(0);
00685     }
00686   }
00687 
00688 
00689 
00690 template<typename T1>
00691 inline
00692 void
00693 op_rel_noteq::apply(Cube<uword>& out, const mtOpCube<uword, T1, op_rel_noteq>& X)
00694   {
00695   arma_extra_debug_sigprint();
00696   
00697   typedef typename T1::elem_type          eT;
00698   typedef typename ProxyCube<T1>::ea_type ea_type;
00699   
00700   const ProxyCube<T1> Y(X.m);
00701   
00702   out.set_size(Y.get_n_rows(), Y.get_n_cols(), Y.get_n_slices());
00703   
00704   const eT      val     = X.aux;
00705         ea_type A       = Y.get_ea();
00706         uword*    out_mem = out.memptr();
00707   const uword     n_elem  = out.n_elem;
00708   
00709   uword i,j;
00710   
00711   for(i=0, j=1; j<n_elem; i+=2, j+=2)
00712     {
00713     out_mem[i] = (A[i] != val) ? uword(1) : uword(0);
00714     out_mem[j] = (A[j] != val) ? uword(1) : uword(0);
00715     }
00716   
00717   if(i < n_elem)
00718     {
00719     out_mem[i] = (A[i] != val) ? uword(1) : uword(0);
00720     }
00721   }
00722 
00723 
00724 


armadillo_matrix
Author(s): Conrad Sanderson - NICTA (www.nicta.com.au), (Wrapper by Sjoerd van den Dries)
autogenerated on Tue Jan 7 2014 11:42:05