Isle
Loading...
Searching...
No Matches
vec.h File Reference
#include <math.h>
Include dependency graph for vec.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VEC_H   4
 
#define EXPAND2(v)   (v)[0], (v)[1]
 
#define EXPAND3(v)   (v)[0], (v)[1], (v)[2]
 
#define EXPAND4(v)   (v)[0], (v)[1], (v)[2], (v)[3]
 
#define SET2(to, from)
 
#define SETMAT2(to, from)
 
#define ROUNDVEC2(to, from)
 
#define ROUNDMAT2(to, from)
 
#define FILLVEC2(v, s)
 
#define FILLMAT2(m, s)
 
#define ZEROVEC2(v)
 
#define ISZEROVEC2(v)
 
#define EQVEC2(v, w)
 
#define EQMAT2(m1, m2)
 
#define ZEROMAT2(m)
 
#define IDENTMAT2(m)
 
#define TRANSPOSE2(to, from)
 
#define VPSXV2(to, v, s, w)
 
#define VPVXS2(to, v, w, s)
 
#define VPV2(to, v, w)
 
#define VMV2(to, v, w)
 
#define MPM2(to, m1, m2)
 
#define MMM2(to, m1, m2)
 
#define SXV2(to, s, from)
 
#define SXM2(to, s, from)
 
#define MV2(to, from)
 
#define MM2(to, from)
 
#define VXS2(to, from, s)
 
#define VDS2(to, from, s)
 
#define MXS2(to, from, s)
 
#define MDS2(to, from, s)
 
#define MXM2(to, m1, m2)
 
#define VXM2(to, v, m)
 
#define MXV2(to, m, v)
 
#define VMODS2(to, v, s)
 
#define VMODV2(to, v0, v1)
 
#define VDIVS2(to, v, s)
 
#define VDIVV2(to, v0, v1)
 
#define VMINS2(to, v, s)
 
#define VMINV2(to, v0, v1)
 
#define VMAXS2(to, v, s)
 
#define VMAXV2(to, v0, v1)
 
#define LERP2(to, v0, v1, t)
 
#define TRACE2(m)
 
#define DOT2(v, w)
 
#define NORMSQRD2(v)
 
#define DISTSQRD2(v, w)
 
#define _DOTcol2(v, m, j)
 
#define _SETcol2(v, m, j)
 
#define _MXVcol2(to, m, M, j)
 
#define _DET2(v0, v1, i0, i1)
 
#define XV2(to, v1)
 
#define V2XM3(to2, v2, m3)
 
#define M3XV2(to2, m3, v2)
 
#define _DET1(v0, i0)    ((v0)[i0])
 
#define VXV2(v0, v1)    (_DET2(v0,v1,0,1))
 
#define DET2(m)    (VXV2((m)[0],(m)[1]))
 
#define SMODS1(a, b)    ((((a)%(b)+(b))%(b)))
 
#define SDIVS1(a, b)    ((((a)-SMODS1(a,b))/(b)))
 
#define SMINS1(a, b)    (((a) < (b) ? (a) : (b)))
 
#define SMAXS1(a, b)    (((a) > (b) ? (a) : (b)))
 
#define ADJOINT2(to, m)
 
#define _ADJOINTcol2(to, col, m, i1)
 
#define __ADJOINTcol2(to, col, m, i1)
 
#define SET3(to, from)
 
#define SETMAT3(to, from)
 
#define ROUNDVEC3(to, from)
 
#define ROUNDMAT3(to, from)
 
#define FILLVEC3(v, s)
 
#define FILLMAT3(m, s)
 
#define ZEROVEC3(v)
 
#define ISZEROVEC3(v)
 
#define EQVEC3(v, w)
 
#define EQMAT3(m1, m2)
 
#define ZEROMAT3(m)
 
#define IDENTMAT3(m)
 
#define TRANSPOSE3(to, from)
 
#define VPSXV3(to, v, s, w)
 
#define VPVXS3(to, v, w, s)
 
#define VPV3(to, v, w)
 
#define VMV3(to, v, w)
 
#define MPM3(to, m1, m2)
 
#define MMM3(to, m1, m2)
 
#define SXV3(to, s, from)
 
#define SXM3(to, s, from)
 
#define MV3(to, from)
 
#define MM3(to, from)
 
#define VXS3(to, from, s)
 
#define VDS3(to, from, s)
 
#define MXS3(to, from, s)
 
#define MDS3(to, from, s)
 
#define MXM3(to, m1, m2)
 
#define VXM3(to, v, m)
 
#define MXV3(to, m, v)
 
#define VMODS3(to, v, s)
 
#define VMODV3(to, v0, v1)
 
#define VDIVS3(to, v, s)
 
#define VDIVV3(to, v0, v1)
 
#define VMINS3(to, v, s)
 
#define VMINV3(to, v0, v1)
 
#define VMAXS3(to, v, s)
 
#define VMAXV3(to, v0, v1)
 
#define LERP3(to, v0, v1, t)
 
#define TRACE3(m)
 
#define DOT3(v, w)
 
#define NORMSQRD3(v)
 
#define DISTSQRD3(v, w)
 
#define _DOTcol3(v, m, j)
 
#define _SETcol3(v, m, j)
 
#define _MXVcol3(to, m, M, j)
 
#define _DET3(v0, v1, v2, i0, i1, i2)
 
#define VXV3(to, v1, v2)
 
#define SET3from2(to, from, pad)
 
#define SETMAT3from2(to, from, pad0, pad1)
 
#define M2XM3(to3, m2, m3)
 
#define M3XM2(to3, m3, m2)
 
#define V3XM4(to3, v3, m4)
 
#define M4XV3(to3, m4, v3)
 
#define VXVXV3(v0, v1, v2)    (_DET3(v0,v1,v2,0,1,2))
 
#define DET3(m)    (VXVXV3((m)[0],(m)[1],(m)[2]))
 
#define ADJOINT3(to, m)
 
#define _ADJOINTcol3(to, col, m, i1, i2)
 
#define __ADJOINTcol3(to, col, m, i1, i2)
 
#define SET4(to, from)
 
#define SETMAT4(to, from)
 
#define ROUNDVEC4(to, from)
 
#define ROUNDMAT4(to, from)
 
#define FILLVEC4(v, s)
 
#define FILLMAT4(m, s)
 
#define ZEROVEC4(v)
 
#define ISZEROVEC4(v)
 
#define EQVEC4(v, w)
 
#define EQMAT4(m1, m2)
 
#define ZEROMAT4(m)
 
#define IDENTMAT4(m)
 
#define TRANSPOSE4(to, from)
 
#define VPSXV4(to, v, s, w)
 
#define VPVXS4(to, v, w, s)
 
#define VPV4(to, v, w)
 
#define VMV4(to, v, w)
 
#define MPM4(to, m1, m2)
 
#define MMM4(to, m1, m2)
 
#define SXV4(to, s, from)
 
#define SXM4(to, s, from)
 
#define MV4(to, from)
 
#define MM4(to, from)
 
#define VXS4(to, from, s)
 
#define VDS4(to, from, s)
 
#define MXS4(to, from, s)
 
#define MDS4(to, from, s)
 
#define MXM4(to, m1, m2)
 
#define VXM4(to, v, m)
 
#define MXV4(to, m, v)
 
#define VMODS4(to, v, s)
 
#define VMODV4(to, v0, v1)
 
#define VDIVS4(to, v, s)
 
#define VDIVV4(to, v0, v1)
 
#define VMINS4(to, v, s)
 
#define VMINV4(to, v0, v1)
 
#define VMAXS4(to, v, s)
 
#define VMAXV4(to, v0, v1)
 
#define LERP4(to, v0, v1, t)
 
#define TRACE4(m)
 
#define DOT4(v, w)
 
#define NORMSQRD4(v)
 
#define DISTSQRD4(v, w)
 
#define _DOTcol4(v, m, j)
 
#define _SETcol4(v, m, j)
 
#define _MXVcol4(to, m, M, j)
 
#define _DET4(v0, v1, v2, v3, i0, i1, i2, i3)
 
#define VXVXV4(to, v1, v2, v3)
 
#define SET4from3(to, from, pad)
 
#define SETMAT4from3(to, from, pad0, pad1)
 
#define M3XM4(to4, m3, m4)
 
#define M4XM3(to4, m4, m3)
 
#define VXVXVXV4(v0, v1, v2, v3)    (_DET4(v0,v1,v2,v3,0,1,2,3))
 
#define DET4(m)    (VXVXVXV4((m)[0],(m)[1],(m)[2],(m)[3]))
 
#define ADJOINT4(to, m)
 
#define _ADJOINTcol4(to, col, m, i1, i2, i3)
 
#define __ADJOINTcol4(to, col, m, i1, i2, i3)
 
#define TRANSPOSE2safe(type, to, from)
 
#define TRANSPOSE2d(to, from)   TRANSPOSE2safe(double,to,from)
 
#define TRANSPOSE2i(to, from)   TRANSPOSE2safe(int,to,from)
 
#define TRANSPOSE2l(to, from)   TRANSPOSE2safe(long,to,from)
 
#define TRANSPOSE2r(to, from)   TRANSPOSE2safe(real,to,from)
 
#define MXM2safe(type, to, m1, m2)
 
#define MXM2d(to, m1, m2)   MXM2safe(double,to,m1,m2)
 
#define MXM2i(to, m1, m2)   MXM2safe(int,to,m1,m2)
 
#define MXM2l(to, m1, m2)   MXM2safe(long,to,m1,m2)
 
#define MXM2r(to, m1, m2)   MXM2safe(real,to,m1,m2)
 
#define VXM2safe(type, to, v, m)
 
#define VXM2d(to, v, m)   VXM2safe(double,to,v,m)
 
#define VXM2i(to, v, m)   VXM2safe(int,to,v,m)
 
#define VXM2l(to, v, m)   VXM2safe(long,to,v,m)
 
#define VXM2r(to, v, m)   VXM2safe(real,to,v,m)
 
#define MXV2safe(type, to, m, v)
 
#define MXV2d(to, m, v)   MXV2safe(double,to,m,v)
 
#define MXV2i(to, m, v)   MXV2safe(int,to,m,v)
 
#define MXV2l(to, m, v)   MXV2safe(long,to,m,v)
 
#define MXV2r(to, m, v)   MXV2safe(real,to,m,v)
 
#define XV2safe(type, to, v1)
 
#define XV2d(to, v1)   XV2safe(double,to,v1)
 
#define XV2i(to, v1)   XV2safe(int,to,v1)
 
#define XV2l(to, v1)   XV2safe(long,to,v1)
 
#define XV2r(to, v1)   XV2safe(real,to,v1)
 
#define V2XM3safe(type, to2, v2, m3)
 
#define V2XM3d(to2, v2, m3)   V2XM3safe(double,to2,v2,m3)
 
#define V2XM3i(to2, v2, m3)   V2XM3safe(int,to2,v2,m3)
 
#define V2XM3l(to2, v2, m3)   V2XM3safe(long,to2,v2,m3)
 
#define V2XM3r(to2, v2, m3)   V2XM3safe(real,to2,v2,m3)
 
#define M3XV2safe(type, to2, m3, v2)
 
#define M3XV2d(to2, m3, v2)   M3XV2safe(double,to2,m3,v2)
 
#define M3XV2i(to2, m3, v2)   M3XV2safe(int,to2,m3,v2)
 
#define M3XV2l(to2, m3, v2)   M3XV2safe(long,to2,m3,v2)
 
#define M3XV2r(to2, m3, v2)   M3XV2safe(real,to2,m3,v2)
 
#define ADJOINT2safe(type, to, m)
 
#define ADJOINT2d(to, m)   ADJOINT2safe(double,to,m)
 
#define ADJOINT2i(to, m)   ADJOINT2safe(int,to,m)
 
#define ADJOINT2l(to, m)   ADJOINT2safe(long,to,m)
 
#define ADJOINT2r(to, m)   ADJOINT2safe(real,to,m)
 
#define INVERTMAT2safe(type, to, from)
 
#define INVERTMAT2d(to, from)   INVERTMAT2safe(double,to,from)
 
#define INVERTMAT2i(to, from)   INVERTMAT2safe(int,to,from)
 
#define INVERTMAT2l(to, from)   INVERTMAT2safe(long,to,from)
 
#define INVERTMAT2r(to, from)   INVERTMAT2safe(real,to,from)
 
#define TRANSPOSE3safe(type, to, from)
 
#define TRANSPOSE3d(to, from)   TRANSPOSE3safe(double,to,from)
 
#define TRANSPOSE3i(to, from)   TRANSPOSE3safe(int,to,from)
 
#define TRANSPOSE3l(to, from)   TRANSPOSE3safe(long,to,from)
 
#define TRANSPOSE3r(to, from)   TRANSPOSE3safe(real,to,from)
 
#define MXM3safe(type, to, m1, m2)
 
#define MXM3d(to, m1, m2)   MXM3safe(double,to,m1,m2)
 
#define MXM3i(to, m1, m2)   MXM3safe(int,to,m1,m2)
 
