SoftSUSY is hosted by Hepforge, IPPP Durham
SOFTSUSY  4.0
linalg.h File Reference

DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies also. More...

#include <vector>
#include "mycomplex.h"
#include "xpr-vector.h"
#include "xpr-matrix.h"
#include "def.h"
#include "utils.h"
#include <iosfwd>
#include <valarray>
#include <sstream>

Go to the source code of this file.

Classes

class  DoubleVector
 DoubleVector is of variable length, and contains double precision. More...
 
class  DoubleMatrix
 Matrix from 1..rows, 1..cols of double values. More...
 
class  ComplexVector
 Vector of double complex values. More...
 
class  ComplexMatrix
 matrix of complex double values dimensions (rows x cols) More...
 

Functions

std::ostream & operator<< (std::ostream &left, const DoubleVector &V)
 prints a vector out formatted, maximum of 5 elements per line
 
std::istream & operator>> (std::istream &left, DoubleVector &V)
 inputs a vector
 
std::istream & operator>> (std::istream &left, DoubleMatrix &M)
 
std::ostream & operator<< (std::ostream &left, const DoubleMatrix &V)
 
DoubleMatrix rot2d (double theta)
 Returns a 2x2 orthogonal matrix of rotation by angle theta.
 
DoubleMatrix rot2dTwist (double theta)
 Returns 2 by 2 orthogonal mixing matrix.
 
DoubleMatrix rot3d (double theta)
 
void positivise (double thetaL, double thetaR, const DoubleVector &diag, ComplexMatrix &u, ComplexMatrix &v)
 $ u^* A v^+ $ = mdiagpositive More...
 
void diagonaliseSvd (DoubleMatrix &a, DoubleVector &w, DoubleMatrix &v)
 Diagonalisation routines.
 
double pythagoras (double a, double b)
 
void diagonaliseJac (DoubleMatrix &a, int n, DoubleVector &d, DoubleMatrix &v, int *nrot)
 
void fillArray (const std::valarray< double > &, double *, unsigned offset=0)
 fill array from valarray, starting at offset
 
std::ostream & operator<< (std::ostream &left, const ComplexVector &V)
 Formatted output.
 
std::istream & operator>> (std::istream &left, ComplexVector &V)
 Formatted input.
 
std::istream & operator>> (std::istream &left, ComplexMatrix &M)
 Formatted input.
 
std::ostream & operator<< (std::ostream &left, const ComplexMatrix &V)
 Formatted output.
 

Detailed Description

DoubleVector and DoubleMatrix classes of doubles and operations between them, complexified copies also.

Function Documentation

void positivise ( double  thetaL,
double  thetaR,
const DoubleVector diag,
ComplexMatrix u,
ComplexMatrix v 
)

$ u^* A v^+ $ = mdiagpositive

Redefines mixing matrices to be complex such that diagonal values are positive for a 2 by 2:

DoubleMatrix rot3d ( double  theta)

LCT: Returns a 3x3 orthogonal matrix of rotation by angle theta. Used in rotating CP-odd Higgs matrix