public class MatchingPursuit extends BasisFunctionLibrary implements java.lang.Cloneable
DFunction, Fdual, Fprimary
Constructor and Description |
---|
MatchingPursuit(DiscreteFunction f)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
add(MultiscaleFunction fprimary,
MultiscaleFunction fdual)
Add a clone of the given MultiscaleFunctions
to the internal arrays of MultiscaleFunctions.
|
java.lang.Object |
clone() |
void |
diagnostic(double tol)
Check the validity of the
current matching algorithm.
|
double[][] |
forcedMatch(int pos)
Force the system to select the given
element as the best match.
|
double[] |
getCoefs()
Recover the matching coefficients.
|
int[] |
getRecord()
all matches are recorded
so one can trace them back
|
double[] |
getRecordedNorms()
Trace back how much of the
norm was taken out at each
match.
|
double[][] |
match()
Does the matching 1 time and return
the TF representation.
|
double[][] |
match(int j)
Does the matching j times and
return the TF representation.
|
double[][] |
matchAll(double tol)
Repeatly match until it remains less
than tol * 100 percent of the original
L2 norm; no matter what, at least one
match will be done.
|
void |
setData(DiscreteFunction f)
Allows the user to change the
DiscreteFunction (see constructor).
|
add, add, add, add, checkBiorthogonality, cloneArrayDiscreteFunction, getData, getDual, getMorseThreshold, getPrimary, getResidue, getResidues, getSize, getWeigth, getWeigths, includeFourier, includeMasslessFourier, norm, norm, setMorseThreshold
public MatchingPursuit(DiscreteFunction f)
public void add(MultiscaleFunction fprimary, MultiscaleFunction fdual)
BasisFunctionLibrary
add
in class BasisFunctionLibrary
public java.lang.Object clone()
clone
in class BasisFunctionLibrary
public int[] getRecord()
public double[] getRecordedNorms()
public double[] getCoefs()
public void setData(DiscreteFunction f)
BasisFunctionLibrary
setData
in class BasisFunctionLibrary
public void diagnostic(double tol) throws MaximumIterationsExceededException
java.lang.IllegalArgumentException
- if
the matching failsMaximumIterationsExceededException
- if it can't
match one of the elements of the dictionnaryjava.lang.IllegalArgumentException
- if tol is
is negativepublic double[][] match()
public double[][] matchAll(double tol) throws MaximumIterationsExceededException
tol
- percentile of energyjava.lang.IllegalArgumentException
- if tol is not within the interval [0,1]MaximumIterationsExceededException
- if the number of required match exceeds 5 times
the size of the dictionnary (it should be a more
than confortable margin unless the problem is
ill-posed, change the dictionnary if it doesn't work)public double[][] forcedMatch(int pos)
public double[][] match(int j)
number
- of iterationsjava.lang.IllegalArgumentException
- if j is not positive