Home

Resume

Blog

Teikitu


/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
/*  »Project«   Teikitu Gaming System (TgS) (∂)
    »File«      TgS (MSVC-X86) Common - Math [Vector].h
    »Author«    Andrew Aye (EMail: mailto:andrew.aye@gmail.com, Web: http://www.andrewaye.com)
    »Version«   4.51 / »GUID« A9981407-3EC9-42AF-8B6F-8BE6DD919615                                                                                                        */
/* ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
/*  Copyright: © 2002-2017, Andrew Aye.  All Rights Reserved.
    This software is free for non-commercial use.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
    following conditions are met:
    Redistribution of source code must retain this copyright notice, this list of conditions and the following disclaimers.
    Redistribution in binary form must reproduce this copyright notice, this list of conditions and the following disclaimers in the documentation and other materials
    provided with the distribution.
    The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
    The intellectual property rights of the algorithms used reside with Andrew Aye.
    You may not use this software, in whole or in part, in support of any commercial product without the express written consent of the author.
    There is no warranty or other guarantee of fitness of this software for any purpose. It is provided solely "as is".                                                   */
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
#if !defined(TGS_MSVC_X86_COMMON_MATH_VECTOR_H)
#define TGS_MSVC_X86_COMMON_MATH_VECTOR_H
#pragma once

#ifdef TGS_COMMON_MATH_VECTOR_SPECIALIZATION
    #error "Previous Math Specialization Already Exists"
#endif

#define TGS_COMMON_MATH_VECTOR_SPECIALIZATION


/* == Common ============================================================================================================================================================ */

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Public Types                                                                                                                                                          */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */

#define C_TgVEC_M_U08_16                const __m128i
#define P_TgVEC_M_U08_16                __m128i *
#define PC_TgVEC_M_U08_16               __m128i * const
#define PCU_TgVEC_M_U08_16              __m128i * const __restrict
#define PU_TgVEC_M_U08_16               __m128i * __restrict
#define CP_TgVEC_M_U08_16               const __m128i *
#define CPU_TgVEC_M_U08_16              const __m128i * __restrict
#define CPC_TgVEC_M_U08_16              const __m128i * const
#define CPCU_TgVEC_M_U08_16             const __m128i * const __restrict
#define PP_TgVEC_M_U08_16               __m128i**
#define PP_UTgVEC_M_U08_16              __m128i ** __restrict
#define CPCPU_TgVEC_M_U08_16            const __m128i *const * __restrict
#define CPPU_TgVEC_M_U08_16             const __m128i ** __restrict
#define PPCU_TgVEC_M_U08_16             __m128i ** const __restrict
#define TgVEC_M_U08_16                  __m128i

#define C_TgVEC_M_U16_08                const __m128i
#define P_TgVEC_M_U16_08                __m128i *
#define PC_TgVEC_M_U16_08               __m128i * const
#define PCU_TgVEC_M_U16_08              __m128i * const __restrict
#define PU_TgVEC_M_U16_08               __m128i * __restrict
#define CP_TgVEC_M_U16_08               const __m128i *
#define CPU_TgVEC_M_U16_08              const __m128i * __restrict
#define CPC_TgVEC_M_U16_08              const __m128i * const
#define CPCU_TgVEC_M_U16_08             const __m128i * const __restrict
#define PP_TgVEC_M_U16_08               __m128i**
#define PP_UTgVEC_M_U16_08              __m128i ** __restrict
#define CPCPU_TgVEC_M_U16_08            const __m128i *const * __restrict
#define CPPU_TgVEC_M_U16_08             const __m128i ** __restrict
#define PPCU_TgVEC_M_U16_08             __m128i ** const __restrict
#define TgVEC_M_U16_08                  __m128i

#define C_TgVEC_M_U32_04                const __m128i
#define P_TgVEC_M_U32_04                __m128i *
#define PC_TgVEC_M_U32_04               __m128i * const
#define PCU_TgVEC_M_U32_04              __m128i * const __restrict
#define PU_TgVEC_M_U32_04               __m128i * __restrict
#define CP_TgVEC_M_U32_04               const __m128i *
#define CPU_TgVEC_M_U32_04              const __m128i * __restrict
#define CPC_TgVEC_M_U32_04              const __m128i * const
#define CPCU_TgVEC_M_U32_04             const __m128i * const __restrict
#define PP_TgVEC_M_U32_04               __m128i**
#define PP_UTgVEC_M_U32_04              __m128i ** __restrict
#define CPCPU_TgVEC_M_U32_04            const __m128i *const * __restrict
#define CPPU_TgVEC_M_U32_04             const __m128i ** __restrict
#define PPCU_TgVEC_M_U32_04             __m128i ** const __restrict
#define TgVEC_M_U32_04                  __m128i

#define C_TgVEC_M_S08_16                const __m128i
#define P_TgVEC_M_S08_16                __m128i *
#define PC_TgVEC_M_S08_16               __m128i * const
#define PCU_TgVEC_M_S08_16              __m128i * const __restrict
#define PU_TgVEC_M_S08_16               __m128i * __restrict
#define CP_TgVEC_M_S08_16               const __m128i *
#define CPU_TgVEC_M_S08_16              const __m128i * __restrict
#define CPC_TgVEC_M_S08_16              const __m128i * const
#define CPCU_TgVEC_M_S08_16             const __m128i * const __restrict
#define PP_TgVEC_M_S08_16               __m128i**
#define PP_UTgVEC_M_S08_16              __m128i ** __restrict
#define CPCPU_TgVEC_M_S08_16            const __m128i *const * __restrict
#define CPPU_TgVEC_M_S08_16             const __m128i ** __restrict
#define PPCU_TgVEC_M_S08_16             __m128i ** const __restrict
#define TgVEC_M_S08_16                  __m128i

#define C_TgVEC_M_S16_08                const __m128i
#define P_TgVEC_M_S16_08                __m128i *
#define PC_TgVEC_M_S16_08               __m128i * const
#define PCU_TgVEC_M_S16_08              __m128i * const __restrict
#define PU_TgVEC_M_S16_08               __m128i * __restrict
#define CP_TgVEC_M_S16_08               const __m128i *
#define CPU_TgVEC_M_S16_08              const __m128i * __restrict
#define CPC_TgVEC_M_S16_08              const __m128i * const
#define CPCU_TgVEC_M_S16_08             const __m128i * const __restrict
#define PP_TgVEC_M_S16_08               __m128i**
#define PP_UTgVEC_M_S16_08              __m128i ** __restrict
#define CPCPU_TgVEC_M_S16_08            const __m128i *const * __restrict
#define CPPU_TgVEC_M_S16_08             const __m128i ** __restrict
#define PPCU_TgVEC_M_S16_08             __m128i ** const __restrict
#define TgVEC_M_S16_08                  __m128i

#define C_TgVEC_M_S32_04                const __m128i
#define P_TgVEC_M_S32_04                __m128i *
#define PC_TgVEC_M_S32_04               __m128i * const
#define PCU_TgVEC_M_S32_04              __m128i * const __restrict
#define PU_TgVEC_M_S32_04               __m128i * __restrict
#define CP_TgVEC_M_S32_04               const __m128i *
#define CPU_TgVEC_M_S32_04              const __m128i * __restrict
#define CPC_TgVEC_M_S32_04              const __m128i * const
#define CPCU_TgVEC_M_S32_04             const __m128i * const __restrict
#define PP_TgVEC_M_S32_04               __m128i**
#define PP_UTgVEC_M_S32_04              __m128i ** __restrict
#define CPCPU_TgVEC_M_S32_04            const __m128i *const * __restrict
#define CPPU_TgVEC_M_S32_04             const __m128i ** __restrict
#define PPCU_TgVEC_M_S32_04             __m128i ** const __restrict
#define TgVEC_M_S32_04                  __m128i

#define C_TgVEC_M_F32_04                const __m128
#define P_TgVEC_M_F32_04                __m128 *
#define PC_TgVEC_M_F32_04               __m128 * const
#define PCU_TgVEC_M_F32_04              __m128 * const __restrict
#define PU_TgVEC_M_F32_04               __m128 * __restrict
#define CP_TgVEC_M_F32_04               const __m128 *
#define CPU_TgVEC_M_F32_04              const __m128 * __restrict
#define CPC_TgVEC_M_F32_04              const __m128 * const
#define CPCU_TgVEC_M_F32_04             const __m128 * const __restrict
#define PP_TgVEC_M_F32_04               __m128**
#define PP_UTgVEC_M_F32_04              __m128 ** __restrict
#define CPCPU_TgVEC_M_F32_04            const __m128 *const * __restrict
#define CPPU_TgVEC_M_F32_04             const __m128 ** __restrict
#define PPCU_TgVEC_M_F32_04             __m128 ** const __restrict
#define TgVEC_M_F32_04                  __m128

/* ====================================================================================================================================================================== */
#endif