22 #ifndef __D_GENERAL_VECTOR_H__
23 #define __D_GENERAL_VECTOR_H__
25 #include "dCoreStdafx.h"
30 T dSQRH(
const T num,
const T den)
33 return T(sqrt(T(1.0f) + r * r));
37 T dPythag(
const T a,
const T b)
41 return (absa > absb) ? (absa * dSQRH(absb, absa)) : ((absb == T(0.0f) ? T(0.0f) : (absb * dSQRH(absa, absb))));
45 T dSign(
const T a,
const T b)
47 return (b >= T(0.0f)) ? (a >= T(0.0f) ? a : -a) : (a >= T(0.0f) ? -a : a);
52 T dDotProduct(dInt32 size,
const T*
const A,
const T*
const B)
55 for (dInt32 i = 0; i < size; i++)
57 val = val + A[i] * B[i];
63 void dAdd(dInt32 size, T*
const X,
const T*
const A,
const T*
const B)
65 for (dInt32 i = 0; i < size; i++)
72 void dSub(dInt32 size, T*
const X,
const T*
const A,
const T*
const B)
74 for (dInt32 i = 0; i < size; i++)
81 void dMulAdd(dInt32 size, T*
const X,
const T*
const A,
const T*
const B, T C)
83 for (dInt32 i = 0; i < size; i++)
85 X[i] = A[i] + B[i] * C;