Main Page   Modules   Compound List   File List   Compound Members   File Members  

4vectorf.h File Reference

#include <stdlib.h>
#include <stdio.h>
#include <gandalf/common/misc_defs.h>
#include <gandalf/linalg/3vectorf.h>
#include <gandalf/linalg/vecf_gen.h>

Go to the source code of this file.

Compounds

struct  Gan_Vector4_f
 Structure definition for single precision floating point 4-vector. More...


Defines

#define GAN_REP4_AS(a, b, p1, p2, p3, p4)   (a p1 b, a p2 b, a p3 b, a p4 b)
#define GAN_REP4_AS_C(a, b)   GAN_REP4_AS(a,b,x,y,z,w)
#define GAN_REP4_A(a, p1, p2, p3, p4)   (a p1, a p2, a p3, a p4)
#define GAN_REP4_A_C(a)   GAN_REP4_A(a,x,y,z,w)
#define GAN_FREP4_A(a, b, p1, p2, p3, p4, q1, q2, q3, q4)
#define GAN_FREP4_A_C(a, b, p1, p2, p3, p4)   GAN_FREP4_A(a,b,x,y,z,w,p1,p2,p3,p4)
#define GAN_REP4_ABS(a, b, c, p1, p2, p3, p4, q1, q2, q3, q4)   (a p1 b q1 c, a p2 b q2 c, a p3 b q3 c, a p4 b q4 c)
#define GAN_REP4_AAS(a, b, c, p1, p2, p3, p4)   GAN_REP4_ABS(a,b,c,p1,p2,p3,p4,p1,p2,p3,p4)
#define GAN_REP4_AAS_C(a, b, c)   GAN_REP4_AAS(a,b,c,x,y,z,w)
#define GAN_REP4_AB(a, b, p1, p2, p3, p4, q1, q2, q3, q4)   (a p1 b q1, a p2 b q2, a p3 b q3, a p4 b q4)
#define GAN_REP4_AA(a, b, p1, p2, p3, p4)   GAN_REP4_AB(a,b,p1,p2,p3,p4,p1,p2,p3,p4)
#define GAN_REP4_AA_C(a, b)   GAN_REP4_AA(a,b,x,y,z,w)
#define GAN_REP4_ABCS(a, b, c, d, p1, p2, p3, p4, q1, q2, q3, q4, r1, r2, r3, r4)   (a p1 b q1 c r1 d, a p2 b q2 c r2 d, a p3 b q3 c r3 d, a p4 b q4 c r4 d)
#define GAN_REP4_ABC(a, b, c, p1, p2, p3, p4, q1, q2, q3, q4, r1, r2, r3, r4)   (a p1 b q1 c r1, a p2 b q2 c r2, a p3 b q3 c r3, a p4 b q4 c r4)
#define GAN_REP4_AAA(a, b, c, p1, p2, p3, p4)   GAN_REP4_ABC(a,b,c,p1,p2,p3,p4,p1,p2,p3,p4,p1,p2,p3,p4)
#define GAN_REP4_AAA_C(a, b, c)   GAN_REP4_AAA(a,b,c,x,y,z,w)
#define GAN_REP4_OP_AB(a, b, p1, p2, p3, p4, q1, q2, q3, q4, op)   (a p1 b q1 op a p2 b q2 op a p3 b q3 op a p4 b q4)
#define GAN_REP4_OP_AA(a, b, p1, p2, p3, p4, op)   GAN_REP4_OP_AB(a,b,p1,p2,p3,p4,p1,p2,p3,p4,op)
#define GAN_REP4_OP_AA_C(a, b, op)   GAN_REP4_OP_AA(a,b,x,y,z,w,op)
#define GAN_TEST_OP1(A, typeA)   assert(sizeof(*(A))==sizeof(typeA))
#define GAN_TEST_OP2(A, B, typeA, typeB)   (assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)))
#define GAN_TEST_OP3(A, B, C, typeA, typeB, typeC)
#define GAN_TEST_OP4(A, B, C, D, typeA, typeB, typeC, typeD)
#define GAN_TEST_OP5(A, B, C, D, E, typeA, typeB, typeC, typeD, typeE)
#define GAN_VECTYPE   Gan_Vector4_f
#define GAN_VECTOR_TYPE   Gan_Vector_f
#define GAN_VEC_ELEMENT_TYPE   GAN_FLOAT
#define GAN_REALTYPE   float
#define GAN_VEC_FPRINT   gan_vec4f_fprint
#define GAN_VEC_PRINT   gan_vec4f_print
#define GAN_VEC_FSCANF   gan_vec4f_fscanf
#define GAN_VEC_FWRITE   gan_vec4f_fwrite
#define GAN_VEC_FREAD   gan_vec4f_fread
#define GAN_VEC_ZERO_Q   gan_vec4f_zero_q
#define GAN_VEC_ZERO_S   gan_vec4f_zero_s
#define GAN_VEC_COPY_Q   gan_vec4f_copy_q
#define GAN_VEC_COPY_S   gan_vec4f_copy_s
#define GAN_VEC_SCALE_Q   gan_vec4f_scale_q
#define GAN_VEC_SCALE_S   gan_vec4f_scale_s
#define GAN_VEC_SCALE_I   gan_vec4f_scale_i
#define GAN_VEC_DIVIDE_Q   gan_vec4f_divide_q
#define GAN_VEC_DIVIDE_S   gan_vec4f_divide_s
#define GAN_VEC_DIVIDE_I   gan_vec4f_divide_i
#define GAN_VEC_NEGATE_Q   gan_vec4f_negate_q
#define GAN_VEC_NEGATE_S   gan_vec4f_negate_s
#define GAN_VEC_NEGATE_I   gan_vec4f_negate_i
#define GAN_VEC_UNIT_Q   gan_vec4f_unit_q
#define GAN_VEC_UNIT_S   gan_vec4f_unit_s
#define GAN_VEC_UNIT_I   gan_vec4f_unit_i
#define GAN_VEC_ADD_Q   gan_vec4f_add_q
#define GAN_VEC_ADD_I1   gan_vec4f_add_i1
#define GAN_VEC_ADD_I2   gan_vec4f_add_i2
#define GAN_VEC_INCREMENT   gan_vec4f_increment
#define GAN_VEC_ADD_S   gan_vec4f_add_s
#define GAN_VEC_SUB_Q   gan_vec4f_sub_q
#define GAN_VEC_SUB_I1   gan_vec4f_sub_i1
#define GAN_VEC_SUB_I2   gan_vec4f_sub_i2
#define GAN_VEC_DECREMENT   gan_vec4f_decrement
#define GAN_VEC_SUB_S   gan_vec4f_sub_s
#define GAN_VEC_DOT_Q   gan_vec4f_dot_q
#define GAN_VEC_DOT_S   gan_vec4f_dot_s
#define GAN_VEC_SQRLEN_Q   gan_vec4f_sqrlen_q
#define GAN_VEC_SQRLEN_S   gan_vec4f_sqrlen_s
#define GAN_VEC_FROM_VEC_Q   gan_vec4f_from_vecf_q
#define GAN_VEC_FROM_VEC_S   gan_vec4f_from_vecf_s

