|
Index
C++ Code Documentation
loop::Loop1
File: LAB/loop/Loop1.H
Class Loop1 represents an complex laurent series.
public:
- inline Loop1(uint polylen);
 | void constructor | |
- inline Loop1( Loop1 const & );
 | copy constructor | |
- virtual ~Loop1();
 | destructor | |
- inline Loop1 &operator=( Loop1 const & );
 | assignment operator | |
- uint size() const;
- uint polylen() const;
- inline void clear();
 | *this = 0 | |
- base::Array<Complex> &data();
 | data access | |
- base::Array<Complex> const &data() const;
- inline Complex &operator[]( int n );
- inline Complex const &operator[]( int n ) const;
- inline void allocate( uint polylen );
- inline void chop();
- void conj( Loop1 const &a );
 | *this = conj(a) ( Sum[a_k t^k] -> Sum[conj(a_k) t^(-k)] | |
- inline void conj();
 | *this = conj(*this) | |
- inline void make_real();
- inline void neg( Loop1 const &a );
 | *this = -a | |
- inline void neg();
 | *this = -*this | |
- inline void add( Loop1 const &a, Loop1 const &b );
 | *this = a + b | |
- inline void add( Loop1 const &a );
 | *this += a | |
- inline void sub( Loop1 const &a, Loop1 const &b );
 | *this = a - b | |
- inline void sub( Loop1 const &a );
 | *this -= a | |
- inline void mul( Complex const &r, Loop1 const &a );
 | *this = r * a (Complex r, Loop1 a) | |
- inline void mul( Complex const &r );
 | *this *= r (Complex r) | |
- inline void mul( Real const &r, Loop1 const & );
 | *this = r * a (real r, Loop1 a) | |
- inline void mul( Real const &r );
 | *this *= r (real r) | |
- inline void mul( Loop1 const &a );
 | *this *= a (Loop1 a) | |
- void mul( Loop1 const &a, Loop1 const &b );
 | *this = a * b (Loop1 a, Loop1 b) | |
- void mul( Loop1 const &a, Loop1 const &b, int n1, int n2 );
 | *this = a * b, optimized according to the range of b | |
- void mul( Complex const &r, Loop1 const &a, int shift );
 | *this = r * a (where a is shifted by shift) | |
- void mul_add( Complex const &r, Loop1 const &a, int shift );
 | *this += r * a (where a is shifted by shift) | |
- inline void mul_add( Loop1 const &a, Complex const &r, Loop1 const &b );
 | *this = a + r * b | |
- inline void mul_add( Complex const &r, Loop1 const &a );
 | *this += r * a | |
- inline void make_positive();
 | set all coefficients of t^i (i<0) to 0 | |
- inline void make_negative();
 | set all coefficients of t^i (i>0) to 0 | |
- inline void inv_pos( Loop1 const &a );
 | *this = inverse(a) (a must be postive) | |
- inline void inv_pos();
 | *this = inverse(*this) (*this must be postive) | |
- inline void sqrt_pos( Loop1 const &a );
 | *this = sqrt(a) (*this must be postive) | |
- inline void sqrt_pos();
 | *this = sqrt(*this) (*this must be postive) | |
- void eval( Complex &r, Complex const &lambda ) const;
- void eval( Complex &r, Complex &dr, Complex const &lambda ) const;
 | evaluates (*this) and d(*this)/dt at lambda=exp(it) deriv is with respect to t, not lambda p = X.len-1 X.len is not Loop len, but the raw length X = X[0] lambda^-p + X[1] lambda^(-p+2) + ... + X[i] lambda^(2i-p) + ... + X[p] lambda^p | |
- inline Real norm();
- friend inline void inner_product( Complex &r, Loop1 const &a, Loop1 const &b );
 | r = a . conj(b) | |
- friend void inner_product_shift( Complex &, Loop1 const &, int sa, Loop1 const &, int sb );
 | r = shift(a,sa) . conj( shift(b.sb) ) used by Iwasawa decomposition (Cholesky) | |
- friend std::ostream &operator<<( std::ostream &, Loop1 const & );
 | print | |
- void print( std::ostream & ) const;
 | full-precision print | |
- void printM( std::ostream & ) const;
 | print in Mathematica array format | |
- void printC( std::ostream & ) const;
protected:
private:
- uint _polylen;
- base::Array<Complex> _data;
- static void inv_pos_static( Loop1 &x, Loop1 const &a );
 | x = inv(a) (*this must be postive) | |
- static void sqrt_pos_static( Loop1 &x, Loop1 const &a );
 | x = sqrt(a) (*this must be postive) | |
|