matrixabstractlayert3d.hh File Reference
#include "t3d/t3d.h"
#include "t3d/v3d.h"
#include <cmath>
#include "jrl/mathtools/matrix3x3.hh"
Include dependency graph for matrixabstractlayert3d.hh:

Macros

#define MAL_S4x4_MATRIX_TYPE(type)   T3D
 
#define MAL_S4x4_MATRIX(name, type)   T3D name
 
#define MAL_S4x4_MATRIX_CLEAR(name)   /*Clear don't have any sense*/
 
#define MAL_S4x4_MATRIX_SET_IDENTITY(name)   name=t3dMatrixIdentity
 
#define MAL_S4x4_INVERSE(name, inv_matrix, type)   inv_matrix=~name;
 
#define MAL_S4x4_RET_TRANSPOSE(matrix)   /*Transpose don't have any sense*/
 
#define MAL_S4x4_TRANSPOSE_A_in_At(A, At)   /*Transpose don't have any sense*/
 
#define MAL_S4x4_RET_A_by_B(A, B)   (A)*(B)
 
#define MAL_S4x4_C_eq_A_by_B(C, A, B)   (C)=(A)*(B)
 
#define MAL_S4x4_MATRIX_ACCESS_I(name, i)   name.matrix[i]
 
#define MAL_S4x4_MATRIX_ACCESS_I_J(name, i, j)   name.matrix(i,j)
 
#define MAL_S3_VECTOR_TYPE(type)   V3D
 
#define MAL_S3_VECTOR(name, type)   V3D name
 
#define MAL_S3_VECTOR_(type)   V3D
 
#define MAL_S3_VECTOR_SIZE(name)   3
 
#define MAL_S3_VECTOR_FILL(name, value)
 
#define MAL_S3_VECTOR_NORM(name)
 
#define MAL_S3_VECTOR_CROSS_PRODUCT(res, v1, v2)
 
#define MAL_S3_RET_VECTOR_DATABLOCK(name)   &name
 
#define MAL_S3_VECTOR_ACCESS(name, i)   name[i]
 
#define MAL_S3_VECTOR_CLEAR(name)
 
#define MAL_S4_VECTOR_TYPE(type)   V3D
 
#define MAL_S4_VECTOR(name, type)   V3D name
 
#define MAL_S4_VECTOR_SIZE(name)   3
 
#define MAL_S4_VECTOR_FILL(name, value)
 
#define MAL_S4_VECTOR_NORM(name)
 
#define MAL_S4_RET_VECTOR_DATABLOCK(name)   &name
 
#define MAL_S4_VECTOR_ACCESS(name, i)   name[i]
 
#define MAL_S3x3_MATRIX_TYPE(type)   jrlMathTools::Matrix3x3<type>
 
#define MAL_S3x3_MATRIX(name, type)   jrlMathTools::Matrix3x3<type> name
 
#define MAL_S3x3_MATRIX_CLEAR(name)   name.setZero()
 
#define MAL_S3x3_MATRIX_SET_IDENTITY(name)   name.setIdentity()
 
#define MAL_S3x3_INVERSE(name, inv_matrix, type)   name.Inversion(inv_matrix)
 
#define MAL_S3x3_RET_TRANSPOSE(matrix)   matrix.Transpose()
 
#define MAL_S3x3_TRANSPOSE_A_in_At(A, At)   A.Transpose(At)
 
#define MAL_S3x3_RET_A_by_B(A, B)   A*B
 
#define MAL_S3x3_C_eq_A_by_B(C, A, B)   A.CeqthismulB(B,C)
 
#define MAL_S3x3_MATRIX_ACCESS_I(name, i)   name[i]
 
#define MAL_S3x3_MATRIX_ACCESS_I_J(name, i, j)   name(i,j)
 

Typedefs

typedef T3D matrix4d
 
typedef V3D vector3d
 
typedef V3D vector4d
 
typedef jrlMathTools::Matrix3x3< double > matrix3d
 

Macro Definition Documentation

◆ MAL_S3_RET_VECTOR_DATABLOCK

#define MAL_S3_RET_VECTOR_DATABLOCK (   name)    &name

◆ MAL_S3_VECTOR

#define MAL_S3_VECTOR (   name,
  type 
)    V3D name

◆ MAL_S3_VECTOR_

#define MAL_S3_VECTOR_ (   type)    V3D

◆ MAL_S3_VECTOR_ACCESS

#define MAL_S3_VECTOR_ACCESS (   name,
 
)    name[i]

◆ MAL_S3_VECTOR_CLEAR

#define MAL_S3_VECTOR_CLEAR (   name)
Value:
{ name[0] = 0.; \
name[1] = 0.; \
name[2] = 0.; }

◆ MAL_S3_VECTOR_CROSS_PRODUCT

#define MAL_S3_VECTOR_CROSS_PRODUCT (   res,
  v1,
  v2 
)
Value:
{ res[0] = v1[1]*v2[2]-v1[2]*v2[1]; \
res[1] = v1[2]*v2[0]-v1[0]*v2[2]; \
res[2] = v1[0]*v2[1]-v1[1]*v2[0];}

◆ MAL_S3_VECTOR_FILL

#define MAL_S3_VECTOR_FILL (   name,
  value 
)
Value:
{ name[0] = value; \
name[1] = value; \
name[2] = value; }

◆ MAL_S3_VECTOR_NORM

