Table of Contents

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).