LinearAlgebra (3) - Linux Manuals
LinearAlgebra: linear algebra routines
NAME
vpIdentity3, vpIdentity4, vpNormalize3, vpMatrixVectorMult4, vpMatrixMult4, vpCrossProduct, vpSolveSystem4, vpSetVector3, vpSetVector4 - linear algebra routinesSYNOPSIS
#include <volpack.h>
void
- 
vpIdentity3(m_dst)
 - 
- vpMatrix3 m_dst;
  - vpMatrix3 m_dst;
 
void
- 
vpIdentity4(m_dst)
 - 
- vpMatrix4 m_dst;
  - vpMatrix4 m_dst;
 
vpResult
- 
vpNormalize3(v_src1)
 - 
- vpVector3 v_src1;
  - vpVector3 v_src1;
 
void
- 
vpMatrixVectorMult4(v_dst, m_src1, v_src1)
 - 
- vpVector4 v_dst;
  - vpMatrix4 m_src1;
 - 
vpVector4 v_src1;
 
void
- 
vpMatrixMult4(m_dst, m_src1, m_src2)
 - 
- vpVector4 m_dst, m_src1, m_src2;
  - vpVector4 m_dst, m_src1, m_src2;
 
void
- 
vpCrossProduct(v_dst, v_src1, v_src2)
 - 
- vpVector3 v_dst, v_src1, v_src2;
  - vpVector3 v_dst, v_src1, v_src2;
 
vpResult
- 
vpSolveSystem4(m_src1, b, count)
 - 
- vpMatrix4 m_src1;
  - vpVector4 b[];
 - 
int count;
 
void
- 
vpSetVector3(v_dst, x, y, z)
 - 
- vpVector3 v_dst;
  - 
double x, y, z;
 
void
- 
vpSetVector4(v_dst, x, y, z, w)
 - 
- vpVector4 v_dst;
  - double x, y, z, w;
 
ARGUMENTS
- m_src1, m_src2, m_dst
 - Source and destination matrices.
 - v_src1, v_src2, v_dst
 - Source and destination vectors.
 - b
 - Array of right-hand-side vectors.
 - count
 - Number of right-hand-side vectors.
 - x, y, z, w
 - Vector components.
 
DESCRIPTION
These routines form a simple linear algebra package used internally by VolPack. The routines are also available as utility routines for use by the application.vpIdentity3 assigns the identity matrix to a 3-by-3 matrix.
vpIdentity4 assigns the identity matrix to a 4-by-4 matrix.
vpNormalize3 normalizes a 3-element vector (so the magnitude is 1.0). The result overwrites the source vector.
vpMatrixVectorMult4 multiplies a 4-by-4 matrix by a 4-element column vector and stores the result in the destination vector (v_dst = m . v_src).
vpMatrixMult4 multiplies two 4-by-4 matrices and stores the result in the destination matrix (m_dst = m_src1 . m_src2).
vpCrossProduct computes the cross product of two 3-element vectors and stores the result in the destination vector (v_dst = v_src1 x v_src2).
vpSolveSystem4 solves the linear system m . x = b for each right-hand-side vector in the b array. The solution vectors overwrite the vectors in the b array. The solution is computed using Gauss-Jordan elimination with partial pivoting and implicit scaling.
vpSetVector3 initializes the components of a 3-element vector (v_dst = [x, y, z]). It is a macro.
vpSetVector4 initializes the components of a 4-element vector (v_dst = [x, y, z, w]). It is a macro.
ERRORS
vpNormalize3 and vpSolveSystem4 normally return VP_OK. The following error return value is possible:- VPERROR_SINGULAR
 - The vector is a 0 vector (vpNormalize3 only), or the matrix is singular (vpSolveSystem4 only).