From: <ole...@us...> - 2012-12-25 22:45:38
|
Revision: 1917 http://opende.svn.sourceforge.net/opende/?rev=1917&view=rev Author: oleh_derevenko Date: 2012-12-25 22:45:30 +0000 (Tue, 25 Dec 2012) Log Message: ----------- Changed: Private definitions moved from public <ode/matrix.h> into internal header "matrix.h" Modified Paths: -------------- trunk/include/ode/matrix.h trunk/include/ode/odeconfig.h trunk/ode/src/Makefile.am trunk/ode/src/box.cpp trunk/ode/src/capsule.cpp trunk/ode/src/collision_cylinder_box.cpp trunk/ode/src/collision_cylinder_plane.cpp trunk/ode/src/collision_cylinder_sphere.cpp trunk/ode/src/collision_cylinder_trimesh.cpp trunk/ode/src/collision_kernel.cpp trunk/ode/src/collision_quadtreespace.cpp trunk/ode/src/collision_sapspace.cpp trunk/ode/src/collision_space.cpp trunk/ode/src/collision_transform.cpp trunk/ode/src/collision_trimesh_box.cpp trunk/ode/src/collision_trimesh_ccylinder.cpp trunk/ode/src/collision_trimesh_disabled.cpp trunk/ode/src/collision_trimesh_gimpact.cpp trunk/ode/src/collision_trimesh_opcode.cpp trunk/ode/src/collision_trimesh_plane.cpp trunk/ode/src/collision_trimesh_ray.cpp trunk/ode/src/collision_trimesh_sphere.cpp trunk/ode/src/collision_trimesh_trimesh.cpp trunk/ode/src/collision_trimesh_trimesh_new.cpp trunk/ode/src/convex.cpp trunk/ode/src/cylinder.cpp trunk/ode/src/heightfield.cpp trunk/ode/src/joints/joint.cpp trunk/ode/src/joints/joint_internal.h trunk/ode/src/lcp.cpp trunk/ode/src/mass.cpp trunk/ode/src/mat.cpp trunk/ode/src/matrix.cpp trunk/ode/src/misc.cpp trunk/ode/src/objects.cpp trunk/ode/src/ode.cpp trunk/ode/src/plane.cpp trunk/ode/src/quickstep.cpp trunk/ode/src/ray.cpp trunk/ode/src/sphere.cpp trunk/ode/src/step.cpp Added Paths: ----------- trunk/ode/src/matrix.h Modified: trunk/include/ode/matrix.h =================================================================== --- trunk/include/ode/matrix.h 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/include/ode/matrix.h 2012-12-25 22:45:30 UTC (rev 1917) @@ -186,113 +186,9 @@ */ ODE_API void dRemoveRowCol (dReal *A, int n, int nskip, int r); - -#if defined(__ODE__) - -ODE_PURE_INLINE -void _dSetZero (dReal *a, size_t n) -{ - dReal *acurr = a; - dReal *const aend = a + n; - while (acurr != aend) { - *(acurr++) = 0; - } -} - -ODE_PURE_INLINE -void _dSetValue (dReal *a, size_t n, dReal value) -{ - dReal *acurr = a; - dReal *const aend = a + n; - while (acurr != aend) { - *(acurr++) = value; - } -} - -dReal _dDot (const dReal *a, const dReal *b, int n); -void _dMultiply0 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -void _dMultiply1 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -void _dMultiply2 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -int _dFactorCholesky (dReal *A, int n, void *tmpbuf); -void _dSolveCholesky (const dReal *L, dReal *b, int n, void *tmpbuf); -int _dInvertPDMatrix (const dReal *A, dReal *Ainv, int n, void *tmpbuf); -int _dIsPositiveDefinite (const dReal *A, int n, void *tmpbuf); -void _dFactorLDLT (dReal *A, dReal *d, int n, int nskip); -void _dSolveL1 (const dReal *L, dReal *b, int n, int nskip); -void _dSolveL1T (const dReal *L, dReal *b, int n, int nskip); -void _dVectorScale (dReal *a, const dReal *d, int n); -void _dSolveLDLT (const dReal *L, const dReal *d, dReal *b, int n, int nskip); -void _dLDLTAddTL (dReal *L, dReal *d, const dReal *a, int n, int nskip, void *tmpbuf); -void _dLDLTRemove (dReal **A, const int *p, dReal *L, dReal *d, int n1, int n2, int r, int nskip, void *tmpbuf); -void _dRemoveRowCol (dReal *A, int n, int nskip, int r); - -ODE_PURE_INLINE size_t _dEstimateFactorCholeskyTmpbufSize(int n) -{ - return dPAD(n) * sizeof(dReal); -} - -ODE_PURE_INLINE size_t _dEstimateSolveCholeskyTmpbufSize(int n) -{ - return dPAD(n) * sizeof(dReal); -} - -ODE_PURE_INLINE size_t _dEstimateInvertPDMatrixTmpbufSize(int n) -{ - size_t FactorCholesky_size = _dEstimateFactorCholeskyTmpbufSize(n); - size_t SolveCholesky_size = _dEstimateSolveCholeskyTmpbufSize(n); - size_t MaxCholesky_size = FactorCholesky_size > SolveCholesky_size ? FactorCholesky_size : SolveCholesky_size; - return dPAD(n) * (n + 1) * sizeof(dReal) + MaxCholesky_size; -} - -ODE_PURE_INLINE size_t _dEstimateIsPositiveDefiniteTmpbufSize(int n) -{ - return dPAD(n) * n * sizeof(dReal) + _dEstimateFactorCholeskyTmpbufSize(n); -} - -ODE_PURE_INLINE size_t _dEstimateLDLTAddTLTmpbufSize(int nskip) -{ - return nskip * 2 * sizeof(dReal); -} - -ODE_PURE_INLINE size_t _dEstimateLDLTRemoveTmpbufSize(int n2, int nskip) -{ - return n2 * sizeof(dReal) + _dEstimateLDLTAddTLTmpbufSize(nskip); -} - -/* For internal use */ -#define dSetZero(a, n) _dSetZero(a, n) -#define dSetValue(a, n, value) _dSetValue(a, n, value) -#define dDot(a, b, n) _dDot(a, b, n) -#define dMultiply0(A, B, C, p, q, r) _dMultiply0(A, B, C, p, q, r) -#define dMultiply1(A, B, C, p, q, r) _dMultiply1(A, B, C, p, q, r) -#define dMultiply2(A, B, C, p, q, r) _dMultiply2(A, B, C, p, q, r) -#define dFactorCholesky(A, n, tmpbuf) _dFactorCholesky(A, n, tmpbuf) -#define dSolveCholesky(L, b, n, tmpbuf) _dSolveCholesky(L, b, n, tmpbuf) -#define dInvertPDMatrix(A, Ainv, n, tmpbuf) _dInvertPDMatrix(A, Ainv, n, tmpbuf) -#define dIsPositiveDefinite(A, n, tmpbuf) _dIsPositiveDefinite(A, n, tmpbuf) -#define dFactorLDLT(A, d, n, nskip) _dFactorLDLT(A, d, n, nskip) -#define dSolveL1(L, b, n, nskip) _dSolveL1(L, b, n, nskip) -#define dSolveL1T(L, b, n, nskip) _dSolveL1T(L, b, n, nskip) -#define dVectorScale(a, d, n) _dVectorScale(a, d, n) -#define dSolveLDLT(L, d, b, n, nskip) _dSolveLDLT(L, d, b, n, nskip) -#define dLDLTAddTL(L, d, a, n, nskip, tmpbuf) _dLDLTAddTL(L, d, a, n, nskip, tmpbuf) -#define dLDLTRemove(A, p, L, d, n1, n2, r, nskip, tmpbuf) _dLDLTRemove(A, p, L, d, n1, n2, r, nskip, tmpbuf) -#define dRemoveRowCol(A, n, nskip, r) _dRemoveRowCol(A, n, nskip, r) - - -#define dEstimateFactorCholeskyTmpbufSize(n) _dEstimateFactorCholeskyTmpbufSize(n) -#define dEstimateSolveCholeskyTmpbufSize(n) _dEstimateSolveCholeskyTmpbufSize(n) -#define dEstimateInvertPDMatrixTmpbufSize(n) _dEstimateInvertPDMatrixTmpbufSize(n) -#define dEstimateIsPositiveDefiniteTmpbufSize(n) _dEstimateIsPositiveDefiniteTmpbufSize(n) -#define dEstimateLDLTAddTLTmpbufSize(nskip) _dEstimateLDLTAddTLTmpbufSize(nskip) -#define dEstimateLDLTRemoveTmpbufSize(n2, nskip) _dEstimateLDLTRemoveTmpbufSize(n2, nskip) - - -#endif /* defined(__ODE__) */ - - #ifdef __cplusplus } #endif + #endif Modified: trunk/include/ode/odeconfig.h =================================================================== --- trunk/include/ode/odeconfig.h 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/include/ode/odeconfig.h 2012-12-25 22:45:30 UTC (rev 1917) @@ -60,6 +60,7 @@ #endif #define ODE_PURE_INLINE static __inline +#define ODE_INLINE __inline #if defined(__cplusplus) #define ODE_EXTERN_C extern "C" Modified: trunk/ode/src/Makefile.am =================================================================== --- trunk/ode/src/Makefile.am 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/Makefile.am 2012-12-25 22:45:30 UTC (rev 1917) @@ -43,7 +43,7 @@ lcp.cpp lcp.h \ mass.cpp \ mat.cpp mat.h \ - matrix.cpp \ + matrix.cpp matrix.h \ memory.cpp \ misc.cpp \ objects.cpp objects.h \ Modified: trunk/ode/src/box.cpp =================================================================== --- trunk/ode/src/box.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/box.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,9 +31,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/capsule.cpp =================================================================== --- trunk/ode/src/capsule.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/capsule.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,9 +31,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/collision_cylinder_box.cpp =================================================================== --- trunk/ode/src/collision_cylinder_box.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_cylinder_box.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -26,9 +26,9 @@ */ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_util.h" Modified: trunk/ode/src/collision_cylinder_plane.cpp =================================================================== --- trunk/ode/src/collision_cylinder_plane.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_cylinder_plane.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -30,10 +30,10 @@ */ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include <ode/objects.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" // for dxGeom #include "collision_util.h" Modified: trunk/ode/src/collision_cylinder_sphere.cpp =================================================================== --- trunk/ode/src/collision_cylinder_sphere.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_cylinder_sphere.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -41,10 +41,10 @@ *******************************************************************/ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include <ode/objects.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" // for dxGeom #include "collision_util.h" Modified: trunk/ode/src/collision_cylinder_trimesh.cpp =================================================================== --- trunk/ode/src/collision_cylinder_trimesh.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_cylinder_trimesh.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -27,9 +27,9 @@ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_util.h" #include "collision_trimesh_internal.h" Modified: trunk/ode/src/collision_kernel.cpp =================================================================== --- trunk/ode/src/collision_kernel.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_kernel.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -28,10 +28,10 @@ */ #include <ode/common.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include <ode/objects.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_util.h" Modified: trunk/ode/src/collision_quadtreespace.cpp =================================================================== --- trunk/ode/src/collision_quadtreespace.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_quadtreespace.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -24,10 +24,10 @@ // With math corrections by Oleh Derevenko. ;) #include <ode/common.h> -#include <ode/matrix.h> #include <ode/collision_space.h> #include <ode/collision.h> #include "config.h" +#include "matrix.h" #include "collision_kernel.h" #include "collision_space_internal.h" Modified: trunk/ode/src/collision_sapspace.cpp =================================================================== --- trunk/ode/src/collision_sapspace.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_sapspace.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -34,11 +34,11 @@ */ #include <ode/common.h> -#include <ode/matrix.h> #include <ode/collision_space.h> #include <ode/collision.h> #include "config.h" +#include "matrix.h" #include "collision_kernel.h" #include "collision_space_internal.h" Modified: trunk/ode/src/collision_space.cpp =================================================================== --- trunk/ode/src/collision_space.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_space.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -27,10 +27,10 @@ */ #include <ode/common.h> -#include <ode/matrix.h> #include <ode/collision_space.h> #include <ode/collision.h> #include "config.h" +#include "matrix.h" #include "collision_kernel.h" #include "collision_space_internal.h" #include "util.h" Modified: trunk/ode/src/collision_transform.cpp =================================================================== --- trunk/ode/src/collision_transform.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_transform.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -27,9 +27,9 @@ */ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_transform.h" #include "collision_util.h" Modified: trunk/ode/src/collision_trimesh_box.cpp =================================================================== --- trunk/ode/src/collision_trimesh_box.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_box.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -30,9 +30,9 @@ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_util.h" #include "collision_trimesh_internal.h" Modified: trunk/ode/src/collision_trimesh_ccylinder.cpp =================================================================== --- trunk/ode/src/collision_trimesh_ccylinder.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_ccylinder.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -51,9 +51,9 @@ //problem we are looking forward to address soon. #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_util.h" #include "collision_trimesh_internal.h" Modified: trunk/ode/src/collision_trimesh_disabled.cpp =================================================================== --- trunk/ode/src/collision_trimesh_disabled.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_disabled.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -21,8 +21,8 @@ *************************************************************************/ #include <ode/collision.h> -#include <ode/matrix.h> #include "config.h" +#include "matrix.h" #if !dTRIMESH_ENABLED Modified: trunk/ode/src/collision_trimesh_gimpact.cpp =================================================================== --- trunk/ode/src/collision_trimesh_gimpact.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_gimpact.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -21,9 +21,9 @@ *************************************************************************/ #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #if dTRIMESH_ENABLED Modified: trunk/ode/src/collision_trimesh_opcode.cpp =================================================================== --- trunk/ode/src/collision_trimesh_opcode.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_opcode.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -23,9 +23,9 @@ // TriMesh code by Erwin de Vries. #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_util.h" #include "collision_trimesh_internal.h" Modified: trunk/ode/src/collision_trimesh_plane.cpp =================================================================== --- trunk/ode/src/collision_trimesh_plane.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_plane.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -23,9 +23,9 @@ // TriMesh - Plane collider by David Walters, July 2006 #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #if dTRIMESH_ENABLED Modified: trunk/ode/src/collision_trimesh_ray.cpp =================================================================== --- trunk/ode/src/collision_trimesh_ray.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_ray.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -23,9 +23,9 @@ // TriMesh code by Erwin de Vries. #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #if dTRIMESH_ENABLED Modified: trunk/ode/src/collision_trimesh_sphere.cpp =================================================================== --- trunk/ode/src/collision_trimesh_sphere.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_sphere.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -23,9 +23,9 @@ // TriMesh code by Erwin de Vries. #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_util.h" Modified: trunk/ode/src/collision_trimesh_trimesh.cpp =================================================================== --- trunk/ode/src/collision_trimesh_trimesh.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_trimesh.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -27,9 +27,9 @@ #endif #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" Modified: trunk/ode/src/collision_trimesh_trimesh_new.cpp =================================================================== --- trunk/ode/src/collision_trimesh_trimesh_new.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/collision_trimesh_trimesh_new.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -28,9 +28,9 @@ #endif #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" Modified: trunk/ode/src/convex.cpp =================================================================== --- trunk/ode/src/convex.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/convex.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -25,9 +25,9 @@ */ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/cylinder.cpp =================================================================== --- trunk/ode/src/cylinder.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/cylinder.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,9 +31,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/heightfield.cpp =================================================================== --- trunk/ode/src/heightfield.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/heightfield.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -30,9 +30,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/joints/joint.cpp =================================================================== --- trunk/ode/src/joints/joint.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/joints/joint.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,8 +31,8 @@ #include <ode/ode.h> #include <ode/rotation.h> -#include <ode/matrix.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "joint.h" #include "joint_internal.h" Modified: trunk/ode/src/joints/joint_internal.h =================================================================== --- trunk/ode/src/joints/joint_internal.h 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/joints/joint_internal.h 2012-12-25 22:45:30 UTC (rev 1917) @@ -25,9 +25,9 @@ #define _ODE_JOINT_INTERNAL_H_ -#include <ode/matrix.h> #include <ode/rotation.h> #include <ode/objects.h> +#include "matrix.h" #include "odemath.h" Modified: trunk/ode/src/lcp.cpp =================================================================== --- trunk/ode/src/lcp.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/lcp.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -109,10 +109,10 @@ */ #include <ode/common.h> -#include <ode/matrix.h> #include <ode/misc.h> #include <ode/timer.h> // for testing #include "config.h" +#include "matrix.h" #include "lcp.h" #include "mat.h" // for testing #include "util.h" Modified: trunk/ode/src/mass.cpp =================================================================== --- trunk/ode/src/mass.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/mass.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -22,8 +22,8 @@ #include <ode/odeconfig.h> #include <ode/mass.h> -#include <ode/matrix.h> #include "config.h" +#include "matrix.h" #include "odemath.h" // Local dependencies Modified: trunk/ode/src/mat.cpp =================================================================== --- trunk/ode/src/mat.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/mat.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -22,10 +22,10 @@ #include <ode/odeconfig.h> #include <ode/misc.h> -#include <ode/matrix.h> #include <ode/error.h> #include <ode/memory.h> #include "config.h" +#include "matrix.h" #include "mat.h" Modified: trunk/ode/src/matrix.cpp =================================================================== --- trunk/ode/src/matrix.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/matrix.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -21,8 +21,8 @@ *************************************************************************/ #include <ode/common.h> -#include <ode/matrix.h> #include "config.h" +#include "matrix.h" #include "util.h" // misc defines Added: trunk/ode/src/matrix.h =================================================================== --- trunk/ode/src/matrix.h (rev 0) +++ trunk/ode/src/matrix.h 2012-12-25 22:45:30 UTC (rev 1917) @@ -0,0 +1,174 @@ +/************************************************************************* + * * + * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * + * All rights reserved. Email: ru...@q1... Web: www.q12.org * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of EITHER: * + * (1) The GNU Lesser General Public License as published by the Free * + * Software Foundation; either version 2.1 of the License, or (at * + * your option) any later version. The text of the GNU Lesser * + * General Public License is included with this library in the * + * file LICENSE.TXT. * + * (2) The BSD-style license that is included with this library in * + * the file LICENSE-BSD.TXT. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * + * LICENSE.TXT and LICENSE-BSD.TXT for more details. * + * * + *************************************************************************/ + +/* + * optimized and unoptimized vector and matrix functions + * (inlined private versions) + */ + +#ifndef _ODE__PRIVATE_MATRIX_H_ +#define _ODE__PRIVATE_MATRIX_H_ + + +#include <ode/matrix.h> + + +#ifdef __cplusplus + +template <typename element_type> +ODE_INLINE +void _dSetZero (element_type *a, size_t n) +{ + element_type *acurr = a; + element_type *const aend = a + n; + while (acurr != aend) { + *(acurr++) = 0; + } +} + +template <typename element_type> +ODE_INLINE +void _dSetValue (element_type *a, size_t n, element_type value) +{ + element_type *acurr = a; + element_type *const aend = a + n; + while (acurr != aend) { + *(acurr++) = value; + } +} + + +#else // #ifndef __cplusplus + +ODE_PURE_INLINE +void _dSetZero (dReal *a, size_t n) +{ + dReal *acurr = a; + dReal *const aend = a + n; + while (acurr != aend) { + *(acurr++) = 0; + } +} + +ODE_PURE_INLINE +void _dSetValue (dReal *a, size_t n, dReal value) +{ + dReal *acurr = a; + dReal *const aend = a + n; + while (acurr != aend) { + *(acurr++) = value; + } +} + + +#endif // #ifdef __cplusplus + + +#ifdef __cplusplus +extern "C" { +#endif + +dReal _dDot (const dReal *a, const dReal *b, int n); +void _dMultiply0 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); +void _dMultiply1 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); +void _dMultiply2 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); +int _dFactorCholesky (dReal *A, int n, void *tmpbuf); +void _dSolveCholesky (const dReal *L, dReal *b, int n, void *tmpbuf); +int _dInvertPDMatrix (const dReal *A, dReal *Ainv, int n, void *tmpbuf); +int _dIsPositiveDefinite (const dReal *A, int n, void *tmpbuf); +void _dFactorLDLT (dReal *A, dReal *d, int n, int nskip); +void _dSolveL1 (const dReal *L, dReal *b, int n, int nskip); +void _dSolveL1T (const dReal *L, dReal *b, int n, int nskip); +void _dVectorScale (dReal *a, const dReal *d, int n); +void _dSolveLDLT (const dReal *L, const dReal *d, dReal *b, int n, int nskip); +void _dLDLTAddTL (dReal *L, dReal *d, const dReal *a, int n, int nskip, void *tmpbuf); +void _dLDLTRemove (dReal **A, const int *p, dReal *L, dReal *d, int n1, int n2, int r, int nskip, void *tmpbuf); +void _dRemoveRowCol (dReal *A, int n, int nskip, int r); + +ODE_PURE_INLINE size_t _dEstimateFactorCholeskyTmpbufSize(int n) +{ + return dPAD(n) * sizeof(dReal); +} + +ODE_PURE_INLINE size_t _dEstimateSolveCholeskyTmpbufSize(int n) +{ + return dPAD(n) * sizeof(dReal); +} + +ODE_PURE_INLINE size_t _dEstimateInvertPDMatrixTmpbufSize(int n) +{ + size_t FactorCholesky_size = _dEstimateFactorCholeskyTmpbufSize(n); + size_t SolveCholesky_size = _dEstimateSolveCholeskyTmpbufSize(n); + size_t MaxCholesky_size = FactorCholesky_size > SolveCholesky_size ? FactorCholesky_size : SolveCholesky_size; + return dPAD(n) * (n + 1) * sizeof(dReal) + MaxCholesky_size; +} + +ODE_PURE_INLINE size_t _dEstimateIsPositiveDefiniteTmpbufSize(int n) +{ + return dPAD(n) * n * sizeof(dReal) + _dEstimateFactorCholeskyTmpbufSize(n); +} + +ODE_PURE_INLINE size_t _dEstimateLDLTAddTLTmpbufSize(int nskip) +{ + return nskip * 2 * sizeof(dReal); +} + +ODE_PURE_INLINE size_t _dEstimateLDLTRemoveTmpbufSize(int n2, int nskip) +{ + return n2 * sizeof(dReal) + _dEstimateLDLTAddTLTmpbufSize(nskip); +} + +/* For internal use */ +#define dSetZero(a, n) _dSetZero(a, n) +#define dSetValue(a, n, value) _dSetValue(a, n, value) +#define dDot(a, b, n) _dDot(a, b, n) +#define dMultiply0(A, B, C, p, q, r) _dMultiply0(A, B, C, p, q, r) +#define dMultiply1(A, B, C, p, q, r) _dMultiply1(A, B, C, p, q, r) +#define dMultiply2(A, B, C, p, q, r) _dMultiply2(A, B, C, p, q, r) +#define dFactorCholesky(A, n, tmpbuf) _dFactorCholesky(A, n, tmpbuf) +#define dSolveCholesky(L, b, n, tmpbuf) _dSolveCholesky(L, b, n, tmpbuf) +#define dInvertPDMatrix(A, Ainv, n, tmpbuf) _dInvertPDMatrix(A, Ainv, n, tmpbuf) +#define dIsPositiveDefinite(A, n, tmpbuf) _dIsPositiveDefinite(A, n, tmpbuf) +#define dFactorLDLT(A, d, n, nskip) _dFactorLDLT(A, d, n, nskip) +#define dSolveL1(L, b, n, nskip) _dSolveL1(L, b, n, nskip) +#define dSolveL1T(L, b, n, nskip) _dSolveL1T(L, b, n, nskip) +#define dVectorScale(a, d, n) _dVectorScale(a, d, n) +#define dSolveLDLT(L, d, b, n, nskip) _dSolveLDLT(L, d, b, n, nskip) +#define dLDLTAddTL(L, d, a, n, nskip, tmpbuf) _dLDLTAddTL(L, d, a, n, nskip, tmpbuf) +#define dLDLTRemove(A, p, L, d, n1, n2, r, nskip, tmpbuf) _dLDLTRemove(A, p, L, d, n1, n2, r, nskip, tmpbuf) +#define dRemoveRowCol(A, n, nskip, r) _dRemoveRowCol(A, n, nskip, r) + + +#define dEstimateFactorCholeskyTmpbufSize(n) _dEstimateFactorCholeskyTmpbufSize(n) +#define dEstimateSolveCholeskyTmpbufSize(n) _dEstimateSolveCholeskyTmpbufSize(n) +#define dEstimateInvertPDMatrixTmpbufSize(n) _dEstimateInvertPDMatrixTmpbufSize(n) +#define dEstimateIsPositiveDefiniteTmpbufSize(n) _dEstimateIsPositiveDefiniteTmpbufSize(n) +#define dEstimateLDLTAddTLTmpbufSize(nskip) _dEstimateLDLTAddTLTmpbufSize(nskip) +#define dEstimateLDLTRemoveTmpbufSize(n2, nskip) _dEstimateLDLTRemoveTmpbufSize(n2, nskip) + + +#ifdef __cplusplus +} +#endif + + +#endif // #ifndef _ODE__PRIVATE_MATRIX_H_ Modified: trunk/ode/src/misc.cpp =================================================================== --- trunk/ode/src/misc.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/misc.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -22,8 +22,8 @@ #include <ode/odeconfig.h> #include <ode/misc.h> -#include <ode/matrix.h> #include "config.h" +#include "matrix.h" //**************************************************************************** // random numbers Modified: trunk/ode/src/objects.cpp =================================================================== --- trunk/ode/src/objects.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/objects.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -26,9 +26,8 @@ #include <ode/common.h> #include <ode/threading_impl.h> #include <ode/objects.h> -#include <ode/matrix.h> #include "config.h" - +#include "matrix.h" #include "objects.h" #include "util.h" #include "threading_impl.h" Modified: trunk/ode/src/ode.cpp =================================================================== --- trunk/ode/src/ode.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/ode.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -28,10 +28,10 @@ // numerics. #include <ode/ode.h> -#include <ode/matrix.h> #include <ode/memory.h> #include <ode/error.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "objects.h" #include "joints/joints.h" Modified: trunk/ode/src/plane.cpp =================================================================== --- trunk/ode/src/plane.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/plane.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,9 +31,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/quickstep.cpp =================================================================== --- trunk/ode/src/quickstep.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/quickstep.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -24,9 +24,9 @@ #include <ode/rotation.h> #include <ode/timer.h> #include <ode/error.h> -#include <ode/matrix.h> #include <ode/misc.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "objects.h" #include "joints/joint.h" Modified: trunk/ode/src/ray.cpp =================================================================== --- trunk/ode/src/ray.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/ray.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,9 +31,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/sphere.cpp =================================================================== --- trunk/ode/src/sphere.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/sphere.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -31,9 +31,9 @@ #include <ode/common.h> #include <ode/collision.h> -#include <ode/matrix.h> #include <ode/rotation.h> #include "config.h" +#include "matrix.h" #include "odemath.h" #include "collision_kernel.h" #include "collision_std.h" Modified: trunk/ode/src/step.cpp =================================================================== --- trunk/ode/src/step.cpp 2012-12-18 22:34:05 UTC (rev 1916) +++ trunk/ode/src/step.cpp 2012-12-25 22:45:30 UTC (rev 1917) @@ -24,9 +24,9 @@ #include <ode/rotation.h> #include <ode/timer.h> #include <ode/error.h> -#include <ode/matrix.h> #include "config.h" #include "odemath.h" +#include "matrix.h" #include "objects.h" #include "joints/joint.h" #include "lcp.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |