numericalMethods.algebra.loopGroup
Class BirkhoffFactorization

java.lang.Object
  |
  +--numericalMethods.algebra.loopGroup.BirkhoffFactorization

public class BirkhoffFactorization
extends java.lang.Object

Computes the Birkhoff factorization of a GL_n(C)-valued loop X = X1 X2. Depending on flags set, X1 may be a "negative" loop, extending to the exterior disk on CP^1 bounded by the loop containing infinity, and X2 a "positive" loop, extending to the interior disk containng 0, or vice-versa. Depending on flags set, either X1 or X2 may be chosen to be normalized to I at 0 or infinity. This algorithm does not apply to loops in the "big cell" (e.g. a non-constant monomial) and do not check for this condition. The class consists of two versions of the factorization method factor(), one to which temporary storage space is passed (for efficiency) and one which allocates its own storage (for convenience).


Field Summary
static int FIRST
           
static int NEG_POS
           
static int POS_NEG
           
static int SECOND
           
 
Constructor Summary
BirkhoffFactorization()
           
 
Method Summary
static void factor(double[][][] xRe, double[][][] xIm, double[][][] yRe, double[][][] yIm, double[][][] tRe, double[][][] tIm, double[][] qRe, double[][] qIm, double[] dRe, double[] dIm, double[] kRe, double[] kIm, double[][] yyyRe, double[][] yyyIm, double[][] q0Re, double[][] q0Im, double[][] t0Re, double[][] t0Im, double[][][] uRe, double[][][] uIm, double[] tmpmRe, double[] tmpmIm, int direction, int factor, int normalize)
           
static void factor(double[][][] xRe, double[][][] xIm, double[][][] yRe, double[][][] yIm, int direction, int factor, int normalize)
          Computes one of the factors of a Birkhoff factorization of a GL_n(C)-valued loop X.
static void normalize(double[][][] tRe, double[][][] tIm, double[][][] uRe, double[][][] uIm, double[][] t0Re, double[][] t0Im, double[][] q0Re, double[][] q0Im, double[] dRe, double[] dIm, double[] pRe, double[] pIm, boolean reverse, boolean neg)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NEG_POS

public static final int NEG_POS

POS_NEG

public static final int POS_NEG

FIRST

public static final int FIRST

SECOND

public static final int SECOND
Constructor Detail

BirkhoffFactorization

public BirkhoffFactorization()
Method Detail

factor

public static void factor(double[][][] xRe,
                          double[][][] xIm,
                          double[][][] yRe,
                          double[][][] yIm,
                          int direction,
                          int factor,
                          int normalize)
Computes one of the factors of a Birkhoff factorization of a GL_n(C)-valued loop X.
Parameters:
xRe - The real part of X (input).
xIm - The imaginary part of X (input).
yRe - The real part of XNeg (output).
yIm - The imaginary part of XNeg (output).
direction - When set to NEG_POS, computes the Birkhof factorization X = Xneg Xpos, where Xneg is a negative loop and Xpos is a positive loop. When set to POS_NEG, computes the Birkhof factorization X = Xpos Xneg.
factor - When set to FIRST (resp. SECOND), computes in (yRe, yIm) the first (resp. second) factor of the Birkhoff factorization.
normalize - When set to FIRST, the first factor is normalized to be I at 0 (in the case direction = NEG_POS) or at infinity (in the case direction = POS_NEG).

factor

public static void factor(double[][][] xRe,
                          double[][][] xIm,
                          double[][][] yRe,
                          double[][][] yIm,
                          double[][][] tRe,
                          double[][][] tIm,
                          double[][] qRe,
                          double[][] qIm,
                          double[] dRe,
                          double[] dIm,
                          double[] kRe,
                          double[] kIm,
                          double[][] yyyRe,
                          double[][] yyyIm,
                          double[][] q0Re,
                          double[][] q0Im,
                          double[][] t0Re,
                          double[][] t0Im,
                          double[][][] uRe,
                          double[][][] uIm,
                          double[] tmpmRe,
                          double[] tmpmIm,
                          int direction,
                          int factor,
                          int normalize)
Parameters:
qRe - Temporary storage.
qIm - Temporary storage.
dRe - Temporary storage.
dIm - Temporary storage.
kRe - Temporary storage.
kIm - Temporary storage.
yyyRe - Temporary storage.
yyyIm - Temporary storage.
q0Re - Temporary storage.
q0Im - Temporary storage.
tmpmRe - Temporary storage.
tmpmIm - Temporary storage.

normalize

public static void normalize(double[][][] tRe,
                             double[][][] tIm,
                             double[][][] uRe,
                             double[][][] uIm,
                             double[][] t0Re,
                             double[][] t0Im,
                             double[][] q0Re,
                             double[][] q0Im,
                             double[] dRe,
                             double[] dIm,
                             double[] pRe,
                             double[] pIm,
                             boolean reverse,
                             boolean neg)