LatNet Builder Manual
2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
|
List of filters for merit values. More...
#include <MeritFilterList.h>
Inherits LatBuilder::MeritFilterListPolicy< LR, ET >.
Classes | |
class | Seq |
Output sequence from the filters. More... | |
Public Types | |
typedef MeritFilterListPolicy< LR, ET > | Policy |
Public Member Functions | |
template<class MERITSEQ > | |
Seq< MERITSEQ > | apply (MERITSEQ meritSeq) const |
Applies the filters to the input sequence meritSeq of merit values. More... | |
List of filters for merit values.
Transforms sequences of merit values element by element. Consits of a stack of filters, applied sequentially to each merit value.
Processes merit values received from its input and produces filtered merit values from its output.
The implementation for scalar merit values simply passes through a chain of filters.
The implementation for multilevel merit values first pass through a chain of embedded merit filters. Next, it is converted to simple merit values using a combiner. Then, it passes through a chain of simple merit filters, before it reaches the output.
When a candidate lattice is rejected by a filter, the MeritFilterList::onReject() signal is emitted, no further (downstream) filters are applied and the returned merit value is std::numeric_limits<Real>::infinity()
.
A filter should return true
when it accepts a value, or false
if it rejects it.
base()
would not know in advance how many times to call base()
to trace back the original sequence. These are the main reasons why there are filters in LatBuilder.
|
inline |
Applies the filters to the input sequence meritSeq
of merit values.
meritSeq
as its input.MERITSEQ | Type of sequence of merit values at the source of the filters. |