Lattice Builder Manual Software Package for Constructing Rank-1 Lattices

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Classes | Public Types | Public Member Functions | Protected Types | List of all members
LatBuilder::MeritSeq::CoordUniformInnerProdFast< LAT, COMPRESS > Class Template Reference

FFT-based implementation of the inner product for a circulant sequence of vector with a single vector. More...

`#include <CoordUniformInnerProdFast.h>`

## Classes
class | Seq
| Sequence of inner product values. More...

## Public Types
typedef Storage < LatType::EMBEDDED, COMPRESS > | InternalStorage
typedef CoordUniformStateList < LatType::EMBEDDED, COMPRESS > | StateList
typedef Storage< LAT, COMPRESS > ::MeritValue | MeritValue

## Public Member Functions
template<class K >
| CoordUniformInnerProdFast (Storage< LAT, COMPRESS > storage, const Kernel::Base< K > &kernel)
| Constructor. More...
const Storage< LAT, COMPRESS > & | storage () const
| Returns the storage configuration instance.
const InternalStorage & | internalStorage () const
| Returns the internal storage configuration instance.
const RealVector & | kernelValues () const
| Returns the vector of kernel values.
const std::vector < boost::numeric::ublas::range > & | levelRanges () const
| Returns the vector of per-level ranges of indices.
const std::vector < FFTComplexVector > & | circulantFFT () const
| Returns the FFT's of the first column of each circulant submatrix in the horizontal block-circulant matrix.
template<class GENSEQ , class E >
Seq< GENSEQ > | prodSeq (const GENSEQ &genSeq, const boost::numeric::ublas::vector_expression< E > &vec) const
| Creates a new sequence of inner product values by applying a stride permutation based on `genSeq` to the vector of kernel values, then by computing the inner product with `vec`. More...

## Protected Types
typedef fftw< Real >::real_vector | FFTRealVector
typedef fftw< Real > ::complex_vector | FFTComplexVector

## Detailed Description

### template<LatType LAT, Compress COMPRESS>
class LatBuilder::MeritSeq::CoordUniformInnerProdFast< LAT, COMPRESS >

FFT-based implementation of the inner product for a circulant sequence of vector with a single vector.

Implemented for integer powers of prime bases, as proposed in [4] .

Computes the inner product with a second vector for all vectors in the sequence at once.

## Constructor & Destructor Documentation

template<LatType LAT, Compress COMPRESS>
template<class K >

LatBuilder::MeritSeq::CoordUniformInnerProdFast< LAT, COMPRESS >::CoordUniformInnerProdFast | ( | Storage< LAT, COMPRESS > | storage,
|  | const Kernel::Base< K > & | kernel
| ) |  |
| inline

Constructor.

Parameters

  storage | Storage configuration.
  kernel | Kernel. Used to create a sequence of permuatations of the kernel values evaluated at every one-dimensional lattice point.

## Member Function Documentation

template<LatType LAT, Compress COMPRESS>
template<class GENSEQ , class E >

Seq<GENSEQ> LatBuilder::MeritSeq::CoordUniformInnerProdFast< LAT, COMPRESS >::prodSeq | ( | const GENSEQ & | genSeq,
|  | const boost::numeric::ublas::vector_expression< E > & | vec
| ) |  | const
| inline

Creates a new sequence of inner product values by applying a stride permutation based on `genSeq` to the vector of kernel values, then by computing the inner product with `vec`.

Parameters

  genSeq | Sequence of generator values.
  vec | Second operand in the inner product.

The documentation for this class was generated from the following file:

- latbuilder/include/latbuilder/MeritSeq/CoordUniformInnerProdFast.h