#define MXM3l(to, m1, m2)   MXM3safe(long,to,m1,m2)
 
#define MXM3r(to, m1, m2)   MXM3safe(real,to,m1,m2)
 
#define VXM3safe(type, to, v, m)
 
#define VXM3d(to, v, m)   VXM3safe(double,to,v,m)
 
#define VXM3i(to, v, m)   VXM3safe(int,to,v,m)
 
#define VXM3l(to, v, m)   VXM3safe(long,to,v,m)
 
#define VXM3r(to, v, m)   VXM3safe(real,to,v,m)
 
#define MXV3safe(type, to, m, v)
 
#define MXV3d(to, m, v)   MXV3safe(double,to,m,v)
 
#define MXV3i(to, m, v)   MXV3safe(int,to,m,v)
 
#define MXV3l(to, m, v)   MXV3safe(long,to,m,v)
 
#define MXV3r(to, m, v)   MXV3safe(real,to,m,v)
 
#define VXV3safe(type, to, v1, v2)
 
#define VXV3d(to, v1, v2)   VXV3safe(double,to,v1,v2)
 
#define VXV3i(to, v1, v2)   VXV3safe(int,to,v1,v2)
 
#define VXV3l(to, v1, v2)   VXV3safe(long,to,v1,v2)
 
#define VXV3r(to, v1, v2)   VXV3safe(real,to,v1,v2)
 
#define M2XM3safe(type, to3, m2, m3)
 
#define M2XM3d(to3, m2, m3)   M2XM3safe(double,to3,m2,m3)
 
#define M2XM3i(to3, m2, m3)   M2XM3safe(int,to3,m2,m3)
 
#define M2XM3l(to3, m2, m3)   M2XM3safe(long,to3,m2,m3)
 
#define M2XM3r(to3, m2, m3)   M2XM3safe(real,to3,m2,m3)
 
#define M3XM2safe(type, to3, m3, m2)
 
#define M3XM2d(to3, m3, m2)   M3XM2safe(double,to3,m3,m2)
 
#define M3XM2i(to3, m3, m2)   M3XM2safe(int,to3,m3,m2)
 
#define M3XM2l(to3, m3, m2)   M3XM2safe(long,to3,m3,m2)
 
#define M3XM2r(to3, m3, m2)   M3XM2safe(real,to3,m3,m2)
 
#define V3XM4safe(type, to3, v3, m4)
 
#define V3XM4d(to3, v3, m4)   V3XM4safe(double,to3,v3,m4)
 
#define V3XM4i(to3, v3, m4)   V3XM4safe(int,to3,v3,m4)
 
#define V3XM4l(to3, v3, m4)   V3XM4safe(long,to3,v3,m4)
 
#define V3XM4r(to3, v3, m4)   V3XM4safe(real,to3,v3,m4)
 
#define M4XV3safe(type, to3, m4, v3)
 
#define M4XV3d(to3, m4, v3)   M4XV3safe(double,to3,m4,v3)
 
#define M4XV3i(to3, m4, v3)   M4XV3safe(int,to3,m4,v3)
 
#define M4XV3l(to3, m4, v3)   M4XV3safe(long,to3,m4,v3)
 
#define M4XV3r(to3, m4, v3)   M4XV3safe(real,to3,m4,v3)
 
#define ADJOINT3safe(type, to, m)
 
#define ADJOINT3d(to, m)   ADJOINT3safe(double,to,m)
 
#define ADJOINT3i(to, m)   ADJOINT3safe(int,to,m)
 
#define ADJOINT3l(to, m)   ADJOINT3safe(long,to,m)
 
#define ADJOINT3r(to, m)   ADJOINT3safe(real,to,m)
 
#define INVERTMAT3safe(type, to, from)
 
#define INVERTMAT3d(to, from)   INVERTMAT3safe(double,to,from)
 
#define INVERTMAT3i(to, from)   INVERTMAT3safe(int,to,from)
 
#define INVERTMAT3l(to, from)   INVERTMAT3safe(long,to,from)
 
#define INVERTMAT3r(to, from)   INVERTMAT3safe(real,to,from)
 
#define TRANSPOSE4safe(type, to, from)
 
#define TRANSPOSE4d(to, from)   TRANSPOSE4safe(double,to,from)
 
#define TRANSPOSE4i(to, from)   TRANSPOSE4safe(int,to,from)
 
#define TRANSPOSE4l(to, from)   TRANSPOSE4safe(long,to,from)
 
#define TRANSPOSE4r(to, from)   TRANSPOSE4safe(real,to,from)
 
#define MXM4safe(type, to, m1, m2)
 
#define MXM4d(to, m1, m2)   MXM4safe(double,to,m1,m2)
 
#define MXM4i(to, m1, m2)   MXM4safe(int,to,m1,m2)
 
#define MXM4l(to, m1, m2)   MXM4safe(long,to,m1,m2)
 
#define MXM4r(to, m1, m2)   MXM4safe(real,to,m1,m2)
 
#define VXM4safe(type, to, v, m)
 
#define VXM4d(to, v, m)   VXM4safe(double,to,v,m)
 
#define VXM4i(to, v, m)   VXM4safe(int,to,v,m)
 
#define VXM4l(to, v, m)   VXM4safe(long,to,v,m)
 
#define VXM4r(to, v, m)   VXM4safe(real,to,v,m)
 
#define MXV4safe(type, to, m, v)
 
#define MXV4d(to, m, v)   MXV4safe(double,to,m,v)
 
#define MXV4i(to, m, v)   MXV4safe(int,to,m,v)
 
#define MXV4l(to, m, v)   MXV4safe(long,to,m,v)
 
#define MXV4r(to, m, v)   MXV4safe(real,to,m,v)
 
#define VXVXV4safe(type, to, v1, v2, v3)
 
#define VXVXV4d(to, v1, v2, v3)   VXVXV4safe(double,to,v1,v2,v3)
 
#define VXVXV4i(to, v1, v2, v3)   VXVXV4safe(int,to,v1,v2,v3)
 
#define VXVXV4l(to, v1, v2, v3)   VXVXV4safe(long,to,v1,v2,v3)
 
#define VXVXV4r(to, v1, v2, v3)   VXVXV4safe(real,to,v1,v2,v3)
 
#define M3XM4safe(type, to4, m3, m4)
 
#define M3XM4d(to4, m3, m4)   M3XM4safe(double,to4,m3,m4)
 
#define M3XM4i(to4, m3, m4)   M3XM4safe(int,to4,m3,m4)
 
#define M3XM4l(to4, m3, m4)   M3XM4safe(long,to4,m3,m4)
 
#define M3XM4r(to4, m3, m4)   M3XM4safe(real,to4,m3,m4)
 
#define M4XM3safe(type, to4, m4, m3)
 
#define M4XM3d(to4, m4, m3)   M4XM3safe(double,to4,m4,m3)
 
#define M4XM3i(to4, m4, m3)   M4XM3safe(int,to4,m4,m3)
 
#define M4XM3l(to4, m4, m3)   M4XM3safe(long,to4,m4,m3)
 
#define M4XM3r(to4, m4, m3)   M4XM3safe(real,to4,m4,m3)
 
#define ADJOINT4safe(type, to, m)
 
#define ADJOINT4d(to, m)   ADJOINT4safe(double,to,m)
 
#define ADJOINT4i(to, m)   ADJOINT4safe(int,to,m)
 
#define ADJOINT4l(to, m)   ADJOINT4safe(long,to,m)
 
#define ADJOINT4r(to, m)   ADJOINT4safe(real,to,m)
 
#define INVERTMAT4safe(type, to, from)
 
#define INVERTMAT4d(to, from)   INVERTMAT4safe(double,to,from)
 
#define INVERTMAT4i(to, from)   INVERTMAT4safe(int,to,from)
 
#define INVERTMAT4l(to, from)   INVERTMAT4safe(long,to,from)
 
#define INVERTMAT4r(to, from)   INVERTMAT4safe(real,to,from)
 

Macro Definition Documentation

◆ __ADJOINTcol2

#define __ADJOINTcol2 (   to,
  col,
  m,
  i1 
)
Value:
((to)[0][col] = -_DET1(m[i1], 1), \
(to)[1][col] = _DET1(m[i1], 0))
#define _DET1(v0, i0)
Definition: vec.h:287

Definition at line 307 of file vec.h.

◆ __ADJOINTcol3

#define __ADJOINTcol3 (   to,
  col,
  m,
  i1,
  i2 
)
Value:
((to)[0][col] = -_DET2(m[i1],m[i2], 1,2), \
(to)[1][col] = _DET2(m[i1],m[i2], 0,2), \
(to)[2][col] = -_DET2(m[i1],m[i2], 0,1))
#define _DET2(v0, v1, i0, i1)
Definition: vec.h:275

Definition at line 538 of file vec.h.

◆ __ADJOINTcol4

#define __ADJOINTcol4 (   to,
  col,
  m,
  i1,
  i2,
  i3 
)
Value:
((to)[0][col] = -_DET3(m[i1],m[i2],m[i3], 1,2,3), \
(to)[1][col] = _DET3(m[i1],m[i2],m[i3], 0,2,3), \
(to)[2][col] = -_DET3(m[i1],m[i2],m[i3], 0,1,3), \
(to)[3][col] = _DET3(m[i1],m[i2],m[i3], 0,1,2))
#define _DET3(v0, v1, v2, i0, i1, i2)
Definition: vec.h:494

Definition at line 816 of file vec.h.

◆ _ADJOINTcol2

#define _ADJOINTcol2 (   to,
  col,
  m,
  i1 
)
Value:
((to)[0][col] = _DET1(m[i1], 1), \
(to)[1][col] = -_DET1(m[i1], 0))

Definition at line 304 of file vec.h.

◆ _ADJOINTcol3

#define _ADJOINTcol3 (   to,
  col,
  m,
  i1,
  i2 
)
Value:
((to)[0][col] = _DET2(m[i1],m[i2], 1,2), \
(to)[1][col] = -_DET2(m[i1],m[i2], 0,2), \
(to)[2][col] = _DET2(m[i1],m[i2], 0,1))

Definition at line 534 of file vec.h.

◆ _ADJOINTcol4

#define _ADJOINTcol4 (   to,
  col,
  m,
  i1,
  i2,
  i3 
)
Value:
((to)[0][col] = _DET3(m[i1],m[i2],m[i3], 1,2,3), \
(to)[1][col] = -_DET3(m[i1],m[i2],m[i3], 0,2,3), \
(to)[2][col] = _DET3(m[i1],m[i2],m[i3], 0,1,3), \
(to)[3][col] = -_DET3(m[i1],m[i2],m[i3], 0,1,2))

Definition at line 811 of file vec.h.

◆ _DET1

#define _DET1 (   v0,
  i0 
)     ((v0)[i0])

Definition at line 287 of file vec.h.

◆ _DET2

#define _DET2 (   v0,
  v1,
  i0,
  i1 
)
Value:
((v0)[i0]* _DET1(v1,i1) + \
(v0)[i1]*-_DET1(v1,i0))

Definition at line 275 of file vec.h.

◆ _DET3

#define _DET3 (   v0,
  v1,
  v2,
  i0,
  i1,
  i2 
)
Value:
((v0)[i0]* _DET2(v1,v2,i1,i2) + \
(v0)[i1]*-_DET2(v1,v2,i0,i2) + \
(v0)[i2]* _DET2(v1,v2,i0,i1))

Definition at line 494 of file vec.h.

◆ _DET4

#define _DET4 (   v0,
  v1,
  v2,
  v3,
  i0,
  i1,
  i2,
  i3 
)
Value:
((v0)[i0]* _DET3(v1,v2,v3,i1,i2,i3) + \
(v0)[i1]*-_DET3(v1,v2,v3,i0,i2,i3) + \
(v0)[i2]* _DET3(v1,v2,v3,i0,i1,i3) + \
(v0)[i3]*-_DET3(v1,v2,v3,i0,i1,i2))

Definition at line 772 of file vec.h.

◆ _DOTcol2

#define _DOTcol2 (   v,
  m,
 
)
Value:
((v)[0] * (m)[0][j] + \
(v)[1] * (m)[1][j])

Definition at line 266 of file vec.h.

◆ _DOTcol3

#define _DOTcol3 (   v,
  m,
 
)
Value:
((v)[0] * (m)[0][j] + \
(v)[1] * (m)[1][j] + \
(v)[2] * (m)[2][j])

Definition at line 482 of file vec.h.

◆ _DOTcol4

#define _DOTcol4 (   v,
  m,
 
)
Value:
((v)[0] * (m)[0][j] + \
(v)[1] * (m)[1][j] + \
(v)[2] * (m)[2][j] + \
(v)[3] * (m)[3][j])

Definition at line 757 of file vec.h.

◆ _MXVcol2

#define _MXVcol2 (   to,
  m,
  M,
 
)
Value:
((to)[0][j] = _DOTcol2((m)[0],M,j), \
(to)[1][j] = _DOTcol2((m)[1],M,j))
#define _DOTcol2(v, m, j)
Definition: vec.h:266