Typedefs

typedef Gan_Vector4_f Gan_Vector4_f
 Structure definition for single precision floating point 4-vector.


Functions

Gan_Vector4_fgan_vec4f_fill_q (Gan_Vector4_f *p, float X, float Y, float Z, float W)
 Macro: Fill 4-vector with values.

Gan_Vector3_fgan_vec4f_get_v3t_q (Gan_Vector4_f *p, Gan_Vector3_f *q)
 Macro: Extract top 3-vector part of 4-vector.

Gan_Vector4_fgan_vec4f_set_parts_q (Gan_Vector4_f *p, Gan_Vector3_f *q, float s)
 Macro: Build 4-vector from 3-vector and scalar.

Gan_Vector4_fgan_vec4f_set_blocks_q (Gan_Vector4_f *p, Gan_Vector2_f *q, Gan_Vector2_f *r)
 Macro: Build 4-vector from two 2-vectors.

Gan_Vector4_fgan_vec4f_zero_q (Gan_Vector4_f *p)
 Macro: Fill fixed size vector with zero.

Gan_Vector4_fgan_vec4f_copy_q (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Copy fixed size vector.

Gan_Vector4_fgan_vec4f_scale_q (Gan_Vector4_f *p, float a, Gan_Vector4_f *q)
 Macro: Scale fixed size vector.

Gan_Vector4_fgan_vec4f_scale_i (Gan_Vector4_f *p, float a)
 Macro: Scale fixed size vector.

Gan_Vector4_fgan_vec4f_divide_q (Gan_Vector4_f *p, float a, Gan_Vector4_f *q)
 Macro: Divide fixed size vector by scalar.

Gan_Vector4_fgan_vec4f_divide_i (Gan_Vector4_f *p, float a)
 Macro: Divide fixed size vector by scalar.

Gan_Vector4_fgan_vec4f_negate_q (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Negate fixed size vector.

Gan_Vector4_fgan_vec4f_negate_i (Gan_Vector4_f *p)
 Macro: Negate fixed size vector.

Gan_Vector4_fgan_vec4f_unit_i (Gan_Vector4_f *p)
 Macro: Scale vector to unit norm.

Gan_Vector4_fgan_vec4f_add_q (Gan_Vector4_f *p, Gan_Vector4_f *q, Gan_Vector4_f *r)
 Macro: Add two fixed size vectors.

Gan_Vector4_fgan_vec4f_add_i1 (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Add two fixed size vectors.

Gan_Vector4_fgan_vec4f_add_i2 (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Add two fixed size vectors.

Gan_Vector4_fgan_vec4f_increment (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Increment a fixed size vector by another.

Gan_Vector4_fgan_vec4f_sub_q (Gan_Vector4_f *p, Gan_Vector4_f *q, Gan_Vector4_f *r)
 Macro: Subtract two fixed size vectors.

Gan_Vector4_fgan_vec4f_sub_i1 (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Subtract two fixed size vectors.

Gan_Vector4_fgan_vec4f_sub_i2 (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Subtract two fixed size vectors.

Gan_Vector4_fgan_vec4f_decrement (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Decrement a fixed size vector by another.

float gan_vec4f_dot_q (Gan_Vector4_f *p, Gan_Vector4_f *q)
 Macro: Dot product of fixed size vectors.

float gan_vec4f_sqrlen_q (Gan_Vector4_f *p)
 Macro: Returns sum of squares of vector elements.

Gan_Vector4_f gan_vec4f_from_vecf_s (Gan_Vector_f *x)
 Macro: Convert generic vector to fixed size vector.


Detailed Description

Module: Size 4 vectors (single precision)

Part of: Gandalf Library

Revision: Last edited: Author:

Copyright: (c) 2000 Imagineer Software Limited


Define Documentation

#define GAN_FREP4_A a,
b,
p1,
p2,
p3,
p4,
q1,
q2,
q3,
q4   
 

Value:

(a p1 b q1, a p2 b q2,\
     a p3 b q3, a p4 b q4)

#define GAN_REP4_AS a,
b,
p1,
p2,
p3,
p4       (a p1 b, a p2 b, a p3 b, a p4 b)
 

File: Module: Macros for 4-fold repetition of vector/matrix operations Part of: Gandalf Library

Revision: Last edited: Author: Copyright: (c) 2000 Imagineer Software Limited

Notes: Not to be compiled separately

#define GAN_TEST_OP1 A,
typeA       assert(sizeof(*(A))==sizeof(typeA))
 

File: Module: Matrix/vector macros Part of: Gandalf Library

Revision: Last edited: Author: Copyright: (c) 2000 Imagineer Software Limited

Notes: Not to be compiled separately

#define GAN_TEST_OP3 A,
B,
C,
typeA,
typeB,
typeC   
 

Value:

(assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)&&\
          sizeof(*(C))==sizeof(typeC)))

#define GAN_TEST_OP4 A,
B,
C,
D,
typeA,
typeB,
typeC,
typeD   
 

Value:

(assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)&&\
          sizeof(*(C))==sizeof(typeC)&&sizeof(*(D))==sizeof(typeD)))

#define GAN_TEST_OP5 A,
B,
C,
D,
E,
typeA,
typeB,
typeC,
typeD,
typeE   
 

Value:

(assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)&&\
          sizeof(*(C))==sizeof(typeC)&&sizeof(*(D))==sizeof(typeD)&&\
          sizeof(*(E))==sizeof(typeE)))


Function Documentation

Gan_Vector4_f gan_vec4f_from_vecf_s Gan_Vector_f   x
 

Macro: Convert generic vector to fixed size vector.

Converts general vector x to fixed-size vector, returning the result as a new fixed size vector.


Generated on Mon Oct 13 16:14:38 2003 by doxygen1.3-rc1