Signal/Geometry Processing Library (SPL)  1.1.24
Sequence2.hpp File Reference

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...
 

Detailed Description

This file contains code for the Sequence2 template class.

Macro Definition Documentation

#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.