Definition at line 272 of file vec.h.

◆ _MXVcol3

#define _MXVcol3 (   to,
  m,
  M,
 
)
Value:
((to)[0][j] = _DOTcol3((m)[0],M,j), \
(to)[1][j] = _DOTcol3((m)[1],M,j), \
(to)[2][j] = _DOTcol3((m)[2],M,j))
#define _DOTcol3(v, m, j)
Definition: vec.h:482

Definition at line 490 of file vec.h.

◆ _MXVcol4

#define _MXVcol4 (   to,
  m,
  M,
 
)
Value:
((to)[0][j] = _DOTcol4((m)[0],M,j), \
(to)[1][j] = _DOTcol4((m)[1],M,j), \
(to)[2][j] = _DOTcol4((m)[2],M,j), \
(to)[3][j] = _DOTcol4((m)[3],M,j))
#define _DOTcol4(v, m, j)
Definition: vec.h:757

Definition at line 767 of file vec.h.

◆ _SETcol2

#define _SETcol2 (   v,
  m,
 
)
Value:
((v)[0] = (m)[0][j], \
(v)[1] = (m)[1][j])

Definition at line 269 of file vec.h.

◆ _SETcol3

#define _SETcol3 (   v,
  m,
 
)
Value:
((v)[0] = (m)[0][j], \
(v)[1] = (m)[1][j], \
(v)[2] = (m)[2][j])

Definition at line 486 of file vec.h.

◆ _SETcol4

#define _SETcol4 (   v,
  m,
 
)
Value:
((v)[0] = (m)[0][j], \
(v)[1] = (m)[1][j], \
(v)[2] = (m)[2][j], \
(v)[3] = (m)[3][j])

Definition at line 762 of file vec.h.

◆ ADJOINT2

#define ADJOINT2 (   to,
 
)
Value:
( _ADJOINTcol2(to,0,m,1), \
__ADJOINTcol2(to,1,m,0))
#define _ADJOINTcol2(to, col, m, i1)
Definition: vec.h:304

Definition at line 301 of file vec.h.

◆ ADJOINT2d

#define ADJOINT2d (   to,
 
)    ADJOINT2safe(double,to,m)

Definition at line 889 of file vec.h.

◆ ADJOINT2i

#define ADJOINT2i (   to,
 
)    ADJOINT2safe(int,to,m)

Definition at line 890 of file vec.h.

◆ ADJOINT2l

#define ADJOINT2l (   to,
 
)    ADJOINT2safe(long,to,m)

Definition at line 891 of file vec.h.

◆ ADJOINT2r

#define ADJOINT2r (   to,
 
)    ADJOINT2safe(real,to,m)

Definition at line 892 of file vec.h.

◆ ADJOINT2safe

#define ADJOINT2safe (   type,
  to,
 
)
Value:
do {type _vec_h_temp_[2][2]; \
ADJOINT2(_vec_h_temp_,m); \
SETMAT2(to, _vec_h_temp_); \
} while (0)

Definition at line 884 of file vec.h.

◆ ADJOINT3

#define ADJOINT3 (   to,
 
)
Value:
( _ADJOINTcol3(to,0,m,1,2), \
__ADJOINTcol3(to,1,m,0,2), \
_ADJOINTcol3(to,2,m,0,1))
#define _ADJOINTcol3(to, col, m, i1, i2)
Definition: vec.h:534

Definition at line 530 of file vec.h.

◆ ADJOINT3d

#define ADJOINT3d (   to,
 
)    ADJOINT3safe(double,to,m)

Definition at line 989 of file vec.h.

◆ ADJOINT3i

#define ADJOINT3i (   to,
 
)    ADJOINT3safe(int,to,m)

Definition at line 990 of file vec.h.

◆ ADJOINT3l

#define ADJOINT3l (   to,
 
)    ADJOINT3safe(long,to,m)

Definition at line 991 of file vec.h.

◆ ADJOINT3r

#define ADJOINT3r (   to,
 
)    ADJOINT3safe(real,to,m)

Definition at line 992 of file vec.h.

◆ ADJOINT3safe

#define ADJOINT3safe (   type,
  to,
 
)
Value:
do {type _vec_h_temp_[3][3]; \
ADJOINT3(_vec_h_temp_,m); \
SETMAT3(to, _vec_h_temp_); \
} while (0)

Definition at line 984 of file vec.h.

◆ ADJOINT4

#define ADJOINT4 (   to,
 
)
Value:
( _ADJOINTcol4(to,0,m,1,2,3), \
__ADJOINTcol4(to,1,m,0,2,3), \
_ADJOINTcol4(to,2,m,0,1,3), \
__ADJOINTcol4(to,3,m,0,1,2))
#define _ADJOINTcol4(to, col, m, i1, i2, i3)
Definition: vec.h:811

Definition at line 806 of file vec.h.

◆ ADJOINT4d

#define ADJOINT4d (   to,
 
)    ADJOINT4safe(double,to,m)

Definition at line 1071 of file vec.h.

◆ ADJOINT4i

#define ADJOINT4i (   to,
 
)    ADJOINT4safe(int,to,m)

Definition at line 1072 of file vec.h.

◆ ADJOINT4l

#define ADJOINT4l (   to,
 
)    ADJOINT4safe(long,to,m)

Definition at line 1073 of file vec.h.

◆ ADJOINT4r

#define ADJOINT4r (   to,
 
)    ADJOINT4safe(real,to,m)

Definition at line 1074 of file vec.h.

◆ ADJOINT4safe

#define ADJOINT4safe (   type,
  to,
 
)
Value:
do {type _vec_h_temp_[4][4]; \
ADJOINT4(_vec_h_temp_,m); \
SETMAT4(to, _vec_h_temp_); \
} while (0)

Definition at line 1066 of file vec.h.

◆ DET2

#define DET2 (   m)     (VXV2((m)[0],(m)[1]))

Definition at line 291 of file vec.h.

◆ DET3

#define DET3 (   m)     (VXVXV3((m)[0],(m)[1],(m)[2]))

Definition at line 528 of file vec.h.

◆ DET4

#define DET4 (   m)     (VXVXVXV4((m)[0],(m)[1],(m)[2],(m)[3]))

Definition at line 804 of file vec.h.

◆ DISTSQRD2

#define DISTSQRD2 (   v,
 
)
Value:
(((v)[0]-(w)[0])*((v)[0]-(w)[0]) + \
((v)[1]-(w)[1])*((v)[1]-(w)[1]))

Definition at line 263 of file vec.h.

◆ DISTSQRD3

#define DISTSQRD3 (   v,
 
)
Value:
(((v)[0]-(w)[0])*((v)[0]-(w)[0]) + \
((v)[1]-(w)[1])*((v)[1]-(w)[1]) + \
((v)[2]-(w)[2])*((v)[2]-(w)[2]))

Definition at line 478 of file vec.h.

◆ DISTSQRD4

#define DISTSQRD4 (   v,
 
)
Value:
(((v)[0]-(w)[0])*((v)[0]-(w)[0]) + \
((v)[1]-(w)[1])*((v)[1]-(w)[1]) + \
((v)[2]-(w)[2])*((v)[2]-(w)[2]) + \
((v)[3]-(w)[3])*((v)[3]-(w)[3]))

Definition at line 752 of file vec.h.

◆ DOT2

#define DOT2 (   v,
 
)
Value:
((v)[0] * (w)[0] + \
(v)[1] * (w)[1])

Definition at line 257 of file vec.h.

◆ DOT3

#define DOT3 (   v,
 
)
Value:
((v)[0] * (w)[0] + \
(v)[1] * (w)[1] + \
(v)[2] * (w)[2])

Definition at line 470 of file vec.h.

◆ DOT4

#define DOT4 (   v,
 
)
Value:
((v)[0] * (w)[0] + \
(v)[1] * (w)[1] + \
(v)[2] * (w)[2] + \
(v)[3] * (w)[3])

Definition at line 742 of file vec.h.

◆ EQMAT2

#define EQMAT2 (   m1,
  m2 
)
Value:
(EQVEC2((m1)[0], (m2)[0]) && \
EQVEC2((m1)[1], (m2)[1]))
#define EQVEC2(v, w)
Definition: vec.h:161

Definition at line 164 of file vec.h.

◆ EQMAT3

#define EQMAT3 (   m1,
  m2 
)
Value:
(EQVEC3((m1)[0], (m2)[0]) && \
EQVEC3((m1)[1], (m2)[1]) && \
EQVEC3((m1)[2], (m2)[2]))
#define EQVEC3(v, w)
Definition: vec.h:342

Definition at line 346 of file vec.h.

◆ EQMAT4

#define EQMAT4 (   m1,
  m2 
)
Value:
(EQVEC4((m1)[0], (m2)[0]) && \
EQVEC4((m1)[1], (m2)[1]) && \
EQVEC4((m1)[2], (m2)[2]) && \
EQVEC4((m1)[3], (m2)[3]))
#define EQVEC4(v, w)
Definition: vec.h:582

Definition at line 587 of file vec.h.

◆ EQVEC2

#define EQVEC2 (   v,
 
)
Value:
((v)[0] == (w)[0] && \
(v)[1] == (w)[1])

Definition at line 161 of file vec.h.

◆ EQVEC3

#define EQVEC3 (   v,
 
)
Value:
((v)[0] == (w)[0] && \
(v)[1] == (w)[1] && \
(v)[2] == (w)[2])

Definition at line 342 of file vec.h.

◆ EQVEC4

#define EQVEC4 (   v,
 
)
Value:
((v)[0] == (w)[0] && \
(v)[1] == (w)[1] && \
(v)[2] == (w)[2] && \
(v)[3] == (w)[3])

Definition at line 582 of file vec.h.

◆ EXPAND2

#define EXPAND2 (   v)    (v)[0], (v)[1]

Definition at line 134 of file vec.h.

◆ EXPAND3

#define EXPAND3 (   v)    (v)[0], (v)[1], (v)[2]

Definition at line 135 of file vec.h.

◆ EXPAND4

#define EXPAND4 (   v)    (v)[0], (v)[1], (v)[2], (v)[3]

Definition at line 136 of file vec.h.

◆ FILLMAT2

#define FILLMAT2 (   m,
 
)
Value:
(FILLVEC2((m)[0], s), \
FILLVEC2((m)[1], s))
#define FILLVEC2(v, s)
Definition: vec.h:149

Definition at line 152 of file vec.h.

◆ FILLMAT3

#define FILLMAT3 (   m,
 
)
Value:
(FILLVEC3((m)[0], s), \
FILLVEC3((m)[1], s), \
FILLVEC3((m)[2], s))
#define FILLVEC3(v, s)
Definition: vec.h:326

Definition at line 330 of file vec.h.

◆ FILLMAT4

#define FILLMAT4 (   m,
 
)
Value:
(FILLVEC4((m)[0], s), \
FILLVEC4((m)[1], s), \
FILLVEC4((m)[2], s), \
FILLVEC4((m)[3], s))
#define FILLVEC4(v, s)
Definition: vec.h:562

Definition at line 567 of file vec.h.

◆ FILLVEC2

#define FILLVEC2 (   v,
 
)
Value:
((v)[0] = (s), \
(v)[1] = (s))

Definition at line 149 of file vec.h.

◆ FILLVEC3

#define FILLVEC3 (   v,
 
)
Value:
((v)[0] = (s), \
(v)[1] = (s), \
(v)[2] = (s))

Definition at line 326 of file vec.h.

◆ FILLVEC4

#define FILLVEC4 (   v,
 
)
Value:
((v)[0] = (s), \
(v)[1] = (s), \
(v)[2] = (s), \
(v)[3] = (s))

Definition at line 562 of file vec.h.

◆ IDENTMAT2

#define IDENTMAT2 (   m)
Value:
(ZEROVEC2((m)[0]), (m)[0][0]=1, \
ZEROVEC2((m)[1]), (m)[1][1]=1)
#define ZEROVEC2(v)
Definition: vec.h:155

Definition at line 170 of file vec.h.

◆ IDENTMAT3

#define IDENTMAT3 (   m)
Value:
(ZEROVEC3((m)[0]), (m)[0][0]=1, \
ZEROVEC3((m)[1]), (m)[1][1]=1, \
ZEROVEC3((m)[2]), (m)[2][2]=1)
#define ZEROVEC3(v)
Definition: vec.h:334

Definition at line 354 of file vec.h.

◆ IDENTMAT4

#define IDENTMAT4 (   m)
Value:
(ZEROVEC4((m)[0]), (m)[0][0]=1, \
ZEROVEC4((m)[1]), (m)[1][1]=1, \
ZEROVEC4((m)[2]), (m)[2][2]=1, \
ZEROVEC4((m)[3]), (m)[3][3]=1)
#define ZEROVEC4(v)
Definition: vec.h:572

Definition at line 597 of file vec.h.

◆ INVERTMAT2d

#define INVERTMAT2d (   to,
  from 
)    INVERTMAT2safe(double,to,from)

Definition at line 899 of file vec.h.

