summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/vfp.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/vfp.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/vfp.h')
-rw-r--r--common/quicktime_win32/vfp.h549
1 files changed, 549 insertions, 0 deletions
diff --git a/common/quicktime_win32/vfp.h b/common/quicktime_win32/vfp.h
new file mode 100644
index 0000000..c610378
--- /dev/null
+++ b/common/quicktime_win32/vfp.h
@@ -0,0 +1,549 @@
+/*
+ File: vfp.h
+
+ Contains: MathLib style functions for vectors
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1999-2001 by Apple Computer, Inc., all rights reserved.
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __VFP__
+#define __VFP__
+
+#ifndef __CONDITIONALMACROS__
+#include <ConditionalMacros.h>
+#endif
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+/*
+-------------------------------------------------------------------------------
+
+ A collection of numerical functions designed to facilitate a wide
+ range of numerical programming for the Altivec Programming model.
+
+-------------------------------------------------------------------------------
+*/
+#ifdef __VEC__
+/*
+------------------------[ Computational Functions]-----------------------------
+
+ vdivf C = A . B
+ vsqrtf B = .A
+ vrsqrtf B = 1/.A
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vdivf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vdivf(vector float A, vector float B);
+
+
+/*
+ * vsqrtf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vsqrtf(vector float X);
+
+
+/*
+ * vrsqrtf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vrsqrtf(vector float X);
+
+
+
+
+/*
+--------------------------[ Exponential Functions]-----------------------------
+
+ vexpf B = Exp(A)
+ vexpm1f ExpM1(x) = Exp(x) - 1. But, for small enough arguments,
+ ExpM1(x) is expected to be more accurate than Exp(x) - 1.
+ vlogf B = Log(A)
+ vlog1pf Log1P = Log(1 + x). But, for small enough arguments,
+ Log1P is expected to be more accurate than Log(1 + x).
+ vlogbf Extracts the exponent of its argument, as a signed integral
+ value. A subnormal argument is treated as though it were first
+ normalized. Thus:
+ 1 <= x * 2^(-logb(x)) < 2
+ vscalbf Computes x * 2^n efficently. This is not normally done by
+ computing 2^n explicitly.
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vexpf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vexpf(vector float X);
+
+
+/*
+ * vexpm1f()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vexpm1f(vector float X);
+
+
+/*
+ * vlogf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vlogf(vector float X);
+
+
+/*
+ * vlog1pf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vlog1pf(vector float X);
+
+
+/*
+ * vlogbf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vlogbf(vector float X);
+
+
+/*
+ * vscalbf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vscalbf(vector float X, vector signed int n);
+
+
+
+
+/*
+---------------------------[ Auxiliary Functions]------------------------------
+
+ vfabf Absolute value is part of the programming model, however
+ completeness it is included in the library.
+ vcopysignf Produces a value with the magnitude of its first argument
+ and sign of its second argument. NOTE: the order of the
+ arguments matches the recommendation of the IEEE 754
+ floating point standard, which is opposite from the SANE
+ copysign function.
+ vnextafterf Computes the next representable value after 'x' in the
+ direction of 'y'. if x == y, then y is returned.
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vfabf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vfabf(vector float v);
+
+
+/*
+ * vcopysignf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vcopysignf(vector float arg2, vector float arg1);
+
+
+/*
+ * vnextafterf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vnextafterf(vector float x, vector float y);
+
+
+
+
+/*
+-----------------------------[ Inquiry Functions]------------------------------
+
+ vclassifyf Returns one of the FP_* values.
+ vsignbitf Non-zero if and only if the sign of the argument x is
+ negative. This includes, NaNs, infinities and zeros.
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vclassifyf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector unsigned int ) vclassifyf(vector float arg);
+
+
+/*
+ * vsignbitf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector unsigned int ) vsignbitf(vector float arg);
+
+
+
+
+/*
+-------------------------[ Transcendental Functions]----------------------------
+
+ vsinf B = Sin(A).
+ vcosf B = Cos(A).
+ vtanf B = Tan(A).
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vsinf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vsinf(vector float arg);
+
+
+/*
+ * vcosf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vcosf(vector float arg);
+
+
+/*
+ * vtanf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vtanf(vector float arg);
+
+
+
+
+/*
+-------------------------[ Trigonometric Functions]----------------------------
+
+ vasinf result is in [-pi/2,pi/2].
+ vacosf result is in [0,pi].
+ vatanf result is in [-pi/2,pi/2].
+ vatan2f Computes the arc tangent of y/x in [-pi,pi] using the sign of
+ both arguments to determine the quadrant of the computed value.
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vasinf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vasinf(vector float arg);
+
+
+/*
+ * vacosf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vacosf(vector float arg);
+
+
+/*
+ * vatanf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vatanf(vector float arg);
+
+
+/*
+ * vatan2f()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vatan2f(vector float arg1, vector float arg2);
+
+
+
+
+/*
+--------------------------[ Hyperbolic Functions]------------------------------
+
+ vsinhf Sine Hyperbolic.
+ vcoshf Cosine Hyperbolic.
+ vtanhf Tangent Hyperbolic.
+ vasinhf Arcsine Hyperbolic.
+ vacoshf Arccosine Hyperbolic.
+ vatanhf Atctangent Hyperbolic.
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vsinhf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vsinhf(vector float X);
+
+
+/*
+ * vcoshf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vcoshf(vector float X);
+
+
+/*
+ * vtanhf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vtanhf(vector float X);
+
+
+/*
+ * vasinhf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vasinhf(vector float X);
+
+
+/*
+ * vacoshf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vacoshf(vector float X);
+
+
+/*
+ * vatanhf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vatanhf(vector float X);
+
+
+
+
+/*
+---------------------------[ Remainder Functions]------------------------------
+
+ vfmodf B = X mod Y.
+ vremainderf IEEE 754 floating point standard for remainder.
+ vremquof SANE remainder. It stores into 'quotient' the 7 low-order
+ bits of the integer quotient x/y, such that:
+ -127 <= quotient <= 127.
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vfmodf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vfmodf(vector float X, vector float Y);
+
+
+/*
+ * vremainderf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vremainderf(vector float X, vector float Y);
+
+
+/*
+ * vremquof()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vremquof(vector float X, vector float Y, vector unsigned int *QUO);
+
+
+
+
+/*
+------------------------------[ Power Functions]------------------------------
+
+ vipowf Returns x raised to the integer power of y.
+ vpowf Returns x raised to the power of y. Result is more
+ accurate than using exp(log(x)*y).
+
+-------------------------------------------------------------------------------
+*/
+/*
+ * vipowf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vipowf(vector float X, vector signed int Y);
+
+
+/*
+ * vpowf()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector float ) vpowf(vector float X, vector float Y);
+
+
+
+
+/*
+-------------------------------------------------------------------------------
+ Useful
+-------------------------------------------------------------------------------
+*/
+/*
+ * vtablelookup()
+ *
+ * Availability:
+ * Non-Carbon CFM: in vecLib 1.0 and later
+ * CarbonLib: not in Carbon, but vecLib is compatible with CarbonLib
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( vector unsigned int ) vtablelookup(vector signed int Index_Vect, unsigned long *Table);
+
+
+#endif /* defined(__VEC__) */
+
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VFP__ */
+