Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

vecmat.h File Reference

#include <math.h>

Go to the source code of this file.


Data Structures

struct  THD_dfvec3
struct  THD_dmat33
struct  THD_dvecmat
struct  THD_fvec3
struct  THD_ivec3
struct  THD_mat33
struct  THD_vecmat

Defines

#define LOAD_IVEC3(iv, i, j, k)
#define UNLOAD_IVEC3(iv, i, j, k)
#define LOAD_FVEC3(fv, x, y, z)
#define UNLOAD_FVEC3(fv, x, y, z)
#define TEMP_IVEC3(i, j, k)
#define TEMP_FVEC3(x, y, z)
#define DUMP_IVEC3(str, iv)   fprintf(stderr,"%s: %d %d %d\n",(str),(iv).ijk[0],(iv).ijk[1],(iv).ijk[2])
#define DUMP_FVEC3(str, fv)   fprintf(stderr,"%s: %13.6g %13.6g %13.6g\n",(str),(fv).xyz[0],(fv).xyz[1],(fv).xyz[2])
#define DUMP_MAT33(str, A)
#define DUMP_VECMAT(str, vvmm)   ( DUMP_MAT33(str,vvmm.mm) , DUMP_FVEC3(str,vvmm.vv) )
#define NEGATE_FVEC3(a)
#define SUB_FVEC3(a, b)
#define ADD_FVEC3(a, b)
#define NORMALIZE_FVEC3(a)
#define CROSS_FVEC3(a, b)
#define SIZE_FVEC3(a)   sqrt((a).xyz[0]*(a).xyz[0]+(a).xyz[1]*(a).xyz[1]+(a).xyz[2]*(a).xyz[2])
#define DOT_FVEC3(a, b)   ((a).xyz[0]*(b).xyz[0] + (a).xyz[1]*(b).xyz[1] + (a).xyz[2]*(b).xyz[2])
#define SCLADD_FVEC3(fa, a, fb, b)
#define INT_FVEC3(a)
#define SIZE_MAT(A)
#define MATVEC(A, x)
#define VECSUB_MAT(A, x, b)
#define MATVEC_SUB(A, x, b)
#define MATVEC_ADD(A, x, b)
#define ROW_DOT_COL(A, B, i, j)
#define MAT_MUL(A, B)
#define MAT_SCALAR(A, c)
#define MAT_DET(A)
#define MAT_FNORM(A)
#define MAT_TRACE(A)   ( (A).mat[0][0] + (A).mat[1][1] + (A).mat[2][2] )
#define MAT_INV(A)
#define LOAD_MAT(A, a11, a12, a13, a21, a22, a23, a31, a32, a33)
#define UNLOAD_MAT(A, a11, a12, a13, a21, a22, a23, a31, a32, a33)
#define LOAD_DIAG_MAT(A, x, y, z)
#define LOAD_ZERO_MAT(A)   LOAD_DIAG_MAT((A),0,0,0)
#define LOAD_ROTGEN_MAT(A, th, ff, aa, bb)
#define LOAD_ROTX_MAT(A, th)   LOAD_ROTGEN_MAT(A,th,0,1,2)
#define LOAD_ROTY_MAT(A, th)   LOAD_ROTGEN_MAT(A,th,1,2,0)
#define LOAD_ROTZ_MAT(A, th)   LOAD_ROTGEN_MAT(A,th,2,0,1)
#define LOAD_ROT_MAT(A, th, i)
#define LOAD_SHEARX_MAT(A, f, b, c)
#define LOAD_SHEARY_MAT(A, f, a, c)
#define LOAD_SHEARZ_MAT(A, f, a, b)
#define TRANSPOSE_MAT(A)
#define ADD_MAT(A, B)
#define SUB_MAT(A, B)
#define MAX_FVEC3(a, b)
#define MIN_FVEC3(a, b)
#define LOAD_DFVEC3(fv, x, y, z)
#define UNLOAD_DFVEC3(fv, x, y, z)
#define DFVEC3_TO_FVEC3(dv, fv)   LOAD_FVEC3(fv,dv.xyz[0],dv.xyz[1],dv.xyz[2])
#define FVEC3_TO_DFVEC3(fv, dv)   LOAD_DFVEC3(dv,fv.xyz[0],fv.xyz[1],fv.xyz[2])
#define TEMP_DFVEC3(x, y, z)
#define DUMP_DFVEC3(str, fv)   fprintf(stderr,"%s: %13.6g %13.6g %13.6g\n",(str),(fv).xyz[0],(fv).xyz[1],(fv).xyz[2])
#define DUMP_DMAT33(str, A)
#define DUMP_DVECMAT(str, vvmm)   ( DUMP_DMAT33(str,vvmm.mm) , DUMP_DFVEC3(str,vvmm.vv) )
#define DMAT_TO_MAT(D, M)
#define NEGATE_DFVEC3(a)
#define SUB_DFVEC3(a, b)
#define ADD_DFVEC3(a, b)
#define NORMALIZE_DFVEC3(a)
#define CROSS_DFVEC3(a, b)
#define SIZE_DFVEC3(a)   sqrt((a).xyz[0]*(a).xyz[0]+(a).xyz[1]*(a).xyz[1]+(a).xyz[2]*(a).xyz[2])
#define DOT_DFVEC3(a, b)   ((a).xyz[0]*(b).xyz[0] + (a).xyz[1]*(b).xyz[1] + (a).xyz[2]*(b).xyz[2])
#define SCLADD_DFVEC3(fa, a, fb, b)
#define INT_DFVEC3(a)
#define SIZE_DMAT(A)
#define DMATVEC(A, x)
#define VECSUB_DMAT(A, x, b)
#define DMATVEC_SUB(A, x, b)
#define DMATVEC_ADD(A, x, b)
#define ROW_DOT_COL(A, B, i, j)
#define DMAT_MUL(A, B)
#define DMAT_SCALAR(A, c)
#define DMAT_DET(A)
#define DMAT_TRACE(A)   ( (A).mat[0][0] + (A).mat[1][1] + (A).mat[2][2] )
#define DMAT_INV(A)
#define LOAD_DMAT(A, a11, a12, a13, a21, a22, a23, a31, a32, a33)
#define UNLOAD_DMAT(A, a11, a12, a13, a21, a22, a23, a31, a32, a33)
#define LOAD_DIAG_DMAT(A, x, y, z)
#define LOAD_ZERO_DMAT(A)   LOAD_DIAG_DMAT((A),0,0,0)
#define LOAD_ROTGEN_DMAT(A, th, ff, aa, bb)
#define LOAD_ROTX_DMAT(A, th)   LOAD_ROTGEN_DMAT(A,th,0,1,2)
#define LOAD_ROTY_DMAT(A, th)   LOAD_ROTGEN_DMAT(A,th,1,2,0)
#define LOAD_ROTZ_DMAT(A, th)   LOAD_ROTGEN_DMAT(A,th,2,0,1)
#define LOAD_ROT_DMAT(A, th, i)
#define LOAD_SHEARX_DMAT(A, f, b, c)
#define LOAD_SHEARY_DMAT(A, f, a, c)
#define LOAD_SHEARZ_DMAT(A, f, a, b)
#define TRANSPOSE_DMAT(A)
#define ADD_DMAT(A, B)
#define SUB_DMAT(A, B)
#define MAX_DFVEC3(a, b)
#define MIN_DFVEC3(a, b)
#define MUL_DVECMAT(A, B)
#define INV_DVECMAT(A)
#define MUL_VECMAT(A, B)
#define INV_VECMAT(A)
#define VECMAT_VEC(A, x)   MATVEC_ADD( (A).mm , (x) , (A).vv )
#define DVECMAT_VEC(A, x)   DMATVEC_ADD( (A).mm , (x) , (A).vv )

Variables

THD_ivec3 tempA_ivec3
THD_ivec3 tempB_ivec3
THD_fvec3 tempA_fvec3
THD_fvec3 tempB_fvec3
THD_mat33 tempA_mat33
THD_mat33 tempB_mat33
float tempRWC
THD_dfvec3 tempA_dfvec3
THD_dfvec3 tempB_dfvec3
THD_dmat33 tempA_dmat33
THD_dmat33 tempB_dmat33
double dtempRWC
THD_dvecmat tempA_dvm33
THD_vecmat tempA_vm33

Define Documentation

#define ADD_DFVEC3 a,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (a).xyz[0] + (b).xyz[0] , \
     tempA_dfvec3.xyz[1] = (a).xyz[1] + (b).xyz[1] , \
     tempA_dfvec3.xyz[2] = (a).xyz[2] + (b).xyz[2] , tempA_dfvec3 )

Definition at line 497 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rotscl(), main(), NUD_nudge_CB(), and rotate_stdin_points().

#define ADD_DMAT A,
 
 

Value:

