|
void | AddEqual (Complex c) |
| Adds a complex number to current ComplexAmplitude. See important note on ComplexField.
|
|
void | AddEqual (ComplexAmplitude ca) |
| Adds a given ComplexAmplitude to current one taking into account the spherical phase radius. The result is stored in the present ComplexAmplitude. Both operands must have same number of sampling points. Other parameters like sampling distance or wavelength will not be changed. See important note on ComplexField.
|
|
void | ApplyAnalyticallyLinearPhaseToDataPoints_withoutResampling (CancellationToken cancellationToken) |
| public support method to apply the analytically linear phase value onto the data points
|
|
void | ApplyAnalyticallyQuadraticPhaseToDataPoints_withoutResampling (CancellationToken cancellationToken, bool enableAnalyticalLinearPhaseResultingFromOffset=false) |
| public support method to apply the analytically quadratic phase value onto the data points
|
|
void | ApplyAperture (BasicParameter.eApertureShape shape, double absoluteEdgeWidth) |
| Applies an aperture function to the ca.
|
|
void | ChangeFieldRepresentation (bool isComplex, PrecisionMode precison=PrecisionMode.Double) |
| Changes field representation of current ComplexAmplitude, i.e. whether the field is complex and the PrecisionMode.
|
|
void | ClipAmplitude (double clippingLevel) |
| Sets all amplitude values of current ComplexAmplitude greater than the clippingLevel to the clippingLevel.
|
|
override object | Clone () |
| Clones current ComplexAmplitude.
|
|
| ComplexAmplitude () |
| Constructs a globally polarized ComplexAmplitude using default precision, default wavelength and 3x3 sampling points.
|
|
| ComplexAmplitude (ComplexAmplitude ca) |
| Creates a clone of the given complex amplitude.
|
|
| ComplexAmplitude (HomogeneousMedium embeddingMedium) |
| Constructs a globally polarized ComplexAmplitude using default precision, default wavelength and 3x3 sampling points.
|
|
| ComplexAmplitude (Numerics.ComplexField field) |
| Constructs a globally polarized ComplexAmplitude using default precision, default wavelength and given ComplexField.
|
|
| ComplexAmplitude (Numerics.ComplexField xField, Numerics.ComplexField yField) |
| Constructs a locally polarized ComplexAmplitude with the default precision, default wavelength and given X and Y Component ComplexField objects.
|
|
| ComplexAmplitude (SamplingParameters samplingParameters, bool IsComplex, bool initializeValues=true) |
| Constructs a globally polarized ComplexAmplitude using the default wavelength from the GlobalOptions and given Numerics.SamplingParameters.
|
|
| ComplexAmplitude (SamplingParameters samplingParameters, PrecisionMode precision, bool IsComplex, bool initializeValues=true) |
| Constructs a globally polarized ComplexAmplitude using default wavelength, and given SamplingParameters.
|
|
| ComplexAmplitude (SamplingParameters samplingParameters, PrecisionMode precision, bool IsComplex, Func< double, double, double > f, ParallelizationType parallelizationType=ParallelizationType.AutomaticMeasure) |
| Constructs a globally polarized ComplexAmplitude using default wavelength, and given SamplingParameters. Sampling points are initialized using given real function.
|
|
| ComplexAmplitude (SamplingParameters samplingParameters, PrecisionMode precision, Func< double, double, Complex > f, ParallelizationType parallelizationType=ParallelizationType.AutomaticMeasure) |
| Constructs a globally polarized ComplexAmplitude using default wavelength, and given SamplingParameters. Sampling points are initialized using given complex function.
The point (0 m; 0 m) will be placed in the center of the field.
|
|
| ComplexAmplitude (Vector SamplingPoints, bool initializeValues=true) |
| Constructs a globally polarized ComplexAmplitude using default precision, default wavelength and given number of sampling points.
|
|
| ComplexAmplitude (Vector SamplingPoints, Complex c) |
| Constructs a globally polarized ComplexAmplitude using default precision, default wavelength and given number of sampling points. All sampling points are set to given complex constant.
|
|
void | Conjugate () |
| Conjugates current ComplexAmplitude.
|
|
void | ConvertToLocallyPolarizedField () |
| Converts this instance to a locally polarized field (if this is not already the case).
|
|
void | DivEqual (Complex c) |
| Divides current ComplexAmplitude by given complex number. See important note on ComplexField.
|
|
void | DivEqual (ComplexAmplitude ca) |
| Divides current ComplexAmplitude by a given one taking into account the spherical phase radius. The result is stored in the ComplexAmplitude. Both operands must have same number of sampling points. Other parameters like sampling distance or wavelength will not be changed. See important note on ComplexField.
|
|
void | EmbedCorner (Vector newSize) |
| This ComplexAmplitude is embedded into sampling points having the value zero so that the resulting size is twice the original size. In contrast to the EmbedExtract(Vector) method, this method places the original field in the bottom left quadrant of the changed field, not in the center.
|
|
void | EmbedExtract () |
| This ComplexAmplitude is embedded centrically into sampling points having the value zero so that the resulting size is twice the original size.
|
|
ComplexAmplitude | EmbedExtract (Rectangle rectangle) |
| Embeds current complex amplitude into the given rectangle.
|
|
void | EmbedExtract (Vector newSize) |
| Changes this ComplexAmplitude to the given size.
|
|
override bool | Equals (object otherObject, EqualityIntent equalityIntent) |
| Determines whether the specified Object is equal to this instance.
|
|
ComplexAmplitude | Extract (Vector size, Vector position) |
| Extracts the defined piece from the given ComplexAmplitude.
|
|
ComplexAmplitude | ExtractColumn (int colIndex, bool considerSphericalPhase) |
| Extracts a column from the given ComplexAmplitude.
|
|
Complex | ExtractComplexValue (VectorD position, VectorialComponent comp) |
| Public method to get a complex value for a defined physical position for a specified vectorial component.
|
|
ComplexAmplitude | ExtractDiagonal (double alpha) |
| Extracts data from a diagonal line right through the center of the given ComplexAmplitude.
|
|
ComplexAmplitude | ExtractRow (int rowIndex, bool considerSphericalPhase) |
| Extracts a row from the given ComplexAmplitude.
|
|
void | Fill (Complex c) |
| Sets all pixels of this ComplexAmplitude to the given complex value.
|
|
void | Fill (Complex c, Rectangle marker, bool inside) |
| Sets all pixels of this ComplexAmplitude to the given complex value.
|
|
Complex | GetAnalyticLinearPhaseValueAtPosition (double x, double y) |
| function to get the complex value at a specific position
|
|
Complex | GetAnalyticLinearPhaseValueAtPosition (VectorD position) |
| function to get the complex value at a specific position
|
|
override IEnumerable< ComplexAmplitude > | GetFields () |
|
VectorC | GetLocalFieldVector (int x, int y) |
| Gets the field vector (Ex; Ey) at a certain position (x; y) in pixels. Only works for Harmonic Fields, not Transmissions.
|
|
void | HorizontalMirror_physicalCoordinates () |
| Performs a horizontal mirroring of current ComplexAmplitude. The physical coordinates origin is maintained.
|
|
void | HorizontalMirror_pixelCoordinates () |
| Performs a horizontal mirroring of current ComplexAmplitude. \([SamplingPoints.X - x - 1, y] = [x, y]\).
|
|
void | Insert (ComplexAmplitude ca, Vector position) |
| Inserts the given ComplexAmplitude into current ComplexAmplitude at given position. Points exceeding boundaries will be ignored.
|
|
ComplexAmplitude | JonesMatrixMultiplication (Matrix2x2C m) |
| Multiplies a ComplexAmplitude with a Matrix2x2C.
|
|
void | LiftPositive () |
| Lifts complex amplitude to positive. See ComplexField::LiftPositive() .
|
|
void | ModifyComplexPart (ComplexPart complexPart, bool makeRealValuedIfSuitable=false) |
| Extracts, shifts or swaps complex part of current ComplexAmplitude. Current object is modified.
|
|
void | MultEqual (Complex c) |
| Multiplies a complex number to current ComplexAmplitude. See important note on ComplexField.
|
|
void | MultEqual (ComplexAmplitude ca) |
| Multiplies a given ComplexAmplitude to current one taking into account the spherical phase radius. The result is stored in the ComplexAmplitude. Both operands must have same number of sampling points. Other parameters like sampling distance or wavelength will not be changed. See important note on ComplexField.
|
|
void | MultiplySphericalPhaseFactor (double newRadius, CancellationToken? cancellationToken=null) |
| Samples a spherical phase factor with specified distance from source plane and sets the SphericalPhaseRadius property. Function uses the present sampling distance of the current ComplexAmplitude to sample spherical phase factor.
|
|
void | Normalize () |
| Normalizes ComplexAmplitude so that the maximal amplitude is one.
|
|
void | Normalize (Rectangle rectangle) |
| Normalizes current ComplexAmplitude so that the maximal amplitude in given rectangle is one.
|
|
void | PowerEqual (Complex c) |
| Raises every element of current ComplexAmplitude to power of given complex number. See important note on ComplexField.
|
|
override void | RemoveSphericalPhaseFactor (CancellationToken? cancellationToken=null) |
| Removes a sampled spherical phase factor whose distance from the source plane is specified in the SphericalPhaseRadius property. The sampled complex field is divided by the corresponding spherical phase function.
|
|
void | Replicate (Vector newSize, Vector shift) |
| Replicates current ComplexAmplitude periodically. Old complex amplitude is replaced by new one.
|
|
void | Replicate_Periodic (Vector newSize) |
| Replicates this ComplexAmplitude periodically, original field is centered around (0; 0).
|
|
override void | Save (string fileName) |
| Saves current ComplexAmplitude into a file in binary format.
|
|
void | SetBothComponentsAtOnce (ComplexField fieldX, ComplexField fieldY) |
| Because both X and Y component must have same size, a function is needed to change both components at once.
|
|
void | Shift (Vector shift) |
| Shifts the current ComplexAmplitude by a specified number of sampling points. Size is not modified, so sampling points can get lost.
|
|
void | SplitLocallyPolarizedField (out ComplexAmplitude caX, out ComplexAmplitude caY) |
| Splits current complex amplitude into X and Y component.
|
|
void | SubEqual (ComplexAmplitude ca) |
| Subtracts a given ComplexAmplitude from current one taking into account the spherical phase radius. The result is stored in the ComplexAmplitude. Both operands must have same number of sampling points. Other parameters like sampling distance or wavelength will not be changed. See important note on ComplexField.
|
|
void | Transpose () |
| Transposes current ComplexAmplitude. This means \([x, y] = [y, x]\).
|
|
void | VerticalMirror_physicalCoordinates () |
| Performs a vertical mirroring of current ComplexAmplitude. The physical coordinates origin is maintained.
|
|
void | VerticalMirror_pixelCoordinates () |
| Performs a vertical mirroring of current ComplexAmplitude. \([x, SamplingPoints.Y - y - 1] = [x, y]\).
|
|
IEnumerable< ComplexAmplitude > | GetFields () |
| Gets all member fields in the harmonic field.
|
|
| HarmonicFieldBase () |
| Default constructor to initialize a new instance of the HarmonicFieldBase class.
|
|
| HarmonicFieldBase (HarmonicFieldBase field) |
| Copy constructor to initialize a new instance of the HarmonicFieldBase class.
|
|
| HarmonicFieldBase (SerializationInfo info, StreamingContext context) |
| Deserialization constructor to initialize new instance of the HarmonicFieldBase class.
|
|
void | RemoveSphericalPhaseFactor (CancellationToken? cancellationToken=null) |
| Removes the Spherical Phase Factor(s) from the field.
|
|
FormDocument | GetNewDocumentWindow (Form formMain, string fileName) |
| Gets a new document window containing this document.
|
|
|
static ComplexAmplitude | AddWithResampling (ComplexAmplitude cac1, ComplexAmplitude cac2, InterpolationMethod method1, InterpolationMethod method2) |
| Checks both ComplexAmplitude operands for identical sampling parameters, does the interpolation if one or both operands have to be resampled, then the second ComplexAmplitude is added to the first ComplexAmplitude.
|
|
static ComplexAmplitude | ConvoluteWithResampling (ComplexAmplitude cac1, ComplexAmplitude cac2, InterpolationMethod method1, InterpolationMethod method2) |
| Checks both ComplexAmplitude operands for identical sampling parameters, does the interpolation if one or both operands have to be resampled, then the convolution of both ComplexAmplitude operands is performed.
|
|
static ComplexAmplitude | Convolution (ComplexAmplitude cac1, ComplexAmplitude cac2) |
| Returns convolution of \(a\) and \(b\): Convolute(a, b) := ℱ⁻¹(ℱ(a) ⋅ ℱ(b)). See important note on Numerics.ComplexField.
|
|
static ComplexAmplitude | DefaultField (ComplexAmplitudeType fieldType=ComplexAmplitudeType.GloballyPolSpatialComplexAmplitudeField) |
| Gets a default field which can be used e.g. as initial value for both the Stored Lateral Field and Stored Complete Field light source.
|
|
static ComplexAmplitude | DivideWithResampling (ComplexAmplitude cac1, ComplexAmplitude cac2, InterpolationMethod method1, InterpolationMethod method2) |
| Checks both ComplexAmplitude operands for identical sampling parameters, does the interpolation if one or both operands have to be resampled, then the first ComplexAmplitude is divided by the second ComplexAmplitude.
|
|
static ComplexAmplitude | MultiplyWithResampling (ComplexAmplitude cac1, ComplexAmplitude cac2, InterpolationMethod method1, InterpolationMethod method2) |
| Checks both ComplexAmplitude operands for identical sampling parameters, does the interpolation if one or both operands have to be resampled, then the second ComplexAmplitude is multiplied with the first ComplexAmplitude.
|
|
static ComplexAmplitude | operator* (Complex c, ComplexAmplitude ca) |
| Multiplies a complex value with a ComplexAmplitude.
|
|
static ComplexAmplitude | operator* (ComplexAmplitude ca, Complex c) |
| Multiplies a ComplexAmplitude with a complex value.
|
|
static ComplexAmplitude | operator* (ComplexAmplitude cac1, ComplexAmplitude cac2) |
| Multiplies two ComplexAmplitude objects.
|
|
static ComplexAmplitude | operator+ (Complex c, ComplexAmplitude ca) |
| Adds a Complex value to a ComplexAmplitude.
|
|
static ComplexAmplitude | operator+ (ComplexAmplitude ca, Complex c) |
| Adds a Complex value to a ComplexAmplitude.
|
|
static ComplexAmplitude | operator+ (ComplexAmplitude cac1, ComplexAmplitude cac2) |
| Adds two ComplexAmplitude objects. The sampling distance and the wavelength are ignored during the operation. The resulting object has the same sampling distance and wavelength as the first operand.
|
|
static ComplexAmplitude | operator- (ComplexAmplitude ca, Complex c) |
| Subtracts a ComplexAmplitude and a Complex value.
|
|
static ComplexAmplitude | operator- (ComplexAmplitude cac1, ComplexAmplitude cac2) |
| Subtracts two ComplexAmplitude objects.
|
|
static ComplexAmplitude | operator/ (ComplexAmplitude ca, Complex c) |
| Divides a ComplexAmplitude by a Complex value.
|
|
static ComplexAmplitude | operator/ (ComplexAmplitude cac1, ComplexAmplitude cac2) |
| Divides two ComplexAmplitude objects.
|
|
static ComplexAmplitude | operator^ (ComplexAmplitude ca, Complex c) |
| Raises a ComplexAmplitude to a complex value.
|
|
static ComplexAmplitude | SubtractWithResampling (ComplexAmplitude cac1, ComplexAmplitude cac2, InterpolationMethod method1, InterpolationMethod method2) |
| Checks both ComplexAmplitude operands for identical sampling parameters, does the interpolation if one or both operands have to be resampled, then the second ComplexAmplitude is subtracted from the first ComplexAmplitude.
|
|
|
Vector3D | CentralDirection [get, set] |
| Get and set the central direction of the field. This means a normalized Vector3D which represents an analytically stored global linear phase. If the linear phase information is represented by this CentralDirection vector, it does not have to be sampled on the data which may reduce the sampling effort. The x and y component of the vector are related to k_x and k_y of the field while the sign of its z component is related to the flag PropagatesInPositiveZDirection.
|
|
ComplexAmplitudeType | ComplexAmplitudeType [get, set] |
| Returns ComplexAmplitudeType of the present ComplexAmplitude object.
|
|
VectorD | CoordinateOffset [get, set] |
| Offset of the physical sampling point coordinates.
|
|
ComplexField | Field [get, set] |
| The complex field containing the scalar field of the globally polarized complex amplitude. In case of a locally polarized ComplexAmplitude, the X component is returned on get access. (Set access will raise an exception.)
|
|
override FieldRepresentation | FieldRepresentation [get] |
| Returns field representation of current ComplexAmplitude.
|
|
ComplexField | FieldX [get, set] |
| The complex field containing the X component of the complex amplitude.
|
|
ComplexField | FieldY [get, set] |
| The complex field containing the Y component of the complex amplitude. In case of globally polarized ComplexAmplitude using this property will throw an exception.
|
|
bool | HasSphericalPhaseRadius [get, set] |
| Indicates whether there are additionally information about the distance of a spherical phase factor from its origin. The default setting after the initialization of a new complex amplitude is false.
|
|
bool | HasWaveParameters [get, set] |
| If true then current ComplexAmplitude contains additional wave parameters like waist width, distance from waist and Rayleigh length for both axis. This parameters are necessary for the propagation. This parameter can be only true if IsComplexAmplitudeField is true. Setting HasWaveParameters to false will set WaistWidth, WaistDistance, and RayleighLength to zero. Functions that change the number of sampling points, the sampling distance or the spherical phase factor usually set this property to false.
|
|
bool | IsComplexAmplitudeField [get] |
| Returns true if complex amplitudes represents a complex amplitude.
|
|
bool | IsGloballyPolarized [get] |
| Returns true if complex amplitude is globally polarized. SET modifies Complex Amplitude Type.
|
|
bool | IsGloballyPolarizedField [get] |
| Gets whether this instance represents a globally polarized.
|
|
bool | IsLocallyPolarized [get] |
| Returns true if complex amplitude is locally polarized. SET modifies Complex Amplitude Type.
|
|
bool | IsPeriodic [get, set] |
| Specifies whether this complex amplitude is a periodic field or transmission.
|
|
bool | IsPeriodicTransmission [get, set] |
| Specifies whether this complex amplitude is a periodic transmission.
|
|
bool | IsSignalRegion [get] |
| Returns true if complex amplitudes represents a signal region.
|
|
override bool | IsSpatial [get, set] |
| Returns true if complex amplitudes is in spatial domain.
|
|
bool | IsSpectral [get, set] |
| Returns true if complex amplitudes is in spectral domain.
|
|
bool | IsTransmission [get] |
| Returns true if this complex amplitude represents a transmission.
|
|
Matrix2x2C | JonesMatrix [get, set] |
| Jones matrix for transmissions.
|
|
VectorC | JonesVector [get, set] |
| Jones vector for globally polarized complex amplitude fields.
|
|
LinearFunction | LinearPhaseFunction [get, set] |
| Function that describes the linear phase (in geometrical values). Important: The coefficients have to refer to the geometric distances instead of the phase values. That means the parameters have the meaning of k_x/k and k_y/k resp. (with k = 2π⋅n/λ). Calculating phase values require a multiplication with k = 2π⋅n/λ.
|
|
MeasuredQuantity | MeasuredQuantityOfFieldData [get] |
| Gets the measured quantity of the field data (depends on the type of the complex amplitude).
|
|
HomogeneousMedium | Medium [get] |
| Property to get the medium the field is located in.
|
|
double | MediumWavelength [get] |
| Gets the medium wavelength of the ComplexAmplitude.
|
|
override bool | PropagatesInPositiveZDirection [get, set] |
| Is the sign of the z-component of the k-vector positive or not. This flag has meaning for harmonic fields only.
|
|
QuadraticFunction | QuadraticPhaseFunction [get, set] |
| Public property to set and get the off-axis quadratic wave. Important: The coefficients have to refer to the geometric distances instead of the phase values. So the representation of a spherical wave with phase radius R would be (1/2R)*x^2 + (1/2R)*y^2 + R. Calculating phase values would require a multiplication with k = 2π⋅n/λ.
|
|
VectorD | RayleighLength [get, set] |
| Rayleigh length of the wave in X and Y direction. Note that property in part of WaveParameters struct.
|
|
Complex | RefractiveIndex [get] |
| Gets the complex refractive index of the embedding medium in which the ComplexAmplitude is defined.
|
|
double | SamplingDistanceOneD [get, set] |
| Gets or sets sampling distance of a one-dimensional ComplexAmplitude.
|
|
SamplingParameters | SamplingParameters [get, set] |
| Sets and gets the sampling parameters of the ComplexAmplitude which include sampling distance and number of sampling points. Modification of this property performs equal to changing the parameters using the SamplingDistance and SamplingPoints properties.
|
|
Vector | SamplingPoints [get, set] |
| Number of sampling points of current complex amplitude. Setting a new number of sampling points will embed the sampling points in zero samples or extract the central samples.
|
|
int | SamplingPointsOneD [get] |
| Number of sampling points of one-dimensional field. An exception will be thrown, if the field is two-dimensional.
|
|
double | SphericalPhaseRadius [get, set] |
| If there is additional information about the spherical phase (HasSphericalPhaseRadius == true) this property returns the radius of the spherical equiphase surfaces, which is equal to the distance from the definition plane of this ComplexAmplitude to the center of the spherical wave front. If hasSphericalPhaseRadius == false radius = Double.MaxValue is returned. This is similar to an infinite radius. Setting a radius using this property in the case of HasSphericalPhaseRadius == false will switch HasSphericalPhaseRadius to true. This property stores the information about an analytical spherical phase factor only, in order to reconstruct the complex amplitude, even if it is undersampled. Changing the spherical phase radius will have no effect on the sampled data but maybe an error free reconstruction of the complete complex amplitude will be impossible. To change the sampled spherical phase factor and the stored spherical phase radius at once use the functions MultiplySphericalPhaseFactor and RemoveSphericalPhaseFactor instead.
|
|
Complex | this[int x, int y, bool accessFieldY] [get, set] |
| Gets or sets a complex value with double precision on the specified position in complex amplitude. The coordinate system of x and y is the same like for ComplexField. If accessFieldY is true, the Y component is accessed by the indexer. This is allowed for locally polarized ComplexAmplitudes only. If accessFieldY is false, then the X component is accessed. For globally polarized ComplexAmplitudes this parameter has to be always false. If the precision of the ComplexField is less accurate than double precision, a loss of information is possible in case of a setting operation.
|
|
double | WaistDistance [get, set] |
| Distance of the present complex amplitude from the waist. Note that property in part of WaveParameters struct.
|
|
VectorD | WaistWidth [get, set] |
| Waist width of the wave in X and Y direction. Note that property in part of WaveParameters struct.
|
|
double | Wavelength [get, set] |
| Sets or gets the vacuum wavelength of the ComplexAmplitude.
|
|
WaveParameters | WaveParameters [get, set] |
| Get or sets all wave parameters (RayleighLength, WaistDistance and WaistWidth) at once.
|
|
bool | IsSpatial [get, set] |
| Gets and sets whether the field is in spatial domain (if true ) or spectral domain (if false ).
|
|
bool | PropagatesInPositiveZDirection [get, set] |
| Gets or sets whether the sign of the z-component of the k-vector is positive or not.
|
|
VirtualLabSession | Session [get, set] |
| every documents need to be handled in a session ==> default is the VirtualLab Mainsession
|
|
NodeVLExplorer | TreeStructure [get] |
| every document should have a node (maybe with subnodes) in the VirtualLab Explorer
|
|
DocumentType | TypeOfDocument [get] |
| Gets an enum entry specifying the type of the document.
|
|
This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class represents a complex amplitude of a wave (without time depending part) in a plane or a complex transmission function.
Both X and Y field components are stored. In general all functions are applied to both components.
The ComplexAmplitude class is used to represent globally polarized fields and transmissions, too.
The ComplexAmplitude class contains one or two ComplexField as mathematical representations for complex fields. See manual for details of physical interpretation.
The ComplexAmplitude class can contain some additional information about the radius (distance from the origin) of a spherical phase factor. Using this information field may contain a spherical phase factor that is undersampled. If the radius of the spherical phase factor is known, the whole complex amplitude at every point can be reconstructed. The radius of the spherical phase factor helps to reduce the number of sampling points. Functions that use the ComplexAmplitude class have to take into account this spherical phase information to avoid numerical errors.
Operators ( \(a+b\), \(a-b\), \(a*b\) and \(a/b\)) can be used. Passing \(a\) or \(b\) as Complex is supported. \(a^b\) can be applied for pointwise power function: \(a[x,y] ^ b\) \(b\) must be Complex. Operator \(a|b\) is used for calculation of inner product of two ComplexAmplitudes: \(a|b=\sum _{j=0}^{m}\sum _{i=0}^{n}a_{{i,j}}b_{{i,j}^{\star}}\) ( \(z^{\star}\) means conjugation of complex number.).