|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectbunwarpj.MathTools
public class MathTools
This class has the math methods to deal with b-splines and images.
| Field Summary | |
|---|---|
private static double |
FLT_EPSILON
float epsilon |
private static int |
MAX_SVD_ITERATIONS
maximum number of iteration for the Singular Value Decomposition |
| Constructor Summary | |
|---|---|
MathTools()
|
|
| Method Summary | |
|---|---|
static double[][] |
antiSymmetricPadding(double[][] c,
int extra)
|
static double[] |
antiSymmetricPadding(double[] c,
int n,
int extra)
|
static float[] |
antiSymmetricPadding(float[] c,
int n,
int extra)
|
static double |
Bspline01(double x)
B-spline 01. |
static double |
Bspline02(double x)
B-spline 02. |
static double |
Bspline03(double x)
B-spline 03. |
static double |
EuclideanNorm(double a,
double b)
Euclidean Norm. |
static boolean |
invertMatrixSVD(int Ydim,
int Xdim,
double[][] B,
double[][] iB)
Invert a matrix by the Singular Value Decomposition method. |
static double[] |
linearLeastSquares(double[][] A,
double[] b)
Gives the least-squares solution to (A * x = b) such that (A^T * A)^-1 * A^T * b = x is a vector of size (column), where A is a (line x column) matrix, and where b is a vector of size (line). |
static double |
nchoosek(int n,
int k)
N choose K. |
static void |
QRdecomposition(double[][] Q,
double[][] R)
Decomposes the (line x column) input matrix Q into an orthonormal output matrix Q of same size (line x column) and an upper-diagonal square matrix R of size (column x column), such that the matrix product (Q * R) gives the input matrix, and such that the matrix product (Q^T * Q) gives the identity. |
static void |
showMatrix(int Ydim,
int Xdim,
double[][] A)
Method to display the matrix in the command line. |
static void |
singularValueBackSubstitution(double[][] U,
double[] W,
double[][] V,
double[] B,
double[] X)
solve (U.W.Transpose(V)).X == B in terms of X {U, W, V} are given by SingularValueDecomposition by convention, set w[i,j]=0 to get (1/w[i,j])=0 the size of the input matrix U is (Lines x Columns) the size of the vector (1/W) of singular values is (Columns) the size of the untransposed orthogonal matrix V is (Columns x Columns) the size of the input vector B is (Lines) the size of the output vector X is (Columns) |
static void |
singularValueDecomposition(double[][] U,
double[] W,
double[][] V)
Singular Value Decomposition. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static final double FLT_EPSILON
private static final int MAX_SVD_ITERATIONS
| Constructor Detail |
|---|
public MathTools()
| Method Detail |
|---|
public static double Bspline01(double x)
x - public static double Bspline02(double x)
x - public static double Bspline03(double x)
x -
public static double EuclideanNorm(double a,
double b)
a - b -
public static boolean invertMatrixSVD(int Ydim,
int Xdim,
double[][] B,
double[][] iB)
Ydim - input, Y-dimensionXdim - input, X-dimensionB - input, matrix to invertiB - output, inverted matrix
public static double[] linearLeastSquares(double[][] A,
double[] b)
A - An input matrix A[line][column] of size (line x column)b - An input vector b[line] of size (line)
public static double nchoosek(int n,
int k)
n - k -
public static void QRdecomposition(double[][] Q,
double[][] R)
Q - An in-place (line x column) matrix Q[line][column], which
expects as input the matrix to decompose, and which returns as
output an orthonormal matrixR - An output (column x column) square matrix R[column][column]
public static void showMatrix(int Ydim,
int Xdim,
double[][] A)
Ydim - Y-dimensionXdim - X-dimensionA - matrix to display
public static void singularValueDecomposition(double[][] U,
double[] W,
double[][] V)
U - input matrixW - vector of singular valuesV - untransposed orthogonal matrix
public static void singularValueBackSubstitution(double[][] U,
double[] W,
double[][] V,
double[] B,
double[] X)
U - input matrixW - vector of singular valuesV - untransposed orthogonal matrixB - input vectorX - returned solution
public static double[][] antiSymmetricPadding(double[][] c,
int extra)
public static double[] antiSymmetricPadding(double[] c,
int n,
int extra)
public static float[] antiSymmetricPadding(float[] c,
int n,
int extra)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||