Namespace VirtualLabAPI.Core.Numerics
Classes
- AxisRotationSequence
Class for describing a sequence of rotations about coordinate axes.
- CFieldDerivative1DReal
Class derived from ComplexField, designed especially for one-dimensional, real valued data.
- CartesianCoordinateSystem
Class for right-handed Cartesian coordinate systems.
- ColorMapping
Used to describe the color mapping between a ComplexAmplitude and a bitmap. Colors from StartColor to EndColor are linearly mapped to double values from StartValue to EndValue. Optional a third color can be inserted in the middle. All parameters are stored separately for each FieldQuantity.
- ComplexField
This class is a matrix of complex values. 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 \(/\) where \(b\) may only 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). IsComplex property is always taken from first operand.
- ComplexField1DArray
Class to encapsulate an array of objects of type ComplexFieldDerivative1D. It also ensures that all entries are either complex or real valued.
- ComplexFieldArray
Class to encapsulate an array of objects of type ComplexField.
- ComplexFieldArrayBase<T>
Generic base class for both ComplexFieldArray and ComplexField1DArray.
- ComplexFieldDerivative1D
Class derived from ComplexField, designed especially for one-dimensional data.
- ComplexFieldInterpolation
This class contains static member functions to interpolate a ComplexField to another sampling grid.
- ComplexFieldPointInterpolation
Class with static members that are able to interpolate point-wise between different sampling points of a ComplexField. Additionally a non-static optimized version is supported for most interpolation methods. These functions are optimized for an interpolation on an equidistant grid. Different interpolation methods are supported.
- CoordinateSystemBaseVectors
Class for the base vectors of a Cartesian coordinate system. This kind of triple vector is also called "trihedron".
- CoordinateTransformations
Provides static conversion functions from one coordinate system to another one, among others
- from pixel to physical coordinates and vice versa,
- from spatial to spectral sampling and vice versa, and
- from an arbitrary coordinate to a coordinate within a period
But be aware that in case the physical coordinate (0; 0) is not bound to the center of a pixel (which is the case for data arrays, but not for complex amplitudes), the VirtualLabAPI.Core.Numerics.SamplingConversions class should be used to convert between pixel and physical coordinates and vice versa.
- DataArray1D
Class for objects that store data in C^N which are equidistantly or non-equidistantly distributed in R^1.
- DataArray2D
Class for objects that store gridded data in C^N which are equidistant or non equidistant distributed in R^2.
- DataArrayBase
Abstract class for storing a map R^M → C^N.
- DataArrayGridLess
Class for objects that store data in C^N which are arbitrarily distributed (i.e. not on a grid) in ℝ^M.
- DataArrayGridded
Base class for the gridded DataArray1D and DataArray2D.
- DirectionByCartesianAngles
A class for defining directions by Cartesian angles.
- DirectionByDirectionAngles
A class for defining directions by direction angles.
- DirectionByRotationMatrix
A class for defining directions by applying a rotation matrix to a starting vector.
- DirectionByRotationSequence
A class for defining directions by applying a sequence of axis rotations to a starting vector.
- DirectionBySphereAngles
A class for defining directions by sphere angles.
- DirectionByVector
A class for defining directions by a Vector3D. Despite this class just wraps a Vector3D, we need it in order to get a class which is derived from DirectionDefinitionBase.
- DirectionDefinitionBase
Base for all classes that describe a direction definition.
- EulerAnglesSet
Struct for Euler angles, following the Z-X'-Z'-convention.
- ExtrapolationInfo
Class which holds information about extrapolation of 1D and 2D data with a finite domain of definition. The extrapolation information tells how to operate outside of the definition domain.
- LargeArray<T>
This class is a two-dimensional array of up to MaxValue times MaxValue entries. the values can be one of the base numeric types of .Net (byte, short, float, and so on).
- MathFunctions
This class contains various mathematical functions and constants. Further methods can be found in the classes MathSupport and CenterSpace.NMath.Core.SpecialFunctions.
- Matrix2x2C
A 2 × 2 matrix with complex-valued entries.
- Matrix2x2D
A 2 × 2 matrix with real-valued entries.
- Matrix3x3C
This class defines a 3x3 Matrix of complex numbers.
Operators (\(a+b\), \(a-b\)). Operator (\(a*b\)) supports \(b\) as complex or Vector3C as well.
- Matrix3x3D
This class defines a 3x3 Matrix of double numbers.
Operators (\(a+b\), \(a-b\)). Operator (\(a*b\)) supports \(b\) as double or Vector3D as well.
- OrientationByCartesianAngles
A class for defining orientations by Cartesian angles, i.e. the angles between the projection of the direction to be defined onto the x-z-plane and the z-axis (alpha), and between the projection of the direction to be defined onto the y-z-plane and the z-axis (beta).
- OrientationByDirectionAngles
A class for defining orientations by direction angles, i.e. the angles between the direction to be defined and each of the Cartesian axis respectively.
- OrientationByEulerAngles
A class for defining orientations by Euler angles.
- OrientationByMatrix
A class for defining orientations via a rotation matrix.
- OrientationBySphereAngles
A class for defining orientations by sphere angles.
- OrientationDefinitionBase
Base for all classes that describe a rotation definition.
- OrientedPlane
Class describing planes with a right-hand orientation. Data are stored in parametrized form, i.e. as one point and two vectors. The third base vector gives the orientated normal vector.
- PhysicalValue
Class for a double value with a physical unit.
- PhysicalValueBase
Base class for a complex or double value with a physical unit.
- PhysicalValueComplex
Class for a complex value with a physical unit.
- PhysicalValuePair
Class for a pair of physical values.
- PhysicalValueRange
Class for a range of physical values.
- Position
Class to describe a position object, that is a point in R^3, with reference information added.
- PositionedLine
Class for objects that describe positioned lines in space.
- RectangleOfPixels
Special rectangle of integer values using to store a rectangular or range selection. In contrast to the System.Drawing.Rectangle class its point of origin is in the lower left corner and the y-axis points upwards. Furthermore its Width is (Right - Left + 1) and its Height is (Bottom - Top + 1). That's because if the rectangle contains two pixels in x-direction its Left property may be "0" while its "Right" property is "1". But then the width should be "2", as two pixels are in the rectangle.
- RectanglePhysical
Class which describes a rectangle of physical dimensions. The location is in the lower left corner, the x-axis directs to the right, the y-axis upwards.
- SamplingParameters
This class contains parameters for proper sampling of a complex field.
- SimpleRotation
Class for describing a rotation about one of the coordinate axes by a certain predefined angle.
- Transformations
Contains static functions that perform a Fourier transformation of a one- or two-dimensional ComplexField.
Structs
- Complex
This struct holds a complex number.
Operators (\(a+b\), \(a-b\), \(a*b\), \(a/b\) and \(a^b\)) can be used. Passing \(a\) or \(b\) as double is supported.
- Vector
This struct defines a two-dimensional vector of integer numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\) and \(a/b\) can be an integer too. Implicit casting to System.Drawing.Point and System.Drawing.Size is supported.
- Vector3C
This class defines 3-dimensional vectors of complex numbers. The class saves the x-, y- and z-coordinate.
- Vector3D
This struct defines a three-dimensional vector of double numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. Second operand on \(a*b\), \(a/b\) and \(a^b\) (applied separate on components) can be a double too.
- VectorB
This struct defines a two-dimensional vector of boolean values.
- VectorC
This struct defines a two-dimensional vector of complex numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\), \(a/b\) (applied separate on components) can also be a Complex. Implicit casting from VectorD is supported.
- VectorD
This struct defines a two-dimensional vector of double numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\), \(a/b\) (applied separate on components) can be also a double. It is also possible to raise a VectorD to a given power (\(a^b\)). Implicit casting from \linkToDoc{Vector}{API.Core.Numerics.Vector} is supported.
- VectorL
This struct defines a two-dimensional vector of long numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\) and \(a/b\) can be an long too.
Interfaces
- ILargeArray<T>
Interface for "data storage containers" storing a large number of values in an array with a maximum size of MaxValue × MaxValue “sampling points”.
- IProvidesPositioningReferences
Interface to be implemented by all classes that contain coordinate systems that can serve as positioning references.
- IRegion1D2D
Interface to connect 1D and 2D regions.
Enums
- AxisDirection
These enum flags are used to indicate different directions.
- ComplexPart
This enum lists actions a function can perform on the ComplexPart of a Complex number like extracting, shifting and swapping.
- ComplexToStringConversionFormat
Output formats which are supported by the Complex.ToString() method and by the Complex.Parse() method.
- DirectionDefinitionType
Enum of the different types of definition for directions.
- ExtrapolationType
Enum for the mode of extrapolation, applied to a ComplexField if coordinates outside its definition area are needed.
- FieldQuantity
Enumerator containing the distinct components of a Complex number.
- IndependentDirectionAngles
Enum to differentiate possible combinations of independent direction angles.
- InterpolationMethod
Enumeration of the distinct interpolation types. (See manual for details.)
- InterpolationMethodForNonequidistantData
Enum for the different methods of interpolation for non-equidistant data
- OrientationDefinitionType
Enum for different types of definition for rotations of vectors, planes or solids.
- PhysicalProperty
Enumeration of the supported physical properties.
- RotationAxisOrAngleName
Enumeration of all kinds of angles (Euler angles, Cartesian angles, direction angles, spherical angles).