GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
matrix.h File Reference

This file contains the definition of a template for 3x3 matrices, which can be used together with the Vector class, defined in this project. More...

#include "vector.h"
#include <iostream>

Go to the source code of this file.

Classes

class  GOAT::maths::Matrix< T >
 This class represents a threedimensional (numeric) Matrix as a template. More...

Namespaces

namespace  GOAT
 This class is used for the iray class. This class is intended for internal use only. It defines a plane, defined by a central position and two directional vectors.
namespace  GOAT::maths

Functions

Matrix< std::complex< double > > GOAT::maths::cunity ()
 unity matrix (complex)
Matrix< double > GOAT::maths::null ()
 Null-matrix (all components are zero)
void GOAT::maths::trafo (const Vector< double > &e0, const Vector< double > &e1, const Vector< double > &e2, Matrix< double > &H, Matrix< double > &R)
 Calculates the transformation matrices from the laboratory coordinate system into a local system and vice versa.
Matrix< double > GOAT::maths::unity ()
 unity matrix (double precision)
special operators for mixed types

Operators for calculations with mixed types.

Matrix< std::complex< double > > GOAT::maths::operator* (const double &, const Matrix< std::complex< double > > &)
Matrix< std::complex< double > > GOAT::maths::operator* (const Matrix< double > &, const Matrix< std::complex< double > > &)
Matrix< std::complex< double > > GOAT::maths::operator* (const Matrix< double > &, const std::complex< double > &)
Vector< std::complex< double > > GOAT::maths::operator* (const Matrix< double > &, const Vector< std::complex< double > > &)
Matrix< std::complex< double > > GOAT::maths::operator* (const Matrix< std::complex< double > > &, const double &)
Matrix< std::complex< double > > GOAT::maths::operator* (const Matrix< std::complex< double > > &, const Matrix< double > &)
Vector< std::complex< double > > GOAT::maths::operator* (const Matrix< std::complex< double > > &, const Vector< double > &)
Matrix< std::complex< double > > GOAT::maths::operator* (const std::complex< double > &, const Matrix< double > &)
Matrix< std::complex< double > > GOAT::maths::operator+ (const Matrix< double > &, const Matrix< std::complex< double > > &)
Matrix< std::complex< double > > GOAT::maths::operator+ (const Matrix< std::complex< double > > &, const Matrix< double > &)
Matrix< std::complex< double > > GOAT::maths::operator- (const Matrix< double > &, const Matrix< std::complex< double > > &)
Matrix< std::complex< double > > GOAT::maths::operator- (const Matrix< std::complex< double > > &, const Matrix< double > &)
Matrix< std::complex< double > > GOAT::maths::operator/ (const Matrix< double > &, const std::complex< double > &)
Matrix< std::complex< double > > GOAT::maths::operator/ (const Matrix< std::complex< double > > &, const double &)
Rotation matrices

Rotation matrices around the principal axis of the cartesian coordinate system (angles are given in radiants)

Matrix< double > GOAT::maths::Dx (double phi)
 Rotation matrix around x axis This function returns the matrix for a rotation around the x-axis:
Matrix< double > GOAT::maths::Dy (double phi)
 Rotation matrix around y axis This function returns the matrix for a rotation around the y-axis:
Matrix< double > GOAT::maths::Dz (double phi)
 Rotation matrix around z axis This function returns the matrix for a rotation around the z-axis:
Matrix< double > GOAT::maths::rotMatrix (const Vector< double > a, double gamma)
 Rotation matrix for rotation around the axis a by the angle gamma.
Matrix< double > GOAT::maths::rotMatrix (double alpha, double beta, double gamma)
 Rotation matrix calculated from rotation around x-axis, y-axis and z-axis.
Matrix< double > GOAT::maths::rotMatrix (Vector< double > P, double dtheta, double dphi)
Matrix< double > GOAT::maths::rotMatrixA (Vector< double > n, Vector< double > k, double gamma)
 Calculates rotation matrix for a rotation around an axis passing through a given point and pointing in a defined direction.

Variables

const Matrix< std::complex< double > > GOAT::maths::CUNITY = Matrix<std::complex<double> >(Vector<std::complex<double> >(1, 0, 0), Vector<std::complex<double> >(0, 1, 0), Vector<std::complex<double> >(0, 0, 1))
 Unity matrix (complex-valued)
const Matrix< double > GOAT::maths::UNITY = Matrix<double>(Vector<double>(1.0, 0.0, 0.0), Vector<double>(0.0, 1.0, 0.0), Vector<double>(0.0, 0.0, 1.0))
 Unity matrix (double-valued)

Detailed Description

This file contains the definition of a template for 3x3 matrices, which can be used together with the Vector class, defined in this project.

Author
Thomas
Date
July 2021

Definition in file matrix.h.