◆ INVERTMAT2i

#define INVERTMAT2i (   to,
  from 
)    INVERTMAT2safe(int,to,from)

Definition at line 900 of file vec.h.

◆ INVERTMAT2l

#define INVERTMAT2l (   to,
  from 
)    INVERTMAT2safe(long,to,from)

Definition at line 901 of file vec.h.

◆ INVERTMAT2r

#define INVERTMAT2r (   to,
  from 
)    INVERTMAT2safe(real,to,from)

Definition at line 902 of file vec.h.

◆ INVERTMAT2safe

#define INVERTMAT2safe (   type,
  to,
  from 
)
Value:
do {type _vec_h_temp_[2][2]; \
ADJOINT2(_vec_h_temp_, from); \
type _vec_h_temp_invdet_ = (type)1/(type)DET2(from); \
SXM2(to, _vec_h_temp_invdet_, _vec_h_temp_); \
} while (0)
#define DET2(m)
Definition: vec.h:291

Definition at line 893 of file vec.h.

◆ INVERTMAT3d

#define INVERTMAT3d (   to,
  from 
)    INVERTMAT3safe(double,to,from)

Definition at line 999 of file vec.h.

◆ INVERTMAT3i

#define INVERTMAT3i (   to,
  from 
)    INVERTMAT3safe(int,to,from)

Definition at line 1000 of file vec.h.

◆ INVERTMAT3l

#define INVERTMAT3l (   to,
  from 
)    INVERTMAT3safe(long,to,from)

Definition at line 1001 of file vec.h.

◆ INVERTMAT3r

#define INVERTMAT3r (   to,
  from 
)    INVERTMAT3safe(real,to,from)

Definition at line 1002 of file vec.h.

◆ INVERTMAT3safe

#define INVERTMAT3safe (   type,
  to,
  from 
)
Value:
do {type _vec_h_temp_[3][3]; \
ADJOINT3(_vec_h_temp_, from); \
type _vec_h_temp_invdet_ = (type)1/(type)DET3(from); \
SXM3(to, _vec_h_temp_invdet_, _vec_h_temp_); \
} while (0)
#define DET3(m)
Definition: vec.h:528

Definition at line 993 of file vec.h.

◆ INVERTMAT4d

#define INVERTMAT4d (   to,
  from 
)    INVERTMAT4safe(double,to,from)

Definition at line 1081 of file vec.h.

◆ INVERTMAT4i

#define INVERTMAT4i (   to,
  from 
)    INVERTMAT4safe(int,to,from)

Definition at line 1082 of file vec.h.

◆ INVERTMAT4l

#define INVERTMAT4l (   to,
  from 
)    INVERTMAT4safe(long,to,from)

Definition at line 1083 of file vec.h.

◆ INVERTMAT4r

#define INVERTMAT4r (   to,
  from 
)    INVERTMAT4safe(real,to,from)

Definition at line 1084 of file vec.h.

◆ INVERTMAT4safe

#define INVERTMAT4safe (   type,
  to,
  from 
)
Value:
do {type _vec_h_temp_[4][4]; \
ADJOINT4(_vec_h_temp_, from); \
type _vec_h_temp_invdet_ = (type)1/(type)DET4(from); \
SXM4(to, _vec_h_temp_invdet_, _vec_h_temp_); \
} while (0)
#define DET4(m)
Definition: vec.h:804

Definition at line 1075 of file vec.h.

◆ ISZEROVEC2

#define ISZEROVEC2 (   v)
Value:
((v)[0] == 0 && \
(v)[1] == 0)

Definition at line 158 of file vec.h.

◆ ISZEROVEC3

#define ISZEROVEC3 (   v)
Value:
((v)[0] == 0 && \
(v)[1] == 0 && \
(v)[2] == 0)

Definition at line 338 of file vec.h.

◆ ISZEROVEC4

#define ISZEROVEC4 (   v)
Value:
((v)[0] == 0 && \
(v)[1] == 0 && \
(v)[2] == 0 && \
(v)[3] == 0)

Definition at line 577 of file vec.h.

◆ LERP2

#define LERP2 (   to,
  v0,
  v1,
 
)
Value:
((to)[0]=(v0)[0]+(t)*((v1)[0]-(v0)[0]), \
(to)[1]=(v0)[1]+(t)*((v1)[1]-(v0)[1]))

Definition at line 251 of file vec.h.

◆ LERP3

#define LERP3 (   to,
  v0,
  v1,
 
)
Value:
((to)[0]=(v0)[0]+(t)*((v1)[0]-(v0)[0]), \
(to)[1]=(v0)[1]+(t)*((v1)[1]-(v0)[1]), \
(to)[2]=(v0)[2]+(t)*((v1)[2]-(v0)[2]))

Definition at line 462 of file vec.h.

◆ LERP4

#define LERP4 (   to,
  v0,
  v1,
 
)
Value:
((to)[0]=(v0)[0]+(t)*((v1)[0]-(v0)[0]), \
(to)[1]=(v0)[1]+(t)*((v1)[1]-(v0)[1]), \
(to)[2]=(v0)[2]+(t)*((v1)[2]-(v0)[2]), \
(to)[3]=(v0)[3]+(t)*((v1)[3]-(v0)[3]))

Definition at line 732 of file vec.h.

◆ M2XM3

#define M2XM3 (   to3,
  m2,
  m3 
)
Value:
(_MXVcol2(to3,m2,m3,0), (to3)[2][0]=(m3)[2][0], \
_MXVcol2(to3,m2,m3,1), (to3)[2][1]=(m3)[2][1], \
_MXVcol2(to3,m2,m3,2), (to3)[2][2]=(m3)[2][2])
#define _MXVcol2(to, m, M, j)
Definition: vec.h:272

Definition at line 510 of file vec.h.

◆ M2XM3d

#define M2XM3d (   to3,
  m2,
  m3 
)    M2XM3safe(double,to3,m2,m3)

Definition at line 953 of file vec.h.

◆ M2XM3i

#define M2XM3i (   to3,
  m2,
  m3 
)    M2XM3safe(int,to3,m2,m3)

Definition at line 954 of file vec.h.

◆ M2XM3l

#define M2XM3l (   to3,
  m2,
  m3 
)    M2XM3safe(long,to3,m2,m3)

Definition at line 955 of file vec.h.

◆ M2XM3r

#define M2XM3r (   to3,
  m2,
  m3 
)    M2XM3safe(real,to3,m2,m3)

Definition at line 956 of file vec.h.

◆ M2XM3safe

#define M2XM3safe (   type,
  to3,
  m2,
  m3 
)
Value:
do {type _vec_h_temp_[3][3]; \
M2XM3(_vec_h_temp_,m2,m3); \
SETMAT3(to3, _vec_h_temp_); \
} while (0)

Definition at line 948 of file vec.h.

◆ M3XM2

#define M3XM2 (   to3,
  m3,
  m2 
)
Value:
(VXM2((to3)[0],(m3)[0],m2), (to3)[0][2]=(m3)[0][2], \
VXM2((to3)[1],(m3)[1],m2), (to3)[1][2]=(m3)[1][2], \
VXM2((to3)[2],(m3)[2],m2), (to3)[2][2]=(m3)[2][2])
#define VXM2(to, v, m)
Definition: vec.h:221

Definition at line 514 of file vec.h.

◆ M3XM2d

#define M3XM2d (   to3,
  m3,
  m2 
)    M3XM2safe(double,to3,m3,m2)

Definition at line 962 of file vec.h.

◆ M3XM2i

#define M3XM2i (   to3,
  m3,
  m2 
)    M3XM2safe(int,to3,m3,m2)

Definition at line 963 of file vec.h.

◆ M3XM2l

#define M3XM2l (   to3,
  m3,
  m2 
)    M3XM2safe(long,to3,m3,m2)

Definition at line 964 of file vec.h.

◆ M3XM2r

#define M3XM2r (   to3,
  m3,
  m2 
)    M3XM2safe(real,to3,m3,m2)

Definition at line 965 of file vec.h.

◆ M3XM2safe

#define M3XM2safe (   type,
  to3,
  m3,
  m2 
)
Value:
do {type _vec_h_temp_[3][3]; \
M3XM2(_vec_h_temp_,m3,m2); \
SETMAT3(to3, _vec_h_temp_); \
} while (0)

Definition at line 957 of file vec.h.

◆ M3XM4

#define M3XM4 (   to4,
  m3,
  m4 
)
Value:
(_MXVcol3(to4,m3,m4,0), (to4)[3][0]=(m4)[3][0], \
_MXVcol3(to4,m3,m4,1), (to4)[3][1]=(m4)[3][1], \
_MXVcol3(to4,m3,m4,2), (to4)[3][2]=(m4)[3][2], \
_MXVcol3(to4,m3,m4,3), (to4)[3][3]=(m4)[3][3])
#define _MXVcol3(to, m, M, j)
Definition: vec.h:490

Definition at line 792 of file vec.h.

◆ M3XM4d

#define M3XM4d (   to4,
  m3,
  m4 
)    M3XM4safe(double,to4,m3,m4)

Definition at line 1053 of file vec.h.

◆ M3XM4i

#define M3XM4i (   to4,
  m3,
  m4 
)    M3XM4safe(int,to4,m3,m4)

Definition at line 1054 of file vec.h.

◆ M3XM4l

#define M3XM4l (   to4,
  m3,
  m4 
)    M3XM4safe(long,to4,m3,m4)

Definition at line 1055 of file vec.h.

◆ M3XM4r

#define M3XM4r (   to4,
  m3,
  m4 
)    M3XM4safe(real,to4,m3,m4)

Definition at line 1056 of file vec.h.

◆ M3XM4safe

#define M3XM4safe (   type,
  to4,
  m3,
  m4 
)
Value:
do {type _vec_h_temp_[4][4]; \
M3XM4(_vec_h_temp_,m3,m4); \
SETMAT4(to4, _vec_h_temp_); \
} while (0)

Definition at line 1048 of file vec.h.

◆ M3XV2

#define M3XV2 (   to2,
  m3,
  v2 
)
Value:
((to2)[0] = DOT2((m3)[0],v2) + (m3)[0][2], \
(to2)[1] = DOT2((m3)[1],v2) + (m3)[1][2])
#define DOT2(v, w)
Definition: vec.h:257

Definition at line 284 of file vec.h.

◆ M3XV2d

#define M3XV2d (   to2,
  m3,
  v2 
)    M3XV2safe(double,to2,m3,v2)

Definition at line 880 of file vec.h.

◆ M3XV2i

#define M3XV2i (   to2,
  m3,
  v2 
)    M3XV2safe(int,to2,m3,v2)

Definition at line 881 of file vec.h.

◆ M3XV2l

#define M3XV2l (   to2,
  m3,
  v2 
)    M3XV2safe(long,to2,m3,v2)

Definition at line 882 of file vec.h.

◆ M3XV2r

#define M3XV2r (   to2,
  m3,
  v2 
)    M3XV2safe(real,to2,m3,v2)

Definition at line 883 of file vec.h.

◆ M3XV2safe

#define M3XV2safe (   type,
  to2,
  m3,
  v2 
)
Value:
do {type _vec_h_temp_[2]; \
M3XV2(_vec_h_temp_,m3,v2); \
SET2(to2, _vec_h_temp_); \
} while (0)

Definition at line 875 of file vec.h.

◆ M4XM3

#define M4XM3 (   to4,
  m4,
  m3 
)
Value:
(VXM3((to4)[0],(m4)[0],m3), (to4)[0][3]=(m4)[0][3], \
VXM3((to4)[1],(m4)[1],m3), (to4)[1][3]=(m4)[1][3], \
VXM3((to4)[2],(m4)[2],m3), (to4)[2][3]=(m4)[2][3], \
VXM3((to4)[3],(m4)[3],m3), (to4)[3][3]=(m4)[3][3])
#define VXM3(to, v, m)
Definition: vec.h:422

Definition at line 797 of file vec.h.

◆ M4XM3d

#define M4XM3d (   to4,
  m4,
  m3 
)    M4XM3safe(double,to4,m4,m3)

Definition at line 1062 of file vec.h.

◆ M4XM3i

#define M4XM3i (   to4,
  m4,
  m3 
)    M4XM3safe(int,to4,m4,m3)

Definition at line 1063 of file vec.h.

◆ M4XM3l

#define M4XM3l (   to4,
  m4,
  m3 
)    M4XM3safe(long,to4,m4,m3)

Definition at line 1064 of file vec.h.

◆ M4XM3r

#define M4XM3r (   to4,
  m4,
  m3 
)    M4XM3safe(real,to4,m4,m3)

Definition at line 1065 of file vec.h.

◆ M4XM3safe

#define M4XM3safe (   type,
  to4,
  m4,
  m3 
)
Value:
do {type _vec_h_temp_[4][4]; \
M4XM3(_vec_h_temp_,m4,m3); \
SETMAT4(to4, _vec_h_temp_); \
} while (0)

Definition at line 1057 of file vec.h.

◆ M4XV3

