|
Programming Reference for VirtualLab Fusion
2022.1
|
This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class is a matrix of complex values. Internally the complex numbers can be represented using different precisions (double, float, integer). If no imaginary part is needed (real valued fields) one can set a special flag that indicates a real valued field (ComplexField with imaginary part zero). This different internal representations are used to optimize the computer memory and computational time.
Operators ( \(a+b\), \(a-b\), \(a*b\) and \(a/b\)) can be used. Passing \(a\) or \(b\) as Complex or double is supported (Except of \(/\), only \(b\) may be a scalar). Operator \(a|b\) is used for calculation of inner product of two ComplexFields: \(a|b=\sum _{j=0}^{m}\sum _{i=0}^{n}a_{{i,j}}b_{{i,j}^{\star}}\) ( \(z^{\star}\) means conjugation of complex number.). Precision and IsComplex property is always taken from first operand.
More...
Public Member Functions | |
| void | AddConjugate () |
| Adds conjugated ComplexField to current one. | |
| void | AddEqual (Complex c) |
| Adds a Complex to current ComplexField. See important note on ComplexField. More... | |
| void | AddEqual (ComplexField field) |
| Adds a ComplexField to current one. Both field must have same number of sampling points. See important note on ComplexField. More... | |
| void | ClipAmplitude (double clippingLevel) |
| Sets all amplitude value greater than clippingLevel to clippingLevel. More... | |
| ComplexField () | |
| Creates a ComplexField with 1x1 sampling points. The default precision is used and the internal data presentation is complex. | |
| ComplexField (ComplexField field) | |
| Copy constructor. More... | |
| ComplexField (Vector samplingPoints) | |
| Creates a ComplexField with given number of sampling points. The default precision is used and the internal data presentation is complex. More... | |
| ComplexField (Vector samplingPoints, bool isComplex, PrecisionMode precision) | |
| Creates a ComplexField with given number of sampling points using specified precision. The internal data representation can be complex or real. More... | |
| ComplexField (Vector samplingPoints, bool isComplex, PrecisionMode precision, Complex c) | |
| Creates a ComplexField with given number of sampling points using specified precision. The internal data representation can be complex or real. Field is filled with constant value. In case of a real valued complex field only the real part of constant value is stored. More... | |
| ComplexField (Vector samplingPoints, bool isComplexFunction, PrecisionMode precision, RealFunction f, ParallelizationType parallelizationType) | |
| Constructs a ComplexField object with given number of sampling points using a RealFunction. which will be evaluated to fill in the complex amplitudes with the specified precision. The parameters x and y of the real function are measured in pixel coordinates whose origin is the upper left corner of the field. More... | |
| ComplexField (Vector samplingPoints, PrecisionMode precision, ComplexFunction f, ParallelizationType parallelizationType) | |
| Constructs a ComplexField object with given number of sampling points using a ComplexFunction which will be evaluated to fill in the complex amplitudes with the specified precision. The parameters x and y of the real function are measured in pixel coordinates whose origin is the upper left corner of the field. More... | |
| void | Conjugate () |
| Conjugates current ComplexField. | |
| void | ConvertTo2DDoubleArray (out double[,] doubleArrayReal, out double[,] doubleArrayImaginary) |
| Public support method to convert the complex field into two double arrays. (real and imaginary part will be output separately) Remark: This function was implemented to realize compatibility to Python. More... | |
| void | DivEqual (Complex c) |
| Divides the present ComplexField by complex number. See important note on ComplexField. More... | |
| void | DivEqual (ComplexField field) |
| Divides the present ComplexField by passed one. Both field must have same number of sampling points. See important note on ComplexField. More... | |
| void | EmbedCorner (Vector newSize) |
| Embeds the current ComplexField into double side-length field of zero sampling points and places the original in bottom left corner of the new field. If the ComplexField is one-dimensional, only longer side of field is doubled. More... | |
| virtual void | EmbedExtract () |
| Embeds the current ComplexField into double side-length field of zero sampling points and places the original in the middle of the new field. If the ComplexField is one-dimensional, only longer side of field is doubled. | |
| virtual ComplexField | EmbedExtract (Rectangle rectangle) |
| Extract a region of the current ComplexField including the bottom left corner but excluding the top right corner. More... | |
| virtual void | EmbedExtract (Vector newSize) |
| Embeds the current ComplexField into field of passed size of zero sampling points and places the original in the middle of the new field. By decreasing size, field can be extracted. More... | |
| override bool | Equals (Object obj) |
| Checks whether two complex fields represent the same values. More... | |
| ComplexField | Extract (Vector size, VectorL position) |
| Extracts the given region at given position out of the current field. Points exceeding boundaries of current field will be ignored. More... | |
| ComplexField | ExtractColumn (int colIndex) |
| Extracts a column out of the current field. Points exceeding boundaries of current field will be set to zero. More... | |
| ComplexField | ExtractRow (int rowIndex) |
| Extracts a row out of the current field. Points exceeding boundaries of current field will be set to zero. More... | |
| void | Fill (Complex c) |
| Fills whole current ComplexField with the specified complex value. More... | |
| void | Fill (Complex c, Rectangle marker, bool inside) |
| Fills whole ComplexField inside marker with the specified complex value. If inside is set to false, field outside marker will be filled. More... | |
| void | GetAmplitude () |
| Returns ComplexField with zero phase and a magnitude equal to that of current ComplexField. | |
| void | GetImaginaryPart () |
| Extracts the imaginary part of current ComplexField. The real part is set to zero. | |
| void | GetIntensity () |
| Extracts the intensity of ComplexField and shifts to the real part of current ComplexField. The imaginary part is set to zero. | |
| void | GetPhase () |
| Returns ComplexField with unit magnitude and a phase equal to that of current ComplexField. | |
| void | GetRealPart () |
| Extracts the real part of current ComplexField. The imaginary part is set to zero. | |
| void | HorizontalMirror () |
| Performs a horizontal mirroring of current ComplexField. [SamplingPoints.X - x - 1, y] = [x, y] | |
| void | Insert (ComplexField field, VectorL position) |
| Inserts the given ComplexField into current field at given position. Points exceeding boundaries of current field will be ignored. More... | |
| void | InsertColumn (int colIndex) |
| Inserts or appends empty column. More... | |
| void | InsertRow (int rowIndex) |
| Inserts or appends empty row. More... | |
| void | LiftPositive () |
| Lifts real part of current ComplexField to positive numbers. Function detects the minimum real number. If this number is smaller than zero it adds the absolute value of the minimum. If the minimum real number is larger than zero the present object is returned without changes. | |
| double[] | LinearFit (VectorD samplDist) |
| Linear regression on a real valued Complex Field (phase derivative of a CA in x resp. y) Excluded points are assumed to be marked by float.Epsilon More... | |
| void | ModifyComplexPart (ComplexPart complexPart, bool makeRealValuedIfSuitable=false) |
| Extract, shifts or swaps complex parts of the complex field. More... | |
| void | MultEqual (Complex c) |
| Multiplies a Complex number to current ComplexField. See important note on ComplexField. More... | |
| void | MultEqual (ComplexField field) |
| Multiplies a ComplexField with current one. Both field must have same number of sampling points. See important note on ComplexField. More... | |
| void | MultEqual (IRegion1D2D region, SamplingParameters samplingParameters) |
| Multiplies a IRegion1D2D with this ComplexField. More... | |
| void | Normalize (System.Drawing.Rectangle? rectangle=null) |
| Normalizes ComplexField so that maximal amplitude inside rectangle is one. More... | |
| void | PowerEqual (Complex c) |
| Raises every element of current ComplexField to the power of passed complex number. See important note on ComplexField. More... | |
| double | RadiusError (double constPart, double radius, double k, VectorD dist, bool computeInX) |
| compute the fit measure of the spherical phase dependent on radius in partial phase derivative More... | |
| void | Replicate (Vector newSize, VectorL shift) |
| Replicates current ComplexField periodically. Needs new size. More... | |
| void | Replicate_Periodic (Vector newSize) |
| Replicates current ComplexField periodically, old field is at (0,0). Needs new size. More... | |
| void | Rotate180 () |
| Rotates this ComplexField through 180° about the field center. | |
| void | Shift (Vector shift) |
| Shifts current ComplexField by a specified distance. Size is not modified, so sampling points can get lost. More... | |
| void | SubEqual (Complex c) |
| Subtracts a Complex from current ComplexField. See important note on ComplexField. More... | |
| void | SubEqual (ComplexField field) |
| Subtracts a ComplexField from current one. Both field must have same number of sampling points. See important note on ComplexField. More... | |
| void | Transpose () |
| Transposes current ComplexField. This means [x, y] = [y, x]. | |
| void | VerticalMirror () |
| Performs a vertical mirroring of current ComplexField. [x, SamplingPoints.Y - y - 1] = [x, y] | |
Static Public Member Functions | |
| static ComplexField | ConvertFrom2_1D_DoubleArrays (double[] doubleArray1, double[] doubleArray2) |
| Converts two one-dimensional double arrays to a two dimensional complex field of dimensions 2 x doubleArray1.Length More... | |
| static ComplexField | ConvertFrom2D_DoubleArray (double[,] doubleArray) |
| Converts a two dimensional double array to a two dimensional complex field More... | |
| static ComplexFieldDerivative1D | ConvertFrom_1D_ComplexArray (Complex[] complexArray) |
| Converts one one-dimensional complex array to a one-dimensional complex field More... | |
| static CFieldDerivative1DReal | ConvertFrom_1D_DoubleArray (double[] doubleArray) |
| Converts one one-dimensional double array to a one-dimensional complex field More... | |
| static double[] | ConvertTo1D_DoubleArray (ComplexField complexField, bool errorWhenComplex) |
| Converts a one dimensional complex field to a one dimensional double array More... | |
| static double[,] | ConvertTo2D_DoubleArray (ComplexField complexField, bool errorWhenComplex) |
| Converts a two dimensional complex field to a two dimensional double array More... | |
| static bool | operator!= (ComplexField field1, ComplexField field2) |
| Compares two complex fields for equality More... | |
| static ComplexField | operator* (Complex c, ComplexField field) |
| Multiplies a complex value to a complex field. More... | |
| static ComplexField | operator* (ComplexField field, Complex c) |
| Multiplies a complex value to a complex field. More... | |
| static ComplexField | operator* (ComplexField field1, ComplexField field2) |
| Multiplies two complex fields. More... | |
| static ComplexField | operator+ (ComplexField field, Complex c) |
| Adds a complex value to a complex field. More... | |
| static ComplexField | operator+ (ComplexField field1, ComplexField field2) |
| Adds two complex fields. More... | |
| static ComplexField | operator- (Complex c, ComplexField field) |
| Subtracts a complex number and a complex field. More... | |
| static ComplexField | operator- (ComplexField field, Complex c) |
| Subtracts a complex field and a complex number. More... | |
| static ComplexField | operator- (ComplexField field1, ComplexField field2) |
| Subtracts two complex fields. More... | |
| static ComplexField | operator/ (ComplexField field, Complex c) |
| Divides a complex field by a complex number More... | |
| static ComplexField | operator/ (ComplexField field1, ComplexField field2) |
| Divide two complex fields More... | |
| static bool | operator== (ComplexField field1, ComplexField field2) |
| Compares two complex fields for equality More... | |
| static Complex | operator| (ComplexField field1, ComplexField field2) |
| Computes the inner (or scalar) product of two complex fields as defined by (u|v) := Integrate[u(x) * v^(x), {x, -Infinity, Infinity}]. More... | |
Properties | |
| virtual bool | IsComplex [get, set] |
| Gets or sets the internal representation of the values of ComplexField. If IsComplex = true the real and imaginary part is stored. Is IsComplex = false only the real part is stored. It is assumed that the imagary part is zero. Setting the IsComplex property will convert the ComplexField from present representation to new one. Information can be lost during this conversion. | |
| virtual bool | IsOneD [get] |
| Indicates whether field is one-dimensional or not. | |
| PrecisionMode | Precision [get, set] |
| Changes the precision of the internal number representation. It is possible to switch between double (64 bit), single (32 bit) and integer precision (16bit). The different precisions are realized by using 3 different arrays of numbers. Only the array that corresponds to the selected precision is used and contains the values of the ComplexField. All other arrays are empty. Setting a different precision than the present will start a conversion of the ComplexField data to the new precision format. Information can be lost in case of a conversions to a lower accuracy. | |
| virtual Vector | SamplingPoints [get, set] |
| Gets or sets number of sampling points of ComplexField. Setting a new number of sampling points will embed the sampling points in zero samples or extract the central sampling points. See also EmbedExtract. | |
| int | SamplingPointsOneD [get] |
| Number of sampling points of one-dimensional field. An exception will be thrown, if field is two-dimensional. | |
| virtual Complex | this[int x, int y] [get, set] |
| Indexer to access complex values of complex field. Property performs a range checking before every access. If you try to read a complex value and index is out of range Complex(0) is returned. If you try to set a complex value and index is out of range nothing will happen. Indexer returns always a complex number in double precision independent on the internal complex number representation. During the setting of a complex value the indexer converts the complex number from double precision to the internal data representation. If internal precision is less accurate double precision information will be lost. Conversion to the less accurate precision is done by truncating the numbers after the last digit of the new precision. If IsComplex = false only the real part is stored. More... | |
| Complex | this[long x, long y] [get, set] |
| Indexer to access complex values of complex field. Property performs a range checking before every access. If you try to read a complex value and index is out of range Complex(0) is returned. If you try to set a complex value and index is out of range nothing will happen. Indexer returns always a complex number in double precision independent on the internal complex number representation. During the setting of a complex value the indexer converts the complex number from double precision to the internal data representation. If internal precision is less accurate double precision information will be lost. Conversion to the less accurate precision is done by truncating the numbers after the last digit of the new precision. If IsComplex = false only the real part is stored. More... | |
This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class is a matrix of complex values. Internally the complex numbers can be represented using different precisions (double, float, integer). If no imaginary part is needed (real valued fields) one can set a special flag that indicates a real valued field (ComplexField with imaginary part zero). This different internal representations are used to optimize the computer memory and computational time.
Operators ( \(a+b\), \(a-b\), \(a*b\) and \(a/b\)) can be used. Passing \(a\) or \(b\) as Complex or double is supported (Except of \(/\), only \(b\) may be a scalar). Operator \(a|b\) is used for calculation of inner product of two ComplexFields: \(a|b=\sum _{j=0}^{m}\sum _{i=0}^{n}a_{{i,j}}b_{{i,j}^{\star}}\) ( \(z^{\star}\) means conjugation of complex number.). Precision and IsComplex property is always taken from first operand.
| ComplexField | ( | Vector | samplingPoints | ) |
Creates a ComplexField with given number of sampling points. The default precision is used and the internal data presentation is complex.
| samplingPoints | Number of points in x and y direction. |
| ComplexField | ( | ComplexField | field | ) |
Copy constructor.
| field | Field to copy. |
| ComplexField | ( | Vector | samplingPoints, |
| bool | isComplex, | ||
| PrecisionMode | precision | ||
| ) |
Creates a ComplexField with given number of sampling points using specified precision. The internal data representation can be complex or real.
| samplingPoints | Number of values in x and y direction. |
| precision | Desired PrecisionMode. |
| isComplex | Indicates if new ComplexField should internally store real + imaginary part (complex = true) or the real part only (complex = false) (imaginary part is zero). |
| ComplexField | ( | Vector | samplingPoints, |
| bool | isComplex, | ||
| PrecisionMode | precision, | ||
| Complex | c | ||
| ) |
Creates a ComplexField with given number of sampling points using specified precision. The internal data representation can be complex or real. Field is filled with constant value. In case of a real valued complex field only the real part of constant value is stored.
| samplingPoints | Number of values in x and y direction. |
| precision | Desired PrecisionMode. |
| isComplex | Indicates if the new ComplexField should internally store real + imaginary part (complex = true) or the real part only (complex = false) (imaginary part is zero). |
| c | Complex number with which the field is to be initialized. |
| ComplexField | ( | Vector | samplingPoints, |
| bool | isComplexFunction, | ||
| PrecisionMode | precision, | ||
| RealFunction | f, | ||
| ParallelizationType | parallelizationType | ||
| ) |
Constructs a ComplexField object with given number of sampling points using a RealFunction. which will be evaluated to fill in the complex amplitudes with the specified precision. The parameters x and y of the real function are measured in pixel coordinates whose origin is the upper left corner of the field.
| samplingPoints | Number of pixels in x-and y-direction. |
| isComplexFunction | Indicates if new ComplexField should internally store real + imaginary part (complex = true) or the real part only (complex = false) (imaginary part is zero). |
| precision | Desired PrecisionMode. |
| f | Function to be evaluated. |
| parallelizationType | Type of the parallelization. Set it to ParallelizationType.NoParallelization if the method passed by the function is not thread-safe. Otherwise you can choose of the remaining parallelization types (ParallelizationType.AutomaticMeasure is recommended). |
| ComplexField | ( | Vector | samplingPoints, |
| PrecisionMode | precision, | ||
| ComplexFunction | f, | ||
| ParallelizationType | parallelizationType | ||
| ) |
Constructs a ComplexField object with given number of sampling points using a ComplexFunction which will be evaluated to fill in the complex amplitudes with the specified precision. The parameters x and y of the real function are measured in pixel coordinates whose origin is the upper left corner of the field.
| samplingPoints | Number of pixels in x- and y-direction. |
| precision | Desired PrecisionMode. |
| f | Function to be evaluated. |
| parallelizationType | Type of the parallelization. Set it to ParallelizationType.NoParallelization if the method passed by the function is not thread-safe. Otherwise you can choose of the remaining parallelization types (ParallelizationType.AutomaticMeasure is recommended). |
| void AddEqual | ( | Complex | c | ) |
Adds a Complex to current ComplexField. See important note on ComplexField.
| c | Complex number to add to current field. |
| void AddEqual | ( | ComplexField | field | ) |
Adds a ComplexField to current one. Both field must have same number of sampling points. See important note on ComplexField.
| field | Complex field to add to current field. |
| void ClipAmplitude | ( | double | clippingLevel | ) |
Sets all amplitude value greater than clippingLevel to clippingLevel.
| clippingLevel | Maximal value of amplitude. |
|
static |
Converts two one-dimensional double arrays to a two dimensional complex field of dimensions 2 x doubleArray1.Length
| doubleArray1 | The first double array to convert |
| doubleArray2 | The second double array to convert |
|
static |
Converts a two dimensional double array to a two dimensional complex field
| doubleArray | The double array to convert |
|
static |
Converts one one-dimensional complex array to a one-dimensional complex field
| complexArray | The complex array to convert |
|
static |
Converts one one-dimensional double array to a one-dimensional complex field
| doubleArray | The double array to convert |
|
static |
Converts a one dimensional complex field to a one dimensional double array
| complexField | Complex field to convert |
| errorWhenComplex | Shall an exception be thrown if the complex field is not real valued? Please note: The Imaginary part will be ignored in every case! |
|
static |
Converts a two dimensional complex field to a two dimensional double array
| complexField | Complex field to convert |
| errorWhenComplex | Shall an exception be thrown if the complex field is not real valued? Please note: The Imaginary part will be ignored in every case! |
| void ConvertTo2DDoubleArray | ( | out double | doubleArrayReal[,], |
| out double | doubleArrayImaginary[,] | ||
| ) |
Public support method to convert the complex field into two double arrays. (real and imaginary part will be output separately) Remark: This function was implemented to realize compatibility to Python.
| doubleArrayReal | The double array storing real part |
| doubleArrayImaginary | The double array storing imaginary part (remark: if the underlying complex field is real values, this data array will only contain zeroths |
| void DivEqual | ( | Complex | c | ) |
Divides the present ComplexField by complex number. See important note on ComplexField.
| c | Complex number to divide. |
| void DivEqual | ( | ComplexField | field | ) |
Divides the present ComplexField by passed one. Both field must have same number of sampling points. See important note on ComplexField.
| field | Complex field used as divisor. |
| void EmbedCorner | ( | Vector | newSize | ) |
Embeds the current ComplexField into double side-length field of zero sampling points and places the original in bottom left corner of the new field. If the ComplexField is one-dimensional, only longer side of field is doubled.
| newSize | New Size in pixel. |
|
virtual |
Extract a region of the current ComplexField including the bottom left corner but excluding the top right corner.
| rectangle | Region to extract. |
Reimplemented in ComplexFieldDerivative1D.
|
virtual |
Embeds the current ComplexField into field of passed size of zero sampling points and places the original in the middle of the new field. By decreasing size, field can be extracted.
| newSize | New size in pixel. |
Reimplemented in ComplexFieldDerivative1D.
| override bool Equals | ( | Object | obj | ) |
Checks whether two complex fields represent the same values.
| obj | Complex field to be compared |
True if both fields have the same size and the same values.| ComplexField Extract | ( | Vector | size, |
| VectorL | position | ||
| ) |
Extracts the given region at given position out of the current field. Points exceeding boundaries of current field will be ignored.
| size | size of the region to extract. |
| position | Position at which field is to be extracted. |
| ComplexField ExtractColumn | ( | int | colIndex | ) |
Extracts a column out of the current field. Points exceeding boundaries of current field will be set to zero.
| colIndex | Index of the column to extract. |
| ComplexField ExtractRow | ( | int | rowIndex | ) |
Extracts a row out of the current field. Points exceeding boundaries of current field will be set to zero.
| rowIndex | index of the row to extract. |
| void Fill | ( | Complex | c | ) |
Fills whole current ComplexField with the specified complex value.
| c | Complex value to fill the field with. |
| void Fill | ( | Complex | c, |
| Rectangle | marker, | ||
| bool | inside | ||
| ) |
Fills whole ComplexField inside marker with the specified complex value. If inside is set to false, field outside marker will be filled.
| marker | Region that decides where to fill. |
| c | Complex value to fill the field with. |
| inside | Fill inside or outside of the marker. |
| void Insert | ( | ComplexField | field, |
| VectorL | position | ||
| ) |
Inserts the given ComplexField into current field at given position. Points exceeding boundaries of current field will be ignored.
| void InsertColumn | ( | int | colIndex | ) |
Inserts or appends empty column.
| colIndex | Index of column left of inserted column or -1 to append column. |
| void InsertRow | ( | int | rowIndex | ) |
Inserts or appends empty row.
| rowIndex | Index of row below inserted row or -1 to append row. |
| double[] LinearFit | ( | VectorD | samplDist | ) |
Linear regression on a real valued Complex Field (phase derivative of a CA in x resp. y) Excluded points are assumed to be marked by float.Epsilon
| samplDist | dimensions of independent parameters (x,y) |
| void ModifyComplexPart | ( | ComplexPart | complexPart, |
| bool | makeRealValuedIfSuitable = false |
||
| ) |
Extract, shifts or swaps complex parts of the complex field.
| complexPart | Enumerator element for desired action on ComplexField. |
| makeRealValuedIfSuitable | If this optional parameter is set to true the field is made real-valued if the imaginary part is zeroized. This is e.g. the case for extract amplitude and shift phase to real. |
| void MultEqual | ( | Complex | c | ) |
Multiplies a Complex number to current ComplexField. See important note on ComplexField.
| c | Complex number used as factor. |
| void MultEqual | ( | ComplexField | field | ) |
Multiplies a ComplexField with current one. Both field must have same number of sampling points. See important note on ComplexField.
| field | Complex field used as factor. |
| void MultEqual | ( | IRegion1D2D | region, |
| SamplingParameters | samplingParameters | ||
| ) |
Multiplies a IRegion1D2D with this ComplexField.
| region | Region used as factor. |
| samplingParameters | The sampling parameters which apply to this complex field. |
| void Normalize | ( | System.Drawing.Rectangle? | rectangle = null | ) |
Normalizes ComplexField so that maximal amplitude inside rectangle is one.
| rectangle | If this optional parameter is set only the region within the specified rectangle is taken into account for the calculation of the maximum being the normalization reference. |
|
static |
Compares two complex fields for equality
| field1 | first field |
| field2 | second field |
True if both fields do not represent the same data.
|
static |
Multiplies a complex value to a complex field.
| c | the complex value |
| field | the field |
|
static |
Multiplies a complex value to a complex field.
| field | the field |
| c | the complex value |
|
static |
Multiplies two complex fields.
| field1 | the first field |
| field2 | the second field |
| FieldSizesDontMatch |
|
static |
Adds a complex value to a complex field.
| field | the field |
| c | the complex value |
|
static |
Adds two complex fields.
| field1 | the first field to be added |
| field2 | the second field to be added |
| FieldSizesDontMatch |
|
static |
|
static |
|
static |
Subtracts two complex fields.
| field1 | the first field |
| field2 | the second field |
| FieldSizesDontMatch |
|
static |
Divides a complex field by a complex number
| field | complex field |
| c | complex number |
|
static |
Divide two complex fields
| field1 | the first field |
| field2 | the second field |
|
static |
Compares two complex fields for equality
| field1 | first field |
| field2 | second field |
True if both fields represent the same data.
|
static |
Computes the inner (or scalar) product of two complex fields as defined by (u|v) := Integrate[u(x) * v^(x), {x, -Infinity, Infinity}].
| field1 | the first field |
| field2 | the second field |
| void PowerEqual | ( | Complex | c | ) |
Raises every element of current ComplexField to the power of passed complex number. See important note on ComplexField.
| c | Complex exponent. |
| double RadiusError | ( | double | constPart, |
| double | radius, | ||
| double | k, | ||
| VectorD | dist, | ||
| bool | computeInX | ||
| ) |
compute the fit measure of the spherical phase dependent on radius in partial phase derivative
| constPart | value of phase derivative at x = y = 0 |
| radius | radius of spherical phase |
| k | proportionality factor of spherical phase function |
| dist | sampling distance in original ComplexAmplitude |
| computeInX | is the ComplexField d_phi/dx or d_phi/dy |
Replicates current ComplexField periodically. Needs new size.
| newSize | New Size in pixel. |
| shift | Introduces a shift in pixels. If the shift is zero then the left bottom corner of the field to replicate is in the left bottom corner of the replicated field. Else the replication starts with the sampling point of the field to replicate at the position shift on the left bottom corner of the replicated field. |
| void Replicate_Periodic | ( | Vector | newSize | ) |
Replicates current ComplexField periodically, old field is at (0,0). Needs new size.
| newSize | New Size in pixel. |
| void Shift | ( | Vector | shift | ) |
Shifts current ComplexField by a specified distance. Size is not modified, so sampling points can get lost.
| shift | Shift in pixel. |
| void SubEqual | ( | Complex | c | ) |
Subtracts a Complex from current ComplexField. See important note on ComplexField.
| c | Complex number to subtract form current field. |
| void SubEqual | ( | ComplexField | field | ) |
Subtracts a ComplexField from current one. Both field must have same number of sampling points. See important note on ComplexField.
| field | Complex field to subtract form current field. |
|
getset |
Indexer to access complex values of complex field. Property performs a range checking before every access. If you try to read a complex value and index is out of range Complex(0) is returned. If you try to set a complex value and index is out of range nothing will happen. Indexer returns always a complex number in double precision independent on the internal complex number representation. During the setting of a complex value the indexer converts the complex number from double precision to the internal data representation. If internal precision is less accurate double precision information will be lost. Conversion to the less accurate precision is done by truncating the numbers after the last digit of the new precision. If IsComplex = false only the real part is stored.
| x | Index for x-coordinate |
| y | Index for y-coordinate |
|
getset |
Indexer to access complex values of complex field. Property performs a range checking before every access. If you try to read a complex value and index is out of range Complex(0) is returned. If you try to set a complex value and index is out of range nothing will happen. Indexer returns always a complex number in double precision independent on the internal complex number representation. During the setting of a complex value the indexer converts the complex number from double precision to the internal data representation. If internal precision is less accurate double precision information will be lost. Conversion to the less accurate precision is done by truncating the numbers after the last digit of the new precision. If IsComplex = false only the real part is stored.
| x | Index for x-coordinate |
| y | Index for y-coordinate |