( tempA_dmat33.mat[0][0] = (A).mat[0][0] + (B).mat[0][0] , \
   tempA_dmat33.mat[1][0] = (A).mat[1][0] + (B).mat[1][0] , \
   tempA_dmat33.mat[2][0] = (A).mat[2][0] + (B).mat[2][0] , \
   tempA_dmat33.mat[0][1] = (A).mat[0][1] + (B).mat[0][1] , \
   tempA_dmat33.mat[1][1] = (A).mat[1][1] + (B).mat[1][1] , \
   tempA_dmat33.mat[2][1] = (A).mat[2][1] + (B).mat[2][1] , \
   tempA_dmat33.mat[0][2] = (A).mat[0][2] + (B).mat[0][2] , \
   tempA_dmat33.mat[1][2] = (A).mat[1][2] + (B).mat[1][2] , \
   tempA_dmat33.mat[2][2] = (A).mat[2][2] + (B).mat[2][2] , tempA_dmat33 )

Definition at line 749 of file vecmat.h.

Referenced by RCREND_axis_rotmatrix().

#define ADD_FVEC3 a,
b   
 

Value:

( tempA_fvec3.xyz[0] = (a).xyz[0] + (b).xyz[0] , \
     tempA_fvec3.xyz[1] = (a).xyz[1] + (b).xyz[1] , \
     tempA_fvec3.xyz[2] = (a).xyz[2] + (b).xyz[2] , tempA_fvec3 )
Return THD_fvec3 a+b.

Definition at line 127 of file vecmat.h.

Referenced by AFNI_concatenate_lmap(), AFNI_make_voxmap(), and main().

#define ADD_MAT A,
 
 

Value:

( tempA_mat33.mat[0][0] = (A).mat[0][0] + (B).mat[0][0] , \
   tempA_mat33.mat[1][0] = (A).mat[1][0] + (B).mat[1][0] , \
   tempA_mat33.mat[2][0] = (A).mat[2][0] + (B).mat[2][0] , \
   tempA_mat33.mat[0][1] = (A).mat[0][1] + (B).mat[0][1] , \
   tempA_mat33.mat[1][1] = (A).mat[1][1] + (B).mat[1][1] , \
   tempA_mat33.mat[2][1] = (A).mat[2][1] + (B).mat[2][1] , \
   tempA_mat33.mat[0][2] = (A).mat[0][2] + (B).mat[0][2] , \
   tempA_mat33.mat[1][2] = (A).mat[1][2] + (B).mat[1][2] , \
   tempA_mat33.mat[2][2] = (A).mat[2][2] + (B).mat[2][2] , tempA_mat33 )

Definition at line 392 of file vecmat.h.

#define CROSS_DFVEC3 a,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (a).xyz[1]*(b).xyz[2] - (a).xyz[2]*(b).xyz[1] , \
    tempA_dfvec3.xyz[1] = (a).xyz[2]*(b).xyz[0] - (a).xyz[0]*(b).xyz[2] , \
    tempA_dfvec3.xyz[2] = (a).xyz[0]*(b).xyz[1] - (a).xyz[1]*(b).xyz[0] , \
    tempA_dfvec3 )

Definition at line 515 of file vecmat.h.

#define CROSS_FVEC3 a,
b   
 

Value:

( tempA_fvec3.xyz[0] = (a).xyz[1]*(b).xyz[2] - (a).xyz[2]*(b).xyz[1] , \
    tempA_fvec3.xyz[1] = (a).xyz[2]*(b).xyz[0] - (a).xyz[0]*(b).xyz[2] , \
    tempA_fvec3.xyz[2] = (a).xyz[0]*(b).xyz[1] - (a).xyz[1]*(b).xyz[0] , \
    tempA_fvec3 )
Return THD_fvec3 a X b (cross product).

Definition at line 145 of file vecmat.h.

Referenced by AFNI_make_warp(), and AFNI_marks_quality_check().

#define DFVEC3_TO_FVEC3 dv,
fv       LOAD_FVEC3(fv,dv.xyz[0],dv.xyz[1],dv.xyz[2])
 

Definition at line 447 of file vecmat.h.

Referenced by main().

#define DMAT_DET  
 

Value:

(  (A).mat[0][0]*(A).mat[1][1]*(A).mat[2][2] \
  - (A).mat[0][0]*(A).mat[1][2]*(A).mat[2][1] \
  - (A).mat[1][0]*(A).mat[0][1]*(A).mat[2][2] \
  + (A).mat[1][0]*(A).mat[0][2]*(A).mat[2][1] \
  + (A).mat[2][0]*(A).mat[0][1]*(A).mat[1][2] \
  - (A).mat[2][0]*(A).mat[0][2]*(A).mat[1][1]   )

Definition at line 635 of file vecmat.h.

Referenced by DLSQ_rotscl(), main(), mri_align_crao(), and THD_matrix_to_orientation().

#define DMAT_INV  
 

Value:

( dtempRWC = 1.0 / DMAT_DET(A) , \
    tempA_dmat33.mat[1][1] = \
     ( (A).mat[0][0]*(A).mat[2][2] - (A).mat[0][2]*(A).mat[2][0]) * dtempRWC,\
    tempA_dmat33.mat[2][2] = \
     ( (A).mat[0][0]*(A).mat[1][1] - (A).mat[0][1]*(A).mat[1][0]) * dtempRWC,\
    tempA_dmat33.mat[2][0] = \
     ( (A).mat[1][0]*(A).mat[2][1] - (A).mat[1][1]*(A).mat[2][0]) * dtempRWC,\
    tempA_dmat33.mat[1][2] = \
     (-(A).mat[0][0]*(A).mat[1][2] + (A).mat[0][2]*(A).mat[1][0]) * dtempRWC,\
    tempA_dmat33.mat[0][1] = \
     (-(A).mat[0][1]*(A).mat[2][2] + (A).mat[0][2]*(A).mat[2][1]) * dtempRWC,\
    tempA_dmat33.mat[0][0] = \
     ( (A).mat[1][1]*(A).mat[2][2] - (A).mat[1][2]*(A).mat[2][1]) * dtempRWC,\
    tempA_dmat33.mat[2][1] = \
     (-(A).mat[0][0]*(A).mat[2][1] + (A).mat[0][1]*(A).mat[2][0]) * dtempRWC,\
    tempA_dmat33.mat[1][0] = \
     (-(A).mat[1][0]*(A).mat[2][2] + (A).mat[1][2]*(A).mat[2][0]) * dtempRWC,\
    tempA_dmat33.mat[0][2] = \
     ( (A).mat[0][1]*(A).mat[1][2] - (A).mat[0][2]*(A).mat[1][1]) * dtempRWC,\
    tempA_dmat33 )

Definition at line 649 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rotscl(), RCREND_axis_rotmatrix(), and THD_read_dvecmat().

#define DMAT_MUL A,
 
 

Value:

( tempA_dmat33.mat[0][0] = ROW_DOT_COL((A),(B),0,0) , \
    tempA_dmat33.mat[1][0] = ROW_DOT_COL((A),(B),1,0) , \
    tempA_dmat33.mat[2][0] = ROW_DOT_COL((A),(B),2,0) , \
    tempA_dmat33.mat[0][1] = ROW_DOT_COL((A),(B),0,1) , \
    tempA_dmat33.mat[1][1] = ROW_DOT_COL((A),(B),1,1) , \
    tempA_dmat33.mat[2][1] = ROW_DOT_COL((A),(B),2,1) , \
    tempA_dmat33.mat[0][2] = ROW_DOT_COL((A),(B),0,2) , \
    tempA_dmat33.mat[1][2] = ROW_DOT_COL((A),(B),1,2) , \
    tempA_dmat33.mat[2][2] = ROW_DOT_COL((A),(B),2,2) , tempA_dmat33 )

Definition at line 611 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rotscl(), DMAT_pow(), DMAT_svdrot_new(), DMAT_svdrot_newer(), DMAT_svdrot_old(), DMAT_x_xt(), DMAT_xt_x(), main(), NUD_nudge_CB(), RCREND_axis_rotmatrix(), RCREND_inc_angles(), RCREND_rotmatrix(), REND_inc_angles(), REND_rotmatrix(), rot_to_matrix(), rot_to_shear(), rot_to_shear_matvec(), rotmatrix(), and THD_matrix_to_orientation().

#define DMAT_SCALAR A,
c   
 

Value:

( tempA_dmat33.mat[0][0] = (c)*(A).mat[0][0] ,  \
    tempA_dmat33.mat[1][0] = (c)*(A).mat[1][0] ,  \
    tempA_dmat33.mat[2][0] = (c)*(A).mat[2][0] ,  \
    tempA_dmat33.mat[0][1] = (c)*(A).mat[0][1] ,  \
    tempA_dmat33.mat[1][1] = (c)*(A).mat[1][1] ,  \
    tempA_dmat33.mat[2][1] = (c)*(A).mat[2][1] ,  \
    tempA_dmat33.mat[0][2] = (c)*(A).mat[0][2] ,  \
    tempA_dmat33.mat[1][2] = (c)*(A).mat[1][2] ,  \
    tempA_dmat33.mat[2][2] = (c)*(A).mat[2][2] , tempA_dmat33 )

Definition at line 622 of file vecmat.h.

Referenced by DLSQ_rotscl().

#define DMAT_TO_MAT D,
 
 

Value:

LOAD_MAT(M,(D).mat[0][0] , (D).mat[0][1] , (D).mat[0][2] , \
            (D).mat[1][0] , (D).mat[1][1] , (D).mat[1][2] , \
            (D).mat[2][0] , (D).mat[2][1] , (D).mat[2][2]  )
Convert from dmat33 to mat33 (double to single precision)

Definition at line 474 of file vecmat.h.

Referenced by main().

#define DMAT_TRACE      ( (A).mat[0][0] + (A).mat[1][1] + (A).mat[2][2] )
 

Definition at line 645 of file vecmat.h.

Referenced by main(), rot_to_shear(), rot_to_shear_matvec(), and shear_best().

#define DMATVEC A,
 
 

Value:

( tempA_dfvec3.xyz[0] = (A).mat[0][0] * (x).xyz[0]  \
                        +(A).mat[0][1] * (x).xyz[1]  \
                        +(A).mat[0][2] * (x).xyz[2] ,\
    tempA_dfvec3.xyz[1] = (A).mat[1][0] * (x).xyz[0]  \
                        +(A).mat[1][1] * (x).xyz[1]  \
                        +(A).mat[1][2] * (x).xyz[2] ,\
    tempA_dfvec3.xyz[2] = (A).mat[2][0] * (x).xyz[0]  \
                        +(A).mat[2][1] * (x).xyz[1]  \
                        +(A).mat[2][2] * (x).xyz[2] ,  tempA_dfvec3 )

Definition at line 552 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rot_trans(), DLSQ_rotscl(), main(), NUD_nudge_CB(), rot_to_shear(), rotate_stdin_points(), THD_read_dvecmat(), and THD_rotcom_to_matvec().

#define DMATVEC_ADD A,
x,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (A).mat[0][0] * (x).xyz[0]               \
                         +(A).mat[0][1] * (x).xyz[1]               \
                         +(A).mat[0][2] * (x).xyz[2] + (b).xyz[0] ,\
    tempA_dfvec3.xyz[1] = (A).mat[1][0] * (x).xyz[0]               \
                         +(A).mat[1][1] * (x).xyz[1]               \
                         +(A).mat[1][2] * (x).xyz[2] + (b).xyz[1] ,\
    tempA_dfvec3.xyz[2] = (A).mat[2][0] * (x).xyz[0]               \
                         +(A).mat[2][1] * (x).xyz[1]               \
                         +(A).mat[2][2] * (x).xyz[2] + (b).xyz[2] ,\
    tempA_dfvec3 )

Definition at line 593 of file vecmat.h.

#define DMATVEC_SUB A,
x,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (A).mat[0][0] * (x).xyz[0]               \
                         +(A).mat[0][1] * (x).xyz[1]               \
                         +(A).mat[0][2] * (x).xyz[2] - (b).xyz[0] ,\
    tempA_dfvec3.xyz[1] = (A).mat[1][0] * (x).xyz[0]               \
                         +(A).mat[1][1] * (x).xyz[1]               \
                         +(A).mat[1][2] * (x).xyz[2] - (b).xyz[1] ,\
    tempA_dfvec3.xyz[2] = (A).mat[2][0] * (x).xyz[0]               \
                         +(A).mat[2][1] * (x).xyz[1]               \
                         +(A).mat[2][2] * (x).xyz[2] - (b).xyz[2] ,\
    tempA_dfvec3 )

Definition at line 579 of file vecmat.h.

#define DOT_DFVEC3 a,
b       ((a).xyz[0]*(b).xyz[0] + (a).xyz[1]*(b).xyz[1] + (a).xyz[2]*(b).xyz[2])
 

Definition at line 528 of file vecmat.h.

#define DOT_FVEC3 a,
b       ((a).xyz[0]*(b).xyz[0] + (a).xyz[1]*(b).xyz[1] + (a).xyz[2]*(b).xyz[2])
 

Return float a dot b from THD_fvec3 inputs.

Definition at line 158 of file vecmat.h.

Referenced by AFNI_make_warp(), and AFNI_marks_quality_check().

#define DUMP_DFVEC3 str,
fv       fprintf(stderr,"%s: %13.6g %13.6g %13.6g\n",(str),(fv).xyz[0],(fv).xyz[1],(fv).xyz[2])
 

Definition at line 458 of file vecmat.h.

#define DUMP_DMAT33 str,
 
 

Value:

fprintf(stderr,                                         \
          "%10.10s: [ %13.6g %13.6g %13.6g ]\n"            \
       "            [ %13.6g %13.6g %13.6g ]\n"            \
       "            [ %13.6g %13.6g %13.6g ]\n" ,          \
     str , (A).mat[0][0] , (A).mat[0][1] , (A).mat[0][2] , \
           (A).mat[1][0] , (A).mat[1][1] , (A).mat[1][2] , \
           (A).mat[2][0] , (A).mat[2][1] , (A).mat[2][2]  )

Definition at line 461 of file vecmat.h.

Referenced by DLSQ_rot_trans(), rotate_stdin_points(), and shear_best().

#define DUMP_DVECMAT str,
vvmm       ( DUMP_DMAT33(str,vvmm.mm) , DUMP_DFVEC3(str,vvmm.vv) )
 

Definition at line 470 of file vecmat.h.

#define DUMP_FVEC3 str,
fv       fprintf(stderr,"%s: %13.6g %13.6g %13.6g\n",(str),(fv).xyz[0],(fv).xyz[1],(fv).xyz[2])
 

Debug printout of a THD_fvec3.

Definition at line 91 of file vecmat.h.

Referenced by AFNI_init_warp(), AFNI_marks_quality_check(), main(), and THD_autonudge().

#define DUMP_IVEC3 str,
iv       fprintf(stderr,"%s: %d %d %d\n",(str),(iv).ijk[0],(iv).ijk[1],(iv).ijk[2])
 

Debug printout of a THD_ivec3.

Definition at line 86 of file vecmat.h.

Referenced by AFNI_set_viewpoint(), and THD_autonudge().

#define DUMP_MAT33 str,
 
 

Value:

fprintf(stderr,                                         \
          "%10.10s: [ %13.6g %13.6g %13.6g ]\n"            \
       "            [ %13.6g %13.6g %13.6g ]\n"            \
       "            [ %13.6g %13.6g %13.6g ]\n" ,          \
     str , (A).mat[0][0] , (A).mat[0][1] , (A).mat[0][2] , \
           (A).mat[1][0] , (A).mat[1][1] , (A).mat[1][2] , \
           (A).mat[2][0] , (A).mat[2][1] , (A).mat[2][2]  )
Debug printout of a THD_mat33.

Definition at line 96 of file vecmat.h.

Referenced by CREN_render(), CREN_set_axes(), project_byte_mip(), and warper_bilinear_det().

#define DUMP_VECMAT str,
vvmm       ( DUMP_MAT33(str,vvmm.mm) , DUMP_FVEC3(str,vvmm.vv) )
 

Debug printout of a THD_vecmat.

Definition at line 107 of file vecmat.h.

Referenced by main(), parset_affine(), and warper_bilinear_det().

#define DVECMAT_VEC A,
     DMATVEC_ADD( (A).mm , (x) , (A).vv )
 

Definition at line 818 of file vecmat.h.

#define FVEC3_TO_DFVEC3 fv,
dv       LOAD_DFVEC3(dv,fv.xyz[0],fv.xyz[1],fv.xyz[2])
 

Definition at line 448 of file vecmat.h.

Referenced by main().

#define INT_DFVEC3 a   
 

Value:

( tempA_ivec3.ijk[0] = (a).xyz[0] + 0.5 , \
    tempA_ivec3.ijk[1] = (a).xyz[1] + 0.5 ,  \
    tempA_ivec3.ijk[1] = (a).xyz[2] + 0.5 , tempA_ivec3 ) ;

Definition at line 540 of file vecmat.h.

#define INT_FVEC3 a   
 

Value:

( tempA_ivec3.ijk[0] = (a).xyz[0] + 0.5 , \
    tempA_ivec3.ijk[1] = (a).xyz[1] + 0.5 , \
    tempA_ivec3.ijk[1] = (a).xyz[2] + 0.5 , tempA_ivec3 ) ;

Definition at line 170 of file vecmat.h.

#define INV_DVECMAT  
 

Value:

( tempA_dvm33.mm = DMAT_INV((A).mm) ,                \
                         tempA_dvm33.vv = DMATVEC(tempA_dvm33.mm,(A).vv) ,  \
                         NEGATE_DFVEC3(tempA_dvm33.vv) , tempA_dvm33       )

Definition at line 798 of file vecmat.h.

Referenced by main().

#define INV_VECMAT  
 

Value:

( tempA_vm33.mm = MAT_INV((A).mm) ,                \
                        tempA_vm33.vv = MATVEC(tempA_vm33.mm,(A).vv) ,   \
                        NEGATE_FVEC3(tempA_vm33.vv) , tempA_vm33       )

Definition at line 811 of file vecmat.h.

Referenced by main(), parset_affine(), THD_warp3D(), and THD_warp3D_affine().

#define LOAD_DFVEC3 fv,
x,
y,
z   
 

Value:

( (fv).xyz[0]=(x), \
                               (fv).xyz[1]=(y), \
                               (fv).xyz[2]=(z)   )

Definition at line 439 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rot_trans(), DLSQ_rotscl(), main(), NUD_main(), rot_to_shear(), rotate_stdin_points(), shiftvec(), THD_read_dvecmat(), and THD_rotcom_to_matvec().

#define LOAD_DIAG_DMAT A,
x,
y,
z   
 

Value:

( (A).mat[0][0] = (x) , \
   (A).mat[1][1] = (y) , \
   (A).mat[2][2] = (z) , \
   (A).mat[0][1] = (A).mat[0][2] = (A).mat[1][0] = \
   (A).mat[1][2] = (A).mat[2][0] = (A).mat[2][1] = 0.0 )

Definition at line 689 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rot_trans(), DLSQ_rotscl(), DMAT_pow(), main(), NUD_main(), RCREND_axis_rotmatrix(), rot_to_shear(), rot_to_shear_matvec(), THD_read_dvecmat(), and THD_rotcom_to_matvec().

#define LOAD_DIAG_MAT A,
x,
y,
z   
 

Value:

( (A).mat[0][0] = (x) , \
   (A).mat[1][1] = (y) , \
   (A).mat[2][2] = (z) , \
   (A).mat[0][1] = (A).mat[0][2] = (A).mat[1][0] = \
   (A).mat[1][2] = (A).mat[2][0] = (A).mat[2][1] = 0.0 )

Definition at line 332 of file vecmat.h.

Referenced by AFNI_init_warp(), AFNI_make_voxmap(), EDIT_empty_copy(), main(), new_CREN_renderer(), parset_affine(), and THD_warp3D().

#define LOAD_DMAT A,
a11,
a12,
a13,
a21,
a22,
a23,
a31,
a32,
a33   
 

Value:

( (A).mat[0][0] = (a11) , (A).mat[0][1] = (a12) ,      \
   (A).mat[0][2] = (a13) , (A).mat[1][0] = (a21) ,      \
   (A).mat[1][1] = (a22) , (A).mat[1][2] = (a23) ,      \
   (A).mat[2][0] = (a31) , (A).mat[2][1] = (a32) , (A).mat[2][2] = (a33) )

Definition at line 673 of file vecmat.h.

Referenced by main(), RCREND_axis_rotmatrix(), THD_matrix_to_orientation(), and THD_read_dvecmat().

#define LOAD_FVEC3 fv,
x,
y,
z   
 

Value:

( (fv).xyz[0]=(x), \
                               (fv).xyz[1]=(y), \
                               (fv).xyz[2]=(z)   )
Load THD_fvec3 fv with 3 floats.

Definition at line 57 of file vecmat.h.

Referenced by afi2o(), AFNI_brick_to_mri(), AFNI_get_xhair_node(), AFNI_init_warp(), AFNI_lock_carryout(), AFNI_make_affwarp_12(), AFNI_make_voxmap(), AFNI_make_voxwarp(), AFNI_make_warp(), AFNI_marks_quality_check(), AFNI_mnito_CB(), AFNI_talto_CB(), AFNI_ttatlas_query(), afo2i(), apply_dataxes(), apply_orientation(), DRAW_ttatlas_CB(), get_xhair_points(), ijk_warp_for(), ijk_warp_inv(), main(), parset_affine(), parset_bilinear(), PR_get_range(), process_NIML_Node_ROI(), RCREND_xhair_overlay(), RCREND_xhair_underlay(), SUMA_BrainVoyager_Read_vmr(), SUMA_FormAfnidset(), SUMA_make_vnlist(), SUMA_OpenDX_Read_CruiseVolHead(), THD_3mni_to_3tta(), THD_3tta_to_3mni(), THD_autonudge(), THD_cmass(), THD_dataset_center(), THD_dataset_info(), THD_dataset_mismatch(), THD_dicomm_to_surefit(), THD_mni_to_tta(), THD_open_nifti(), THD_surefit_to_dicomm(), THD_tta_to_mni(), THD_warp3D(), THD_zeropad(), TT_whereami(), w3d_warp_func(), warp_corners(), warp_dicom_in2out(), warp_dicom_out2in(), warper_affine_for(), warper_affine_inv(), warper_bilinear_det(), warper_bilinear_for(), warper_bilinear_inv(), and xyz_to_ijk().

#define LOAD_IVEC3 iv,
i,
j,
k   
 

Value:

( (iv).ijk[0]=(i), \
                               (iv).ijk[1]=(j), \
                               (iv).ijk[2]=(k)    )
Load THD_ivec3 iv with 3 integers.

Definition at line 45 of file vecmat.h.

Referenced by AFNI_brick_to_mri(), AFNI_closedown_3dview(), AFNI_initialize_view(), AFNI_set_viewpoint(), apply_dataxes(), apply_orientation(), FD_brick_to_series(), main(), SUMA_BrainVoyager_Read_vmr(), SUMA_FormAfnidset(), SUMA_OpenDX_Read_CruiseVolHead(), THD_3dim_dataset_to_brick(), THD_matrix_to_orientation(), THD_open_ctfmri(), THD_open_nifti(), and THD_zeropad().

#define LOAD_MAT A,
a11,
a12,
a13,
a21,
a22,
a23,
a31,
a32,
a33   
 

Value:

( (A).mat[0][0] = (a11) , (A).mat[0][1] = (a12) ,      \
   (A).mat[0][2] = (a13) , (A).mat[1][0] = (a21) ,      \
   (A).mat[1][1] = (a22) , (A).mat[1][2] = (a23) ,      \
   (A).mat[2][0] = (a31) , (A).mat[2][1] = (a32) , (A).mat[2][2] = (a33) )

Definition at line 316 of file vecmat.h.

Referenced by AFNI_make_affwarp_12(), main(), parset_affine(), SUMA_OpenDX_Read_CruiseVolHead(), THD_init_session(), and THD_open_nifti().

#define LOAD_ROT_DMAT A,
th,
i   
 

Value:

do{ switch( (i) ){                          \
        case 0: LOAD_ROTX_DMAT(A,th) ; break ; \
        case 1: LOAD_ROTY_DMAT(A,th) ; break ; \
        case 2: LOAD_ROTZ_DMAT(A,th) ; break ; \
       default: LOAD_ZERO_DMAT(A)    ; break ; \
      } } while(0)

Definition at line 715 of file vecmat.h.

Referenced by rot_to_matrix(), and rotmatrix().

#define LOAD_ROT_MAT A,
th,
i   
 

Value:

do{ switch( (i) ){                            \
        case 0: LOAD_ROTX_MAT(A,th)   ; break ; \
        case 1: LOAD_ROTY_MAT(A,th)   ; break ; \
        case 2: LOAD_ROTZ_MAT(A,th)   ; break ; \
       default: LOAD_DIAG_MAT(A,1,1,1); break ; \
      } } while(0)

Definition at line 358 of file vecmat.h.

Referenced by RCREND_inc_angles(), RCREND_rotmatrix(), REND_inc_angles(), REND_rotmatrix(), rot_matrix(), and rotmatrix().

#define LOAD_ROTGEN_DMAT A,
th,
ff,
aa,
bb   
 

Value:

( (A).mat[aa][aa] = (A).mat[bb][bb] = cos((th)) , \
   (A).mat[aa][bb] = sin((th)) ,                   \
   (A).mat[bb][aa] = -(A).mat[aa][bb] ,            \
   (A).mat[ff][ff] = 1.0 ,                         \
   (A).mat[aa][ff] = (A).mat[bb][ff] = (A).mat[ff][aa] = (A).mat[ff][bb] = 0.0 )

Definition at line 704 of file vecmat.h.

#define LOAD_ROTGEN_MAT A,
th,
ff,
aa,
bb   
 

Value:

( (A).mat[aa][aa] = (A).mat[bb][bb] = cos((th)) , \
   (A).mat[aa][bb] = sin((th)) ,                   \
   (A).mat[bb][aa] = -(A).mat[aa][bb] ,            \
   (A).mat[ff][ff] = 1.0 ,                         \
   (A).mat[aa][ff] = (A).mat[bb][ff] = (A).mat[ff][aa] = (A).mat[ff][bb] = 0.0 )

Definition at line 347 of file vecmat.h.

#define LOAD_ROTX_DMAT A,
th       LOAD_ROTGEN_DMAT(A,th,0,1,2)
 

Definition at line 711 of file vecmat.h.

#define LOAD_ROTX_MAT A,
th       LOAD_ROTGEN_MAT(A,th,0,1,2)
 

Definition at line 354 of file vecmat.h.

#define LOAD_ROTY_DMAT A,
th       LOAD_ROTGEN_DMAT(A,th,1,2,0)
 

Definition at line 712 of file vecmat.h.

#define LOAD_ROTY_MAT A,
th       LOAD_ROTGEN_MAT(A,th,1,2,0)
 

Definition at line 355 of file vecmat.h.

#define LOAD_ROTZ_DMAT A,
th       LOAD_ROTGEN_DMAT(A,th,2,0,1)
 

Definition at line 713 of file vecmat.h.

#define LOAD_ROTZ_MAT A,
th       LOAD_ROTGEN_MAT(A,th,2,0,1)
 

Definition at line 356 of file vecmat.h.

#define LOAD_SHEARX_DMAT A,
f,
b,
c   
 

Value:

( LOAD_DIAG_DMAT(A,(f),1,1) , \
                                   (A).mat[0][1] = (b) , (A).mat[0][2] = (c) )

Definition at line 725 of file vecmat.h.

Referenced by make_shear_matrix().

#define LOAD_SHEARX_MAT A,
f,
b,
c   
 

Value:

( LOAD_DIAG_MAT(A,(f),1,1) , \
                                   (A).mat[0][1] = (b) , (A).mat[0][2] = (c) )

Definition at line 368 of file vecmat.h.

#define LOAD_SHEARY_DMAT A,
f,
a,
c   
 

Value:

( LOAD_DIAG_DMAT(A,1,(f),1) , \
                                   (A).mat[1][0] = (a) , (A).mat[1][2] = (c) )

Definition at line 728 of file vecmat.h.

Referenced by make_shear_matrix().

#define LOAD_SHEARY_MAT A,
f,
a,
c   
 

Value:

( LOAD_DIAG_MAT(A,1,(f),1) , \
                                   (A).mat[1][0] = (a) , (A).mat[1][2] = (c) )

Definition at line 371 of file vecmat.h.

#define LOAD_SHEARZ_DMAT A,
f,
a,
b   
 

Value:

( LOAD_DIAG_DMAT(A,1,1,(f)) , \
                                   (A).mat[2][0] = (a) , (A).mat[2][1] = (b) )

Definition at line 731 of file vecmat.h.

Referenced by make_shear_matrix().

#define LOAD_SHEARZ_MAT A,
f,
a,
b   
 

Value:

( LOAD_DIAG_MAT(A,1,1,(f)) , \
                                   (A).mat[2][0] = (a) , (A).mat[2][1] = (b) )

Definition at line 374 of file vecmat.h.

#define LOAD_ZERO_DMAT      LOAD_DIAG_DMAT((A),0,0,0)
 

Definition at line 698 of file vecmat.h.

Referenced by DBLE_mat_to_dicomm(), DLSQ_affine(), DLSQ_rot_trans(), DLSQ_rotscl(), make_shear_matrix(), and THD_matrix_to_orientation().

#define LOAD_ZERO_MAT      LOAD_DIAG_MAT((A),0,0,0)
 

Definition at line 341 of file vecmat.h.

Referenced by CREN_set_axes(), EDIT_dset_items(), SNGL_mat_to_dicomm(), SUMA_THD_handedness(), THD_3dim_from_block(), and THD_handedness().

#define MAT_DET  
 

Value:

(  (A).mat[0][0]*(A).mat[1][1]*(A).mat[2][2] \
  - (A).mat[0][0]*(A).mat[1][2]*(A).mat[2][1] \
  - (A).mat[1][0]*(A).mat[0][1]*(A).mat[2][2] \
  + (A).mat[1][0]*(A).mat[0][2]*(A).mat[2][1] \
  + (A).mat[2][0]*(A).mat[0][1]*(A).mat[1][2] \
  - (A).mat[2][0]*(A).mat[0][2]*(A).mat[1][1]   )

Definition at line 265 of file vecmat.h.

Referenced by AFNI_make_affwarp_12(), main(), SUMA_THD_handedness(), THD_handedness(), and warper_bilinear_det().

#define MAT_FNORM  
 

Value:

sqrt( (A).mat[0][0]*(A).mat[0][0] + \
       (A).mat[0][1]*(A).mat[0][1] + \
       (A).mat[0][2]*(A).mat[0][2] + \
       (A).mat[1][0]*(A).mat[1][0] + \
       (A).mat[1][1]*(A).mat[1][1] + \
       (A).mat[1][2]*(A).mat[1][2] + \
       (A).mat[2][0]*(A).mat[2][0] + \
       (A).mat[2][1]*(A).mat[2][1] + \
       (A).mat[2][2]*(A).mat[2][2]  )

Definition at line 275 of file vecmat.h.

Referenced by AFNI_make_affwarp_12().

#define MAT_INV  
 

Value:

( tempRWC = 1.0 / MAT_DET(A) , \
    tempA_mat33.mat[1][1] = \
     ( (A).mat[0][0]*(A).mat[2][2] - (A).mat[0][2]*(A).mat[2][0]) * tempRWC,\
    tempA_mat33.mat[2][2] = \
     ( (A).mat[0][0]*(A).mat[1][1] - (A).mat[0][1]*(A).mat[1][0]) * tempRWC,\
    tempA_mat33.mat[2][0] = \
     ( (A).mat[1][0]*(A).mat[2][1] - (A).mat[1][1]*(A).mat[2][0]) * tempRWC,\
    tempA_mat33.mat[1][2] = \
     (-(A).mat[0][0]*(A).mat[1][2] + (A).mat[0][2]*(A).mat[1][0]) * tempRWC,\
    tempA_mat33.mat[0][1] = \
     (-(A).mat[0][1]*(A).mat[2][2] + (A).mat[0][2]*(A).mat[2][1]) * tempRWC,\
    tempA_mat33.mat[0][0] = \
     ( (A).mat[1][1]*(A).mat[2][2] - (A).mat[1][2]*(A).mat[2][1]) * tempRWC,\
    tempA_mat33.mat[2][1] = \
     (-(A).mat[0][0]*(A).mat[2][1] + (A).mat[0][1]*(A).mat[2][0]) * tempRWC,\
    tempA_mat33.mat[1][0] = \
     (-(A).mat[1][0]*(A).mat[2][2] + (A).mat[1][2]*(A).mat[2][0]) * tempRWC,\
    tempA_mat33.mat[0][2] = \
     ( (A).mat[0][1]*(A).mat[1][2] - (A).mat[0][2]*(A).mat[1][1]) * tempRWC,\
    tempA_mat33 )

Definition at line 292 of file vecmat.h.

Referenced by AFNI_concatenate_lmap(), AFNI_make_voxmap(), THD_init_session(), warper_bilinear_det(), warper_bilinear_for(), and warper_bilinear_inv().

#define MAT_MUL A,
 
 

Value:

( tempA_mat33.mat[0][0] = ROW_DOT_COL((A),(B),0,0) , \
    tempA_mat33.mat[1][0] = ROW_DOT_COL((A),(B),1,0) , \
    tempA_mat33.mat[2][0] = ROW_DOT_COL((A),(B),2,0) , \
    tempA_mat33.mat[0][1] = ROW_DOT_COL((A),(B),0,1) , \
    tempA_mat33.mat[1][1] = ROW_DOT_COL((A),(B),1,1) , \
    tempA_mat33.mat[2][1] = ROW_DOT_COL((A),(B),2,1) , \
    tempA_mat33.mat[0][2] = ROW_DOT_COL((A),(B),0,2) , \
    tempA_mat33.mat[1][2] = ROW_DOT_COL((A),(B),1,2) , \
    tempA_mat33.mat[2][2] = ROW_DOT_COL((A),(B),2,2) , tempA_mat33 )

Definition at line 241 of file vecmat.h.

Referenced by AFNI_concatenate_lmap(), AFNI_make_voxmap(), CREN_render(), parset_affine(), rot_matrix(), and rotmatrix().

#define MAT_SCALAR A,
c   
 

Value:

( tempA_mat33.mat[0][0] = (c)*(A).mat[0][0] ,  \
    tempA_mat33.mat[1][0] = (c)*(A).mat[1][0] ,  \
    tempA_mat33.mat[2][0] = (c)*(A).mat[2][0] ,  \
    tempA_mat33.mat[0][1] = (c)*(A).mat[0][1] ,  \
    tempA_mat33.mat[1][1] = (c)*(A).mat[1][1] ,  \
    tempA_mat33.mat[2][1] = (c)*(A).mat[2][1] ,  \
    tempA_mat33.mat[0][2] = (c)*(A).mat[0][2] ,  \
    tempA_mat33.mat[1][2] = (c)*(A).mat[1][2] ,  \
    tempA_mat33.mat[2][2] = (c)*(A).mat[2][2] , tempA_mat33 )

Definition at line 252 of file vecmat.h.

#define MAT_TRACE      ( (A).mat[0][0] + (A).mat[1][1] + (A).mat[2][2] )
 

Definition at line 288 of file vecmat.h.

#define MATVEC A,
 
 

Value:

( tempA_fvec3.xyz[0] = (A).mat[0][0] * (x).xyz[0]  \
                        +(A).mat[0][1] * (x).xyz[1]  \
                        +(A).mat[0][2] * (x).xyz[2] ,\
    tempA_fvec3.xyz[1] = (A).mat[1][0] * (x).xyz[0]  \
                        +(A).mat[1][1] * (x).xyz[1]  \
                        +(A).mat[1][2] * (x).xyz[2] ,\
    tempA_fvec3.xyz[2] = (A).mat[2][0] * (x).xyz[0]  \
                        +(A).mat[2][1] * (x).xyz[1]  \
                        +(A).mat[2][2] * (x).xyz[2] ,  tempA_fvec3 )

Definition at line 182 of file vecmat.h.

Referenced by AFNI_concatenate_lmap(), AFNI_make_voxmap(), AFNI_make_warp(), main(), parset_affine(), parset_bilinear(), vector_multiply(), warper_bilinear_det(), warper_bilinear_for(), and warper_bilinear_inv().

#define MATVEC_ADD A,
x,
b   
 

Value:

( tempA_fvec3.xyz[0] = (A).mat[0][0] * (x).xyz[0]               \
                        +(A).mat[0][1] * (x).xyz[1]               \
                        +(A).mat[0][2] * (x).xyz[2] + (b).xyz[0] ,\
    tempA_fvec3.xyz[1] = (A).mat[1][0] * (x).xyz[0]               \
                        +(A).mat[1][1] * (x).xyz[1]               \
                        +(A).mat[1][2] * (x).xyz[2] + (b).xyz[1] ,\
    tempA_fvec3.xyz[2] = (A).mat[2][0] * (x).xyz[0]               \
                        +(A).mat[2][1] * (x).xyz[1]               \
                        +(A).mat[2][2] * (x).xyz[2] + (b).xyz[2] ,\
    tempA_fvec3 )

Definition at line 223 of file vecmat.h.

#define MATVEC_SUB A,
x,
b   
 

Value:

( tempA_fvec3.xyz[0] = (A).mat[0][0] * (x).xyz[0]               \
                        +(A).mat[0][1] * (x).xyz[1]               \
                        +(A).mat[0][2] * (x).xyz[2] - (b).xyz[0] ,\
    tempA_fvec3.xyz[1] = (A).mat[1][0] * (x).xyz[0]               \
                        +(A).mat[1][1] * (x).xyz[1]               \
                        +(A).mat[1][2] * (x).xyz[2] - (b).xyz[1] ,\
    tempA_fvec3.xyz[2] = (A).mat[2][0] * (x).xyz[0]               \
                        +(A).mat[2][1] * (x).xyz[1]               \
                        +(A).mat[2][2] * (x).xyz[2] - (b).xyz[2] ,\
    tempA_fvec3 )

Definition at line 209 of file vecmat.h.

Referenced by AFNI_backward_warp_vector(), AFNI_forward_warp_vector(), AFNI_init_warp(), and SUMA_AFNI_forward_warp_xyz().

#define MAX_DFVEC3 a,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (((a).xyz[0] > (b).xyz[0]) ? (a).xyz[0] : (b).xyz[0]) ,\
  tempA_dfvec3.xyz[1] = (((a).xyz[1] > (b).xyz[1]) ? (a).xyz[1] : (b).xyz[1]) ,\
  tempA_dfvec3.xyz[2] = (((a).xyz[2] > (b).xyz[2]) ? (a).xyz[2] : (b).xyz[2]) ,\
  tempA_dfvec3 )

Definition at line 773 of file vecmat.h.

#define MAX_FVEC3 a,
b   
 

Value:

( tempA_fvec3.xyz[0] = (((a).xyz[0] > (b).xyz[0]) ? (a).xyz[0] : (b).xyz[0]) ,\
  tempA_fvec3.xyz[1] = (((a).xyz[1] > (b).xyz[1]) ? (a).xyz[1] : (b).xyz[1]) ,\
  tempA_fvec3.xyz[2] = (((a).xyz[2] > (b).xyz[2]) ? (a).xyz[2] : (b).xyz[2]) ,\
  tempA_fvec3 )

Definition at line 416 of file vecmat.h.

Referenced by AFNI_init_warp().

#define MIN_DFVEC3 a,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (((a).xyz[0] < (b).xyz[0]) ? (a).xyz[0] : (b).xyz[0]) ,\
  tempA_dfvec3.xyz[1] = (((a).xyz[1] < (b).xyz[1]) ? (a).xyz[1] : (b).xyz[1]) ,\
  tempA_dfvec3.xyz[2] = (((a).xyz[2] < (b).xyz[2]) ? (a).xyz[2] : (b).xyz[2]) ,\
  tempA_dfvec3 )

Definition at line 779 of file vecmat.h.

#define MIN_FVEC3 a,
b   
 

Value:

( tempA_fvec3.xyz[0] = (((a).xyz[0] < (b).xyz[0]) ? (a).xyz[0] : (b).xyz[0]) ,\
  tempA_fvec3.xyz[1] = (((a).xyz[1] < (b).xyz[1]) ? (a).xyz[1] : (b).xyz[1]) ,\
  tempA_fvec3.xyz[2] = (((a).xyz[2] < (b).xyz[2]) ? (a).xyz[2] : (b).xyz[2]) ,\
  tempA_fvec3 )

Definition at line 422 of file vecmat.h.

Referenced by AFNI_init_warp().

#define MUL_DVECMAT A,
 
 

Value:

( tempA_dvm33.mm = DMAT_MUL((A).mm,(B).mm) ,                       \
    tempB_dfvec3   = DMATVEC((A).mm,(B).vv) ,                        \
    tempA_dvm33.vv = ADD_DFVEC3(tempB_dfvec3,(A).vv) , tempA_dvm33 )

Definition at line 789 of file vecmat.h.

#define MUL_VECMAT A,
 
 

Value:

( tempA_vm33.mm = MAT_MUL((A).mm,(B).mm) ,                     \
    tempB_fvec3   = MATVEC((A).mm,(B).vv) ,                      \
    tempA_vm33.vv = ADD_FVEC3(tempB_fvec3,(A).vv) , tempA_vm33 )

Definition at line 806 of file vecmat.h.

Referenced by main(), and THD_warp3D().

#define NEGATE_DFVEC3 a   
 

Value:

( (a).xyz[0] = -(a).xyz[0] , \
                          (a).xyz[1] = -(a).xyz[1] , \
                          (a).xyz[2] = -(a).xyz[2]    )

Definition at line 484 of file vecmat.h.

Referenced by THD_read_dvecmat().

#define NEGATE_FVEC3 a   
 

Value:

( (a).xyz[0] = -(a).xyz[0] , \
                          (a).xyz[1] = -(a).xyz[1] , \
                          (a).xyz[2] = -(a).xyz[2]    )
Return negation of THD_fvec3 a.

Definition at line 114 of file vecmat.h.

Referenced by AFNI_concatenate_lmap(), AFNI_make_voxmap(), and AFNI_make_warp().

#define NORMALIZE_DFVEC3 a   
 

Value:

( dtempRWC =   (a).xyz[0] * (a).xyz[0]                 \
               + (a).xyz[1] * (a).xyz[1]                 \
               + (a).xyz[2] * (a).xyz[2]               , \
     dtempRWC = (dtempRWC > 0) ? (1.0/sqrt(dtempRWC)) : 0 , \
     tempA_dfvec3.xyz[0] = (a).xyz[0] * dtempRWC         , \
     tempA_dfvec3.xyz[1] = (a).xyz[1] * dtempRWC         , \
     tempA_dfvec3.xyz[2] = (a).xyz[2] * dtempRWC         , tempA_dfvec3 )

Definition at line 504 of file vecmat.h.

#define NORMALIZE_FVEC3 a   
 

Value:

( tempRWC =   (a).xyz[0] * (a).xyz[0]                 \
               + (a).xyz[1] * (a).xyz[1]                 \
               + (a).xyz[2] * (a).xyz[2]               , \
     tempRWC = (tempRWC > 0) ? (1.0/sqrt(tempRWC)) : 0 , \
     tempA_fvec3.xyz[0] = (a).xyz[0] * tempRWC         , \
     tempA_fvec3.xyz[1] = (a).xyz[1] * tempRWC         , \
     tempA_fvec3.xyz[2] = (a).xyz[2] * tempRWC         , tempA_fvec3 )
Return THD_fvec3 a/|a| (unit vector).

Definition at line 134 of file vecmat.h.

Referenced by AFNI_make_warp(), and AFNI_marks_quality_check().

#define ROW_DOT_COL A,
B,
i,
j   
 

Value:

(  (A).mat[i][0] * (B).mat[0][j] \
                              + (A).mat[i][1] * (B).mat[1][j] \
                              + (A).mat[i][2] * (B).mat[2][j]   )

Definition at line 607 of file vecmat.h.

#define ROW_DOT_COL A,
B,
i,
j   
 

Value:

(  (A).mat[i][0] * (B).mat[0][j] \
                              + (A).mat[i][1] * (B).mat[1][j] \
                              + (A).mat[i][2] * (B).mat[2][j]   )

Definition at line 607 of file vecmat.h.

#define SCLADD_DFVEC3 fa,
a,
fb,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (fa)*(a).xyz[0] + (fb)*(b).xyz[0] , \
    tempA_dfvec3.xyz[1] = (fa)*(a).xyz[1] + (fb)*(b).xyz[1] , \
    tempA_dfvec3.xyz[2] = (fa)*(a).xyz[2] + (fb)*(b).xyz[2] , tempA_dfvec3 )

Definition at line 533 of file vecmat.h.

Referenced by DLSQ_rot_trans().

#define SCLADD_FVEC3 fa,
a,
fb,
b   
 

Value:

( tempA_fvec3.xyz[0] = (fa)*(a).xyz[0] + (fb)*(b).xyz[0] , \
    tempA_fvec3.xyz[1] = (fa)*(a).xyz[1] + (fb)*(b).xyz[1] , \
    tempA_fvec3.xyz[2] = (fa)*(a).xyz[2] + (fb)*(b).xyz[2] , tempA_fvec3 )

Definition at line 163 of file vecmat.h.

Referenced by AFNI_brick_to_mri(), AFNI_make_warp(), and AFNI_marks_quality_check().

#define SIZE_DFVEC3 a       sqrt((a).xyz[0]*(a).xyz[0]+(a).xyz[1]*(a).xyz[1]+(a).xyz[2]*(a).xyz[2])
 

Definition at line 523 of file vecmat.h.

Referenced by main().

#define SIZE_DMAT  
 

Value:

( fabs((A).mat[0][0]) + fabs((A).mat[0][1]) + fabs((A).mat[0][2])  \
   +fabs((A).mat[1][0]) + fabs((A).mat[1][1]) + fabs((A).mat[1][2])   \
   +fabs((A).mat[2][0]) + fabs((A).mat[2][1]) + fabs((A).mat[2][2]) )

Definition at line 545 of file vecmat.h.

Referenced by main().

#define SIZE_FVEC3 a       sqrt((a).xyz[0]*(a).xyz[0]+(a).xyz[1]*(a).xyz[1]+(a).xyz[2]*(a).xyz[2])
 

Return float L2norm(a) from a THD_fvec3.

Definition at line 153 of file vecmat.h.

Referenced by AFNI_marks_quality_check(), and THD_dataset_mismatch().

#define SIZE_MAT  
 

Value:

( fabs((A).mat[0][0]) + fabs((A).mat[0][1]) + fabs((A).mat[0][2])  \
   +fabs((A).mat[1][0]) + fabs((A).mat[1][1]) + fabs((A).mat[1][2])   \
   +fabs((A).mat[2][0]) + fabs((A).mat[2][1]) + fabs((A).mat[2][2]) )

Definition at line 175 of file vecmat.h.

#define SUB_DFVEC3 a,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (a).xyz[0] - (b).xyz[0] , \
     tempA_dfvec3.xyz[1] = (a).xyz[1] - (b).xyz[1] , \
     tempA_dfvec3.xyz[2] = (a).xyz[2] - (b).xyz[2] , tempA_dfvec3 )

Definition at line 490 of file vecmat.h.

Referenced by DLSQ_affine(), DLSQ_rot_trans(), DLSQ_rotscl(), main(), rot_to_shear(), and rotate_stdin_points().

#define SUB_DMAT A,
 
 

Value:

( tempA_dmat33.mat[0][0] = (A).mat[0][0] - (B).mat[0][0] , \
   tempA_dmat33.mat[1][0] = (A).mat[1][0] - (B).mat[1][0] , \
   tempA_dmat33.mat[2][0] = (A).mat[2][0] - (B).mat[2][0] , \
   tempA_dmat33.mat[0][1] = (A).mat[0][1] - (B).mat[0][1] , \
   tempA_dmat33.mat[1][1] = (A).mat[1][1] - (B).mat[1][1] , \
   tempA_dmat33.mat[2][1] = (A).mat[2][1] - (B).mat[2][1] , \
   tempA_dmat33.mat[0][2] = (A).mat[0][2] - (B).mat[0][2] , \
   tempA_dmat33.mat[1][2] = (A).mat[1][2] - (B).mat[1][2] , \
   tempA_dmat33.mat[2][2] = (A).mat[2][2] - (B).mat[2][2] , tempA_dmat33 )

Definition at line 760 of file vecmat.h.

Referenced by RCREND_axis_rotmatrix().

#define SUB_FVEC3 a,
b   
 

Value:

( tempA_fvec3.xyz[0] = (a).xyz[0] - (b).xyz[0] , \
     tempA_fvec3.xyz[1] = (a).xyz[1] - (b).xyz[1] , \
     tempA_fvec3.xyz[2] = (a).xyz[2] - (b).xyz[2] , tempA_fvec3 )
Return THD_fvec3 a-b.

Definition at line 120 of file vecmat.h.

Referenced by AFNI_make_voxmap(), AFNI_make_warp(), AFNI_marks_quality_check(), main(), THD_dataset_mismatch(), and xhairs_to_image_pts().

#define SUB_MAT A,
 
 

Value:

( tempA_mat33.mat[0][0] = (A).mat[0][0] - (B).mat[0][0] , \
   tempA_mat33.mat[1][0] = (A).mat[1][0] - (B).mat[1][0] , \
   tempA_mat33.mat[2][0] = (A).mat[2][0] - (B).mat[2][0] , \
   tempA_mat33.mat[0][1] = (A).mat[0][1] - (B).mat[0][1] , \
   tempA_mat33.mat[1][1] = (A).mat[1][1] - (B).mat[1][1] , \
   tempA_mat33.mat[2][1] = (A).mat[2][1] - (B).mat[2][1] , \
   tempA_mat33.mat[0][2] = (A).mat[0][2] - (B).mat[0][2] , \
   tempA_mat33.mat[1][2] = (A).mat[1][2] - (B).mat[1][2] , \
   tempA_mat33.mat[2][2] = (A).mat[2][2] - (B).mat[2][2] , tempA_mat33 )

Definition at line 403 of file vecmat.h.

#define TEMP_DFVEC3 x,
y,
z   
 

Value:

( tempB_dfvec3.xyz[0]=(x), \
                            tempB_dfvec3.xyz[1]=(y), \
                            tempB_dfvec3.xyz[2]=(z), tempB_dfvec3 )

Definition at line 454 of file vecmat.h.

#define TEMP_FVEC3 x,
y,
z   
 

Value:

( tempB_fvec3.xyz[0]=(x), \
                            tempB_fvec3.xyz[1]=(y), \
                            tempB_fvec3.xyz[2]=(z), tempB_fvec3 )
Return a temporary THD_fvec3 from 3 floats.

Definition at line 80 of file vecmat.h.

Referenced by AFNI_crosshair_label(), AFNI_dicomm_to_xyz(), AFNI_initialize_view(), AFNI_jumpto_dicom(), AFNI_marktog_CB(), AFNI_modify_viewing(), AFNI_overlay(), AFNI_xyz_to_dicomm(), AFNI_xyz_to_ijk(), EDIT_one_dataset(), main(), and TT_whereami().

#define TEMP_IVEC3 i,
j,
k   
 

Value:

( tempB_ivec3.ijk[0]=(i), \
                            tempB_ivec3.ijk[1]=(j), \
                            tempB_ivec3.ijk[2]=(k), tempB_ivec3 )
Return a temporary THD_ivec3 from 3 integers.

Definition at line 74 of file vecmat.h.

Referenced by AFNI_brick_to_mri(), AFNI_gra_send_CB(), AFNI_ijk_to_xyz(), AFNI_marks_action_CB(), AFNI_modify_viewing(), AFNI_overlay(), AFNI_seq_send_CB(), AFNI_set_valabel(), GRA_drawing_EV(), GRA_handle_keypress(), main(), plot_graphs(), and redraw_graph().

