MyraMath
Classes | Functions
swaps.h File Reference

Routines related to swap sequences, often used during pivoting. More...

#include <myramath/MYRAMATH_EXPORT.h>
#include <myramath/utility/Number.h>
#include <myramath/utility/eprintf.h>
#include <myramath/utility/detail/ssize.h>
#include <myramath/utility/detail/sdistance.h>
#include <myramath/dense/intRange.h>
#include <vector>
Include dependency graph for swaps.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  myra::VectorRange< Number >
 Represents a mutable VectorRange. More...
 
class  myra::MatrixRange< Number >
 Represents a mutable MatrixRange. More...
 
class  myra::Matrix< Number >
 Tabulates an IxJ matrix. Allows random access, has column major layout to be compatible with BLAS/LAPACK. More...
 

Functions

void myra::swap_vector (const intCRange &swaps, const intRange &x)
 Applies swaps to an intRange.
 
void myra::iswap_vector (const intCRange &swaps, const intRange &x)
 Inverts swaps on an intRange.
 
template<class T >
void myra::swap_range (const intCRange &swaps, T *begin, T *end)
 Applies swaps on a range of T*.
 
template<class T >
void myra::iswap_range (const intCRange &swaps, T *begin, T *end)
 Inverts swaps on a range of T*.
 
template<class T >
void myra::swap_vector (const intCRange &swaps, std::vector< T > &v)
 Applies swaps to a std::vector<T>
 
template<class T >
void myra::iswap_vector (const intCRange &swaps, std::vector< T > &v)
 Inverts swaps on a std::vector<T>
 
void myra::inverse_perm (const intCRange &perm, const intRange &iperm)
 Returns the inverse of a given permutation.
 
std::vector< int > myra::inverse_perm (const intCRange &perm)
 Returns the inverse of a given permutation.
 
void myra::swaps2iswaps (const intCRange &swaps, const intRange &iswaps)
 Returns the inverse of a given swap sequence.
 
std::vector< int > myra::swaps2iswaps (const intCRange &swaps)
 Returns the inverse of a given swap sequence.
 
void myra::perm2swaps (const intCRange &perm, const intRange &swaps)
 Returns a sequence of swaps that applies the given permutation.
 
std::vector< int > myra::perm2swaps (const intCRange &perm)
 Returns a sequence of swaps that applies the given permutation.
 
void myra::swaps2perm (const intCRange &swaps, const intRange &perm)
 Returns a permutation that applies the given sequence of swaps.
 
std::vector< int > myra::swaps2perm (const intCRange &swaps)
 Returns a permutation that applies the given sequence of swaps.
 
void myra::swaps2iperm (const intCRange &swaps, const intRange &perm)
 Returns a permutation that inverts the given sequence of swaps.
 
std::vector< int > myra::swaps2iperm (const intCRange &swaps)
 Returns a permutation that inverts the given sequence of swaps.
 
template<class Number >
Matrix< Number > myra::swaps2Matrix (const intCRange &swaps)
 Given a swaps sequence, returns an equivalent permutation Matrix, P.
 
template<>
Matrix< NumberS > myra::swaps2Matrix< NumberS > (const intCRange &swaps)
 Given a swaps sequence, returns an equivalent permutation Matrix, P.
 
template<>
Matrix< NumberD > myra::swaps2Matrix< NumberD > (const intCRange &swaps)
 Given a swaps sequence, returns an equivalent permutation Matrix, P.
 
template<>
Matrix< NumberC > myra::swaps2Matrix< NumberC > (const intCRange &swaps)
 Given a swaps sequence, returns an equivalent permutation Matrix, P.
 
template<>
Matrix< NumberZ > myra::swaps2Matrix< NumberZ > (const intCRange &swaps)
 Given a swaps sequence, returns an equivalent permutation Matrix, P.
 