#define M4XV3 (   to3,
  m4,
  v3 
)
Value:
((to3)[0] = DOT3((m4)[0],v3) + (m4)[0][3], \
(to3)[1] = DOT3((m4)[1],v3) + (m4)[1][3], \
(to3)[2] = DOT3((m4)[2],v3) + (m4)[2][3])
#define DOT3(v, w)
Definition: vec.h:470

Definition at line 522 of file vec.h.

◆ M4XV3d

#define M4XV3d (   to3,
  m4,
  v3 
)    M4XV3safe(double,to3,m4,v3)

Definition at line 980 of file vec.h.

◆ M4XV3i

#define M4XV3i (   to3,
  m4,
  v3 
)    M4XV3safe(int,to3,m4,v3)

Definition at line 981 of file vec.h.

◆ M4XV3l

#define M4XV3l (   to3,
  m4,
  v3 
)    M4XV3safe(long,to3,m4,v3)

Definition at line 982 of file vec.h.

◆ M4XV3r

#define M4XV3r (   to3,
  m4,
  v3 
)    M4XV3safe(real,to3,m4,v3)

Definition at line 983 of file vec.h.

◆ M4XV3safe

#define M4XV3safe (   type,
  to3,
  m4,
  v3 
)
Value:
do {type _vec_h_temp_[3]; \
M4XV3(_vec_h_temp_,m4,v3); \
SET3(to3, _vec_h_temp_); \
} while (0)

Definition at line 975 of file vec.h.

◆ MDS2

#define MDS2 (   to,
  from,
 
)
Value:
(VDS2((to)[0], (from)[0], s), \
VDS2((to)[1], (from)[1], s))
#define VDS2(to, from, s)
Definition: vec.h:209

Definition at line 215 of file vec.h.

◆ MDS3

#define MDS3 (   to,
  from,
 
)
Value:
(VDS3((to)[0], (from)[0], s), \
VDS3((to)[1], (from)[1], s), \
VDS3((to)[2], (from)[2], s))
#define VDS3(to, from, s)
Definition: vec.h:406

Definition at line 414 of file vec.h.

◆ MDS4

#define MDS4 (   to,
  from,
 
)
Value:
(VDS4((to)[0], (from)[0], s), \
VDS4((to)[1], (from)[1], s), \
VDS4((to)[2], (from)[2], s), \
VDS4((to)[3], (from)[3], s))
#define VDS4(to, from, s)
Definition: vec.h:662

Definition at line 672 of file vec.h.

◆ MM2

#define MM2 (   to,
  from 
)
Value:
(MV2((to)[0], (from)[0]), \
MV2((to)[1], (from)[1]))
#define MV2(to, from)
Definition: vec.h:200

Definition at line 203 of file vec.h.

◆ MM3

#define MM3 (   to,
  from 
)
Value:
(MV3((to)[0], (from)[0]), \
MV3((to)[1], (from)[1]), \
MV3((to)[2], (from)[2]))
#define MV3(to, from)
Definition: vec.h:394

Definition at line 398 of file vec.h.

◆ MM4

#define MM4 (   to,
  from 
)
Value:
(MV4((to)[0], (from)[0]), \
MV4((to)[1], (from)[1]), \
MV4((to)[2], (from)[2]), \
MV4((to)[3], (from)[3]))
#define MV4(to, from)
Definition: vec.h:647

Definition at line 652 of file vec.h.

◆ MMM2

#define MMM2 (   to,
  m1,
  m2 
)
Value:
(VMV2((to)[0], (m1)[0], (m2)[0]), \
VMV2((to)[1], (m1)[1], (m2)[1]))
#define VMV2(to, v, w)
Definition: vec.h:185

Definition at line 191 of file vec.h.

◆ MMM3

#define MMM3 (   to,
  m1,
  m2 
)
Value:
(VMV3((to)[0], (m1)[0], (m2)[0]), \
VMV3((to)[1], (m1)[1], (m2)[1]), \
VMV3((to)[2], (m1)[2], (m2)[2]))
#define VMV3(to, v, w)
Definition: vec.h:374

Definition at line 382 of file vec.h.

◆ MMM4

#define MMM4 (   to,
  m1,
  m2 
)
Value:
(VMV4((to)[0], (m1)[0], (m2)[0]), \
VMV4((to)[1], (m1)[1], (m2)[1]), \
VMV4((to)[2], (m1)[2], (m2)[2]), \
VMV4((to)[3], (m1)[3], (m2)[3]))
#define VMV4(to, v, w)
Definition: vec.h:622

Definition at line 632 of file vec.h.

◆ MPM2

#define MPM2 (   to,
  m1,
  m2 
)
Value:
(VPV2((to)[0], (m1)[0], (m2)[0]), \
VPV2((to)[1], (m1)[1], (m2)[1]))
#define VPV2(to, v, w)
Definition: vec.h:182

Definition at line 188 of file vec.h.

◆ MPM3

#define MPM3 (   to,
  m1,
  m2 
)
Value:
(VPV3((to)[0], (m1)[0], (m2)[0]), \
VPV3((to)[1], (m1)[1], (m2)[1]), \
VPV3((to)[2], (m1)[2], (m2)[2]))
#define VPV3(to, v, w)
Definition: vec.h:370

Definition at line 378 of file vec.h.

◆ MPM4

#define MPM4 (   to,
  m1,
  m2 
)
Value:
(VPV4((to)[0], (m1)[0], (m2)[0]), \
VPV4((to)[1], (m1)[1], (m2)[1]), \
VPV4((to)[2], (m1)[2], (m2)[2]), \
VPV4((to)[3], (m1)[3], (m2)[3]))
#define VPV4(to, v, w)
Definition: vec.h:617

Definition at line 627 of file vec.h.

◆ MV2

#define MV2 (   to,
  from 
)
Value:
((to)[0] = -(from)[0], \
(to)[1] = -(from)[1])

Definition at line 200 of file vec.h.

◆ MV3

#define MV3 (   to,
  from 
)
Value:
((to)[0] = -(from)[0], \
(to)[1] = -(from)[1], \
(to)[2] = -(from)[2])

Definition at line 394 of file vec.h.

◆ MV4

#define MV4 (   to,
  from 
)
Value:
((to)[0] = -(from)[0], \
(to)[1] = -(from)[1], \
(to)[2] = -(from)[2], \
(to)[3] = -(from)[3])

Definition at line 647 of file vec.h.

◆ MXM2

#define MXM2 (   to,
  m1,
  m2 
)
Value:
(VXM2((to)[0], (m1)[0], m2), \
VXM2((to)[1], (m1)[1], m2))

Definition at line 218 of file vec.h.

◆ MXM2d

#define MXM2d (   to,
  m1,
  m2 
)    MXM2safe(double,to,m1,m2)

Definition at line 835 of file vec.h.

◆ MXM2i

#define MXM2i (   to,
  m1,
  m2 
)    MXM2safe(int,to,m1,m2)

Definition at line 836 of file vec.h.

◆ MXM2l

#define MXM2l (   to,
  m1,
  m2 
)    MXM2safe(long,to,m1,m2)

Definition at line 837 of file vec.h.

◆ MXM2r

#define MXM2r (   to,
  m1,
  m2 
)    MXM2safe(real,to,m1,m2)

Definition at line 838 of file vec.h.

◆ MXM2safe

#define MXM2safe (   type,
  to,
  m1,
  m2 
)
Value:
do {type _vec_h_temp_[2][2]; \
MXM2(_vec_h_temp_,m1,m2); \
SETMAT2(to, _vec_h_temp_); \
} while (0)

Definition at line 830 of file vec.h.

◆ MXM3

#define MXM3 (   to,
  m1,
  m2 
)
Value:
(VXM3((to)[0], (m1)[0], m2), \
VXM3((to)[1], (m1)[1], m2), \
VXM3((to)[2], (m1)[2], m2))

Definition at line 418 of file vec.h.

◆ MXM3d

#define MXM3d (   to,
  m1,
  m2 
)    MXM3safe(double,to,m1,m2)

Definition at line 917 of file vec.h.

◆ MXM3i

#define MXM3i (   to,
  m1,
  m2 
)    MXM3safe(int,to,m1,m2)

Definition at line 918 of file vec.h.

◆ MXM3l

#define MXM3l (   to,
  m1,
  m2 
)    MXM3safe(long,to,m1,m2)

Definition at line 919 of file vec.h.

◆ MXM3r

#define MXM3r (   to,
  m1,
  m2 
)    MXM3safe(real,to,m1,m2)

Definition at line 920 of file vec.h.

◆ MXM3safe

#define MXM3safe (   type,
  to,
  m1,
  m2 
)
Value:
do {type _vec_h_temp_[3][3]; \
MXM3(_vec_h_temp_,m1,m2); \
SETMAT3(to, _vec_h_temp_); \
} while (0)

Definition at line 912 of file vec.h.

◆ MXM4

#define MXM4 (   to,
  m1,
  m2 
)
Value:
(VXM4((to)[0], (m1)[0], m2), \
VXM4((to)[1], (m1)[1], m2), \
VXM4((to)[2], (m1)[2], m2), \
VXM4((to)[3], (m1)[3], m2))
#define VXM4(to, v, m)
Definition: vec.h:682

Definition at line 677 of file vec.h.

◆ MXM4d

#define MXM4d (   to,
  m1,
  m2 
)    MXM4safe(double,to,m1,m2)

Definition at line 1017 of file vec.h.

◆ MXM4i

#define MXM4i (   to,
  m1,
  m2 
)    MXM4safe(int,to,m1,m2)

Definition at line 1018 of file vec.h.

◆ MXM4l

#define MXM4l (   to,
  m1,
  m2 
)    MXM4safe(long,to,m1,m2)

Definition at line 1019 of file vec.h.

◆ MXM4r

#define MXM4r (   to,
  m1,
  m2 
)    MXM4safe(real,to,m1,m2)

Definition at line 1020 of file vec.h.

◆ MXM4safe

#define MXM4safe (   type,
  to,
  m1,
  m2 
)
Value:
do {type _vec_h_temp_[4][4]; \
MXM4(_vec_h_temp_,m1,m2); \
SETMAT4(to, _vec_h_temp_); \
} while (0)

Definition at line 1012 of file vec.h.

◆ MXS2

#define MXS2 (   to,
  from,
 
)
Value:
(VXS2((to)[0], (from)[0], s), \
VXS2((to)[1], (from)[1], s))
#define VXS2(to, from, s)
Definition: vec.h:206

Definition at line 212 of file vec.h.

◆ MXS3

#define MXS3 (   to,
  from,
 
)
Value:
(VXS3((to)[0], (from)[0], s), \
VXS3((to)[1], (from)[1], s), \
VXS3((to)[2], (from)[2], s))
#define VXS3(to, from, s)
Definition: vec.h:402

Definition at line 410 of file vec.h.

◆ MXS4

#define MXS4 (   to,
  from,
 
)
Value:
(VXS4((to)[0], (from)[0], s), \
VXS4((to)[1], (from)[1], s), \
VXS4((to)[2], (from)[2], s), \
VXS4((to)[3], (from)[3], s))
#define VXS4(to, from, s)
Definition: vec.h:657

Definition at line 667 of file vec.h.

◆ MXV2

#define MXV2 (   to,
  m,
 
)
Value:
((to)[0] = DOT2((m)[0], v), \
(to)[1] = DOT2((m)[1], v))

Definition at line 224 of file vec.h.

◆ MXV2d

#define MXV2d (   to,
  m,
 
)    MXV2safe(double,to,m,v)

Definition at line 853 of file vec.h.

◆ MXV2i

#define MXV2i (   to,
  m,
 
)    MXV2safe(int,to,m,v)

Definition at line 854 of file vec.h.

◆ MXV2l

#define MXV2l (   to,
  m,
 
)    MXV2safe(long,to,m,v)

Definition at line 855 of file vec.h.

◆ MXV2r

#define MXV2r (   to,
  m,
 
)    MXV2safe(real,to,m,v)

Definition at line 856 of file vec.h.

◆ MXV2safe

#define MXV2safe (   type,
  to,
  m,
 
)
Value:
do {type _vec_h_temp_[2]; \
MXV2(_vec_h_temp_,m,v); \
SET2(to, _vec_h_temp_); \
} while (0)

Definition at line 848 of file vec.h.

◆ MXV3

#define MXV3 (   to,
  m,
 
)
Value:
((to)[0] = DOT3((m)[0], v), \
(to)[1] = DOT3((m)[1], v), \
(to)[2] = DOT3((m)[2], v))

Definition at line 426 of file vec.h.

◆ MXV3d

#define MXV3d (   to,
  m,
 
)    MXV3safe(double,to,m,v)

Definition at line 935 of file vec.h.

◆ MXV3i

#define MXV3i (   to,
  m,
 
)    MXV3safe(int,to,m,v)

Definition at line 936 of file vec.h.

◆ MXV3l

#define MXV3l (   to,
  m,
 
)    MXV3safe(long,to,m,v)

Definition at line 937 of file vec.h.

◆ MXV3r

