public class TrnsPhaseMatrix extends SquareMatrix<TrnsPhaseMatrix>
Class TransPhaseMatrix
represents operations on the transverse
phase coordinates. This set of phase space matrices is essentially isomorphic to
R4×4, however, in order to represent translations
of phase coordinates by matrix multiplication, this class is embedded
in the linear operations R5×5 "projective space"
with "homogeneous coordinates".
The last coordinate of all homogeneous (transverse) phase vectors v ∈ R5 is 1. Thus v = (x,x',y,y',1). Likewise, the (5,5) element of any projective matrix Φ ∈ R5×5 representing an operator in homogeneous coordinates must be 1.
Modifier and Type | Class and Description |
---|---|
static class |
TrnsPhaseMatrix.IND
Enumeration for the element position indices for homogeneous
phase space objects.
|
Modifier and Type | Field and Description |
---|---|
static int |
INT_SIZE
number of matrix dimensions
|
ATTR_DATA, matImpl
Constructor and Description |
---|
TrnsPhaseMatrix()
Creates a new instance of PhaseMatrix initialized to zero.
|
TrnsPhaseMatrix(java.lang.String strValues)
Parsing Constructor - create a PhaseMatrix instance and initialize it
according to a token string of element values.
|
TrnsPhaseMatrix(TrnsPhaseMatrix matInit)
Copy Constructor - create a deep copy of the target phase matrix.
|
Modifier and Type | Method and Description |
---|---|
TrnsPhaseMatrix |
clone()
Creates and returns a deep copy of this matrix.
|
static TrnsPhaseMatrix |
extractTransverse(PhaseMatrix matPhi)
Extracts a copy of the transverse portion of the given
PhaseMatrix
and returns it. |
static TrnsPhaseMatrix |
newIdentity()
Create an identity phase matrix
|
protected TrnsPhaseMatrix |
newInstance()
Handles object creation required by the base class.
|
static TrnsPhaseMatrix |
newZero()
Create a new instance of a zero phase matrix.
|
static TrnsPhaseMatrix |
parse(java.lang.String strTokens)
Create a PhaseMatrix instance and initialize it
according to a token string of element values.
|
static TrnsPhaseMatrix |
rotationProduct(R2x2 matSO2)
Compute the rotation matrix in phase space that is essentially the
Cartesian product of the given rotation matrix in SO(2).
|
static TrnsPhaseMatrix |
translation(TrnsPhaseVector vecTrans)
Create a phase matrix representing a linear translation
operator on homogeneous transverse phase space.
|
assignIdentity, conjugateInv, conjugateTrans, det, getSize, inverse, isEquivalentTo, isSymmetric, setElem, solve, solveInPlace, times, times, times, timesEquals, timesEquals, transpose
assignMatrix, assignZero, conditionNumber, copy, equals, getArrayCopy, getColCnt, getElem, getElem, getMatrix, getRowCnt, hashCode, load, max, minus, minusEquals, newInstance, norm1, norm2, normF, normInf, plus, plusEquals, print, save, setElem, setMatrix, setMatrix, setSubMatrix, toString, toStringMatrix, toStringMatrix, toStringMatrix
public static final int INT_SIZE
public TrnsPhaseMatrix()
public TrnsPhaseMatrix(TrnsPhaseMatrix matInit)
matInit
- initial valuepublic TrnsPhaseMatrix(java.lang.String strValues) throws java.lang.IllegalArgumentException, java.lang.NumberFormatException
strValues
- token vector of 7x7=49 numeric valuesjava.lang.IllegalArgumentException
- wrong number of token stringsjava.lang.NumberFormatException
- bad number format, unparseableBaseMatrix.setMatrix(java.lang.String)
public static TrnsPhaseMatrix newZero()
public static TrnsPhaseMatrix newIdentity()
public static TrnsPhaseMatrix translation(TrnsPhaseVector vecTrans)
Create a phase matrix representing a linear translation
operator on homogeneous transverse phase space. Multiplication by the
returned TransPhaseMatrix
object is equivalent to
translation by the given PhaseVector
argument.
Specifically, if the argument dv has coordinates
dv = (dx,dx',dy,dy',1)T then the returned matrix T(dv) has the form |1 0 0 0 dx | |0 1 0 0 dx'| T(dv) = |0 0 1 0 dy | |0 0 0 1 dy'| |0 0 0 0 1 | Consequently, given a phase vector v of the form v = |x | |x'| |y | |y'| |1 | Then operation on v by T(dv) has the result T(dv) v = |x + dx | |x'+ dx'| |y + dy | |y'+ dy'| | 1 |
vecTrans
- translation vectorpublic static TrnsPhaseMatrix rotationProduct(R2x2 matSO2)
Compute the rotation matrix in phase space that is essentially the Cartesian product of the given rotation matrix in SO(2). That is, denote the given argument as O, then the returned matrix M is the embedding M = O×O×I into homogeneous transverse phase space which is isomorphic to R4×4×{1}. Thus, M ∈ SO(4) ⊂ R4×4×{1} ⊂ R5×5.
Viewing transverse phase-space as a 4D manifold built as the tangent bundle over transverse coordinate space R2, then the fibers of 2D configuration space at a point (x,y) are represented by the Cartesian planes (x',y'). The returned phase matrix rotates these fibers in the same manner as their base point (x,y,z).
This is a convenience method to build the above rotation matrix in SO(4) ⊂ R5×5.public static TrnsPhaseMatrix extractTransverse(PhaseMatrix matPhi)
PhaseMatrix
and returns it.matPhi
- phase matrix to be copiedpublic static TrnsPhaseMatrix parse(java.lang.String strTokens) throws java.lang.IllegalArgumentException, java.lang.NumberFormatException
strTokens
- token vector of 5x5=25 numeric valuesjava.lang.IllegalArgumentException
- wrong number of token stringsjava.lang.NumberFormatException
- bad number format, unparseablepublic TrnsPhaseMatrix clone()
clone
in class BaseMatrix<TrnsPhaseMatrix>
BaseMatrix.clone()
protected TrnsPhaseMatrix newInstance()
newInstance
in class BaseMatrix<TrnsPhaseMatrix>
M
BaseMatrix.newInstance()