This file contains code for the Sequence2 template class. More...
#include <SPL/config.hpp>
#include <iostream>
#include <vector>
#include <SPL/Array2.hpp>
#include <SPL/Sequence.hpp>
#include <SPL/Sequence1.hpp>
#include <SPL/math.hpp>
Go to the source code of this file.
Classes | |
class | SPL::Sequence2< T > |
A two-dimensional sequence class with lazy copying and reference counting. More... | |
Macros | |
#define | SPL_SEQUENCE2_USE_NEW_CONV |
Defining this symbol will enable extra code for debugging. More... | |
#define | SPL_SEQUENCE2_INLINE inline |
Allow the inlining of functions. More... | |
Typedefs | |
typedef Sequence2< double > | SPL::RealSequence2 |
Real sequence. More... | |
typedef Sequence2< int > | SPL::IntSequence2 |
Integer sequence. More... | |
Functions | |
template<class T > | |
std::ostream & | SPL::operator<< (std::ostream &out, const Sequence2< T > &f) |
Output a sequence to a stream. More... | |
template<class T > | |
std::istream & | SPL::operator>> (std::istream &in, Sequence2< T > &f) |
Input a sequence from a stream. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator+ (const Sequence2< T > &f, const Sequence2< T > &g) |
Compute the sum of two sequences. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator- (const Sequence2< T > &f, const Sequence2< T > &g) |
Compute the difference of two sequences. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator* (const Sequence2< T > &f, const Sequence2< T > &g) |
Compute the (element-wise) product of two sequences. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator/ (const Sequence2< T > &f, const Sequence2< T > &g) |
Compute the (element-wise) quotient of two sequences. More... | |
template<class T > | |
Sequence2< T > | SPL::add (const Sequence2< T > &f, const Sequence2< T > &g) |
Compute the sum of two sequences with potentially differing domains. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator+ (const T &value, const Sequence2< T > &f) |
Add a value to a sequence. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator+ (const Sequence2< T > &f, const T &value) |
Add a value to a sequence. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator- (const Sequence2< T > &f, const T &value) |
Subtract a value from a sequence. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator* (const T &value, const Sequence2< T > &f) |
Compute a scalar multiple of a sequence. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator* (const Sequence2< T > &f, const T &value) |
Compute a scalar multiple of a sequence. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::operator/ (const Sequence2< T > &f, const T &value) |
Divide a sequence by a scalar. More... | |
template<class T > | |
bool | SPL::operator== (const Sequence2< T > &f, const Sequence2< T > &g) |
Test two sequences for equality. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE bool | SPL::operator!= (const Sequence2< T > &f, const Sequence2< T > &g) |
Test two sequences for inequality. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE bool | SPL::approxEqual (const Sequence2< T > &f, const Sequence2< T > &g, T threshold=1e-9) |
Test two sequences for approximate equality. More... | |
template<class T > | |
Sequence2< T > | SPL::subsequence (const Sequence2< T > &f, int startX, int startY, int width, int height) |
Extract a subsequence from a sequence. More... | |
template<class T > | |
SPL_SEQUENCE2_INLINE Sequence2< T > | SPL::translate (const Sequence2< T > &f, int deltaX, int deltaY) |
Translate a sequence by the specified amount. More... | |
template<class T > | |
Sequence2< T > | SPL::convolve (const Sequence2< T > &f, const Sequence2< T > &g, int mode) |
Compute the convolution of two sequences. More... | |
template<class T > | |
Sequence2< T > | SPL::convolveSeparable (const Sequence2< T > &f, const Sequence1< T > &horzFilt, const Sequence1< T > &vertFilt, int mode=ConvolveMode::full) |
Compute the convolution of a sequence with two 1-D filters (i.e., convolution with a separable filter). More... | |
template<class T > | |
Sequence2< T > | SPL::downsample (const Sequence2< T > &f, int factorX, int factorY) |
Downsample a sequence in each of the horizontal and vertical directions by the specified factors. More... | |
template<class T > | |
Sequence2< T > | SPL::upsample (const Sequence2< T > &f, int factorX, int factorY) |
Upsample a sequence in each of the horizontal and vertical directions by the specified factors. More... | |
template<class T > | |
Sequence2< T > | SPL::upsample (const Sequence2< T > &f, int factorX, int factorY, int padX, int padY) |
Upsample a sequence in each of the horizontal and vertical directions by the specified factors. More... | |
template<class T > | |
Array2< Sequence2< T > > | SPL::polyphaseSplit (const Sequence2< T > &seq, int typeX, int numPhasesX, int typeY, int numPhasesY) |
Split a sequence into its polyphase components. More... | |
template<class T > | |
Sequence2< T > | SPL::polyphaseJoin (const Array2< Sequence2< T > > &comps, int typeX, int typeY) |
Reassemble a sequence from its polyphase components. More... | |
This file contains code for the Sequence2 template class.
#define SPL_SEQUENCE2_INLINE inline |
Allow the inlining of functions.
#define SPL_SEQUENCE2_USE_NEW_CONV |
Defining this symbol will enable extra code for debugging.
Defining this symbol will enable some new code for convolution.