#define MXV3r (   to,
  m,
 
)    MXV3safe(real,to,m,v)

Definition at line 938 of file vec.h.

◆ MXV3safe

#define MXV3safe (   type,
  to,
  m,
 
)
Value:
do {type _vec_h_temp_[3]; \
MXV3(_vec_h_temp_,m,v); \
SET3(to, _vec_h_temp_); \
} while (0)

Definition at line 930 of file vec.h.

◆ MXV4

#define MXV4 (   to,
  m,
 
)
Value:
((to)[0] = DOT4((m)[0], v), \
(to)[1] = DOT4((m)[1], v), \
(to)[2] = DOT4((m)[2], v), \
(to)[3] = DOT4((m)[3], v))
#define DOT4(v, w)
Definition: vec.h:742

Definition at line 687 of file vec.h.

◆ MXV4d

#define MXV4d (   to,
  m,
 
)    MXV4safe(double,to,m,v)

Definition at line 1035 of file vec.h.

◆ MXV4i

#define MXV4i (   to,
  m,
 
)    MXV4safe(int,to,m,v)

Definition at line 1036 of file vec.h.

◆ MXV4l

#define MXV4l (   to,
  m,
 
)    MXV4safe(long,to,m,v)

Definition at line 1037 of file vec.h.

◆ MXV4r

#define MXV4r (   to,
  m,
 
)    MXV4safe(real,to,m,v)

Definition at line 1038 of file vec.h.

◆ MXV4safe

#define MXV4safe (   type,
  to,
  m,
 
)
Value:
do {type _vec_h_temp_[4]; \
MXV4(_vec_h_temp_,m,v); \
SET4(to, _vec_h_temp_); \
} while (0)

Definition at line 1030 of file vec.h.

◆ NORMSQRD2

#define NORMSQRD2 (   v)
Value:
((v)[0] * (v)[0] + \
(v)[1] * (v)[1])

Definition at line 260 of file vec.h.

◆ NORMSQRD3

#define NORMSQRD3 (   v)
Value:
((v)[0] * (v)[0] + \
(v)[1] * (v)[1] + \
(v)[2] * (v)[2])

Definition at line 474 of file vec.h.

◆ NORMSQRD4

#define NORMSQRD4 (   v)
Value:
((v)[0] * (v)[0] + \
(v)[1] * (v)[1] + \
(v)[2] * (v)[2] + \
(v)[3] * (v)[3])

Definition at line 747 of file vec.h.

◆ ROUNDMAT2

#define ROUNDMAT2 (   to,
  from 
)
Value:
(ROUNDVEC2((to)[0], (from)[0]), \
ROUNDVEC2((to)[1], (from)[1]))
#define ROUNDVEC2(to, from)
Definition: vec.h:143

Definition at line 146 of file vec.h.

◆ ROUNDMAT3

#define ROUNDMAT3 (   to,
  from 
)
Value:
(ROUNDVEC3((to)[0], (from)[0]), \
ROUNDVEC3((to)[1], (from)[1]), \
ROUNDVEC3((to)[2], (from)[2]))
#define ROUNDVEC3(to, from)
Definition: vec.h:318

Definition at line 322 of file vec.h.

◆ ROUNDMAT4

#define ROUNDMAT4 (   to,
  from 
)
Value:
(ROUNDVEC4((to)[0], (from)[0]), \
ROUNDVEC4((to)[1], (from)[1]), \
ROUNDVEC4((to)[2], (from)[2]), \
ROUNDVEC4((to)[3], (from)[3]))
#define ROUNDVEC4(to, from)
Definition: vec.h:552

Definition at line 557 of file vec.h.

◆ ROUNDVEC2

#define ROUNDVEC2 (   to,
  from 
)
Value:
((to)[0] = floor((from)[0]+.5), \
(to)[1] = floor((from)[1]+.5))

Definition at line 143 of file vec.h.

◆ ROUNDVEC3

#define ROUNDVEC3 (   to,
  from 
)
Value:
((to)[0] = floor((from)[0]+.5), \
(to)[1] = floor((from)[1]+.5), \
(to)[2] = floor((from)[2]+.5))

Definition at line 318 of file vec.h.

◆ ROUNDVEC4

#define ROUNDVEC4 (   to,
  from 
)
Value:
((to)[0] = floor((from)[0]+.5), \
(to)[1] = floor((from)[1]+.5), \
(to)[2] = floor((from)[2]+.5), \
(to)[3] = floor((from)[3]+.5))

Definition at line 552 of file vec.h.

◆ SDIVS1

#define SDIVS1 (   a,
 
)     ((((a)-SMODS1(a,b))/(b)))

Definition at line 295 of file vec.h.

◆ SET2

#define SET2 (   to,
  from 
)
Value:
((to)[0] = (from)[0], \
(to)[1] = (from)[1])

Definition at line 137 of file vec.h.

◆ SET3

#define SET3 (   to,
  from 
)
Value:
((to)[0] = (from)[0], \
(to)[1] = (from)[1], \
(to)[2] = (from)[2])

Definition at line 310 of file vec.h.

◆ SET3from2

#define SET3from2 (   to,
  from,
  pad 
)
Value:
((to)[0] = (from)[0], \
(to)[1] = (from)[1], \
(to)[2] = (pad))

Definition at line 502 of file vec.h.

◆ SET4

#define SET4 (   to,
  from 
)
Value:
((to)[0] = (from)[0], \
(to)[1] = (from)[1], \
(to)[2] = (from)[2], \
(to)[3] = (from)[3])

Definition at line 542 of file vec.h.

◆ SET4from3

#define SET4from3 (   to,
  from,
  pad 
)
Value:
((to)[0] = (from)[0], \
(to)[1] = (from)[1], \
(to)[2] = (from)[2], \
(to)[3] = (pad))

Definition at line 782 of file vec.h.

◆ SETMAT2

#define SETMAT2 (   to,
  from 
)
Value:
(SET2((to)[0], (from)[0]), \
SET2((to)[1], (from)[1]))
#define SET2(to, from)
Definition: vec.h:137

Definition at line 140 of file vec.h.

◆ SETMAT3

#define SETMAT3 (   to,
  from 
)
Value:
(SET3((to)[0], (from)[0]), \
SET3((to)[1], (from)[1]), \
SET3((to)[2], (from)[2]))
#define SET3(to, from)
Definition: vec.h:310

Definition at line 314 of file vec.h.

◆ SETMAT3from2

#define SETMAT3from2 (   to,
  from,
  pad0,
  pad1 
)
Value:
(SET3from2((to)[0], (from)[0], pad0), \
SET3from2((to)[1], (from)[1], pad0), \
FILLVEC2((to)[2], (pad0)), (to)[2][2] = (pad1))
#define SET3from2(to, from, pad)
Definition: vec.h:502

Definition at line 506 of file vec.h.

◆ SETMAT4

#define SETMAT4 (   to,
  from 
)
Value:
(SET4((to)[0], (from)[0]), \
SET4((to)[1], (from)[1]), \
SET4((to)[2], (from)[2]), \
SET4((to)[3], (from)[3]))
#define SET4(to, from)
Definition: vec.h:542

Definition at line 547 of file vec.h.

◆ SETMAT4from3

#define SETMAT4from3 (   to,
  from,
  pad0,
  pad1 
)
Value:
(SET4from3((to)[0], (from)[0], pad0), \
SET4from3((to)[1], (from)[1], pad0), \
SET4from3((to)[2], (from)[2], pad0), \
FILLVEC3((to)[3], (pad0)), (to)[3][3] = (pad1))
#define SET4from3(to, from, pad)
Definition: vec.h:782

Definition at line 787 of file vec.h.

◆ SMAXS1

#define SMAXS1 (   a,
 
)     (((a) > (b) ? (a) : (b)))

Definition at line 299 of file vec.h.

◆ SMINS1

#define SMINS1 (   a,
 
)     (((a) < (b) ? (a) : (b)))

Definition at line 297 of file vec.h.

◆ SMODS1

#define SMODS1 (   a,
 
)     ((((a)%(b)+(b))%(b)))

Definition at line 293 of file vec.h.

◆ SXM2

#define SXM2 (   to,
  s,
  from 
)
Value:
(SXV2((to)[0], s, (from)[0]), \
SXV2((to)[1], s, (from)[1]))
#define SXV2(to, s, from)
Definition: vec.h:194

Definition at line 197 of file vec.h.

◆ SXM3

#define SXM3 (   to,
  s,
  from 
)
Value:
(SXV3((to)[0], s, (from)[0]), \
SXV3((to)[1], s, (from)[1]), \
SXV3((to)[2], s, (from)[2]))
#define SXV3(to, s, from)
Definition: vec.h:386

Definition at line 390 of file vec.h.

◆ SXM4

#define SXM4 (   to,
  s,
  from 
)
Value:
(SXV4((to)[0], s, (from)[0]), \
SXV4((to)[1], s, (from)[1]), \
SXV4((to)[2], s, (from)[2]), \
SXV4((to)[3], s, (from)[3]))
#define SXV4(to, s, from)
Definition: vec.h:637

Definition at line 642 of file vec.h.

◆ SXV2

#define SXV2 (   to,
  s,
  from 
)
Value:
((to)[0] = (s) * (from)[0], \
(to)[1] = (s) * (from)[1])

Definition at line 194 of file vec.h.

◆ SXV3

#define SXV3 (   to,
  s,
  from 
)
Value:
((to)[0] = (s) * (from)[0], \
(to)[1] = (s) * (from)[1], \
(to)[2] = (s) * (from)[2])

Definition at line 386 of file vec.h.

◆ SXV4

#define SXV4 (   to,
  s,
  from 
)
Value:
((to)[0] = (s) * (from)[0], \
(to)[1] = (s) * (from)[1], \
(to)[2] = (s) * (from)[2], \
(to)[3] = (s) * (from)[3])

Definition at line 637 of file vec.h.

◆ TRACE2

#define TRACE2 (   m)
Value:
((m)[0][0] + \
(m)[1][1])

Definition at line 254 of file vec.h.

◆ TRACE3

#define TRACE3 (   m)
Value:
((m)[0][0] + \
(m)[1][1] + \
(m)[2][2])

Definition at line 466 of file vec.h.

◆ TRACE4

#define TRACE4 (   m)
Value:
((m)[0][0] + \
(m)[1][1] + \
(m)[2][2] + \
(m)[3][3])

Definition at line 737 of file vec.h.

◆ TRANSPOSE2

#define TRANSPOSE2 (   to,
  from 
)
Value:
(_SETcol2((to)[0], from, 0), \
_SETcol2((to)[1], from, 1))
#define _SETcol2(v, m, j)
Definition: vec.h:269

Definition at line 173 of file vec.h.

◆ TRANSPOSE2d

#define TRANSPOSE2d (   to,
  from 
)    TRANSPOSE2safe(double,to,from)

Definition at line 826 of file vec.h.

◆ TRANSPOSE2i

#define TRANSPOSE2i (   to,
  from 
)    TRANSPOSE2safe(int,to,from)

Definition at line 827 of file vec.h.

◆ TRANSPOSE2l

#define TRANSPOSE2l (   to,
  from 
)    TRANSPOSE2safe(long,to,from)

Definition at line 828 of file vec.h.

◆ TRANSPOSE2r

#define TRANSPOSE2r (   to,
  from 
)    TRANSPOSE2safe(real,to,from)

Definition at line 829 of file vec.h.

◆ TRANSPOSE2safe

#define TRANSPOSE2safe (   type,
  to,
  from 
)
Value:
do {type _vec_h_temp_[2][2]; \
TRANSPOSE2(_vec_h_temp_,from); \
SETMAT2(to, _vec_h_temp_); \
} while (0)

Definition at line 821 of file vec.h.

◆ TRANSPOSE3

#define TRANSPOSE3 (   to,
  from 
)
Value:
(_SETcol3((to)[0], from, 0), \
_SETcol3((to)[1], from, 1), \
_SETcol3((to)[2], from, 2))
#define _SETcol3(v, m, j)
Definition: vec.h:486

Definition at line 358 of file vec.h.

◆ TRANSPOSE3d

#define TRANSPOSE3d (   to,
  from 
)    TRANSPOSE3safe(double,to,from)

Definition at line 908 of file vec.h.

◆ TRANSPOSE3i

#define TRANSPOSE3i (   to,
  from 
)    TRANSPOSE3safe(int,to,from)

Definition at line 909 of file vec.h.

◆ TRANSPOSE3l

#define TRANSPOSE3l (   to,
  from 
)    TRANSPOSE3safe(long,to,from)

Definition at line 910 of file vec.h.

◆ TRANSPOSE3r

#define TRANSPOSE3r (   to,
  from 
)    TRANSPOSE3safe(real,to,from)

Definition at line 911 of file vec.h.

◆ TRANSPOSE3safe

#define TRANSPOSE3safe (   type,
  to,
  from 
)
Value:
do {type _vec_h_temp_[3][3]; \
TRANSPOSE3(_vec_h_temp_,from); \
SETMAT3(to, _vec_h_temp_); \
} while (0)

Definition at line 903 of file vec.h.

◆ TRANSPOSE4

#define TRANSPOSE4 (   to,
  from 
)
Value:
(_SETcol4((to)[0], from, 0), \
_SETcol4((to)[1], from, 1), \
_SETcol4((to)[2], from, 2), \
_SETcol4((to)[3], from, 3))
#define _SETcol4(v, m, j)
Definition: vec.h:762

Definition at line 602 of file vec.h.

◆ TRANSPOSE4d

#define TRANSPOSE4d (   to,
  from 
)    TRANSPOSE4safe(double,to,from)

Definition at line 1008 of file vec.h.

◆ TRANSPOSE4i

#define TRANSPOSE4i (   to,
  from 
)    TRANSPOSE4safe(int,to,from)

Definition at line 1009 of file vec.h.

◆ TRANSPOSE4l

#define TRANSPOSE4l (   to,
  from 
)    TRANSPOSE4safe(long,to,from)

Definition at line 1010 of file vec.h.

◆ TRANSPOSE4r

#define TRANSPOSE4r (   to,
  from 
)    TRANSPOSE4safe(real,to,from)

Definition at line 1011 of file vec.h.

◆ TRANSPOSE4safe

#define TRANSPOSE4safe (   type,
  to,
  from 
)
Value:
do {type _vec_h_temp_[4][4]; \
TRANSPOSE4(_vec_h_temp_,from); \
SETMAT4(to, _vec_h_temp_); \
} while (0)

Definition at line 1003 of file vec.h.

◆ V2XM3

#define V2XM3 (   to2,
  v2,
  m3 
)
Value:
((to2)[0] = _DOTcol2(v2,m3,0) + (m3)[2][0], \
(to2)[1] = _DOTcol2(v2,m3,1) + (m3)[2][1])

Definition at line 281 of file vec.h.

◆ V2XM3d

#define V2XM3d (   to2,
  v2,
  m3 
)    V2XM3safe(double,to2,v2,m3)

Definition at line 871 of file vec.h.

◆ V2XM3i

#define V2XM3i (   to2,
  v2,
  m3 
)    V2XM3safe(int,to2,v2,m3)

Definition at line 872 of file vec.h.

◆ V2XM3l

#define V2XM3l (   to2,
  v2,
  m3 
)    V2XM3safe(long,to2,v2,m3)

Definition at line 873 of file vec.h.

◆ V2XM3r

#define V2XM3r (   to2,
  v2,
  m3 
)    V2XM3safe(real,to2,v2,m3)

Definition at line 874 of file vec.h.

◆ V2XM3safe

#define V2XM3safe (   type,
  to2,
  v2,
  m3 
)
Value:
do {type _vec_h_temp_[2]; \
V2XM3(_vec_h_temp_,v2,m3); \
SET2(to2, _vec_h_temp_); \
} while (0)

Definition at line 866 of file vec.h.

◆ V3XM4

#define V3XM4 (   to3,
  v3,
  m4 
)
Value:
((to3)[0] = _DOTcol3(v3,m4,0) + (m4)[3][0], \
(to3)[1] = _DOTcol3(v3,m4,1) + (m4)[3][1], \
(to3)[2] = _DOTcol3(v3,m4,2) + (m4)[3][2])

Definition at line 518 of file vec.h.

◆ V3XM4d

#define V3XM4d (   to3,
  v3,
  m4 
)    V3XM4safe(double,to3,v3,m4)

Definition at line 971 of file vec.h.

◆ V3XM4i

#define V3XM4i (   to3,
  v3,
  m4 
)    V3XM4safe(int,to3,v3,m4)

Definition at line 972 of file vec.h.

◆ V3XM4l

#define V3XM4l (   to3,
  v3,
  m4 
)    V3XM4safe(long,to3,v3,m4)

Definition at line 973 of file vec.h.

◆ V3XM4r

#define V3XM4r (   to3,
  v3,
  m4 
)    V3XM4safe(real,to3,v3,m4)

Definition at line 974 of file vec.h.

◆ V3XM4safe

#define V3XM4safe (   type,
  to3,
  v3,
  m4 
)
Value:
do {type _vec_h_temp_[3]; \
V3XM4(_vec_h_temp_,v3,m4); \
SET3(to3, _vec_h_temp_); \
} while (0)

Definition at line 966 of file vec.h.

◆ VDIVS2

#define VDIVS2 (   to,
  v,
 
)
Value:
((to)[0] = SDIVS1((v)[0], s), \
(to)[1] = SDIVS1((v)[1], s))
#define SDIVS1(a, b)
Definition: vec.h:295

Definition at line 233 of file vec.h.

◆ VDIVS3

#define VDIVS3 (   to,
  v,
 
)
Value:
((to)[0] = SDIVS1((v)[0], s), \
(to)[1] = SDIVS1((v)[1], s), \
(to)[2] = SDIVS1((v)[2], s))

Definition at line 438 of file vec.h.

◆ VDIVS4

#define VDIVS4 (   to,
  v,
 
)
Value:
((to)[0] = SDIVS1((v)[0], s), \
(to)[1] = SDIVS1((v)[1], s), \
(to)[2] = SDIVS1((v)[2], s), \
(to)[3] = SDIVS1((v)[3], s))

Definition at line 702 of file vec.h.

◆ VDIVV2

#define VDIVV2 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SDIVS1((v0)[0], (v1)[0]), \
(to)[1] = SDIVS1((v0)[1], (v1)[1]))

Definition at line 236 of file vec.h.

◆ VDIVV3

#define VDIVV3 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SDIVS1((v0)[0], (v1)[0]), \
(to)[1] = SDIVS1((v0)[1], (v1)[1]), \
(to)[2] = SDIVS1((v0)[2], (v1)[2]))

Definition at line 442 of file vec.h.

◆ VDIVV4

#define VDIVV4 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SDIVS1((v0)[0], (v1)[0]), \
(to)[1] = SDIVS1((v0)[1], (v1)[1]), \
(to)[2] = SDIVS1((v0)[2], (v1)[2]), \
(to)[3] = SDIVS1((v0)[3], (v1)[3]))

Definition at line 707 of file vec.h.

◆ VDS2

#define VDS2 (   to,
  from,
 
)
Value:
((to)[0] = (from)[0] / (s), \
(to)[1] = (from)[1] / (s))

Definition at line 209 of file vec.h.

◆ VDS3

#define VDS3 (   to,
  from,
 
)
Value:
((to)[0] = (from)[0] / (s), \
(to)[1] = (from)[1] / (s), \
(to)[2] = (from)[2] / (s))

Definition at line 406 of file vec.h.

◆ VDS4

#define VDS4 (   to,
  from,
 
)
Value:
((to)[0] = (from)[0] / (s), \
(to)[1] = (from)[1] / (s), \
(to)[2] = (from)[2] / (s), \
(to)[3] = (from)[3] / (s))

Definition at line 662 of file vec.h.

◆ VEC_H

#define VEC_H   4

Definition at line 132 of file vec.h.

◆ VMAXS2

#define VMAXS2 (   to,
  v,
 
)
Value:
((to)[0] = SMAXS1((v)[0], s), \
(to)[1] = SMAXS1((v)[1], s))
#define SMAXS1(a, b)
Definition: vec.h:299

Definition at line 245 of file vec.h.

◆ VMAXS3

#define VMAXS3 (   to,
  v,
 
)
Value:
((to)[0] = SMAXS1((v)[0], s), \
(to)[1] = SMAXS1((v)[1], s), \
(to)[2] = SMAXS1((v)[2], s))

Definition at line 454 of file vec.h.

◆ VMAXS4

#define VMAXS4 (   to,
  v,
 
)
Value:
((to)[0] = SMAXS1((v)[0], s), \
(to)[1] = SMAXS1((v)[1], s), \
(to)[2] = SMAXS1((v)[2], s), \
(to)[3] = SMAXS1((v)[3], s))

Definition at line 722 of file vec.h.

◆ VMAXV2

#define VMAXV2 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMAXS1((v0)[0], (v1)[0]), \
(to)[1] = SMAXS1((v0)[1], (v1)[1]))

Definition at line 248 of file vec.h.

◆ VMAXV3

#define VMAXV3 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMAXS1((v0)[0], (v1)[0]), \
(to)[1] = SMAXS1((v0)[1], (v1)[1]), \
(to)[2] = SMAXS1((v0)[2], (v1)[2]))

Definition at line 458 of file vec.h.

◆ VMAXV4

#define VMAXV4 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMAXS1((v0)[0], (v1)[0]), \
(to)[1] = SMAXS1((v0)[1], (v1)[1]), \
(to)[2] = SMAXS1((v0)[2], (v1)[2]), \
(to)[3] = SMAXS1((v0)[3], (v1)[3]))

Definition at line 727 of file vec.h.

◆ VMINS2

#define VMINS2 (   to,
  v,
 
)
Value:
((to)[0] = SMINS1((v)[0], s), \
(to)[1] = SMINS1((v)[1], s))
#define SMINS1(a, b)
Definition: vec.h:297

Definition at line 239 of file vec.h.

◆ VMINS3

#define VMINS3 (   to,
  v,
 
)
Value:
((to)[0] = SMINS1((v)[0], s), \
(to)[1] = SMINS1((v)[1], s), \
(to)[2] = SMINS1((v)[2], s))

Definition at line 446 of file vec.h.

◆ VMINS4

#define VMINS4 (   to,
  v,
 
)
Value:
((to)[0] = SMINS1((v)[0], s), \
(to)[1] = SMINS1((v)[1], s), \
(to)[2] = SMINS1((v)[2], s), \
(to)[3] = SMINS1((v)[3], s))

Definition at line 712 of file vec.h.

◆ VMINV2

#define VMINV2 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMINS1((v0)[0], (v1)[0]), \
(to)[1] = SMINS1((v0)[1], (v1)[1]))

Definition at line 242 of file vec.h.

◆ VMINV3

#define VMINV3 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMINS1((v0)[0], (v1)[0]), \
(to)[1] = SMINS1((v0)[1], (v1)[1]), \
(to)[2] = SMINS1((v0)[2], (v1)[2]))

Definition at line 450 of file vec.h.

◆ VMINV4

#define VMINV4 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMINS1((v0)[0], (v1)[0]), \
(to)[1] = SMINS1((v0)[1], (v1)[1]), \
(to)[2] = SMINS1((v0)[2], (v1)[2]), \
(to)[3] = SMINS1((v0)[3], (v1)[3]))

Definition at line 717 of file vec.h.

◆ VMODS2

#define VMODS2 (   to,
  v,
 
)
Value:
((to)[0] = SMODS1((v)[0], s), \
(to)[1] = SMODS1((v)[1], s))
#define SMODS1(a, b)
Definition: vec.h:293

Definition at line 227 of file vec.h.

◆ VMODS3

#define VMODS3 (   to,
  v,
 
)
Value:
((to)[0] = SMODS1((v)[0], s), \
(to)[1] = SMODS1((v)[1], s), \
(to)[2] = SMODS1((v)[2], s))

Definition at line 430 of file vec.h.

◆ VMODS4

#define VMODS4 (   to,
  v,
 
)
Value:
((to)[0] = SMODS1((v)[0], s), \
(to)[1] = SMODS1((v)[1], s), \
(to)[2] = SMODS1((v)[2], s), \
(to)[3] = SMODS1((v)[3], s))

Definition at line 692 of file vec.h.

◆ VMODV2

#define VMODV2 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMODS1((v0)[0], (v1)[0]), \
(to)[1] = SMODS1((v0)[1], (v1)[1]))

Definition at line 230 of file vec.h.

◆ VMODV3

#define VMODV3 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMODS1((v0)[0], (v1)[0]), \
(to)[1] = SMODS1((v0)[1], (v1)[1]), \
(to)[2] = SMODS1((v0)[2], (v1)[2]))

Definition at line 434 of file vec.h.

◆ VMODV4

#define VMODV4 (   to,
  v0,
  v1 
)
Value:
((to)[0] = SMODS1((v0)[0], (v1)[0]), \
(to)[1] = SMODS1((v0)[1], (v1)[1]), \
(to)[2] = SMODS1((v0)[2], (v1)[2]), \
(to)[3] = SMODS1((v0)[3], (v1)[3]))

Definition at line 697 of file vec.h.

◆ VMV2

#define VMV2 (   to,
  v,
 
)
Value:
((to)[0] = (v)[0] - (w)[0], \
(to)[1] = (v)[1] - (w)[1])

Definition at line 185 of file vec.h.

◆ VMV3

#define VMV3 (   to,
  v,
 
)
Value:
((to)[0] = (v)[0] - (w)[0], \
(to)[1] = (v)[1] - (w)[1], \
(to)[2] = (v)[2] - (w)[2])

Definition at line 374 of file vec.h.

◆ VMV4

#define VMV4 (   to,
  v,
 
)
Value:
((to)[0] = (v)[0] - (w)[0], \
(to)[1] = (v)[1] - (w)[1], \
(to)[2] = (v)[2] - (w)[2], \
(to)[3] = (v)[3] - (w)[3])

