matrixabstractlayert3d.hh File Reference
#include "t3d/t3d.h"
#include "t3d/v3d.h"
#include <cmath>
#include "jrl/mathtools/matrix3x3.hh"

Defines

#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

Define Documentation

#define MAL_S3_RET_VECTOR_DATABLOCK (   name)    &name
#define MAL_S3_VECTOR (   name,
  type 
)    V3D name
#define MAL_S3_VECTOR_ (   type)    V3D
#define MAL_S3_VECTOR_ACCESS (   name,
 
)    name[i]
#define MAL_S3_VECTOR_CLEAR (   name)
Value:
{ name[0] = 0.;       \
    name[1] = 0.;       \
    name[2] = 0.; }
#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];}
#define MAL_S3_VECTOR_FILL (   name,
  value 
)
Value:
{ name[0] = value;        \
    name[1] = value;        \
    name[2] = value; }
#define MAL_S3_VECTOR_NORM (   name)
Value:
sqrt(name[0]*name[0]+     \
    name[1]*name[1]+        \
    name[2]*name[2])
#define MAL_S3_VECTOR_SIZE (   name)    3
#define MAL_S3_VECTOR_TYPE (   type)    V3D
#define MAL_S3x3_C_eq_A_by_B (   C,
  A,
 
)    A.CeqthismulB(B,C)
#define MAL_S3x3_INVERSE (   name,
  inv_matrix,
  type 
)    name.Inversion(inv_matrix)
#define MAL_S3x3_MATRIX (   name,
  type 
)    jrlMathTools::Matrix3x3<type> name
#define MAL_S3x3_MATRIX_ACCESS_I (   name,
 
)    name[i]
#define MAL_S3x3_MATRIX_ACCESS_I_J (   name,
  i,
 
)    name(i,j)
#define MAL_S3x3_MATRIX_CLEAR (   name)    name.setZero()
#define MAL_S3x3_MATRIX_SET_IDENTITY (   name)    name.setIdentity()
#define MAL_S3x3_MATRIX_TYPE (   type)    jrlMathTools::Matrix3x3<type>
#define MAL_S3x3_RET_A_by_B (   A,
 
)    A*B
#define MAL_S3x3_RET_TRANSPOSE (   matrix)    matrix.Transpose()
#define MAL_S3x3_TRANSPOSE_A_in_At (   A,
  At 
)    A.Transpose(At)
#define MAL_S4_RET_VECTOR_DATABLOCK (   name)    &name
#define MAL_S4_VECTOR (   name,
  type 
)    V3D name
#define MAL_S4_VECTOR_ACCESS (   name,
 
)    name[i]
#define MAL_S4_VECTOR_FILL (   name,
  value 
)
Value:
{ name[0] = value;        \
    name[1] = value;        \
    name[2] = value;        \
    name[3] = value; }
#define MAL_S4_VECTOR_NORM (   name)
Value:
{ sqrt(name[0]*name[0]+     \
    name[1]*name[1]+        \
    name[2]*name[2]+        \
    name[3]*name[3])}
#define MAL_S4_VECTOR_SIZE (   name)    3
#define MAL_S4_VECTOR_TYPE (   type)    V3D
#define MAL_S4x4_C_eq_A_by_B (   C,
  A,
 
)    (C)=(A)*(B)
#define MAL_S4x4_INVERSE (   name,
  inv_matrix,
  type 
)    inv_matrix=~name;
#define MAL_S4x4_MATRIX (   name,
  type 
)    T3D name
#define MAL_S4x4_MATRIX_ACCESS_I (   name,
 
)    name.matrix[i]
#define MAL_S4x4_MATRIX_ACCESS_I_J (   name,
  i,
 
)    name.matrix(i,j)
#define MAL_S4x4_MATRIX_CLEAR (   name)    /*Clear don't have any sense*/
#define MAL_S4x4_MATRIX_SET_IDENTITY (   name)    name=t3dMatrixIdentity
#define MAL_S4x4_MATRIX_TYPE (   type)    T3D
#define MAL_S4x4_RET_A_by_B (   A,
 
)    (A)*(B)
#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*/

Typedef Documentation

typedef jrlMathTools::Matrix3x3<double> matrix3d
typedef T3D matrix4d

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

typedef V3D vector3d
typedef V3D vector4d
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines