10 #if !defined(ampcor_libampcor_correlators_Sequential_h)
11 #define ampcor_libampcor_correlators_Sequential_h
13 #include <isce3/signal/Signal.h>
17 template <
typename raster_t>
22 using raster_type = raster_t;
24 using view_type =
typename raster_type::view_type;
25 using constview_type =
typename raster_type::constview_type;
27 using cell_type =
typename raster_type::cell_type;
29 using value_type =
typename cell_type::value_type;
31 using slice_type =
typename raster_type::slice_type;
33 using shape_type =
typename raster_type::shape_type;
35 using layout_type =
typename raster_type::layout_type;
37 using index_type =
typename raster_type::index_type;
39 using size_type =
typename raster_type::size_type;
42 using tile_type = pyre::grid::grid_t<cell_type,
44 pyre::memory::view_t<cell_type>>;
49 inline void addReferenceTile(size_type pid,
const constview_type & ref);
51 inline void addTargetTile(size_type pid,
const constview_type & tgt);
54 inline auto adjust() ->
const value_type *;
57 inline auto pairs() const -> size_type;
59 inline auto arena() const -> cell_type *;
62 inline
void dump() const;
67 inline Sequential(size_type pairs,
68 const layout_type & refLayout, const layout_type & tgtLayout,
69 size_type refineFactor=2, size_type refineMargin=8,
70 size_type zoomFactor=4);
76 inline auto _detect(const cell_type * cArena,
77 size_type refDim, size_type tgtDim) const -> value_type *;
79 inline auto _refStats(value_type * rArena,
80 size_type refDim, size_type tgtDim) const -> value_type *;
82 inline auto _sat(const value_type * rArena,
83 size_type refDim, size_type tgtDim) const -> value_type *;
86 inline auto _tgtStats(const value_type * sat,
87 size_type refDim, size_type tgtDim, size_type corDim
88 ) const -> value_type *;
90 inline auto _correlate(const value_type * rArena,
91 const value_type * refStats, const value_type * tgtStats,
92 size_type refDim, size_type tgtDim, size_type corDim
93 ) const -> value_type *;
95 inline auto _maxcor(const value_type * gamma, size_type corDim) const ->
int *;
97 inline
void _nudge(
int * locations, size_type refDim, size_type tgtDim) const;
99 inline auto _refinedArena() const -> cell_type *;
101 inline
void _refRefine(cell_type * coarseArena, cell_type * refinedArena) const;
103 inline
void _tgtMigrate(cell_type * coarseArena,
int * locations,
104 cell_type * refinedArena) const;
106 inline
void _tgtRefine(cell_type * refinedArena) const;
108 inline
void _deramp(cell_type * arena) const;
110 inline auto _zoomcor(value_type * gamma) const -> value_type *;
112 inline auto _offsetField(const
int * zoomed) -> const value_type *;
115 inline auto _zoomcor_r2r(value_type * gamma) const -> value_type *;
121 const size_type _pairs;
122 const size_type _refineFactor;
123 const size_type _refineMargin;
124 const size_type _zoomFactor;
127 const layout_type _refLayout;
129 const layout_type _tgtLayout;
131 const layout_type _corLayout;
133 const layout_type _refRefinedLayout;
135 const layout_type _tgtRefinedLayout;
137 const layout_type _corRefinedLayout;
139 const layout_type _corZoomedLayout;
142 const size_type _refCells;
144 const size_type _tgtCells;
146 const size_type _corCells;
148 const size_type _refRefinedCells;
150 const size_type _tgtRefinedCells;
153 const size_type _refFootprint;
155 const size_type _tgtFootprint;
157 const size_type _corFootprint;
159 const size_type _refRefinedFootprint;
161 const size_type _tgtRefinedFootprint;
167 value_type * const _offsets;
Definition: correlators.h:51