Definition at line 622 of file vec.h.

◆ VPSXV2

#define VPSXV2 (   to,
  v,
  s,
 
)
Value:
((to)[0] = (v)[0] + (s) * (w)[0], \
(to)[1] = (v)[1] + (s) * (w)[1])

Definition at line 176 of file vec.h.

◆ VPSXV3

#define VPSXV3 (   to,
  v,
  s,
 
)
Value:
((to)[0] = (v)[0] + (s) * (w)[0], \
(to)[1] = (v)[1] + (s) * (w)[1], \
(to)[2] = (v)[2] + (s) * (w)[2])

Definition at line 362 of file vec.h.

◆ VPSXV4

#define VPSXV4 (   to,
  v,
  s,
 
)
Value:
((to)[0] = (v)[0] + (s) * (w)[0], \
(to)[1] = (v)[1] + (s) * (w)[1], \
(to)[2] = (v)[2] + (s) * (w)[2], \
(to)[3] = (v)[3] + (s) * (w)[3])

Definition at line 607 of file vec.h.

◆ VPV2

#define VPV2 (   to,
  v,
 
)
Value:
((to)[0] = (v)[0] + (w)[0], \
(to)[1] = (v)[1] + (w)[1])

Definition at line 182 of file vec.h.

◆ VPV3

#define VPV3 (   to,
  v,
 
)
Value:
((to)[0] = (v)[0] + (w)[0], \
(to)[1] = (v)[1] + (w)[1], \
(to)[2] = (v)[2] + (w)[2])

Definition at line 370 of file vec.h.

◆ VPV4

#define VPV4 (   to,
  v,
 
)
Value:
((to)[0] = (v)[0] + (w)[0], \
(to)[1] = (v)[1] + (w)[1], \
(to)[2] = (v)[2] + (w)[2], \
(to)[3] = (v)[3] + (w)[3])

Definition at line 617 of file vec.h.

◆ VPVXS2

#define VPVXS2 (   to,
  v,
  w,
 
)
Value:
((to)[0] = (v)[0] + (w)[0] * (s), \
(to)[1] = (v)[1] + (w)[1] * (s))

Definition at line 179 of file vec.h.

◆ VPVXS3

#define VPVXS3 (   to,
  v,
  w,
 
)
Value:
((to)[0] = (v)[0] + (w)[0] * (s), \
(to)[1] = (v)[1] + (w)[1] * (s), \
(to)[2] = (v)[2] + (w)[2] * (s))

Definition at line 366 of file vec.h.

◆ VPVXS4

#define VPVXS4 (   to,
  v,
  w,
 
)
Value:
((to)[0] = (v)[0] + (w)[0] * (s), \
(to)[1] = (v)[1] + (w)[1] * (s), \
(to)[2] = (v)[2] + (w)[2] * (s), \
(to)[3] = (v)[3] + (w)[3] * (s))

Definition at line 612 of file vec.h.

◆ VXM2

#define VXM2 (   to,
  v,
 
)
Value:
((to)[0] = _DOTcol2(v, m, 0), \
(to)[1] = _DOTcol2(v, m, 1))

Definition at line 221 of file vec.h.

◆ VXM2d

#define VXM2d (   to,
  v,
 
)    VXM2safe(double,to,v,m)

Definition at line 844 of file vec.h.

◆ VXM2i

#define VXM2i (   to,
  v,
 
)    VXM2safe(int,to,v,m)

Definition at line 845 of file vec.h.

◆ VXM2l

#define VXM2l (   to,
  v,
 
)    VXM2safe(long,to,v,m)

Definition at line 846 of file vec.h.

◆ VXM2r

#define VXM2r (   to,
  v,
 
)    VXM2safe(real,to,v,m)

Definition at line 847 of file vec.h.

◆ VXM2safe

#define VXM2safe (   type,
  to,
  v,
 
)
Value:
do {type _vec_h_temp_[2]; \
VXM2(_vec_h_temp_,v,m); \
SET2(to, _vec_h_temp_); \
} while (0)

Definition at line 839 of file vec.h.

◆ VXM3

#define VXM3 (   to,
  v,
 
)
Value:
((to)[0] = _DOTcol3(v, m, 0), \
(to)[1] = _DOTcol3(v, m, 1), \
(to)[2] = _DOTcol3(v, m, 2))

Definition at line 422 of file vec.h.

◆ VXM3d

#define VXM3d (   to,
  v,
 
)    VXM3safe(double,to,v,m)

Definition at line 926 of file vec.h.

◆ VXM3i

#define VXM3i (   to,
  v,
 
)    VXM3safe(int,to,v,m)

Definition at line 927 of file vec.h.

◆ VXM3l

#define VXM3l (   to,
  v,
 
)    VXM3safe(long,to,v,m)

Definition at line 928 of file vec.h.

◆ VXM3r

#define VXM3r (   to,
  v,
 
)    VXM3safe(real,to,v,m)

Definition at line 929 of file vec.h.

◆ VXM3safe

#define VXM3safe (   type,
  to,
  v,
 
)
Value:
do {type _vec_h_temp_[3]; \
VXM3(_vec_h_temp_,v,m); \
SET3(to, _vec_h_temp_); \
} while (0)

Definition at line 921 of file vec.h.

◆ VXM4

#define VXM4 (   to,
  v,
 
)
Value:
((to)[0] = _DOTcol4(v, m, 0), \
(to)[1] = _DOTcol4(v, m, 1), \
(to)[2] = _DOTcol4(v, m, 2), \
(to)[3] = _DOTcol4(v, m, 3))

Definition at line 682 of file vec.h.

◆ VXM4d

#define VXM4d (   to,
  v,
 
)    VXM4safe(double,to,v,m)

Definition at line 1026 of file vec.h.

◆ VXM4i

#define VXM4i (   to,
  v,
 
)    VXM4safe(int,to,v,m)

Definition at line 1027 of file vec.h.

◆ VXM4l

#define VXM4l (   to,
  v,
 
)    VXM4safe(long,to,v,m)

Definition at line 1028 of file vec.h.

◆ VXM4r

#define VXM4r (   to,
  v,
 
)    VXM4safe(real,to,v,m)

Definition at line 1029 of file vec.h.

◆ VXM4safe

#define VXM4safe (   type,
  to,
  v,
 
)
Value:
do {type _vec_h_temp_[4]; \
VXM4(_vec_h_temp_,v,m); \
SET4(to, _vec_h_temp_); \
} while (0)

Definition at line 1021 of file vec.h.

◆ VXS2

#define VXS2 (   to,
  from,
 
)
Value:
((to)[0] = (from)[0] * (s), \
(to)[1] = (from)[1] * (s))

Definition at line 206 of file vec.h.

◆ VXS3

#define VXS3 (   to,
  from,
 
)
Value:
((to)[0] = (from)[0] * (s), \
(to)[1] = (from)[1] * (s), \
(to)[2] = (from)[2] * (s))

Definition at line 402 of file vec.h.

◆ VXS4

#define VXS4 (   to,
  from,
 
)
Value:
((to)[0] = (from)[0] * (s), \
(to)[1] = (from)[1] * (s), \
(to)[2] = (from)[2] * (s), \
(to)[3] = (from)[3] * (s))

Definition at line 657 of file vec.h.

◆ VXV2

#define VXV2 (   v0,
  v1 
)     (_DET2(v0,v1,0,1))

Definition at line 289 of file vec.h.

◆ VXV3

#define VXV3 (   to,
  v1,
  v2 
)
Value:
((to)[0] = _DET2(v1,v2, 1,2), \
(to)[1] = -_DET2(v1,v2, 0,2), \
(to)[2] = _DET2(v1,v2, 0,1))

Definition at line 498 of file vec.h.

◆ VXV3d

#define VXV3d (   to,
  v1,
  v2 
)    VXV3safe(double,to,v1,v2)

Definition at line 944 of file vec.h.

◆ VXV3i

#define VXV3i (   to,
  v1,
  v2 
)    VXV3safe(int,to,v1,v2)

Definition at line 945 of file vec.h.

◆ VXV3l

#define VXV3l (   to,
  v1,
  v2 
)    VXV3safe(long,to,v1,v2)

Definition at line 946 of file vec.h.

◆ VXV3r

#define VXV3r (   to,
  v1,
  v2 
)    VXV3safe(real,to,v1,v2)

Definition at line 947 of file vec.h.

◆ VXV3safe

#define VXV3safe (   type,
  to,
  v1,
  v2 
)
Value:
do {type _vec_h_temp_[3]; \
VXV3(_vec_h_temp_,v1,v2); \
SET3(to, _vec_h_temp_); \
} while (0)

Definition at line 939 of file vec.h.

◆ VXVXV3

#define VXVXV3 (   v0,
  v1,
  v2 
)     (_DET3(v0,v1,v2,0,1,2))

Definition at line 526 of file vec.h.

◆ VXVXV4

#define VXVXV4 (   to,
  v1,
  v2,
  v3 
)
Value:
((to)[0] = -_DET3(v1,v2,v3, 1,2,3), \
(to)[1] = _DET3(v1,v2,v3, 0,2,3), \
(to)[2] = -_DET3(v1,v2,v3, 0,1,3), \
(to)[3] = _DET3(v1,v2,v3, 0,1,2))

Definition at line 777 of file vec.h.

◆ VXVXV4d

#define VXVXV4d (   to,
  v1,
  v2,
  v3 
)    VXVXV4safe(double,to,v1,v2,v3)

Definition at line 1044 of file vec.h.

◆ VXVXV4i

#define VXVXV4i (   to,
  v1,
  v2,
  v3 
)    VXVXV4safe(int,to,v1,v2,v3)

Definition at line 1045 of file vec.h.

◆ VXVXV4l

#define VXVXV4l (   to,
  v1,
  v2,
  v3 
)    VXVXV4safe(long,to,v1,v2,v3)

Definition at line 1046 of file vec.h.

◆ VXVXV4r

#define VXVXV4r (   to,
  v1,
  v2,
  v3 
)    VXVXV4safe(real,to,v1,v2,v3)

Definition at line 1047 of file vec.h.

◆ VXVXV4safe

#define VXVXV4safe (   type,
  to,
  v1,
  v2,
  v3 
)
Value:
do {type _vec_h_temp_[4]; \
VXVXV4(_vec_h_temp_,v1,v2,v3); \
SET4(to, _vec_h_temp_); \
} while (0)

Definition at line 1039 of file vec.h.

◆ VXVXVXV4

#define VXVXVXV4 (   v0,
  v1,
  v2,
  v3 
)     (_DET4(v0,v1,v2,v3,0,1,2,3))

Definition at line 802 of file vec.h.

◆ XV2

#define XV2 (   to,
  v1 
)
Value:
((to)[0] = -_DET1(v1, 1), \
(to)[1] = _DET1(v1, 0))

Definition at line 278 of file vec.h.

◆ XV2d

#define XV2d (   to,
  v1 
)    XV2safe(double,to,v1)

Definition at line 862 of file vec.h.

◆ XV2i

#define XV2i (   to,
  v1 
)    XV2safe(int,to,v1)

Definition at line 863 of file vec.h.

◆ XV2l

#define XV2l (   to,
  v1 
)    XV2safe(long,to,v1)

Definition at line 864 of file vec.h.

◆ XV2r

#define XV2r (   to,
  v1 
)    XV2safe(real,to,v1)

Definition at line 865 of file vec.h.

◆ XV2safe

#define XV2safe (   type,
  to,
  v1 
)
Value:
do {type _vec_h_temp_[2]; \
XV2(_vec_h_temp_,v1); \
SET2(to, _vec_h_temp_); \
} while (0)

Definition at line 857 of file vec.h.

◆ ZEROMAT2

#define ZEROMAT2 (   m)
Value:
(ZEROVEC2((m)[0]), \
ZEROVEC2((m)[1]))

Definition at line 167 of file vec.h.

◆ ZEROMAT3

#define ZEROMAT3 (   m)
Value:
(ZEROVEC3((m)[0]), \
ZEROVEC3((m)[1]), \
ZEROVEC3((m)[2]))

Definition at line 350 of file vec.h.

◆ ZEROMAT4

#define ZEROMAT4 (   m)
Value:
(ZEROVEC4((m)[0]), \
ZEROVEC4((m)[1]), \
ZEROVEC4((m)[2]), \
ZEROVEC4((m)[3]))

Definition at line 592 of file vec.h.

◆ ZEROVEC2

#define ZEROVEC2 (   v)
Value:
((v)[0] = 0, \
(v)[1] = 0)

Definition at line 155 of file vec.h.

◆ ZEROVEC3

#define ZEROVEC3 (   v)
Value:
((v)[0] = 0, \
(v)[1] = 0, \
(v)[2] = 0)

Definition at line 334 of file vec.h.

◆ ZEROVEC4

#define ZEROVEC4 (   v)
Value:
((v)[0] = 0, \
(v)[1] = 0, \
(v)[2] = 0, \
(v)[3] = 0)

Definition at line 572 of file vec.h.