Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

linalg.h File Reference

#include <cstdlib>
#include <sstream>
#include <iostream>
#include <string>
#include <cmath>
#include "def.h"
#include "utils.h"
#include "mycomplex.h"

Classes

class  DoubleVector
class  DoubleMatrix
 Matrix from 1..rows, 1..cols of double values. More...
class  ComplexVector
 Vector of double complex values. More...
class  ComplexMatrix

Functions

void freeMyDoubleVector (double *v, long nl, long nh)
DoubleVector operator * (double f, const DoubleVector &V)
 float times vector
ostream & operator<< (ostream &left, const DoubleVector &V)
 prints a vector out formatted, maximum of 5 elements per line
istream & operator>> (istream &left, DoubleVector &V)
 inputs a vector
void freeMyDoubleMatrix (double **m, long nrl, long nrh, long ncl, long nch)
DoubleMatrix operator- (const DoubleMatrix &A)
 Standard linear algebra.
DoubleMatrix operator * (double f, const DoubleMatrix &M)
 Assumes the double is multiplied by identity.
DoubleMatrix outerProduct (const DoubleVector &v1, const DoubleVector &v2)
 Defines $ Mij = v1i v2j $.
istream & operator>> (istream &left, DoubleMatrix &M)
 Formatted input of a matrix: size already determined in M.
ostream & operator<< (ostream &left, const DoubleMatrix &V)
 Formatted output of a matrix: maximum 5 elements per line.
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.
void positivise (double thetaL, double thetaR, const DoubleVector &diag, ComplexMatrix &u, ComplexMatrix &v)
 $ u^* A v^+ $ = mdiagpositive
void diagonaliseSvd (DoubleMatrix &a, DoubleVector &w, DoubleMatrix &v)
 Diagonalisation routines.
void freeMyComplexVector (Complex *v, long nl, long nh)
 Memory handling routine: dimension starts at 1 by default.
ostream & operator<< (ostream &left, const ComplexVector &V)
 Formatted output.
istream & operator>> (istream &left, ComplexVector &V)
 Formatted input.
void freeMyComplexMatrix (Complex **m, long nrl, long nrh, long ncl, long nch)
 free a Complex matrix allocated by myComplexMatrix()
ComplexMatrix operator * (Complex f, const ComplexMatrix &M)
 Assumes the Complex is multiplied by identity.
ComplexVector operator * (const ComplexVector &V, const ComplexMatrix &M)
 $ v_i = v_j M_{ji} $
ComplexMatrix outerProduct (const ComplexVector &v1, const ComplexVector &v2)
 $ M_{ij} = v1_i v2_j $
istream & operator>> (istream &left, ComplexMatrix &M)
 Formatted input.
ostream & operator<< (ostream &left, const ComplexMatrix &V)
 Formatted output.

Detailed Description

Log
linalg.h,v
Revision 1.3 2005/08/16 17:22:08 allanach Corrected electroweak sbottom corrections

Revision 1.2 2005/07/26 10:51:22 allanach new method nmin added to DoubleVector and DoubleMatrix by Bernhardt

Revision 1.20 2004/01/15 13:53:48 allanach New time-saving unary operators included.

Revision 1.19 2003/08/04 16:44:22 allanach Added max function for matrix and vector of doubles

Revision 1.18 2003/07/29 15:26:40 allanach Using new and delete rather than old malloc and free C-style routines

Revision 1.17 2003/07/28 12:11:37 allanach More error trapping, and rearranging rpvsoftsusy to use correct Higgs VEV (which is sometimes called at MZ)

Revision 1.16 2003/07/25 13:39:15 allanach Trapped errors properly rather than exiting

Revision 1.15 2003/06/05 09:17:19 allanach Started coding Les Houches Discord

Revision 1.14 2003/05/27 15:05:51 allanach Purely efficiency corrections: used variable rather than display() methods whenever possible

Revision 1.13 2003/05/20 15:19:40 allanach doxygen comment style implemented

Revision 1.12 2003/03/04 12:55:02 allanach Removed Slavich diagonalisation

Revision 1.10 2003/02/21 13:02:07 allanach Changed headings to new conventions

Revision 1.9 2002/09/23 18:13:50 allanach Eigenvalue order with non symmetric diagonalisation setx

Revision 1.8 2002/07/19 15:54:06 allanach SOFTSUSY1.5 version

Revision 1.7 2002/06/10 16:13:07 allanach Speeded things up by adding option for array bounds checking

Revision 1.5 2002/04/30 16:23:59 allanach Added matrix inversion routine

Revision 1.4 2001/10/03 13:34:16 allanach Changed name of complex.h to avoid conflict with STD libraries

Revision 1.3 2001/07/18 14:42:51 allanach Added proper header info


Function Documentation

void freeMyDoubleMatrix double **  m,
long  nrl,
long  nrh,
long  ncl,
long  nch
[inline]
 

free a double matrix allocated by myDoubleMatrix()

void freeMyDoubleVector double *  v,
long  nl,
long  nh
[inline]
 

Sorts memory out for the vectors. Violates C-conventions, and starts at 1 rather than 0 by default

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:


Generated on Fri Aug 26 16:37:13 2005 for SOFTSUSY by  doxygen 1.3.9.1