#define TRANSPOSE_DMAT  
 

Value:

( tempA_dmat33.mat[0][0] = (A).mat[0][0] , \
   tempA_dmat33.mat[1][0] = (A).mat[0][1] , \
   tempA_dmat33.mat[2][0] = (A).mat[0][2] , \
   tempA_dmat33.mat[0][1] = (A).mat[1][0] , \
   tempA_dmat33.mat[1][1] = (A).mat[1][1] , \
   tempA_dmat33.mat[2][1] = (A).mat[1][2] , \
   tempA_dmat33.mat[0][2] = (A).mat[2][0] , \
   tempA_dmat33.mat[1][2] = (A).mat[2][1] , \
   tempA_dmat33.mat[2][2] = (A).mat[2][2] , tempA_dmat33 )

Definition at line 736 of file vecmat.h.

Referenced by DMAT_pow(), DMAT_svdrot_new(), DMAT_svdrot_newer(), DMAT_svdrot_old(), DMAT_x_xt(), DMAT_xt_x(), main(), rot_to_shear(), and rot_to_shear_matvec().

#define TRANSPOSE_MAT  
 

Value:

( tempA_mat33.mat[0][0] = (A).mat[0][0] , \
   tempA_mat33.mat[1][0] = (A).mat[0][1] , \
   tempA_mat33.mat[2][0] = (A).mat[0][2] , \
   tempA_mat33.mat[0][1] = (A).mat[1][0] , \
   tempA_mat33.mat[1][1] = (A).mat[1][1] , \
   tempA_mat33.mat[2][1] = (A).mat[1][2] , \
   tempA_mat33.mat[0][2] = (A).mat[2][0] , \
   tempA_mat33.mat[1][2] = (A).mat[2][1] , \
   tempA_mat33.mat[2][2] = (A).mat[2][2] , tempA_mat33 )

Definition at line 379 of file vecmat.h.

Referenced by AFNI_make_voxmap(), AFNI_make_warp(), and THD_init_session().

#define UNLOAD_DFVEC3 fv,
x,
y,
z   
 

Value:

( (x)=(fv).xyz[0], \
                                 (y)=(fv).xyz[1], \
                                 (z)=(fv).xyz[2]   )

Definition at line 443 of file vecmat.h.

Referenced by main(), NUD_rotate(), and shiftdeltas().

#define UNLOAD_DMAT A,
a11,
a12,
a13,
a21,
a22,
a23,
a31,
a32,
a33   
 

Value:

( (a11) = (A).mat[0][0] , (a12) = (A).mat[0][1] ,        \
   (a13) = (A).mat[0][2] , (a21) = (A).mat[1][0] ,        \
   (a22) = (A).mat[1][1] , (a23) = (A).mat[1][2] ,        \
   (a31) = (A).mat[2][0] , (a32) = (A).mat[2][1] , (a33) = (A).mat[2][2] )

Definition at line 681 of file vecmat.h.

Referenced by main(), and shear_xzyx().

#define UNLOAD_FVEC3 fv,
x,
y,
z   
 

Value:

( (x)=(fv).xyz[0], \
                                 (y)=(fv).xyz[1], \
                                 (z)=(fv).xyz[2]   )
Take 3 floats out of THD_fvec3 fv.

Definition at line 63 of file vecmat.h.

Referenced by afi2o(), afo2i(), DRAW_ttatlas_CB(), main(), parset_bilinear(), THD_autonudge(), THD_open_ctfmri(), TT_whereami(), warp_dicom_in2out(), warp_dicom_out2in(), and warper_bilinear_det().

#define UNLOAD_IVEC3 iv,
i,
j,
k   
 

Value:

( (i)=(iv).ijk[0], \
                                 (j)=(iv).ijk[1], \
                                 (k)=(iv).ijk[2]   )
Take 3 integers out of THD_ivec3 iv.

Definition at line 51 of file vecmat.h.

Referenced by main(), RCREND_xhair_overlay(), RCREND_xhair_underlay(), SUMA_make_vnlist(), and TT_whereami().

#define UNLOAD_MAT A,
a11,
a12,
a13,
a21,
a22,
a23,
a31,
a32,
a33   
 

Value:

( (a11) = (A).mat[0][0] , (a12) = (A).mat[0][1] ,        \
   (a13) = (A).mat[0][2] , (a21) = (A).mat[1][0] ,        \
   (a22) = (A).mat[1][1] , (a23) = (A).mat[1][2] ,        \
   (a31) = (A).mat[2][0] , (a32) = (A).mat[2][1] , (a33) = (A).mat[2][2] )

Definition at line 324 of file vecmat.h.

Referenced by main(), THD_init_session(), and THD_matrix_to_orientation().

#define VECMAT_VEC A,
     MATVEC_ADD( (A).mm , (x) , (A).vv )
 

Definition at line 817 of file vecmat.h.

Referenced by afi2o(), afo2i(), ijk_warp_for(), ijk_warp_inv(), w3d_warp_func(), warp_corners(), warp_dicom_in2out(), warp_dicom_out2in(), warper_affine_for(), warper_affine_inv(), warper_bilinear_det(), warper_bilinear_for(), and warper_bilinear_inv().

#define VECSUB_DMAT A,
x,
b   
 

Value:

( tempA_dfvec3.xyz[0] = (A).mat[0][0] * ((x).xyz[0]-(b).xyz[0])  \
                         +(A).mat[0][1] * ((x).xyz[1]-(b).xyz[1])  \
                         +(A).mat[0][2] * ((x).xyz[2]-(b).xyz[2]) ,\
    tempA_dfvec3.xyz[1] = (A).mat[1][0] * ((x).xyz[0]-(b).xyz[0])  \
                         +(A).mat[1][1] * ((x).xyz[1]-(b).xyz[1])  \
                         +(A).mat[1][2] * ((x).xyz[2]-(b).xyz[2]) ,\
    tempA_dfvec3.xyz[2] = (A).mat[2][0] * ((x).xyz[0]-(b).xyz[0])  \
                         +(A).mat[2][1] * ((x).xyz[1]-(b).xyz[1])  \
                         +(A).mat[2][2] * ((x).xyz[2]-(b).xyz[2]) ,\
    tempA_dfvec3 )

Definition at line 565 of file vecmat.h.

#define VECSUB_MAT A,
x,
b   
 

Value:

( tempA_fvec3.xyz[0] = (A).mat[0][0] * ((x).xyz[0]-(b).xyz[0])  \
                        +(A).mat[0][1] * ((x).xyz[1]-(b).xyz[1])  \
                        +(A).mat[0][2] * ((x).xyz[2]-(b).xyz[2]) ,\
    tempA_fvec3.xyz[1] = (A).mat[1][0] * ((x).xyz[0]-(b).xyz[0])  \
                        +(A).mat[1][1] * ((x).xyz[1]-(b).xyz[1])  \
                        +(A).mat[1][2] * ((x).xyz[2]-(b).xyz[2]) ,\
    tempA_fvec3.xyz[2] = (A).mat[2][0] * ((x).xyz[0]-(b).xyz[0])  \
                        +(A).mat[2][1] * ((x).xyz[1]-(b).xyz[1])  \
                        +(A).mat[2][2] * ((x).xyz[2]-(b).xyz[2]) ,\
    tempA_fvec3 )

Definition at line 195 of file vecmat.h.


Variable Documentation

double dtempRWC [static]
 

Definition at line 452 of file vecmat.h.

THD_dfvec3 tempA_dfvec3 [static]
 

Definition at line 450 of file vecmat.h.

THD_dmat33 tempA_dmat33 [static]
 

Definition at line 451 of file vecmat.h.

THD_dvecmat tempA_dvm33 [static]
 

Definition at line 787 of file vecmat.h.

THD_fvec3 tempA_fvec3 [static]
 

Definition at line 68 of file vecmat.h.

THD_ivec3 tempA_ivec3 [static]
 

Definition at line 67 of file vecmat.h.

THD_mat33 tempA_mat33 [static]
 

Definition at line 69 of file vecmat.h.

THD_vecmat tempA_vm33 [static]
 

Definition at line 804 of file vecmat.h.

THD_dfvec3 tempB_dfvec3 [static]
 

Definition at line 450 of file vecmat.h.

THD_dmat33 tempB_dmat33 [static]
 

Definition at line 451 of file vecmat.h.

THD_fvec3 tempB_fvec3 [static]
 

Definition at line 68 of file vecmat.h.

THD_ivec3 tempB_ivec3 [static]
 

Definition at line 67 of file vecmat.h.

THD_mat33 tempB_mat33 [static]
 

Definition at line 69 of file vecmat.h.

float tempRWC [static]
 

Definition at line 70 of file vecmat.h.

 

Powered by Plone

This site conforms to the following standards: