public static idVecX operator -(idVecX a)
 {
     idVecX m = new idVecX();
     m.SetTempSize(a.size);
     for (int i = 0; i < a.size; i++)
         m.p[i] = -m.p[i];
     return m;
 }
示例#2
0
        public static idVecX operator -(idVecX a)
        {
            idVecX m = new idVecX();

            m.SetTempSize(a.size);
            for (int i = 0; i < a.size; i++)
            {
                m.p[i] = -m.p[i];
            }
            return(m);
        }
        public static idVecX operator *(idVecX a, float b)
        {
            idVecX m = new idVecX();
            m.SetTempSize(a.size);
#if VECX_SIMD
            SIMDProcessor.Mul16(m.p, p, a, size);
#else
            for (int i = 0; i < a.size; i++)
                m.p[i] = a.p[i] * b;
#endif
            return m;
        }
        public static idVecX operator -(idVecX a, idVecX b)
        {
            Debug.Assert(a.size == b.size);
            idVecX m = new idVecX();
            m.SetTempSize(a.size);
#if VECX_SIMD
            SIMDProcessor.Sub16(m.p, p, a.p, size);
#else
            for (int i = 0; i < a.size; i++)
                m.p[i] = a.p[i] - b.p[i];
#endif
            return m;
        }
示例#5
0
        public static idVecX operator *(idVecX a, float b)
        {
            idVecX m = new idVecX();

            m.SetTempSize(a.size);
#if VECX_SIMD
            SIMDProcessor.Mul16(m.p, p, a, size);
#else
            for (int i = 0; i < a.size; i++)
            {
                m.p[i] = a.p[i] * b;
            }
#endif
            return(m);
        }
示例#6
0
        public static idVecX operator +(idVecX a, idVecX b)
        {
            Debug.Assert(a.size == b.size);
            idVecX m = new idVecX();

            m.SetTempSize(a.size);
#if VECX_SIMD
            SIMDProcessor.Add16(m.p, a.p, b.p, a.size);
#else
            for (int i = 0; i < a.size; i++)
            {
                m.p[i] = a.p[i] + b.p[i];
            }
#endif
            return(m);
        }
示例#7
0
        public idVecX Normalize()
        {
            idVecX m   = new idVecX();
            float  sum = 0.0f;

            m.SetTempSize(size);
            for (int i = 0; i < size; i++)
            {
                sum += p[i] * p[i];
            }
            float invSqrt = idMath.InvSqrt(sum);

            for (int i = 0; i < size; i++)
            {
                m.p[i] = p[i] * invSqrt;
            }
            return(m);
        }
 public idVecX Normalize()
 {
     idVecX m = new idVecX();
     float sum = 0.0f;
     m.SetTempSize(size);
     for (int i = 0; i < size; i++)
         sum += p[i] * p[i];
     float invSqrt = idMath.InvSqrt(sum);
     for (int i = 0; i < size; i++)
         m.p[i] = p[i] * invSqrt;
     return m;
 }