iRoCS Toolbox  1.1.0
Array.hh
Go to the documentation of this file.
1 /**************************************************************************
2  *
3  * General blitz++ Array extension for microscopic data
4  *
5  * This file provides a class to store microscopic datasets with
6  * element size and a transformation to apply. It provides a function
7  * valueAt() to first apply the transformation and then access
8  * the transformed position using the specified ArrayInterpolator.
9  *
10  * This file belongs to the iRoCS Toolbox.
11  *
12  * Copyright (C) 2008-2015 Thorsten Falk
13  *
14  * This program is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation; either version 3 of the License, or
17  * (at your option) any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to the Free Software Foundation,
26  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27  *
28  **************************************************************************/
29 
30 /*======================================================================*/
37 /*======================================================================*/
38 
39 #ifndef ATBARRAY_HH
40 #define ATBARRAY_HH
41 
42 #ifdef HAVE_CONFIG_H
43 #include <config.hh>
44 #endif
45 
46 #include <cstdlib>
47 #include <cstring>
48 
51 
52 #include "Interpolator.hh"
53 #include "TinyMatrixOperators.hh"
54 #include "ATBLinAlg.hh"
55 
56 namespace atb
57 {
58 
59 /*======================================================================*/
83 /*======================================================================*/
84  template<typename DataT, int Dim>
85  class Array : public blitz::Array<DataT,Dim>
86  {
87 
88  public:
89 
90 /*======================================================================*/
97 /*======================================================================*/
98  explicit Array(
99  std::string const &fileName, std::string const &dataset,
100  iRoCS::ProgressReporter *progress = NULL);
101 
102 /*======================================================================*/
111 /*======================================================================*/
112  template<typename T_expr>
113  explicit Array(
114  blitz::_bz_ArrayExpr<T_expr> expr,
115  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
116  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
117  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one))
118  : blitz::Array<DataT,Dim>(expr),
121  {}
122 
123 /*======================================================================*/
137 /*======================================================================*/
139  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
140  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
141  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
142  blitz::GeneralArrayStorage<Dim> storage =
143  blitz::GeneralArrayStorage<Dim>())
144  : blitz::Array<DataT,Dim>(storage),
147  {}
148 
149 /*======================================================================*/
166 /*======================================================================*/
167  explicit Array(
168  BlitzIndexT extent0,
169  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
170  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
171  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
172  blitz::GeneralArrayStorage<Dim> storage =
173  blitz::GeneralArrayStorage<Dim>())
174  : blitz::Array<DataT,Dim>(extent0, storage),
177  {}
178 
179 /*======================================================================*/
197 /*======================================================================*/
199  BlitzIndexT extent0, BlitzIndexT extent1,
200  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
201  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
202  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
203  blitz::GeneralArrayStorage<Dim> storage =
204  blitz::GeneralArrayStorage<Dim>())
205  : blitz::Array<DataT,Dim>(extent0, extent1, storage),
208  {}
209 
210 /*======================================================================*/
229 /*======================================================================*/
231  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
232  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
233  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
234  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
235  blitz::GeneralArrayStorage<Dim> storage =
236  blitz::GeneralArrayStorage<Dim>())
237  : blitz::Array<DataT,Dim>(extent0, extent1, extent2, storage),
240  {}
241 
242 /*======================================================================*/
262 /*======================================================================*/
264  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
265  BlitzIndexT extent3,
266  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
267  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
268  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
269  blitz::GeneralArrayStorage<Dim> storage =
270  blitz::GeneralArrayStorage<Dim>())
271  : blitz::Array<DataT,Dim>(
272  extent0, extent1, extent2, extent3, storage),
275  {}
276 
277 /*======================================================================*/
298 /*======================================================================*/
300  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
301  BlitzIndexT extent3, BlitzIndexT extent4,
302  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
303  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
304  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
305  blitz::GeneralArrayStorage<Dim> storage =
306  blitz::GeneralArrayStorage<Dim>())
307  : blitz::Array<DataT,Dim>(
308  extent0, extent1, extent2, extent3, extent4, storage),
311  {}
312 
313 /*======================================================================*/
335 /*======================================================================*/
337  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
338  BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5,
339  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
340  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
341  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
342  blitz::GeneralArrayStorage<Dim> storage =
343  blitz::GeneralArrayStorage<Dim>())
344  : blitz::Array<DataT,Dim>(
345  extent0, extent1, extent2, extent3, extent4, extent5, storage),
348  {}
349 
350 /*======================================================================*/
373 /*======================================================================*/
375  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
376  BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5,
377  BlitzIndexT extent6,
378  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
379  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
380  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
381  blitz::GeneralArrayStorage<Dim> storage =
382  blitz::GeneralArrayStorage<Dim>())
383  : blitz::Array<DataT,Dim>(
384  extent0, extent1, extent2, extent3, extent4, extent5, extent6,
385  storage),
388  {}
389 
390 /*======================================================================*/
414 /*======================================================================*/
416  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
417  BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5,
418  BlitzIndexT extent6, BlitzIndexT extent7,
419  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
420  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
421  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
422  blitz::GeneralArrayStorage<Dim> storage =
423  blitz::GeneralArrayStorage<Dim>())
424  : blitz::Array<DataT,Dim>(
425  extent0, extent1, extent2, extent3, extent4, extent5, extent6,
426  extent7, storage),
429  {}
430 
431 /*======================================================================*/
456 /*======================================================================*/
458  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
459  BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5,
460  BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8,
461  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
462  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
463  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
464  blitz::GeneralArrayStorage<Dim> storage =
465  blitz::GeneralArrayStorage<Dim>())
466  : blitz::Array<DataT,Dim>(
467  extent0, extent1, extent2, extent3, extent4, extent5, extent6,
468  extent7, extent8, storage),
471  {}
472 
473 /*======================================================================*/
499 /*======================================================================*/
501  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
502  BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5,
503  BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8,
504  BlitzIndexT extent9,
505  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
506  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
507  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
508  blitz::GeneralArrayStorage<Dim> storage =
509  blitz::GeneralArrayStorage<Dim>())
510  : blitz::Array<DataT,Dim>(
511  extent0, extent1, extent2, extent3, extent4, extent5, extent6,
512  extent7, extent8, extent9, storage),
515  {}
516 
517 /*======================================================================*/
544 /*======================================================================*/
546  BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2,
547  BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5,
548  BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8,
549  BlitzIndexT extent9, BlitzIndexT extent10,
550  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
551  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
552  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
553  blitz::GeneralArrayStorage<Dim> storage =
554  blitz::GeneralArrayStorage<Dim>())
555  : blitz::Array<DataT,Dim>(
556  extent0, extent1, extent2, extent3, extent4, extent5, extent6,
557  extent7, extent8, extent9, extent10, storage),
560  {}
561 
562 /*======================================================================*/
582 /*======================================================================*/
584  DataT * restrict data, blitz::TinyVector<BlitzIndexT,Dim> const &shape,
585  blitz::TinyVector<BlitzIndexT,Dim> const &stride,
586  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
587  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
588  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
589  blitz::GeneralArrayStorage<Dim> storage =
590  blitz::GeneralArrayStorage<Dim>())
591  : blitz::Array<DataT,Dim>(data, shape, stride, storage),
594  {}
595 
596 /*======================================================================*/
620 /*======================================================================*/
622  DataT * restrict data, blitz::TinyVector<BlitzIndexT,Dim> const &shape,
623  blitz::preexistingMemoryPolicy deletionPolicy,
624  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
625  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
626  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
627  blitz::GeneralArrayStorage<Dim> storage =
628  blitz::GeneralArrayStorage<Dim>())
629  : blitz::Array<DataT,Dim>(data, shape, deletionPolicy, storage),
632  {}
633 
634 /*======================================================================*/
660 /*======================================================================*/
662  DataT * restrict data, blitz::TinyVector<BlitzIndexT,Dim> const &shape,
663  blitz::TinyVector<BlitzIndexT,Dim> const &stride,
664  blitz::preexistingMemoryPolicy deletionPolicy,
665  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
666  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
667  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
668  blitz::GeneralArrayStorage<Dim> storage =
669  blitz::GeneralArrayStorage<Dim>())
670  : blitz::Array<DataT,Dim>(data, shape, stride, storage),
673  {}
674 
675 /*======================================================================*/
690 /*======================================================================*/
692  blitz::TinyVector<BlitzIndexT,Dim> const &extents,
693  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
694  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
695  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
696  blitz::GeneralArrayStorage<Dim> storage =
697  blitz::GeneralArrayStorage<Dim>())
698  : blitz::Array<DataT,Dim>(extents, storage),
701  {}
702 
703 /*======================================================================*/
720 /*======================================================================*/
722  blitz::TinyVector<BlitzIndexT,Dim> const &lbounds,
723  blitz::TinyVector<BlitzIndexT,Dim> const &extents,
724  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
725  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
726  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
727  blitz::GeneralArrayStorage<Dim> storage =
728  blitz::GeneralArrayStorage<Dim>())
729  : blitz::Array<DataT,Dim>(lbounds, extents, storage),
732  {}
733 
734 /*======================================================================*/
752 /*======================================================================*/
754  blitz::Range const &r0,
755  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
756  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
757  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
758  blitz::GeneralArrayStorage<Dim> storage =
759  blitz::GeneralArrayStorage<Dim>())
760  : blitz::Array<DataT,Dim>(r0, storage),
763  {}
764 
765 /*======================================================================*/
784 /*======================================================================*/
786  blitz::Range const &r0, blitz::Range const &r1,
787  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
788  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
789  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
790  blitz::GeneralArrayStorage<Dim> storage =
791  blitz::GeneralArrayStorage<Dim>())
792  : blitz::Array<DataT,Dim>(r0, r1, storage),
795  {}
796 
797 /*======================================================================*/
818 /*======================================================================*/
820  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
821  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
822  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
823  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
824  blitz::GeneralArrayStorage<Dim> storage =
825  blitz::GeneralArrayStorage<Dim>())
826  : blitz::Array<DataT,Dim>(r0, r1, r2, storage),
829  {}
830 
831 /*======================================================================*/
853 /*======================================================================*/
855  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
856  blitz::Range const &r3,
857  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
858  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
859  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
860  blitz::GeneralArrayStorage<Dim> storage =
861  blitz::GeneralArrayStorage<Dim>())
862  : blitz::Array<DataT,Dim>(r0, r1, r2, r3, storage),
865  {}
866 
867 /*======================================================================*/
890 /*======================================================================*/
892  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
893  blitz::Range const &r3, blitz::Range const &r4,
894  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
895  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
896  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
897  blitz::GeneralArrayStorage<Dim> storage =
898  blitz::GeneralArrayStorage<Dim>())
899  : blitz::Array<DataT,Dim>(r0, r1, r2, r3, r4, storage),
902  {}
903 
904 /*======================================================================*/
928 /*======================================================================*/
930  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
931  blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5,
932  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
933  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
934  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
935  blitz::GeneralArrayStorage<Dim> storage =
936  blitz::GeneralArrayStorage<Dim>())
937  : blitz::Array<DataT,Dim>(r0, r1, r2, r3, r4, r5, storage),
940  {}
941 
942 /*======================================================================*/
967 /*======================================================================*/
969  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
970  blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5,
971  blitz::Range const &r6,
972  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
973  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
974  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
975  blitz::GeneralArrayStorage<Dim> storage =
976  blitz::GeneralArrayStorage<Dim>())
977  : blitz::Array<DataT,Dim>(r0, r1, r2, r3, r4, r5, r6, storage),
980  {}
981 
982 /*======================================================================*/
1008 /*======================================================================*/
1010  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
1011  blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5,
1012  blitz::Range const &r6, blitz::Range const &r7,
1013  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
1014  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
1015  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
1016  blitz::GeneralArrayStorage<Dim> storage =
1017  blitz::GeneralArrayStorage<Dim>())
1018  : blitz::Array<DataT,Dim>(r0, r1, r2, r3, r4, r5, r6, r7, storage),
1020  p_interpolator(InterpolatorFactory<DataT,Dim>::get(LinearIP))
1021  {}
1022 
1023 /*======================================================================*/
1050 /*======================================================================*/
1052  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
1053  blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5,
1054  blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8,
1055  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
1056  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
1057  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
1058  blitz::GeneralArrayStorage<Dim> storage =
1059  blitz::GeneralArrayStorage<Dim>())
1060  : blitz::Array<DataT,Dim>(
1061  r0, r1, r2, r3, r4, r5, r6, r7, r8, storage),
1063  p_interpolator(InterpolatorFactory<DataT,Dim>::get(LinearIP))
1064  {}
1065 
1066 /*======================================================================*/
1094 /*======================================================================*/
1096  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
1097  blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5,
1098  blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8,
1099  blitz::Range const &r9,
1100  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
1101  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
1102  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
1103  blitz::GeneralArrayStorage<Dim> storage =
1104  blitz::GeneralArrayStorage<Dim>())
1105  : blitz::Array<DataT,Dim>(
1106  r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, storage),
1108  p_interpolator(InterpolatorFactory<DataT,Dim>::get(LinearIP))
1109  {}
1110 
1111 /*======================================================================*/
1140 /*======================================================================*/
1142  blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2,
1143  blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5,
1144  blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8,
1145  blitz::Range const &r9, blitz::Range const &r10,
1146  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
1147  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
1148  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
1149  blitz::GeneralArrayStorage<Dim> storage =
1150  blitz::GeneralArrayStorage<Dim>())
1151  : blitz::Array<DataT,Dim>(
1152  r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, storage),
1154  p_interpolator(InterpolatorFactory<DataT,Dim>::get(LinearIP))
1155  {}
1156 
1157 /*======================================================================*/
1169 /*======================================================================*/
1170  Array(Array<DataT,Dim> const &array)
1171  : blitz::Array<DataT,Dim>(array),
1175  {}
1176 
1177 /*======================================================================*/
1199 /*======================================================================*/
1200  template<int Dim2, typename R0, typename R1, typename R2, typename R3,
1201  typename R4, typename R5, typename R6, typename R7, typename R8,
1202  typename R9, typename R10>
1203  Array(Array<DataT,Dim2> &array, R0 r0, R1 r1, R2 r2,
1204  R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10)
1205  : blitz::Array<DataT,Dim>(
1206  array, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10),
1210  {}
1211 
1212 /*======================================================================*/
1224 /*======================================================================*/
1226  blitz::Array<DataT,Dim> const &array,
1227  blitz::TinyVector<double,Dim> const &elementSizeUm = 1.0,
1228  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation =
1229  (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one))
1230  : blitz::Array<DataT,Dim>(array.shape()),
1232  p_interpolator(InterpolatorFactory<DataT,Dim>::get(LinearIP))
1233  {
1234  std::memcpy(
1235  this->data(), array.data(), array.size() * sizeof(DataT));
1236  }
1237 
1238 /*======================================================================*/
1242 /*======================================================================*/
1243  ~Array();
1244 
1245 /*======================================================================*/
1254 /*======================================================================*/
1256 
1257 /*======================================================================*/
1266 /*======================================================================*/
1267  Array<DataT,Dim> &operator=(blitz::Array<DataT,Dim> const &array);
1268 
1269 /*======================================================================*/
1278 /*======================================================================*/
1279  template<typename T_expr>
1280  Array<DataT,Dim> &operator=(blitz::ETBase<T_expr> const &expr);
1281 
1282 /*======================================================================*/
1293 /*======================================================================*/
1294  blitz::ListInitializationSwitch<typename blitz::Array<DataT,Dim>, DataT*>
1295  operator=(DataT x)
1296  {
1297  return blitz::ListInitializationSwitch<
1298  typename blitz::Array<DataT,Dim>, DataT*>(*this, x);
1299  }
1300 
1301 /*======================================================================*/
1307 /*======================================================================*/
1308  blitz::TinyVector<double,Dim> const &elementSizeUm() const
1309  {
1310  return _elementSizeUm;
1311  }
1312 
1313 /*======================================================================*/
1319 /*======================================================================*/
1320  void setElementSizeUm(blitz::TinyVector<double,Dim> const &elementSizeUm)
1321  {
1322  this->_elementSizeUm = elementSizeUm;
1323  }
1324 
1325 /*======================================================================*/
1331 /*======================================================================*/
1332  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation() const
1333  {
1334  return this->_transformation;
1335  }
1336 
1337 /*======================================================================*/
1343 /*======================================================================*/
1345  blitz::TinyMatrix<double,Dim+1,Dim+1> const &transformation)
1346  {
1348  }
1349 
1350 /*======================================================================*/
1357 /*======================================================================*/
1359  {
1360  return *(this->p_interpolator);
1361  }
1362 
1363 /*======================================================================*/
1369 /*======================================================================*/
1371  {
1372  delete this->p_interpolator;
1373  this->p_interpolator = interpolator.clone();
1374  }
1375 
1376 /*======================================================================*/
1402 /*======================================================================*/
1403  Array<DataT,Dim>& filterDeriche(double sigmaUm, int dim);
1404 
1405 /*======================================================================*/
1419 /*======================================================================*/
1421  blitz::TinyVector<double,Dim> const &targetElementSizeUm,
1422  iRoCS::ProgressReporter *pr = NULL);
1423 
1424 /*======================================================================*/
1442 /*======================================================================*/
1443  void load(std::string const &fileName, std::string const &dataset,
1444  iRoCS::ProgressReporter *progress = NULL);
1445 
1446 /*======================================================================*/
1464 /*======================================================================*/
1465  void load(BlitzH5File const &inFile, std::string const &dataset,
1466  iRoCS::ProgressReporter *progress = NULL);
1467 
1468 /*======================================================================*/
1485 /*======================================================================*/
1486  void save(
1487  std::string const &fileName, std::string const &dataset,
1488  int compression = 0, iRoCS::ProgressReporter *progress = NULL) const;
1489 
1490 /*======================================================================*/
1507 /*======================================================================*/
1508  void save(
1509  BlitzH5File &outFile, std::string const &dataset,
1510  int compression = 0, iRoCS::ProgressReporter *progress = NULL) const;
1511 
1512 /*======================================================================*/
1519 /*======================================================================*/
1520  blitz::TinyVector<double,Dim> lowerBoundUm() const;
1521 
1522 /*======================================================================*/
1529 /*======================================================================*/
1530  blitz::TinyVector<double,Dim> upperBoundUm() const;
1531 
1532 /*======================================================================*/
1550 /*======================================================================*/
1551  DataT valueAt(blitz::TinyVector<double,Dim> const &positionUm)
1552  const;
1553 
1554  protected:
1555 
1556 /*======================================================================*/
1560 /*======================================================================*/
1561  blitz::TinyVector<double,Dim> _elementSizeUm;
1562 
1563 /*======================================================================*/
1568 /*======================================================================*/
1569  blitz::TinyMatrix<double,Dim+1,Dim+1> _transformation;
1570 
1571 /*======================================================================*/
1576 /*======================================================================*/
1578 
1579  };
1580 
1581 }
1582 
1583 #include "Array.icc"
1584 
1585 #endif
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8, BlitzIndexT extent9, BlitzIndexT extent10, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking eleven extent parameters.
Definition: Array.hh:545
Array(Array< DataT, Dim > const &array)
Reference Constructor.
Definition: Array.hh:1170
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8, blitz::Range const &r9, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for ten dimensions.
Definition: Array.hh:1095
Array(BlitzIndexT extent0, BlitzIndexT extent1, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking two extent parameters.
Definition: Array.hh:198
blitz::TinyVector< double, Dim > upperBoundUm() const
Get the upper bound of the Array bounding box after application of the transformation in micrometers...
Array(blitz::_bz_ArrayExpr< T_expr > expr, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one))
Constructor from Array expression.
Definition: Array.hh:113
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for six dimensions.
Definition: Array.hh:929
Interpolator< DataT, Dim > * p_interpolator
The ArrayInterpolator to use when accessing sub-pixel Array positions using valueAt() and setValueAt(...
Definition: Array.hh:1577
TinyMatrixOperators.hh provides some missing operators when processing blitz++ TinyMatrices.
The Array class is an extension to the blitz++ Array class providing additional parameters element si...
Definition: Array.hh:85
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for two dimensions.
Definition: Array.hh:785
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking three extent parameters.
Definition: Array.hh:230
Array(DataT *restrict data, blitz::TinyVector< BlitzIndexT, Dim > const &shape, blitz::TinyVector< BlitzIndexT, Dim > const &stride, blitz::preexistingMemoryPolicy deletionPolicy, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Pre-existing data constructor with strides and ownership passing (if requested).
Definition: Array.hh:661
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for eight dimensions.
Definition: Array.hh:1009
Interpolate linearly between the values of adjacent pixels (d-linear interpolation) ...
Definition: Interpolator.hh:65
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for seven dimensions.
Definition: Array.hh:968
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking four extent parameters.
Definition: Array.hh:263
void setElementSizeUm(blitz::TinyVector< double, Dim > const &elementSizeUm)
Set the element size of this Array.
Definition: Array.hh:1320
Interpolator< DataT, Dim > const & interpolator() const
Get a read-only reference to the ArrayInterpolator applied to this Array.
Definition: Array.hh:1358
The traits class provides means to query specific information about different data types...
Definition: TypeTraits.hh:73
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking five extent parameters.
Definition: Array.hh:299
blitz::TinyVector< double, Dim > const & elementSizeUm() const
Get the element size of this Array.
Definition: Array.hh:1308
Array(DataT *restrict data, blitz::TinyVector< BlitzIndexT, Dim > const &shape, blitz::TinyVector< BlitzIndexT, Dim > const &stride, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Pre-existing data constructor with strides without ownership passing.
Definition: Array.hh:583
blitz::TinyMatrix< double, Dim+1, Dim+1 > const & transformation() const
Get the homogeneous transformation matrix of this Array.
Definition: Array.hh:1332
Array(blitz::Array< DataT, Dim > const &array, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one))
blitz++ Array Copy Constructor.
Definition: Array.hh:1225
blitz::TinyMatrix< double, Dim+1, Dim+1 > _transformation
The transformation matrix to apply when accessing the Array using valueAt() and setValueAt() ...
Definition: Array.hh:1569
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for five dimensions.
Definition: Array.hh:891
Array(std::string const &fileName, std::string const &dataset, iRoCS::ProgressReporter *progress=NULL)
Constructor from BlitzH5File.
The InterpolatorFactory class contains a factory method for creating a new Interpolator object using ...
Array(blitz::TinyVector< BlitzIndexT, Dim > const &lbounds, blitz::TinyVector< BlitzIndexT, Dim > const &extents, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array Constructor of specified size and storage format with index offset.
Definition: Array.hh:721
Array(blitz::Range const &r0, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for one dimension.
Definition: Array.hh:753
int BlitzIndexT
The native integer type for indexing blitz++ Arrays.
Definition: TypeTraits.hh:56
Array< DataT, Dim > & rescale(blitz::TinyVector< double, Dim > const &targetElementSizeUm, iRoCS::ProgressReporter *pr=NULL)
Rescale the Array so that the new Array element size is the given target element size.
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking nine extent parameters.
Definition: Array.hh:457
Classes and functions for sub-pixel Array access with different interpolation strategies.
DataT valueAt(blitz::TinyVector< double, Dim > const &positionUm) const
Get the Array value at the model (sub-pixel) position given.
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for four dimensions.
Definition: Array.hh:854
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for nine dimensions.
Definition: Array.hh:1051
Array< DataT, Dim > & filterDeriche(double sigmaUm, int dim)
Filter this Array with a recursive filter approximating a Gaussian (Deriche filter) along the selecte...
void load(std::string const &fileName, std::string const &dataset, iRoCS::ProgressReporter *progress=NULL)
Set the Array data and meta-data according to a specification stored in an HDF5 file.
void clone(T *&dst, S *src, int n)
Definition: svm_defines.hh:80
blitz::ListInitializationSwitch< typename blitz::Array< DataT, Dim >, DataT * > operator=(DataT x)
List assignment operator.
Definition: Array.hh:1295
Array< DataT, Dim > & operator=(Array< DataT, Dim > const &array)
(Copy) Assignment operator.
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8, blitz::Range const &r9, blitz::Range const &r10, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for eleven dimensions.
Definition: Array.hh:1141
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8, BlitzIndexT extent9, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking ten extent parameters.
Definition: Array.hh:500
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking six extent parameters.
Definition: Array.hh:336
~Array()
Destructor.
blitz::TinyVector< double, Dim > _elementSizeUm
The voxel extents in micrometers per voxel.
Definition: Array.hh:1561
Array(blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Default Constructor.
Definition: Array.hh:138
Array(blitz::TinyVector< BlitzIndexT, Dim > const &extents, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array Constructor of specified size and storage format.
Definition: Array.hh:691
void save(std::string const &fileName, std::string const &dataset, int compression=0, iRoCS::ProgressReporter *progress=NULL) const
Save the Array data and meta-data to an HDF5 file.
Array(DataT *restrict data, blitz::TinyVector< BlitzIndexT, Dim > const &shape, blitz::preexistingMemoryPolicy deletionPolicy, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Pre-existing data constructor with ownership passing (if requested).
Definition: Array.hh:621
blitz::TinyVector< double, Dim > lowerBoundUm() const
Get the lower bound of the Array bounding box after application of the transformation in micrometers...
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking eight extent parameters.
Definition: Array.hh:415
void setInterpolator(Interpolator< DataT, Dim > const &interpolator)
Set the Interpolator applied to this Array.
Definition: Array.hh:1370
Array(blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Empty Array constructor with specified addressing space for three dimensions.
Definition: Array.hh:819
Array(BlitzIndexT extent0, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking one extent parameter.
Definition: Array.hh:167
void setTransformation(blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation)
Set the homogeneous transformation matrix of this Array.
Definition: Array.hh:1344
The Interpolator class is the base class of all classes implementing interpolation strategies for sub...
Definition: Interpolator.hh:92
virtual Interpolator< DataT, Dim > * clone() const =0
Get a deep copy of this Interpolator object.
Array(Array< DataT, Dim2 > &array, R0 r0, R1 r1, R2 r2, R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10)
Mixed type Constructor.
Definition: Array.hh:1203
Array(BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
Constructor taking seven extent parameters.
Definition: Array.hh:374