#include <stdlib.h>
#include <stdio.h>
#include <gandalf/common/misc_defs.h>
#include <gandalf/linalg/3vector.h>
#include <gandalf/linalg/vec_gen.h>
Go to the source code of this file.
Classes | |
struct | Gan_Vector4 |
Structure definition for double precision floating point 4-vector. More... | |
struct | Gan_Vector4_uc |
Structure definition for unsigned character 4-vector. More... | |
struct | Gan_Vector4_i |
Structure definition for integer 4-vector. More... | |
struct | Gan_Vector4_ui |
Structure definition for unsigned integer 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 |
#define | GAN_VECTOR_TYPE Gan_Vector |
#define | GAN_VEC_ELEMENT_TYPE GAN_DOUBLE |
#define | GAN_REALTYPE double |
#define | GAN_FWRITE_LENDIAN gan_fwrite_lendian_f64 |
#define | GAN_FREAD_LENDIAN gan_fread_lendian_f64 |
#define | GAN_VEC_FPRINT gan_vec4_fprint |
#define | GAN_VEC_PRINT gan_vec4_print |
#define | GAN_VEC_FSCANF gan_vec4_fscanf |
#define | GAN_VEC_FWRITE gan_vec4_fwrite |
#define | GAN_VEC_FREAD gan_vec4_fread |
#define | GAN_VEC_ZERO_Q gan_vec4_zero_q |
#define | GAN_VEC_ZERO_S gan_vec4_zero_s |
#define | GAN_VEC_COPY_Q gan_vec4_copy_q |
#define | GAN_VEC_COPY_S gan_vec4_copy_s |
#define | GAN_VEC_SCALE_Q gan_vec4_scale_q |
#define | GAN_VEC_SCALE_S gan_vec4_scale_s |
#define | GAN_VEC_SCALE_I gan_vec4_scale_i |
#define | GAN_VEC_DIVIDE_Q gan_vec4_divide_q |
#define | GAN_VEC_DIVIDE_S gan_vec4_divide_s |
#define | GAN_VEC_DIVIDE_I gan_vec4_divide_i |
#define | GAN_VEC_NEGATE_Q gan_vec4_negate_q |
#define | GAN_VEC_NEGATE_S gan_vec4_negate_s |
#define | GAN_VEC_NEGATE_I gan_vec4_negate_i |
#define | GAN_VEC_UNIT_Q gan_vec4_unit_q |
#define | GAN_VEC_UNIT_S gan_vec4_unit_s |
#define | GAN_VEC_UNIT_I gan_vec4_unit_i |
#define | GAN_VEC_ADD_Q gan_vec4_add_q |
#define | GAN_VEC_ADD_I1 gan_vec4_add_i1 |
#define | GAN_VEC_ADD_I2 gan_vec4_add_i2 |
#define | GAN_VEC_INCREMENT gan_vec4_increment |
#define | GAN_VEC_ADD_S gan_vec4_add_s |
#define | GAN_VEC_SUB_Q gan_vec4_sub_q |
#define | GAN_VEC_SUB_I1 gan_vec4_sub_i1 |
#define | GAN_VEC_SUB_I2 gan_vec4_sub_i2 |
#define | GAN_VEC_DECREMENT gan_vec4_decrement |
#define | GAN_VEC_SUB_S gan_vec4_sub_s |
#define | GAN_VEC_DOT_Q gan_vec4_dot_q |
#define | GAN_VEC_DOT_S gan_vec4_dot_s |
#define | GAN_VEC_SQRLEN_Q gan_vec4_sqrlen_q |
#define | GAN_VEC_SQRLEN_S gan_vec4_sqrlen_s |
#define | GAN_VEC_FROM_VEC_Q gan_vec4_from_vec_q |
#define | GAN_VEC_FROM_VEC_S gan_vec4_from_vec_s |
Typedefs | |
typedef Gan_Vector4 | Gan_Vector4 |
Structure definition for double precision floating point 4-vector. | |
typedef Gan_Vector4 | Gan_Vector4_d |
Structure definition for double precision floating point 4-vector. | |
typedef Gan_Vector4_uc | Gan_Vector4_uc |
Structure definition for unsigned character 4-vector. | |
typedef Gan_Vector4_i | Gan_Vector4_i |
Structure definition for integer 4-vector. | |
typedef Gan_Vector4_ui | Gan_Vector4_ui |
Structure definition for unsigned integer 4-vector. | |
Functions | |
Gan_Vector4 * | gan_vec4_fill_q (Gan_Vector4 *p, double X, double Y, double Z, double W) |
Macro: Fill 4-vector with values. | |
Gan_Vector3 * | gan_vec4_get_v3t_q (const Gan_Vector4 *p, Gan_Vector3 *q) |
Macro: Extract top 3-vector part of 4-vector. | |
Gan_Vector4 * | gan_vec4_set_parts_q (Gan_Vector4 *p, const Gan_Vector3 *q, double s) |
Macro: Build 4-vector from 3-vector and scalar. | |
Gan_Vector4 * | gan_vec4_set_blocks_q (Gan_Vector4 *p, const Gan_Vector2 *q, const Gan_Vector2 *r) |
Macro: Build 4-vector from two 2-vectors. | |
Gan_Vector4 * | gan_vec4_zero_q (Gan_Vector4 *p) |
Macro: Fill fixed size vector with zero. | |
Gan_Vector4 * | gan_vec4_copy_q (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Copy fixed size vector. | |
Gan_Vector4 * | gan_vec4_scale_q (Gan_Vector4 *p, double a, Gan_Vector4 *q) |
Macro: Scale fixed size vector. | |
Gan_Vector4 * | gan_vec4_scale_i (Gan_Vector4 *p, double a) |
Macro: Scale fixed size vector. | |
Gan_Vector4 * | gan_vec4_divide_q (Gan_Vector4 *p, double a, Gan_Vector4 *q) |
Macro: Divide fixed size vector by scalar. | |
Gan_Vector4 * | gan_vec4_divide_i (Gan_Vector4 *p, double a) |
Macro: Divide fixed size vector by scalar. | |
Gan_Vector4 * | gan_vec4_negate_q (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Negate fixed size vector. | |
Gan_Vector4 * | gan_vec4_negate_i (Gan_Vector4 *p) |
Macro: Negate fixed size vector. | |
Gan_Vector4 * | gan_vec4_unit_i (Gan_Vector4 *p) |
Macro: Scale vector to unit norm. | |
Gan_Vector4 * | gan_vec4_add_q (Gan_Vector4 *p, Gan_Vector4 *q, Gan_Vector4 *r) |
Macro: Add two fixed size vectors. | |
Gan_Vector4 * | gan_vec4_add_i1 (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Add two fixed size vectors. | |
Gan_Vector4 * | gan_vec4_add_i2 (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Add two fixed size vectors. | |
Gan_Vector4 * | gan_vec4_increment (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Increment a fixed size vector by another. | |
Gan_Vector4 * | gan_vec4_sub_q (Gan_Vector4 *p, Gan_Vector4 *q, Gan_Vector4 *r) |
Macro: Subtract two fixed size vectors. | |
Gan_Vector4 * | gan_vec4_sub_i1 (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Subtract two fixed size vectors. | |
Gan_Vector4 * | gan_vec4_sub_i2 (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Subtract two fixed size vectors. | |
Gan_Vector4 * | gan_vec4_decrement (Gan_Vector4 *p, Gan_Vector4 *q) |
Macro: Decrement a fixed size vector by another. | |
double | gan_vec4_dot_q (const Gan_Vector4 *p, const Gan_Vector4 *q) |
Macro: Dot product of fixed size vectors. | |
double | gan_vec4_sqrlen_q (const Gan_Vector4 *p) |
Macro: Returns sum of squares of vector elements. |
Part of: Gandalf Library
|
Value: (a p1 b q1, a p2 b q2,\ a p3 b q3, a p4 b q4) |
|
File:
Revision:
Notes: Not to be compiled separately |
|
File:
Revision:
Notes: Not to be compiled separately |
|
Value: (assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)&&\ sizeof(*(C))==sizeof(typeC))) |
|
Value: (assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)&&\ sizeof(*(C))==sizeof(typeC)&&sizeof(*(D))==sizeof(typeD))) |
|
Value: (assert(sizeof(*(A))==sizeof(typeA)&&sizeof(*(B))==sizeof(typeB)&&\ sizeof(*(C))==sizeof(typeC)&&sizeof(*(D))==sizeof(typeD)&&\ sizeof(*(E))==sizeof(typeE))) |