#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
#include <vector>
#include <cfloat>
#include <algorithm>
#include <numeric>
#include <stdint.h>
#include <boost/numeric/ublas/matrix.hpp>
Go to the source code of this file.
Classes | |
struct | ms_summary |
struct | Abs< T > |
Template class for generic, type-inferred absolute value. More... | |
Functions | |
bool | isDivisibleBy2 (size_t n, int level) |
True if and only if n is divisible by 2 <level> times. | |
template<class Matrix > | |
bool | in_bounds (const Matrix &mat, size_t row, size_t col) |
bool | read_matrix (const char *filename, boost::numeric::ublas::matrix< double > &mat) |
template<class Matrix > | |
void | output (const Matrix &mat, std::ostream &out=std::cout) |
template<class Matrix > | |
ms_summary | get_summary (const Matrix &orig, const Matrix &repro, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix > | |
double | rmse (const Matrix &orig, const Matrix &repro, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix > | |
double | nrmse (const Matrix &orig, const Matrix &repro, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
Normalized rms error. | |
template<class Matrix > | |
double | psnr (const Matrix &orig, const Matrix &repro) |
Peak Signal to Noise Ratio. | |
template<class Matrix > | |
double | similarity (const Matrix &orig, const Matrix &repro) |
Similarity (NRMSE defined to be symmetric, with max and min taken from both matrices) | |
template<class Matrix > | |
void | standardize (Matrix &mat) |
template<typename T > | |
T | abs_val (T num) |
Generic, type-inferred absolute value function. | |
template<class Matrix > | |
Matrix::value_type | sum (const Matrix &mat, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix > | |
double | mean_val (const Matrix &mat, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix > | |
Matrix::value_type | max_val (const Matrix &mat, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix > | |
Matrix::value_type | min_val (const Matrix &mat, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix > | |
Matrix::value_type | abs_max_val (const Matrix &mat, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<class Matrix , typename V > | |
void | set_all (const Matrix &mat, V value, size_t row_start=0, size_t row_end=std::numeric_limits< size_t >::max(), size_t col_start=0, size_t col_end=std::numeric_limits< size_t >::max()) |
template<typename Iterator1 , typename Iterator2 > | |
double | manhattan_distance (Iterator1 first1, Iterator1 last1, Iterator2 first2) |
template<typename Iterator1 , typename Iterator2 > | |
double | euclidean_distance (Iterator1 first1, Iterator1 last1, Iterator2 first2) |
template<class Matrix > | |
double | interp_bilinear (const Matrix &mat, double x, double y) |
Interpolates a value for point (x,y) based on values in the Matrix. |
Matrix::value_type abs_max_val | ( | const Matrix & | mat, |
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 265 of file matrix_utils.h.
T abs_val | ( | T | num ) |
Generic, type-inferred absolute value function.
Applies fabs to doubles, labs to longs, etc.
Definition at line 188 of file matrix_utils.h.
double euclidean_distance | ( | Iterator1 | first1, |
Iterator1 | last1, | ||
Iterator2 | first2 | ||
) |
Definition at line 313 of file matrix_utils.h.
ms_summary get_summary | ( | const Matrix & | orig, |
const Matrix & | repro, | ||
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 62 of file matrix_utils.h.
bool in_bounds | ( | const Matrix & | mat, |
size_t | row, | ||
size_t | col | ||
) |
Definition at line 21 of file matrix_utils.h.
double interp_bilinear | ( | const Matrix & | mat, |
double | x, | ||
double | y | ||
) |
Interpolates a value for point (x,y) based on values in the Matrix.
Finds the nearest values by taking floor and ceil of x and y, then uses bilinear interpolation to estimate the value at (x,y).
Definition at line 331 of file matrix_utils.h.
bool isDivisibleBy2 | ( | size_t | n, |
int | level | ||
) |
True if and only if n is divisible by 2 <level> times.
double manhattan_distance | ( | Iterator1 | first1, |
Iterator1 | last1, | ||
Iterator2 | first2 | ||
) |
Definition at line 299 of file matrix_utils.h.
Matrix::value_type max_val | ( | const Matrix & | mat, |
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 228 of file matrix_utils.h.
double mean_val | ( | const Matrix & | mat, |
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 213 of file matrix_utils.h.
Matrix::value_type min_val | ( | const Matrix & | mat, |
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 247 of file matrix_utils.h.
double nrmse | ( | const Matrix & | orig, |
const Matrix & | repro, | ||
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Normalized rms error.
Definition at line 110 of file matrix_utils.h.
void output | ( | const Matrix & | mat, |
std::ostream & | out = std::cout |
||
) |
Definition at line 30 of file matrix_utils.h.
double psnr | ( | const Matrix & | orig, |
const Matrix & | repro | ||
) |
Peak Signal to Noise Ratio.
Definition at line 129 of file matrix_utils.h.
bool read_matrix | ( | const char * | filename, |
boost::numeric::ublas::matrix< double > & | mat | ||
) |
double rmse | ( | const Matrix & | orig, |
const Matrix & | repro, | ||
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 92 of file matrix_utils.h.
void set_all | ( | const Matrix & | mat, |
V | value, | ||
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 283 of file matrix_utils.h.
double similarity | ( | const Matrix & | orig, |
const Matrix & | repro | ||
) |
Similarity (NRMSE defined to be symmetric, with max and min taken from both matrices)
Definition at line 141 of file matrix_utils.h.
void standardize | ( | Matrix & | mat ) |
Definition at line 152 of file matrix_utils.h.
Matrix::value_type sum | ( | const Matrix & | mat, |
size_t | row_start = 0 , |
||
size_t | row_end = std::numeric_limits<size_t>::max() , |
||
size_t | col_start = 0 , |
||
size_t | col_end = std::numeric_limits<size_t>::max() |
||
) |
Definition at line 195 of file matrix_utils.h.