#define MAL_S3_VECTOR_NORM (   name)
Value:
sqrt(name[0]*name[0]+ \
name[1]*name[1]+ \
name[2]*name[2])

◆ MAL_S3_VECTOR_SIZE

#define MAL_S3_VECTOR_SIZE (   name)    3

◆ MAL_S3_VECTOR_TYPE

#define MAL_S3_VECTOR_TYPE (   type)    V3D

◆ MAL_S3x3_C_eq_A_by_B

#define MAL_S3x3_C_eq_A_by_B (   C,
  A,
 
)    A.CeqthismulB(B,C)

◆ MAL_S3x3_INVERSE

#define MAL_S3x3_INVERSE (   name,
  inv_matrix,
  type 
)    name.Inversion(inv_matrix)

◆ MAL_S3x3_MATRIX

#define MAL_S3x3_MATRIX (   name,
  type 
)    jrlMathTools::Matrix3x3<type> name

◆ MAL_S3x3_MATRIX_ACCESS_I

#define MAL_S3x3_MATRIX_ACCESS_I (   name,
 
)    name[i]

◆ MAL_S3x3_MATRIX_ACCESS_I_J

#define MAL_S3x3_MATRIX_ACCESS_I_J (   name,
  i,
 
)    name(i,j)

◆ MAL_S3x3_MATRIX_CLEAR

#define MAL_S3x3_MATRIX_CLEAR (   name)    name.setZero()

◆ MAL_S3x3_MATRIX_SET_IDENTITY

#define MAL_S3x3_MATRIX_SET_IDENTITY (   name)    name.setIdentity()

◆ MAL_S3x3_MATRIX_TYPE

#define MAL_S3x3_MATRIX_TYPE (   type)    jrlMathTools::Matrix3x3<type>

◆ MAL_S3x3_RET_A_by_B

#define MAL_S3x3_RET_A_by_B (   A,
 
)    A*B

◆ MAL_S3x3_RET_TRANSPOSE

#define MAL_S3x3_RET_TRANSPOSE (   matrix)    matrix.Transpose()

◆ MAL_S3x3_TRANSPOSE_A_in_At

#define MAL_S3x3_TRANSPOSE_A_in_At (   A,
  At 
)    A.Transpose(At)

◆ MAL_S4_RET_VECTOR_DATABLOCK

#define MAL_S4_RET_VECTOR_DATABLOCK (   name)    &name

◆ MAL_S4_VECTOR

#define MAL_S4_VECTOR (   name,
  type 
)    V3D name

◆ MAL_S4_VECTOR_ACCESS

#define MAL_S4_VECTOR_ACCESS (   name,
 
)    name[i]

◆ MAL_S4_VECTOR_FILL

#define MAL_S4_VECTOR_FILL (   name,
  value 
)
Value:
{ name[0] = value; \
name[1] = value; \
name[2] = value; \
name[3] = value; }

◆ MAL_S4_VECTOR_NORM

#define MAL_S4_VECTOR_NORM (   name)
Value:
{ sqrt(name[0]*name[0]+ \
name[1]*name[1]+ \
name[2]*name[2]+ \
name[3]*name[3])}

◆ MAL_S4_VECTOR_SIZE

#define MAL_S4_VECTOR_SIZE (   name)    3

◆ MAL_S4_VECTOR_TYPE

#define MAL_S4_VECTOR_TYPE (   type)    V3D

◆ MAL_S4x4_C_eq_A_by_B

#define MAL_S4x4_C_eq_A_by_B (   C,
  A,
 
)    (C)=(A)*(B)

◆ MAL_S4x4_INVERSE

#define MAL_S4x4_INVERSE (   name,
  inv_matrix,
  type 
)    inv_matrix=~name;

◆ MAL_S4x4_MATRIX

#define MAL_S4x4_MATRIX (   name,
  type 
)    T3D name

◆ MAL_S4x4_MATRIX_ACCESS_I

#define MAL_S4x4_MATRIX_ACCESS_I (   name,
 
)    name.matrix[i]

◆ MAL_S4x4_MATRIX_ACCESS_I_J

#define MAL_S4x4_MATRIX_ACCESS_I_J (   name,
  i,
 
)    name.matrix(i,j)

◆ MAL_S4x4_MATRIX_CLEAR

#define MAL_S4x4_MATRIX_CLEAR (   name)    /*Clear don't have any sense*/

◆ MAL_S4x4_MATRIX_SET_IDENTITY

#define MAL_S4x4_MATRIX_SET_IDENTITY (   name)    name=t3dMatrixIdentity

◆ MAL_S4x4_MATRIX_TYPE

#define MAL_S4x4_MATRIX_TYPE (   type)    T3D

◆ MAL_S4x4_RET_A_by_B

#define MAL_S4x4_RET_A_by_B (   A,
 
)    (A)*(B)

◆ MAL_S4x4_RET_TRANSPOSE

#define MAL_S4x4_RET_TRANSPOSE (   matrix)    /*Transpose don't have any sense*/

◆ MAL_S4x4_TRANSPOSE_A_in_At

#define MAL_S4x4_TRANSPOSE_A_in_At (   A,
  At 
)    /*Transpose don't have any sense*/

Typedef Documentation

◆ matrix3d

◆ matrix4d

typedef T3D matrix4d

This is an implementation of MatrixAbstractLayerSmall using T3D, R3D and V3D

◆ vector3d

typedef V3D vector3d

◆ vector4d

typedef V3D vector4d