~ubuntu-branches/ubuntu/trusty/r-cran-rcpparmadillo/trusty-proposed

« back to all changes in this revision

Viewing changes to inst/include/armadillo_bits/glue_mixed_meat.hpp

  • Committer: Package Import Robot
  • Author(s): Dirk Eddelbuettel
  • Date: 2013-07-31 16:40:01 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20130731164001-h9t7espn2nh9wf9p
Tags: 0.3.900.7-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright (C) 2009-2012 NICTA (www.nicta.com.au)
2
 
// Copyright (C) 2009-2012 Conrad Sanderson
 
1
// Copyright (C) 2009-2013 NICTA (www.nicta.com.au)
 
2
// Copyright (C) 2009-2013 Conrad Sanderson
3
3
// 
4
4
// This Source Code Form is subject to the terms of the Mozilla Public
5
5
// License, v. 2.0. If a copy of the MPL was not distributed with this
72
72
    typename Proxy<T1>::ea_type AA = A.get_ea();
73
73
    typename Proxy<T2>::ea_type BB = B.get_ea();
74
74
    
75
 
    for(uword i=0; i<n_elem; ++i)
76
 
      {
77
 
      out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) + upgrade_val<eT1,eT2>::apply(BB[i]);
 
75
    if(memory::is_aligned(out_mem))
 
76
      {
 
77
      memory::mark_as_aligned(out_mem);
 
78
      
 
79
      for(uword i=0; i<n_elem; ++i)
 
80
        {
 
81
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) + upgrade_val<eT1,eT2>::apply(BB[i]);
 
82
        }
 
83
      }
 
84
    else
 
85
      {
 
86
      for(uword i=0; i<n_elem; ++i)
 
87
        {
 
88
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) + upgrade_val<eT1,eT2>::apply(BB[i]);
 
89
        }
78
90
      }
79
91
    }
80
92
  else
127
139
    typename Proxy<T1>::ea_type AA = A.get_ea();
128
140
    typename Proxy<T2>::ea_type BB = B.get_ea();
129
141
    
130
 
    for(uword i=0; i<n_elem; ++i)
131
 
      {
132
 
      out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) - upgrade_val<eT1,eT2>::apply(BB[i]);
 
142
    if(memory::is_aligned(out_mem))
 
143
      {
 
144
      memory::mark_as_aligned(out_mem);
 
145
      
 
146
      for(uword i=0; i<n_elem; ++i)
 
147
        {
 
148
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) - upgrade_val<eT1,eT2>::apply(BB[i]);
 
149
        }
 
150
      }
 
151
    else
 
152
      {
 
153
      for(uword i=0; i<n_elem; ++i)
 
154
        {
 
155
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) - upgrade_val<eT1,eT2>::apply(BB[i]);
 
156
        }
133
157
      }
134
158
    }
135
159
  else
182
206
    typename Proxy<T1>::ea_type AA = A.get_ea();
183
207
    typename Proxy<T2>::ea_type BB = B.get_ea();
184
208
    
185
 
    for(uword i=0; i<n_elem; ++i)
186
 
      {
187
 
      out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) / upgrade_val<eT1,eT2>::apply(BB[i]);
 
209
    if(memory::is_aligned(out_mem))
 
210
      {
 
211
      memory::mark_as_aligned(out_mem);
 
212
      
 
213
      for(uword i=0; i<n_elem; ++i)
 
214
        {
 
215
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) / upgrade_val<eT1,eT2>::apply(BB[i]);
 
216
        }
 
217
      }
 
218
    else
 
219
      {
 
220
      for(uword i=0; i<n_elem; ++i)
 
221
        {
 
222
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) / upgrade_val<eT1,eT2>::apply(BB[i]);
 
223
        }
188
224
      }
189
225
    }
190
226
  else
237
273
    typename Proxy<T1>::ea_type AA = A.get_ea();
238
274
    typename Proxy<T2>::ea_type BB = B.get_ea();
239
275
    
240
 
    for(uword i=0; i<n_elem; ++i)
241
 
      {
242
 
      out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) * upgrade_val<eT1,eT2>::apply(BB[i]);
 
276
    if(memory::is_aligned(out_mem))
 
277
      {
 
278
      memory::mark_as_aligned(out_mem);
 
279
      
 
280
      for(uword i=0; i<n_elem; ++i)
 
281
        {
 
282
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) * upgrade_val<eT1,eT2>::apply(BB[i]);
 
283
        }
 
284
      }
 
285
    else
 
286
      {
 
287
      for(uword i=0; i<n_elem; ++i)
 
288
        {
 
289
        out_mem[i] = upgrade_val<eT1,eT2>::apply(AA[i]) * upgrade_val<eT1,eT2>::apply(BB[i]);
 
290
        }
243
291
      }
244
292
    }
245
293
  else