void myra::swap_rows (const intCRange &swaps, const MatrixRange< NumberS > &X)
 Applies swaps along the rows of a MatrixRange (think P*X)
 
void myra::swap_rows (const intCRange &swaps, const MatrixRange< NumberD > &X)
 Applies swaps along the rows of a MatrixRange (think P*X)
 
void myra::swap_rows (const intCRange &swaps, const MatrixRange< NumberC > &X)
 Applies swaps along the rows of a MatrixRange (think P*X)
 
void myra::swap_rows (const intCRange &swaps, const MatrixRange< NumberZ > &X)
 Applies swaps along the rows of a MatrixRange (think P*X)
 
void myra::iswap_rows (const intCRange &swaps, const MatrixRange< NumberS > &X)
 Inverts swaps along the rows of a MatrixRange (think P'*X)
 
void myra::iswap_rows (const intCRange &swaps, const MatrixRange< NumberD > &X)
 Inverts swaps along the rows of a MatrixRange (think P'*X)
 
void myra::iswap_rows (const intCRange &swaps, const MatrixRange< NumberC > &X)
 Inverts swaps along the rows of a MatrixRange (think P'*X)
 
void myra::iswap_rows (const intCRange &swaps, const MatrixRange< NumberZ > &X)
 Inverts swaps along the rows of a MatrixRange (think P'*X)
 
void myra::swap_columns (const intCRange &swaps, const MatrixRange< NumberS > &X)
 Applies swaps along the columns of a MatrixRange (think X*P)
 
void myra::swap_columns (const intCRange &swaps, const MatrixRange< NumberD > &X)
 Applies swaps along the columns of a MatrixRange (think X*P)
 
void myra::swap_columns (const intCRange &swaps, const MatrixRange< NumberC > &X)
 Applies swaps along the columns of a MatrixRange (think X*P)
 
void myra::swap_columns (const intCRange &swaps, const MatrixRange< NumberZ > &X)
 Applies swaps along the columns of a MatrixRange (think X*P)
 
void myra::iswap_columns (const intCRange &swaps, const MatrixRange< NumberS > &X)
 Inverts swaps along the columns of a MatrixRange (think X*P')
 
void myra::iswap_columns (const intCRange &swaps, const MatrixRange< NumberD > &X)
 Inverts swaps along the columns of a MatrixRange (think X*P')
 
void myra::iswap_columns (const intCRange &swaps, const MatrixRange< NumberC > &X)
 Inverts swaps along the columns of a MatrixRange (think X*P')
 
void myra::iswap_columns (const intCRange &swaps, const MatrixRange< NumberZ > &X)
 Inverts swaps along the columns of a MatrixRange (think X*P')
 
void myra::swap_vector (const intCRange &swaps, const VectorRange< NumberS > &x)
 Applies swaps to a VectorRange (think P*x)
 
void myra::swap_vector (const intCRange &swaps, const VectorRange< NumberD > &x)
 Applies swaps to a VectorRange (think P*x)
 
void myra::swap_vector (const intCRange &swaps, const VectorRange< NumberC > &x)
 Applies swaps to a VectorRange (think P*x)
 
void myra::swap_vector (const intCRange &swaps, const VectorRange< NumberZ > &x)
 Applies swaps to a VectorRange (think P*x)
 
void myra::iswap_vector (const intCRange &swaps, const VectorRange< NumberS > &x)
 Inverts swaps on a VectorRange (think P'*x)
 
void myra::iswap_vector (const intCRange &swaps, const VectorRange< NumberD > &x)
 Inverts swaps on a VectorRange (think P'*x)
 
void myra::iswap_vector (const intCRange &swaps, const VectorRange< NumberC > &x)
 Inverts swaps on a VectorRange (think P'*x)
 
void myra::iswap_vector (const intCRange &swaps, const VectorRange< NumberZ > &x)
 Inverts swaps on a VectorRange (think P'*x)
 

Detailed Description

Routines related to swap sequences, often used during pivoting.