Index

C++ Code Documentation

loop::Loop4

File: LAB/loop/Loop4.H

public:
  • inline Loop4(uint len);
    constructor
  • inline Loop4(Loop4 const &);
    copy constructor
  • inline ~Loop4();
    destructor
  • inline Loop4 &operator=(Loop4 const &);
    assignment operator
  • inline void clear();
    / *this = 0
  • inline void identity();
    *this = identity matrix
  • Loop2 &col1();
  • Loop2 &col2();
  • Loop2 const &col1() const;
  • Loop2 const &col2() const;
  • inline Loop2 &operator[](uint i);
  • else if (i==1);
  • throw 1;
  • } inline Loop2 const &operator[](uint i) const;
  • else if (i==1);
  • throw 1;
  • } inline void allocate( uint polylen );
  • inline uint polylen() const;
  • inline void chop();
  • inline void neg( Loop4 const &a );
    *this = -a
  • inline void neg();
    *this = -*this
  • inline void add( Loop4 const &a, Loop4 const &b );
    *this = a + b
  • inline void add( Loop4 const &a );
    *this += a
  • inline void sub( Loop4 const &, Loop4 const &p );
    *this = a - b
  • inline void sub( Loop4 const &a );
    *this -= a
  • inline void mul( Complex const &r, Loop4 const &a );
    *this = r * a (scalar multiplication: Complex r)
  • inline void mul( Complex const &r );
    *this *= r (scalar multiplication: Complex r)
  • inline void mul( Real const &r, Loop4 const &a );
    *this = r * a (scalar multiplication: Real r)
  • inline void mul( Real const &r );
    *this *= r (scalar multiplication: Real r)
  • inline void mul( Loop1 const &a, Loop4 const &b );
    *this = a * b (loop scalar multiplication)
  • inline void mul( Loop1 const &a );
    *this *= a (loop scalar multiplication)
  • void mul( Loop4 const &a, Loop4 const &b );
    *this = a * b (loop multiplication)
  • void mul( Loop4 const &a, Loop4 const &b, RangeMatrix const &range );
    *this = a * b special multiplication optimized according to the range of *b
  • inline void mul_add( Loop4 const &a, Complex const &r, Loop4 const &b );
    *this = a + r * b
  • inline void mul_add( Complex const &r, Loop4 const &a );
    *this += r * a
  • inline void transpose( Loop4 const &a );
    *this = transpose(a)
  • inline void transpose();
    *this = transpose(*this)
  • inline void transpose_conjugate( Loop4 const &a );
    *this = conj(transpose(a))
  • inline void transpose_conjugate();
    *this = conj(transpose(*this))
  • inline void classical_adjoint( Loop4 const &a );
    *this = transpose(cofactor(a)) {{a,b},{c,d}} -> {{d,-b},{-c,a}} is the inverse if det==1
  • inline void classical_adjoint();
    *this = transpose(cofactor(*this)) {{a,b},{c,d}} -> {{d,-b},{-c,a}} is the inverse if det==1
  • inline void eval( math::complex4<Real> &r, Complex const &lambda ) const;
    evaluation r = eval( *this, lambda )
  • inline void eval( math::complex4<Real> &r, math::complex4<Real> &dr, Complex const &lambda ) const;
  • inline void det( Loop1 &d ) const;
    d = det(*this)
  • void exp( Loop4 const &A, uint count );
  • void exp_trace_free( Loop4 const &a, uint iterations, uint polylen );
    *this = exp(a) series expansion to a^n a must be trace-free much more accurate than exp()
  • friend std::ostream & operator<<( std::ostream &, Loop4 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;
    print coefficients in C array format
  • static void resize_copy( Loop4 &a, Loop4 const &b );
    copy b into a, allowing different sizes
  • 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
protected:
  • Loop2 _col1;
  • Loop2 _col2;
  • uint _polylen;
    len is the highest lambda power of element 1,1
private:
  • inline static void _classical_adjoint( Loop4 &r, Loop4 const &a );


loop::Loop4 GANG