{
	"$schema": "https://sh4zam.com/api/schema.json",
	"library": "sh4zam",
	"version": "0.9.1",
	"upstream": "https://github.com/gyrovorbis/sh4zam",
	"upstream_commit": "ba1e30c88d49df0311870b229e1dd860ef26c477",
	"generated": "2026-10-18",
	"conventions": {
		"c_prefix": "shz_",
		"cpp_namespace": "shz",
		"matrices": "column-major",
		"quaternion_order": "W, X, Y, Z",
		"angles": "radians by default; _deg variants take degrees; u16 variants take 16-bit fixed point (65536 = 2*pi)",
		"precision": "single-precision float only",
		"coordinates": "right-handed world/view space, left-handed screen/clip space (as with GL)"
	},
	"suffixes": {
		"_fsrra": "Uses FSRRA (fast approximate 1/sqrt(x)). The argument or denominator must be positive. Faster, less precise.",
		"_safe": "Guards degenerate input (zero-length vectors, zero denominators) at a small cost.",
		"_deg": "Angle argument is in degrees. The default is radians.",
		"u16": "Angle is a 16-bit fixed-point value: 0..65535 maps to 0..2π, the native FSCA input format.",
		"_unaligned": "Works on matrix data that is not 8-byte aligned, passed as a plain float[16]. The default routines use 64-bit paired FMOV loads that need 8-byte alignment.",
		"_transpose": "Operates with the transposed matrix (row-major input, or inverse-rotation use).",
		"_reverse": "Reversed multiplication order (pre-multiply instead of post-multiply).",
		"_wxyz": "Register/column permutation so that FTRV yields W first (cycle 4 instead of 7), which helps perspective division.",
		"_xmtrx": "Uses the XMTRX register bank as a 64-byte scratch buffer. Clobbers XMTRX.",
		"sq_": "Writes through the SH4 store queues (burst writes to memory or the PVR).",
		"memcpyN": "A numeric suffix on memcpy/memset names the element granularity or count, e.g. shz_memcpy32_1 copies exactly one 32-byte line.",
		"dot2/dot3": "Computes 2 or 3 dot products of one left-hand side against several right-hand sides in one pipelined FIPR sequence."
	},
	"modules": [
		{
			"id": "scalar",
			"title": "Scalar",
			"header": "sh4zam/shz_scalar.h",
			"cpp_header": "sh4zam/shz_scalar.hpp",
			"brief": "Scalar functions and utilities, including faster <math.h> replacements.",
			"url": "https://sh4zam.com/api/scalar/",
			"md": "https://sh4zam.com/api/scalar.md",
			"symbol_count": 56,
			"sections": [
				"Comparisons",
				"Rounding",
				"Mapping",
				"Miscellaneous",
				"FSRRA",
				"FIPR",
				"Transcendental",
				"Macros"
			]
		},
		{
			"id": "trig",
			"title": "Trigonometry",
			"header": "sh4zam/shz_trig.h",
			"cpp_header": "sh4zam/shz_trig.hpp",
			"brief": "Trig functions and utilities built around the SH4 FSCA instruction.",
			"url": "https://sh4zam.com/api/trig/",
			"md": "https://sh4zam.com/api/trig.md",
			"symbol_count": 51,
			"sections": [
				"Sin/Cos Pairs",
				"Independent Functions",
				"Inverse Functions",
				"Hyperbolic Functions",
				"Inverse Hyperbolic Functions",
				"Macros",
				"Types"
			]
		},
		{
			"id": "vector",
			"title": "Vector",
			"header": "sh4zam/shz_vector.h",
			"cpp_header": "sh4zam/shz_vector.hpp",
			"brief": "API for vector math: 2D, 3D and 4D vector types and operations.",
			"url": "https://sh4zam.com/api/vector/",
			"md": "https://sh4zam.com/api/vector.md",
			"symbol_count": 229,
			"sections": [
				"Adapters",
				"Type-Generic Routines",
				"Initializers",
				"Component-wise Operations",
				"Arithmetic",
				"Magnitude",
				"Binary Operations",
				"Miscellaneous",
				"Angles",
				"Extending",
				"Swizzling",
				"Types"
			]
		},
		{
			"id": "quat",
			"title": "Quaternion",
			"header": "sh4zam/shz_quat.h",
			"cpp_header": "sh4zam/shz_quat.hpp",
			"brief": "Routines for quaternion math.",
			"url": "https://sh4zam.com/api/quat/",
			"md": "https://sh4zam.com/api/quat.md",
			"symbol_count": 47,
			"sections": [
				"Initialization",
				"Properties",
				"Modifiers",
				"Arithmetic",
				"Miscellaneous",
				"Transformations",
				"Types"
			]
		},
		{
			"id": "matrix",
			"title": "Matrix",
			"header": "sh4zam/shz_matrix.h",
			"cpp_header": "sh4zam/shz_matrix.hpp",
			"brief": "In-memory matrix manipulation for 4x4 and smaller matrices.",
			"url": "https://sh4zam.com/api/matrix/",
			"md": "https://sh4zam.com/api/matrix.md",
			"symbol_count": 120,
			"sections": [
				"Initialization",
				"Decomposition",
				"Getting",
				"Setting",
				"Applying",
				"GL Transformations",
				"Reverse GL Transformations",
				"Transforming",
				"Miscellaneous",
				"Types",
				"Functions"
			]
		},
		{
			"id": "xmtrx",
			"title": "XMTRX",
			"header": "sh4zam/shz_xmtrx.h",
			"cpp_header": "sh4zam/shz_xmtrx.hpp",
			"brief": "API for managing the SH4's \"active matrix\", the 16 back-bank FP registers.",
			"url": "https://sh4zam.com/api/xmtrx/",
			"md": "https://sh4zam.com/api/xmtrx.md",
			"symbol_count": 156,
			"sections": [
				"Accessors",
				"Loading",
				"Storing",
				"Initialization",
				"Apply Operation",
				"GL Transformations",
				"Reverse GL Transformations",
				"Compound Operations",
				"Transformations",
				"Setters",
				"Getters",
				"Component-Wise Matrix Operations",
				"Miscellaneous",
				"Enumerations"
			]
		},
		{
			"id": "complex",
			"title": "Complex",
			"header": "sh4zam/shz_complex.h",
			"cpp_header": "sh4zam/shz_complex.hpp",
			"brief": "API for representing and operating on complex numbers, plus an SH4-optimized FFT.",
			"url": "https://sh4zam.com/api/complex/",
			"md": "https://sh4zam.com/api/complex.md",
			"symbol_count": 52,
			"sections": [
				"Preprocessor",
				"Basic",
				"Arithmetic",
				"Manipulation",
				"Transcendental",
				"Spherical Trigonometry",
				"Hyperbolic Trigonometry",
				"Signal Processing",
				"Types"
			]
		},
		{
			"id": "memory",
			"title": "Memory",
			"header": "sh4zam/shz_mem.h",
			"cpp_header": "sh4zam/shz_mem.hpp",
			"brief": "Routines for copying memory, store queues, cache operations and prefetching.",
			"url": "https://sh4zam.com/api/memory/",
			"md": "https://sh4zam.com/api/memory.md",
			"symbol_count": 23,
			"sections": [
				"C stdlib Replacements",
				"Specializations",
				"Constant-sized Operations",
				"Macros"
			]
		},
		{
			"id": "cdefs",
			"title": "Compiler Definitions",
			"header": "sh4zam/shz_cdefs.h",
			"cpp_header": "sh4zam/shz_cdefs.hpp",
			"brief": "Preprocessor definitions: back-end and target detection, TLS model, utilities and aliasing types.",
			"url": "https://sh4zam.com/api/cdefs/",
			"md": "https://sh4zam.com/api/cdefs.md",
			"symbol_count": 67,
			"sections": [
				"Back-Ends",
				"TLS Models",
				"Compiler Detection",
				"Utilities",
				"TLS Utilities",
				"Aliasing Types",
				"Macros",
				"Not in upstream reference"
			]
		},
		{
			"id": "version",
			"title": "Version",
			"header": "sh4zam/shz_version.h",
			"cpp_header": "sh4zam/shz_version.hpp",
			"brief": "Compile-time and link-time version checking of the SH4ZAM library.",
			"url": "https://sh4zam.com/api/version/",
			"md": "https://sh4zam.com/api/version.md",
			"symbol_count": 9,
			"sections": [
				"Compile-Time Utilities",
				"Link-Time Utilities"
			]
		}
	],
	"cpp": {
		"classes": [
			{
				"name": "shz::vecN",
				"ctype": null,
				"header": "sh4zam/shz_vector.hpp",
				"url": "https://sh4zam.com/api/cpp/vecn/",
				"members": [
					{
						"name": "vecN",
						"static": false,
						"signatures": [
							"shz::vecN< CRTP, C, R >::vecN() noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const vecN &other) noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const CType &other) noexcept",
							"shz::vecN< CRTP, C, R >::vecN(const volatile CType &other) noexcept"
						],
						"brief": "Default constructor, does nothing.",
						"calls": []
					},
					{
						"name": "to",
						"static": false,
						"signatures": [
							"T shz::vecN< CRTP, C, R >::to() const noexcept"
						],
						"brief": "Conversion operator for going from a SH4ZAM vector type to another layout-compatible type.",
						"calls": []
					},
					{
						"name": "deref",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::deref(const auto *raw) noexcept"
						],
						"brief": "Conversion operator for accessing an existing pointer type as though it were a refrence to a SH4ZAM type.",
						"calls": []
					},
					{
						"name": "operator+=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator+=(const CppType &other) noexcept"
						],
						"brief": "Overloaded operator for adding and accumulating a vector onto another.",
						"calls": []
					},
					{
						"name": "operator-=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator-=(const CppType &other) noexcept"
						],
						"brief": "Overloaded subtraction assignment operator, subtracts a vector from the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator*=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator*=(const CppType &other) noexcept",
							"CppType & shz::vecN< CRTP, C, R >::operator*=(float other) noexcept"
						],
						"brief": "Overloaded multiplication assignment operator, multiplies and accumulates a vector onto the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator/=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator/=(const CppType &other) noexcept",
							"CppType & shz::vecN< CRTP, C, R >::operator/=(float other) noexcept"
						],
						"brief": "Overloaded division assignment operator, divides the left vector by the right, assigning the left to the result.",
						"calls": []
					},
					{
						"name": "swizzle",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::swizzle() const noexcept"
						],
						"brief": "Swizzle oeprator which takes a compile-time list of indices as non-type template arguments for the index each element should use as its new value.",
						"calls": [
							"shz_vec_swizzle"
						]
					},
					{
						"name": "abs",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::abs() const noexcept"
						],
						"brief": "Returns a new vector whose components are the absolute value of the given vector.",
						"calls": [
							"shz_vec_abs"
						]
					},
					{
						"name": "neg",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::neg() const noexcept"
						],
						"brief": "Returns a new vector whose components are the negative values of the given vector.",
						"calls": [
							"shz_vec_neg"
						]
					},
					{
						"name": "inv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv() const noexcept"
						],
						"brief": "Returns a new vector whose components are the reciprocal values of the given vector.",
						"calls": [
							"shz_vec_inv"
						]
					},
					{
						"name": "max",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::max() const noexcept"
						],
						"brief": "Returns the maximum value of every element within the vector.",
						"calls": [
							"shz_vec_max"
						]
					},
					{
						"name": "min",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::min() const noexcept"
						],
						"brief": "Returns the minimum value of every element within the vector.",
						"calls": [
							"shz_vec_min"
						]
					},
					{
						"name": "clamp",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::clamp(float min, float max) const noexcept"
						],
						"brief": "Returns a new vector whose values are the clamped components of the given vector.",
						"calls": [
							"shz_vec_clamp"
						]
					},
					{
						"name": "floor",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::floor() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise floor of the given vector.",
						"calls": [
							"shz_vec_floor"
						]
					},
					{
						"name": "ceil",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::ceil() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise ceil of the given vector.",
						"calls": [
							"shz_vec_ceil"
						]
					},
					{
						"name": "round",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::round() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise rounding of the given vector.",
						"calls": [
							"shz_vec_round"
						]
					},
					{
						"name": "fract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::fract() const noexcept"
						],
						"brief": "Returns a new vector with the fractional part of each component.",
						"calls": [
							"shz_vec_fract"
						]
					},
					{
						"name": "sign",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sign() const noexcept"
						],
						"brief": "Returns a new vector with the sign of each component (-1, 0, or 1).",
						"calls": [
							"shz_vec_sign"
						]
					},
					{
						"name": "saturate",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::saturate() const noexcept"
						],
						"brief": "Returns a new vector with each component clamped to [0, 1].",
						"calls": [
							"shz_vec_saturate"
						]
					},
					{
						"name": "minv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::minv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise minimum of two vectors.",
						"calls": [
							"shz_vec_minv"
						]
					},
					{
						"name": "maxv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::maxv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise maximum of two vectors.",
						"calls": [
							"shz_vec_maxv"
						]
					},
					{
						"name": "inv_sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv_sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the inverse square root of the given vector.",
						"calls": [
							"shz_vec_inv_sqrtf"
						]
					},
					{
						"name": "sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the square root of the given vector.",
						"calls": [
							"shz_vec_sqrtf"
						]
					},
					{
						"name": "dot",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::dot(const CppType &other) const noexcept",
							"vec2 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2) const noexcept",
							"vec3 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2, const CppType &v3) const noexcept"
						],
						"brief": "Returns the dot product of the given vector and another.",
						"calls": [
							"shz_vec_dot"
						]
					},
					{
						"name": "magnitude",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude() const noexcept"
						],
						"brief": "Returns the magnitude of the given vector.",
						"calls": [
							"shz_vec_magnitude"
						]
					},
					{
						"name": "magnitude_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_sqr() const noexcept"
						],
						"brief": "Returns the squared magnitude of the given vector.",
						"calls": [
							"shz_vec_magnitude_sqr"
						]
					},
					{
						"name": "magnitude_inv",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_inv() const noexcept"
						],
						"brief": "Returns the inverse magnitude of the given vector.",
						"calls": [
							"shz_vec_magnitude_inv"
						]
					},
					{
						"name": "direction",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction() const noexcept"
						],
						"brief": "Returns the direction vector resulting from normalizing the given vector.",
						"calls": [
							"shz_vec_normalize"
						]
					},
					{
						"name": "direction_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction_safe() const noexcept"
						],
						"brief": "Returns the direction vector of a given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec_normalize_safe"
						]
					},
					{
						"name": "normalize",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize() noexcept"
						],
						"brief": "Normalizes the given vector.",
						"calls": [
							"shz_vec_normalize"
						]
					},
					{
						"name": "normalize_safe",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize_safe() noexcept"
						],
						"brief": "Normalizes the given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec_normalize_safe"
						]
					},
					{
						"name": "normalized",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized() const noexcept"
						],
						"brief": "Return the normalized vector.",
						"calls": [
							"shz_vec_normalize"
						]
					},
					{
						"name": "normalized_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized_safe() const noexcept"
						],
						"brief": "Return the normalized vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec_normalize_safe"
						]
					},
					{
						"name": "distance",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance(const CppType &other) const noexcept"
						],
						"brief": "Returns the magnitude of the difference between two vectors as their distance.",
						"calls": [
							"shz_vec_distance"
						]
					},
					{
						"name": "distance_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance_sqr(const CppType &other) const noexcept"
						],
						"brief": "Returns the value of the distance between two vectors squared (faster than actual distance).",
						"calls": [
							"shz_vec_distance_sqr"
						]
					},
					{
						"name": "move",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::move(const CppType &target, float maxdist) const noexcept"
						],
						"brief": "Moves the given vector towards the target by the given maxdist.",
						"calls": [
							"shz_vec_move"
						]
					},
					{
						"name": "reflect",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::reflect(const CppType &normal) const noexcept"
						],
						"brief": "Returns the vector created from reflecting the given vector over the normal of a surface.",
						"calls": [
							"shz_vec_reflect"
						]
					},
					{
						"name": "refract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::refract(const CppType &normal, float eta) const noexcept"
						],
						"brief": "Returns the vector create from refracting the given incidence vector over the normal of a surface, using the given refraction ratio index.",
						"calls": [
							"shz_vec_refract"
						]
					},
					{
						"name": "project",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another.",
						"calls": [
							"shz_vec_project"
						]
					},
					{
						"name": "project_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project_safe(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec_project_safe"
						]
					},
					{
						"name": "angle_between",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::angle_between(const CppType &other) const noexcept"
						],
						"brief": "Returns the angle between the given vector and another, in radians.",
						"calls": [
							"shz_vec_angle_between"
						]
					},
					{
						"name": "angles",
						"static": false,
						"signatures": [
							"auto shz::vecN< CRTP, C, R >::angles() const noexcept"
						],
						"brief": "Returns the angle(s) created between the given vector axis and the +X axis, in radians.",
						"calls": [
							"shz_vec_angles"
						]
					},
					{
						"name": "from",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::from(const auto &raw) noexcept"
						],
						"brief": "Conversion operator for going from a layout-compatible vector type to a SH4ZAM vector type.",
						"calls": []
					},
					{
						"name": "lerp",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::lerp(const CppType &start, const CppType &end, float t) noexcept"
						],
						"brief": "Returns the vector that is linearly interpolated between the two given vectors by the 0.0f-1.0f factor, t.",
						"calls": [
							"shz_vec_lerp"
						]
					},
					{
						"name": "step",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::step(const CppType &vec, T &&edge) noexcept"
						],
						"brief": "Compares each component of the vector to the edge. 0 returned in that component if x[i] < edge. Otherwise the component is 1.",
						"calls": [
							"shz_vec_step"
						]
					},
					{
						"name": "smoothstep",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec_smoothstep"
						]
					},
					{
						"name": "smoothstep_safe",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep_safe(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec_smoothstep_safe"
						]
					},
					{
						"name": "operator==",
						"static": false,
						"signatures": [
							"bool operator==(const CppType &lhs, const CppType &rhs) noexcept"
						],
						"brief": "Overloaded equality operator, for comparing vectors.",
						"calls": []
					},
					{
						"name": "operator-",
						"static": false,
						"signatures": [
							"CppType operator-(const CppType &vec) noexcept"
						],
						"brief": "Overloaded unary negation operator, returns the negated vector.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::vec2",
				"ctype": "shz_vec2_t",
				"header": "sh4zam/shz_vector.hpp",
				"url": "https://sh4zam.com/api/cpp/vec2/",
				"members": [
					{
						"name": "vec2",
						"static": false,
						"signatures": [
							"vec2()=default",
							"vec2(float v) noexcept",
							"vec2(float x, float y) noexcept",
							"vec2(const sincos &pair) noexcept"
						],
						"brief": "Default constructor: does nothing.",
						"calls": []
					},
					{
						"name": "cross",
						"static": false,
						"signatures": [
							"float cross(const vec2 &other) const noexcept"
						],
						"brief": "C++ wrapper for shz_vec2_cross().",
						"calls": [
							"shz_vec2_cross"
						]
					},
					{
						"name": "rotate",
						"static": false,
						"signatures": [
							"vec2 rotate(float radians) const noexcept"
						],
						"brief": "C++ wrapper for shz_vec2_rotate().",
						"calls": [
							"shz_vec2_rotate"
						]
					},
					{
						"name": "vecN",
						"static": false,
						"signatures": [
							"shz::vecN< CRTP, C, R >::vecN() noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const vecN &other) noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const CType &other) noexcept",
							"shz::vecN< CRTP, C, R >::vecN(const volatile CType &other) noexcept"
						],
						"brief": "Default constructor, does nothing.",
						"calls": []
					},
					{
						"name": "dot",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::dot(const CppType &other) const noexcept",
							"vec2 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2) const noexcept",
							"vec3 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2, const CppType &v3) const noexcept"
						],
						"brief": "Returns the dot product of the given vector and another.",
						"calls": []
					},
					{
						"name": "from_angle",
						"static": true,
						"signatures": [
							"static vec2 from_angle(float rads) noexcept"
						],
						"brief": "Constructs a vec2 from the given angle of rotation from the +X axis, in radians.",
						"calls": [
							"shz_vec2_from_angle"
						]
					},
					{
						"name": "from_angle_deg",
						"static": true,
						"signatures": [
							"static vec2 from_angle_deg(float deg) noexcept"
						],
						"brief": "Constructs a vec2 from the given angle of rotation from the +X axis, in degrees.",
						"calls": [
							"shz_vec2_from_angle_deg"
						]
					},
					{
						"name": "abs",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::abs() const noexcept"
						],
						"brief": "Returns a new vector whose components are the absolute value of the given vector.",
						"calls": [
							"shz_vec2_abs"
						]
					},
					{
						"name": "angle_between",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::angle_between(const CppType &other) const noexcept"
						],
						"brief": "Returns the angle between the given vector and another, in radians.",
						"calls": [
							"shz_vec2_angle_between"
						]
					},
					{
						"name": "angles",
						"static": false,
						"signatures": [
							"auto shz::vecN< CRTP, C, R >::angles() const noexcept"
						],
						"brief": "Returns the angle(s) created between the given vector axis and the +X axis, in radians.",
						"calls": [
							"shz_vec2_angle"
						]
					},
					{
						"name": "ceil",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::ceil() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise ceil of the given vector.",
						"calls": [
							"shz_vec2_ceil"
						]
					},
					{
						"name": "clamp",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::clamp(float min, float max) const noexcept"
						],
						"brief": "Returns a new vector whose values are the clamped components of the given vector.",
						"calls": [
							"shz_vec2_clamp"
						]
					},
					{
						"name": "deref",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::deref(const auto *raw) noexcept"
						],
						"brief": "Conversion operator for accessing an existing pointer type as though it were a refrence to a SH4ZAM type.",
						"calls": []
					},
					{
						"name": "direction",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction() const noexcept"
						],
						"brief": "Returns the direction vector resulting from normalizing the given vector.",
						"calls": [
							"shz_vec2_normalize"
						]
					},
					{
						"name": "direction_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction_safe() const noexcept"
						],
						"brief": "Returns the direction vector of a given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec2_normalize_safe"
						]
					},
					{
						"name": "distance",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance(const CppType &other) const noexcept"
						],
						"brief": "Returns the magnitude of the difference between two vectors as their distance.",
						"calls": [
							"shz_vec2_distance"
						]
					},
					{
						"name": "distance_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance_sqr(const CppType &other) const noexcept"
						],
						"brief": "Returns the value of the distance between two vectors squared (faster than actual distance).",
						"calls": [
							"shz_vec2_distance_sqr"
						]
					},
					{
						"name": "floor",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::floor() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise floor of the given vector.",
						"calls": [
							"shz_vec2_floor"
						]
					},
					{
						"name": "fract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::fract() const noexcept"
						],
						"brief": "Returns a new vector with the fractional part of each component.",
						"calls": [
							"shz_vec2_fract"
						]
					},
					{
						"name": "from",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::from(const auto &raw) noexcept"
						],
						"brief": "Conversion operator for going from a layout-compatible vector type to a SH4ZAM vector type.",
						"calls": []
					},
					{
						"name": "inv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv() const noexcept"
						],
						"brief": "Returns a new vector whose components are the reciprocal values of the given vector.",
						"calls": [
							"shz_vec2_inv"
						]
					},
					{
						"name": "inv_sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv_sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the inverse square root of the given vector.",
						"calls": [
							"shz_vec2_inv_sqrtf"
						]
					},
					{
						"name": "lerp",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::lerp(const CppType &start, const CppType &end, float t) noexcept"
						],
						"brief": "Returns the vector that is linearly interpolated between the two given vectors by the 0.0f-1.0f factor, t.",
						"calls": [
							"shz_vec2_lerp"
						]
					},
					{
						"name": "magnitude",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude() const noexcept"
						],
						"brief": "Returns the magnitude of the given vector.",
						"calls": [
							"shz_vec2_magnitude"
						]
					},
					{
						"name": "magnitude_inv",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_inv() const noexcept"
						],
						"brief": "Returns the inverse magnitude of the given vector.",
						"calls": [
							"shz_vec2_magnitude_inv"
						]
					},
					{
						"name": "magnitude_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_sqr() const noexcept"
						],
						"brief": "Returns the squared magnitude of the given vector.",
						"calls": [
							"shz_vec2_magnitude_sqr"
						]
					},
					{
						"name": "max",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::max() const noexcept"
						],
						"brief": "Returns the maximum value of every element within the vector.",
						"calls": [
							"shz_vec2_max"
						]
					},
					{
						"name": "maxv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::maxv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise maximum of two vectors.",
						"calls": [
							"shz_vec2_maxv"
						]
					},
					{
						"name": "min",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::min() const noexcept"
						],
						"brief": "Returns the minimum value of every element within the vector.",
						"calls": [
							"shz_vec2_min"
						]
					},
					{
						"name": "minv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::minv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise minimum of two vectors.",
						"calls": [
							"shz_vec2_minv"
						]
					},
					{
						"name": "move",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::move(const CppType &target, float maxdist) const noexcept"
						],
						"brief": "Moves the given vector towards the target by the given maxdist.",
						"calls": [
							"shz_vec2_move"
						]
					},
					{
						"name": "neg",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::neg() const noexcept"
						],
						"brief": "Returns a new vector whose components are the negative values of the given vector.",
						"calls": [
							"shz_vec2_neg"
						]
					},
					{
						"name": "normalize",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize() noexcept"
						],
						"brief": "Normalizes the given vector.",
						"calls": [
							"shz_vec2_normalize"
						]
					},
					{
						"name": "normalize_safe",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize_safe() noexcept"
						],
						"brief": "Normalizes the given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec2_normalize_safe"
						]
					},
					{
						"name": "normalized",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized() const noexcept"
						],
						"brief": "Return the normalized vector.",
						"calls": [
							"shz_vec2_normalize"
						]
					},
					{
						"name": "normalized_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized_safe() const noexcept"
						],
						"brief": "Return the normalized vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec2_normalize_safe"
						]
					},
					{
						"name": "operator*=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator*=(const CppType &other) noexcept"
						],
						"brief": "Overloaded multiplication assignment operator, multiplies and accumulates a vector onto the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator+=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator+=(const CppType &other) noexcept"
						],
						"brief": "Overloaded operator for adding and accumulating a vector onto another.",
						"calls": []
					},
					{
						"name": "operator-=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator-=(const CppType &other) noexcept"
						],
						"brief": "Overloaded subtraction assignment operator, subtracts a vector from the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator/=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator/=(const CppType &other) noexcept"
						],
						"brief": "Overloaded division assignment operator, divides the left vector by the right, assigning the left to the result.",
						"calls": []
					},
					{
						"name": "project",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another.",
						"calls": [
							"shz_vec2_project"
						]
					},
					{
						"name": "project_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project_safe(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec2_project_safe"
						]
					},
					{
						"name": "reflect",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::reflect(const CppType &normal) const noexcept"
						],
						"brief": "Returns the vector created from reflecting the given vector over the normal of a surface.",
						"calls": [
							"shz_vec2_reflect"
						]
					},
					{
						"name": "refract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::refract(const CppType &normal, float eta) const noexcept"
						],
						"brief": "Returns the vector create from refracting the given incidence vector over the normal of a surface, using the given refraction ratio index.",
						"calls": [
							"shz_vec2_refract"
						]
					},
					{
						"name": "round",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::round() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise rounding of the given vector.",
						"calls": [
							"shz_vec2_round"
						]
					},
					{
						"name": "saturate",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::saturate() const noexcept"
						],
						"brief": "Returns a new vector with each component clamped to [0, 1].",
						"calls": [
							"shz_vec2_saturate"
						]
					},
					{
						"name": "sign",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sign() const noexcept"
						],
						"brief": "Returns a new vector with the sign of each component (-1, 0, or 1).",
						"calls": [
							"shz_vec2_sign"
						]
					},
					{
						"name": "smoothstep",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec2_smoothstep"
						]
					},
					{
						"name": "smoothstep_safe",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep_safe(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec2_smoothstep_safe"
						]
					},
					{
						"name": "sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the square root of the given vector.",
						"calls": [
							"shz_vec2_sqrtf"
						]
					},
					{
						"name": "step",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::step(const CppType &vec, T &&edge) noexcept"
						],
						"brief": "Compares each component of the vector to the edge. 0 returned in that component if x[i] < edge. Otherwise the component is 1.",
						"calls": [
							"shz_vec2_step"
						]
					},
					{
						"name": "swizzle",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::swizzle() const noexcept"
						],
						"brief": "Swizzle oeprator which takes a compile-time list of indices as non-type template arguments for the index each element should use as its new value.",
						"calls": [
							"shz_vec2_swizzle"
						]
					},
					{
						"name": "to",
						"static": false,
						"signatures": [
							"T shz::vecN< CRTP, C, R >::to() const noexcept"
						],
						"brief": "Conversion operator for going from a SH4ZAM vector type to another layout-compatible type.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::vec3",
				"ctype": "shz_vec3_t",
				"header": "sh4zam/shz_vector.hpp",
				"url": "https://sh4zam.com/api/cpp/vec3/",
				"members": [
					{
						"name": "rotate_x",
						"static": false,
						"signatures": [
							"vec3 rotate_x(float angle) const noexcept"
						],
						"brief": "Rotates a 3D vector about the X axis by the given number of radians.",
						"calls": [
							"shz_vec3_rotate_x"
						]
					},
					{
						"name": "rotate_y",
						"static": false,
						"signatures": [
							"vec3 rotate_y(float angle) const noexcept"
						],
						"brief": "Rotates a 3D vector about the Y axis by the given number of radians.",
						"calls": [
							"shz_vec3_rotate_y"
						]
					},
					{
						"name": "rotate_z",
						"static": false,
						"signatures": [
							"vec3 rotate_z(float angle) const noexcept"
						],
						"brief": "Rotates a 3D vector about the Z axis by the given number of radians.",
						"calls": [
							"shz_vec3_rotate_z"
						]
					},
					{
						"name": "vec3",
						"static": false,
						"signatures": [
							"vec3()=default",
							"vec3(const shz_vec3_t &other) noexcept",
							"vec3(float v) noexcept",
							"vec3(float x, float y, float z) noexcept",
							"vec3(const shz::vec2 &xy, float z) noexcept",
							"vec3(float x, const shz::vec2 &yz) noexcept",
							"vec3(const sincos &azimuth, const sincos &elevation) noexcept"
						],
						"brief": "Default constructor: does nothing.",
						"calls": []
					},
					{
						"name": "xy",
						"static": false,
						"signatures": [
							"vec2 xy() const noexcept"
						],
						"brief": "",
						"calls": []
					},
					{
						"name": "cross",
						"static": false,
						"signatures": [
							"vec3 cross(const vec3 &other) const noexcept"
						],
						"brief": "Returns a 3D vector which forms the given angles with the +X axis.",
						"calls": [
							"shz_vec3_cross"
						]
					},
					{
						"name": "triple",
						"static": false,
						"signatures": [
							"float triple(const vec3 &b, const vec3 &c) const noexcept"
						],
						"brief": "Returns the 3D vector \"triple product\" between the given vector and vectors a and b.",
						"calls": [
							"shz_vec3_triple"
						]
					},
					{
						"name": "perp",
						"static": false,
						"signatures": [
							"vec3 perp() const noexcept"
						],
						"brief": "Returns a 3D vector which is perpendicular to this vector.",
						"calls": [
							"shz_vec3_perp"
						]
					},
					{
						"name": "reject",
						"static": false,
						"signatures": [
							"vec3 reject(const vec3 &onto) const noexcept"
						],
						"brief": "Returns the 3D reject vector of the given vector and another.",
						"calls": [
							"shz_vec3_reject"
						]
					},
					{
						"name": "barycenter",
						"static": false,
						"signatures": [
							"vec3 barycenter(const vec3 &a, const vec3 &b, const vec3 &c) const noexcept"
						],
						"brief": "Computes the barycentric coordinates <u, v, w> for the given 3D vector, within the plane of the triangle formed by the given vertices, a, b, and c.",
						"calls": [
							"shz_vec3_barycenter"
						]
					},
					{
						"name": "vecN",
						"static": false,
						"signatures": [
							"shz::vecN< CRTP, C, R >::vecN() noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const vecN &other) noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const CType &other) noexcept",
							"shz::vecN< CRTP, C, R >::vecN(const volatile CType &other) noexcept"
						],
						"brief": "Default constructor, does nothing.",
						"calls": []
					},
					{
						"name": "dot",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::dot(const CppType &other) const noexcept",
							"vec2 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2) const noexcept",
							"vec3 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2, const CppType &v3) const noexcept"
						],
						"brief": "Returns the dot product of the given vector and another.",
						"calls": []
					},
					{
						"name": "orthonormalize",
						"static": true,
						"signatures": [
							"static auto orthonormalize(const vec3 &in1, const vec3 &in2) noexcept",
							"static void orthonormalize(const vec3 &in1, const vec3 &in2, vec3 *out1, vec3 *out2) noexcept"
						],
						"brief": "Returns 2 3D vectors which are normalized and orthogonal to the two input vectors as a std::pair<>.",
						"calls": [
							"shz_vec3_orthonormalize"
						]
					},
					{
						"name": "cubic_hermite",
						"static": true,
						"signatures": [
							"static vec3 cubic_hermite(const vec3 &v1, const vec3 &tangent1, const vec3 &v2, const vec3 &tangent2, float amount) noexcept"
						],
						"brief": "Calculates the cubic hermite interpolation between two vectors and their tangents.",
						"calls": [
							"shz_vec3_cubic_hermite"
						]
					},
					{
						"name": "from_angles",
						"static": true,
						"signatures": [
							"static vec3 from_angles(float azimuth_rads, float elevation_rads) noexcept"
						],
						"brief": "Returns a 3D vector which forms the given angles with the +X axis, in radians.",
						"calls": [
							"shz_vec3_from_angles"
						]
					},
					{
						"name": "from_angles_deg",
						"static": true,
						"signatures": [
							"static vec3 from_angles_deg(float azimuth_deg, float elevation_deg) noexcept"
						],
						"brief": "Returns a 3D vector which forms the given angles with the +X axis, in degrees.",
						"calls": [
							"shz_vec3_from_angles_deg"
						]
					},
					{
						"name": "abs",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::abs() const noexcept"
						],
						"brief": "Returns a new vector whose components are the absolute value of the given vector.",
						"calls": [
							"shz_vec3_abs"
						]
					},
					{
						"name": "angle_between",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::angle_between(const CppType &other) const noexcept"
						],
						"brief": "Returns the angle between the given vector and another, in radians.",
						"calls": [
							"shz_vec3_angle_between"
						]
					},
					{
						"name": "angles",
						"static": false,
						"signatures": [
							"auto shz::vecN< CRTP, C, R >::angles() const noexcept"
						],
						"brief": "Returns the angle(s) created between the given vector axis and the +X axis, in radians.",
						"calls": [
							"shz_vec3_angles"
						]
					},
					{
						"name": "ceil",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::ceil() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise ceil of the given vector.",
						"calls": [
							"shz_vec3_ceil"
						]
					},
					{
						"name": "clamp",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::clamp(float min, float max) const noexcept"
						],
						"brief": "Returns a new vector whose values are the clamped components of the given vector.",
						"calls": [
							"shz_vec3_clamp"
						]
					},
					{
						"name": "deref",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::deref(const auto *raw) noexcept"
						],
						"brief": "Conversion operator for accessing an existing pointer type as though it were a refrence to a SH4ZAM type.",
						"calls": []
					},
					{
						"name": "direction",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction() const noexcept"
						],
						"brief": "Returns the direction vector resulting from normalizing the given vector.",
						"calls": [
							"shz_vec3_normalize"
						]
					},
					{
						"name": "direction_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction_safe() const noexcept"
						],
						"brief": "Returns the direction vector of a given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec3_normalize_safe"
						]
					},
					{
						"name": "distance",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance(const CppType &other) const noexcept"
						],
						"brief": "Returns the magnitude of the difference between two vectors as their distance.",
						"calls": [
							"shz_vec3_distance"
						]
					},
					{
						"name": "distance_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance_sqr(const CppType &other) const noexcept"
						],
						"brief": "Returns the value of the distance between two vectors squared (faster than actual distance).",
						"calls": [
							"shz_vec3_distance_sqr"
						]
					},
					{
						"name": "floor",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::floor() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise floor of the given vector.",
						"calls": [
							"shz_vec3_floor"
						]
					},
					{
						"name": "fract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::fract() const noexcept"
						],
						"brief": "Returns a new vector with the fractional part of each component.",
						"calls": [
							"shz_vec3_fract"
						]
					},
					{
						"name": "from",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::from(const auto &raw) noexcept"
						],
						"brief": "Conversion operator for going from a layout-compatible vector type to a SH4ZAM vector type.",
						"calls": []
					},
					{
						"name": "inv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv() const noexcept"
						],
						"brief": "Returns a new vector whose components are the reciprocal values of the given vector.",
						"calls": [
							"shz_vec3_inv"
						]
					},
					{
						"name": "inv_sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv_sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the inverse square root of the given vector.",
						"calls": [
							"shz_vec3_inv_sqrtf"
						]
					},
					{
						"name": "lerp",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::lerp(const CppType &start, const CppType &end, float t) noexcept"
						],
						"brief": "Returns the vector that is linearly interpolated between the two given vectors by the 0.0f-1.0f factor, t.",
						"calls": [
							"shz_vec3_lerp"
						]
					},
					{
						"name": "magnitude",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude() const noexcept"
						],
						"brief": "Returns the magnitude of the given vector.",
						"calls": [
							"shz_vec3_magnitude"
						]
					},
					{
						"name": "magnitude_inv",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_inv() const noexcept"
						],
						"brief": "Returns the inverse magnitude of the given vector.",
						"calls": [
							"shz_vec3_magnitude_inv"
						]
					},
					{
						"name": "magnitude_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_sqr() const noexcept"
						],
						"brief": "Returns the squared magnitude of the given vector.",
						"calls": [
							"shz_vec3_magnitude_sqr"
						]
					},
					{
						"name": "max",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::max() const noexcept"
						],
						"brief": "Returns the maximum value of every element within the vector.",
						"calls": [
							"shz_vec3_max"
						]
					},
					{
						"name": "maxv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::maxv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise maximum of two vectors.",
						"calls": [
							"shz_vec3_maxv"
						]
					},
					{
						"name": "min",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::min() const noexcept"
						],
						"brief": "Returns the minimum value of every element within the vector.",
						"calls": [
							"shz_vec3_min"
						]
					},
					{
						"name": "minv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::minv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise minimum of two vectors.",
						"calls": [
							"shz_vec3_minv"
						]
					},
					{
						"name": "move",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::move(const CppType &target, float maxdist) const noexcept"
						],
						"brief": "Moves the given vector towards the target by the given maxdist.",
						"calls": [
							"shz_vec3_move"
						]
					},
					{
						"name": "neg",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::neg() const noexcept"
						],
						"brief": "Returns a new vector whose components are the negative values of the given vector.",
						"calls": [
							"shz_vec3_neg"
						]
					},
					{
						"name": "normalize",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize() noexcept"
						],
						"brief": "Normalizes the given vector.",
						"calls": [
							"shz_vec3_normalize"
						]
					},
					{
						"name": "normalize_safe",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize_safe() noexcept"
						],
						"brief": "Normalizes the given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec3_normalize_safe"
						]
					},
					{
						"name": "normalized",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized() const noexcept"
						],
						"brief": "Return the normalized vector.",
						"calls": [
							"shz_vec3_normalize"
						]
					},
					{
						"name": "normalized_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized_safe() const noexcept"
						],
						"brief": "Return the normalized vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec3_normalize_safe"
						]
					},
					{
						"name": "operator*=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator*=(const CppType &other) noexcept"
						],
						"brief": "Overloaded multiplication assignment operator, multiplies and accumulates a vector onto the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator+=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator+=(const CppType &other) noexcept"
						],
						"brief": "Overloaded operator for adding and accumulating a vector onto another.",
						"calls": []
					},
					{
						"name": "operator-=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator-=(const CppType &other) noexcept"
						],
						"brief": "Overloaded subtraction assignment operator, subtracts a vector from the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator/=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator/=(const CppType &other) noexcept"
						],
						"brief": "Overloaded division assignment operator, divides the left vector by the right, assigning the left to the result.",
						"calls": []
					},
					{
						"name": "project",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another.",
						"calls": [
							"shz_vec3_project"
						]
					},
					{
						"name": "project_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project_safe(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec3_project_safe"
						]
					},
					{
						"name": "reflect",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::reflect(const CppType &normal) const noexcept"
						],
						"brief": "Returns the vector created from reflecting the given vector over the normal of a surface.",
						"calls": [
							"shz_vec3_reflect"
						]
					},
					{
						"name": "refract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::refract(const CppType &normal, float eta) const noexcept"
						],
						"brief": "Returns the vector create from refracting the given incidence vector over the normal of a surface, using the given refraction ratio index.",
						"calls": [
							"shz_vec3_refract"
						]
					},
					{
						"name": "round",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::round() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise rounding of the given vector.",
						"calls": [
							"shz_vec3_round"
						]
					},
					{
						"name": "saturate",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::saturate() const noexcept"
						],
						"brief": "Returns a new vector with each component clamped to [0, 1].",
						"calls": [
							"shz_vec3_saturate"
						]
					},
					{
						"name": "sign",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sign() const noexcept"
						],
						"brief": "Returns a new vector with the sign of each component (-1, 0, or 1).",
						"calls": [
							"shz_vec3_sign"
						]
					},
					{
						"name": "smoothstep",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec3_smoothstep"
						]
					},
					{
						"name": "smoothstep_safe",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep_safe(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec3_smoothstep_safe"
						]
					},
					{
						"name": "sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the square root of the given vector.",
						"calls": [
							"shz_vec3_sqrtf"
						]
					},
					{
						"name": "step",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::step(const CppType &vec, T &&edge) noexcept"
						],
						"brief": "Compares each component of the vector to the edge. 0 returned in that component if x[i] < edge. Otherwise the component is 1.",
						"calls": [
							"shz_vec3_step"
						]
					},
					{
						"name": "swizzle",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::swizzle() const noexcept"
						],
						"brief": "Swizzle oeprator which takes a compile-time list of indices as non-type template arguments for the index each element should use as its new value.",
						"calls": [
							"shz_vec3_swizzle"
						]
					},
					{
						"name": "to",
						"static": false,
						"signatures": [
							"T shz::vecN< CRTP, C, R >::to() const noexcept"
						],
						"brief": "Conversion operator for going from a SH4ZAM vector type to another layout-compatible type.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::vec4",
				"ctype": "shz_vec4_t",
				"header": "sh4zam/shz_vector.hpp",
				"url": "https://sh4zam.com/api/cpp/vec4/",
				"members": [
					{
						"name": "vec4",
						"static": false,
						"signatures": [
							"vec4()=default",
							"vec4(const shz_vec4_t &other) noexcept",
							"vec4(float v) noexcept",
							"vec4(float x, float y, float z, float w) noexcept",
							"vec4(const shz::vec2 &xy, float z, float w) noexcept",
							"vec4(float x, const shz::vec2 &yz, float w) noexcept",
							"vec4(float x, float y, const shz::vec2 &zw) noexcept",
							"vec4(const shz::vec2 &xy, const shz::vec2 &zw) noexcept",
							"vec4(const shz::vec3 &xyz, float w) noexcept",
							"vec4(float x, const shz::vec3 &yzw) noexcept"
						],
						"brief": "Default constructor: does nothing.",
						"calls": []
					},
					{
						"name": "xy",
						"static": false,
						"signatures": [
							"vec2 xy() const noexcept"
						],
						"brief": "",
						"calls": []
					},
					{
						"name": "zw",
						"static": false,
						"signatures": [
							"vec2 zw() const noexcept"
						],
						"brief": "",
						"calls": []
					},
					{
						"name": "xyz",
						"static": false,
						"signatures": [
							"vec3 xyz() const noexcept"
						],
						"brief": "",
						"calls": []
					},
					{
						"name": "vecN",
						"static": false,
						"signatures": [
							"shz::vecN< CRTP, C, R >::vecN() noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const vecN &other) noexcept=default",
							"shz::vecN< CRTP, C, R >::vecN(const CType &other) noexcept",
							"shz::vecN< CRTP, C, R >::vecN(const volatile CType &other) noexcept"
						],
						"brief": "Default constructor, does nothing.",
						"calls": []
					},
					{
						"name": "dot",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::dot(const CppType &other) const noexcept",
							"vec2 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2) const noexcept",
							"vec3 shz::vecN< CRTP, C, R >::dot(const CppType &v1, const CppType &v2, const CppType &v3) const noexcept"
						],
						"brief": "Returns the dot product of the given vector and another.",
						"calls": []
					},
					{
						"name": "abs",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::abs() const noexcept"
						],
						"brief": "Returns a new vector whose components are the absolute value of the given vector.",
						"calls": [
							"shz_vec4_abs"
						]
					},
					{
						"name": "angle_between",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::angle_between(const CppType &other) const noexcept"
						],
						"brief": "Returns the angle between the given vector and another, in radians.",
						"calls": [
							"shz_vec_angle_between"
						]
					},
					{
						"name": "angles",
						"static": false,
						"signatures": [
							"auto shz::vecN< CRTP, C, R >::angles() const noexcept"
						],
						"brief": "Returns the angle(s) created between the given vector axis and the +X axis, in radians.",
						"calls": [
							"shz_vec_angles"
						]
					},
					{
						"name": "ceil",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::ceil() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise ceil of the given vector.",
						"calls": [
							"shz_vec4_ceil"
						]
					},
					{
						"name": "clamp",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::clamp(float min, float max) const noexcept"
						],
						"brief": "Returns a new vector whose values are the clamped components of the given vector.",
						"calls": [
							"shz_vec4_clamp"
						]
					},
					{
						"name": "deref",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::deref(const auto *raw) noexcept"
						],
						"brief": "Conversion operator for accessing an existing pointer type as though it were a refrence to a SH4ZAM type.",
						"calls": []
					},
					{
						"name": "direction",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction() const noexcept"
						],
						"brief": "Returns the direction vector resulting from normalizing the given vector.",
						"calls": [
							"shz_vec4_normalize"
						]
					},
					{
						"name": "direction_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::direction_safe() const noexcept"
						],
						"brief": "Returns the direction vector of a given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec4_normalize_safe"
						]
					},
					{
						"name": "distance",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance(const CppType &other) const noexcept"
						],
						"brief": "Returns the magnitude of the difference between two vectors as their distance.",
						"calls": [
							"shz_vec4_distance"
						]
					},
					{
						"name": "distance_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::distance_sqr(const CppType &other) const noexcept"
						],
						"brief": "Returns the value of the distance between two vectors squared (faster than actual distance).",
						"calls": [
							"shz_vec4_distance_sqr"
						]
					},
					{
						"name": "floor",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::floor() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise floor of the given vector.",
						"calls": [
							"shz_vec4_floor"
						]
					},
					{
						"name": "fract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::fract() const noexcept"
						],
						"brief": "Returns a new vector with the fractional part of each component.",
						"calls": [
							"shz_vec4_fract"
						]
					},
					{
						"name": "from",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::from(const auto &raw) noexcept"
						],
						"brief": "Conversion operator for going from a layout-compatible vector type to a SH4ZAM vector type.",
						"calls": []
					},
					{
						"name": "inv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv() const noexcept"
						],
						"brief": "Returns a new vector whose components are the reciprocal values of the given vector.",
						"calls": [
							"shz_vec4_inv"
						]
					},
					{
						"name": "inv_sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::inv_sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the inverse square root of the given vector.",
						"calls": [
							"shz_vec4_inv_sqrtf"
						]
					},
					{
						"name": "lerp",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::lerp(const CppType &start, const CppType &end, float t) noexcept"
						],
						"brief": "Returns the vector that is linearly interpolated between the two given vectors by the 0.0f-1.0f factor, t.",
						"calls": [
							"shz_vec4_lerp"
						]
					},
					{
						"name": "magnitude",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude() const noexcept"
						],
						"brief": "Returns the magnitude of the given vector.",
						"calls": [
							"shz_vec4_magnitude"
						]
					},
					{
						"name": "magnitude_inv",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_inv() const noexcept"
						],
						"brief": "Returns the inverse magnitude of the given vector.",
						"calls": [
							"shz_vec4_magnitude_inv"
						]
					},
					{
						"name": "magnitude_sqr",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::magnitude_sqr() const noexcept"
						],
						"brief": "Returns the squared magnitude of the given vector.",
						"calls": [
							"shz_vec4_magnitude_sqr"
						]
					},
					{
						"name": "max",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::max() const noexcept"
						],
						"brief": "Returns the maximum value of every element within the vector.",
						"calls": [
							"shz_vec4_max"
						]
					},
					{
						"name": "maxv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::maxv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise maximum of two vectors.",
						"calls": [
							"shz_vec4_maxv"
						]
					},
					{
						"name": "min",
						"static": false,
						"signatures": [
							"float shz::vecN< CRTP, C, R >::min() const noexcept"
						],
						"brief": "Returns the minimum value of every element within the vector.",
						"calls": [
							"shz_vec4_min"
						]
					},
					{
						"name": "minv",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::minv(const CppType &other) const noexcept"
						],
						"brief": "Returns a new vector with the component-wise minimum of two vectors.",
						"calls": [
							"shz_vec4_minv"
						]
					},
					{
						"name": "move",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::move(const CppType &target, float maxdist) const noexcept"
						],
						"brief": "Moves the given vector towards the target by the given maxdist.",
						"calls": [
							"shz_vec4_move"
						]
					},
					{
						"name": "neg",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::neg() const noexcept"
						],
						"brief": "Returns a new vector whose components are the negative values of the given vector.",
						"calls": [
							"shz_vec4_neg"
						]
					},
					{
						"name": "normalize",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize() noexcept"
						],
						"brief": "Normalizes the given vector.",
						"calls": [
							"shz_vec4_normalize"
						]
					},
					{
						"name": "normalize_safe",
						"static": false,
						"signatures": [
							"void shz::vecN< CRTP, C, R >::normalize_safe() noexcept"
						],
						"brief": "Normalizes the given vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec4_normalize_safe"
						]
					},
					{
						"name": "normalized",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized() const noexcept"
						],
						"brief": "Return the normalized vector.",
						"calls": [
							"shz_vec4_normalize"
						]
					},
					{
						"name": "normalized_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::normalized_safe() const noexcept"
						],
						"brief": "Return the normalized vector, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec4_normalize_safe"
						]
					},
					{
						"name": "operator*=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator*=(const CppType &other) noexcept"
						],
						"brief": "Overloaded multiplication assignment operator, multiplies and accumulates a vector onto the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator+=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator+=(const CppType &other) noexcept"
						],
						"brief": "Overloaded operator for adding and accumulating a vector onto another.",
						"calls": []
					},
					{
						"name": "operator-=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator-=(const CppType &other) noexcept"
						],
						"brief": "Overloaded subtraction assignment operator, subtracts a vector from the left-hand vector.",
						"calls": []
					},
					{
						"name": "operator/=",
						"static": false,
						"signatures": [
							"CppType & shz::vecN< CRTP, C, R >::operator/=(const CppType &other) noexcept"
						],
						"brief": "Overloaded division assignment operator, divides the left vector by the right, assigning the left to the result.",
						"calls": []
					},
					{
						"name": "project",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another.",
						"calls": [
							"shz_vec4_project"
						]
					},
					{
						"name": "project_safe",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::project_safe(const CppType &onto) const noexcept"
						],
						"brief": "Returns the vector created from projecting the given vector onto another, safely protecting against division-by-zero.",
						"calls": [
							"shz_vec4_project_safe"
						]
					},
					{
						"name": "reflect",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::reflect(const CppType &normal) const noexcept"
						],
						"brief": "Returns the vector created from reflecting the given vector over the normal of a surface.",
						"calls": [
							"shz_vec4_reflect"
						]
					},
					{
						"name": "refract",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::refract(const CppType &normal, float eta) const noexcept"
						],
						"brief": "Returns the vector create from refracting the given incidence vector over the normal of a surface, using the given refraction ratio index.",
						"calls": [
							"shz_vec4_refract"
						]
					},
					{
						"name": "round",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::round() const noexcept"
						],
						"brief": "Returns a new vector with the component-wise rounding of the given vector.",
						"calls": [
							"shz_vec4_round"
						]
					},
					{
						"name": "saturate",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::saturate() const noexcept"
						],
						"brief": "Returns a new vector with each component clamped to [0, 1].",
						"calls": [
							"shz_vec4_saturate"
						]
					},
					{
						"name": "sign",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sign() const noexcept"
						],
						"brief": "Returns a new vector with the sign of each component (-1, 0, or 1).",
						"calls": [
							"shz_vec4_sign"
						]
					},
					{
						"name": "smoothstep",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec4_smoothstep"
						]
					},
					{
						"name": "smoothstep_safe",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::smoothstep_safe(const CppType &vec, T &&edge0, T &&edge1) noexcept"
						],
						"brief": "Returns a vector where each component is smoothly interpolated from 0 to 1 between edge0 and edge1.",
						"calls": [
							"shz_vec4_smoothstep_safe"
						]
					},
					{
						"name": "sqrtf",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::sqrtf() const noexcept"
						],
						"brief": "Returns a new vector whose components are the square root of the given vector.",
						"calls": [
							"shz_vec4_sqrtf"
						]
					},
					{
						"name": "step",
						"static": true,
						"signatures": [
							"static CppType shz::vecN< CRTP, C, R >::step(const CppType &vec, T &&edge) noexcept"
						],
						"brief": "Compares each component of the vector to the edge. 0 returned in that component if x[i] < edge. Otherwise the component is 1.",
						"calls": [
							"shz_vec4_step"
						]
					},
					{
						"name": "swizzle",
						"static": false,
						"signatures": [
							"CppType shz::vecN< CRTP, C, R >::swizzle() const noexcept"
						],
						"brief": "Swizzle oeprator which takes a compile-time list of indices as non-type template arguments for the index each element should use as its new value.",
						"calls": [
							"shz_vec4_swizzle"
						]
					},
					{
						"name": "to",
						"static": false,
						"signatures": [
							"T shz::vecN< CRTP, C, R >::to() const noexcept"
						],
						"brief": "Conversion operator for going from a SH4ZAM vector type to another layout-compatible type.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::quat",
				"ctype": "shz_quat_t",
				"header": "sh4zam/shz_quat.hpp",
				"url": "https://sh4zam.com/api/cpp/quat/",
				"members": [
					{
						"name": "quat",
						"static": false,
						"signatures": [
							"quat() noexcept=default",
							"quat(const quat &other) noexcept=default",
							"quat(float w, float x, float y, float z) noexcept",
							"quat(const shz_quat_t &q) noexcept",
							"quat(const volatile shz_quat_t &other) noexcept"
						],
						"brief": "Default constructor: does nothing.",
						"calls": []
					},
					{
						"name": "identity",
						"static": true,
						"signatures": [
							"static quat identity() noexcept"
						],
						"brief": "Returns an identity quaternion.",
						"calls": [
							"shz_quat_identity"
						]
					},
					{
						"name": "from_angles_xyz",
						"static": true,
						"signatures": [
							"static quat from_angles_xyz(float x, float y, float z) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_angles_xyz().",
						"calls": [
							"shz_quat_from_angles_xyz"
						]
					},
					{
						"name": "from_rotation_xyz",
						"static": true,
						"signatures": [
							"static quat from_rotation_xyz(float x, float y, float z) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_xyz().",
						"calls": [
							"shz_quat_from_rotation_xyz"
						]
					},
					{
						"name": "from_rotation_zyx",
						"static": true,
						"signatures": [
							"static quat from_rotation_zyx(float z, float y, float x) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_zyx().",
						"calls": [
							"shz_quat_from_rotation_zyx"
						]
					},
					{
						"name": "from_rotation_zxy",
						"static": true,
						"signatures": [
							"static quat from_rotation_zxy(float z, float x, float y) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_zxy().",
						"calls": [
							"shz_quat_from_rotation_zxy"
						]
					},
					{
						"name": "from_rotation_yxz",
						"static": true,
						"signatures": [
							"static quat from_rotation_yxz(float y, float x, float z) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_yxz().",
						"calls": [
							"shz_quat_from_rotation_yxz"
						]
					},
					{
						"name": "from_rotation_xyz_u16",
						"static": true,
						"signatures": [
							"static quat from_rotation_xyz_u16(uint16_t x, uint16_t y, uint16_t z) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_xyz_u16().",
						"calls": [
							"shz_quat_from_rotation_xyz_u16"
						]
					},
					{
						"name": "from_rotation_zyx_u16",
						"static": true,
						"signatures": [
							"static quat from_rotation_zyx_u16(uint16_t z, uint16_t y, uint16_t x) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_zyx_u16().",
						"calls": [
							"shz_quat_from_rotation_zyx_u16"
						]
					},
					{
						"name": "from_rotation_zxy_u16",
						"static": true,
						"signatures": [
							"static quat from_rotation_zxy_u16(uint16_t z, uint16_t x, uint16_t y) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_zxy_u16().",
						"calls": [
							"shz_quat_from_rotation_zxy_u16"
						]
					},
					{
						"name": "from_rotation_yxz_u16",
						"static": true,
						"signatures": [
							"static quat from_rotation_yxz_u16(uint16_t y, uint16_t x, uint16_t z) noexcept"
						],
						"brief": "C++ convenience wrapper for shz_quat_from_rotation_yxz_u16().",
						"calls": [
							"shz_quat_from_rotation_yxz_u16"
						]
					},
					{
						"name": "from_axis_angle",
						"static": true,
						"signatures": [
							"static quat from_axis_angle(const vec3 &axis, float angle) noexcept"
						],
						"brief": "Initializes a quaternion which is a rotation in angle radians about the given axis.",
						"calls": [
							"shz_quat_from_axis_angle"
						]
					},
					{
						"name": "from_look_axis",
						"static": true,
						"signatures": [
							"static quat from_look_axis(const vec3 &forward, const vec3 &up) noexcept"
						],
						"brief": "Creates a quaternion looking in the given direction with the given reference direction.",
						"calls": [
							"shz_quat_from_look_axis"
						]
					},
					{
						"name": "from_rotated_axis",
						"static": true,
						"signatures": [
							"static quat from_rotated_axis(const vec3 &start, const vec3 &end) noexcept"
						],
						"brief": "Returns the quaternion representing the rotation from the start to the end axes.",
						"calls": [
							"shz_quat_from_rotated_axis"
						]
					},
					{
						"name": "lerp",
						"static": true,
						"signatures": [
							"static quat lerp(const quat &q, const quat &p, float t) noexcept"
						],
						"brief": "Returns the quaternion that is linearly interpolating q to p, by a t factor of 0.0f-1.0f.",
						"calls": [
							"shz_quat_lerp"
						]
					},
					{
						"name": "nlerp",
						"static": true,
						"signatures": [
							"static quat nlerp(const quat &q, const quat &p, float t) noexcept"
						],
						"brief": "Equivalent to lerp(), except that the resulting quaternion is normalized.",
						"calls": [
							"shz_quat_nlerp"
						]
					},
					{
						"name": "slerp",
						"static": true,
						"signatures": [
							"static quat slerp(const quat &q, const quat &p, float t) noexcept"
						],
						"brief": "Returns the quaternion that is spherically linearly interpolating q to p, by a t factor of 0.0f-1.0f.",
						"calls": [
							"shz_quat_slerp"
						]
					},
					{
						"name": "squad",
						"static": true,
						"signatures": [
							"static quat squad(const quat &q1, const quat &q2, const quat &s1, const quat &s2, float t) noexcept"
						],
						"brief": "Evaluates the smooth cubic spherical interpolation (SQUAD) at parameter t.",
						"calls": [
							"shz_quat_squad"
						]
					},
					{
						"name": "angle",
						"static": false,
						"signatures": [
							"float angle() const noexcept"
						],
						"brief": "Returns the angle of rotation represented by the given quaternion.",
						"calls": [
							"shz_quat_angle"
						]
					},
					{
						"name": "axis",
						"static": false,
						"signatures": [
							"vec3 axis() const noexcept"
						],
						"brief": "Returns the axis of rotation represented by the given quaternion.",
						"calls": [
							"shz_quat_axis"
						]
					},
					{
						"name": "angle_x",
						"static": false,
						"signatures": [
							"float angle_x() const noexcept"
						],
						"brief": "Returns the angle of rotation about the X axis represented by the given quaternion.",
						"calls": [
							"shz_quat_angle_x"
						]
					},
					{
						"name": "angle_y",
						"static": false,
						"signatures": [
							"float angle_y() const noexcept"
						],
						"brief": "Returns the angle of rotation about the Y axis represented by the given quaternion.",
						"calls": [
							"shz_quat_angle_y"
						]
					},
					{
						"name": "angle_z",
						"static": false,
						"signatures": [
							"float angle_z() const noexcept"
						],
						"brief": "Returns the angle of rotation about the Z axis represented by the given quaternion.",
						"calls": [
							"shz_quat_angle_z"
						]
					},
					{
						"name": "magnitude_sqr",
						"static": false,
						"signatures": [
							"float magnitude_sqr() const noexcept"
						],
						"brief": "Returns the magnitude of the quaternion squared.",
						"calls": [
							"shz_quat_magnitude_sqr"
						]
					},
					{
						"name": "magnitude",
						"static": false,
						"signatures": [
							"float magnitude() const noexcept"
						],
						"brief": "Returns the magnitude of the quaternion.",
						"calls": [
							"shz_quat_magnitude"
						]
					},
					{
						"name": "magnitude_inv",
						"static": false,
						"signatures": [
							"float magnitude_inv() const noexcept"
						],
						"brief": "Returns the inverse of the magnitude of the quaternion.",
						"calls": [
							"shz_quat_magnitude_inv"
						]
					},
					{
						"name": "to_angles_xyz",
						"static": false,
						"signatures": [
							"vec3 to_angles_xyz() const noexcept"
						],
						"brief": "Returns the tait-bryan rotation angles about the X, Y, then Z axes which are represented by the given quaternion.",
						"calls": [
							"shz_quat_to_angles_xyz"
						]
					},
					{
						"name": "to_axis_angle",
						"static": false,
						"signatures": [
							"void to_axis_angle(shz_vec3_t *axis, float *angle) const noexcept",
							"std::pair< vec3, float > to_axis_angle() const noexcept"
						],
						"brief": "Returns both the axis and angle of rotation through the pointer arguments.",
						"calls": [
							"shz_quat_to_axis_angle"
						]
					},
					{
						"name": "normalized",
						"static": false,
						"signatures": [
							"quat normalized() const noexcept"
						],
						"brief": "Returns the given quaternion as a unit quaternion.",
						"calls": [
							"shz_quat_normalize"
						]
					},
					{
						"name": "normalize",
						"static": false,
						"signatures": [
							"void normalize() noexcept"
						],
						"brief": "Normalizes the given quaternion.",
						"calls": []
					},
					{
						"name": "normalized_safe",
						"static": false,
						"signatures": [
							"quat normalized_safe() const noexcept"
						],
						"brief": "Returns a safely normalized quaternion from the given quaternion, protecting against division-by-zero.",
						"calls": [
							"shz_quat_normalize_safe"
						]
					},
					{
						"name": "normalize_safe",
						"static": false,
						"signatures": [
							"void normalize_safe() noexcept"
						],
						"brief": "Safely normalizes the given quaternion by protecting against division-by-zero.",
						"calls": []
					},
					{
						"name": "conjugated",
						"static": false,
						"signatures": [
							"quat conjugated() const noexcept"
						],
						"brief": "Returns a quaternion that is the conjugate of the given quaternion.",
						"calls": [
							"shz_quat_conjugate"
						]
					},
					{
						"name": "conjugate",
						"static": false,
						"signatures": [
							"void conjugate() noexcept"
						],
						"brief": "Conjugates the given quaternion.",
						"calls": []
					},
					{
						"name": "inverse",
						"static": false,
						"signatures": [
							"quat inverse() const noexcept"
						],
						"brief": "Returns the inverse of the given quaternion.",
						"calls": [
							"shz_quat_inv"
						]
					},
					{
						"name": "invert",
						"static": false,
						"signatures": [
							"void invert() noexcept"
						],
						"brief": "Inverts the given quaternion.",
						"calls": []
					},
					{
						"name": "negated",
						"static": false,
						"signatures": [
							"quat negated() const noexcept"
						],
						"brief": "Returns a new quaternion whose components are the negated values of the given quaternion.",
						"calls": [
							"shz_quat_neg"
						]
					},
					{
						"name": "negate",
						"static": false,
						"signatures": [
							"void negate() noexcept"
						],
						"brief": "Negates the components of the given quaternion.",
						"calls": []
					},
					{
						"name": "add",
						"static": false,
						"signatures": [
							"quat add(const quat &rhs) const noexcept"
						],
						"brief": "Returns a new quaternion from adding the given quaterion to rhs.",
						"calls": [
							"shz_quat_add"
						]
					},
					{
						"name": "sub",
						"static": false,
						"signatures": [
							"quat sub(const quat &rhs) const noexcept"
						],
						"brief": "Returns a new quaternion from adding rhs from the given quaternion.",
						"calls": [
							"shz_quat_sub"
						]
					},
					{
						"name": "scaled",
						"static": false,
						"signatures": [
							"quat scaled(float s) const noexcept"
						],
						"brief": "Returns a new quaternion from scaling the given quaterion by s.",
						"calls": [
							"shz_quat_scale"
						]
					},
					{
						"name": "scale",
						"static": false,
						"signatures": [
							"void scale(float s) noexcept"
						],
						"brief": "Multiplies each component of the given quaternion by s.",
						"calls": []
					},
					{
						"name": "dot",
						"static": false,
						"signatures": [
							"float dot(const quat &other) const noexcept",
							"vec2 dot(const quat &q1, const quat &q2) const noexcept",
							"vec3 dot(const quat &q1, const quat &q2, const quat &q3) const noexcept"
						],
						"brief": "Returns the dot product between the given quaternion and another.",
						"calls": [
							"shz_quat_dot",
							"shz_quat_dot2",
							"shz_quat_dot3"
						]
					},
					{
						"name": "mult",
						"static": false,
						"signatures": [
							"quat mult(const quat &rhs) const noexcept"
						],
						"brief": "Returns a new quaterion from multiplying the given quaternion by another.",
						"calls": [
							"shz_quat_mult"
						]
					},
					{
						"name": "div",
						"static": false,
						"signatures": [
							"quat div(const quat &rhs) const noexcept"
						],
						"brief": "Returns a new quaterion from dividing the given quaternion by another (or multiplying the given quaternion by the inverse of another).",
						"calls": [
							"shz_quat_div"
						]
					},
					{
						"name": "angle_between",
						"static": false,
						"signatures": [
							"float angle_between(const quat &p) const noexcept"
						],
						"brief": "Returns the angle in radians between the rotations represented by quaternions q and p.",
						"calls": [
							"shz_quat_angle_between"
						]
					},
					{
						"name": "rotate_towards",
						"static": false,
						"signatures": [
							"quat rotate_towards(const quat &to, float max_angle) const noexcept"
						],
						"brief": "Rotates quaternion from towards quaternion to by at most max_angle radians.",
						"calls": [
							"shz_quat_rotate_towards"
						]
					},
					{
						"name": "transform",
						"static": false,
						"signatures": [
							"vec3 transform(const vec3 &in) const noexcept"
						],
						"brief": "Returns a new shz::vec3 from transforming in by the given quaternion.",
						"calls": [
							"shz_quat_transform_vec3"
						]
					},
					{
						"name": "operator-",
						"static": false,
						"signatures": [
							"quat operator-() const noexcept"
						],
						"brief": "Overloaded unary negation operator, returns the negation of the given quaternion.",
						"calls": []
					},
					{
						"name": "operator+=",
						"static": false,
						"signatures": [
							"quat operator+=(const quat &rhs) noexcept"
						],
						"brief": "Adds and accumulates rhs onto the given quaternion.",
						"calls": []
					},
					{
						"name": "operator-=",
						"static": false,
						"signatures": [
							"quat operator-=(const quat &rhs) noexcept"
						],
						"brief": "Subtracts rhs from the given quaternion.",
						"calls": []
					},
					{
						"name": "operator*=",
						"static": false,
						"signatures": [
							"quat operator*=(const quat &rhs) noexcept",
							"quat operator*=(float rhs) noexcept"
						],
						"brief": "Multiplies and accumulates rhs into the given quaternion.",
						"calls": []
					},
					{
						"name": "operator/=",
						"static": false,
						"signatures": [
							"quat operator/=(const quat &rhs) noexcept",
							"quat operator/=(float rhs) noexcept"
						],
						"brief": "Divides the given quaternion by rhs.",
						"calls": [
							"shz_invf"
						]
					},
					{
						"name": "operator==",
						"static": false,
						"signatures": [
							"bool operator==(const quat &lhs, const quat &rhs) noexcept"
						],
						"brief": "Overloaded comparison operator, checks for quaternion equality.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::mat4x4",
				"ctype": "shz_mat4x4_t",
				"header": "sh4zam/shz_matrix.hpp",
				"url": "https://sh4zam.com/api/cpp/mat4x4/",
				"members": [
					{
						"name": "init_identity",
						"static": false,
						"signatures": [
							"void init_identity() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_identity"
						]
					},
					{
						"name": "init_identity_safe",
						"static": false,
						"signatures": [
							"void init_identity_safe() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_identity"
						]
					},
					{
						"name": "init_zero",
						"static": false,
						"signatures": [
							"void init_zero() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_zero"
						]
					},
					{
						"name": "init_one",
						"static": false,
						"signatures": [
							"void init_one() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_one"
						]
					},
					{
						"name": "init_fill",
						"static": false,
						"signatures": [
							"void init_fill(float value) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_fill"
						]
					},
					{
						"name": "init_translation",
						"static": false,
						"signatures": [
							"void init_translation(float x, float y, float z) noexcept",
							"void init_translation(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_translation"
						]
					},
					{
						"name": "init_scale",
						"static": false,
						"signatures": [
							"void init_scale(float x, float y, float z) noexcept",
							"void init_scale(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_scale"
						]
					},
					{
						"name": "init_rotation_x",
						"static": false,
						"signatures": [
							"void init_rotation_x(float angle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_x"
						]
					},
					{
						"name": "init_rotation_y",
						"static": false,
						"signatures": [
							"void init_rotation_y(float angle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_y"
						]
					},
					{
						"name": "init_rotation_z",
						"static": false,
						"signatures": [
							"void init_rotation_z(float angle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_z"
						]
					},
					{
						"name": "init_rotation_xyz",
						"static": false,
						"signatures": [
							"void init_rotation_xyz(float xAngle, float yAngle, float zAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_xyz"
						]
					},
					{
						"name": "init_rotation_zyx",
						"static": false,
						"signatures": [
							"void init_rotation_zyx(float zAngle, float yAngle, float xAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_zyx"
						]
					},
					{
						"name": "init_rotation_zxy",
						"static": false,
						"signatures": [
							"void init_rotation_zxy(float zAngle, float xAngle, float yAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_zxy"
						]
					},
					{
						"name": "init_rotation_yxz",
						"static": false,
						"signatures": [
							"void init_rotation_yxz(float yAngle, float xAngle, float zAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_yxz"
						]
					},
					{
						"name": "init_rotation",
						"static": false,
						"signatures": [
							"void init_rotation(float angle, float x, float y, float z) noexcept",
							"void init_rotation(float angle, const vec3 &axis) noexcept",
							"void init_rotation(const quat &q) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation",
							"shz_mat4x4_init_rotation_quat"
						]
					},
					{
						"name": "init_rotation_dir",
						"static": false,
						"signatures": [
							"void init_rotation_dir(float angle, float x, float y, float z) noexcept",
							"void init_rotation_dir(float angle, const vec3 &dir) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_rotation_dir"
						]
					},
					{
						"name": "init_diagonal",
						"static": false,
						"signatures": [
							"void init_diagonal(float x, float y, float z, float w) noexcept",
							"void init_diagonal(const vec4 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_diagonal"
						]
					},
					{
						"name": "init_upper_triangular",
						"static": false,
						"signatures": [
							"void init_upper_triangular(float col1, const vec2 &col2, const vec3 &col3, const vec4 &col4) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_upper_triangular"
						]
					},
					{
						"name": "init_lower_triangular",
						"static": false,
						"signatures": [
							"void init_lower_triangular(const vec4 &col1, const vec3 &col2, const vec2 &col3, float col4) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_lower_triangular"
						]
					},
					{
						"name": "init_symmetric_skew",
						"static": false,
						"signatures": [
							"void init_symmetric_skew(float x, float y, float z) noexcept",
							"void init_symmetric_skew(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_symmetric_skew"
						]
					},
					{
						"name": "init_outer_product",
						"static": false,
						"signatures": [
							"void init_outer_product(const vec4 &v1, const vec4 &v2) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_outer_product"
						]
					},
					{
						"name": "init_permutation_wxyz",
						"static": false,
						"signatures": [
							"void init_permutation_wxyz() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_permutation_wxyz"
						]
					},
					{
						"name": "init_permutation_yzwx",
						"static": false,
						"signatures": [
							"void init_permutation_yzwx() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_permutation_yzwx"
						]
					},
					{
						"name": "init_screen",
						"static": false,
						"signatures": [
							"void init_screen(float width, float height) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_screen"
						]
					},
					{
						"name": "init_lookat",
						"static": false,
						"signatures": [
							"void init_lookat(const vec3 &eye, const vec3 &center, const vec3 &up) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_lookat"
						]
					},
					{
						"name": "init_ortho",
						"static": false,
						"signatures": [
							"void init_ortho(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_ortho"
						]
					},
					{
						"name": "init_frustum",
						"static": false,
						"signatures": [
							"void init_frustum(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_frustum"
						]
					},
					{
						"name": "init_perspective",
						"static": false,
						"signatures": [
							"void init_perspective(float fov, float aspect, float znear) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_init_perspective"
						]
					},
					{
						"name": "row",
						"static": false,
						"signatures": [
							"vec4 row(size_t index) const noexcept"
						],
						"brief": "C++ wrapper for shz_mat4x4_row().",
						"calls": [
							"shz_mat4x4_row"
						]
					},
					{
						"name": "col",
						"static": false,
						"signatures": [
							"vec4 col(size_t index) const noexcept"
						],
						"brief": "C++ wrapper for shz_mat4x4_col().",
						"calls": [
							"shz_mat4x4_col"
						]
					},
					{
						"name": "get_translation",
						"static": false,
						"signatures": [
							"vec3 get_translation() const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_get_translation"
						]
					},
					{
						"name": "get_scale",
						"static": false,
						"signatures": [
							"vec3 get_scale() const noexcept"
						],
						"brief": "Returns the scaling components from the inner 3x3 matrix of XMTRX, as a 3D vector.",
						"calls": [
							"shz_mat4x4_get_scale"
						]
					},
					{
						"name": "set_row",
						"static": false,
						"signatures": [
							"void set_row(size_t index, vec4 values) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_set_row"
						]
					},
					{
						"name": "set_col",
						"static": false,
						"signatures": [
							"void set_col(size_t index, vec4 values) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_set_col"
						]
					},
					{
						"name": "swap_rows",
						"static": false,
						"signatures": [
							"void swap_rows(size_t row1, size_t row2) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_swap_rows"
						]
					},
					{
						"name": "swap_cols",
						"static": false,
						"signatures": [
							"void swap_cols(size_t col1, size_t col2) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_swap_cols"
						]
					},
					{
						"name": "set_translation",
						"static": false,
						"signatures": [
							"void set_translation(float x, float y, float z) noexcept",
							"void set_translation(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_set_translation"
						]
					},
					{
						"name": "set_scale",
						"static": false,
						"signatures": [
							"void set_scale(float x, float y, float z) noexcept",
							"void set_scale(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_set_scale"
						]
					},
					{
						"name": "set_rotation",
						"static": false,
						"signatures": [
							"void set_rotation(const quat &rot) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_set_rotation_quat"
						]
					},
					{
						"name": "set_diagonal",
						"static": false,
						"signatures": [
							"void set_diagonal(float x, float y, float z, float w) noexcept",
							"void set_diagonal(const vec4 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_set_diagonal"
						]
					},
					{
						"name": "apply",
						"static": false,
						"signatures": [
							"void apply(const shz_mat4x4_t &mat) noexcept",
							"void apply(const float mat[16]) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply",
							"shz_mat4x4_apply_unaligned"
						]
					},
					{
						"name": "apply_transpose",
						"static": false,
						"signatures": [
							"void apply_transpose(const shz_mat4x4_t &mat) noexcept",
							"void apply_transpose(const float mat[16]) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_transpose",
							"shz_mat4x4_apply_transpose_unaligned"
						]
					},
					{
						"name": "apply_scale",
						"static": false,
						"signatures": [
							"void apply_scale(float x, float y, float z) noexcept",
							"void apply_scale(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_scale"
						]
					},
					{
						"name": "apply_translation",
						"static": false,
						"signatures": [
							"void apply_translation(float x, float y, float z) noexcept",
							"void apply_translation(const vec3 &v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_translation"
						]
					},
					{
						"name": "apply_rotation_x",
						"static": false,
						"signatures": [
							"void apply_rotation_x(float angle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_x"
						]
					},
					{
						"name": "apply_rotation_y",
						"static": false,
						"signatures": [
							"void apply_rotation_y(float angle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_y"
						]
					},
					{
						"name": "apply_rotation_z",
						"static": false,
						"signatures": [
							"void apply_rotation_z(float angle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_z"
						]
					},
					{
						"name": "apply_rotation_xyz",
						"static": false,
						"signatures": [
							"void apply_rotation_xyz(float xAngle, float yAngle, float zAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_xyz"
						]
					},
					{
						"name": "apply_rotation_zyx",
						"static": false,
						"signatures": [
							"void apply_rotation_zyx(float zAngle, float yAngle, float xAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_zyx"
						]
					},
					{
						"name": "apply_rotation_zxy",
						"static": false,
						"signatures": [
							"void apply_rotation_zxy(float zAngle, float xAngle, float yAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_zxy"
						]
					},
					{
						"name": "apply_rotation_yxz",
						"static": false,
						"signatures": [
							"void apply_rotation_yxz(float yAngle, float xAngle, float zAngle) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation_yxz"
						]
					},
					{
						"name": "apply_rotation",
						"static": false,
						"signatures": [
							"void apply_rotation(float angle, float x, float y, float z) noexcept",
							"void apply_rotation(float angle, vec3 axis) noexcept",
							"void apply_rotation(const quat &q) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_rotation",
							"shz_mat4x4_apply_rotation_quat"
						]
					},
					{
						"name": "apply_lookat",
						"static": false,
						"signatures": [
							"void apply_lookat(vec3 pos, vec3 target, vec3 up) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_lookat"
						]
					},
					{
						"name": "apply_ortho",
						"static": false,
						"signatures": [
							"void apply_ortho(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_ortho"
						]
					},
					{
						"name": "apply_frustum",
						"static": false,
						"signatures": [
							"void apply_frustum(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_frustum"
						]
					},
					{
						"name": "apply_perspective",
						"static": false,
						"signatures": [
							"void apply_perspective(float fov, float aspect, float znear) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_perspective"
						]
					},
					{
						"name": "apply_screen",
						"static": false,
						"signatures": [
							"void apply_screen(float width, float height) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_screen"
						]
					},
					{
						"name": "apply_symmetric_skew",
						"static": false,
						"signatures": [
							"void apply_symmetric_skew(float x, float y, float z) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_symmetric_skew"
						]
					},
					{
						"name": "apply_permutation_wxyz",
						"static": false,
						"signatures": [
							"void apply_permutation_wxyz() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_permutation_wxyz"
						]
					},
					{
						"name": "apply_permutation_yzwx",
						"static": false,
						"signatures": [
							"void apply_permutation_yzwx() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_permutation_yzwx"
						]
					},
					{
						"name": "apply_self",
						"static": false,
						"signatures": [
							"void apply_self() noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_apply_self"
						]
					},
					{
						"name": "translate",
						"static": false,
						"signatures": [
							"void translate(float x, float y, float z) noexcept",
							"void translate(vec3 v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_translate"
						]
					},
					{
						"name": "scale",
						"static": false,
						"signatures": [
							"void scale(float x, float y, float z) noexcept",
							"void scale(vec3 v) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_scale"
						]
					},
					{
						"name": "rotate_x",
						"static": false,
						"signatures": [
							"void rotate_x(float radians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_x"
						]
					},
					{
						"name": "rotate_y",
						"static": false,
						"signatures": [
							"void rotate_y(float radians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_y"
						]
					},
					{
						"name": "rotate_z",
						"static": false,
						"signatures": [
							"void rotate_z(float radians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_z"
						]
					},
					{
						"name": "rotate_xyz",
						"static": false,
						"signatures": [
							"void rotate_xyz(float xRadians, float yRadians, float zRadians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_xyz"
						]
					},
					{
						"name": "rotate_zyx",
						"static": false,
						"signatures": [
							"void rotate_zyx(float zRadians, float yRadians, float xRadians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_zyx"
						]
					},
					{
						"name": "rotate_zxy",
						"static": false,
						"signatures": [
							"void rotate_zxy(float zRadians, float xRadians, float yRadians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_zxy"
						]
					},
					{
						"name": "rotate_yxz",
						"static": false,
						"signatures": [
							"void rotate_yxz(float yRadians, float xRadians, float zRadians) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate_yxz"
						]
					},
					{
						"name": "rotate",
						"static": false,
						"signatures": [
							"void rotate(float radians, float xAxis, float yAxis, float zAxis) noexcept",
							"void rotate(float radians, vec3 axis) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_rotate"
						]
					},
					{
						"name": "translate_reverse",
						"static": false,
						"signatures": [
							"void translate_reverse(float x, float y, float z) noexcept",
							"void translate_reverse(const shz::vec3 &pos) noexcept"
						],
						"brief": "Pre-multiplies and accumulates the given matrix onto the 3D translation matrix with the given components.",
						"calls": [
							"shz_mat4x4_translate_reverse"
						]
					},
					{
						"name": "scale_reverse",
						"static": false,
						"signatures": [
							"void scale_reverse(float x, float y, float z) noexcept",
							"void scale_reverse(const shz::vec3 &size) noexcept"
						],
						"brief": "Pre-multiplies and accumulates the given matrix onto the 3D scaling matrix with the given components.",
						"calls": [
							"shz_mat4x4_scale_reverse"
						]
					},
					{
						"name": "transform",
						"static": false,
						"signatures": [
							"vec2 transform(const vec2 &in) const noexcept",
							"vec3 transform(const vec3 &in) const noexcept",
							"vec4 transform(const vec4 &in) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_transform_vec2",
							"shz_mat4x4_transform_vec3",
							"shz_mat4x4_transform_vec4"
						]
					},
					{
						"name": "transform_point",
						"static": false,
						"signatures": [
							"vec2 transform_point(const vec2 &pt) const noexcept",
							"vec3 transform_point(const vec3 &pt) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_transform_point2",
							"shz_mat4x4_transform_point3"
						]
					},
					{
						"name": "transform_transpose",
						"static": false,
						"signatures": [
							"vec2 transform_transpose(const vec2 &in) const noexcept",
							"vec3 transform_transpose(const vec3 &in) const noexcept",
							"vec4 transform_transpose(const vec4 &in) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_transform_vec2_transpose",
							"shz_mat4x4_transform_vec3_transpose",
							"shz_mat4x4_transform_vec4_transpose"
						]
					},
					{
						"name": "transform_point_transpose",
						"static": false,
						"signatures": [
							"vec2 transform_point_transpose(const vec2 &pt) const noexcept",
							"vec3 transform_point_transpose(const vec3 &pt) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_transform_point2_transpose",
							"shz_mat4x4_transform_point3_transpose"
						]
					},
					{
						"name": "to_quat",
						"static": false,
						"signatures": [
							"quat to_quat() const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_to_quat"
						]
					},
					{
						"name": "determinant",
						"static": false,
						"signatures": [
							"float determinant() const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_determinant"
						]
					},
					{
						"name": "trace",
						"static": false,
						"signatures": [
							"float trace() const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_trace"
						]
					},
					{
						"name": "inverse",
						"static": false,
						"signatures": [
							"void inverse(mat4x4 *out) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_inverse"
						]
					},
					{
						"name": "inverse_block_triangular",
						"static": false,
						"signatures": [
							"void inverse_block_triangular(mat4x4 *out) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_inverse_block_triangular"
						]
					},
					{
						"name": "decompose",
						"static": false,
						"signatures": [
							"void decompose(vec3 *translation, quat *rotation, vec3 *scale) const noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_decompose"
						]
					},
					{
						"name": "blend",
						"static": false,
						"signatures": [
							"void blend(const shz_mat4x4_t &matrix, float weight) noexcept"
						],
						"brief": "Adds and accumulates a scaled 4x4 matrix into the given matrix.",
						"calls": [
							"shz_mat4x4_blend"
						]
					},
					{
						"name": "swap",
						"static": false,
						"signatures": [
							"void swap(shz_mat4x4_t &matA, shz_mat4x4_t &matB) noexcept"
						],
						"brief": "",
						"calls": []
					},
					{
						"name": "copy",
						"static": true,
						"signatures": [
							"static void copy(shz_mat4x4_t *lhs, const shz_mat4x4_t &rhs) noexcept",
							"static void copy(shz_mat4x4_t *lhs, const float rhs[16]) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_copy",
							"shz_mat4x4_copy_unaligned"
						]
					},
					{
						"name": "mult",
						"static": true,
						"signatures": [
							"static void mult(shz_mat4x4_t *dst, const shz_mat4x4_t &lhs, const shz_mat4x4_t &rhs) noexcept",
							"static void mult(shz_mat4x4_t *dst, const shz_mat4x4_t &lhs, const float rhs[16]) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_mult",
							"shz_mat4x4_mult_unaligned"
						]
					},
					{
						"name": "mult_transpose",
						"static": true,
						"signatures": [
							"static void mult_transpose(shz_mat4x4_t *dst, const shz_mat4x4_t &lhs, const shz_mat4x4_t &rhs) noexcept",
							"static void mult_transpose(shz_mat4x4_t *dst, const shz_mat4x4_t &lhs, const float rhs[16]) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_mult_transpose",
							"shz_mat4x4_mult_transpose_unaligned"
						]
					},
					{
						"name": "mat4x4",
						"static": false,
						"signatures": [
							"mat4x4() noexcept=default",
							"mat4x4(const mat4x4 &other) noexcept",
							"mat4x4(const shz_mat4x4_t &other) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_copy"
						]
					},
					{
						"name": "operator=",
						"static": false,
						"signatures": [
							"mat4x4 & operator=(const shz_mat4x4_t &other) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_mat4x4_copy"
						]
					},
					{
						"name": "operator==",
						"static": false,
						"signatures": [
							"bool operator==(const mat4x4 &lhs, const mat4x4 &rhs) noexcept"
						],
						"brief": "Overloaded equality operator, for comparing vectors.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::xmtrx",
				"ctype": null,
				"header": "sh4zam/shz_xmtrx.hpp",
				"url": "https://sh4zam.com/api/cpp/xmtrx/",
				"members": [
					{
						"name": "read",
						"static": true,
						"signatures": [
							"static float read(reg xf) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_read().",
						"calls": [
							"shz_xmtrx_read",
							"shz_xmtrx_reg"
						]
					},
					{
						"name": "write",
						"static": true,
						"signatures": [
							"static void write(reg xf, float value) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_write().",
						"calls": [
							"shz_xmtrx_write",
							"shz_xmtrx_reg"
						]
					},
					{
						"name": "read_row",
						"static": true,
						"signatures": [
							"static vec4 read_row(unsigned int index) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_read_row().",
						"calls": [
							"shz_xmtrx_read_row"
						]
					},
					{
						"name": "read_col",
						"static": true,
						"signatures": [
							"static vec4 read_col(unsigned int index) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_read_col().",
						"calls": [
							"shz_xmtrx_read_col"
						]
					},
					{
						"name": "write_row",
						"static": true,
						"signatures": [
							"static void write_row(unsigned int index, const vec4 &vector) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_write_row().",
						"calls": [
							"shz_xmtrx_write_row"
						]
					},
					{
						"name": "write_col",
						"static": true,
						"signatures": [
							"static void write_col(unsigned int index, const vec4 &vector) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_write_col().",
						"calls": [
							"shz_xmtrx_write_col"
						]
					},
					{
						"name": "swap_rows",
						"static": true,
						"signatures": [
							"static void swap_rows(unsigned int index1, unsigned int index2) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_swap_rows().",
						"calls": [
							"shz_xmtrx_swap_rows"
						]
					},
					{
						"name": "swap_cols",
						"static": true,
						"signatures": [
							"static void swap_cols(unsigned int index1, unsigned int index2) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_swap_cols().",
						"calls": [
							"shz_xmtrx_swap_cols"
						]
					},
					{
						"name": "load",
						"static": true,
						"signatures": [
							"static void load(const shz_mat4x4_t &mat4) noexcept",
							"static void load(const float cArray[16]) noexcept",
							"static void load(const std::array< float, 16 > &array) noexcept",
							"static void load(const shz_mat3x4_t &mat) noexcept",
							"static void load(const shz_mat2x2_t &mat) noexcept",
							"static void load(const shz_mat3x3_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_4x4().",
						"calls": [
							"shz_xmtrx_load_4x4",
							"shz_xmtrx_load_unaligned_4x4",
							"shz_xmtrx_load_3x4",
							"shz_xmtrx_load_2x2",
							"shz_xmtrx_load_3x3"
						]
					},
					{
						"name": "load_transpose",
						"static": true,
						"signatures": [
							"static void load_transpose(const shz_mat4x4_t &mat4) noexcept",
							"static void load_transpose(const float cArray[16]) noexcept",
							"static void load_transpose(const std::array< float, 16 > &array) noexcept",
							"static void load_transpose(const shz_mat3x4_t &mat) noexcept",
							"static void load_transpose(const shz_mat3x3_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_transpose_4x4().",
						"calls": [
							"shz_xmtrx_load_transpose_4x4",
							"shz_xmtrx_load_transpose_unaligned_4x4",
							"shz_xmtrx_load_transpose_3x4",
							"shz_xmtrx_load_transpose_3x3"
						]
					},
					{
						"name": "load_wxyz",
						"static": true,
						"signatures": [
							"static void load_wxyz(const shz_mat4x4_t &mat4) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_wxyz_4x4().",
						"calls": [
							"shz_xmtrx_load_wxyz_4x4"
						]
					},
					{
						"name": "load_cols",
						"static": true,
						"signatures": [
							"static void load_cols(const shz_vec4_t &c1, const shz_vec4_t &c2, const shz_vec4_t &c3, const shz_vec4_t &c4) noexcept",
							"static void load_cols(const shz_vec3_t &c1, const shz_vec3_t &c2, const shz_vec3_t &c3, const shz_vec3_t &c4) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_cols_4x4().",
						"calls": [
							"shz_xmtrx_load_cols_4x4",
							"shz_xmtrx_load_cols_3x4"
						]
					},
					{
						"name": "load_rows",
						"static": true,
						"signatures": [
							"static void load_rows(const shz_vec4_t &r1, const shz_vec4_t &r2, const shz_vec4_t &r3, const shz_vec4_t &r4) noexcept",
							"static void load_rows(const shz_vec4_t &r1, const shz_vec4_t &r2, const shz_vec4_t &r3) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_rows_4x4().",
						"calls": [
							"shz_xmtrx_load_rows_4x4",
							"shz_xmtrx_load_rows_3x4"
						]
					},
					{
						"name": "store",
						"static": true,
						"signatures": [
							"static void store(shz_mat4x4_t *mat) noexcept",
							"static void store(float cArray[16]) noexcept",
							"static void store(shz_mat3x4_t *mat) noexcept",
							"static void store(std::array< float, 16 > *array) noexcept",
							"static void store(shz_mat2x2_t *mat) noexcept",
							"static void store(shz_mat3x3_t *mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_store_4x4().",
						"calls": [
							"shz_xmtrx_store_4x4",
							"shz_xmtrx_store_unaligned_4x4",
							"shz_xmtrx_store_3x4",
							"shz_xmtrx_store_2x2",
							"shz_xmtrx_store_3x3"
						]
					},
					{
						"name": "store_transpose",
						"static": true,
						"signatures": [
							"static void store_transpose(shz_mat4x4_t *mat) noexcept",
							"static void store_transpose(float cArray[16]) noexcept",
							"static void store_transpose(std::array< float, 16 > *array) noexcept",
							"static void store_transpose(shz_mat3x4_t *mat) noexcept",
							"static void store_transpose(shz_mat3x3_t *mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_store_transpose_4x4().",
						"calls": [
							"shz_xmtrx_store_transpose_4x4",
							"shz_xmtrx_store_transpose_unaligned_4x4",
							"shz_xmtrx_store_transpose_3x4",
							"shz_xmtrx_store_transpose_3x3"
						]
					},
					{
						"name": "init_identity",
						"static": true,
						"signatures": [
							"static void init_identity() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_identity().",
						"calls": [
							"shz_xmtrx_init_identity"
						]
					},
					{
						"name": "init_identity_safe",
						"static": true,
						"signatures": [
							"static void init_identity_safe() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_identity_safe().",
						"calls": [
							"shz_xmtrx_init_identity"
						]
					},
					{
						"name": "init_zero",
						"static": true,
						"signatures": [
							"static void init_zero() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_zero().",
						"calls": [
							"shz_xmtrx_init_zero"
						]
					},
					{
						"name": "init_one",
						"static": true,
						"signatures": [
							"static void init_one() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_one().",
						"calls": [
							"shz_xmtrx_init_one"
						]
					},
					{
						"name": "init_fill",
						"static": true,
						"signatures": [
							"static void init_fill(float value) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_fill().",
						"calls": [
							"shz_xmtrx_init_fill"
						]
					},
					{
						"name": "init_translation",
						"static": true,
						"signatures": [
							"static void init_translation(float x, float y, float z) noexcept",
							"static void init_translation(const vec3 &v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_translation().",
						"calls": [
							"shz_xmtrx_init_translation"
						]
					},
					{
						"name": "init_scale",
						"static": true,
						"signatures": [
							"static void init_scale(float x, float y, float z) noexcept",
							"static void init_scale(const vec3 &v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_scale().",
						"calls": [
							"shz_xmtrx_init_scale"
						]
					},
					{
						"name": "init_rotation_x",
						"static": true,
						"signatures": [
							"static void init_rotation_x(float x) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_x().",
						"calls": [
							"shz_xmtrx_init_rotation_x"
						]
					},
					{
						"name": "init_rotation_y",
						"static": true,
						"signatures": [
							"static void init_rotation_y(float y) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_y().",
						"calls": [
							"shz_xmtrx_init_rotation_y"
						]
					},
					{
						"name": "init_rotation_z",
						"static": true,
						"signatures": [
							"static void init_rotation_z(float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_z().",
						"calls": [
							"shz_xmtrx_init_rotation_z"
						]
					},
					{
						"name": "init_rotation_xyz",
						"static": true,
						"signatures": [
							"static void init_rotation_xyz(float x, float y, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_xyz().",
						"calls": [
							"shz_xmtrx_init_rotation_xyz"
						]
					},
					{
						"name": "init_rotation_zyx",
						"static": true,
						"signatures": [
							"static void init_rotation_zyx(float z, float y, float x) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_zyx().",
						"calls": [
							"shz_xmtrx_init_rotation_zyx"
						]
					},
					{
						"name": "init_rotation_zxy",
						"static": true,
						"signatures": [
							"static void init_rotation_zxy(float z, float x, float y) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_zxy().",
						"calls": [
							"shz_xmtrx_init_rotation_zxy"
						]
					},
					{
						"name": "init_rotation_yxz",
						"static": true,
						"signatures": [
							"static void init_rotation_yxz(float y, float x, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_yxz().",
						"calls": [
							"shz_xmtrx_init_rotation_yxz"
						]
					},
					{
						"name": "init_rotation",
						"static": true,
						"signatures": [
							"static void init_rotation(float angle, float x, float y, float z) noexcept",
							"static void init_rotation(float angle, const vec3 &axis) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation().",
						"calls": [
							"shz_xmtrx_init_rotation"
						]
					},
					{
						"name": "init_rotation_dir",
						"static": true,
						"signatures": [
							"static void init_rotation_dir(float angle, const vec3 &dir) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_dir().",
						"calls": [
							"shz_xmtrx_init_rotation_dir"
						]
					},
					{
						"name": "init_diagonal",
						"static": true,
						"signatures": [
							"static void init_diagonal(float x, float y, float z, float w) noexcept",
							"static void init_diagonal(const vec4 &v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_diagonal().",
						"calls": [
							"shz_xmtrx_init_diagonal"
						]
					},
					{
						"name": "init_upper_triangular",
						"static": true,
						"signatures": [
							"static void init_upper_triangular(float col1, const vec2 &col2, const vec3 &col3, const vec4 &col4) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_upper_triangular().",
						"calls": [
							"shz_xmtrx_init_upper_triangular"
						]
					},
					{
						"name": "init_lower_triangular",
						"static": true,
						"signatures": [
							"static void init_lower_triangular(const vec4 &col1, const vec3 &col2, const vec2 &col3, float col4) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_lower_triangular().",
						"calls": [
							"shz_xmtrx_init_lower_triangular"
						]
					},
					{
						"name": "init_symmetric_skew",
						"static": true,
						"signatures": [
							"static void init_symmetric_skew(float x, float y, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_symmetric_skew().",
						"calls": [
							"shz_xmtrx_init_symmetric_skew"
						]
					},
					{
						"name": "init_outer_product",
						"static": true,
						"signatures": [
							"static void init_outer_product(const vec4 &a, const vec4 &b) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_outer_product().",
						"calls": [
							"shz_xmtrx_init_outer_product"
						]
					},
					{
						"name": "init_screen",
						"static": true,
						"signatures": [
							"static void init_screen(float width, float height) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_screen().",
						"calls": [
							"shz_xmtrx_init_screen"
						]
					},
					{
						"name": "init_lookat",
						"static": true,
						"signatures": [
							"static void init_lookat(const vec3 &eye, const vec3 &center, const vec3 &up) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_lookat().",
						"calls": [
							"shz_xmtrx_init_lookat"
						]
					},
					{
						"name": "init_ortho",
						"static": true,
						"signatures": [
							"static void init_ortho(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_ortho().",
						"calls": [
							"shz_xmtrx_init_ortho"
						]
					},
					{
						"name": "init_frustum",
						"static": true,
						"signatures": [
							"static void init_frustum(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_frustum().",
						"calls": [
							"shz_xmtrx_init_frustum"
						]
					},
					{
						"name": "init_perspective",
						"static": true,
						"signatures": [
							"static void init_perspective(float fov, float aspect, float znear) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_perspective().",
						"calls": [
							"shz_xmtrx_init_perspective"
						]
					},
					{
						"name": "init_rotation_quat",
						"static": true,
						"signatures": [
							"static void init_rotation_quat(const quat &q) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_quat().",
						"calls": [
							"shz_xmtrx_init_rotation_quat"
						]
					},
					{
						"name": "init_permutation_wxyz",
						"static": true,
						"signatures": [
							"static void init_permutation_wxyz() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_permutation_wxyz().",
						"calls": [
							"shz_xmtrx_init_permutation_wxyz"
						]
					},
					{
						"name": "init_permutation_yzwx",
						"static": true,
						"signatures": [
							"static void init_permutation_yzwx() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_permutation_yzwx().",
						"calls": [
							"shz_xmtrx_init_permutation_yzwx"
						]
					},
					{
						"name": "init_permutation_wzyx",
						"static": true,
						"signatures": [
							"static void init_permutation_wzyx() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_permutation_wzyx().",
						"calls": [
							"shz_xmtrx_init_permutation_wzyx"
						]
					},
					{
						"name": "apply",
						"static": true,
						"signatures": [
							"static void apply(const shz_mat4x4_t &mat4) noexcept",
							"static void apply(const float cArray[16]) noexcept",
							"static void apply(const std::array< float, 16 > &array) noexcept",
							"static void apply(const shz_mat3x4_t &mat) noexcept",
							"static void apply(const shz_mat3x3_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_4x4().",
						"calls": [
							"shz_xmtrx_apply_4x4",
							"shz_xmtrx_apply_unaligned_4x4",
							"shz_xmtrx_apply_3x4",
							"shz_xmtrx_apply_3x3"
						]
					},
					{
						"name": "apply_transpose",
						"static": true,
						"signatures": [
							"static void apply_transpose(const shz_mat4x4_t &mat4) noexcept",
							"static void apply_transpose(const float cArray[16]) noexcept",
							"static void apply_transpose(const std::array< float, 16 > &array) noexcept",
							"static void apply_transpose(const shz_mat3x4_t &mat) noexcept",
							"static void apply_transpose(const shz_mat3x3_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_transpose_4x4().",
						"calls": [
							"shz_xmtrx_apply_transpose_4x4",
							"shz_xmtrx_apply_transpose_unaligned_4x4",
							"shz_xmtrx_apply_transpose_3x4",
							"shz_xmtrx_apply_transpose_3x3"
						]
					},
					{
						"name": "apply_reverse",
						"static": true,
						"signatures": [
							"static void apply_reverse(const shz_mat4x4_t &mat4) noexcept",
							"static void apply_reverse(const float cArray[16]) noexcept",
							"static void apply_reverse(const std::array< float, 16 > &array) noexcept",
							"static void apply_reverse(const shz_mat3x4_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_reverse_4x4().",
						"calls": [
							"shz_xmtrx_apply_reverse_4x4",
							"shz_xmtrx_apply_reverse_unaligned_4x4",
							"shz_xmtrx_apply_reverse_3x4"
						]
					},
					{
						"name": "apply_reverse_transpose",
						"static": true,
						"signatures": [
							"static void apply_reverse_transpose(const shz_mat4x4_t &mat4) noexcept",
							"static void apply_reverse_transpose(const float cArray[16]) noexcept",
							"static void apply_reverse_transpose(const std::array< float, 16 > &array) noexcept",
							"static void apply_reverse_transpose(const shz_mat3x4_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_reverse_transpose_4x4().",
						"calls": [
							"shz_xmtrx_apply_reverse_transpose_4x4",
							"shz_xmtrx_apply_reverse_transpose_unaligned_4x4",
							"shz_xmtrx_apply_reverse_transpose_3x4"
						]
					},
					{
						"name": "apply_translation",
						"static": true,
						"signatures": [
							"static void apply_translation(float x, float y, float z) noexcept",
							"static void apply_translation(const vec3 &v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_translation().",
						"calls": [
							"shz_xmtrx_apply_translation"
						]
					},
					{
						"name": "apply_scale",
						"static": true,
						"signatures": [
							"static void apply_scale(float x, float y, float z) noexcept",
							"static void apply_scale(const vec3 &v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_scale().",
						"calls": [
							"shz_xmtrx_apply_scale"
						]
					},
					{
						"name": "apply_rotation_x",
						"static": true,
						"signatures": [
							"static void apply_rotation_x(float x) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_x().",
						"calls": [
							"shz_xmtrx_apply_rotation_x"
						]
					},
					{
						"name": "apply_rotation_y",
						"static": true,
						"signatures": [
							"static void apply_rotation_y(float y) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_y().",
						"calls": [
							"shz_xmtrx_apply_rotation_y"
						]
					},
					{
						"name": "apply_rotation_z",
						"static": true,
						"signatures": [
							"static void apply_rotation_z(float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_z().",
						"calls": [
							"shz_xmtrx_apply_rotation_z"
						]
					},
					{
						"name": "apply_rotation_xyz",
						"static": true,
						"signatures": [
							"static void apply_rotation_xyz(float x, float y, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_init_rotation_xyz().",
						"calls": [
							"shz_xmtrx_apply_rotation_xyz"
						]
					},
					{
						"name": "apply_rotation_zyx",
						"static": true,
						"signatures": [
							"static void apply_rotation_zyx(float z, float y, float x) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_zyx().",
						"calls": [
							"shz_xmtrx_apply_rotation_zyx"
						]
					},
					{
						"name": "apply_rotation_zxy",
						"static": true,
						"signatures": [
							"static void apply_rotation_zxy(float z, float x, float y) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_zxy().",
						"calls": [
							"shz_xmtrx_apply_rotation_zxy"
						]
					},
					{
						"name": "apply_rotation_yxz",
						"static": true,
						"signatures": [
							"static void apply_rotation_yxz(float y, float x, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_yxz().",
						"calls": [
							"shz_xmtrx_apply_rotation_yxz"
						]
					},
					{
						"name": "apply_rotation",
						"static": true,
						"signatures": [
							"static void apply_rotation(float angle, float x, float y, float z) noexcept",
							"static void apply_rotation(float angle, const vec3 &axis) noexcept"
						],
						"brief": "",
						"calls": [
							"shz_xmtrx_apply_rotation"
						]
					},
					{
						"name": "apply_rotation_quat",
						"static": true,
						"signatures": [
							"static void apply_rotation_quat(const quat &q) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_rotation_quat().",
						"calls": [
							"shz_xmtrx_apply_rotation_quat"
						]
					},
					{
						"name": "apply_lookat",
						"static": true,
						"signatures": [
							"static void apply_lookat(const vec3 &eye, const vec3 &center, const vec3 &up) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_lookat().",
						"calls": [
							"shz_xmtrx_apply_lookat"
						]
					},
					{
						"name": "apply_ortho",
						"static": true,
						"signatures": [
							"static void apply_ortho(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_ortho().",
						"calls": [
							"shz_xmtrx_apply_ortho"
						]
					},
					{
						"name": "apply_frustum",
						"static": true,
						"signatures": [
							"static void apply_frustum(float left, float right, float bottom, float top, float znear, float zfar) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_frustum().",
						"calls": [
							"shz_xmtrx_apply_frustum"
						]
					},
					{
						"name": "apply_perspective",
						"static": true,
						"signatures": [
							"static void apply_perspective(float fov, float aspect, float znear) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_perspective().",
						"calls": [
							"shz_xmtrx_apply_perspective"
						]
					},
					{
						"name": "apply_symmetric_skew",
						"static": true,
						"signatures": [
							"static void apply_symmetric_skew(float x, float y, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_symmetric_skew().",
						"calls": [
							"shz_xmtrx_apply_symmetric_skew"
						]
					},
					{
						"name": "apply_screen",
						"static": true,
						"signatures": [
							"static void apply_screen(float width, float height) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_screen().",
						"calls": [
							"shz_xmtrx_apply_screen"
						]
					},
					{
						"name": "apply_permutation_wxyz",
						"static": true,
						"signatures": [
							"static void apply_permutation_wxyz() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_permutation_wxyz().",
						"calls": [
							"shz_xmtrx_apply_permutation_wxyz"
						]
					},
					{
						"name": "apply_permutation_yzwx",
						"static": true,
						"signatures": [
							"static void apply_permutation_yzwx() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_permutation_yzwx().",
						"calls": [
							"shz_xmtrx_apply_permutation_yzwx"
						]
					},
					{
						"name": "apply_permutation_wzyx",
						"static": true,
						"signatures": [
							"static void apply_permutation_wzyx() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_permutation_wzyx().",
						"calls": [
							"shz_xmtrx_apply_permutation_wzyx"
						]
					},
					{
						"name": "apply_self",
						"static": true,
						"signatures": [
							"static void apply_self() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_self().",
						"calls": [
							"shz_xmtrx_apply_self"
						]
					},
					{
						"name": "translate",
						"static": true,
						"signatures": [
							"static void translate(float x, float y, float z) noexcept",
							"static void translate(vec3 v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_translate().",
						"calls": [
							"shz_xmtrx_translate"
						]
					},
					{
						"name": "scale",
						"static": true,
						"signatures": [
							"static void scale(float x, float y, float z) noexcept",
							"static void scale(vec3 v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_scale().",
						"calls": [
							"shz_xmtrx_scale"
						]
					},
					{
						"name": "rotate_x",
						"static": true,
						"signatures": [
							"static void rotate_x(float radians) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_x().",
						"calls": [
							"shz_xmtrx_rotate_x"
						]
					},
					{
						"name": "rotate_y",
						"static": true,
						"signatures": [
							"static void rotate_y(float radians) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_x().",
						"calls": [
							"shz_xmtrx_rotate_y"
						]
					},
					{
						"name": "rotate_z",
						"static": true,
						"signatures": [
							"static void rotate_z(float radians) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_x().",
						"calls": [
							"shz_xmtrx_rotate_z"
						]
					},
					{
						"name": "rotate_xyz",
						"static": true,
						"signatures": [
							"static void rotate_xyz(float x, float y, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_xyz().",
						"calls": [
							"shz_xmtrx_rotate_xyz"
						]
					},
					{
						"name": "rotate_zyx",
						"static": true,
						"signatures": [
							"static void rotate_zyx(float z, float y, float x) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_zyx().",
						"calls": [
							"shz_xmtrx_rotate_zyx"
						]
					},
					{
						"name": "rotate_zxy",
						"static": true,
						"signatures": [
							"static void rotate_zxy(float z, float x, float y) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_zxy().",
						"calls": [
							"shz_xmtrx_rotate_zxy"
						]
					},
					{
						"name": "rotate_yxz",
						"static": true,
						"signatures": [
							"static void rotate_yxz(float y, float x, float z) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate_yxz().",
						"calls": [
							"shz_xmtrx_rotate_yxz"
						]
					},
					{
						"name": "rotate",
						"static": true,
						"signatures": [
							"static void rotate(float radians, float x, float y, float z) noexcept",
							"static void rotate(float radians, const vec3 &axis) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_rotate().",
						"calls": [
							"shz_xmtrx_rotate"
						]
					},
					{
						"name": "translate_reverse",
						"static": true,
						"signatures": [
							"static void translate_reverse(float x, float y, float z) noexcept",
							"static void translate_reverse(const shz::vec3 &pos) noexcept"
						],
						"brief": "Pre-multiplies and accumulates XMTRX onto the 3D translation matrix with the given components.",
						"calls": [
							"shz_xmtrx_translate_reverse"
						]
					},
					{
						"name": "scale_reverse",
						"static": true,
						"signatures": [
							"static void scale_reverse(float x, float y, float z) noexcept",
							"static void scale_reverse(const shz::vec3 &size) noexcept"
						],
						"brief": "Pre-multiplies and accumulatse XMTRX onto the 3D scaling matrix with the given components.",
						"calls": [
							"shz_xmtrx_scale_reverse"
						]
					},
					{
						"name": "load_apply",
						"static": true,
						"signatures": [
							"static void load_apply(const shz_mat4x4_t &mat1, const shz_mat4x4_t &mat2) noexcept",
							"static void load_apply(const float matrix1[16], const float matrix2[16]) noexcept",
							"static void load_apply(const shz_mat3x4_t &mat1, const shz_mat3x4_t &mat2) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_apply_4x4().",
						"calls": [
							"shz_xmtrx_load_apply_4x4",
							"shz_xmtrx_load_apply_unaligned_4x4",
							"shz_xmtrx_load_apply_3x4"
						]
					},
					{
						"name": "apply_store",
						"static": true,
						"signatures": [
							"static void apply_store(shz_mat4x4_t *out, const shz_mat4x4_t &in) noexcept",
							"static void apply_store(float out[16], const float in[16]) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_apply_store_4x4().",
						"calls": [
							"shz_xmtrx_apply_store_4x4",
							"shz_xmtrx_apply_store_unaligned_4x4"
						]
					},
					{
						"name": "load_apply_store",
						"static": true,
						"signatures": [
							"static void load_apply_store(shz_mat4x4_t *dst, const shz_mat4x4_t &mat1, const shz_mat4x4_t &mat2) noexcept",
							"static void load_apply_store(float out[16], const float matrix1[16], const float matrix2[16]) noexcept",
							"static void load_apply_store(shz_mat3x4_t *dst, const shz_mat3x4_t &mat1, const shz_mat3x4_t &mat2) noexcept",
							"static void load_apply_store(shz_mat3x3_t *dst, const shz_mat3x3_t &mat1, const shz_mat3x3_t &mat2) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_load_apply_store_4x4().",
						"calls": [
							"shz_xmtrx_load_apply_store_4x4",
							"shz_xmtrx_load_apply_store_unaligned_4x4",
							"shz_xmtrx_load_apply_store_3x4",
							"shz_xmtrx_load_apply_store_3x3"
						]
					},
					{
						"name": "transform",
						"static": true,
						"signatures": [
							"static vec4 transform(const vec4 &in) noexcept",
							"static vec3 transform(const vec3 &in) noexcept",
							"static vec2 transform(const vec2 &in) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_transform_vec4().",
						"calls": [
							"shz_xmtrx_transform_vec4",
							"shz_xmtrx_transform_vec3",
							"shz_xmtrx_transform_vec2"
						]
					},
					{
						"name": "transform_point",
						"static": true,
						"signatures": [
							"static vec3 transform_point(const vec3 &pt) noexcept",
							"static vec2 transform_point(const vec2 &pt) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_transform_point3().",
						"calls": [
							"shz_xmtrx_transform_point3",
							"shz_xmtrx_transform_point2"
						]
					},
					{
						"name": "set_translation",
						"static": true,
						"signatures": [
							"static void set_translation(float x, float y, float z) noexcept",
							"static void set_translation(const vec3 &v) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_set_translation().",
						"calls": [
							"shz_xmtrx_set_translation"
						]
					},
					{
						"name": "set_scale",
						"static": true,
						"signatures": [
							"static void set_scale(float x, float y, float z) noexcept",
							"static void set_scale(const shz::vec3 &size) noexcept"
						],
						"brief": "Sets only the inner 3x3 submatrix to be a 3D scale matrix with the given components.",
						"calls": [
							"shz_xmtrx_set_scale"
						]
					},
					{
						"name": "get_translation",
						"static": true,
						"signatures": [
							"static vec3 get_translation() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_set_translation().",
						"calls": [
							"shz_xmtrx_get_translation"
						]
					},
					{
						"name": "get_scale",
						"static": true,
						"signatures": [
							"static vec3 get_scale() noexcept"
						],
						"brief": "Returns the scaling components from the inner 3x3 matrix of XMTRX, as a 3D vector.",
						"calls": [
							"shz_xmtrx_get_scale"
						]
					},
					{
						"name": "add",
						"static": true,
						"signatures": [
							"static void add(const shz_mat4x4_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_add_4x4().",
						"calls": [
							"shz_xmtrx_add_4x4"
						]
					},
					{
						"name": "sub",
						"static": true,
						"signatures": [
							"static void sub(const shz_mat4x4_t &mat) noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_sub_4x4().",
						"calls": [
							"shz_xmtrx_sub_4x4"
						]
					},
					{
						"name": "transpose",
						"static": true,
						"signatures": [
							"static void transpose() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_transpose().",
						"calls": [
							"shz_xmtrx_transpose"
						]
					},
					{
						"name": "negate",
						"static": true,
						"signatures": [
							"static void negate() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_negate().",
						"calls": [
							"shz_xmtrx_negate"
						]
					},
					{
						"name": "abs",
						"static": true,
						"signatures": [
							"static void abs() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_abs().",
						"calls": [
							"shz_xmtrx_abs"
						]
					},
					{
						"name": "to_quat",
						"static": true,
						"signatures": [
							"static quat to_quat() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_to_quat().",
						"calls": [
							"shz_xmtrx_to_quat"
						]
					},
					{
						"name": "determinant",
						"static": true,
						"signatures": [
							"static float determinant() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_determinant().",
						"calls": [
							"shz_xmtrx_determinant"
						]
					},
					{
						"name": "invert",
						"static": true,
						"signatures": [
							"static void invert() noexcept"
						],
						"brief": "C++ wrapper around shz_xmtrx_invert().",
						"calls": [
							"shz_xmtrx_invert"
						]
					},
					{
						"name": "blend",
						"static": true,
						"signatures": [
							"static void blend(const shz_mat4x4_t &matrix, float weight) noexcept",
							"static void blend(const shz_mat3x4_t &matrix, float weight) noexcept"
						],
						"brief": "Adds and accumulates a scaled 4x4 matrix onto XMTRX.",
						"calls": [
							"shz_xmtrx_blend_4x4",
							"shz_xmtrx_blend_3x4"
						]
					},
					{
						"name": "reg",
						"static": false,
						"signatures": [
							""
						],
						"brief": "FP back-bank registers comprising XMTRX.",
						"calls": []
					},
					{
						"name": "reg_t",
						"static": false,
						"signatures": [
							"using reg_t = reg"
						],
						"brief": "Non-POSIX style reg_t alias.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::sincos",
				"ctype": "shz_sincos_t",
				"header": "sh4zam/shz_trig.hpp",
				"url": "https://sh4zam.com/api/cpp/sincos/",
				"members": [
					{
						"name": "sincos",
						"static": false,
						"signatures": [
							"sincos(const shz_sincos_t &val) noexcept"
						],
						"brief": "Converting constructor from C struct.",
						"calls": []
					},
					{
						"name": "sinf",
						"static": false,
						"signatures": [
							"float sinf() const noexcept"
						],
						"brief": "Returns the sine component from the pair.",
						"calls": []
					},
					{
						"name": "cosf",
						"static": false,
						"signatures": [
							"float cosf() const noexcept"
						],
						"brief": "Returns the cosine component from the pair.",
						"calls": []
					},
					{
						"name": "tanf",
						"static": false,
						"signatures": [
							"float tanf() const noexcept"
						],
						"brief": "Calculates the tangent from the given pair.",
						"calls": [
							"shz_sincos_tanf"
						]
					},
					{
						"name": "secf",
						"static": false,
						"signatures": [
							"float secf() const noexcept"
						],
						"brief": "Calculates the secant from the given pair.",
						"calls": [
							"shz_sincos_secf"
						]
					},
					{
						"name": "cscf",
						"static": false,
						"signatures": [
							"float cscf() const noexcept"
						],
						"brief": "Calculates the cosecant from the given pair.",
						"calls": [
							"shz_sincos_cscf"
						]
					},
					{
						"name": "cotf",
						"static": false,
						"signatures": [
							"float cotf() const noexcept"
						],
						"brief": "Calculates the cotangent from the given pair.",
						"calls": [
							"shz_sincos_cotf"
						]
					},
					{
						"name": "operator std::pair< float, float >",
						"static": false,
						"signatures": [
							"operator std::pair< float, float >() const noexcept"
						],
						"brief": "",
						"calls": []
					},
					{
						"name": "from_radians",
						"static": true,
						"signatures": [
							"static sincos from_radians(float rad) noexcept",
							"static sincos from_radians(uint16_t rad) noexcept"
						],
						"brief": "Returns a new sin/cos pair from the given angle in radians.",
						"calls": [
							"shz_sincosf",
							"shz_sincosu16"
						]
					},
					{
						"name": "from_degrees",
						"static": true,
						"signatures": [
							"static sincos from_degrees(float deg) noexcept"
						],
						"brief": "Returns a new sin/cos pair from the given angle in degrees.",
						"calls": [
							"shz_sincosf_deg"
						]
					},
					{
						"name": "cos",
						"static": false,
						"signatures": [
							"float shz_sincos_t::cos"
						],
						"brief": "cosf() approximation for the angle",
						"calls": []
					},
					{
						"name": "sin",
						"static": false,
						"signatures": [
							"float shz_sincos_t::sin"
						],
						"brief": "sinf() approximation for the angle",
						"calls": []
					}
				]
			},
			{
				"name": "shz::complex",
				"ctype": "shz_complex_t",
				"header": "sh4zam/shz_complex.hpp",
				"url": "https://sh4zam.com/api/cpp/complex/",
				"members": [
					{
						"name": "complex",
						"static": false,
						"signatures": [
							"complex() noexcept=default",
							"complex(const complex &rhs) noexcept=default",
							"complex(float re, float im=0.0f) noexcept",
							"complex(const shz_complex_t &cplx) noexcept",
							"complex(const volatile shz_complex_t &cplx) noexcept"
						],
						"brief": "Default constructor.",
						"calls": []
					},
					{
						"name": "operator+=",
						"static": false,
						"signatures": [
							"complex & operator+=(const complex &rhs) noexcept"
						],
						"brief": "Adds and accumulates rhs onto the given complex number.",
						"calls": [
							"shz_caddf"
						]
					},
					{
						"name": "operator-=",
						"static": false,
						"signatures": [
							"complex & operator-=(const complex &rhs) noexcept"
						],
						"brief": "Subtracts rhs from the given complex number, assigning it to the result.",
						"calls": [
							"shz_csubf"
						]
					},
					{
						"name": "operator*=",
						"static": false,
						"signatures": [
							"complex & operator*=(const complex &rhs) noexcept",
							"complex & operator*=(float scale) noexcept"
						],
						"brief": "Multiplies and accumulates rhs by the given complex number.",
						"calls": [
							"shz_cmulf",
							"shz_cscalef"
						]
					},
					{
						"name": "operator/=",
						"static": false,
						"signatures": [
							"complex & operator/=(const complex &rhs) noexcept"
						],
						"brief": "Divides the given complex number by rhs, assigning it to the result.",
						"calls": [
							"shz_cdivf"
						]
					},
					{
						"name": "imag",
						"static": false,
						"signatures": [
							"float shz_complex_t::imag"
						],
						"brief": "The imaginary portion of the complex number.",
						"calls": []
					},
					{
						"name": "real",
						"static": false,
						"signatures": [
							"float shz_complex_t::real"
						],
						"brief": "The real portion of the complex number.",
						"calls": []
					}
				]
			},
			{
				"name": "shz::version",
				"ctype": null,
				"header": "sh4zam/shz_version.hpp",
				"url": "https://sh4zam.com/api/cpp/version/",
				"members": [
					{
						"name": "value_",
						"static": false,
						"signatures": [
							"shz_version_t value_"
						],
						"brief": "Private packed value member.",
						"calls": []
					},
					{
						"name": "version",
						"static": false,
						"signatures": [
							"version(shz_version_t value) noexcept",
							"version(uint8_t major, uint16_t minor, uint8_t patch) noexcept"
						],
						"brief": "Constructs a version from the given full value.",
						"calls": []
					},
					{
						"name": "operator shz_version_t",
						"static": false,
						"signatures": [
							"operator shz_version_t() const noexcept"
						],
						"brief": "Implicit conversion operator to make this class automatically comparable to a uint32_t.",
						"calls": []
					},
					{
						"name": "operator=",
						"static": false,
						"signatures": [
							"version operator=(uint32_t rhs) noexcept"
						],
						"brief": "Assignment operator for assigning a version to a full version ID value.",
						"calls": []
					},
					{
						"name": "major",
						"static": false,
						"signatures": [
							"uint8_t major() const noexcept"
						],
						"brief": "Extracts the major component value from a full version.",
						"calls": []
					},
					{
						"name": "minor",
						"static": false,
						"signatures": [
							"uint16_t minor() const noexcept"
						],
						"brief": "Extracts the minor component value from a full version.",
						"calls": []
					},
					{
						"name": "patch",
						"static": false,
						"signatures": [
							"uint8_t patch() const noexcept"
						],
						"brief": "Extracts the patch component value from a full version.",
						"calls": []
					},
					{
						"name": "compiled",
						"static": true,
						"signatures": [
							"static constexpr version compiled() noexcept"
						],
						"brief": "Compile-time version of SH4ZAM headers which are being included.",
						"calls": []
					},
					{
						"name": "linked",
						"static": true,
						"signatures": [
							"static version linked() noexcept"
						],
						"brief": "Link-time version of SH4ZAM library which was linked against.",
						"calls": [
							"shz_version_linked"
						]
					}
				]
			}
		],
		"aliases": [
			{
				"name": "shz::fminf",
				"target": "shz_fminf"
			},
			{
				"name": "shz::fmaxf",
				"target": "shz_fmaxf"
			},
			{
				"name": "shz::equalf",
				"target": "shz_equalf"
			},
			{
				"name": "shz::equalf_abs",
				"target": "shz_equalf_abs"
			},
			{
				"name": "shz::equalf_rel",
				"target": "shz_equalf_rel"
			},
			{
				"name": "shz::floorf",
				"target": "shz_floorf"
			},
			{
				"name": "shz::ceilf",
				"target": "shz_ceilf"
			},
			{
				"name": "shz::roundf",
				"target": "shz_roundf"
			},
			{
				"name": "shz::truncf",
				"target": "shz_truncf"
			},
			{
				"name": "shz::remainderf",
				"target": "shz_remainderf"
			},
			{
				"name": "shz::fmodf",
				"target": "shz_fmodf"
			},
			{
				"name": "shz::remquof",
				"target": "shz_remquof"
			},
			{
				"name": "shz::clampf",
				"target": "shz_clampf"
			},
			{
				"name": "shz::normalizef",
				"target": "shz_normalizef"
			},
			{
				"name": "shz::normalizef_fsrra",
				"target": "shz_normalizef_fsrra"
			},
			{
				"name": "shz::remapf",
				"target": "shz_remapf"
			},
			{
				"name": "shz::remapf_fsrra",
				"target": "shz_remapf_fsrra"
			},
			{
				"name": "shz::wrapf",
				"target": "shz_wrapf"
			},
			{
				"name": "shz::wrapf_fsrra",
				"target": "shz_wrapf_fsrra"
			},
			{
				"name": "shz::fractf",
				"target": "shz_fractf"
			},
			{
				"name": "shz::signf",
				"target": "shz_signf"
			},
			{
				"name": "shz::saturatef",
				"target": "shz_saturatef"
			},
			{
				"name": "shz::fabsf",
				"target": "shz_fabsf"
			},
			{
				"name": "shz::copysignf",
				"target": "shz_copysignf"
			},
			{
				"name": "shz::fmaf",
				"target": "shz_fmaf"
			},
			{
				"name": "shz::fdimf",
				"target": "shz_fdimf"
			},
			{
				"name": "shz::hypotf",
				"target": "shz_hypotf"
			},
			{
				"name": "shz::lerpf",
				"target": "shz_lerpf"
			},
			{
				"name": "shz::barycentric_lerpf",
				"target": "shz_barycentric_lerpf"
			},
			{
				"name": "shz::quadratic_roots",
				"target": "shz_quadratic_roots"
			},
			{
				"name": "shz::randf",
				"target": "shz_randf"
			},
			{
				"name": "shz::randf_range",
				"target": "shz_randf_range"
			},
			{
				"name": "shz::stepf",
				"target": "shz_stepf"
			},
			{
				"name": "shz::smoothstepf",
				"target": "shz_smoothstepf"
			},
			{
				"name": "shz::smoothstepf_safe",
				"target": "shz_smoothstepf_safe"
			},
			{
				"name": "shz::cbrtf",
				"target": "shz_cbrtf"
			},
			{
				"name": "shz::inv_sqrtf_fsrra",
				"target": "shz_inv_sqrtf_fsrra"
			},
			{
				"name": "shz::inv_sqrtf",
				"target": "shz_inv_sqrtf"
			},
			{
				"name": "shz::sqrtf_fsrra",
				"target": "shz_sqrtf_fsrra"
			},
			{
				"name": "shz::sqrtf",
				"target": "shz_sqrtf"
			},
			{
				"name": "shz::invf_fsrra",
				"target": "shz_invf_fsrra"
			},
			{
				"name": "shz::invf",
				"target": "shz_invf"
			},
			{
				"name": "shz::divf_fsrra",
				"target": "shz_divf_fsrra"
			},
			{
				"name": "shz::divf",
				"target": "shz_divf"
			},
			{
				"name": "shz::dot6f",
				"target": "shz_dot6f"
			},
			{
				"name": "shz::dot8f",
				"target": "shz_dot8f"
			},
			{
				"name": "shz::mag_sqr3f",
				"target": "shz_mag_sqr3f"
			},
			{
				"name": "shz::mag_sqr4f",
				"target": "shz_mag_sqr4f"
			},
			{
				"name": "shz::pow2f",
				"target": "shz_pow2f"
			},
			{
				"name": "shz::powf",
				"target": "shz_powf"
			},
			{
				"name": "shz::pow10f",
				"target": "shz_pow10f"
			},
			{
				"name": "shz::log2f",
				"target": "shz_log2f"
			},
			{
				"name": "shz::logf",
				"target": "shz_logf"
			},
			{
				"name": "shz::log10f",
				"target": "shz_log10f"
			},
			{
				"name": "shz::expf",
				"target": "shz_expf"
			},
			{
				"name": "shz::csqrtf",
				"target": "shz_csqrtf"
			},
			{
				"name": "shz::cpowf",
				"target": "shz_cpowf"
			},
			{
				"name": "shz::cexpf",
				"target": "shz_cexpf"
			},
			{
				"name": "shz::clogf",
				"target": "shz_clogf"
			},
			{
				"name": "shz::clog10f",
				"target": "shz_clog10f"
			},
			{
				"name": "shz::sincosu16",
				"target": "shz_sincosu16"
			},
			{
				"name": "shz::sincosf",
				"target": "shz_sincosf"
			},
			{
				"name": "shz::sincosf_deg",
				"target": "shz_sincosf_deg"
			},
			{
				"name": "shz::sincos_tanf",
				"target": "shz_sincos_tanf"
			},
			{
				"name": "shz::sincos_secf",
				"target": "shz_sincos_secf"
			},
			{
				"name": "shz::sincos_cscf",
				"target": "shz_sincos_cscf"
			},
			{
				"name": "shz::sincos_cotf",
				"target": "shz_sincos_cotf"
			},
			{
				"name": "shz::sinf",
				"target": "shz_sinf"
			},
			{
				"name": "shz::sinf_deg",
				"target": "shz_sinf_deg"
			},
			{
				"name": "shz::cosf",
				"target": "shz_cosf"
			},
			{
				"name": "shz::cosf_deg",
				"target": "shz_cosf_deg"
			},
			{
				"name": "shz::tanf",
				"target": "shz_tanf"
			},
			{
				"name": "shz::tanf_deg",
				"target": "shz_tanf_deg"
			},
			{
				"name": "shz::secf",
				"target": "shz_secf"
			},
			{
				"name": "shz::secf_deg",
				"target": "shz_secf_deg"
			},
			{
				"name": "shz::cscf",
				"target": "shz_cscf"
			},
			{
				"name": "shz::cscf_deg",
				"target": "shz_cscf_deg"
			},
			{
				"name": "shz::cotf",
				"target": "shz_cotf"
			},
			{
				"name": "shz::cotf_deg",
				"target": "shz_cotf_deg"
			},
			{
				"name": "shz::atanf_unit",
				"target": "shz_atanf_unit"
			},
			{
				"name": "shz::atanf_q1",
				"target": "shz_atanf_q1"
			},
			{
				"name": "shz::atanf",
				"target": "shz_atanf"
			},
			{
				"name": "shz::atan2f",
				"target": "shz_atan2f"
			},
			{
				"name": "shz::asinf",
				"target": "shz_asinf"
			},
			{
				"name": "shz::acosf",
				"target": "shz_acosf"
			},
			{
				"name": "shz::asecf",
				"target": "shz_asecf"
			},
			{
				"name": "shz::acscf",
				"target": "shz_acscf"
			},
			{
				"name": "shz::acotf",
				"target": "shz_acotf"
			},
			{
				"name": "shz::operator+",
				"target": "shz_caddf"
			},
			{
				"name": "shz::operator-",
				"target": "shz_csubf"
			},
			{
				"name": "shz::operator*",
				"target": "shz_cmulf"
			},
			{
				"name": "shz::operator*",
				"target": "shz_cscalef"
			},
			{
				"name": "shz::operator/",
				"target": "shz_cdivf"
			},
			{
				"name": "shz::operator/",
				"target": "shz_cscalef"
			},
			{
				"name": "shz::operator==",
				"target": "shz_cequalf"
			},
			{
				"name": "shz::cinitf",
				"target": "shz_cinitf"
			},
			{
				"name": "shz::cpolarf",
				"target": "shz_cpolarf"
			},
			{
				"name": "shz::cequalf",
				"target": "shz_cequalf"
			},
			{
				"name": "shz::crealf",
				"target": "shz_crealf"
			},
			{
				"name": "shz::cimagf",
				"target": "shz_cimagf"
			},
			{
				"name": "shz::caddf",
				"target": "shz_caddf"
			},
			{
				"name": "shz::csubf",
				"target": "shz_csubf"
			},
			{
				"name": "shz::cmulf",
				"target": "shz_cmulf"
			},
			{
				"name": "shz::cdivf",
				"target": "shz_cdivf"
			},
			{
				"name": "shz::cscalef",
				"target": "shz_cscalef"
			},
			{
				"name": "shz::crecipf",
				"target": "shz_crecipf"
			},
			{
				"name": "shz::cabsf",
				"target": "shz_cabsf"
			},
			{
				"name": "shz::inv_cabsf",
				"target": "shz_inv_cabsf"
			},
			{
				"name": "shz::cnormf",
				"target": "shz_cnormf"
			},
			{
				"name": "shz::cargf",
				"target": "shz_cargf"
			},
			{
				"name": "shz::conjf",
				"target": "shz_conjf"
			},
			{
				"name": "shz::cprojf",
				"target": "shz_cprojf"
			},
			{
				"name": "shz::csinf",
				"target": "shz_csinf"
			},
			{
				"name": "shz::ccosf",
				"target": "shz_ccosf"
			},
			{
				"name": "shz::ctanf",
				"target": "shz_ctanf"
			},
			{
				"name": "shz::ccscf",
				"target": "shz_ccscf"
			},
			{
				"name": "shz::csecf",
				"target": "shz_csecf"
			},
			{
				"name": "shz::ccotf",
				"target": "shz_ccotf"
			},
			{
				"name": "shz::casinf",
				"target": "shz_casinf"
			},
			{
				"name": "shz::cacosf",
				"target": "shz_cacosf"
			},
			{
				"name": "shz::catanf",
				"target": "shz_catanf"
			},
			{
				"name": "shz::cacscf",
				"target": "shz_cacscf"
			},
			{
				"name": "shz::casecf",
				"target": "shz_casecf"
			},
			{
				"name": "shz::cacotf",
				"target": "shz_cacotf"
			},
			{
				"name": "shz::csinhf",
				"target": "shz_csinhf"
			},
			{
				"name": "shz::ccoshf",
				"target": "shz_ccoshf"
			},
			{
				"name": "shz::ctanhf",
				"target": "shz_ctanhf"
			},
			{
				"name": "shz::ccschf",
				"target": "shz_ccschf"
			},
			{
				"name": "shz::csechf",
				"target": "shz_csechf"
			},
			{
				"name": "shz::ccothf",
				"target": "shz_ccothf"
			},
			{
				"name": "shz::casinhf",
				"target": "shz_casinhf"
			},
			{
				"name": "shz::cacoshf",
				"target": "shz_cacoshf"
			},
			{
				"name": "shz::catanhf",
				"target": "shz_catanhf"
			},
			{
				"name": "shz::cacschf",
				"target": "shz_cacschf"
			},
			{
				"name": "shz::casechf",
				"target": "shz_casechf"
			},
			{
				"name": "shz::cacothf",
				"target": "shz_cacothf"
			},
			{
				"name": "shz::fft",
				"target": "shz_fft"
			},
			{
				"name": "shz::sinhf",
				"target": "shz_sinhf"
			},
			{
				"name": "shz::coshf",
				"target": "shz_coshf"
			},
			{
				"name": "shz::tanhf",
				"target": "shz_tanhf"
			},
			{
				"name": "shz::cschf",
				"target": "shz_cschf"
			},
			{
				"name": "shz::sechf",
				"target": "shz_sechf"
			},
			{
				"name": "shz::cothf",
				"target": "shz_cothf"
			},
			{
				"name": "shz::asinhf",
				"target": "shz_asinhf"
			},
			{
				"name": "shz::acoshf",
				"target": "shz_acoshf"
			},
			{
				"name": "shz::atanhf",
				"target": "shz_atanhf"
			},
			{
				"name": "shz::acschf",
				"target": "shz_acschf"
			},
			{
				"name": "shz::asechf",
				"target": "shz_asechf"
			},
			{
				"name": "shz::acothf",
				"target": "shz_acothf"
			},
			{
				"name": "shz::dcache_alloc_line",
				"target": "shz_dcache_alloc_line"
			},
			{
				"name": "shz::memcpy",
				"target": "shz_memcpy"
			},
			{
				"name": "shz::memcpy1",
				"target": "shz_memcpy1"
			},
			{
				"name": "shz::memcpy2",
				"target": "shz_memcpy2"
			},
			{
				"name": "shz::memcpy4",
				"target": "shz_memcpy4"
			},
			{
				"name": "shz::memcpy8",
				"target": "shz_memcpy8"
			},
			{
				"name": "shz::memset8",
				"target": "shz_memset8"
			},
			{
				"name": "shz::memcpy32",
				"target": "shz_memcpy32"
			},
			{
				"name": "shz::memcpy64",
				"target": "shz_memcpy64"
			},
			{
				"name": "shz::memcpy2_8",
				"target": "shz_memcpy2_8"
			},
			{
				"name": "shz::memcpy2_16",
				"target": "shz_memcpy2_16"
			},
			{
				"name": "shz::memset2_16",
				"target": "shz_memset2_16"
			},
			{
				"name": "shz::memcpy4_16",
				"target": "shz_memcpy4_16"
			},
			{
				"name": "shz::memswap32_1",
				"target": "shz_memswap32_1"
			},
			{
				"name": "shz::memswap32_1_xmtrx",
				"target": "shz_memswap32_1_xmtrx"
			},
			{
				"name": "shz::sq_memcpy32",
				"target": "shz_sq_memcpy32"
			},
			{
				"name": "shz::sq_memcpy32_xmtrx",
				"target": "shz_sq_memcpy32_xmtrx"
			},
			{
				"name": "shz::sq_memcpy32_1",
				"target": "shz_sq_memcpy32_1"
			},
			{
				"name": "shz::sq_memcpy32_1_xmtrx",
				"target": "shz_sq_memcpy32_1_xmtrx"
			},
			{
				"name": "shz::memmove",
				"target": "shz_memmove"
			},
			{
				"name": "shz::memcpy128",
				"target": "shz_memcpy128"
			},
			{
				"name": "shz::operator/",
				"target": "shz_invf"
			},
			{
				"name": "shz::operator/",
				"target": "shz_invf"
			},
			{
				"name": "shz::operator+",
				"target": "shz_vec_add"
			},
			{
				"name": "shz::operator-",
				"target": "shz_vec_sub"
			},
			{
				"name": "shz::operator*",
				"target": "shz_vec_mul"
			},
			{
				"name": "shz::operator/",
				"target": "shz_vec_div"
			},
			{
				"name": "shz::operator*",
				"target": "shz_vec_scale"
			},
			{
				"name": "shz::operator*",
				"target": "shz_vec_scale"
			},
			{
				"name": "shz::operator/",
				"target": "shz_vec_scale"
			},
			{
				"name": "shz::operator/",
				"target": "shz_vec_div"
			}
		]
	},
	"symbols": [
		{
			"name": "shz_fminf",
			"kind": "function",
			"module": "scalar",
			"section": "Comparisons",
			"header": "sh4zam/shz_scalar.h",
			"line": 50,
			"signature": "SHZ_INLINE float shz_fminf(float a, float b) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the minimum value of two given floats.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fminf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fminf/",
			"md": "https://sh4zam.com/api/scalar/shz_fminf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#afca03aedc102af539f6fcbd684577719",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L50"
		},
		{
			"name": "shz_fmaxf",
			"kind": "function",
			"module": "scalar",
			"section": "Comparisons",
			"header": "sh4zam/shz_scalar.h",
			"line": 53,
			"signature": "SHZ_INLINE float shz_fmaxf(float a, float b) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the maximum value of two given floats.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fmaxf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fmaxf/",
			"md": "https://sh4zam.com/api/scalar/shz_fmaxf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a4612d0be0c94262463457c3d4d390134",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L53"
		},
		{
			"name": "shz_equalf",
			"kind": "function",
			"module": "scalar",
			"section": "Comparisons",
			"header": "sh4zam/shz_scalar.h",
			"line": 56,
			"signature": "SHZ_INLINE bool shz_equalf(float a, float b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Checks for equality based on EITHER the absolute tolerance or relative tolerance, using SHZ_FLT_EPSILON.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::equalf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_equalf/",
			"md": "https://sh4zam.com/api/scalar/shz_equalf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ac547c1839b533b77680755d90a4e51ba",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L56"
		},
		{
			"name": "shz_equalf_abs",
			"kind": "function",
			"module": "scalar",
			"section": "Comparisons",
			"header": "sh4zam/shz_scalar.h",
			"line": 59,
			"signature": "SHZ_INLINE bool shz_equalf_abs(float a, float b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Checks for equality based on the absolute tolerance using SHZ_FLT_EPSILON.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::equalf_abs"
			],
			"url": "https://sh4zam.com/api/scalar/shz_equalf_abs/",
			"md": "https://sh4zam.com/api/scalar/shz_equalf_abs.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ae7dd648d2c47473b64fad15699214e66",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L59"
		},
		{
			"name": "shz_equalf_rel",
			"kind": "function",
			"module": "scalar",
			"section": "Comparisons",
			"header": "sh4zam/shz_scalar.h",
			"line": 62,
			"signature": "SHZ_INLINE bool shz_equalf_rel(float a, float b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Checks for equality based on the relative tolerance using SHZ_FLT_EPSILON.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::equalf_rel"
			],
			"url": "https://sh4zam.com/api/scalar/shz_equalf_rel/",
			"md": "https://sh4zam.com/api/scalar/shz_equalf_rel.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a4750d9de4b10940d7c5057b2cc2a46ae",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L62"
		},
		{
			"name": "shz_floorf",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 80,
			"signature": "SHZ_INLINE float shz_floorf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, floorf().",
			"detail": "Returns the closest integral value to `x`, rounded down, as a float.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine is only valid for for the range INT32_MIN <= x <= INT32_MAX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::floorf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_floorf/",
			"md": "https://sh4zam.com/api/scalar/shz_floorf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a99704d2273a11510185d5ad1e6aac7b4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L80"
		},
		{
			"name": "shz_ceilf",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 92,
			"signature": "SHZ_INLINE float shz_ceilf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, ceilf().",
			"detail": "Returns the closest integral value to `x`, rounded up, as a float.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine only returns valid values for the input range INT32_MIN <= x <= INT32_MAX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ceilf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_ceilf/",
			"md": "https://sh4zam.com/api/scalar/shz_ceilf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ac7297b7229850014eda5c347426d78ed",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L92"
		},
		{
			"name": "shz_roundf",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 102,
			"signature": "SHZ_INLINE float shz_roundf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, roundf().",
			"detail": "Returns the value of `x` rounded to the nearest integer, as a float.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine only returns valid values for the input range -UINT32_MAX <= x <= UINT32_MAX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::roundf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_roundf/",
			"md": "https://sh4zam.com/api/scalar/shz_roundf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a7de40b6eef075001bd2036a7a91d71e5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L102"
		},
		{
			"name": "shz_truncf",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 112,
			"signature": "SHZ_INLINE float shz_truncf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, truncf().",
			"detail": "Returns the value of `with` its fractional component discarded.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine only returns valid values for the input range INT32_MIN <= x <= INT32_MAX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::truncf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_truncf/",
			"md": "https://sh4zam.com/api/scalar/shz_truncf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ad1ffc7c8674706e46c833313fc5b1b63",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L112"
		},
		{
			"name": "shz_remainderf",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 125,
			"signature": "SHZ_INLINE float shz_remainderf(float num, float denom) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "num",
					"type": "float",
					"doc": ""
				},
				{
					"name": "denom",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, remainderf().",
			"detail": "Returns the floating-point remainder of `num` divided by `denom`, rounded to the nearest integer (as a float).",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine does not gracefully handle dividing by zero, and it is only valid for the input range INT32_MIN <= num / denom <= INT32_MAX."
			],
			"sa": [
				"shz_fmodf",
				"shz_remquof",
				"shz_truncf"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::remainderf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_remainderf/",
			"md": "https://sh4zam.com/api/scalar/shz_remainderf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ae01e259f6358d3520c98b1357404f219",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L125"
		},
		{
			"name": "shz_fmodf",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 137,
			"signature": "SHZ_INLINE float shz_fmodf(float num, float denom) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "num",
					"type": "float",
					"doc": ""
				},
				{
					"name": "denom",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, fmodf().",
			"detail": "Returns the floating-point remainder of `num` divided by `denom`, rounded towards zero.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine does not gracefully handle dividing by zero."
			],
			"sa": [
				"shz_remainderf"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fmodf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fmodf/",
			"md": "https://sh4zam.com/api/scalar/shz_fmodf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a9643fcdadb90f1ec17cf1eb257599f75",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L137"
		},
		{
			"name": "shz_remquof",
			"kind": "function",
			"module": "scalar",
			"section": "Rounding",
			"header": "sh4zam/shz_scalar.h",
			"line": 154,
			"signature": "SHZ_INLINE float shz_remquof(float num, float denom, float* quot) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "num",
					"type": "float",
					"doc": ""
				},
				{
					"name": "denom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "quot",
					"type": "float *",
					"doc": ""
				}
			],
			"brief": "(Sorta) Replacement for the <math.h> routine, remquof().",
			"detail": "Returns the floating-point remainder of `num` divided by `denom`, rounded to the nearest integer (as a float). `quot` is set equal to the quotient which is used as part of the calculation.",
			"returns": "",
			"notes": [
				"quot is returning as a float rather than an int as with standard C. Simply cast to an int manually afterwards if that is the desired behavior."
			],
			"warnings": [
				"This routine does not gracefully handle dividing by zero."
			],
			"sa": [
				"shz_remainderf"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::remquof"
			],
			"url": "https://sh4zam.com/api/scalar/shz_remquof/",
			"md": "https://sh4zam.com/api/scalar/shz_remquof.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a1946076d6083e9371ac3ef48e8220b65",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L154"
		},
		{
			"name": "shz_clampf",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 164,
			"signature": "SHZ_INLINE float shz_clampf(float value, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "value",
					"type": "float",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Clamps a floating-point value by the given min and max values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::clampf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_clampf/",
			"md": "https://sh4zam.com/api/scalar/shz_clampf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a334d481857beec4aa94032eb4ccfbb3f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L164"
		},
		{
			"name": "shz_normalizef",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 167,
			"signature": "SHZ_INLINE float shz_normalizef(float current, float from, float to) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "current",
					"type": "float",
					"doc": ""
				},
				{
					"name": "from",
					"type": "float",
					"doc": ""
				},
				{
					"name": "to",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Maps a value within the given range from to to, to be within the range of 0.0f += 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::normalizef"
			],
			"url": "https://sh4zam.com/api/scalar/shz_normalizef/",
			"md": "https://sh4zam.com/api/scalar/shz_normalizef.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a4fc731ff95216f0a659f591054f40d87",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L167"
		},
		{
			"name": "shz_normalizef_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 170,
			"signature": "SHZ_INLINE float shz_normalizef_fsrra(float current, float from, float to) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "current",
					"type": "float",
					"doc": ""
				},
				{
					"name": "from",
					"type": "float",
					"doc": ""
				},
				{
					"name": "to",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Maps a value within the given range from to to, to be within the range of 0.0f + 1.0f more quickly, provided to - from is a positive difference.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::normalizef_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_normalizef_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_normalizef_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ae9c2683db7f44820a79678d9711c10a6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L170"
		},
		{
			"name": "shz_remapf",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 173,
			"signature": "SHZ_INLINE float shz_remapf(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "value",
					"type": "float",
					"doc": ""
				},
				{
					"name": "inputStart",
					"type": "float",
					"doc": ""
				},
				{
					"name": "inputEnd",
					"type": "float",
					"doc": ""
				},
				{
					"name": "outputStart",
					"type": "float",
					"doc": ""
				},
				{
					"name": "outputEnd",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Maps a value within the given range inputStart to inputEnd, to be within the range of outputStart to outputEnd.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::remapf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_remapf/",
			"md": "https://sh4zam.com/api/scalar/shz_remapf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#af2ae80f790863f6ea6a3af24584b3546",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L173"
		},
		{
			"name": "shz_remapf_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 176,
			"signature": "SHZ_INLINE float shz_remapf_fsrra(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "value",
					"type": "float",
					"doc": ""
				},
				{
					"name": "inputStart",
					"type": "float",
					"doc": ""
				},
				{
					"name": "inputEnd",
					"type": "float",
					"doc": ""
				},
				{
					"name": "outputStart",
					"type": "float",
					"doc": ""
				},
				{
					"name": "outputEnd",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Maps a value within the given range inputStart to inputEnd, to be within the range of outputStart to outputEnd more quickly, provided the outputEnd - outputStart is a positive difference.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::remapf_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_remapf_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_remapf_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#af550b0587f5158c012378ac3e8c83afd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L176"
		},
		{
			"name": "shz_wrapf",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 179,
			"signature": "SHZ_INLINE float shz_wrapf(float value, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "value",
					"type": "float",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Wraps the given value back to be within the range of min to max.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::wrapf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_wrapf/",
			"md": "https://sh4zam.com/api/scalar/shz_wrapf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ad8dc70040a50eace4aec59ba0e850114",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L179"
		},
		{
			"name": "shz_wrapf_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 182,
			"signature": "SHZ_INLINE float shz_wrapf_fsrra(float value, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "value",
					"type": "float",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Wraps the given value back to be within the range of min to max more quickly, provided max - min is a positive difference.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::wrapf_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_wrapf_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_wrapf_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#aa5d8a9045945705b4cdeeee00d353a70",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L182"
		},
		{
			"name": "shz_fractf",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 185,
			"signature": "SHZ_INLINE float shz_fractf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the fractional part of x, equivalent to GLSL fract().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fractf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fractf/",
			"md": "https://sh4zam.com/api/scalar/shz_fractf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a4ddb371dbfabcf8cafcc47ef3686f521",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L185"
		},
		{
			"name": "shz_signf",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 188,
			"signature": "SHZ_INLINE float shz_signf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns -1.0f if x < 0, 0.0f if x == 0, or 1.0f if x > 0.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::signf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_signf/",
			"md": "https://sh4zam.com/api/scalar/shz_signf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a9777b4c822170d4662e9be12cf4fa146",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L188"
		},
		{
			"name": "shz_saturatef",
			"kind": "function",
			"module": "scalar",
			"section": "Mapping",
			"header": "sh4zam/shz_scalar.h",
			"line": 191,
			"signature": "SHZ_INLINE float shz_saturatef(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Clamps x to the range [0.0f, 1.0f].",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::saturatef"
			],
			"url": "https://sh4zam.com/api/scalar/shz_saturatef/",
			"md": "https://sh4zam.com/api/scalar/shz_saturatef.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#af24b5ce6d0c1223dbcb2762dc1c5497d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L191"
		},
		{
			"name": "shz_fabsf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 204,
			"signature": "SHZ_INLINE float shz_fabsf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, fabsf().",
			"detail": "Returns the absolute value of `x`.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fabsf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fabsf/",
			"md": "https://sh4zam.com/api/scalar/shz_fabsf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a54232b1922f5a44fc73c5266bb86adeb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L204"
		},
		{
			"name": "shz_copysignf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 212,
			"signature": "SHZ_INLINE float shz_copysignf(float x, float y) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, copysignf().",
			"detail": "Returns the value of `x` with the sign of `y`.",
			"returns": "",
			"notes": [],
			"warnings": [
				"When y == -0.0f, a positive value is returned."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::copysignf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_copysignf/",
			"md": "https://sh4zam.com/api/scalar/shz_copysignf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#afda0a348aab1b56215e624dcb488aa6b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L212"
		},
		{
			"name": "shz_fmaf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 218,
			"signature": "SHZ_INLINE float shz_fmaf(float a, float b, float c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				},
				{
					"name": "c",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, fmaf().",
			"detail": "Returns `a` \\* `b` + `c`, performing an FP multiply + accumulate operation.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fmaf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fmaf/",
			"md": "https://sh4zam.com/api/scalar/shz_fmaf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a8881b1b83c5efe2f54d074ad36eb6d15",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L218"
		},
		{
			"name": "shz_fdimf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 228,
			"signature": "SHZ_INLINE float shz_fdimf(float x, float y) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, fdimf(),.",
			"detail": "Returns the positive difference between `x` and `y` or zero if y >= x.",
			"returns": "",
			"notes": [],
			"warnings": [
				"Unlike fdimf(), this routine does not handle INF and NAN values."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fdimf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_fdimf/",
			"md": "https://sh4zam.com/api/scalar/shz_fdimf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#aa356bf0391d577e7f5ae9a625dbaf392",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L228"
		},
		{
			"name": "shz_hypotf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 237,
			"signature": "SHZ_INLINE float shz_hypotf(float x, float y) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, hypotf().",
			"detail": "Returns the hypoteneuse of the right triangle with the given legs.",
			"returns": "",
			"notes": [],
			"warnings": [
				"Unlike hypotf(), this routine has no error or overflow handling."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::hypotf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_hypotf/",
			"md": "https://sh4zam.com/api/scalar/shz_hypotf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a5cec25d74b23a48dd459ccc73b134e37",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L237"
		},
		{
			"name": "shz_cbrtf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 243,
			"signature": "SHZ_INLINE float shz_cbrtf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Replacement for the <math.h> routine, cbrtf().",
			"detail": "Returns the cubed root of `x`, using a fast approximation.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cbrtf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_cbrtf/",
			"md": "https://sh4zam.com/api/scalar/shz_cbrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a91e7ec3052b34793a53babd86f80cf96",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L243"
		},
		{
			"name": "shz_lerpf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 246,
			"signature": "SHZ_INLINE float shz_lerpf(float a, float b, float t) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a value that is linearly interpolated between a and b by the given ratio, t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::lerpf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_lerpf/",
			"md": "https://sh4zam.com/api/scalar/shz_lerpf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#af23f1440ef9e601cdd8fd73a29a5f2fd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L246"
		},
		{
			"name": "shz_barycentric_lerpf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 249,
			"signature": "SHZ_INLINE float shz_barycentric_lerpf(float a, float b, float c, float u, float v) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				},
				{
					"name": "c",
					"type": "float",
					"doc": ""
				},
				{
					"name": "u",
					"type": "float",
					"doc": ""
				},
				{
					"name": "v",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a value that is barycentrically interpolated between a, b, and c using the given barycentric coordinates, u and v.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::barycentric_lerpf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_barycentric_lerpf/",
			"md": "https://sh4zam.com/api/scalar/shz_barycentric_lerpf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a3f5f31f1d86765e80e897498fb971102",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L249"
		},
		{
			"name": "shz_quadratic_roots",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 252,
			"signature": "SHZ_INLINE bool shz_quadratic_roots(float a, float b, float c, float* root1, float* root2) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "float",
					"doc": ""
				},
				{
					"name": "b",
					"type": "float",
					"doc": ""
				},
				{
					"name": "c",
					"type": "float",
					"doc": ""
				},
				{
					"name": "root1",
					"type": "float *",
					"doc": ""
				},
				{
					"name": "root2",
					"type": "float *",
					"doc": ""
				}
			],
			"brief": "Uses the quadratic formula with the given coefficients to solve for the two roots, returning true if any real roots exist, and false if the roots are only imaginary.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quadratic_roots"
			],
			"url": "https://sh4zam.com/api/scalar/shz_quadratic_roots/",
			"md": "https://sh4zam.com/api/scalar/shz_quadratic_roots.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a76655f4069afd5ba102d3a637e5b5253",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L252"
		},
		{
			"name": "shz_randf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 255,
			"signature": "SHZ_INLINE float shz_randf(int* seed) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "seed",
					"type": "int *",
					"doc": ""
				}
			],
			"brief": "Returns a random floating-point number between 0.0f and 1.0f, using and updating the given seed.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::randf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_randf/",
			"md": "https://sh4zam.com/api/scalar/shz_randf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a61f4a4fd9c84fbb96779bfd077d3fbe1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L255"
		},
		{
			"name": "shz_randf_range",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 258,
			"signature": "SHZ_INLINE float shz_randf_range(int* seed, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "seed",
					"type": "int *",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a random floating-point number between min and max, using and updating the given seed.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::randf_range"
			],
			"url": "https://sh4zam.com/api/scalar/shz_randf_range/",
			"md": "https://sh4zam.com/api/scalar/shz_randf_range.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a11be23bc1764de7f5f7c9f7b3e69e1ca",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L258"
		},
		{
			"name": "shz_stepf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 261,
			"signature": "SHZ_INLINE float shz_stepf(float x, float edge) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "returns 0.0f if x < edge, otherwise 1.0f",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::stepf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_stepf/",
			"md": "https://sh4zam.com/api/scalar/shz_stepf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#aa204446aec46c160d2410c8f5a3f41fe",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L261"
		},
		{
			"name": "shz_smoothstepf",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 264,
			"signature": "SHZ_INLINE float shz_smoothstepf(float x, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between. edge0 must be less than edge1 or result is undefined.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::smoothstepf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_smoothstepf/",
			"md": "https://sh4zam.com/api/scalar/shz_smoothstepf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a829bf1f41cdfe7e27701f6479cb7e7c3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L264"
		},
		{
			"name": "shz_smoothstepf_safe",
			"kind": "function",
			"module": "scalar",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_scalar.h",
			"line": 267,
			"signature": "SHZ_INLINE float shz_smoothstepf_safe(float x, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::smoothstepf_safe"
			],
			"url": "https://sh4zam.com/api/scalar/shz_smoothstepf_safe/",
			"md": "https://sh4zam.com/api/scalar/shz_smoothstepf_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a2126abd43c0aabc7aee04347daa4398c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L267"
		},
		{
			"name": "shz_inv_sqrtf_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 277,
			"signature": "SHZ_INLINE float shz_inv_sqrtf_fsrra(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Calculates 1.0f/sqrtf( x), using a fast approximation.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::inv_sqrtf_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_inv_sqrtf_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_inv_sqrtf_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#add71f1a57af34fe94b96748b33a9d779",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L277"
		},
		{
			"name": "shz_inv_sqrtf",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 280,
			"signature": "SHZ_INLINE float shz_inv_sqrtf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Calculates 1.0f/sqrtf( x ), using a fast approximation, while safely protecting against division-by-zero.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::inv_sqrtf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_inv_sqrtf/",
			"md": "https://sh4zam.com/api/scalar/shz_inv_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ac80a2963342ecc8f87064979e2676c68",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L280"
		},
		{
			"name": "shz_sqrtf_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 283,
			"signature": "SHZ_INLINE float shz_sqrtf_fsrra(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the fast approximate square root of the given value, x.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sqrtf_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_sqrtf_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_sqrtf_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a4557bef11f73c6198ac67b1e8236e3cc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L283"
		},
		{
			"name": "shz_sqrtf",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 286,
			"signature": "SHZ_INLINE float shz_sqrtf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the fast approximate square root of the given value, x, safely returning 0.0f is x == 0.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sqrtf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_sqrtf/",
			"md": "https://sh4zam.com/api/scalar/shz_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a9f10b0c39a0cca20133d7af7c7b6630b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L286"
		},
		{
			"name": "shz_invf_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 289,
			"signature": "SHZ_INLINE float shz_invf_fsrra(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Takes the inverse of x using a very fast approximation, returning a positive result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::invf_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_invf_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_invf_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a4bbdb33352b424ded4a59d1769c753d4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L289"
		},
		{
			"name": "shz_invf",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 292,
			"signature": "SHZ_INLINE float shz_invf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Takes the inverse of x using a slighty faster approximation than doing a full division, safely handling negative values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::invf",
				"shz::operator/",
				"shz::quat::operator/="
			],
			"url": "https://sh4zam.com/api/scalar/shz_invf/",
			"md": "https://sh4zam.com/api/scalar/shz_invf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a9b00ac4d3efa84ee01760d4a50978f68",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L292"
		},
		{
			"name": "shz_divf_fsrra",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 295,
			"signature": "SHZ_INLINE float shz_divf_fsrra(float num, float denom) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "num",
					"type": "float",
					"doc": ""
				},
				{
					"name": "denom",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Divides num by denom using a very fast approximation, which requires denom be a positive value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::divf_fsrra"
			],
			"url": "https://sh4zam.com/api/scalar/shz_divf_fsrra/",
			"md": "https://sh4zam.com/api/scalar/shz_divf_fsrra.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a286a479189cc94bc72d5d03672890d32",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L295"
		},
		{
			"name": "shz_divf",
			"kind": "function",
			"module": "scalar",
			"section": "FSRRA",
			"header": "sh4zam/shz_scalar.h",
			"line": 298,
			"signature": "SHZ_INLINE float shz_divf(float num, float denom) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "num",
					"type": "float",
					"doc": ""
				},
				{
					"name": "denom",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Divides num by denom using a slightly faster approximation, allowing denom to be negative.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::divf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_divf/",
			"md": "https://sh4zam.com/api/scalar/shz_divf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a5e091d8ee2919a514a5926f4a31f11ae",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L298"
		},
		{
			"name": "shz_dot6f",
			"kind": "function",
			"module": "scalar",
			"section": "FIPR",
			"header": "sh4zam/shz_scalar.h",
			"line": 309,
			"signature": "SHZ_INLINE float shz_dot6f(float x1, float y1, float z1, float x2, float y2, float z2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x2",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y2",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z2",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Takes two sets of 3D vectors as 3 floats and calculates their dot product using an approximation.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::dot6f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_dot6f/",
			"md": "https://sh4zam.com/api/scalar/shz_dot6f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#aad8b52e936fbe9a9bc0d062d268e73ce",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L309"
		},
		{
			"name": "shz_dot8f",
			"kind": "function",
			"module": "scalar",
			"section": "FIPR",
			"header": "sh4zam/shz_scalar.h",
			"line": 313,
			"signature": "SHZ_INLINE float shz_dot8f(float x1, float y1, float z1, float w1, float x2, float y2, float z2, float w2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x2",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y2",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z2",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w2",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Takes two sets of 4D vectors as 4 floats and calculates their dot product using an approximation.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::dot8f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_dot8f/",
			"md": "https://sh4zam.com/api/scalar/shz_dot8f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a3ddd6bce96ef61e7d632a22a8f73bc47",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L313"
		},
		{
			"name": "shz_mag_sqr3f",
			"kind": "function",
			"module": "scalar",
			"section": "FIPR",
			"header": "sh4zam/shz_scalar.h",
			"line": 317,
			"signature": "SHZ_INLINE float shz_mag_sqr3f(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Takes a 3D vector as 3 floats and calculates its squared magnitude using a fast approximation.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mag_sqr3f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_mag_sqr3f/",
			"md": "https://sh4zam.com/api/scalar/shz_mag_sqr3f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#acc4033424753e54ffd1d42a37aa984f6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L317"
		},
		{
			"name": "shz_mag_sqr4f",
			"kind": "function",
			"module": "scalar",
			"section": "FIPR",
			"header": "sh4zam/shz_scalar.h",
			"line": 320,
			"signature": "SHZ_INLINE float shz_mag_sqr4f(float x, float y, float z, float w) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Takes a 4D vector as 4 floats and calculates its squared magnitude using a fast approximation.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mag_sqr4f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_mag_sqr4f/",
			"md": "https://sh4zam.com/api/scalar/shz_mag_sqr4f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a1c2dc3cafc016af14943f50c9e16f651",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L320"
		},
		{
			"name": "shz_pow2f",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 330,
			"signature": "SHZ_INLINE float shz_pow2f(float p) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "p",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation for raising 2 to a floating-point power.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::pow2f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_pow2f/",
			"md": "https://sh4zam.com/api/scalar/shz_pow2f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#aa6fdd64d14c80be04965261c634c03dc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L330"
		},
		{
			"name": "shz_powf",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 333,
			"signature": "SHZ_INLINE float shz_powf(float x, float p) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "p",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation for C's powf().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::powf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_powf/",
			"md": "https://sh4zam.com/api/scalar/shz_powf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ad6443c3bb784c65470afcef11132b2e1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L333"
		},
		{
			"name": "shz_pow10f",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 336,
			"signature": "SHZ_INLINE float shz_pow10f(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation of POSIX's pow10f().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::pow10f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_pow10f/",
			"md": "https://sh4zam.com/api/scalar/shz_pow10f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a44f21b273ad0e29c9782a8a6d853fc6c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L336"
		},
		{
			"name": "shz_log2f",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 339,
			"signature": "SHZ_INLINE float shz_log2f(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation for C's log2f().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::log2f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_log2f/",
			"md": "https://sh4zam.com/api/scalar/shz_log2f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a7fd328dee21d2ab6d93b76d79d4d53ce",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L339"
		},
		{
			"name": "shz_logf",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 342,
			"signature": "SHZ_INLINE float shz_logf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation for C's logf().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::logf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_logf/",
			"md": "https://sh4zam.com/api/scalar/shz_logf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a42c213a0c9cce5217c9bb436f4151d26",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L342"
		},
		{
			"name": "shz_log10f",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 345,
			"signature": "SHZ_INLINE float shz_log10f(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation for C's log10f().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::log10f"
			],
			"url": "https://sh4zam.com/api/scalar/shz_log10f/",
			"md": "https://sh4zam.com/api/scalar/shz_log10f.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#ae8dc3f50fab1798fed55c9c98a88a9df",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L345"
		},
		{
			"name": "shz_expf",
			"kind": "function",
			"module": "scalar",
			"section": "Transcendental",
			"header": "sh4zam/shz_scalar.h",
			"line": 348,
			"signature": "SHZ_INLINE float shz_expf(float p) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "p",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast approximation for C's expf().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::expf"
			],
			"url": "https://sh4zam.com/api/scalar/shz_expf/",
			"md": "https://sh4zam.com/api/scalar/shz_expf.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a5a883508bc6d324317831644fbbf6ff0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L348"
		},
		{
			"name": "SHZ_FLT_EPSILON",
			"kind": "macro",
			"module": "scalar",
			"section": "Macros",
			"header": "sh4zam/shz_scalar.h",
			"line": 40,
			"signature": "#define SHZ_FLT_EPSILON 0.01f",
			"params": [],
			"brief": "Floating-point epsilon used with inexact FP-based comparisons.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/scalar/SHZ_FLT_EPSILON/",
			"md": "https://sh4zam.com/api/scalar/SHZ_FLT_EPSILON.md",
			"doxygen_url": "https://sh4zam.com/shz__scalar_8h.html#a5a4ae98c1b4ba3bd1abd008eb1507588",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_scalar.h#L40"
		},
		{
			"name": "shz_sincosu16",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 71,
			"signature": "SHZ_INLINE shz_sincos_t shz_sincosu16(uint16_t radians16) SHZ_NOEXCEPT;",
			"return_type": "shz_sincos_t",
			"params": [
				{
					"name": "radians16",
					"type": "uint16_t",
					"doc": ""
				}
			],
			"brief": "Returns sinf()/cosf() pairs for the given unsigned 16-bit angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincosu16"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincosu16/",
			"md": "https://sh4zam.com/api/trig/shz_sincosu16.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a8b4c4eae70049915d24875027a9930c6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L71"
		},
		{
			"name": "shz_sincosf",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 74,
			"signature": "SHZ_INLINE shz_sincos_t shz_sincosf(float radians) SHZ_NOEXCEPT;",
			"return_type": "shz_sincos_t",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns sinf()/cosf() pairs for the given floating-point angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincosf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincosf/",
			"md": "https://sh4zam.com/api/trig/shz_sincosf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a50e85bc7b0511512d5d715c7f6620da6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L74"
		},
		{
			"name": "shz_sincosf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 77,
			"signature": "SHZ_INLINE shz_sincos_t shz_sincosf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "shz_sincos_t",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns sinf/cosf() pairs for the given floating-point angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincos::from_degrees",
				"shz::sincosf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincosf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_sincosf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a06efff8aa32ad27338a6271fbff0c101",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L77"
		},
		{
			"name": "shz_sincos_tanf",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 80,
			"signature": "SHZ_INLINE float shz_sincos_tanf(shz_sincos_t sincos) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "sincos",
					"type": "shz_sincos_t",
					"doc": ""
				}
			],
			"brief": "Returns tanf() from the given pre-computed sincos pair.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincos::tanf",
				"shz::sincos_tanf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincos_tanf/",
			"md": "https://sh4zam.com/api/trig/shz_sincos_tanf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ab5244ce4e4fdae1677920d3da2ec93a1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L80"
		},
		{
			"name": "shz_sincos_secf",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 83,
			"signature": "SHZ_INLINE float shz_sincos_secf(shz_sincos_t sincos) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "sincos",
					"type": "shz_sincos_t",
					"doc": ""
				}
			],
			"brief": "Returns the floating-point secant (1.0f / cosf(x)) from the given pre-computed sincos pair.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincos::secf",
				"shz::sincos_secf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincos_secf/",
			"md": "https://sh4zam.com/api/trig/shz_sincos_secf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ab424aa1fd255c4a464a4ae047184ea56",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L83"
		},
		{
			"name": "shz_sincos_cscf",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 86,
			"signature": "SHZ_INLINE float shz_sincos_cscf(shz_sincos_t sincos) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "sincos",
					"type": "shz_sincos_t",
					"doc": ""
				}
			],
			"brief": "Returns the floating-point cosecant (1.0f / sinf(x)) from the given pre-computed sincos pair.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincos::cscf",
				"shz::sincos_cscf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincos_cscf/",
			"md": "https://sh4zam.com/api/trig/shz_sincos_cscf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a98b1b8fbaa6795a3cb3ed4bfb46cf110",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L86"
		},
		{
			"name": "shz_sincos_cotf",
			"kind": "function",
			"module": "trig",
			"section": "Sin/Cos Pairs",
			"header": "sh4zam/shz_trig.h",
			"line": 89,
			"signature": "SHZ_INLINE float shz_sincos_cotf(shz_sincos_t sincos) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "sincos",
					"type": "shz_sincos_t",
					"doc": ""
				}
			],
			"brief": "Returns the floating-point cotangent (1.0f / tanf(x)) from the given pre-computed sincos pair.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sincos::cotf",
				"shz::sincos_cotf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincos_cotf/",
			"md": "https://sh4zam.com/api/trig/shz_sincos_cotf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ac35c9a226e7d95624236358d14c18c99",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L89"
		},
		{
			"name": "shz_sinf",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 99,
			"signature": "SHZ_INLINE float shz_sinf(float radians) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only sinf() from an angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sinf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sinf/",
			"md": "https://sh4zam.com/api/trig/shz_sinf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a6e920487d33d07c5c50c9ba2b24aeb8c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L99"
		},
		{
			"name": "shz_sinf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 102,
			"signature": "SHZ_INLINE float shz_sinf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only sinf() from an angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sinf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_sinf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_sinf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a5e017496aca418a4d4750736d880fe29",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L102"
		},
		{
			"name": "shz_cosf",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 105,
			"signature": "SHZ_INLINE float shz_cosf(float radians) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only cosf() from an angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cosf"
			],
			"url": "https://sh4zam.com/api/trig/shz_cosf/",
			"md": "https://sh4zam.com/api/trig/shz_cosf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a5ae62781f87b5865046d0d3d37b143e1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L105"
		},
		{
			"name": "shz_cosf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 108,
			"signature": "SHZ_INLINE float shz_cosf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only cosf() from an angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cosf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_cosf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_cosf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a45e1c97d2d06d07160ece5ebeb3cb045",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L108"
		},
		{
			"name": "shz_tanf",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 111,
			"signature": "SHZ_INLINE float shz_tanf(float radians) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only tanf() from an angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::tanf"
			],
			"url": "https://sh4zam.com/api/trig/shz_tanf/",
			"md": "https://sh4zam.com/api/trig/shz_tanf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a65dc34b573718e2d1c16364cacb619c9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L111"
		},
		{
			"name": "shz_tanf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 114,
			"signature": "SHZ_INLINE float shz_tanf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only tanf() from an angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::tanf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_tanf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_tanf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a59158ef91e20393b2deb9c7408949e23",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L114"
		},
		{
			"name": "shz_secf",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 117,
			"signature": "SHZ_INLINE float shz_secf(float radians) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only secant (1 / cos(x)) from an angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::secf"
			],
			"url": "https://sh4zam.com/api/trig/shz_secf/",
			"md": "https://sh4zam.com/api/trig/shz_secf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a5e1edf0c8535a922d3e39a2f668cc99f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L117"
		},
		{
			"name": "shz_secf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 120,
			"signature": "SHZ_INLINE float shz_secf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only secant (1 / cos(x)) from an angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::secf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_secf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_secf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#aa75f9a61c702d8efa773bed679fdf58b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L120"
		},
		{
			"name": "shz_cscf",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 123,
			"signature": "SHZ_INLINE float shz_cscf(float radians) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only cosecant (1 / sin(x)) from an angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cscf"
			],
			"url": "https://sh4zam.com/api/trig/shz_cscf/",
			"md": "https://sh4zam.com/api/trig/shz_cscf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#aba47ec56ff173ec2ffb2d4ac20a33703",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L123"
		},
		{
			"name": "shz_cscf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 126,
			"signature": "SHZ_INLINE float shz_cscf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only cosecant (1 / sin(x)) from an angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cscf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_cscf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_cscf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a45c6d823a90d09efc15d5e0c6d8bdf5e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L126"
		},
		{
			"name": "shz_cotf",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 129,
			"signature": "SHZ_INLINE float shz_cotf(float radians) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only cotangent (1 / tan(x)) from an angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cotf"
			],
			"url": "https://sh4zam.com/api/trig/shz_cotf/",
			"md": "https://sh4zam.com/api/trig/shz_cotf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ac1ff20b76629d16aa8c915dcf37d6b56",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L129"
		},
		{
			"name": "shz_cotf_deg",
			"kind": "function",
			"module": "trig",
			"section": "Independent Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 132,
			"signature": "SHZ_INLINE float shz_cotf_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "One-off routine for returning only cotangent (1 / cot(x)) from an angle in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cotf_deg"
			],
			"url": "https://sh4zam.com/api/trig/shz_cotf_deg/",
			"md": "https://sh4zam.com/api/trig/shz_cotf_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a09719d0d5a6b689c2a432900dc2b49d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L132"
		},
		{
			"name": "shz_asinf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 142,
			"signature": "SHZ_INLINE float shz_asinf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arcsine approximation; equivalent to C's asinf().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::asinf"
			],
			"url": "https://sh4zam.com/api/trig/shz_asinf/",
			"md": "https://sh4zam.com/api/trig/shz_asinf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#abecf2dfae96efb40ca0e9c115857a03f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L142"
		},
		{
			"name": "shz_acosf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 145,
			"signature": "SHZ_INLINE float shz_acosf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arccosine approximation; equivalent to C's acosf().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::acosf"
			],
			"url": "https://sh4zam.com/api/trig/shz_acosf/",
			"md": "https://sh4zam.com/api/trig/shz_acosf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a3ea908553c248316d92f85b192803249",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L145"
		},
		{
			"name": "shz_atanf_unit",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 148,
			"signature": "SHZ_INLINE float shz_atanf_unit(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arctangent approximation for unit values between 0.0f and 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::atanf_unit"
			],
			"url": "https://sh4zam.com/api/trig/shz_atanf_unit/",
			"md": "https://sh4zam.com/api/trig/shz_atanf_unit.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a0e67511c9986164d99348a5c414d9545",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L148"
		},
		{
			"name": "shz_atanf_q1",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 151,
			"signature": "SHZ_INLINE float shz_atanf_q1(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arctangent approximation for values lying within the first quadrant (>= 0.0f).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::atanf_q1"
			],
			"url": "https://sh4zam.com/api/trig/shz_atanf_q1/",
			"md": "https://sh4zam.com/api/trig/shz_atanf_q1.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ad171af9fa80936ac4a3ac6b6733f7603",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L151"
		},
		{
			"name": "shz_atanf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 154,
			"signature": "SHZ_INLINE float shz_atanf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arctangent approximation; equvalent to C's atanf().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::atanf"
			],
			"url": "https://sh4zam.com/api/trig/shz_atanf/",
			"md": "https://sh4zam.com/api/trig/shz_atanf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a04bcba9cf2f2f20fa1e6029032a7fccf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L154"
		},
		{
			"name": "shz_atan2f",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 157,
			"signature": "SHZ_INLINE float shz_atan2f(float y, float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Computes arctangent of y / x, using the signs of arguments to determine correct quadtrant. Equivalent to C's atan2f().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::atan2f"
			],
			"url": "https://sh4zam.com/api/trig/shz_atan2f/",
			"md": "https://sh4zam.com/api/trig/shz_atan2f.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#aa1862dade9e376a67a5affa21dd9ab43",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L157"
		},
		{
			"name": "shz_asecf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 160,
			"signature": "SHZ_INLINE float shz_asecf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arcsecant/inverse secant approximation, taking units in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::asecf"
			],
			"url": "https://sh4zam.com/api/trig/shz_asecf/",
			"md": "https://sh4zam.com/api/trig/shz_asecf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#aa5b8d088f70d98c09b89bcdda4cfb778",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L160"
		},
		{
			"name": "shz_acscf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 163,
			"signature": "SHZ_INLINE float shz_acscf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arccosecant/inverse cosecant approximation; taking units in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::acscf"
			],
			"url": "https://sh4zam.com/api/trig/shz_acscf/",
			"md": "https://sh4zam.com/api/trig/shz_acscf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ab19ea7d89ab47e3dd0864cedb4f8aaa4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L163"
		},
		{
			"name": "shz_acotf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 166,
			"signature": "SHZ_INLINE float shz_acotf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast arccotangent/inverse cotangent approximation; taking units in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::acotf"
			],
			"url": "https://sh4zam.com/api/trig/shz_acotf/",
			"md": "https://sh4zam.com/api/trig/shz_acotf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#af6d23b9415bcfe4f5190c9fb0e610e72",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L166"
		},
		{
			"name": "shz_sinhf",
			"kind": "function",
			"module": "trig",
			"section": "Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 176,
			"signature": "SHZ_INLINE float shz_sinhf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic sine function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sinhf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sinhf/",
			"md": "https://sh4zam.com/api/trig/shz_sinhf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#afb4425d19d641d9213decf7fa55215b6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L176"
		},
		{
			"name": "shz_coshf",
			"kind": "function",
			"module": "trig",
			"section": "Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 179,
			"signature": "SHZ_INLINE float shz_coshf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic cosine function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::coshf"
			],
			"url": "https://sh4zam.com/api/trig/shz_coshf/",
			"md": "https://sh4zam.com/api/trig/shz_coshf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a7974c1f49f6926d03fa8e31e6559f060",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L179"
		},
		{
			"name": "shz_tanhf",
			"kind": "function",
			"module": "trig",
			"section": "Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 182,
			"signature": "SHZ_INLINE float shz_tanhf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic tangent function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::tanhf"
			],
			"url": "https://sh4zam.com/api/trig/shz_tanhf/",
			"md": "https://sh4zam.com/api/trig/shz_tanhf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ad1af0a40dd189a91093c814fd0bad24c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L182"
		},
		{
			"name": "shz_cschf",
			"kind": "function",
			"module": "trig",
			"section": "Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 185,
			"signature": "SHZ_INLINE float shz_cschf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic cosecant function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cschf"
			],
			"url": "https://sh4zam.com/api/trig/shz_cschf/",
			"md": "https://sh4zam.com/api/trig/shz_cschf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#af467445a36cc77c02c69510ef44a21a1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L185"
		},
		{
			"name": "shz_sechf",
			"kind": "function",
			"module": "trig",
			"section": "Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 188,
			"signature": "SHZ_INLINE float shz_sechf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic secant function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sechf"
			],
			"url": "https://sh4zam.com/api/trig/shz_sechf/",
			"md": "https://sh4zam.com/api/trig/shz_sechf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#aefa889090e818645e32e90d1149e07d7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L188"
		},
		{
			"name": "shz_cothf",
			"kind": "function",
			"module": "trig",
			"section": "Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 191,
			"signature": "SHZ_INLINE float shz_cothf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic cotangent function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cothf"
			],
			"url": "https://sh4zam.com/api/trig/shz_cothf/",
			"md": "https://sh4zam.com/api/trig/shz_cothf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a95ded9d053aae86894f4513ec73bfca1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L191"
		},
		{
			"name": "shz_asinhf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 201,
			"signature": "SHZ_INLINE float shz_asinhf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic arcsine function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::asinhf"
			],
			"url": "https://sh4zam.com/api/trig/shz_asinhf/",
			"md": "https://sh4zam.com/api/trig/shz_asinhf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ac483d9c2fb2fb95c0389fcbfdf6cb490",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L201"
		},
		{
			"name": "shz_acoshf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 204,
			"signature": "SHZ_INLINE float shz_acoshf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic arccosine function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::acoshf"
			],
			"url": "https://sh4zam.com/api/trig/shz_acoshf/",
			"md": "https://sh4zam.com/api/trig/shz_acoshf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a112304efb114c47ae4c19b616cc1c111",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L204"
		},
		{
			"name": "shz_atanhf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 207,
			"signature": "SHZ_INLINE float shz_atanhf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic arctangent function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::atanhf"
			],
			"url": "https://sh4zam.com/api/trig/shz_atanhf/",
			"md": "https://sh4zam.com/api/trig/shz_atanhf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a0809f9c0daa186adc8735a2ea75bd6b1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L207"
		},
		{
			"name": "shz_acschf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 210,
			"signature": "SHZ_INLINE float shz_acschf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic arccosecant function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::acschf"
			],
			"url": "https://sh4zam.com/api/trig/shz_acschf/",
			"md": "https://sh4zam.com/api/trig/shz_acschf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#aef69b3100c1b843bd89ecc320f882e36",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L210"
		},
		{
			"name": "shz_asechf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 213,
			"signature": "SHZ_INLINE float shz_asechf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic arcsecant function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::asechf"
			],
			"url": "https://sh4zam.com/api/trig/shz_asechf/",
			"md": "https://sh4zam.com/api/trig/shz_asechf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a9de2bba8f410ac2e0671c29301f48d1c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L213"
		},
		{
			"name": "shz_acothf",
			"kind": "function",
			"module": "trig",
			"section": "Inverse Hyperbolic Functions",
			"header": "sh4zam/shz_trig.h",
			"line": 216,
			"signature": "SHZ_INLINE float shz_acothf(float x) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Fast hyperbolic arccotangent function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::acothf"
			],
			"url": "https://sh4zam.com/api/trig/shz_acothf/",
			"md": "https://sh4zam.com/api/trig/shz_acothf.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a5c55068ec82c6fdcac23f1973ce758cf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L216"
		},
		{
			"name": "SHZ_F_PI",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 27,
			"signature": "#define SHZ_F_PI 3.14159265359f",
			"params": [],
			"brief": "Single-precision floating-point PI approximation (do not use M_PI!).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_F_PI/",
			"md": "https://sh4zam.com/api/trig/SHZ_F_PI.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a1d7ada9c075bed486ec043a7a0a7eb1d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L27"
		},
		{
			"name": "SHZ_F_TAU",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 29,
			"signature": "#define SHZ_F_TAU (SHZ_F_PI * 2.0f)",
			"params": [],
			"brief": "Single-precision FP PI approximation times 2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_F_TAU/",
			"md": "https://sh4zam.com/api/trig/SHZ_F_TAU.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a1f04dee5e1744a21aeb33a696268a36b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L29"
		},
		{
			"name": "SHZ_F_PI_2",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 31,
			"signature": "#define SHZ_F_PI_2 (SHZ_F_PI * 0.5f)",
			"params": [],
			"brief": "Single-precision FP PI approximation divided by 2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_F_PI_2/",
			"md": "https://sh4zam.com/api/trig/SHZ_F_PI_2.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#afad4ba5cfb0d33fbf60199a3a2c9e65e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L31"
		},
		{
			"name": "SHZ_F_PI_4",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 33,
			"signature": "#define SHZ_F_PI_4 (SHZ_F_PI * 0.25f)",
			"params": [],
			"brief": "Single-precision FP PI approximation divided by 4.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_F_PI_4/",
			"md": "https://sh4zam.com/api/trig/SHZ_F_PI_4.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a5d450d2e778ec8fb034175f27c69e850",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L33"
		},
		{
			"name": "SHZ_FSCA_RAD_FACTOR",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 35,
			"signature": "#define SHZ_FSCA_RAD_FACTOR 10430.37835f",
			"params": [],
			"brief": "Multiplicative factor for passing the FSCA instruction angles in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_FSCA_RAD_FACTOR/",
			"md": "https://sh4zam.com/api/trig/SHZ_FSCA_RAD_FACTOR.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a62fb7f9fb101fd231580cdc300e8c39f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L35"
		},
		{
			"name": "SHZ_FSCA_DEG_FACTOR",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 37,
			"signature": "#define SHZ_FSCA_DEG_FACTOR 182.04444443f",
			"params": [],
			"brief": "Multiplicative factor for passing the FSCA instrution angles in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_FSCA_DEG_FACTOR/",
			"md": "https://sh4zam.com/api/trig/SHZ_FSCA_DEG_FACTOR.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a577609252c9ed81e2be50a37d0966120",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L37"
		},
		{
			"name": "SHZ_FSCA_ERROR_MAX",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 39,
			"signature": "#define SHZ_FSCA_ERROR_MAX 4.76837158e-7",
			"params": [],
			"brief": "Maximum FP error for FSCA instruction.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_FSCA_ERROR_MAX/",
			"md": "https://sh4zam.com/api/trig/SHZ_FSCA_ERROR_MAX.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#af34864663da7e939378ad5e72d884079",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L39"
		},
		{
			"name": "SHZ_DEG_TO_RAD",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 42,
			"signature": "#define SHZ_DEG_TO_RAD(deg) ((deg) * SHZ_F_PI / 180.0f)",
			"params": [
				{
					"name": "deg",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given angle in degrees to radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_DEG_TO_RAD/",
			"md": "https://sh4zam.com/api/trig/SHZ_DEG_TO_RAD.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#ad33a01a9f213e2c9982d124b5f1e3404",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L42"
		},
		{
			"name": "SHZ_RAD_TO_DEG",
			"kind": "macro",
			"module": "trig",
			"section": "Macros",
			"header": "sh4zam/shz_trig.h",
			"line": 44,
			"signature": "#define SHZ_RAD_TO_DEG(rad) ((rad) * 180.0f / SHZ_F_PI)",
			"params": [
				{
					"name": "rad",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given angle in radians to degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/SHZ_RAD_TO_DEG/",
			"md": "https://sh4zam.com/api/trig/SHZ_RAD_TO_DEG.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a7b680841db711340fddee55ce9cc2455",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L44"
		},
		{
			"name": "shz_sincos_t",
			"kind": "type",
			"module": "trig",
			"section": "Types",
			"header": "sh4zam/shz_trig.h",
			"line": 57,
			"signature": "typedef struct shz_sincos {\n    float sin;  //!< sinf() approximation for the angle\n    float cos;  //!< cosf() approximation for the angle\n} shz_sincos_t;",
			"fields": [
				{
					"name": "sin",
					"type": "float",
					"doc": "sinf() approximation for the angle"
				},
				{
					"name": "cos",
					"type": "float",
					"doc": "cosf() approximation for the angle"
				}
			],
			"brief": "Pair representing the sine and cosine of a given angle.",
			"detail": "The SH4 provides a single instruction, `FSCA`, for retrieving fast approximations of **both** the sine and cosine of a given angle. As such, when you need both values, it's most efficient to grab them both at once as a pair using this structure than it is to retrieve them separately.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_sincosf",
				"shz_sincosf_deg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::sincos"
			],
			"url": "https://sh4zam.com/api/trig/shz_sincos_t/",
			"md": "https://sh4zam.com/api/trig/shz_sincos_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__sincos__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L57"
		},
		{
			"name": "shz_sincos",
			"kind": "typedef",
			"module": "trig",
			"section": "Types",
			"header": "sh4zam/shz_trig.h",
			"line": 63,
			"signature": "typedef shz_sincos_t shz_sincos;",
			"brief": "Alternate C shz_sincos_t typedef for those who hate POSIX style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/trig/shz_sincos/",
			"md": "https://sh4zam.com/api/trig/shz_sincos.md",
			"doxygen_url": "https://sh4zam.com/shz__trig_8h.html#a3ce5165e891b9caafde375c1f0b04fba",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_trig.h#L63"
		},
		{
			"name": "shz_vec2_deref",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 725,
			"signature": "#define shz_vec2_deref(ptr) (*((SHZ_ALIASING shz_vec2_t*)(ptr)))",
			"params": [
				{
					"name": "ptr",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Dereferences the given pointer to a sequence of 2 floats as a shz_vec2_t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_deref/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_deref.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a601cef1e93839b548aabbd75461d0485",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L725"
		},
		{
			"name": "shz_vec3_deref",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 728,
			"signature": "#define shz_vec3_deref(ptr) (*((SHZ_ALIASING shz_vec3_t*)(ptr)))",
			"params": [
				{
					"name": "ptr",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Dereferences the given pointer to a sequence of 3 floats as a shz_vec3_t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_deref/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_deref.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1a46774e9076846fc351b95cfd5cec46",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L728"
		},
		{
			"name": "shz_vec4_deref",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 731,
			"signature": "#define shz_vec4_deref(ptr) (*((SHZ_ALIASING shz_vec4_t*)(ptr)))",
			"params": [
				{
					"name": "ptr",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Dereferences the given pointer to a sequence of 4 floats as a shz_vec4_t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_deref/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_deref.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2614704745500302d04ffeb1d70c2f99",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L731"
		},
		{
			"name": "shz_vec2_from",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 734,
			"signature": "#define shz_vec2_from(value) SHZ_CONVERT(shz_vec2_t, value)",
			"params": [
				{
					"name": "value",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given value or expression to the equivalent 2D SH4ZAM vector value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_from/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_from.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af23362eb817c4d7b595c60657a0935d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L734"
		},
		{
			"name": "shz_vec3_from",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 737,
			"signature": "#define shz_vec3_from(value) SHZ_CONVERT(shz_vec3_t, value)",
			"params": [
				{
					"name": "value",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given value or expression to the equivalent 3D SH4ZAM vector value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_from/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_from.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad4728437b39ebdce4cc5e26483e6b864",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L737"
		},
		{
			"name": "shz_vec4_from",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 740,
			"signature": "#define shz_vec4_from(value) SHZ_CONVERT(shz_vec4_t, value)",
			"params": [
				{
					"name": "value",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given value or expression to the equivalent 4D SH4ZAM vector value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_from/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_from.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a8fa0ce2649496dd14940a1a83080ae8f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L740"
		},
		{
			"name": "shz_vec2_to",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 743,
			"signature": "#define shz_vec2_to(type, vector) SHZ_CONVERT(type, vector)",
			"params": [
				{
					"name": "type",
					"type": "",
					"doc": ""
				},
				{
					"name": "vector",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given 2D vector into a value of the given type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_to/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_to.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab3f8e986919c2c3be21248d9a4a1559e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L743"
		},
		{
			"name": "shz_vec3_to",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 746,
			"signature": "#define shz_vec3_to(type, vector) SHZ_CONVERT(type, vector)",
			"params": [
				{
					"name": "type",
					"type": "",
					"doc": ""
				},
				{
					"name": "vector",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given 3D vector into a value of the given type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_to/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_to.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2c210bdfd550c69206a08631b30199bd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L746"
		},
		{
			"name": "shz_vec4_to",
			"kind": "macro",
			"module": "vector",
			"section": "Adapters",
			"header": "sh4zam/shz_vector.h",
			"line": 749,
			"signature": "#define shz_vec4_to(type, vector) SHZ_CONVERT(type, vector)",
			"params": [
				{
					"name": "type",
					"type": "",
					"doc": ""
				},
				{
					"name": "vector",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Converts the given 4D vector into a value of the given type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_to/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_to.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9295f735beb0fb9e950c2422f5f2c519",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L749"
		},
		{
			"name": "shz_vec_abs",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 761,
			"signature": "#define shz_vec_abs(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector absolute value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_abs/",
			"md": "https://sh4zam.com/api/vector/shz_vec_abs.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac5c6a6a1afe2d8f2db12d704360871e5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L761"
		},
		{
			"name": "shz_vec_neg",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 768,
			"signature": "#define shz_vec_neg(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector negation.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_neg/",
			"md": "https://sh4zam.com/api/vector/shz_vec_neg.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab57a26ba2cc18a42403d924557bd5f60",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L768"
		},
		{
			"name": "shz_vec_inv",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 775,
			"signature": "#define shz_vec_inv(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector inversion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad36fccb1093865a72efe8cdadf66e1b8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L775"
		},
		{
			"name": "shz_vec_max",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 782,
			"signature": "#define shz_vec_max(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector maximum value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_max/",
			"md": "https://sh4zam.com/api/vector/shz_vec_max.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab48847504184746a19e8abef1668dd5d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L782"
		},
		{
			"name": "shz_vec_min",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 789,
			"signature": "#define shz_vec_min(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector minimum value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_min/",
			"md": "https://sh4zam.com/api/vector/shz_vec_min.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa4eae256456f7301433db81dad701c8e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L789"
		},
		{
			"name": "shz_vec_clamp",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 796,
			"signature": "#define shz_vec_clamp(vec, min, max)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "min",
					"type": "",
					"doc": ""
				},
				{
					"name": "max",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector minimum value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_clamp/",
			"md": "https://sh4zam.com/api/vector/shz_vec_clamp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1bc89709c5ed6be0d14e799debf9f097",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L796"
		},
		{
			"name": "shz_vec_equal",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 803,
			"signature": "#define shz_vec_equal(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector equals.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_equal/",
			"md": "https://sh4zam.com/api/vector/shz_vec_equal.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1af7acf8fe6acc2a518c86b9f8949b7a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L803"
		},
		{
			"name": "shz_vec_add",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 810,
			"signature": "#define shz_vec_add(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector addition.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::operator+"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_add/",
			"md": "https://sh4zam.com/api/vector/shz_vec_add.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7e21e56f7d16a03c4c107d6cafb95574",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L810"
		},
		{
			"name": "shz_vec_sub",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 817,
			"signature": "#define shz_vec_sub(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector subtraction.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::operator-"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_sub/",
			"md": "https://sh4zam.com/api/vector/shz_vec_sub.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae731486563a275f6a306d9e542265582",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L817"
		},
		{
			"name": "shz_vec_mul",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 824,
			"signature": "#define shz_vec_mul(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector multiplication.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::operator*"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_mul/",
			"md": "https://sh4zam.com/api/vector/shz_vec_mul.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad760c5857da187fb6393b5c61e3d302c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L824"
		},
		{
			"name": "shz_vec_div",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 831,
			"signature": "#define shz_vec_div(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector division.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::operator/"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_div/",
			"md": "https://sh4zam.com/api/vector/shz_vec_div.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab18772fbbc52e49a55204fdeb7602c58",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L831"
		},
		{
			"name": "shz_vec_scale",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 838,
			"signature": "#define shz_vec_scale(vec, factor)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "factor",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector scaling.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::operator*",
				"shz::operator/"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_scale/",
			"md": "https://sh4zam.com/api/vector/shz_vec_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a84fb233d5c0851e998dc2c0f6d982fb3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L838"
		},
		{
			"name": "shz_vec_dot",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 845,
			"signature": "#define shz_vec_dot(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector dot product.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_dot/",
			"md": "https://sh4zam.com/api/vector/shz_vec_dot.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a0e471fd5315b7f0058704499ddb7e5cc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L845"
		},
		{
			"name": "shz_vec_dot2",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 852,
			"signature": "#define shz_vec_dot2(l, r1, r2)",
			"params": [
				{
					"name": "l",
					"type": "",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector chained double dot product.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_dot2/",
			"md": "https://sh4zam.com/api/vector/shz_vec_dot2.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac6de70ab99ce65e9e7b71d091acd05be",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L852"
		},
		{
			"name": "shz_vec_dot3",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 859,
			"signature": "#define shz_vec_dot3(l, r1, r2, r3)",
			"params": [
				{
					"name": "l",
					"type": "",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector chained triple dot product.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_dot3/",
			"md": "https://sh4zam.com/api/vector/shz_vec_dot3.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae820acda0ea1709c3951b3a3231bf3a7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L859"
		},
		{
			"name": "shz_vec_magnitude_sqr",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 866,
			"signature": "#define shz_vec_magnitude_sqr(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector squared magnitude.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_magnitude_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec_magnitude_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a219f8dade9fc76ca6d75ee47ba4e31d1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L866"
		},
		{
			"name": "shz_vec_magnitude",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 873,
			"signature": "#define shz_vec_magnitude(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector magnitude.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_magnitude/",
			"md": "https://sh4zam.com/api/vector/shz_vec_magnitude.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a09642e29fd8ac5f433799ee21c4a5ccd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L873"
		},
		{
			"name": "shz_vec_magnitude_inv",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 880,
			"signature": "#define shz_vec_magnitude_inv(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector inverse magnitude.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_magnitude_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec_magnitude_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1de48d26a9b047034b88ea0f4210f581",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L880"
		},
		{
			"name": "shz_vec_normalize",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 887,
			"signature": "#define shz_vec_normalize(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector normalization.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_normalize/",
			"md": "https://sh4zam.com/api/vector/shz_vec_normalize.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a00fd1468f45a7d4b074dd93ed91d655b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L887"
		},
		{
			"name": "shz_vec_normalize_safe",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 894,
			"signature": "#define shz_vec_normalize_safe(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic safe vector normalization.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_normalize_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec_normalize_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a0583529cbbb4c4a5881f3281ca0941c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L894"
		},
		{
			"name": "shz_vec_distance",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 901,
			"signature": "#define shz_vec_distance(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector distance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_distance/",
			"md": "https://sh4zam.com/api/vector/shz_vec_distance.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a794a5886f10fece4f505524ab7982c04",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L901"
		},
		{
			"name": "shz_vec_move",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 908,
			"signature": "#define shz_vec_move(vec, target, maxdist)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "target",
					"type": "",
					"doc": ""
				},
				{
					"name": "maxdist",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector move.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_move/",
			"md": "https://sh4zam.com/api/vector/shz_vec_move.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4aed2d45533625dbe32dedc627361ce1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L908"
		},
		{
			"name": "shz_vec_distance_sqr",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 915,
			"signature": "#define shz_vec_distance_sqr(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector squared distance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_distance_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec_distance_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9b9e236da6d7d3a352c49a3b2d1787a8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L915"
		},
		{
			"name": "shz_vec_lerp",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 922,
			"signature": "#define shz_vec_lerp(vec1, vec2, t)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				},
				{
					"name": "t",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic linear interpolation between two vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_lerp/",
			"md": "https://sh4zam.com/api/vector/shz_vec_lerp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a88a7b3180f4c16ec084a0c94ea51aea6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L922"
		},
		{
			"name": "shz_vec_reflect",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 929,
			"signature": "#define shz_vec_reflect(incidence, normal)",
			"params": [
				{
					"name": "incidence",
					"type": "",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector reflection.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_reflect/",
			"md": "https://sh4zam.com/api/vector/shz_vec_reflect.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad9ec6a28192d3c36737d4f2cd04ef293",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L929"
		},
		{
			"name": "shz_vec_refract",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 936,
			"signature": "#define shz_vec_refract(incidence, normal, eta)",
			"params": [
				{
					"name": "incidence",
					"type": "",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "",
					"doc": ""
				},
				{
					"name": "eta",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector refraction.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_refract/",
			"md": "https://sh4zam.com/api/vector/shz_vec_refract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab285434e929ec783ca61a05d76e7849b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L936"
		},
		{
			"name": "shz_vec_cross",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 943,
			"signature": "#define shz_vec_cross(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector cross-product.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_cross/",
			"md": "https://sh4zam.com/api/vector/shz_vec_cross.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a91f4b3276397fe14635e9ab089317864",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L943"
		},
		{
			"name": "shz_vec_project",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 949,
			"signature": "#define shz_vec_project(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector projection.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_project/",
			"md": "https://sh4zam.com/api/vector/shz_vec_project.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad1b3fa4894b35c6f23db48c326ae3428",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L949"
		},
		{
			"name": "shz_vec_project_safe",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 956,
			"signature": "#define shz_vec_project_safe(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic safe vector projection.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_project_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec_project_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa230e5f8db7081ed70b9248daf512bf4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L956"
		},
		{
			"name": "shz_vec_angles",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 963,
			"signature": "#define shz_vec_angles(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic angle-from-vector extraction.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::vec4::angles"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_angles/",
			"md": "https://sh4zam.com/api/vector/shz_vec_angles.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a900e6237fc3fde252dbaa06a036fd152",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L963"
		},
		{
			"name": "shz_vec_angle_between",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 969,
			"signature": "#define shz_vec_angle_between(vec1, vec2)",
			"params": [
				{
					"name": "vec1",
					"type": "",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic angle between two vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::vec4::angle_between"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec_angle_between/",
			"md": "https://sh4zam.com/api/vector/shz_vec_angle_between.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad2d748477146e75cbb46bc5c2a046a42",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L969"
		},
		{
			"name": "shz_vec_swizzle",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 975,
			"signature": "#define shz_vec_swizzle(vec, ...)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "...",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic vector swizzling.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_swizzle/",
			"md": "https://sh4zam.com/api/vector/shz_vec_swizzle.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a8f39732d8eeca90c58b76ec431a3fa19",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L975"
		},
		{
			"name": "shz_vec_floor",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 982,
			"signature": "#define shz_vec_floor(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise floor.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_floor/",
			"md": "https://sh4zam.com/api/vector/shz_vec_floor.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7b00642d2d69f1c07f89b49ff480fe47",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L982"
		},
		{
			"name": "shz_vec_ceil",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 989,
			"signature": "#define shz_vec_ceil(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise ceil.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_ceil/",
			"md": "https://sh4zam.com/api/vector/shz_vec_ceil.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a78ececc96f84287c1e2cfb62b2e0e23d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L989"
		},
		{
			"name": "shz_vec_round",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 996,
			"signature": "#define shz_vec_round(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise round.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_round/",
			"md": "https://sh4zam.com/api/vector/shz_vec_round.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4fecf021d2041216d0b89c7e888e70ae",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L996"
		},
		{
			"name": "shz_vec_fract",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1003,
			"signature": "#define shz_vec_fract(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise fract.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_fract/",
			"md": "https://sh4zam.com/api/vector/shz_vec_fract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#acb3d3dadc9379194362349cc8245cf07",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1003"
		},
		{
			"name": "shz_vec_sign",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1010,
			"signature": "#define shz_vec_sign(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise sign.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_sign/",
			"md": "https://sh4zam.com/api/vector/shz_vec_sign.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7471636bb1d226159b40038c15ea6b18",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1010"
		},
		{
			"name": "shz_vec_saturate",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1017,
			"signature": "#define shz_vec_saturate(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise saturate.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_saturate/",
			"md": "https://sh4zam.com/api/vector/shz_vec_saturate.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af420beef60a180cf316ed3ba66701b66",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1017"
		},
		{
			"name": "shz_vec_minv",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1024,
			"signature": "#define shz_vec_minv(a, b)",
			"params": [
				{
					"name": "a",
					"type": "",
					"doc": ""
				},
				{
					"name": "b",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic pairwise minimum.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_minv/",
			"md": "https://sh4zam.com/api/vector/shz_vec_minv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#abd000308e5af0dd35b58e720212719a6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1024"
		},
		{
			"name": "shz_vec_maxv",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1031,
			"signature": "#define shz_vec_maxv(a, b)",
			"params": [
				{
					"name": "a",
					"type": "",
					"doc": ""
				},
				{
					"name": "b",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic pairwise maximum.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_maxv/",
			"md": "https://sh4zam.com/api/vector/shz_vec_maxv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a0453fbaad8b6634c4adb72138b9db342",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1031"
		},
		{
			"name": "shz_vec_inv_sqrtf",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1038,
			"signature": "#define shz_vec_inv_sqrtf(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic inv_sqrtf.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_inv_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec_inv_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab2523c5ff16675c5903b963008b05383",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1038"
		},
		{
			"name": "shz_vec_sqrtf",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1045,
			"signature": "#define shz_vec_sqrtf(vec)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic sqrtf.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a74c0253caaa03ba3cdbd2745c37fd489",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1045"
		},
		{
			"name": "shz_vec_stepv",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1052,
			"signature": "#define shz_vec_stepv(vec, edge)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise step.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_stepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec_stepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#add553e2dc5f1939ef12c7a0b7bb163a8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1052"
		},
		{
			"name": "shz_vec_step",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1059,
			"signature": "#define shz_vec_step(vec, edge)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic step.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_step/",
			"md": "https://sh4zam.com/api/vector/shz_vec_step.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a651093e2e2ca07bf4fcbe151782f1400",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1059"
		},
		{
			"name": "shz_vec_smoothstepv",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1066,
			"signature": "#define shz_vec_smoothstepv(vec, edge0, edge1)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise smoothstep.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_smoothstepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec_smoothstepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a84562d826a3d30dfb0a1b68586bdde36",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1066"
		},
		{
			"name": "shz_vec_smoothstep",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1073,
			"signature": "#define shz_vec_smoothstep(vec, edge0, edge1)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic smoothstep.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_smoothstep/",
			"md": "https://sh4zam.com/api/vector/shz_vec_smoothstep.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a0c1d896d29637404932e313a9c5f0782",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1073"
		},
		{
			"name": "shz_vec_smoothstepv_safe",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1080,
			"signature": "#define shz_vec_smoothstepv_safe(vec, edge0, edge1)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic component-wise smoothstep_safe.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_smoothstepv_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec_smoothstepv_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a836ba7cb3a239bef10017a4fa277e496",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1080"
		},
		{
			"name": "shz_vec_smoothstep_safe",
			"kind": "macro",
			"module": "vector",
			"section": "Type-Generic Routines",
			"header": "sh4zam/shz_vector.h",
			"line": 1087,
			"signature": "#define shz_vec_smoothstep_safe(vec, edge0, edge1)",
			"params": [
				{
					"name": "vec",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "",
					"doc": ""
				}
			],
			"brief": "C type-generic smoothstep_safe.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec_smoothstep_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec_smoothstep_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a252b9dd4dd3465a248c459f07ec061be",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L1087"
		},
		{
			"name": "shz_vec2_init",
			"kind": "function",
			"module": "vector",
			"section": "Initializers",
			"header": "sh4zam/shz_vector.h",
			"line": 113,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_init(float x, float y) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector with the given x, and y coordinates.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_init/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_init.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a82128524b50e45b3147773b920cdc845",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L113"
		},
		{
			"name": "shz_vec3_init",
			"kind": "function",
			"module": "vector",
			"section": "Initializers",
			"header": "sh4zam/shz_vector.h",
			"line": 116,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_init(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector with the given x, y, and z coordinates.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_init/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_init.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a5184d08e5fe8118ec3cc817f677d8870",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L116"
		},
		{
			"name": "shz_vec4_init",
			"kind": "function",
			"module": "vector",
			"section": "Initializers",
			"header": "sh4zam/shz_vector.h",
			"line": 119,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_init(float x, float y, float z, float w) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector with the given x, y, z, and w coordinates.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_init/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_init.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aab74e47a6b663e8212a1dd8c4466a72b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L119"
		},
		{
			"name": "shz_vec2_fill",
			"kind": "function",
			"module": "vector",
			"section": "Initializers",
			"header": "sh4zam/shz_vector.h",
			"line": 122,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_fill(float v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "v",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector with the value of each component equal to v.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_fill/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_fill.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aabee60a17ea583f1e551f1980e252062",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L122"
		},
		{
			"name": "shz_vec3_fill",
			"kind": "function",
			"module": "vector",
			"section": "Initializers",
			"header": "sh4zam/shz_vector.h",
			"line": 125,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_fill(float v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "v",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector with the value of each compoonent equal to v.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_fill/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_fill.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a377f59412bdcd7fd8f2819dec3169f57",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L125"
		},
		{
			"name": "shz_vec4_fill",
			"kind": "function",
			"module": "vector",
			"section": "Initializers",
			"header": "sh4zam/shz_vector.h",
			"line": 128,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_fill(float v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "v",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector with the value of each component equal to v.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "simd"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_fill/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_fill.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a5e89c6924fcbd0853e2b7e083c143b16",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L128"
		},
		{
			"name": "shz_vec2_abs",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 138,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_abs(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the absolute values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_abs",
			"cpp": [
				"shz::vec2::abs"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_abs/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_abs.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad8ffff7947347e0765ade7ad382e7484",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L138"
		},
		{
			"name": "shz_vec3_abs",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 141,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_abs(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the absolute values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_abs",
			"cpp": [
				"shz::vec3::abs"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_abs/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_abs.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4e9d78cd805213b3439832eee3e40976",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L141"
		},
		{
			"name": "shz_vec4_abs",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 144,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_abs(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the absolute values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_abs",
			"cpp": [
				"shz::vec4::abs"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_abs/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_abs.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1c59f50f8d60fddc1520d32b8960eb1c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L144"
		},
		{
			"name": "shz_vec2_neg",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 147,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_neg(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the negative values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_neg",
			"cpp": [
				"shz::vec2::neg"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_neg/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_neg.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a73b9b8cf1efd060f92d963d2ce231506",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L147"
		},
		{
			"name": "shz_vec3_neg",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 150,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_neg(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the negative values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_neg",
			"cpp": [
				"shz::vec3::neg"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_neg/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_neg.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4afd03581eac1e72a8713c2d3735473f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L150"
		},
		{
			"name": "shz_vec4_neg",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 153,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_neg(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the negative values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_neg",
			"cpp": [
				"shz::vec4::neg"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_neg/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_neg.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4d4b4fb99c6ae96ff9a5409b49d6f99d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L153"
		},
		{
			"name": "shz_vec2_inv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 156,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_inv(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the 2D vector whose components have been inverted or reciprocated.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_inv",
			"cpp": [
				"shz::vec2::inv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1941be3f1ceab7943d5ec0d0a876cdd9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L156"
		},
		{
			"name": "shz_vec3_inv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 159,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_inv(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the 3D vector whose components have been inverted or reciprocated.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_inv",
			"cpp": [
				"shz::vec3::inv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab3d85505d3f318303632388921bd6d1f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L159"
		},
		{
			"name": "shz_vec4_inv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 162,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_inv(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the 4D vector whose components have been inverted or reciprocated.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_inv",
			"cpp": [
				"shz::vec4::inv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a6ce490a668372afbf5f6ab2d38952d71",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L162"
		},
		{
			"name": "shz_vec2_max",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 165,
			"signature": "SHZ_INLINE float shz_vec2_max(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the maximum value of both of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_max",
			"cpp": [
				"shz::vec2::max"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_max/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_max.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a0a2d7d104e01f564c253b0d50c7d2183",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L165"
		},
		{
			"name": "shz_vec3_max",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 168,
			"signature": "SHZ_INLINE float shz_vec3_max(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the maximum value of the given vector's 3 components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_max",
			"cpp": [
				"shz::vec3::max"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_max/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_max.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a07489a4bff26d4aa50a7d68bef0572a0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L168"
		},
		{
			"name": "shz_vec4_max",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 171,
			"signature": "SHZ_INLINE float shz_vec4_max(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the maximum value of the given vector's 4 componetns.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_max",
			"cpp": [
				"shz::vec4::max"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_max/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_max.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad49952286c2c1396be47d370f98ad294",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L171"
		},
		{
			"name": "shz_vec2_min",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 174,
			"signature": "SHZ_INLINE float shz_vec2_min(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Retuns the minimum value of both of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_min",
			"cpp": [
				"shz::vec2::min"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_min/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_min.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa36c68f44063cf136b08b71f72f642da",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L174"
		},
		{
			"name": "shz_vec3_min",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 177,
			"signature": "SHZ_INLINE float shz_vec3_min(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the minimum value of the given vector's 3 components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_min",
			"cpp": [
				"shz::vec3::min"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_min/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_min.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a86a5b4ad53f8aee305c57b729c9e26e4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L177"
		},
		{
			"name": "shz_vec4_min",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 180,
			"signature": "SHZ_INLINE float shz_vec4_min(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the minimum value of the given vector's 4 components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_min",
			"cpp": [
				"shz::vec4::min"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_min/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_min.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aaeb85e3d1fb1212453b69b5b0e585fe2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L180"
		},
		{
			"name": "shz_vec2_clamp",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 183,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_clamp(shz_vec2_t vec, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Clamps the values of the given 2D vec between min and max, returning a new vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_clamp",
			"cpp": [
				"shz::vec2::clamp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_clamp/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_clamp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af11b086aa54a3aec7ad5c203245fe85e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L183"
		},
		{
			"name": "shz_vec3_clamp",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 186,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_clamp(shz_vec3_t vec, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Clamps the values of the given 3D vec between min and max, returning a new vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_clamp",
			"cpp": [
				"shz::vec3::clamp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_clamp/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_clamp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae5eee71e6704e5a2d9a82bb125163e5a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L186"
		},
		{
			"name": "shz_vec4_clamp",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 189,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_clamp(shz_vec4_t vec, float min, float max) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "min",
					"type": "float",
					"doc": ""
				},
				{
					"name": "max",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Clamps the values of the given 4D vec between min and max, returning a new vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_clamp",
			"cpp": [
				"shz::vec4::clamp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_clamp/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_clamp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#adf4e0ec05487ba4ee9345a28045fc244",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L189"
		},
		{
			"name": "shz_vec2_floor",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 192,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_floor(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the floor of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_floor",
			"cpp": [
				"shz::vec2::floor"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_floor/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_floor.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae7fb8a5623938eb707c96c0f30224803",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L192"
		},
		{
			"name": "shz_vec3_floor",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 195,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_floor(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the floor of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_floor",
			"cpp": [
				"shz::vec3::floor"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_floor/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_floor.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a64b1ad98f6fb234e7b6ba33538c5bc6d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L195"
		},
		{
			"name": "shz_vec4_floor",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 198,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_floor(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the floor of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_floor",
			"cpp": [
				"shz::vec4::floor"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_floor/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_floor.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac67256ab8f524172584d4e34c1f8c4c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L198"
		},
		{
			"name": "shz_vec2_ceil",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 201,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_ceil(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the ceil of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_ceil",
			"cpp": [
				"shz::vec2::ceil"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_ceil/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_ceil.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7a1441117af3648d1cdf6e4285f2b888",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L201"
		},
		{
			"name": "shz_vec3_ceil",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 204,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_ceil(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the ceil of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_ceil",
			"cpp": [
				"shz::vec3::ceil"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_ceil/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_ceil.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aba552828dfbfd1ae34017621e22214b7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L204"
		},
		{
			"name": "shz_vec4_ceil",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 207,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_ceil(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the ceil of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_ceil",
			"cpp": [
				"shz::vec4::ceil"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_ceil/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_ceil.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa3504365f07cb3a978558db9460e94d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L207"
		},
		{
			"name": "shz_vec2_round",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 210,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_round(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the rounded values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_round",
			"cpp": [
				"shz::vec2::round"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_round/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_round.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a68a3c23eaf58ac39e7f91648fd2596ff",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L210"
		},
		{
			"name": "shz_vec3_round",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 213,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_round(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the rounded values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_round",
			"cpp": [
				"shz::vec3::round"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_round/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_round.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2c4f644c30b2c919fc04654e2fad4842",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L213"
		},
		{
			"name": "shz_vec4_round",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 216,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_round(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the rounded values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_round",
			"cpp": [
				"shz::vec4::round"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_round/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_round.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac614bcf28e79fdb9bffaca2a1a6f0317",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L216"
		},
		{
			"name": "shz_vec2_fract",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 219,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_fract(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the fractional parts of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_fract",
			"cpp": [
				"shz::vec2::fract"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_fract/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_fract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#afaa9b840b0e49ec3912acb46987d68ee",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L219"
		},
		{
			"name": "shz_vec3_fract",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 222,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_fract(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the fractional parts of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_fract",
			"cpp": [
				"shz::vec3::fract"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_fract/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_fract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af5d65723f688bc244af859e6fdd9f356",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L222"
		},
		{
			"name": "shz_vec4_fract",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 225,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_fract(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the fractional parts of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_fract",
			"cpp": [
				"shz::vec4::fract"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_fract/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_fract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aeb956e94960605d5aa73fbf4954bd93c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L225"
		},
		{
			"name": "shz_vec2_sign",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 228,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_sign(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the signs (-1, 0, or 1) of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sign",
			"cpp": [
				"shz::vec2::sign"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_sign/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_sign.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae3bf5131b9be1120acb08c922b7e97a8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L228"
		},
		{
			"name": "shz_vec3_sign",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 231,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_sign(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the signs (-1, 0, or 1) of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sign",
			"cpp": [
				"shz::vec3::sign"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_sign/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_sign.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a52f45c76ceb316bb3544b81411cafefa",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L231"
		},
		{
			"name": "shz_vec4_sign",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 234,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_sign(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the signs (-1, 0, or 1) of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sign",
			"cpp": [
				"shz::vec4::sign"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_sign/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_sign.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a3c285eb00a1d173e71289d0e00298af4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L234"
		},
		{
			"name": "shz_vec2_saturate",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 237,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_saturate(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are saturated (clamped to [0, 1]) values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_saturate",
			"cpp": [
				"shz::vec2::saturate"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_saturate/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_saturate.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7e5dd340a021c3f6d31626a7a24e2741",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L237"
		},
		{
			"name": "shz_vec3_saturate",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 240,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_saturate(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are saturated (clamped to [0, 1]) values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_saturate",
			"cpp": [
				"shz::vec3::saturate"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_saturate/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_saturate.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a98d6ebd909ed023bcd662894c23ef4f9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L240"
		},
		{
			"name": "shz_vec4_saturate",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 243,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_saturate(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are saturated (clamped to [0, 1]) values of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_saturate",
			"cpp": [
				"shz::vec4::saturate"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_saturate/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_saturate.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a6051f240bcc375d36a002226475dda57",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L243"
		},
		{
			"name": "shz_vec2_minv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 246,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_minv(shz_vec2_t a, shz_vec2_t b) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the pairwise minimums of the two given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_minv",
			"cpp": [
				"shz::vec2::minv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_minv/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_minv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#afaf33c40234047a8fe48f72c9cd55669",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L246"
		},
		{
			"name": "shz_vec3_minv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 249,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_minv(shz_vec3_t a, shz_vec3_t b) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the pairwise minimums of the two given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_minv",
			"cpp": [
				"shz::vec3::minv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_minv/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_minv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ade616d5d850b185b4753a8fd826a1169",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L249"
		},
		{
			"name": "shz_vec4_minv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 252,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_minv(shz_vec4_t a, shz_vec4_t b) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the pairwise minimums of the two given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_minv",
			"cpp": [
				"shz::vec4::minv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_minv/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_minv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a652fd6c42c2b871594d71711cd19653b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L252"
		},
		{
			"name": "shz_vec2_maxv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 255,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_maxv(shz_vec2_t a, shz_vec2_t b) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the pairwise maximums of the two given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_maxv",
			"cpp": [
				"shz::vec2::maxv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_maxv/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_maxv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7c3e2f5d14d5889cdd103dfecf4ec083",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L255"
		},
		{
			"name": "shz_vec3_maxv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 258,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_maxv(shz_vec3_t a, shz_vec3_t b) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the pairwise maximums of the two given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_maxv",
			"cpp": [
				"shz::vec3::maxv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_maxv/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_maxv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae7fbf6c9fd4e45651a358298e9f832aa",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L258"
		},
		{
			"name": "shz_vec4_maxv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 261,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_maxv(shz_vec4_t a, shz_vec4_t b) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the pairwise maximums of the two given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_maxv",
			"cpp": [
				"shz::vec4::maxv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_maxv/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_maxv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4243f88b9e545de6e9dbdb30d3cfdbb6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L261"
		},
		{
			"name": "shz_vec2_equal",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 264,
			"signature": "SHZ_INLINE bool shz_vec2_equal(shz_vec2_t a, shz_vec2_t b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns true if the values of each element within the two 2D vectors are approximately equal based on relative or absolute tolerance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_equal",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_equal/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_equal.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af5b1688b8ee524a041d71c8e3a230a71",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L264"
		},
		{
			"name": "shz_vec3_equal",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 267,
			"signature": "SHZ_INLINE bool shz_vec3_equal(shz_vec3_t a, shz_vec3_t b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns true if the values of each element within the two 3D vectors are approximately equal based on relative or absolute tolerance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_equal",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_equal/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_equal.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af0d948df3986dc42296ce8256e5bc961",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L267"
		},
		{
			"name": "shz_vec4_equal",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 270,
			"signature": "SHZ_INLINE bool shz_vec4_equal(shz_vec4_t a, shz_vec4_t b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns true if the values of each element within the two 4D vectors are approximately equal based on relative or absolute tolerance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_equal",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_equal/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_equal.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a8b47d1c0aeb60f2e07310ca40a9fcc15",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L270"
		},
		{
			"name": "shz_vec2_stepv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 273,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_stepv( shz_vec2_t vec, shz_vec2_t edge) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f if vec[i] < edge[i], otherwise 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_stepv",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_stepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_stepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aee34f1ad5cdfa69d9cca83417c7bec72",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L273"
		},
		{
			"name": "shz_vec3_stepv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 276,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_stepv(shz_vec3_t vec, shz_vec3_t edge) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f if vec[i] < edge[i], otherwise 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_stepv",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_stepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_stepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a6510ecdf2e42097aa2fe6f99d279ecd4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L276"
		},
		{
			"name": "shz_vec4_stepv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 279,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_stepv(shz_vec4_t vec, shz_vec4_t edge) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f if vec[i] < edge[i], otherwise 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_stepv",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_stepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_stepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9966db4508001e62273e14a489463451",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L279"
		},
		{
			"name": "shz_vec2_step",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 282,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_step(shz_vec2_t vec, float edge) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f if vec[i] < edge, otherwise 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_step",
			"cpp": [
				"shz::vec2::step"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_step/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_step.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a12af9f8ba6f75777291db731c0855007",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L282"
		},
		{
			"name": "shz_vec3_step",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 285,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_step(shz_vec3_t vec, float edge) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f if vec[i] < edge, otherwise 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_step",
			"cpp": [
				"shz::vec3::step"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_step/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_step.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a11b4c0103e7d86a7b7e1796b32f2d618",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L285"
		},
		{
			"name": "shz_vec4_step",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 288,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_step(shz_vec4_t vec, float edge) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f if vec[i] < edge, otherwise 1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_step",
			"cpp": [
				"shz::vec4::step"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_step/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_step.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a65582075778033f2c2adcee90903d2d3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L288"
		},
		{
			"name": "shz_vec2_smoothstep",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 291,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_smoothstep(shz_vec2_t vec, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstep",
			"cpp": [
				"shz::vec2::smoothstep"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_smoothstep/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_smoothstep.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a72e02368c9ee663a0f29643e10965864",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L291"
		},
		{
			"name": "shz_vec3_smoothstep",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 294,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_smoothstep(shz_vec3_t vec, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstep",
			"cpp": [
				"shz::vec3::smoothstep"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_smoothstep/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_smoothstep.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a787fe55f8cd62c6810b9bce1df5f4c7e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L294"
		},
		{
			"name": "shz_vec4_smoothstep",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 297,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_smoothstep(shz_vec4_t vec, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstep",
			"cpp": [
				"shz::vec4::smoothstep"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_smoothstep/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_smoothstep.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a344009b58ec9115b3e33614c048e8726",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L297"
		},
		{
			"name": "shz_vec2_smoothstepv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 300,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_smoothstepv(shz_vec2_t vec, shz_vec2_t edge0, shz_vec2_t edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0[i], 1.0f at/above edge1[i], smoothly varying in-between.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstepv",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_smoothstepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_smoothstepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9a2dcaa3ad0d3381c5dbf6f6ca61a5a0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L300"
		},
		{
			"name": "shz_vec3_smoothstepv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 303,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_smoothstepv(shz_vec3_t vec, shz_vec3_t edge0, shz_vec3_t edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "For each component i: returns 0.0f at/below edge0[i], 1.0f at/above edge1[i], smoothly varying in-between.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstepv",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_smoothstepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_smoothstepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7305ff0813fcb83963c7ed67bc47c96a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L303"
		},
		{
			"name": "shz_vec4_smoothstepv",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 306,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_smoothstepv(shz_vec4_t vec, shz_vec4_t edge0, shz_vec4_t edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "For each component i: returns 0.0f at/below edge0[i], 1.0f at/above edge1[i], smoothly varying in-between.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstepv",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_smoothstepv/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_smoothstepv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a89fb89b45276af843656c8bae3e51a1e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L306"
		},
		{
			"name": "shz_vec2_smoothstep_safe",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 309,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_smoothstep_safe(shz_vec2_t vec, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstep_safe",
			"cpp": [
				"shz::vec2::smoothstep_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_smoothstep_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_smoothstep_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a283809e179c6ca703f8d94de1b7f2ba4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L309"
		},
		{
			"name": "shz_vec3_smoothstep_safe",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 312,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_smoothstep_safe(shz_vec3_t vec, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstep_safe",
			"cpp": [
				"shz::vec3::smoothstep_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_smoothstep_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_smoothstep_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac75f2459584be10cbaf9f832e166c7e7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L312"
		},
		{
			"name": "shz_vec4_smoothstep_safe",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 315,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_smoothstep_safe(shz_vec4_t vec, float edge0, float edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "float",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0, 1.0f at/above edge1, smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstep_safe",
			"cpp": [
				"shz::vec4::smoothstep_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_smoothstep_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_smoothstep_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae4ca8fda504a3335d47d0a0015ddce45",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L315"
		},
		{
			"name": "shz_vec2_smoothstepv_safe",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 318,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_smoothstepv_safe(shz_vec2_t vec, shz_vec2_t edge0, shz_vec2_t edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "For each component: returns 0.0f at/below edge0[i], 1.0f at/above edge1[i], smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstepv_safe",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_smoothstepv_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_smoothstepv_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a97affd67289d710796ec2d8251426c01",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L318"
		},
		{
			"name": "shz_vec3_smoothstepv_safe",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 321,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_smoothstepv_safe(shz_vec3_t vec, shz_vec3_t edge0, shz_vec3_t edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "For each component i: returns 0.0f at/below edge0[i], 1.0f at/above edge1[i], smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstepv_safe",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_smoothstepv_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_smoothstepv_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a21e7a41dc4a9da8fd1a07809cbf804b0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L321"
		},
		{
			"name": "shz_vec4_smoothstepv_safe",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 324,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_smoothstepv_safe(shz_vec4_t vec, shz_vec4_t edge0, shz_vec4_t edge1) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge0",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "edge1",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "For each component i: returns 0.0f at/below edge0[i], 1.0f at/above edge1[i], smoothly varying in-between. Accepts inverse edges.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_smoothstepv_safe",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_smoothstepv_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_smoothstepv_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a68607907a041ae61d23bcf9dc9fcff11",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L324"
		},
		{
			"name": "shz_vec2_inv_sqrtf",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 327,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_inv_sqrtf(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the inverse square root of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_inv_sqrtf",
			"cpp": [
				"shz::vec2::inv_sqrtf"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_inv_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_inv_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a0555bf26b888ee0881b6c058522a7fc6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L327"
		},
		{
			"name": "shz_vec3_inv_sqrtf",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 330,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_inv_sqrtf(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the inverse square root of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_inv_sqrtf",
			"cpp": [
				"shz::vec3::inv_sqrtf"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_inv_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_inv_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a167792eada43812e2801a25a1def6c28",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L330"
		},
		{
			"name": "shz_vec4_inv_sqrtf",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 333,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_inv_sqrtf(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the inverse square root of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "simd"
			},
			"generic": "shz_vec_inv_sqrtf",
			"cpp": [
				"shz::vec4::inv_sqrtf"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_inv_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_inv_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a69f10654b83b5c7af161c2cc3eeac7c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L333"
		},
		{
			"name": "shz_vec2_sqrtf",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 336,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_sqrtf(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the square root of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sqrtf",
			"cpp": [
				"shz::vec2::sqrtf"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a752fa8b91ebef90e0f7fff1db7d9636e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L336"
		},
		{
			"name": "shz_vec3_sqrtf",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 339,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_sqrtf(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the square root of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sqrtf",
			"cpp": [
				"shz::vec3::sqrtf"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a201c6ab1887a85f3294783af0f271d00",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L339"
		},
		{
			"name": "shz_vec4_sqrtf",
			"kind": "function",
			"module": "vector",
			"section": "Component-wise Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 342,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_sqrtf(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the square root of the given vector's components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sqrtf",
			"cpp": [
				"shz::vec4::sqrtf"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_sqrtf/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_sqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4175bc9297449a915fe076e8275c4e2a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L342"
		},
		{
			"name": "shz_vec2_add",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 353,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_add(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are the sums of the given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_add",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_add/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_add.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a3a4b0fe86df5fe8d2fcd0ad9043ce985",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L353"
		},
		{
			"name": "shz_vec3_add",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 356,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_add(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are the sums of the given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_add",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_add/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_add.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a094ed63fcd6727b1bf99e1fb2687f1dc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L356"
		},
		{
			"name": "shz_vec4_add",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 359,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_add(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are the sums of the given vectors' components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "simd"
			},
			"generic": "shz_vec_add",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_add/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_add.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae568c710cb6c4a5f8be163070d0b2a08",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L359"
		},
		{
			"name": "shz_vec2_sub",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 362,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_sub(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose components are equal to the values of vec1 minus vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sub",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_sub/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_sub.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab4cf55f5c15b2688853b858815c3cd58",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L362"
		},
		{
			"name": "shz_vec3_sub",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 365,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_sub(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose components are equal to the values of vec1 minus vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_sub",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_sub/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_sub.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad41956ff35b04d5253dbae8cbf3597be",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L365"
		},
		{
			"name": "shz_vec4_sub",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 368,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_sub(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose components are equal to the values of vec1 minus vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "simd"
			},
			"generic": "shz_vec_sub",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_sub/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_sub.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a12ab112c40b4837df1283ea17cb830ed",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L368"
		},
		{
			"name": "shz_vec2_mul",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 371,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_mul(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose component values are those of vec1 times vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_mul",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_mul/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_mul.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a71a871ba1deb3be43fe40acd73afabf5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L371"
		},
		{
			"name": "shz_vec3_mul",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 374,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_mul(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose component values are those of vec1 times vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_mul",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_mul/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_mul.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab192ac054becc5741076f9ba0726e93b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L374"
		},
		{
			"name": "shz_vec4_mul",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 377,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_mul(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose component values are those of vec1 times vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "simd"
			},
			"generic": "shz_vec_mul",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_mul/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_mul.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2db97fd043033be20a8fa4184ed83733",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L377"
		},
		{
			"name": "shz_vec2_div",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 380,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_div(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose component values are those of vec1 divided by vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_div",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_div/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_div.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ace0474d61856974ba06f76c9623dc858",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L380"
		},
		{
			"name": "shz_vec3_div",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 383,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_div(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose component values are those of vec1 divided by vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_div",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_div/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_div.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a5e1c0c134363fa7157f6859aebb80367",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L383"
		},
		{
			"name": "shz_vec4_div",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 386,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_div(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose component values are those of vec1 divided by vec2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "simd"
			},
			"generic": "shz_vec_div",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_div/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_div.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7690b84ede8c0eaeb53cbe3f40fd2775",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L386"
		},
		{
			"name": "shz_vec2_scale",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 389,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_scale(shz_vec2_t vec, float factor) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "factor",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose component values are those of the given vector multiplied by a factor.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_scale",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_scale/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a30bd3b360dacb95dc7674c2b09849140",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L389"
		},
		{
			"name": "shz_vec3_scale",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 392,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_scale(shz_vec3_t vec, float factor) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "factor",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose component values are those of the given vector multiplied by a factor.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_scale",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_scale/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a089ba1c4c0936ee9830d9ad90f5a0fe1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L392"
		},
		{
			"name": "shz_vec4_scale",
			"kind": "function",
			"module": "vector",
			"section": "Arithmetic",
			"header": "sh4zam/shz_vector.h",
			"line": 395,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_scale(shz_vec4_t vec, float factor) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "factor",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector whose component values are those of the given vector multiplied by a factor.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_scale",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_scale/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac7fba8af4233555f3156a1298673f0ce",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L395"
		},
		{
			"name": "shz_vec2_magnitude_sqr",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 405,
			"signature": "SHZ_INLINE float shz_vec2_magnitude_sqr(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared magnitude of the given 2D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude_sqr",
			"cpp": [
				"shz::vec2::magnitude_sqr"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_magnitude_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_magnitude_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a91e246e044ced329c6a7f0c45bd52bf5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L405"
		},
		{
			"name": "shz_vec4_magnitude_sqr",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 408,
			"signature": "SHZ_INLINE float shz_vec4_magnitude_sqr(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared magnitude of the given 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude_sqr",
			"cpp": [
				"shz::vec4::magnitude_sqr"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_magnitude_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_magnitude_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#accd8a9b8516d2cf774569e7d7212fea9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L408"
		},
		{
			"name": "shz_vec3_magnitude_sqr",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 411,
			"signature": "SHZ_INLINE float shz_vec3_magnitude_sqr(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared magnitude of the given 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude_sqr",
			"cpp": [
				"shz::vec3::magnitude_sqr"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_magnitude_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_magnitude_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a117c80c4930e05678ad56adc8fb99123",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L411"
		},
		{
			"name": "shz_vec2_magnitude",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 414,
			"signature": "SHZ_INLINE float shz_vec2_magnitude(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the magnitude of the given 2D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude",
			"cpp": [
				"shz::vec2::magnitude"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_magnitude/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_magnitude.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa94433c6c456c272a0a387fe12926fff",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L414"
		},
		{
			"name": "shz_vec3_magnitude",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 417,
			"signature": "SHZ_INLINE float shz_vec3_magnitude(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the magnitude of the given 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude",
			"cpp": [
				"shz::vec3::magnitude"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_magnitude/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_magnitude.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1101fc618199a518862d1cd78f310804",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L417"
		},
		{
			"name": "shz_vec4_magnitude",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 420,
			"signature": "SHZ_INLINE float shz_vec4_magnitude(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the magnitude of the given 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude",
			"cpp": [
				"shz::vec4::magnitude"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_magnitude/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_magnitude.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7c6b977067cc56e82a0502ff46929586",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L420"
		},
		{
			"name": "shz_vec2_magnitude_inv",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 423,
			"signature": "SHZ_INLINE float shz_vec2_magnitude_inv(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the inverse magnitude of the given 2D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude_inv",
			"cpp": [
				"shz::vec2::magnitude_inv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_magnitude_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_magnitude_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aec34343963d74fe547ed8ff34f75fe48",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L423"
		},
		{
			"name": "shz_vec3_magnitude_inv",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 426,
			"signature": "SHZ_INLINE float shz_vec3_magnitude_inv(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the inverse magnitude of the given 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude_inv",
			"cpp": [
				"shz::vec3::magnitude_inv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_magnitude_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_magnitude_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2cc985ee106ae9bfba93cd74545c808a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L426"
		},
		{
			"name": "shz_vec4_magnitude_inv",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 429,
			"signature": "SHZ_INLINE float shz_vec4_magnitude_inv(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the inverse magnitude of the given 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_magnitude_inv",
			"cpp": [
				"shz::vec4::magnitude_inv"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_magnitude_inv/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_magnitude_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a5c502fa1cb07689c64587c0b1c9fce89",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L429"
		},
		{
			"name": "shz_vec2_normalize",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 432,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_normalize(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns a normalized unit vector from the given 2D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_normalize",
			"cpp": [
				"shz::vec2::direction",
				"shz::vec2::normalize",
				"shz::vec2::normalized"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_normalize/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_normalize.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a43916612e235be2985099f292df777a5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L432"
		},
		{
			"name": "shz_vec3_normalize",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 435,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_normalize(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a normalized unit vector from the given 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_normalize",
			"cpp": [
				"shz::vec3::direction",
				"shz::vec3::normalize",
				"shz::vec3::normalized"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_normalize/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_normalize.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a1515387faa06311ab68ffd6ea99f90c8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L435"
		},
		{
			"name": "shz_vec4_normalize",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 438,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_normalize(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns a normalized unit vector from the given 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_normalize",
			"cpp": [
				"shz::vec4::direction",
				"shz::vec4::normalize",
				"shz::vec4::normalized"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_normalize/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_normalize.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2f047a22333d082414b6b6afe522fb2e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L438"
		},
		{
			"name": "shz_vec2_normalize_safe",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 444,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_normalize_safe(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "SAFELY returns a normalized unit vector from the given 2D vector.",
			"detail": "If the vector's magnitude is not `> 0.0f`, safely returns a zero vector.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_normalize_safe",
			"cpp": [
				"shz::vec2::direction_safe",
				"shz::vec2::normalize_safe",
				"shz::vec2::normalized_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_normalize_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_normalize_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a27c299f26545ff009e40bbf34d50496c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L444"
		},
		{
			"name": "shz_vec3_normalize_safe",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 450,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_normalize_safe(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "SAFELY returns a normalized unit vector from the given 3D vector.",
			"detail": "If the vector's magnitude is not `> 0.0f`, safely returns a zero vector.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_normalize_safe",
			"cpp": [
				"shz::vec3::direction_safe",
				"shz::vec3::normalize_safe",
				"shz::vec3::normalized_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_normalize_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_normalize_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a8192d4e07fbb571e81922b6323d1f303",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L450"
		},
		{
			"name": "shz_vec4_normalize_safe",
			"kind": "function",
			"module": "vector",
			"section": "Magnitude",
			"header": "sh4zam/shz_vector.h",
			"line": 456,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_normalize_safe(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "SAFELY returns a normalized unit vector from the given 4D vector.",
			"detail": "If the vector's magnitude is not `> 0.0f`, safely returns a zero vector.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_normalize_safe",
			"cpp": [
				"shz::vec4::direction_safe",
				"shz::vec4::normalize_safe",
				"shz::vec4::normalized_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_normalize_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_normalize_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa8d4c3a179252addb75dbc1906479ba5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L456"
		},
		{
			"name": "shz_vec2_dot",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 466,
			"signature": "SHZ_INLINE float shz_vec2_dot(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the dot product between the two given 2D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_dot/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_dot.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a312e29fb63882dff57729c2f76a184f1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L466"
		},
		{
			"name": "shz_vec2_dot2",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 469,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_dot2(shz_vec2_t l, shz_vec2_t r1, shz_vec2_t r2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "l",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the two dot products taken between the 2D vector l and 2D vectors r1 and r2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot2",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_dot2/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_dot2.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2c2ae97f5c22b8f1b4c074808dd8d496",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L469"
		},
		{
			"name": "shz_vec2_dot3",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 472,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec2_dot3(shz_vec2_t l, shz_vec2_t r1, shz_vec2_t r2, shz_vec2_t r3) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "l",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the three dot products taken between the 2D vector l and 2D vectors r1, r2, and r3.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot3",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_dot3/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_dot3.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad2d4d6d8d101ae992d4e1bbc5530f0c3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L472"
		},
		{
			"name": "shz_vec3_dot",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 475,
			"signature": "SHZ_INLINE float shz_vec3_dot(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the dot product between the two given 3D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_dot/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_dot.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a70303d77a49a9018176bd5e959873fc9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L475"
		},
		{
			"name": "shz_vec3_dot2",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 478,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec3_dot2(shz_vec3_t l, shz_vec3_t r1, shz_vec3_t r2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "l",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the two dot products taken between the 3D vector l and 3D vectors r1 and r2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot2",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_dot2/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_dot2.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#abd1540fcd76d2b0a24b41fdc09fb9f7f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L478"
		},
		{
			"name": "shz_vec3_dot3",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 481,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_dot3(shz_vec3_t l, shz_vec3_t r1, shz_vec3_t r2, shz_vec3_t r3) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "l",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the three dot products taken between the 3D vector l and 3D vectors r1, r2, and r3.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot3",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_dot3/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_dot3.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a575ffe4ea2992d187c231d2fb27a06ac",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L481"
		},
		{
			"name": "shz_vec4_dot",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 484,
			"signature": "SHZ_INLINE float shz_vec4_dot(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the dot product between the two given 4D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_dot/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_dot.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a89259fc49d74f140369ba829a02d353d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L484"
		},
		{
			"name": "shz_vec4_dot2",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 487,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec4_dot2(shz_vec4_t l, shz_vec4_t r1, shz_vec4_t r2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "l",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the two dot products taken between the 4D vector l and 4D vectors r1 and r2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot2",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_dot2/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_dot2.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a474878c9e6940da76528c9e9ab9313aa",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L487"
		},
		{
			"name": "shz_vec4_dot3",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 490,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec4_dot3(shz_vec4_t l, shz_vec4_t r1, shz_vec4_t r2, shz_vec4_t r3) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "l",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the three dot products taken between the 4D vector l and 4D vectors r1, r2, and r3.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_dot3",
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4_dot3/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_dot3.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac9f69582715252be92e188f0080ce4d0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L490"
		},
		{
			"name": "shz_vec2_distance",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 493,
			"signature": "SHZ_INLINE float shz_vec2_distance(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the distance between the two given 2D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_distance",
			"cpp": [
				"shz::vec2::distance"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_distance/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_distance.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ab827cc3f32bb2f9a65ed47f92418a344",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L493"
		},
		{
			"name": "shz_vec3_distance",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 496,
			"signature": "SHZ_INLINE float shz_vec3_distance(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the distance between the two given 3D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_distance",
			"cpp": [
				"shz::vec3::distance"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_distance/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_distance.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4b587630e9cfd7a417c7a702b689c6d7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L496"
		},
		{
			"name": "shz_vec4_distance",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 499,
			"signature": "SHZ_INLINE float shz_vec4_distance(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the distance between the two given 4D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_distance",
			"cpp": [
				"shz::vec4::distance"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_distance/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_distance.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a97cd691cb5d34c351067c93da4b38336",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L499"
		},
		{
			"name": "shz_vec2_distance_sqr",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 502,
			"signature": "SHZ_INLINE float shz_vec2_distance_sqr(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared-distance between the two given 2D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_distance_sqr",
			"cpp": [
				"shz::vec2::distance_sqr"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_distance_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_distance_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aab550e6f60941cbcf853438db8268c40",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L502"
		},
		{
			"name": "shz_vec3_distance_sqr",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 505,
			"signature": "SHZ_INLINE float shz_vec3_distance_sqr(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared-distance between the two given 3D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_distance_sqr",
			"cpp": [
				"shz::vec3::distance_sqr"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_distance_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_distance_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa1e853f42504ce2a2f2c0808fe74dee8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L505"
		},
		{
			"name": "shz_vec4_distance_sqr",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 508,
			"signature": "SHZ_INLINE float shz_vec4_distance_sqr(shz_vec4_t vec1, shz_vec4_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared-distance between the two given 4D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_distance_sqr",
			"cpp": [
				"shz::vec4::distance_sqr"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_distance_sqr/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_distance_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a27cca398dd0df778e23b3d5c891fe747",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L508"
		},
		{
			"name": "shz_vec2_move",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 511,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_move(shz_vec2_t vec, shz_vec2_t target, float max_distance) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "target",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "max_distance",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the given 2D vector, translated towards the target by the given max_distance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_move",
			"cpp": [
				"shz::vec2::move"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_move/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_move.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae45fbe1f1c6ecb136dfdae3cf0a92852",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L511"
		},
		{
			"name": "shz_vec3_move",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 514,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_move(shz_vec3_t vec, shz_vec3_t target, float max_distance) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "target",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "max_distance",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the given 3D vector, translated towards the target by the given max_distance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_move",
			"cpp": [
				"shz::vec3::move"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_move/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_move.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7fc1e90f8e9aab52af4bae0be2c7ae6c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L514"
		},
		{
			"name": "shz_vec4_move",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 517,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_move(shz_vec4_t vec, shz_vec4_t target, float max_distance) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "target",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "max_distance",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the given 4D vector, translated towards the target by the given max_distance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_move",
			"cpp": [
				"shz::vec4::move"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_move/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_move.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2772281086d2df36ec65b16f37560eec",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L517"
		},
		{
			"name": "shz_vec2_lerp",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 520,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_lerp(shz_vec2_t a, shz_vec2_t b, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector that is linearly interpolated from a to b by the given 0.0f-1.0f factor, t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_lerp",
			"cpp": [
				"shz::vec2::lerp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_lerp/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_lerp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a75bc85e44555e090cea584176498f393",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L520"
		},
		{
			"name": "shz_vec3_lerp",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 523,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_lerp(shz_vec3_t a, shz_vec3_t b, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector that is linearly interpolated from a to b by the given 0.0f-1.0f factor, t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_lerp",
			"cpp": [
				"shz::vec3::lerp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_lerp/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_lerp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aab0d50c7a0bf646b612dd068a6930eff",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L523"
		},
		{
			"name": "shz_vec4_lerp",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 526,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_lerp(shz_vec4_t a, shz_vec4_t b, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "a",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a 4D vector that is linearly interpolated from a to b by the given 0.0f-1.0f factor, t.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_lerp",
			"cpp": [
				"shz::vec4::lerp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_lerp/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_lerp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a22585b36d3cc4fa9e86f0fcb2cab3372",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L526"
		},
		{
			"name": "shz_vec2_reflect",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 529,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_reflect(shz_vec2_t incidence, shz_vec2_t normal) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "incidence",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Reflects the given 2D incidence vector against a surface with the given normal, returning the result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_reflect",
			"cpp": [
				"shz::vec2::reflect"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_reflect/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_reflect.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a6ff8021864b3e8789e19667ecbe11bb3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L529"
		},
		{
			"name": "shz_vec3_reflect",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 532,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_reflect(shz_vec3_t incidence, shz_vec3_t normal) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "incidence",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Reflects the given 3D incidence vector against a surface with the given normal, returning the result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_reflect",
			"cpp": [
				"shz::vec3::reflect"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_reflect/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_reflect.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a72b3ec324b785ed5c7b0a820ef69f609",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L532"
		},
		{
			"name": "shz_vec4_reflect",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 535,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_reflect(shz_vec4_t incidence, shz_vec4_t normal) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "incidence",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Reflects the given 4D incidence vector against a surface with the given normal, returning the result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_reflect",
			"cpp": [
				"shz::vec4::reflect"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_reflect/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_reflect.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aaf83e65d78a5364433c8565da7b0790f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L535"
		},
		{
			"name": "shz_vec2_refract",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 538,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_refract(shz_vec2_t incidence, shz_vec2_t normal, float eta) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "incidence",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "eta",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Refracts the given 2D incidence vector against a surface with the given normal using the given refraction index ratio, eta.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_refract",
			"cpp": [
				"shz::vec2::refract"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_refract/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_refract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a3ac9f9e1a253f4ddb6fc49a88587f95b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L538"
		},
		{
			"name": "shz_vec3_refract",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 541,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_refract(shz_vec3_t incidence, shz_vec3_t normal, float eta) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "incidence",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "eta",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Refracts the given 3D incidence vector against a surface with the given normal using the given refraction index ratio, eta.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_refract",
			"cpp": [
				"shz::vec3::refract"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_refract/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_refract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aadad6f32670dbfc795135ce6ea7a2666",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L541"
		},
		{
			"name": "shz_vec4_refract",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 544,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_refract(shz_vec4_t incidence, shz_vec4_t normal, float eta) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "incidence",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "normal",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "eta",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Refracts the given 4D incidence vector against a surface with the given normal using the given refraction index ratio, eta.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_refract",
			"cpp": [
				"shz::vec4::refract"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_refract/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_refract.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa15b967158959613fd1186b18ed657bc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L544"
		},
		{
			"name": "shz_vec2_cross",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 553,
			"signature": "SHZ_INLINE float shz_vec2_cross(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the cross product, as a scalar, between two 2D vectors.",
			"detail": "",
			"returns": "",
			"notes": [
				"The definition of the cross-product is ambiguous in 2D space, but the geometric interpretation here is that the result is the magnitude of the orthogonal vector created from the given two along the Z-axis."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_cross",
			"cpp": [
				"shz::vec2::cross"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_cross/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_cross.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2134853409dde4c2d47202e0566adec5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L553"
		},
		{
			"name": "shz_vec3_cross",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 556,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_cross(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the vector produced by taking the cross-product of the two given 3D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_cross",
			"cpp": [
				"shz::vec3::cross"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_cross/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_cross.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a102b28c5b62b8364f097ea857042172b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L556"
		},
		{
			"name": "shz_vec2_project",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 559,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_project(shz_vec2_t vec, shz_vec2_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the resulting vector from projecting the given 2D vector along the given (unit) axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_project",
			"cpp": [
				"shz::vec2::project"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_project/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_project.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9cc0d3a324a8bcef1bb8c6b0b03cc4a4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L559"
		},
		{
			"name": "shz_vec3_project",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 562,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_project(shz_vec3_t vec, shz_vec3_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the resulting vector from projecting the given 3D vector along the given (unit) axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_project",
			"cpp": [
				"shz::vec3::project"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_project/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_project.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af93b6551f761853018226b756832cf94",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L562"
		},
		{
			"name": "shz_vec4_project",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 565,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_project(shz_vec4_t vec, shz_vec4_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the resulting vector from projecting the given 4D vector along the given (unit) axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_project",
			"cpp": [
				"shz::vec4::project"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_project/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_project.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9c3cea2303d21281d5d8be208a294fc9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L565"
		},
		{
			"name": "shz_vec2_project_safe",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 572,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_project_safe(shz_vec2_t vec, shz_vec2_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the resulting vector from projecting the given 2D vector along the given (unit) axis.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine should safely return the zero vector when vec has a magnitude of 0.0f."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_project_safe",
			"cpp": [
				"shz::vec2::project_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_project_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_project_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a3121403c217161837f73b6c7cd62a3cb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L572"
		},
		{
			"name": "shz_vec3_project_safe",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 579,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_project_safe(shz_vec3_t vec, shz_vec3_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the resulting vector from projecting the given 3D vector along the given (unit) axis.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine should safely return the zero vector when vec has a magnitude of 0.0f."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_project_safe",
			"cpp": [
				"shz::vec3::project_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_project_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_project_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af11e03e17762c0358faca68d53ff5013",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L579"
		},
		{
			"name": "shz_vec4_project_safe",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 586,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_project_safe(shz_vec4_t vec, shz_vec4_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the resulting vector from projecting the given 4D vector along the given (unit) axis.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine should safely return the zero vector when vec has a magnitude of 0.0f."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_project_safe",
			"cpp": [
				"shz::vec4::project_safe"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_project_safe/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_project_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a9460796342b2f1ff64b2abb8c9319f43",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L586"
		},
		{
			"name": "shz_vec3_reject",
			"kind": "function",
			"module": "vector",
			"section": "Binary Operations",
			"header": "sh4zam/shz_vector.h",
			"line": 589,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_reject(shz_vec3_t vec, shz_vec3_t onto) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "onto",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the rejection of the given vector, vec, onto another vector, onto.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::reject"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_reject/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_reject.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ae600c75f410f5c23944a46c2bb20f7b2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L589"
		},
		{
			"name": "shz_vec3_triple",
			"kind": "function",
			"module": "vector",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_vector.h",
			"line": 599,
			"signature": "SHZ_INLINE float shz_vec3_triple(shz_vec3_t a, shz_vec3_t b, shz_vec3_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "a",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "c",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the 3D vector \"triple product\" between vector's a, b, and c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::triple"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_triple/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_triple.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a93cf5900a549dfa4155d7841a9f24ae0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L599"
		},
		{
			"name": "shz_vec3_perp",
			"kind": "function",
			"module": "vector",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_vector.h",
			"line": 602,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_perp(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns a vector which is perpendicular to the given vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::perp"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_perp/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_perp.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4a79d685bda0a147e92773dd550fc6ad",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L602"
		},
		{
			"name": "shz_vec3_barycenter",
			"kind": "function",
			"module": "vector",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_vector.h",
			"line": 605,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_barycenter(shz_vec3_t p, shz_vec3_t a, shz_vec3_t b, shz_vec3_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "p",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "a",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "c",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Computes barycentric coordinates <u, v, w> for point p, within the plane of the triangle with vertices a, b, and c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::barycenter"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_barycenter/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_barycenter.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a7886511c1faa5247488d86bbdfe7c2ae",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L605"
		},
		{
			"name": "shz_vec3_orthonormalize",
			"kind": "function",
			"module": "vector",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_vector.h",
			"line": 608,
			"signature": "SHZ_INLINE void shz_vec3_orthonormalize(shz_vec3_t in1, shz_vec3_t in2, shz_vec3_t* out1, shz_vec3_t* out2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "in1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "in2",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "out1",
					"type": "shz_vec3_t *",
					"doc": ""
				},
				{
					"name": "out2",
					"type": "shz_vec3_t *",
					"doc": ""
				}
			],
			"brief": "Returns 2 3D vectors which are normalized and orthogonal to the two input vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::orthonormalize"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_orthonormalize/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_orthonormalize.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a65e3a7c2812ca6da4338a1368df4425b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L608"
		},
		{
			"name": "shz_vec3_cubic_hermite",
			"kind": "function",
			"module": "vector",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_vector.h",
			"line": 611,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_cubic_hermite(shz_vec3_t vec, shz_vec3_t tangent1, shz_vec3_t vec2, shz_vec3_t tangent2, float amounht) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "tangent1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "tangent2",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "amounht",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Calculates the cubic hermite interpolation between two vectors and their tangents.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::cubic_hermite"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_cubic_hermite/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_cubic_hermite.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4df72719a8e532f7e5b764791fe42dc7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L611"
		},
		{
			"name": "shz_vec2_angle_between",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 621,
			"signature": "SHZ_INLINE float shz_vec2_angle_between(shz_vec2_t vec1, shz_vec2_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle formed between the given 2D vectors in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_angle_between",
			"cpp": [
				"shz::vec2::angle_between"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_angle_between/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_angle_between.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac260a34db61dbd3200e5f6a83b308822",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L621"
		},
		{
			"name": "shz_vec3_angle_between",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 624,
			"signature": "SHZ_INLINE float shz_vec3_angle_between(shz_vec3_t vec1, shz_vec3_t vec2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "vec2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle formed between the given 3D vectors in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_angle_between",
			"cpp": [
				"shz::vec3::angle_between"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_angle_between/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_angle_between.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#afbca6d1e49d57296135b56325fb4f12e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L624"
		},
		{
			"name": "shz_vec2_angle",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 627,
			"signature": "SHZ_INLINE float shz_vec2_angle(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle formed between the positive X axis and the given 2D vector, in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_angles",
			"cpp": [
				"shz::vec2::angles"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_angle/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_angle.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#afa57ce6772942c7899c101c0f9526995",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L627"
		},
		{
			"name": "shz_vec3_angles",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 630,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_angles(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the angles formed between the positive X axis and the given 3D vector, in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_angles",
			"cpp": [
				"shz::vec3::angles"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_angles/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_angles.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a425f8c2d38efee80cd5b9d38354b1ed0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L630"
		},
		{
			"name": "shz_vec2_from_sincos",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 633,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_from_sincos(shz_sincos_t sincos) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "sincos",
					"type": "shz_sincos_t",
					"doc": ""
				}
			],
			"brief": "Returns the 2D unit vector representing a rotation from the positive X axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_from_sincos/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_from_sincos.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a56c1a7c8543d4b74b189f709d2ac742a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L633"
		},
		{
			"name": "shz_vec3_from_sincos",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 636,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_from_sincos(shz_sincos_t azimuth, shz_sincos_t elevation) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "azimuth",
					"type": "shz_sincos_t",
					"doc": ""
				},
				{
					"name": "elevation",
					"type": "shz_sincos_t",
					"doc": ""
				}
			],
			"brief": "Returns the 3D unit vector representing the given rotation angles relative to the positive X axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_from_sincos/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_from_sincos.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a886fcccfb49bef36f963d0bb59259f28",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L636"
		},
		{
			"name": "shz_vec2_from_angle",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 639,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_from_angle(float radians) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the 2D unit vector representing a rotation from the positive X axis in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec2::from_angle"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_from_angle/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_from_angle.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a4efd0455f59dee0f93a37441152e45ef",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L639"
		},
		{
			"name": "shz_vec3_from_angles",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 642,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_from_angles(float azimuth, float elevation) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "azimuth",
					"type": "float",
					"doc": ""
				},
				{
					"name": "elevation",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the 3D unit vector representing the given rotation angles relative to the positive X axis in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::from_angles"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_from_angles/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_from_angles.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aa4ce819e16f2f240614b7427f77a15de",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L642"
		},
		{
			"name": "shz_vec2_from_angle_deg",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 645,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_from_angle_deg(float degrees) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "degrees",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the 2D unit vector representing a rotation from the positive X axis in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec2::from_angle_deg"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_from_angle_deg/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_from_angle_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aaa408b8480dcec9a39ee36ca40de9986",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L645"
		},
		{
			"name": "shz_vec3_from_angles_deg",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 648,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_from_angles_deg(float azimuth, float elevation) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "azimuth",
					"type": "float",
					"doc": ""
				},
				{
					"name": "elevation",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the 3D unit vector representing the given rotation angles relative to the positive X axis in degrees.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::from_angles_deg"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_from_angles_deg/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_from_angles_deg.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a33cf6ee19d0128926441c53d7bb8f9b3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L648"
		},
		{
			"name": "shz_vec2_rotate",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 651,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_rotate(shz_vec2_t vec, float radians) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given 2D vector about the Z axis by the given angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec2::rotate"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_rotate/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_rotate.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ad390e092be7c8e2056a20ca475329393",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L651"
		},
		{
			"name": "shz_vec3_rotate_x",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 661,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_rotate_x(shz_vec3_t vec, float radians) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given 3D vector about the X axis by the given angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine should only be used for one-off rotations of a single vector. To rotate multiple vectors in a batch, use the XMTRX API."
			],
			"sa": [
				"shz_xmtrx_apply_rotation_x"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::rotate_x"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_rotate_x/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_rotate_x.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a2b73c250886fa099b82aea9cdedb25f4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L661"
		},
		{
			"name": "shz_vec3_rotate_y",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 671,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_rotate_y(shz_vec3_t vec, float radians) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given 3D vector about the Y axis by the given angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine should only be used for one-off rotations of a single vector. To rotate multiple vectors in a batch, use the XMTRX API."
			],
			"sa": [
				"shz_xmtrx_apply_rotation_y"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::rotate_y"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_rotate_y/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_rotate_y.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a800397ce21fd42d1f4eda8228f08da40",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L671"
		},
		{
			"name": "shz_vec3_rotate_z",
			"kind": "function",
			"module": "vector",
			"section": "Angles",
			"header": "sh4zam/shz_vector.h",
			"line": 681,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_rotate_z(shz_vec3_t vec, float radians) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given 3D vector about the Z axis by the given angle in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine should only be used for one-off rotations of a single vector. To rotate multiple vectors in a batch, use the XMTRX API."
			],
			"sa": [
				"shz_xmtrx_apply_rotation_z"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::vec3::rotate_z"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_rotate_z/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_rotate_z.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#add044efdf862bcd6c66e909775c422e0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L681"
		},
		{
			"name": "shz_vec2_vec3",
			"kind": "function",
			"module": "vector",
			"section": "Extending",
			"header": "sh4zam/shz_vector.h",
			"line": 691,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec2_vec3(shz_vec2_t vec, float z) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Extends a 2D vector to 3D, using z as the value of the Z component.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_vec3/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_vec3.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a3fb729a547d1fca1f243dfb261a85e40",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L691"
		},
		{
			"name": "shz_vec2_vec4",
			"kind": "function",
			"module": "vector",
			"section": "Extending",
			"header": "sh4zam/shz_vector.h",
			"line": 694,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec2_vec4(shz_vec2_t vec, float z, float w) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Extends a 2D vector to 4D, using z and w as the values of the Z and W components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2_vec4/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_vec4.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#abb0d3ee9edf3fe85360bee236a9dd425",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L694"
		},
		{
			"name": "shz_vec3_vec4",
			"kind": "function",
			"module": "vector",
			"section": "Extending",
			"header": "sh4zam/shz_vector.h",
			"line": 697,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec3_vec4(shz_vec3_t vec, float w) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Extends a 3D vector to 4D, using w as the value of the W component.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3_vec4/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_vec4.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#aebbc3df75b31f68c4ff8051120164ebd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L697"
		},
		{
			"name": "shz_vec2_swizzle",
			"kind": "function",
			"module": "vector",
			"section": "Swizzling",
			"header": "sh4zam/shz_vector.h",
			"line": 707,
			"signature": "SHZ_INLINE shz_vec2_t shz_vec2_swizzle(shz_vec2_t vec, unsigned x_idx, unsigned y_idx) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "x_idx",
					"type": "unsigned",
					"doc": ""
				},
				{
					"name": "y_idx",
					"type": "unsigned",
					"doc": ""
				}
			],
			"brief": "Returns a 2D vector whose elements are equal to the source vector's values at the given indices.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_swizzle",
			"cpp": [
				"shz::vec2::swizzle"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_swizzle/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_swizzle.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#ac02472ae513f0dd2887001d145dfc4bf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L707"
		},
		{
			"name": "shz_vec3_swizzle",
			"kind": "function",
			"module": "vector",
			"section": "Swizzling",
			"header": "sh4zam/shz_vector.h",
			"line": 710,
			"signature": "SHZ_INLINE shz_vec3_t shz_vec3_swizzle(shz_vec3_t vec, unsigned x_idx, unsigned y_idx, unsigned z_idx) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "x_idx",
					"type": "unsigned",
					"doc": ""
				},
				{
					"name": "y_idx",
					"type": "unsigned",
					"doc": ""
				},
				{
					"name": "z_idx",
					"type": "unsigned",
					"doc": ""
				}
			],
			"brief": "Returns a 3D vector whose elements are equal to the source vector's values at the given indices.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_swizzle",
			"cpp": [
				"shz::vec3::swizzle"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_swizzle/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_swizzle.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a65c21aa4d273f09b65d042374c71c8cb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L710"
		},
		{
			"name": "shz_vec4_swizzle",
			"kind": "function",
			"module": "vector",
			"section": "Swizzling",
			"header": "sh4zam/shz_vector.h",
			"line": 713,
			"signature": "SHZ_INLINE shz_vec4_t shz_vec4_swizzle(shz_vec4_t vec, unsigned x_idx, unsigned y_idx, unsigned z_idx, unsigned w_idx) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "x_idx",
					"type": "unsigned",
					"doc": ""
				},
				{
					"name": "y_idx",
					"type": "unsigned",
					"doc": ""
				},
				{
					"name": "z_idx",
					"type": "unsigned",
					"doc": ""
				},
				{
					"name": "w_idx",
					"type": "unsigned",
					"doc": ""
				}
			],
			"brief": "Returns a new 2D vector whose elements are equal to the source vector's values at the given indices.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": "shz_vec_swizzle",
			"cpp": [
				"shz::vec4::swizzle"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_swizzle/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_swizzle.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a98bee0217a916b9de7cf52f24e1c8788",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L713"
		},
		{
			"name": "shz_vec2_t",
			"kind": "type",
			"module": "vector",
			"section": "Types",
			"header": "sh4zam/shz_vector.h",
			"line": 38,
			"signature": "typedef struct shz_vec2 {\n    union {\n        float e[2];  //!< <X, Y> coordinates as an array\n        struct {\n            float x; //!< X coordinate\n            float y; //!< Y coordinate\n        };\n    };\n} shz_vec2_t;",
			"fields": [
				{
					"name": "e",
					"type": "float[2]",
					"doc": "\\<X, Y> coordinates as an array"
				},
				{
					"name": "x",
					"type": "float",
					"doc": "X coordinate."
				},
				{
					"name": "y",
					"type": "float",
					"doc": "Y coordinate."
				}
			],
			"brief": "2D Vector type",
			"detail": "Structure for holding coordinates of a 2-dimensional vector.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_vec3_t",
				"shz_vec4_t"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::vec2"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec2_t/",
			"md": "https://sh4zam.com/api/vector/shz_vec2_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__vec2__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L38"
		},
		{
			"name": "shz_vec2",
			"kind": "typedef",
			"module": "vector",
			"section": "Types",
			"header": "sh4zam/shz_vector.h",
			"line": 49,
			"signature": "typedef shz_vec2_t shz_vec2;",
			"brief": "Alternate typedef for the shz_vec2 struct for those who hate POSIX-style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec2/",
			"md": "https://sh4zam.com/api/vector/shz_vec2.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#adcfbc80fbd002b5a21874a5dc1ca1e72",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L49"
		},
		{
			"name": "shz_vec3_t",
			"kind": "type",
			"module": "vector",
			"section": "Types",
			"header": "sh4zam/shz_vector.h",
			"line": 57,
			"signature": "typedef struct shz_vec3 {\n    union {\n        float e[3];              //!< <X, Y, Z> coordinates as an array\n        struct {\n            union {\n                struct {\n                    float x;     //!< X coordinate\n                    float y;     //!< Y coordinate\n                };\n                shz_vec2_t xy;   //!< Inner 2D vector containing <X, Y> coords\n            };\n            float z;             //!< Z coordinate\n        };\n    };\n} shz_vec3_t;",
			"fields": [
				{
					"name": "e",
					"type": "float[3]",
					"doc": "\\<X, Y, Z> coordinates as an array"
				},
				{
					"name": "z",
					"type": "float",
					"doc": "Z coordinate."
				},
				{
					"name": "xy",
					"type": "shz_vec2_t",
					"doc": "Inner 2D vector containing \\<X, Y> coords."
				},
				{
					"name": "x",
					"type": "float",
					"doc": "X coordinate."
				},
				{
					"name": "y",
					"type": "float",
					"doc": "Y coordinate."
				}
			],
			"brief": "3D Vector type",
			"detail": "Structure for holding coordinates of a 3-dimensional vector.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_vec2_t",
				"shz_vec4_t"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::vec3"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec3_t/",
			"md": "https://sh4zam.com/api/vector/shz_vec3_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__vec3__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L57"
		},
		{
			"name": "shz_vec3",
			"kind": "typedef",
			"module": "vector",
			"section": "Types",
			"header": "sh4zam/shz_vector.h",
			"line": 74,
			"signature": "typedef shz_vec3_t shz_vec3;",
			"brief": "Alternate typedef for the shz_vec3 struct for those who hate POSIX-style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec3/",
			"md": "https://sh4zam.com/api/vector/shz_vec3.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#a31a795da5fc4109e637ad28626a50466",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L74"
		},
		{
			"name": "shz_vec4_t",
			"kind": "type",
			"module": "vector",
			"section": "Types",
			"header": "sh4zam/shz_vector.h",
			"line": 82,
			"signature": "typedef struct shz_vec4 {\n    union {\n        float e SHZ_SIMD(16);                 //!< <X, Y, Z, W> coordinates as an array.\n        struct {\n            union {\n                struct {\n                    float x;        //!< X coordinate\n                    float y;        //!< Y coordinate\n                    float z;        //!< Z coordinate\n                };\n                shz_vec3_t xyz;     //!< <X, Y, Z> coordinates as a 3D vector\n            };\n            float w;                //!< W coordinate\n        };\n        struct {\n            shz_vec2_t xy;          //!< <X, Y> coordinates as a 2D vector\n            shz_vec2_t zw;          //!< <Z, W> coordinates as a 2D vector\n        };\n    };\n} shz_vec4_t;",
			"fields": [
				{
					"name": "w",
					"type": "float",
					"doc": "W coordinate."
				},
				{
					"name": "xyz",
					"type": "shz_vec3_t",
					"doc": "\\<X, Y, Z> coordinates as a 3D vector"
				},
				{
					"name": "x",
					"type": "float",
					"doc": "X coordinate."
				},
				{
					"name": "y",
					"type": "float",
					"doc": "Y coordinate."
				},
				{
					"name": "z",
					"type": "float",
					"doc": "Z coordinate."
				},
				{
					"name": "xy",
					"type": "shz_vec2_t",
					"doc": "\\<X, Y> coordinates as a 2D vector"
				},
				{
					"name": "zw",
					"type": "shz_vec2_t",
					"doc": "\\<Z, W> coordinates as a 2D vector"
				}
			],
			"brief": "4D Vector type",
			"detail": "Structure for holding coordinates of a 4-dimensional vector.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_vec2_t",
				"shz_vec3_t"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::vec4"
			],
			"url": "https://sh4zam.com/api/vector/shz_vec4_t/",
			"md": "https://sh4zam.com/api/vector/shz_vec4_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__vec4__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L82"
		},
		{
			"name": "shz_vec4",
			"kind": "typedef",
			"module": "vector",
			"section": "Types",
			"header": "sh4zam/shz_vector.h",
			"line": 105,
			"signature": "typedef shz_vec4_t shz_vec4;",
			"brief": "Alternate typedef for the shz_vec4 struct for those who hate POSIX-style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/vector/shz_vec4/",
			"md": "https://sh4zam.com/api/vector/shz_vec4.md",
			"doxygen_url": "https://sh4zam.com/shz__vector_8h.html#af2c60a8c0bc534ba1450e746e1aa632a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L105"
		},
		{
			"name": "shz_quat_init",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 57,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_init(float w, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "w",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes and returns a new quaternion with the given components, in WXYZ order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/quat/shz_quat_init/",
			"md": "https://sh4zam.com/api/quat/shz_quat_init.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#acb690f1ee357a25173becf2eada52eba",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L57"
		},
		{
			"name": "shz_quat_identity",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 60,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_identity(void) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes and returns an identity quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::identity"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_identity/",
			"md": "https://sh4zam.com/api/quat/shz_quat_identity.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a995c1681eef8e457cfaf2c9608ec303f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L60"
		},
		{
			"name": "shz_quat_equal",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 63,
			"signature": "SHZ_INLINE bool shz_quat_equal(shz_quat_t a, shz_quat_t b) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "a",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns true if the two given quaternions are considered equal based on either absolute or relative tolerance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/quat/shz_quat_equal/",
			"md": "https://sh4zam.com/api/quat/shz_quat_equal.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a078707073e6c7e61aef679a5ee65eab1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L63"
		},
		{
			"name": "shz_quat_from_angles_xyz",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 73,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_angles_xyz(float xangle, float yangle, float zangle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "xangle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yangle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zangle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes and returns a quaternion with the given X-Y-Z rotations in radians.",
			"detail": "The rotation is applied first around the X-axis, then the Y-, then the Z-axis.",
			"returns": "",
			"notes": [
				"These angles are Tait-Bryan angles representing an intrinsic rotation."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_angles_xyz"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_angles_xyz/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_angles_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aca195d4dddca3920c36662fd063eeb0c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L73"
		},
		{
			"name": "shz_quat_from_rotation_xyz",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 82,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_xyz(float xAngle, float yAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion of the rotation shz_xmtrx_init_rotation_xyz() builds, from angles in radians.",
			"detail": "The result equals the product of the axis quaternions in the order of the name, Qx \\* Qy \\* Qz, so it describes the same orientation as the matrix of the same name.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_quat_from_rotation_xyz_u16",
				"shz_xmtrx_init_rotation_xyz",
				"shz_xmtrx_init_rotation_quat"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_xyz"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_xyz/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a706447538df531a5f8724f8149f103ad",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L82"
		},
		{
			"name": "shz_quat_from_rotation_zyx",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 85,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_zyx(float zAngle, float yAngle, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion of the rotation shz_xmtrx_init_rotation_zyx() builds, Qz \\ Qy \\ Qx, from angles in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_zyx"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zyx/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a401325723719523b0c69536fe9591ba5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L85"
		},
		{
			"name": "shz_quat_from_rotation_zxy",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 88,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_zxy(float zAngle, float xAngle, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion of the rotation shz_xmtrx_init_rotation_zxy() builds, Qz \\ Qx \\ Qy, from angles in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_zxy"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zxy/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aa0c723a8c17554360ca4089d26c850b1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L88"
		},
		{
			"name": "shz_quat_from_rotation_yxz",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 91,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_yxz(float yAngle, float xAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion of the rotation shz_xmtrx_init_rotation_yxz() builds, Qy \\ Qx \\ Qz, from angles in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_yxz"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_yxz/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aceef9343162895784483166a52488c75",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L91"
		},
		{
			"name": "shz_quat_from_rotation_xyz_u16",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 101,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_xyz_u16(uint16_t xAngle, uint16_t yAngle, uint16_t zAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "xAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "uint16_t",
					"doc": ""
				}
			],
			"brief": "Equivalent to shz_quat_from_rotation_xyz(), with 16-bit binary angles (65536 per turn, the FSCA unit).",
			"detail": "For games whose orientations are stored as 16-bit angles, such as N64 titles. Signed 16-bit angles can be passed as they are. The half angles go to FSCA directly, without a conversion to radians, so an odd angle is off by half a unit (1/131072 of a turn) in its half angle.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_sincosu16"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_xyz_u16"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_xyz_u16/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_xyz_u16.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#addc17be64c658374479dba6126d64bf7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L101"
		},
		{
			"name": "shz_quat_from_rotation_zyx_u16",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 104,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_zyx_u16(uint16_t zAngle, uint16_t yAngle, uint16_t xAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "zAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "uint16_t",
					"doc": ""
				}
			],
			"brief": "Equivalent to shz_quat_from_rotation_zyx(), with 16-bit binary angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_zyx_u16"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zyx_u16/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zyx_u16.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a01fb94481380f9a894f3fad43628a560",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L104"
		},
		{
			"name": "shz_quat_from_rotation_zxy_u16",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 107,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_zxy_u16(uint16_t zAngle, uint16_t xAngle, uint16_t yAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "zAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "uint16_t",
					"doc": ""
				}
			],
			"brief": "Equivalent to shz_quat_from_rotation_zxy(), with 16-bit binary angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_zxy_u16"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zxy_u16/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_zxy_u16.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#ae79616e15d61b5e2e85d587196759531",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L107"
		},
		{
			"name": "shz_quat_from_rotation_yxz_u16",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 110,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotation_yxz_u16(uint16_t yAngle, uint16_t xAngle, uint16_t zAngle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "yAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "uint16_t",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "uint16_t",
					"doc": ""
				}
			],
			"brief": "Equivalent to shz_quat_from_rotation_yxz(), with 16-bit binary angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotation_yxz_u16"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotation_yxz_u16/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotation_yxz_u16.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a144e38515211e3557f24c8ffd3aaf214",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L110"
		},
		{
			"name": "shz_quat_from_axis_angle",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 113,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_axis_angle(shz_vec3_t axis, float angle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "axis",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "angle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes and returns a quaternion representing a rotation of angle radians about the given axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_axis_angle"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_axis_angle/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_axis_angle.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a8006313f97a71078f36965b1208b2a5c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L113"
		},
		{
			"name": "shz_quat_from_look_axis",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 116,
			"signature": "shz_quat_t shz_quat_from_look_axis(shz_vec3_t forward, shz_vec3_t up) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "forward",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Creates a quaternion looking in the given direction with the given reference direction.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_look_axis"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_look_axis/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_look_axis.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a7d314c6a3ce37f5632d47e8b04d2bfe3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L116"
		},
		{
			"name": "shz_quat_from_rotated_axis",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 119,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_from_rotated_axis(shz_vec3_t v1, shz_vec3_t v2) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "v1",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "v2",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion representing the rotation from axis v1 to v2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::from_rotated_axis"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_from_rotated_axis/",
			"md": "https://sh4zam.com/api/quat/shz_quat_from_rotated_axis.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#afc29352a693fbeb564e220091265655c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L119"
		},
		{
			"name": "shz_quat_lerp",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 122,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_lerp(shz_quat_t a, shz_quat_t b, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "a",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion that is linearly interpolating a to b, by a t factor of 0.0f-1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::lerp"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_lerp/",
			"md": "https://sh4zam.com/api/quat/shz_quat_lerp.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#ad9e48289581d23ecf0086091965e1f07",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L122"
		},
		{
			"name": "shz_quat_nlerp",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 125,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_nlerp(shz_quat_t a, shz_quat_t b, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "a",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "b",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Equivalent to shz_quat_lerp(), except that the resulting quaternion is normalized.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::nlerp"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_nlerp/",
			"md": "https://sh4zam.com/api/quat/shz_quat_nlerp.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#ab680d7adb169813eec009e94e0ba94be",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L125"
		},
		{
			"name": "shz_quat_slerp",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 128,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_slerp(shz_quat_t q, shz_quat_t p, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "p",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "t",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion that is spherically linearly interpolating a to b, by a t factor of 0.0f-1.0f.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::slerp"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_slerp/",
			"md": "https://sh4zam.com/api/quat/shz_quat_slerp.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#afe7b0e4b99883f73b4c022ee5180b4e1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L128"
		},
		{
			"name": "shz_quat_squad",
			"kind": "function",
			"module": "quat",
			"section": "Initialization",
			"header": "sh4zam/shz_quat.h",
			"line": 143,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_squad(shz_quat_t q1, shz_quat_t q2, shz_quat_t s1, shz_quat_t s2, float t) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q1",
					"type": "shz_quat_t",
					"doc": "Start quaternion."
				},
				{
					"name": "q2",
					"type": "shz_quat_t",
					"doc": "End quaternion."
				},
				{
					"name": "s1",
					"type": "shz_quat_t",
					"doc": "Inner control point for `q1` (typically computed from surrounding keyframes)."
				},
				{
					"name": "s2",
					"type": "shz_quat_t",
					"doc": "Inner control point for `q2` (typically computed from surrounding keyframes)."
				},
				{
					"name": "t",
					"type": "float",
					"doc": "Interpolation factor in \\[0, 1\\]."
				}
			],
			"brief": "Evaluates a smooth cubic spherical interpolation (SQUAD) at parameter t.",
			"detail": "",
			"returns": "Resulting interpolated quaternion",
			"notes": [
				"SQUAD(q1, q2, s1, s2, t) = slerp(slerp(q1, q2, t), slerp(s1, s2, t), 2t(1-t))"
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::squad"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_squad/",
			"md": "https://sh4zam.com/api/quat/shz_quat_squad.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aedde93018cf98200e8f39715d88ab89b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L143"
		},
		{
			"name": "shz_quat_angle",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 153,
			"signature": "SHZ_INLINE float shz_quat_angle(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle of rotation from the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::angle"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_angle/",
			"md": "https://sh4zam.com/api/quat/shz_quat_angle.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a4bbf009f892459d41c979a740d458d1a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L153"
		},
		{
			"name": "shz_quat_axis",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 156,
			"signature": "SHZ_INLINE shz_vec3_t shz_quat_axis(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the axis of rotation from the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::axis"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_axis/",
			"md": "https://sh4zam.com/api/quat/shz_quat_axis.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a5a57ee89577bdd42cd2c962b0c2e7517",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L156"
		},
		{
			"name": "shz_quat_angle_x",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 159,
			"signature": "SHZ_INLINE float shz_quat_angle_x(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle of rotation the quaternion represents about the X axis in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::angle_x"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_angle_x/",
			"md": "https://sh4zam.com/api/quat/shz_quat_angle_x.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a50713feb1a40e96b655d7538c3e28fdb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L159"
		},
		{
			"name": "shz_quat_angle_y",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 162,
			"signature": "SHZ_INLINE float shz_quat_angle_y(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle of rotation the quaternion represents about the Y axis in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::angle_y"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_angle_y/",
			"md": "https://sh4zam.com/api/quat/shz_quat_angle_y.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a515446f5e77549cc4dab654388881925",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L162"
		},
		{
			"name": "shz_quat_angle_z",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 165,
			"signature": "SHZ_INLINE float shz_quat_angle_z(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle of rotation the quaternion represents about the Z axis in radians.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::angle_z"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_angle_z/",
			"md": "https://sh4zam.com/api/quat/shz_quat_angle_z.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a7a1a8a45e09e286026f0a0bd4b857e87",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L165"
		},
		{
			"name": "shz_quat_to_axis_angle",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 168,
			"signature": "SHZ_INLINE void shz_quat_to_axis_angle(shz_quat_t q, shz_vec3_t* vec, float* angle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "vec",
					"type": "shz_vec3_t *",
					"doc": ""
				},
				{
					"name": "angle",
					"type": "float *",
					"doc": ""
				}
			],
			"brief": "Returns both the axis and angle of rotation simultaneously (faster if both are needed) from the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::to_axis_angle"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_to_axis_angle/",
			"md": "https://sh4zam.com/api/quat/shz_quat_to_axis_angle.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#abfd09d45b4bdaaaab9f214f65ff5edc6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L168"
		},
		{
			"name": "shz_quat_to_angles_xyz",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 171,
			"signature": "SHZ_INLINE shz_vec3_t shz_quat_to_angles_xyz(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the roll, pitch, and yaw angles of rotation represented by the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::to_angles_xyz"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_to_angles_xyz/",
			"md": "https://sh4zam.com/api/quat/shz_quat_to_angles_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a1ccc82ab41e710f5a8475daab0890e80",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L171"
		},
		{
			"name": "shz_quat_magnitude_sqr",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 174,
			"signature": "SHZ_INLINE float shz_quat_magnitude_sqr(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared magnitude of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::magnitude_sqr"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_magnitude_sqr/",
			"md": "https://sh4zam.com/api/quat/shz_quat_magnitude_sqr.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a33d7f67203005dd0d92a847fd8ddb21f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L174"
		},
		{
			"name": "shz_quat_magnitude",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 177,
			"signature": "SHZ_INLINE float shz_quat_magnitude(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the magnitude of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::magnitude"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_magnitude/",
			"md": "https://sh4zam.com/api/quat/shz_quat_magnitude.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a6c85e5563d8d1760f1caae75450dc7d3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L177"
		},
		{
			"name": "shz_quat_magnitude_inv",
			"kind": "function",
			"module": "quat",
			"section": "Properties",
			"header": "sh4zam/shz_quat.h",
			"line": 180,
			"signature": "SHZ_INLINE float shz_quat_magnitude_inv(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the inverse magnitude of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::magnitude_inv"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_magnitude_inv/",
			"md": "https://sh4zam.com/api/quat/shz_quat_magnitude_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aaa68b0845a393595448c46c3c08202d0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L180"
		},
		{
			"name": "shz_quat_normalize",
			"kind": "function",
			"module": "quat",
			"section": "Modifiers",
			"header": "sh4zam/shz_quat.h",
			"line": 190,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_normalize(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the normalized form of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::normalized"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_normalize/",
			"md": "https://sh4zam.com/api/quat/shz_quat_normalize.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#ab542d2b8a7777ccead5adea8836c3987",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L190"
		},
		{
			"name": "shz_quat_normalize_safe",
			"kind": "function",
			"module": "quat",
			"section": "Modifiers",
			"header": "sh4zam/shz_quat.h",
			"line": 196,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_normalize_safe(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "SAFELY returns the normalized form of the given quaternion.",
			"detail": "Returns the identity quaternion when magnitude is 0.0f.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::normalized_safe"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_normalize_safe/",
			"md": "https://sh4zam.com/api/quat/shz_quat_normalize_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a9ed3c47f680795c13b272dfc5c45e93a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L196"
		},
		{
			"name": "shz_quat_conjugate",
			"kind": "function",
			"module": "quat",
			"section": "Modifiers",
			"header": "sh4zam/shz_quat.h",
			"line": 199,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_conjugate(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the conjugate of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::conjugated"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_conjugate/",
			"md": "https://sh4zam.com/api/quat/shz_quat_conjugate.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a1d05fc9ea57d8aea6819d7f6ac753355",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L199"
		},
		{
			"name": "shz_quat_inv",
			"kind": "function",
			"module": "quat",
			"section": "Modifiers",
			"header": "sh4zam/shz_quat.h",
			"line": 202,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_inv(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the inverse of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::inverse"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_inv/",
			"md": "https://sh4zam.com/api/quat/shz_quat_inv.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aa8d105774d6cfd434894ade431d976cb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L202"
		},
		{
			"name": "shz_quat_neg",
			"kind": "function",
			"module": "quat",
			"section": "Modifiers",
			"header": "sh4zam/shz_quat.h",
			"line": 205,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_neg(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the negation of the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::negated"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_neg/",
			"md": "https://sh4zam.com/api/quat/shz_quat_neg.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#aea7ecb11028b09351597a65db31f125f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L205"
		},
		{
			"name": "shz_quat_add",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 215,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_add(shz_quat_t q, shz_quat_t p) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "p",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion produced from adding each component of the given quaternions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::add"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_add/",
			"md": "https://sh4zam.com/api/quat/shz_quat_add.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#ac578967ed6a1408a0ff97ee0904e2ad3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L215"
		},
		{
			"name": "shz_quat_sub",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 218,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_sub(shz_quat_t q, shz_quat_t p) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "p",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the quaternion produced from subtracting each component of quaternion p from quaterion q.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::sub"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_sub/",
			"md": "https://sh4zam.com/api/quat/shz_quat_sub.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#ad4f8efb3667bbe7ef813c8991994651e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L218"
		},
		{
			"name": "shz_quat_scale",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 221,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_scale(shz_quat_t q, float f) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "f",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Scales the components of the given quaternion by the given factor.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::scaled"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_scale/",
			"md": "https://sh4zam.com/api/quat/shz_quat_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a3636b1b53ac7bfdfacf40b5b4fadf6c1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L221"
		},
		{
			"name": "shz_quat_mult",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 224,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_mult(shz_quat_t q1, shz_quat_t q2) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q1",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "q2",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Multiplies the two quaternions, returning the result as a new quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::mult"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_mult/",
			"md": "https://sh4zam.com/api/quat/shz_quat_mult.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#abb102a37c6b721c9b937bdad2ee7a4f1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L224"
		},
		{
			"name": "shz_quat_div",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 227,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_div(shz_quat_t q, shz_quat_t p) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "p",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Divides quaternion p by quaternion q (multiplying by its inverse), returning the resulting quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::div"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_div/",
			"md": "https://sh4zam.com/api/quat/shz_quat_div.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a84e5e8bc44d4182404970ab0702161de",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L227"
		},
		{
			"name": "shz_quat_dot",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 230,
			"signature": "SHZ_INLINE float shz_quat_dot(shz_quat_t q1, shz_quat_t q2) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "q1",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "q2",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the dot product of the two quaternions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/quat/shz_quat_dot/",
			"md": "https://sh4zam.com/api/quat/shz_quat_dot.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a3a5ea259afccf2c4af8d356dde35da1e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L230"
		},
		{
			"name": "shz_quat_dot2",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 233,
			"signature": "SHZ_INLINE shz_vec2_t shz_quat_dot2(shz_quat_t l, shz_quat_t r1, shz_quat_t r2) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "l",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the two dot products taken between the l quaternion and the r1 and r2 quaternions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/quat/shz_quat_dot2/",
			"md": "https://sh4zam.com/api/quat/shz_quat_dot2.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a343b9185e6e69295b2a27b1367679bdd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L233"
		},
		{
			"name": "shz_quat_dot3",
			"kind": "function",
			"module": "quat",
			"section": "Arithmetic",
			"header": "sh4zam/shz_quat.h",
			"line": 236,
			"signature": "SHZ_INLINE shz_vec3_t shz_quat_dot3(shz_quat_t l, shz_quat_t r1, shz_quat_t r2, shz_quat_t r3) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "l",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "r1",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the two dot products taken between the l quaternion and the r1, r2, and r3 quaternions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/quat/shz_quat_dot3/",
			"md": "https://sh4zam.com/api/quat/shz_quat_dot3.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a3abedb3759823a4a9e480f941cd9e298",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L236"
		},
		{
			"name": "shz_quat_angle_between",
			"kind": "function",
			"module": "quat",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_quat.h",
			"line": 246,
			"signature": "SHZ_INLINE float shz_quat_angle_between(shz_quat_t q, shz_quat_t p) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "p",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Returns the angle in radians between the rotations represented by quaternions q and p.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::angle_between"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_angle_between/",
			"md": "https://sh4zam.com/api/quat/shz_quat_angle_between.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a8aa7d561958da3930cd3b20838efdeb2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L246"
		},
		{
			"name": "shz_quat_rotate_towards",
			"kind": "function",
			"module": "quat",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_quat.h",
			"line": 252,
			"signature": "SHZ_INLINE shz_quat_t shz_quat_rotate_towards(shz_quat_t from, shz_quat_t to, float max_angle) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "from",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "to",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "max_angle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates quaternion from towards quaternion to by at most max_angle radians.",
			"detail": "",
			"returns": "",
			"notes": [
				"Returns to if the angle between them is already less than max_angle."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::rotate_towards"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_rotate_towards/",
			"md": "https://sh4zam.com/api/quat/shz_quat_rotate_towards.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a387630a0fad0f169de64df5df64c10b8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L252"
		},
		{
			"name": "shz_quat_transform_vec3",
			"kind": "function",
			"module": "quat",
			"section": "Transformations",
			"header": "sh4zam/shz_quat.h",
			"line": 270,
			"signature": "SHZ_INLINE shz_vec3_t shz_quat_transform_vec3(shz_quat_t q, shz_vec3_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Rotates a vector by the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine is meant for one-off rotations of a single vector by a single quaternion. If you plan to rotate multiple vectors by the same quaternion, you should use the XMTRX API to apply the quaternion as a rotation matrix."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_apply_rotation_quat"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::quat::transform"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_transform_vec3/",
			"md": "https://sh4zam.com/api/quat/shz_quat_transform_vec3.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a8e547783f6561f9639928a7f19bc53c0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L270"
		},
		{
			"name": "shz_quat_t",
			"kind": "type",
			"module": "quat",
			"section": "Types",
			"header": "sh4zam/shz_quat.h",
			"line": 31,
			"signature": "typedef struct shz_quat {\n    union {           //!< Convenience anonymous union between named and array-indexed components.\n        struct {      //!< Anonymous structure with named components.\n            float w;             //!< W or scalar component/real part of quaternion.\n            union {   //!< Convenience anonymous union for vector components.\n                struct {\n                    float x;     //!< X component of axis of rotation (imaginary)\n                    float y;     //!< Y component of axis of rotation (imaginary)\n                    float z;     //!< Z component of axis of rotation (imaginary)\n                };\n                shz_vec3_t axis; //!< 3D vector representing axis of rotation\n            };\n        };\n        float e[4];              //!< Array-indexed components.\n    };\n} shz_quat_t;",
			"fields": [
				{
					"name": "e",
					"type": "float[4]",
					"doc": "Array-indexed components."
				},
				{
					"name": "w",
					"type": "float",
					"doc": "\\< Anonymous structure with named components."
				},
				{
					"name": "axis",
					"type": "shz_vec3_t",
					"doc": "3D vector representing axis of rotation"
				},
				{
					"name": "x",
					"type": "float",
					"doc": "X component of axis of rotation (imaginary)."
				},
				{
					"name": "y",
					"type": "float",
					"doc": "Y component of axis of rotation (imaginary)."
				},
				{
					"name": "z",
					"type": "float",
					"doc": "Z component of axis of rotation (imaginary)."
				}
			],
			"brief": "Represents a 3D quaternion.",
			"detail": "Quaternions are a mathematical structure representing a rotation about a single arbitrary axis.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::quat"
			],
			"url": "https://sh4zam.com/api/quat/shz_quat_t/",
			"md": "https://sh4zam.com/api/quat/shz_quat_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__quat__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L31"
		},
		{
			"name": "shz_quat",
			"kind": "typedef",
			"module": "quat",
			"section": "Types",
			"header": "sh4zam/shz_quat.h",
			"line": 49,
			"signature": "typedef shz_quat_t shz_quat;",
			"brief": "Alternate shz_quat_t C typedef for those who hate POSIX style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/quat/shz_quat/",
			"md": "https://sh4zam.com/api/quat/shz_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__quat_8h.html#a0519d7ecbff2b6b89d499852b5b98d0f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_quat.h#L49"
		},
		{
			"name": "shz_mat4x4_init_identity",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 91,
			"signature": "SHZ_INLINE void shz_mat4x4_init_identity(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to the 4x4 identity matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_identity",
				"shz::mat4x4::init_identity_safe"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_identity/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_identity.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab77df3925a1d4352785d99407bce7bb6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L91"
		},
		{
			"name": "shz_mat4x4_init_identity_safe",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 104,
			"signature": "SHZ_INLINE void shz_mat4x4_init_identity_safe(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Safely initializes the given matrix to the 4x4 identity matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [
				"shz_mat4x4_init_identity"
			],
			"documented": true,
			"deprecated": "shz_mat4x4_init_identity() is already safe now by default. This routine simply calls directly into it and should not be used.",
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_identity_safe/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_identity_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#af81a8eb7e45b1fc985a9ad6b1df4bb50",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L104"
		},
		{
			"name": "shz_mat4x4_init_zero",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 110,
			"signature": "SHZ_INLINE void shz_mat4x4_init_zero(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix with all 0s for its element values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_zero"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_zero/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_zero.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a47a04138c088a90e947838abd22b4452",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L110"
		},
		{
			"name": "shz_mat4x4_init_one",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 116,
			"signature": "SHZ_INLINE void shz_mat4x4_init_one(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix with all 1s for its element values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_one"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_one/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_one.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a5984103ee27bbfdb59d4f3fecb88222e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L116"
		},
		{
			"name": "shz_mat4x4_init_fill",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 122,
			"signature": "SHZ_INLINE void shz_mat4x4_init_fill(shz_mat4x4_t* mat, float value) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "value",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix with all elements assigned to the given value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_fill"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_fill/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_fill.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a0ef30584f1199530396446599870d602",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L122"
		},
		{
			"name": "shz_mat4x4_init_translation",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 128,
			"signature": "SHZ_INLINE void shz_mat4x4_init_translation(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D translation matrix with the given coordinates.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_translation"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_translation/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a65f5c31fe9f4d03651042e7b4baeb50f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L128"
		},
		{
			"name": "shz_mat4x4_init_scale",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 134,
			"signature": "SHZ_INLINE void shz_mat4x4_init_scale(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D scaling matrix with the given dimensions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_scale"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_scale/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a4a9e09dc2d5158569eba014d11f686d0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L134"
		},
		{
			"name": "shz_mat4x4_init_rotation_x",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 140,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_x(shz_mat4x4_t* mat, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix by xAngle radians over the X-axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_x"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_x/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_x.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a404863e29ae870a0452aaad091e704e1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L140"
		},
		{
			"name": "shz_mat4x4_init_rotation_y",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 146,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_y(shz_mat4x4_t* mat, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix by yAngle radians over the Y-axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_y"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_y/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_y.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a871f04068b8f0c8d820a2c93046432f9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L146"
		},
		{
			"name": "shz_mat4x4_init_rotation_z",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 152,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_z(shz_mat4x4_t* mat, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix by zAngle radians over the Z-axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobber XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_z"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_z/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_z.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a5a358dfcae212cb8995e1ac24507dc3c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L152"
		},
		{
			"name": "shz_mat4x4_init_rotation_xyz",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 158,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_xyz(shz_mat4x4_t* mat, float xAngle, float yAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix from the intrinsic rotation created by the given Tait-Bryan X-Y-Z angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_xyz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_xyz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a1274699b21e2c2431257f4b3829ec2d7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L158"
		},
		{
			"name": "shz_mat4x4_init_rotation_zyx",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 164,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_zyx(shz_mat4x4_t* mat, float zAngle, float yAngle, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix from the intrinsic rotation created by the given Tait-Bryan Z-Y-X angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_zyx"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_zyx/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a4ca6470a0ae073185b5e6bb07b3cfa8d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L164"
		},
		{
			"name": "shz_mat4x4_init_rotation_zxy",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 170,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_zxy(shz_mat4x4_t* mat, float zAngle, float xAngle, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix from the intrinsic rotation created by the given Tait-Bryan Z-X-Y angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_zxy"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_zxy/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ad40e4dc25b46e20a8ef213c74febeeef",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L170"
		},
		{
			"name": "shz_mat4x4_init_rotation_yxz",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 176,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_yxz(shz_mat4x4_t* mat, float yAngle, float xAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix from the intrinsic rotation created by the given Tait-Bryan Y-X-Z angles.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_yxz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_yxz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#adb236c98832f875f48e5169499ca9d90",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L176"
		},
		{
			"name": "shz_mat4x4_init_rotation",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 187,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation(shz_mat4x4_t* mat, float radians, float xAxis, float yAxis, float zAxis) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAxis",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given 4x4 matrix to a 3D rotation matrix of angle radians about the vector with the given components.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine works similarly to glRotatef() applied to an identitiy matrix. The given axis will automatically be normalized internally."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [
				"shz_mat4x4_init_rotation_dir"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ad8f37435b73ab74b839eab323806a057",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L187"
		},
		{
			"name": "shz_mat4x4_init_rotation_dir",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 198,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_dir(shz_mat4x4_t* mat, float angle, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "angle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given 4x4 matrix to contain a 3D rotation matrix of angle radians about the given direction.",
			"detail": "This is a faster version of `shz_mat4x4_init_rotation()` or glRotatef() which requires being passed a unit vector for the rotation axis.",
			"returns": "",
			"notes": [],
			"warnings": [
				"The vector components representing the axis of rotation must be prenormalized!"
			],
			"sa": [
				"shz_mat4x4_init_rotation"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_rotation_dir"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_dir/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_dir.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aaf606115d6434673da8daba88e8348fb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L198"
		},
		{
			"name": "shz_mat4x4_init_rotation_quat",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 204,
			"signature": "SHZ_INLINE void shz_mat4x4_init_rotation_quat(shz_mat4x4_t* m, shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a 3D rotation matrix with its orientation given by a quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_quat/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_rotation_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ad1277b246f24d319f59da46b977db33b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L204"
		},
		{
			"name": "shz_mat4x4_init_diagonal",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 210,
			"signature": "SHZ_INLINE void shz_mat4x4_init_diagonal(shz_mat4x4_t* mat, float x, float y, float z, float w) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a diagonal matrix with the given 4 values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_diagonal"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_diagonal/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_diagonal.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a6d56ca8dda72e53fc2884a79a7da5dec",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L210"
		},
		{
			"name": "shz_mat4x4_init_upper_triangular",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 216,
			"signature": "SHZ_INLINE void shz_mat4x4_init_upper_triangular(shz_mat4x4_t* mat, float col1, shz_vec2_t col2, shz_vec3_t col3, shz_vec4_t col4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "col1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "col2",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "col3",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "col4",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to an upper triangular matrix whose nonzero entries have the given value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_upper_triangular"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_upper_triangular/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_upper_triangular.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ac8bdcfb75a811944986413cebf6468cc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L216"
		},
		{
			"name": "shz_mat4x4_init_lower_triangular",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 222,
			"signature": "SHZ_INLINE void shz_mat4x4_init_lower_triangular(shz_mat4x4_t* mat, shz_vec4_t col1, shz_vec3_t col2, shz_vec2_t col3, float col4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "col1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "col2",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "col3",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "col4",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a lower triangular matrix whose nonzero entries have the given value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_lower_triangular"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_lower_triangular/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_lower_triangular.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ad74f05c39674f2601b1343abbe77c669",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L222"
		},
		{
			"name": "shz_mat4x4_init_symmetric_skew",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 232,
			"signature": "SHZ_INLINE void shz_mat4x4_init_symmetric_skew(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to be the symmetric skew of the given 3D vector components.",
			"detail": "",
			"returns": "",
			"notes": [
				"This can be useful for batching the cross-product operation against a constant vector. For one-offs, prefer shz_vec3_cross()."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_symmetric_skew"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_symmetric_skew/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_symmetric_skew.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ae6c493590fcafd1ca5699c6bbf83875c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L232"
		},
		{
			"name": "shz_mat4x4_init_outer_product",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 238,
			"signature": "SHZ_INLINE void shz_mat4x4_init_outer_product(shz_mat4x4_t* mat, shz_vec4_t v1, shz_vec4_t v2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "v1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "v2",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to be the result from taking the outer product of the two given 4D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_outer_product"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_outer_product/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_outer_product.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a4933cc3758ec95fa020f7214d985aaa3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L238"
		},
		{
			"name": "shz_mat4x4_init_permutation_wxyz",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 244,
			"signature": "SHZ_INLINE void shz_mat4x4_init_permutation_wxyz(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Initializes the matrix to to a permutation matrix, which reorders the components of transformed vectors to be in WXYZ order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_permutation_wxyz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_permutation_wxyz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_permutation_wxyz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a6d518688c8f2e9ec15f6cae2126f57ee",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L244"
		},
		{
			"name": "shz_mat4x4_init_permutation_yzwx",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 250,
			"signature": "SHZ_INLINE void shz_mat4x4_init_permutation_yzwx(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Initializes the matrix to to a permutation matrix, which reorders the components of transformed vectors to be in YZWX order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_permutation_yzwx"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_permutation_yzwx/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_permutation_yzwx.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a017d6229ec65b759e62ac6822f0109c2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L250"
		},
		{
			"name": "shz_mat4x4_init_screen",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 256,
			"signature": "SHZ_INLINE void shz_mat4x4_init_screen(shz_mat4x4_t* mat, float width, float height) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "width",
					"type": "float",
					"doc": ""
				},
				{
					"name": "height",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to the viewport matrix with the given dimenions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_screen"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_screen/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_screen.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a75a1cc0b536194fabd0be4cdb8d0b079",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L256"
		},
		{
			"name": "shz_mat4x4_init_lookat",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 262,
			"signature": "SHZ_INLINE void shz_mat4x4_init_lookat(shz_mat4x4_t* mat, shz_vec3_t eye, shz_vec3_t center, shz_vec3_t up) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "eye",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "center",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a \"lookAt\" view matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_lookat"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_lookat/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_lookat.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a4061891e20b998321a1c1476a5261ba9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L262"
		},
		{
			"name": "shz_mat4x4_init_ortho",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 268,
			"signature": "SHZ_INLINE void shz_mat4x4_init_ortho(shz_mat4x4_t* mat, float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to an orthographic projection matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_ortho"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_ortho/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_ortho.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ac6c9722c404e397bb9a1ebdfd08b84cd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L268"
		},
		{
			"name": "shz_mat4x4_init_frustum",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 274,
			"signature": "SHZ_INLINE void shz_mat4x4_init_frustum(shz_mat4x4_t* mat, float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a frustum projection matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_frustum"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_frustum/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_frustum.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a5e5208cdd046659e96aed9501305c898",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L274"
		},
		{
			"name": "shz_mat4x4_init_perspective",
			"kind": "function",
			"module": "matrix",
			"section": "Initialization",
			"header": "sh4zam/shz_matrix.h",
			"line": 280,
			"signature": "SHZ_INLINE void shz_mat4x4_init_perspective(shz_mat4x4_t* mat, float fov, float aspect, float znear) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "fov",
					"type": "float",
					"doc": ""
				},
				{
					"name": "aspect",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes the given matrix to a perspective projection matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::init_perspective"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_init_perspective/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_init_perspective.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aca58e36ad98493c76448ee1b6e98cdef",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L280"
		},
		{
			"name": "shz_mat4x4_decompose",
			"kind": "function",
			"module": "matrix",
			"section": "Decomposition",
			"header": "sh4zam/shz_matrix.h",
			"line": 295,
			"signature": "void shz_mat4x4_decompose(const shz_mat4x4_t* mat, shz_vec3_t* translation, shz_quat_t* rotation, shz_vec3_t* scale) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "translation",
					"type": "shz_vec3_t *",
					"doc": ""
				},
				{
					"name": "rotation",
					"type": "shz_quat_t *",
					"doc": ""
				},
				{
					"name": "scale",
					"type": "shz_vec3_t *",
					"doc": ""
				}
			],
			"brief": "Decomposes a 4x4 transform matrix into translation, rotation, and scale.",
			"detail": "",
			"returns": "",
			"notes": [
				"Any output pointer may be NULL to skip that component."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::decompose"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_decompose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_decompose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a52e9e5bf7f9b63a9298fadf600c98c77",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L295"
		},
		{
			"name": "shz_mat4x4_row",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 308,
			"signature": "SHZ_INLINE shz_vec4_t shz_mat4x4_row(const shz_mat4x4_t* mat, size_t row) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "row",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Extracts the row index as a 4D row vector from the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::row"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_row/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_row.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a815ee0eb6dcd58e6781f9e9ea2e4215d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L308"
		},
		{
			"name": "shz_mat4x4_col",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 311,
			"signature": "SHZ_INLINE shz_vec4_t shz_mat4x4_col(const shz_mat4x4_t* mat, size_t col) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "col",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Extracts the col index as a 4D column vector from the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::col"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_col/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_col.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#af451c262eaa776a0357d10ff2136e81b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L311"
		},
		{
			"name": "shz_mat4x4_get_translation",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 314,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat4x4_get_translation(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Returns the translational components from the 4th column as a 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::get_translation"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_get_translation/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_get_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a93ca37bedd6f26bd250fb7f3f9b62f61",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L314"
		},
		{
			"name": "shz_mat4x4_get_scale",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 321,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat4x4_get_scale(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Exracts the 3D scale factors from the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine assumes mat is a standard TRS-style transform matrix, without shearing or reflection."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::get_scale"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_get_scale/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_get_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ae19709137b726e36a2404bd2830b32f4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L321"
		},
		{
			"name": "shz_mat4x4_determinant",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 324,
			"signature": "SHZ_INLINE float shz_mat4x4_determinant(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Returns the determinant of the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::determinant"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_determinant/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_determinant.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab2b378de643a511805e2c1dd44c46cfc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L324"
		},
		{
			"name": "shz_mat4x4_trace",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 327,
			"signature": "SHZ_INLINE float shz_mat4x4_trace(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Returns the trace of the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::trace"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_trace/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_trace.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a006be8457cf6309bb5282a3c98e71b17",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L327"
		},
		{
			"name": "shz_mat4x4_3x3",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 330,
			"signature": "SHZ_INLINE void shz_mat4x4_3x3(const shz_mat4x4_t* mat4, shz_mat3x3_t* mat3) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat4",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "mat3",
					"type": "shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Extracts the top-left 3x3 of the given 4D matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a7c9b57053783d13c3804c387c4c6a844",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L330"
		},
		{
			"name": "shz_mat4x4_3x3_inverse_unscaled",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 333,
			"signature": "SHZ_INLINE void shz_mat4x4_3x3_inverse_unscaled(const shz_mat4x4_t* mat4, shz_mat3x3_t* invmat3) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat4",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "invmat3",
					"type": "shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Extracts and inverts the top-level, unscaled 3x3 of the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3_inverse_unscaled/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3_inverse_unscaled.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab76186f4bdcf84266c9d2996f9dbef76",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L333"
		},
		{
			"name": "shz_mat4x4_3x3_inverse",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 336,
			"signature": "SHZ_INLINE void shz_mat4x4_3x3_inverse(const shz_mat4x4_t* mat4, shz_mat3x3_t* invmat3) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat4",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "invmat3",
					"type": "shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Extracts and inverts the top-level 3x3 (which may be scaled) of the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3_inverse/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3_inverse.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a1a2c1f7501dc8046fd16a8924c7674b1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L336"
		},
		{
			"name": "shz_mat4x4_3x3_determinant",
			"kind": "function",
			"module": "matrix",
			"section": "Getting",
			"header": "sh4zam/shz_matrix.h",
			"line": 339,
			"signature": "SHZ_INLINE float shz_mat4x4_3x3_determinant(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Returns the determinant of the given 4x4 matrix's internal top-level 3x3 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3_determinant/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_3x3_determinant.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a0c6f50c2a963dcef436ae426c0013916",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L339"
		},
		{
			"name": "shz_mat4x4_set_row",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 349,
			"signature": "SHZ_INLINE void shz_mat4x4_set_row(shz_mat4x4_t* mat, size_t row, shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "row",
					"type": "size_t",
					"doc": ""
				},
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Sets the values of mat at the given row to those of the 4D vector, vec.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::set_row"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_set_row/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_set_row.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a5b9acf26286aada26fd062de9538165b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L349"
		},
		{
			"name": "shz_mat4x4_set_col",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 352,
			"signature": "SHZ_INLINE void shz_mat4x4_set_col(shz_mat4x4_t* mat, size_t col, shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "col",
					"type": "size_t",
					"doc": ""
				},
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Sets the values of mat at the given col to those of the 4D vector, vec.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::set_col"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_set_col/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_set_col.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ace6a4e8445556121e9ddfa8334d257e8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L352"
		},
		{
			"name": "shz_mat4x4_swap_rows",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 355,
			"signature": "SHZ_INLINE void shz_mat4x4_swap_rows(shz_mat4x4_t* mat, size_t row1, size_t row2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "row1",
					"type": "size_t",
					"doc": ""
				},
				{
					"name": "row2",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Swaps the 4D row vectors located at row1 and row2 within mat.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::swap_rows"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_swap_rows/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_swap_rows.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab9ee12f35be60d03ee575bf31a7265f6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L355"
		},
		{
			"name": "shz_mat4x4_swap_cols",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 358,
			"signature": "SHZ_INLINE void shz_mat4x4_swap_cols(shz_mat4x4_t* mat, size_t col1, size_t col2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "col1",
					"type": "size_t",
					"doc": ""
				},
				{
					"name": "col2",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Swaps the 4D column vectors located at col1 and col2 within mat.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::swap_cols"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_swap_cols/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_swap_cols.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#abbd623d050422509f88f0beb3b37054c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L358"
		},
		{
			"name": "shz_mat4x4_set_translation",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 361,
			"signature": "SHZ_INLINE void shz_mat4x4_set_translation(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Assigns only the 3D translation-related elements of the given matrix to the given values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::set_translation"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_set_translation/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_set_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aeab95cdf2d3b72343db1e85810692fba",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L361"
		},
		{
			"name": "shz_mat4x4_set_scale",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 364,
			"signature": "SHZ_INLINE void shz_mat4x4_set_scale(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Assigns only the 3D scale-related elements of the given matrix to the given values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::set_scale"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_set_scale/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_set_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a2320a60b16d956b73714dfe20420104f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L364"
		},
		{
			"name": "shz_mat4x4_set_rotation_quat",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 367,
			"signature": "SHZ_INLINE void shz_mat4x4_set_rotation_quat(shz_mat4x4_t* m, shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Sets just the rotational component of the matrix to the orientation given by a quaternion, keeping the other elements in-tact.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::set_rotation"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_set_rotation_quat/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_set_rotation_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a0c1b21bd56c51a48e096572a1acbfa6b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L367"
		},
		{
			"name": "shz_mat4x4_set_diagonal",
			"kind": "function",
			"module": "matrix",
			"section": "Setting",
			"header": "sh4zam/shz_matrix.h",
			"line": 370,
			"signature": "SHZ_INLINE void shz_mat4x4_set_diagonal(shz_mat4x4_t* mat, float x, float y, float z, float w) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Assigns only the 4 elements along the diagonal of the given matrix to the given values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::set_diagonal"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_set_diagonal/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_set_diagonal.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a396779252e0d47fa3bf1f3f0f677b2d5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L370"
		},
		{
			"name": "shz_mat4x4_apply",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 383,
			"signature": "SHZ_INLINE void shz_mat4x4_apply(shz_mat4x4_t* dst, const shz_mat4x4_t* src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the src 4x4 matrix onto the dst 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a8d3aaa10885f1c28bcc12bb32d30f775",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L383"
		},
		{
			"name": "shz_mat4x4_apply_unaligned",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 389,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_unaligned(shz_mat4x4_t* dst, const float src[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the unaligned src 4x4 matrix onto the dst 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_unaligned/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_unaligned.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a8ca2afc79f3c483e1ed62382c205fd6d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L389"
		},
		{
			"name": "shz_mat4x4_apply_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 395,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_transpose(shz_mat4x4_t* dst, const shz_mat4x4_t* src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the transposed src 4x4 matrix onto the dst 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a972f60ea24c5df819859f7372244af9a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L395"
		},
		{
			"name": "shz_mat4x4_apply_transpose_unaligned",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 401,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_transpose_unaligned(shz_mat4x4_t* dst, const float src[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the transposed unaligned src 4x4 matrix onto the dst 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_transpose_unaligned/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_transpose_unaligned.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a205c86bfe0dba2e433f71a79037214ca",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L401"
		},
		{
			"name": "shz_mat4x4_apply_translation",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 407,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_translation(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Adds the given 3D vector components to the translational values of the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine does not use XMTRX."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_translation"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_translation/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#acd9547c1611699d702bd262d958d10e3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L407"
		},
		{
			"name": "shz_mat4x4_apply_scale",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 413,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_scale(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the scale-related elements of the given matrix by the given 3D components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_scale"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_scale/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aa1b896bd0232ad93f9b55c0c66bd381a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L413"
		},
		{
			"name": "shz_mat4x4_apply_rotation_x",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 419,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_x(shz_mat4x4_t* mat, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a rotation matrix by xAngle radians about the X-axis onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_x"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_x/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_x.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a0c3956c31ff3e30859ee6b491da8a528",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L419"
		},
		{
			"name": "shz_mat4x4_apply_rotation_y",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 425,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_y(shz_mat4x4_t* mat, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a rotation matrix by yAngle radians about the Y-axis onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_y"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_y/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_y.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a3b5eaba34623493de75a1b0592359fcb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L425"
		},
		{
			"name": "shz_mat4x4_apply_rotation_z",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 431,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_z(shz_mat4x4_t* mat, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a rotation matrix by zAngle radians about the Z-axis onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_z"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_z/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_z.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a077c5527667ea2de6eb5df129e13dbcc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L431"
		},
		{
			"name": "shz_mat4x4_apply_rotation_xyz",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 439,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_xyz(shz_mat4x4_t* mat, float xAngle, float yAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given transform matrix about the X axis, then the Y axis, then the Z axis by the given angles in radians.",
			"detail": "Multiplies and accumulates the given matrix with the 3D rotation matrix formed from the intrinsic rotation created by the given Tait-Bryan X-Y-Z angles.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_xyz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_xyz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a447e21fec80be0d6a0e1290da85fe307",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L439"
		},
		{
			"name": "shz_mat4x4_apply_rotation_zyx",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 447,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_zyx(shz_mat4x4_t* mat, float zAngle, float yAngle, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given transform matrix about the Z axis, then the Y axis, then the X axis by the given angles in radians.",
			"detail": "Multiplies and accumulates the given matrix with the 3D rotation matrix formed from the intrinsic rotation created by the given Tait-Bryan Z-Y-X angles.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_zyx"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_zyx/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a60d0f015d7bf07c11bb7a7861c2a52e7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L447"
		},
		{
			"name": "shz_mat4x4_apply_rotation_zxy",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 455,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_zxy(shz_mat4x4_t* mat, float zAngle, float xAngle, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given transform matrix about the Z axis, then the X axis, then the Y axis by the given angles in radians.",
			"detail": "Multiplies and accumulates the given matrix with the 3D rotation matrix formed from the intrinsic rotation created by the given Tait-Bryan Z-Y-X angles.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_zxy"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_zxy/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a1ef8e206a8bf8e6c24c988fcd4e74ea8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L455"
		},
		{
			"name": "shz_mat4x4_apply_rotation_yxz",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 463,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_yxz(shz_mat4x4_t* mat, float yAngle, float xAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given transform matrix about the Y axis, then the X axis, then the Z axis by the given angles in radians.",
			"detail": "Multiplies and accumulates the given matrix with the 3D rotation matrix formed from the intrinsic rotation created by the given Tait-Bryan Y-X-Z angles.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_rotation_yxz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_yxz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#af15dbf23c3ab939b1b7d0f3c8c99f065",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L463"
		},
		{
			"name": "shz_mat4x4_apply_rotation",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 471,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation(shz_mat4x4_t* mat, float angle, float xAxis, float yAxis, float zAxis) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "angle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAxis",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Rotates the given transform matrix about the arbitrary axis given by a 3D direction vector and angle of rotation in radians.",
			"detail": "Multiplies and accumulates the given matrix with the 3D rotation matrix formed from the intrinsic rotation created by the given Tait-Bryan Z-Y-X angles.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a3b2438d2e37bebe320260097ab734f6e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L471"
		},
		{
			"name": "shz_mat4x4_apply_rotation_quat",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 477,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_rotation_quat(shz_mat4x4_t* m, shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given matrix with a rotation matrix whose orientation is given by a quaternion.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine clobbers XMTRX."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_quat/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_rotation_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#adacd996d1bff2401af7882a4c2ce78c4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L477"
		},
		{
			"name": "shz_mat4x4_apply_lookat",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 483,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_lookat(shz_mat4x4_t* m, shz_vec3_t pos, shz_vec3_t target, shz_vec3_t up) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "pos",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "target",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Applies the 3D \"lookAt\" matrix constructed with the given vector components onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_lookat"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_lookat/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_lookat.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a7dfe43e24020d52ad305a5ce3288d6a3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L483"
		},
		{
			"name": "shz_mat4x4_apply_ortho",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 489,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_ortho(shz_mat4x4_t* m, float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the ortho matrix constructed from the given values onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_ortho"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_ortho/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_ortho.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aa46fcbbcfd487fbf8688295d92ee6b51",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L489"
		},
		{
			"name": "shz_mat4x4_apply_frustum",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 495,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_frustum(shz_mat4x4_t* m, float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the frustum matrix constructed from the given values onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_frustum"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_frustum/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_frustum.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab0dd163fbac8ed5ef4e3451bc8b8a42d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L495"
		},
		{
			"name": "shz_mat4x4_apply_perspective",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 501,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_perspective(shz_mat4x4_t* m, float fov, float aspect, float znear) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "fov",
					"type": "float",
					"doc": ""
				},
				{
					"name": "aspect",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the perspective matrix constructed from the given values onto the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_perspective"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_perspective/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_perspective.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#af31121f9ec07b78d3f0edde50460fa36",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L501"
		},
		{
			"name": "shz_mat4x4_apply_screen",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 507,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_screen(shz_mat4x4_t* m, float width, float height) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "m",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "width",
					"type": "float",
					"doc": ""
				},
				{
					"name": "height",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the viewport matrix created with the given components ont othe given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_screen"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_screen/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_screen.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a387cd1bbb14897d15f1e175fbc91f435",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L507"
		},
		{
			"name": "shz_mat4x4_apply_symmetric_skew",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 513,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_symmetric_skew(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given matrix with a symmetric skew matrix formed from the given 3D vector components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_symmetric_skew"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_symmetric_skew/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_symmetric_skew.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a7564f66348f7b8b5efaa86b17c9d997c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L513"
		},
		{
			"name": "shz_mat4x4_apply_permutation_wxyz",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 519,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_permutation_wxyz(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a permutation matrix, which reorders the components of transformed vectors to be in WXYZ order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_permutation_wxyz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_permutation_wxyz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_permutation_wxyz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a2f580a808a6b6cfd78e3205c35a783a1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L519"
		},
		{
			"name": "shz_mat4x4_apply_permutation_yzwx",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 525,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_permutation_yzwx(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a permutation matrix, which reorders the components of transformed vectors to be in YZWX order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_permutation_yzwx"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_permutation_yzwx/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_permutation_yzwx.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a54ad1318e97aebf738bf5750907dcdc7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L525"
		},
		{
			"name": "shz_mat4x4_apply_self",
			"kind": "function",
			"module": "matrix",
			"section": "Applying",
			"header": "sh4zam/shz_matrix.h",
			"line": 531,
			"signature": "SHZ_INLINE void shz_mat4x4_apply_self(shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given matrix onto itself.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::apply_self"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_self/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_apply_self.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a2a92fd4fa281770c68fdd142a92bf646",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L531"
		},
		{
			"name": "shz_mat4x4_translate",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 545,
			"signature": "SHZ_INLINE void shz_mat4x4_translate(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by a 3D translation matrix with the given components.",
			"detail": "",
			"returns": "",
			"notes": [
				"glTranslatef() equivalent."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::translate"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_translate/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_translate.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a22bafcd910bb66be426355cb46c286b0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L545"
		},
		{
			"name": "shz_mat4x4_scale",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 552,
			"signature": "SHZ_INLINE void shz_mat4x4_scale(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by a 3D scaling matrix with the given components.",
			"detail": "",
			"returns": "",
			"notes": [
				"glScalef() equivalent."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::scale"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_scale/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a06102a0bee152006e4c4b4ca61e2fa37",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L552"
		},
		{
			"name": "shz_mat4x4_rotate_x",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 558,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_x(shz_mat4x4_t* mat, float radians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by a 3D rotation matrix about the X axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_x"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_x/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_x.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ae0ebc4c7b42e81ee16b7539982f540a3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L558"
		},
		{
			"name": "shz_mat4x4_rotate_y",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 564,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_y(shz_mat4x4_t* mat, float radians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by a 3D rotation matrix about the Y axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_y"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_y/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_y.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a22aa5deace324e5b6ff1dcf2cb1c0572",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L564"
		},
		{
			"name": "shz_mat4x4_rotate_z",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 570,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_z(shz_mat4x4_t* mat, float radians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by a 3D rotation matrix about the Z axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_z"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_z/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_z.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#afd2f30fa061c3fc2130702cd9c0cee0a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L570"
		},
		{
			"name": "shz_mat4x4_rotate_xyz",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 576,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_xyz(shz_mat4x4_t* mat, float xRadians, float yRadians, float zRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by 3D rotation matrices about the X then Y then Z axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_xyz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_xyz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a5d5811797ccc232d36cd5d90e2982442",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L576"
		},
		{
			"name": "shz_mat4x4_rotate_zyx",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 582,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_zyx(shz_mat4x4_t* mat, float zRadians, float yRadians, float xRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by 3D rotation matrices about the Z then Y then X axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_zyx"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_zyx/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#adc5530c225e20ffa10e0556a8c94ec29",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L582"
		},
		{
			"name": "shz_mat4x4_rotate_zxy",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 588,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_zxy(shz_mat4x4_t* mat, float zRadians, float xRadians, float yRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by 3D rotation matrices about the Z then X then Y axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_zxy"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_zxy/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#acaf2e25e63750df7882019eafd414e19",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L588"
		},
		{
			"name": "shz_mat4x4_rotate_yxz",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 594,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate_yxz(shz_mat4x4_t* mat, float yRadians, float xRadians, float zRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by 3D rotation matrices about the Y then X then Z axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate_yxz"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_yxz/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#adde5eea01795f4f279ad838652375099",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L594"
		},
		{
			"name": "shz_mat4x4_rotate",
			"kind": "function",
			"module": "matrix",
			"section": "GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 601,
			"signature": "SHZ_INLINE void shz_mat4x4_rotate(shz_mat4x4_t* mat, float radians, float xAxis, float yAxis, float zAxis) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAxis",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates mat by the 3D rotation matrix formed by the given axis and angle.",
			"detail": "",
			"returns": "",
			"notes": [
				"Equivalent to glRotatef()."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::rotate"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_rotate.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aab2116761b3c0ad4212ec657b46e3e24",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L601"
		},
		{
			"name": "shz_mat4x4_translate_reverse",
			"kind": "function",
			"module": "matrix",
			"section": "Reverse GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 614,
			"signature": "SHZ_INLINE void shz_mat4x4_translate_reverse(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Pre-multiplies and accumulates the given matrix onto the 3D translation matrix with the given components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routin clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::translate_reverse"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_translate_reverse/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_translate_reverse.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aa51613a77be4b4b0626f472d822c0ba2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L614"
		},
		{
			"name": "shz_mat4x4_scale_reverse",
			"kind": "function",
			"module": "matrix",
			"section": "Reverse GL Transformations",
			"header": "sh4zam/shz_matrix.h",
			"line": 620,
			"signature": "SHZ_INLINE void shz_mat4x4_scale_reverse(shz_mat4x4_t* mat, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Pre-multiplies and accumulates the given matrix onto the 3D scaling matrix with the given components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX"
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::scale_reverse"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_scale_reverse/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_scale_reverse.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a2dbafbc8b8bef82195d4d9a0d33f54b2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L620"
		},
		{
			"name": "shz_mat4x4_mult",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 633,
			"signature": "SHZ_INLINE void shz_mat4x4_mult(shz_mat4x4_t* mat, const shz_mat4x4_t* lhs, const shz_mat4x4_t* rhs) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "lhs",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies two 4x4 matrices together, storing the result into a third.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_mult/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_mult.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a72099e1cb6c01ca429694058cf6f997d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L633"
		},
		{
			"name": "shz_mat4x4_mult_unaligned",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 639,
			"signature": "SHZ_INLINE void shz_mat4x4_mult_unaligned(shz_mat4x4_t* mat, const shz_mat4x4_t* lhs, const float rhs[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "lhs",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies two 4x4 matrices together, with the right handed matrix being unaligned, storing the result into a third.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_mult_unaligned/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_mult_unaligned.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a4eaa4f746debdbff9e1d90936dd0c43b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L639"
		},
		{
			"name": "shz_mat4x4_mult_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 645,
			"signature": "SHZ_INLINE void shz_mat4x4_mult_transpose(shz_mat4x4_t* mat, const shz_mat4x4_t* lhs, const shz_mat4x4_t* rhs) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "lhs",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies the regular matrix, lhs, by the transpose of the matrix, rhs, storing the result into mat.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_mult_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_mult_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#afc22493b7570a8383bca87ce273ea8a8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L645"
		},
		{
			"name": "shz_mat4x4_mult_transpose_unaligned",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 651,
			"signature": "SHZ_INLINE void shz_mat4x4_mult_transpose_unaligned(shz_mat4x4_t* mat, const shz_mat4x4_t* lhs, const float rhs[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "lhs",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies the regular matrix, lhs, by the transpose of the unaligned matrix, rhs, storing the result into mat.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_mult_transpose_unaligned/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_mult_transpose_unaligned.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aad33ae2bb5dcec19497bb447f3a80a80",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L651"
		},
		{
			"name": "shz_mat4x4_transform_vec2",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 665,
			"signature": "SHZ_INLINE shz_vec2_t shz_mat4x4_transform_vec2(const shz_mat4x4_t* m, shz_vec2_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 2D vector by a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a **single** 2D vector by a **single** 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 2D vectors against the same 4x4 matrix, preload the matrix into XMTRX, then use shz_xmtrx_transform_vec2()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transform_vec3"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec2/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec2.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aeb63ee1a05b5ca74ba82e6ef208110c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L665"
		},
		{
			"name": "shz_mat4x4_transform_vec3",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 679,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat4x4_transform_vec3(const shz_mat4x4_t* m, shz_vec3_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 3D vector by a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a **single** 3D vector (such as a normal, without a W component) by a **single** 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 3D vectors against the same 4x4 matrix, preload the matrix into XMTRX, then use shz_xmtrx_transform_vec3()."
			],
			"warnings": [],
			"sa": [
				"shz_mat4x4_transform_vec4",
				"shz_xmtrx_transform_vec3"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec3/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec3.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a126fdad3874fa5cf36cde470b70a7ee1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L679"
		},
		{
			"name": "shz_mat4x4_transform_vec4",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 693,
			"signature": "SHZ_INLINE shz_vec4_t shz_mat4x4_transform_vec4(const shz_mat4x4_t* mat, shz_vec4_t in) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "in",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 4D vector by a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a *single* 4D vector by a *single* 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 4D vectors against the same 4x4 matrix, preload the matrix into XMTRX, then use shz_xmtrx_transform_vec4()."
			],
			"warnings": [],
			"sa": [
				"shz_mat4x4_transform_vec3",
				"shz_xmtrx_transform_vec4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec4/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec4.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#aa156f39e8ae686df87fd270ebe5ad005",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L693"
		},
		{
			"name": "shz_mat4x4_transform_vec2_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 708,
			"signature": "SHZ_INLINE shz_vec2_t shz_mat4x4_transform_vec2_transpose(const shz_mat4x4_t* m, shz_vec2_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 2D vector the the transpose of a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a **single** 2D vector by the transpose of a **single** 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 2D vectors against the transpose of the same 4x4 matrix, preload the matrix into XMTRX, take its transpose with shz_xmtrx_transpose(), then use shz_xmtrx_transform_vec2()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transpose",
				"shz_xmtrx_transform_vec2"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec2_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec2_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a0094d4c2f00e4997c7d11f1d11e018eb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L708"
		},
		{
			"name": "shz_mat4x4_transform_vec3_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 723,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat4x4_transform_vec3_transpose(const shz_mat4x4_t* m, shz_vec3_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 3D vector the the transpose of a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a **single** 3D vector by the transpose of a **single** 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 3D vectors against the transpose of the same 4x4 matrix, preload the matrix into XMTRX, take its transpose with shz_xmtrx_transpose(), then use shz_xmtrx_transform_vec3()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transpose",
				"shz_xmtrx_transform_vec3"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec3_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec3_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a9d9f0117f32db883be1a760117cb9b78",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L723"
		},
		{
			"name": "shz_mat4x4_transform_vec4_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 738,
			"signature": "SHZ_INLINE shz_vec4_t shz_mat4x4_transform_vec4_transpose(const shz_mat4x4_t* m, shz_vec4_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 4D vector the the transpose of a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a **single** 4D vector by the transpose of a **single** 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 4D vectors against the transpose of the same 4x4 matrix, preload the matrix into XMTRX, take its transpose with shz_xmtrx_transpose(), then use shz_xmtrx_transform_vec4()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transpose",
				"shz_xmtrx_transform_vec4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec4_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_vec4_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#acf2ad847d0b9d9dfebc760f4440f5605",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L738"
		},
		{
			"name": "shz_mat4x4_transform_point2",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 752,
			"signature": "SHZ_INLINE shz_vec2_t shz_mat4x4_transform_point2(const shz_mat4x4_t* mat, shz_vec2_t pt) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "pt",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 2D point by a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a *single* 2D point by a *single* 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 2D points against the same 4x4 matrix, preload the matrix into XMTRX, then use shz_xmtrx_transform_point2()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transform_point2"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point2/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point2.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a13d409883d759b810f2e40deb93b6214",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L752"
		},
		{
			"name": "shz_mat4x4_transform_point3",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 766,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat4x4_transform_point3(const shz_mat4x4_t* mat, shz_vec3_t pt) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "pt",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 3D point by a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a *single* 3D point by a *single* 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 3D points against the same 4x4 matrix, preload the matrix into XMTRX, then use shz_xmtrx_transform_point3()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transform_point3"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point3/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point3.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ac451db499b59edf3e82886aeb9894f92",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L766"
		},
		{
			"name": "shz_mat4x4_transform_point2_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 781,
			"signature": "SHZ_INLINE shz_vec2_t shz_mat4x4_transform_point2_transpose(const shz_mat4x4_t* mat, shz_vec2_t pt) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "pt",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 2D point by the transpose of a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a *single* 2D point by the transpose of a a *single* 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 2D points against the same 4x4 matrix, preload the matrix into XMTRX, use shz_xmtrx_transpose(), then use shz_xmtrx_transform_point2()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transpose",
				"shz_xmtrx_transform_point2"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point2_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point2_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ae4a9e526382c97ff17a228287e7faad5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L781"
		},
		{
			"name": "shz_mat4x4_transform_point3_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Transforming",
			"header": "sh4zam/shz_matrix.h",
			"line": 796,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat4x4_transform_point3_transpose(const shz_mat4x4_t* mat, shz_vec3_t pt) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "pt",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Transforms a 3D point by the transpose of a 4x4 matrix.",
			"detail": "This is a routine specializing in one-off transforms of a *single* 3D point by the transpose of a a *single* 4x4 matrix. It should be faster than going through XMTRX.",
			"returns": "",
			"notes": [
				"For batch transforming multiple 3D points against the same 4x4 matrix, preload the matrix into XMTRX, use shz_xmtrx_transpose(), then use shz_xmtrx_transform_point2()."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_transpose",
				"shz_xmtrx_transform_point3"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point3_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transform_point3_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab6f22f9e245c36e2a09a41ce2c03d0d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L796"
		},
		{
			"name": "shz_mat4x4_to_quat",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 806,
			"signature": "SHZ_INLINE shz_quat_t shz_mat4x4_to_quat(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Converts the given 4x4 orientation matrix into a quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::to_quat"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_to_quat/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_to_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a6b83da9fb8e7a1078c8c078e5a1d3cff",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L806"
		},
		{
			"name": "shz_mat4x4_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 812,
			"signature": "SHZ_INLINE void shz_mat4x4_transpose(const shz_mat4x4_t* mat, shz_mat4x4_t* out) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "out",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Stores the transpose of mat within out.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a44755e8976dce12d1d3074c97bcf9010",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L812"
		},
		{
			"name": "shz_mat4x4_inverse",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 824,
			"signature": "void shz_mat4x4_inverse(const shz_mat4x4_t* SHZ_RESTRICT mtrx, shz_mat4x4_t* SHZ_RESTRICT out) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mtrx",
					"type": "const shz_mat4x4_t *SHZ_RESTRICT",
					"doc": "Pointer to the 4x4 matrix to invert."
				},
				{
					"name": "out",
					"type": "shz_mat4x4_t *SHZ_RESTRICT",
					"doc": "Pointer to the resulting inverted matrix."
				}
			],
			"brief": "Computes the inverse of a 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [
				"In-place inversion (mtrx == out) is not supported."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::inverse"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_inverse/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_inverse.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a03fb6fa8c7d2e341de42ae4dc210d0c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L824"
		},
		{
			"name": "shz_mat4x4_inverse_block_triangular",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 844,
			"signature": "void shz_mat4x4_inverse_block_triangular(const shz_mat4x4_t* mtx, shz_mat4x4_t* out) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mtx",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "out",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Computes the inverse of a 4x4 matrix in block-triangular form.",
			"detail": "This is a special-case faster optimization for 4x4 matrices which take the form:\n\n```text\nA = [ M   b ]\n    [ 0   w ]\n```\n\nWhere A is 4x4, M is 3x3, b is 3x1, and the bottom row is (0, 0, 0, w) with w != 0. For this block-triangular form, det(A) = det(M) \\* w. Then\n\n```text\ninv(A) = [ inv(M)        -inv(M) * b / w ]\n         [   0                 1/w       ]\n```",
			"returns": "",
			"notes": [
				"A regular 3D transform matrix is already in this form.",
				"shz_mat4x4_inverse() will dynamically check whether to use this optimization."
			],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::inverse_block_triangular"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_inverse_block_triangular/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_inverse_block_triangular.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a98e12298c850ad152c002873c26827b0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L844"
		},
		{
			"name": "shz_mat4x4_equal",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 847,
			"signature": "SHZ_INLINE bool shz_mat4x4_equal(const shz_mat4x4_t* SHZ_RESTRICT mat1, const shz_mat4x4_t* mat2) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "mat1",
					"type": "const shz_mat4x4_t *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "mat2",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Returns true if the two matrices are equal, based on either absolute or relative tolerance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_equal/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_equal.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ae63da3690a7db91dd99e1fc6be544058",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L847"
		},
		{
			"name": "shz_mat4x4_is_block_triangular",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 850,
			"signature": "SHZ_INLINE bool shz_mat4x4_is_block_triangular(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Returns true if the given matrix is in block-triangular form: having a bottom row in the form of <0.0f, 0.0f, 0.0f, w>.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_is_block_triangular/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_is_block_triangular.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ab3f55845a56ee7079ca312a866f2b312",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L850"
		},
		{
			"name": "shz_mat4x4_copy",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 853,
			"signature": "SHZ_INLINE void shz_mat4x4_copy(shz_mat4x4_t* dst, const shz_mat4x4_t* src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Copies the given src 4x4 matrix into the given dst 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::mat4x4",
				"shz::mat4x4::operator="
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_copy/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_copy.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a26b9e5e3521a387f4b90fded98e3231c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L853"
		},
		{
			"name": "shz_mat4x4_copy_unaligned",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 859,
			"signature": "SHZ_INLINE void shz_mat4x4_copy_unaligned(shz_mat4x4_t* dst, const float src[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Copies the given unaligned src 4x4 matrix into the given dst 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_copy_unaligned/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_copy_unaligned.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a7a008aa162487107e61370c752968d12",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L859"
		},
		{
			"name": "shz_mat4x4_swap",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 865,
			"signature": "SHZ_INLINE void shz_mat4x4_swap(shz_mat4x4_t* matA, shz_mat4x4_t* matB) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matA",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "matB",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Swaps the contents of the two given matrices, matA and matB.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_swap/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_swap.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a34036e9880843dea1e3535c58e23c811",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L865"
		},
		{
			"name": "shz_mat4x4_blend",
			"kind": "function",
			"module": "matrix",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_matrix.h",
			"line": 879,
			"signature": "SHZ_INLINE void shz_mat4x4_blend(shz_mat4x4_t* dst, const shz_mat4x4_t* matrix, float weights) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "weights",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Adds and accumulates a scaled 4x4 matrix into the given matrix.",
			"detail": "Each component of `joint_matrix` will be multiplied by `weight`, with the result being added to the existing value of that component in `dst`.\n\nThis is useful for accumulating weighted joint matrices onto an initially zeroed-out matrix.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [
				"shz_mat4x4_init_zero"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::mat4x4::blend"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_blend/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_blend.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a87d484e99aed8543150e73fca0982bc0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L879"
		},
		{
			"name": "shz_mat4x4_t",
			"kind": "type",
			"module": "matrix",
			"section": "Types",
			"header": "sh4zam/shz_matrix.h",
			"line": 65,
			"signature": "typedef SHZ_ALIGNAS(8) struct shz_mat4x4 {\n    union {                     //!< Inner convenience union.\n        float      elem[16];        //!< Access the matrix as a 1D array of 16 single-precision floats.\n        float      elem2D[4][4];    //!< Access the matrix as a 2D array of 4x4 single-precision floats.\n        shz_vec4_t col[4];          //!< Access the matrix as an array of 4 1x4 column vectors.\n        struct {                //!< Named column vectors.\n            shz_vec4_t left;        //!< Access the first column of the matrix as a 1x4 vector.\n            shz_vec4_t up;          //!< Access the second column of the matrix as a 1x4 vector.\n            shz_vec4_t forward;     //!< Access the third column of the matrix as a 1x4 vector.\n            shz_vec4_t pos;         //!< Access the last column of the matrix as a 1x4 vector.\n        };\n    };\n} shz_mat4x4_t;",
			"fields": [
				{
					"name": "elem",
					"type": "float[16]",
					"doc": "\\< Inner convenience union."
				},
				{
					"name": "elem2D",
					"type": "float[4][4]",
					"doc": "Access the matrix as a 2D array of 4x4 single-precision floats."
				},
				{
					"name": "col",
					"type": "shz_vec4_t[4]",
					"doc": "Access the matrix as an array of 4 1x4 column vectors."
				},
				{
					"name": "left",
					"type": "shz_vec4_t",
					"doc": "\\< Named column vectors."
				},
				{
					"name": "up",
					"type": "shz_vec4_t",
					"doc": "Access the second column of the matrix as a 1x4 vector."
				},
				{
					"name": "forward",
					"type": "shz_vec4_t",
					"doc": "Access the third column of the matrix as a 1x4 vector."
				},
				{
					"name": "pos",
					"type": "shz_vec4_t",
					"doc": "Access the last column of the matrix as a 1x4 vector."
				}
			],
			"brief": "Structure representing a 4x4 column-major matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This structure MUST be aligned on 8-byte boundaries!"
			],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::mat4x4"
			],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4_t/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__mat4x4__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L65"
		},
		{
			"name": "shz_mat4x4",
			"kind": "typedef",
			"module": "matrix",
			"section": "Types",
			"header": "sh4zam/shz_matrix.h",
			"line": 80,
			"signature": "typedef shz_mat4x4_t shz_mat4x4;",
			"brief": "Alternate shz_mat4x4_t C typedef for those who hate POSIX style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x4/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ac2ebbb5442358bce67a1dfaa736a14c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L80"
		},
		{
			"name": "shz_mat2x2_t",
			"kind": "type",
			"module": "matrix",
			"section": "Types",
			"header": "sh4zam/shz_matrix.h",
			"line": 889,
			"signature": "typedef SHZ_ALIGNAS(8) struct shz_mat2x2 {\n    union {\n        float       elem[4];\n        float       elem2D[2][2];\n        shz_vec2_t  col[2];\n    };\n} shz_mat2x2_t;",
			"fields": [
				{
					"name": "elem",
					"type": "float[4]",
					"doc": ""
				},
				{
					"name": "elem2D",
					"type": "float[2][2]",
					"doc": ""
				},
				{
					"name": "col",
					"type": "shz_vec2_t[2]",
					"doc": ""
				}
			],
			"brief": "Structure representing a 2x2 column-major matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This structure MUST be aligned on 8-byte boundaries!"
			],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat2x2_t/",
			"md": "https://sh4zam.com/api/matrix/shz_mat2x2_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__mat2x2__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L889"
		},
		{
			"name": "shz_mat3x3_t",
			"kind": "type",
			"module": "matrix",
			"section": "Types",
			"header": "sh4zam/shz_matrix.h",
			"line": 898,
			"signature": "typedef struct shz_mat3x3 {\n    union {\n        float      elem[9];\n        float      elem2D[3][3];\n        shz_vec3_t col[3];\n        struct {\n            shz_vec3_t left;\n            shz_vec3_t up;\n            shz_vec3_t forward;\n        };\n    };\n} shz_mat3x3_t;",
			"fields": [
				{
					"name": "elem",
					"type": "float[9]",
					"doc": ""
				},
				{
					"name": "elem2D",
					"type": "float[3][3]",
					"doc": ""
				},
				{
					"name": "col",
					"type": "shz_vec3_t[3]",
					"doc": ""
				},
				{
					"name": "left",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "forward",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Structure representing a 3x3 column-major matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_t/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__mat3x3__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L898"
		},
		{
			"name": "shz_mat3x4_t",
			"kind": "type",
			"module": "matrix",
			"section": "Types",
			"header": "sh4zam/shz_matrix.h",
			"line": 912,
			"signature": "typedef struct shz_mat3x4 {\n    union {\n        float      elem[12];\n        float      elem2D[4][3];\n        shz_vec3_t col[4];\n        struct {\n            shz_vec3_t left;\n            shz_vec3_t up;\n            shz_vec3_t forward;\n            shz_vec3_t pos;\n        };\n    };\n} shz_mat3x4_t;",
			"fields": [
				{
					"name": "elem",
					"type": "float[12]",
					"doc": ""
				},
				{
					"name": "elem2D",
					"type": "float[4][3]",
					"doc": ""
				},
				{
					"name": "col",
					"type": "shz_vec3_t[4]",
					"doc": ""
				},
				{
					"name": "left",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "forward",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "pos",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Structure representing a 3x4 column-major matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x4_t/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x4_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__mat3x4__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L912"
		},
		{
			"name": "shz_mat4x3_t",
			"kind": "type",
			"module": "matrix",
			"section": "Types",
			"header": "sh4zam/shz_matrix.h",
			"line": 927,
			"signature": "typedef struct shz_mat4x3 {\n    union {\n        float      elem[12];\n        float      elem2D[3][4];\n        shz_vec4_t col[3];\n        struct {\n            shz_vec4_t left;\n            shz_vec4_t up;\n            shz_vec4_t forward;\n        };\n    };\n} shz_mat4x3_t;",
			"fields": [
				{
					"name": "elem",
					"type": "float[12]",
					"doc": ""
				},
				{
					"name": "elem2D",
					"type": "float[3][4]",
					"doc": ""
				},
				{
					"name": "col",
					"type": "shz_vec4_t[3]",
					"doc": ""
				},
				{
					"name": "left",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "forward",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Structure representing a 4x3 column-major matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat4x3_t/",
			"md": "https://sh4zam.com/api/matrix/shz_mat4x3_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__mat4x3__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L927"
		},
		{
			"name": "shz_mat3x3_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Functions",
			"header": "sh4zam/shz_matrix.h",
			"line": 947,
			"signature": "SHZ_INLINE void shz_mat3x3_transpose(const shz_mat3x3_t* mat, shz_mat3x3_t* out) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat3x3_t *",
					"doc": "Pointer to the 3x3 matrix to transpose."
				},
				{
					"name": "out",
					"type": "shz_mat3x3_t *",
					"doc": "Pointer to the resulting transposed matrix."
				}
			],
			"brief": "Stores the transpose of 3x3 matrix mat within out.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a1754736f65071540470cde4497b48d98",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L947"
		},
		{
			"name": "shz_mat3x3_inverse_unscaled",
			"kind": "function",
			"module": "matrix",
			"section": "Functions",
			"header": "sh4zam/shz_matrix.h",
			"line": 959,
			"signature": "SHZ_INLINE void shz_mat3x3_inverse_unscaled(const shz_mat3x3_t* mat, shz_mat3x3_t* out) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat3x3_t *",
					"doc": "Pointer to the 3x3 matrix to invert."
				},
				{
					"name": "out",
					"type": "shz_mat3x3_t *",
					"doc": "Pointer to the resulting inverted matrix."
				}
			],
			"brief": "Computes the inverse of an orthonormal 3x3 matrix.",
			"detail": "",
			"returns": "",
			"notes": [
				"The routine saves cycles by not scaling by the determinant, which is typically useful for normals and lighting, where the matrix has no scale factor."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_inverse_unscaled/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_inverse_unscaled.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a4589ebe017b4b2f3252d2c00e00f8fa2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L959"
		},
		{
			"name": "shz_mat3x3_inverse",
			"kind": "function",
			"module": "matrix",
			"section": "Functions",
			"header": "sh4zam/shz_matrix.h",
			"line": 970,
			"signature": "SHZ_INLINE void shz_mat3x3_inverse(const shz_mat3x3_t* mat, shz_mat3x3_t* out) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat3x3_t *",
					"doc": "Pointer to the 3x3 matrix to invert."
				},
				{
					"name": "out",
					"type": "shz_mat3x3_t *",
					"doc": "Pointer to the resulting inverted matrix."
				}
			],
			"brief": "Computes the inverse of a 3x3 matrix.",
			"detail": "",
			"returns": "",
			"notes": [
				"Only valid for non-singular matrices."
			],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_inverse/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_inverse.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a038a56bcc625adae0de62a875a1c8fe5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L970"
		},
		{
			"name": "shz_mat3x3_scale",
			"kind": "function",
			"module": "matrix",
			"section": "Functions",
			"header": "sh4zam/shz_matrix.h",
			"line": 973,
			"signature": "SHZ_INLINE void shz_mat3x3_scale(shz_mat3x3_t* dst, const shz_mat3x3_t* src, float value) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "shz_mat3x3_t *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				},
				{
					"name": "value",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Uniformly scales each element within a 3x3 matrix by the given value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_scale/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a578bd9c733fe7c7ee66fa7c8443bdc6d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L973"
		},
		{
			"name": "shz_mat3x3_transform_vec3",
			"kind": "function",
			"module": "matrix",
			"section": "Functions",
			"header": "sh4zam/shz_matrix.h",
			"line": 976,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat3x3_transform_vec3(const shz_mat3x3_t* m, shz_vec3_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Transforms an input vector by a 3x3 matrix, returning the resulting vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_transform_vec3/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_transform_vec3.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#a90a18241dee236964e6d3be8a0d5f70d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L976"
		},
		{
			"name": "shz_mat3x3_transform_vec3_transpose",
			"kind": "function",
			"module": "matrix",
			"section": "Functions",
			"header": "sh4zam/shz_matrix.h",
			"line": 979,
			"signature": "SHZ_INLINE shz_vec3_t shz_mat3x3_transform_vec3_transpose(const shz_mat3x3_t* m, shz_vec3_t v) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "m",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				},
				{
					"name": "v",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Transforms an input vector by the transpose of a 3x3 matrix, returning the resulting vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/matrix/shz_mat3x3_transform_vec3_transpose/",
			"md": "https://sh4zam.com/api/matrix/shz_mat3x3_transform_vec3_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__matrix_8h.html#ad2d587a2b804ccdfba7a891b6cff82c9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L979"
		},
		{
			"name": "shz_xmtrx_read",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 93,
			"signature": "SHZ_INLINE float shz_xmtrx_read(shz_xmtrx_reg_t xf) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "xf",
					"type": "shz_xmtrx_reg_t",
					"doc": ""
				}
			],
			"brief": "Returns the floating-point value held within the given XMTRX register.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_read/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_read.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ad11afb42dff01ca4116aac0e6a3106ff",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L93"
		},
		{
			"name": "shz_xmtrx_write",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 96,
			"signature": "SHZ_INLINE void shz_xmtrx_write(shz_xmtrx_reg_t xf, float value) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "xf",
					"type": "shz_xmtrx_reg_t",
					"doc": ""
				},
				{
					"name": "value",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Sets the floating-point value held within the given XMTRX register to value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_write/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_write.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af92ec52a7504b6a649731a0f3ef06644",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L96"
		},
		{
			"name": "shz_xmtrx_read_row",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 99,
			"signature": "SHZ_INLINE shz_vec4_t shz_xmtrx_read_row(unsigned int index) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "index",
					"type": "unsigned int",
					"doc": ""
				}
			],
			"brief": "Returns the values at the the given row index, as a 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::read_row"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_read_row/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_read_row.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a6fafe8de7aae24b8878d5891adb5e3df",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L99"
		},
		{
			"name": "shz_xmtrx_read_col",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 102,
			"signature": "SHZ_INLINE shz_vec4_t shz_xmtrx_read_col(unsigned int index) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "index",
					"type": "unsigned int",
					"doc": ""
				}
			],
			"brief": "Returns the values at the given column index, as a 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::read_col"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_read_col/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_read_col.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a09f36dbecd9cb7871ba6ac5b67050de1",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L102"
		},
		{
			"name": "shz_xmtrx_write_row",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 105,
			"signature": "SHZ_INLINE void shz_xmtrx_write_row(unsigned int index, shz_vec4_t vector) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "index",
					"type": "unsigned int",
					"doc": ""
				},
				{
					"name": "vector",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Sets the values at the given row index to the given 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::write_row"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_write_row/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_write_row.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af71771b1b7de65b76882a384026a3f2d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L105"
		},
		{
			"name": "shz_xmtrx_write_col",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 108,
			"signature": "SHZ_INLINE void shz_xmtrx_write_col(unsigned int index, shz_vec4_t vector) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "index",
					"type": "unsigned int",
					"doc": ""
				},
				{
					"name": "vector",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Sets the values at the given column index to the given 4D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::write_col"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_write_col/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_write_col.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a3858127eba121edfe184f1d176e6af49",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L108"
		},
		{
			"name": "shz_xmtrx_swap_rows",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 111,
			"signature": "SHZ_INLINE void shz_xmtrx_swap_rows(unsigned int index1, unsigned int index2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "index1",
					"type": "unsigned int",
					"doc": ""
				},
				{
					"name": "index2",
					"type": "unsigned int",
					"doc": ""
				}
			],
			"brief": "Swaps the values of the rows with the given indices.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::swap_rows"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_swap_rows/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_swap_rows.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a8cd902903d751bc13176f81215641d52",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L111"
		},
		{
			"name": "shz_xmtrx_swap_cols",
			"kind": "function",
			"module": "xmtrx",
			"section": "Accessors",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 114,
			"signature": "SHZ_INLINE void shz_xmtrx_swap_cols(unsigned int index1, unsigned int index2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "index1",
					"type": "unsigned int",
					"doc": ""
				},
				{
					"name": "index2",
					"type": "unsigned int",
					"doc": ""
				}
			],
			"brief": "Swaps the values of the columns with the given indices.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::swap_cols"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_swap_cols/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_swap_cols.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a3514fd734f95669df83fad72e1530f87",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L114"
		},
		{
			"name": "shz_xmtrx_load_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 124,
			"signature": "SHZ_INLINE void shz_xmtrx_load_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads the given 4x4 matrix as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac38e6149e1652ae5e49d8b2bb5065cf5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L124"
		},
		{
			"name": "shz_xmtrx_load_wxyz_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 127,
			"signature": "SHZ_INLINE void shz_xmtrx_load_wxyz_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads the given 4x4 matrix as XMTRX, with the 4th column for translation being loaded as the first column.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::load_wxyz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_wxyz_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_wxyz_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a607db61addf0e8ac3920169a0bbf597d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L127"
		},
		{
			"name": "shz_xmtrx_load_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 130,
			"signature": "SHZ_INLINE void shz_xmtrx_load_unaligned_4x4(const float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Loads the given array of unaligned 16 float values as the 4x4 XMTRX matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a2414e0f7880575fa2690b3db2bc9865f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L130"
		},
		{
			"name": "shz_xmtrx_load_cols_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 133,
			"signature": "SHZ_INLINE void shz_xmtrx_load_cols_4x4(const shz_vec4_t* c1, const shz_vec4_t* c2, const shz_vec4_t* c3, const shz_vec4_t* c4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "c1",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "c2",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "c3",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "c4",
					"type": "const shz_vec4_t *",
					"doc": ""
				}
			],
			"brief": "Sets XMTRX equal to the 4x4 matrix created from the 4 given 4D column vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_cols_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_cols_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a67c4ab0cd529fb42d765a56ff392b62d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L133"
		},
		{
			"name": "shz_xmtrx_load_rows_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 139,
			"signature": "SHZ_INLINE void shz_xmtrx_load_rows_4x4(const shz_vec4_t* r1, const shz_vec4_t* r2, const shz_vec4_t* r3, const shz_vec4_t* r4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "r1",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "r4",
					"type": "const shz_vec4_t *",
					"doc": ""
				}
			],
			"brief": "Sets XMTRX equal to the 4x4 matrix created from the 4 given 4D row vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_rows_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_rows_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af94823eb84a53ce3f6715d781aa878b7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L139"
		},
		{
			"name": "shz_xmtrx_load_transpose_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 145,
			"signature": "SHZ_INLINE void shz_xmtrx_load_transpose_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the transpose of the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ad3337f9b476c5b44dbadd30468f66d43",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L145"
		},
		{
			"name": "shz_xmtrx_load_transpose_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 148,
			"signature": "SHZ_INLINE void shz_xmtrx_load_transpose_unaligned_4x4(const float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the transpose of the 4x4 matrix created from the given unaligned array of 16 floats.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a5ebe150dc648e6a209af3453779eaf41",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L148"
		},
		{
			"name": "shz_xmtrx_load_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 151,
			"signature": "SHZ_INLINE void shz_xmtrx_load_3x4(const shz_mat3x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads the given 3x4 matrix into XMTRX, initializing its remaining elements to identity.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ae29767046f669959c07e0518285a08ca",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L151"
		},
		{
			"name": "shz_xmtrx_load_transpose_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 154,
			"signature": "SHZ_INLINE void shz_xmtrx_load_transpose_3x4(const shz_mat3x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the transpose of the given 3x4 matrix, initializing the bottom row to identity.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a1e1d262fab5fe9e17838bf714623789a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L154"
		},
		{
			"name": "shz_xmtrx_load_cols_4x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 162,
			"signature": "SHZ_INLINE void shz_xmtrx_load_cols_4x3(const shz_vec4_t* c1, const shz_vec4_t* c2, const shz_vec4_t* c3) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "c1",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "c2",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "c3",
					"type": "const shz_vec4_t *",
					"doc": ""
				}
			],
			"brief": "Loads the 3x4 matrix formed from the given 3 4D column vectors into XMTRX.",
			"detail": "All remaining elements are initialized to identity matrix values.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_rows_3x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_cols_4x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_cols_4x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ae9b7a917bacad323446cc272418f5b5a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L162"
		},
		{
			"name": "shz_xmtrx_load_rows_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 172,
			"signature": "SHZ_INLINE void shz_xmtrx_load_rows_3x4(const shz_vec4_t* r1, const shz_vec4_t* r2, const shz_vec4_t* r3) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "r1",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "r2",
					"type": "const shz_vec4_t *",
					"doc": ""
				},
				{
					"name": "r3",
					"type": "const shz_vec4_t *",
					"doc": ""
				}
			],
			"brief": "Loads the 3x4 matrix formed from the given 3 4D row vectors into XMTRX.",
			"detail": "All remaining elements are initialized to identity matrix values.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_cols_3x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_rows_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_rows_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a977715063cd4681edd2f7c7e7d23f4c8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L172"
		},
		{
			"name": "shz_xmtrx_load_cols_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 182,
			"signature": "SHZ_INLINE void shz_xmtrx_load_cols_3x4(const shz_vec3_t* c1, const shz_vec3_t* c2, const shz_vec3_t* c3, const shz_vec3_t* c4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "c1",
					"type": "const shz_vec3_t *",
					"doc": ""
				},
				{
					"name": "c2",
					"type": "const shz_vec3_t *",
					"doc": ""
				},
				{
					"name": "c3",
					"type": "const shz_vec3_t *",
					"doc": ""
				},
				{
					"name": "c4",
					"type": "const shz_vec3_t *",
					"doc": ""
				}
			],
			"brief": "Loads the 3x4 matrix formed from the given 4 3D column vectors into XMTRX.",
			"detail": "All remaining elements are initialized to identity matrix values.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_rows_3x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_cols_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_cols_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a293d0b01c2940e533986fadcf8fc0e6f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L182"
		},
		{
			"name": "shz_xmtrx_load_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 188,
			"signature": "SHZ_INLINE void shz_xmtrx_load_3x3(const shz_mat3x3_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Loads the given 3x3 matrix into XMTRX, initalizing its remaining elements to identity.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a941d431bcd0796c2b63b73d0bdac96af",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L188"
		},
		{
			"name": "shz_xmtrx_load_transpose_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 191,
			"signature": "SHZ_INLINE void shz_xmtrx_load_transpose_3x3(const shz_mat3x3_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Loads the transpose of the given 3x3 matrix into XMTRX, initializing its remaining elements to identity.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_transpose_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a048982029227e2a12d8b47087e03e1b2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L191"
		},
		{
			"name": "shz_xmtrx_load_2x2",
			"kind": "function",
			"module": "xmtrx",
			"section": "Loading",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 194,
			"signature": "SHZ_INLINE void shz_xmtrx_load_2x2(const shz_mat2x2_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat2x2_t *",
					"doc": ""
				}
			],
			"brief": "Loads the given 2x2 matrix into XMTRX, initializing its remaining elements to identity.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_2x2/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_2x2.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a69af4f762a86485552396e8d82f2d706",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L194"
		},
		{
			"name": "shz_xmtrx_store_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 204,
			"signature": "SHZ_INLINE void shz_xmtrx_store_4x4(shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Stores the current values held within XMTRX into the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a82f0e1bdfaa498b3a14ad09560dea362",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L204"
		},
		{
			"name": "shz_xmtrx_store_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 207,
			"signature": "SHZ_INLINE void shz_xmtrx_store_unaligned_4x4(float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "float [16]",
					"doc": ""
				}
			],
			"brief": "Stores the current values held within XMTRX into the given unaligned 16-float array.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a14573022f965091442889a795aa2e14e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L207"
		},
		{
			"name": "shz_xmtrx_store_transpose_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 210,
			"signature": "SHZ_INLINE void shz_xmtrx_store_transpose_4x4(shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Stores the transpose of the current values held within XMTRX into the given 4x4 matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a9f91a10cd58d49c94b073110de50725c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L210"
		},
		{
			"name": "shz_xmtrx_store_transpose_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 213,
			"signature": "SHZ_INLINE void shz_xmtrx_store_transpose_unaligned_4x4(float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "float [16]",
					"doc": ""
				}
			],
			"brief": "Stores the transpose of the the current values held within XMTRX into the given 16-element float array.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ab27d416e15a7520bbbf562eeacdfbb7e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L213"
		},
		{
			"name": "shz_xmtrx_store_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 216,
			"signature": "SHZ_INLINE void shz_xmtrx_store_3x4(shz_mat3x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Stores the top-left 3x4 values currently held within XMTRX into the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a142e52d251c6a36d86016199afa82138",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L216"
		},
		{
			"name": "shz_xmtrx_store_transpose_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 219,
			"signature": "SHZ_INLINE void shz_xmtrx_store_transpose_3x4(shz_mat3x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Stores the transpose of the top-left 3x4 values currently held within XMTRX into the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a74ed60078e69d8843d8a264748a57245",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L219"
		},
		{
			"name": "shz_xmtrx_store_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 222,
			"signature": "SHZ_INLINE void shz_xmtrx_store_3x3(shz_mat3x3_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Stores the top-left 3x3 values currently held within XMTRX into the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aec5bd0bf043e95c27d3f4a69df231812",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L222"
		},
		{
			"name": "shz_xmtrx_store_transpose_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 225,
			"signature": "SHZ_INLINE void shz_xmtrx_store_transpose_3x3(shz_mat3x3_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Stores the transpose of the top-left 3x3 values currently held within XMTRX into the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_transpose_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a339517fd48ea81d977f1b1fa315070ef",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L225"
		},
		{
			"name": "shz_xmtrx_store_2x2",
			"kind": "function",
			"module": "xmtrx",
			"section": "Storing",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 228,
			"signature": "SHZ_INLINE void shz_xmtrx_store_2x2(shz_mat2x2_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "shz_mat2x2_t *",
					"doc": ""
				}
			],
			"brief": "Stores the top-left 2x2 values currently held within XMTRX into the given matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_2x2/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_store_2x2.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af37e1e8d8fa381d8a5ed9d6858288e7a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L228"
		},
		{
			"name": "shz_xmtrx_init_identity",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 238,
			"signature": "SHZ_INLINE void shz_xmtrx_init_identity(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to the 4x4 identity matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_identity",
				"shz::xmtrx::init_identity_safe"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_identity/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_identity.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a1559f31d80b751416e62f8c27a1226a5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L238"
		},
		{
			"name": "shz_xmtrx_init_identity_safe",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 249,
			"signature": "SHZ_INLINE void shz_xmtrx_init_identity_safe(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Safely initializes XMTRX to be a 4D identity matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_identity"
			],
			"documented": true,
			"deprecated": "shz_xmtrx_init_identity() is already safe now by default. This routine simply calls directly into it and should not be used.",
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_identity_safe/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_identity_safe.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aa1f5d0752b8af99021be2adfe4fadfed",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L249"
		},
		{
			"name": "shz_xmtrx_init_zero",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 252,
			"signature": "SHZ_INLINE void shz_xmtrx_init_zero(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to contain the value of 0.0f for each element.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_zero"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_zero/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_zero.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a51da462c6d6de1e282c35219d71bb4d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L252"
		},
		{
			"name": "shz_xmtrx_init_one",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 255,
			"signature": "SHZ_INLINE void shz_xmtrx_init_one(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to contain the value of 1.0f for each element.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_one"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_one/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_one.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a550a2b8cc737b61a3154de976fac48e9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L255"
		},
		{
			"name": "shz_xmtrx_init_fill",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 258,
			"signature": "SHZ_INLINE void shz_xmtrx_init_fill(float value) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "value",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to contain the given value for each element.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_fill"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_fill/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_fill.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a55a17c51a82980b76b4693345048d696",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L258"
		},
		{
			"name": "shz_xmtrx_init_translation",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 261,
			"signature": "SHZ_INLINE void shz_xmtrx_init_translation(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D translation matrix to the given coordinates.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_translation"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_translation/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ad4c10208fa7a879b8fc307d869e25731",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L261"
		},
		{
			"name": "shz_xmtrx_init_scale",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 264,
			"signature": "SHZ_INLINE void shz_xmtrx_init_scale(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D scale matrix with the given dimensions.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_scale"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_scale/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a908dea01873c495ddf6ff099aaf828e8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L264"
		},
		{
			"name": "shz_xmtrx_init_rotation_x",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 267,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_x(float x) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D rotation matrix by x radians about the X axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_x"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_x/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_x.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac023714596c8126e56dcd7bbb9f73879",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L267"
		},
		{
			"name": "shz_xmtrx_init_rotation_y",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 270,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_y(float y) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "y",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D rotation matrix by y radians about the Y axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_y"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_y/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_y.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a68ce8ec5753231d45a042e9649997ae0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L270"
		},
		{
			"name": "shz_xmtrx_init_rotation_z",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 273,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_z(float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D rotation matrix by z radians about the Z axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_z"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_z/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_z.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a59f10544217b9545f4e969e13eff9dbb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L273"
		},
		{
			"name": "shz_xmtrx_init_rotation_xyz",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 282,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_xyz(float xAngle, float yAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D X-Y-Z rotation matrix, with the corresponding angles given in radians.",
			"detail": "",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_rotation_zyx",
				"shz_xmtrx_init_rotation_yxz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_xyz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_xyz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a97e41e1f3382d85debd43f8363b20819",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L282"
		},
		{
			"name": "shz_xmtrx_init_rotation_zyx",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 291,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_zyx(float zAngle, float yAngle, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D Z-Y-X rotation matrix, with the corresponding angles given in radians.",
			"detail": "",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_rotation_xyz",
				"shz_xmtrx_init_rotation_yxz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_zyx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_zyx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a121c89ffc895cf7700afc3c015c53f1e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L291"
		},
		{
			"name": "shz_xmtrx_init_rotation_zxy",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 300,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_zxy(float zAngle, float xAngle, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D Z-X-Y rotation matrix, with the corresponding angles given in radians.",
			"detail": "",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_rotation_zyx",
				"shz_xmtrx_init_rotation_yxz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_zxy"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_zxy/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a841e0bc8d3a6a83b3d60d0669a991e18",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L300"
		},
		{
			"name": "shz_xmtrx_init_rotation_yxz",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 309,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_yxz(float yAngle, float xAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a 3D Y-X-Z rotation matrix, with the corresponding angles given in radians.",
			"detail": "",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_rotation_xyz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_yxz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_yxz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a8b5a07f98704ed89b9b5f82b9e8ad0e3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L309"
		},
		{
			"name": "shz_xmtrx_init_rotation",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 318,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation(float angle, float xAxis, float yAxis, float zAxis) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "angle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAxis",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a 3D rotation matrix of angle radians about the vector with the given components.",
			"detail": "",
			"returns": "",
			"notes": [
				"This routine works similarly to glRotatef() applied to an identitiy matrix. The given axis will automatically be normalized internally."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_rotation_dir"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af83828d6f9f180bf854d89c4975a68c0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L318"
		},
		{
			"name": "shz_xmtrx_init_rotation_dir",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 329,
			"signature": "SHZ_INLINE void shz_xmtrx_init_rotation_dir(float angle, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "angle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to contain a 3D rotation matrix of angle radians about the given axis.",
			"detail": "This is a faster version of `shz_xmtrx_init_rotation()` or glRotatef() which requires being passed a unit vector for the rotation axis.",
			"returns": "",
			"notes": [],
			"warnings": [
				"The vector components representing the axis of rotation must be prenormalized!"
			],
			"sa": [
				"shz_xmtrx_init_rotation"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_dir"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_dir/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_dir.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af84266377ce123f857ef9646e295c200",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L329"
		},
		{
			"name": "shz_xmtrx_init_diagonal",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 332,
			"signature": "SHZ_INLINE void shz_xmtrx_init_diagonal(float x, float y, float z, float w) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				},
				{
					"name": "w",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a diagonal matrix with the given diagonal values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_diagonal"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_diagonal/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_diagonal.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a01a6124c1039e41c64770ff5129d233e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L332"
		},
		{
			"name": "shz_xmtrx_init_upper_triangular",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 335,
			"signature": "SHZ_INLINE void shz_xmtrx_init_upper_triangular(float col1, shz_vec2_t col2, shz_vec3_t col3, shz_vec4_t col4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "col1",
					"type": "float",
					"doc": ""
				},
				{
					"name": "col2",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "col3",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "col4",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be an upper triangular matrix with the given column values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_upper_triangular"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_upper_triangular/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_upper_triangular.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a0791bbc3b9a8ebdcdff8e56a076daba6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L335"
		},
		{
			"name": "shz_xmtrx_init_lower_triangular",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 338,
			"signature": "SHZ_INLINE void shz_xmtrx_init_lower_triangular(shz_vec4_t col1, shz_vec3_t col2, shz_vec2_t col3, float col4) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "col1",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "col2",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "col3",
					"type": "shz_vec2_t",
					"doc": ""
				},
				{
					"name": "col4",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be a lower triangular matrix with the given column values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_lower_triangular"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_lower_triangular/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_lower_triangular.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a54e6eb0e9b1874c98e0bf968b238933f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L338"
		},
		{
			"name": "shz_xmtrx_init_symmetric_skew",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 341,
			"signature": "SHZ_INLINE void shz_xmtrx_init_symmetric_skew(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to be the 3D symmetric skew matrix formed from the given vector components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_symmetric_skew"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_symmetric_skew/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_symmetric_skew.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a9f66ee041a5fbc60f099d4ccd9693418",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L341"
		},
		{
			"name": "shz_xmtrx_init_outer_product",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 344,
			"signature": "SHZ_INLINE void shz_xmtrx_init_outer_product(shz_vec4_t x, shz_vec4_t y) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "shz_vec4_t",
					"doc": ""
				},
				{
					"name": "y",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to the 4D matrix resulting from taking the outer product of the two 4D vectors.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_outer_product"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_outer_product/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_outer_product.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#adb470261a3a864c463a2287a5bc7af39",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L344"
		},
		{
			"name": "shz_xmtrx_init_permutation_wxyz",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 347,
			"signature": "SHZ_INLINE void shz_xmtrx_init_permutation_wxyz(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a permutation matrix, which reorders the components of transformed vectors to be in WXYZ order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_permutation_wxyz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_permutation_wxyz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_permutation_wxyz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ad6f93d0b8ba1ff8f2b91112dbe032d59",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L347"
		},
		{
			"name": "shz_xmtrx_init_permutation_yzwx",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 350,
			"signature": "SHZ_INLINE void shz_xmtrx_init_permutation_yzwx(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a permutation matrix, which reorders the components of transformed vectors to be in YZWX order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_permutation_yzwx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_permutation_yzwx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_permutation_yzwx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac0ab9831cae863607961b95433de0733",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L350"
		},
		{
			"name": "shz_xmtrx_init_permutation_wzyx",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 353,
			"signature": "SHZ_INLINE void shz_xmtrx_init_permutation_wzyx(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a permutation matrix, which reorders the components of transformed vectors to be in WZYX order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_permutation_wzyx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_permutation_wzyx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_permutation_wzyx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ae6cf60f938dd74ab4b177e9c85ce3609",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L353"
		},
		{
			"name": "shz_xmtrx_init_screen",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 364,
			"signature": "SHZ_INLINE void shz_xmtrx_init_screen(float width, float height) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "width",
					"type": "float",
					"doc": ""
				},
				{
					"name": "height",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to the viewport matrix with the given dimensions.",
			"detail": "| fr\\[n + 0\\] | fr\\[n + 4\\] | fr\\[n + 8\\] | fr\\[n + 12\\] |\n| --- | --- | --- | --- |\n| w\\*0.5f | 0.0f | 0.0f | w\\*0.5f |\n| 0.0f | -h\\*0.5f | 0.0f | h\\*0.5f |\n| 0.0f | 0.0f | 1.0f | 0.0f |\n| 0.0f | 0.0f | 0.0f | 1.0f |",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_screen"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_screen/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_screen.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ab5f82d620c4e71cb2b96afb98eecc079",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L364"
		},
		{
			"name": "shz_xmtrx_init_lookat",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 370,
			"signature": "SHZ_INLINE void shz_xmtrx_init_lookat(shz_vec3_t eye, shz_vec3_t center, shz_vec3_t up) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "eye",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "center",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a \"lookAt\" view matrix, equivalent to gluLookAt().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers any previous XMTRX contents."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_lookat"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_lookat/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_lookat.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#acc6ab34ed0717e372746a6c7948d01e8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L370"
		},
		{
			"name": "shz_xmtrx_init_ortho",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 376,
			"signature": "SHZ_INLINE void shz_xmtrx_init_ortho(float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to an orthographic projection matrix, equivalent to glOrtho().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers any previous XMTRX contents."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_ortho"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_ortho/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_ortho.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a72871cf0504fb049f3bb3297328a9318",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L376"
		},
		{
			"name": "shz_xmtrx_init_frustum",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 382,
			"signature": "SHZ_INLINE void shz_xmtrx_init_frustum(float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a frustum projection matrix, equivalent to glFrustum().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers any previous XMTRX contents."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_frustum"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_frustum/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_frustum.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aff411a0a078fe66fbe850686dd708259",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L382"
		},
		{
			"name": "shz_xmtrx_init_perspective",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 388,
			"signature": "SHZ_INLINE void shz_xmtrx_init_perspective(float fov, float aspect, float znear) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "fov",
					"type": "float",
					"doc": ""
				},
				{
					"name": "aspect",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a perspective projection matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers any previous XMTRX contents."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_perspective"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_perspective/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_perspective.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac7ed862d78ac7463784f90f5d4353015",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L388"
		},
		{
			"name": "shz_xmtrx_init_rotation_quat",
			"kind": "function",
			"module": "xmtrx",
			"section": "Initialization",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 395,
			"signature": "void shz_xmtrx_init_rotation_quat(shz_quat_t q) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "q",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Initializes XMTRX to a 3D rotation matrix with its orientation given by a quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers any previous XMTRX contents.",
				"This routine is out-of-line."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::init_rotation_quat"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_quat/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_init_rotation_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a6e409d5c1db970bdf97a7a067b5264f9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L395"
		},
		{
			"name": "shz_xmtrx_apply_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 405,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given 4x4 matrix onto XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a93e5e2543a3dadcc0ec1cd4096f8094e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L405"
		},
		{
			"name": "shz_xmtrx_apply_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 408,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_unaligned_4x4(const float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given 16-entry float array as a 4x4 matrix onto XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a5b254028c4662fc8859e3657c7a6eecb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L408"
		},
		{
			"name": "shz_xmtrx_apply_transpose_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 411,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_transpose_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the transpose of the given 4x4 matrix onto XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a3c60b2d700feb88fca76d1e7e4f3f948",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L411"
		},
		{
			"name": "shz_xmtrx_apply_transpose_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 414,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_transpose_unaligned_4x4(const float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the transpose of the given 16-entry float array as a 4x4 matrix onto XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ab50cc2067d0c99168f10064cb1544d67",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L414"
		},
		{
			"name": "shz_xmtrx_apply_reverse_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 417,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_reverse_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX onto matrix, storing the result as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a82566c874253f821b1827ae842b491b2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L417"
		},
		{
			"name": "shz_xmtrx_apply_reverse_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 420,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_reverse_unaligned_4x4(const float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX onto the given float array as a 4x4 matrix, storing the result as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a69815a911952f958bb14b715aaa5faf9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L420"
		},
		{
			"name": "shz_xmtrx_apply_reverse_transpose_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 423,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_reverse_transpose_4x4(const shz_mat4x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX onto the transpose of matrix, storing the result as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_transpose_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_transpose_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a9532f07c0273cf8df36139183d7143d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L423"
		},
		{
			"name": "shz_xmtrx_apply_reverse_transpose_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 426,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_reverse_transpose_unaligned_4x4(const float matrix[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX onto the transpose of the given float array as a 4x4 matrix, storing the result as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_transpose_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_transpose_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#adc3c961b805a5522b093abd518473c45",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L426"
		},
		{
			"name": "shz_xmtrx_apply_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 429,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_3x4(const shz_mat3x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given 3x4 matrix onto XMTRX, not modifying other elements.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#abf6b0ff411d29c25a82bbbae37829738",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L429"
		},
		{
			"name": "shz_xmtrx_apply_transpose_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 432,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_transpose_3x4(const shz_mat3x4_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the transpose of the given 3x4 matrix onto XMTRX, not modifying other elements.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#afb2a04746f7473d7746a8437cb1c2a3c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L432"
		},
		{
			"name": "shz_xmtrx_apply_reverse_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 435,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_reverse_3x4(const shz_mat3x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX onto matrix, storing the result as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a0687da03e7352fbe8e61dffb1d2145d3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L435"
		},
		{
			"name": "shz_xmtrx_apply_reverse_transpose_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 438,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_reverse_transpose_3x4(const shz_mat3x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX onto the transpose of matrix, storing the result as XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_transpose_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_reverse_transpose_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a4cb38533ef584b0d941fb0b17829116e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L438"
		},
		{
			"name": "shz_xmtrx_apply_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 441,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_3x3(const shz_mat3x3_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given 3x3 matrix onto XMTRX, not modifying other elements.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a880171a02b1afa4c2efef8aaacfc9eee",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L441"
		},
		{
			"name": "shz_xmtrx_apply_transpose_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 444,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_transpose_3x3(const shz_mat3x3_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the transpose of the given 3x3 matrix onto XMTRX, not modifying other elements.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_transpose_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a0413ed9e511171e6c924f9ccd313cdbd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L444"
		},
		{
			"name": "shz_xmtrx_apply_2x2",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 447,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_2x2(const shz_mat2x2_t* matrix) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat2x2_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the given 2x2 matrix onto XMTRX, not modifying other elements.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_2x2/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_2x2.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a862ea75edbbbdf5e3dca8feb262f2918",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L447"
		},
		{
			"name": "shz_xmtrx_apply_translation",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 450,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_translation(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Adds the values of the given 3 components to the 3D translation components of XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_translation"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_translation/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aed4884dcb36c142b0637a0c165d190d3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L450"
		},
		{
			"name": "shz_xmtrx_apply_scale",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 453,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_scale(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies the values of the inner 3x3 matrix by the given 3D scaling terms.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_scale"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_scale/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac9e1cda77998d1771a5fba032b00f13c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L453"
		},
		{
			"name": "shz_xmtrx_apply_rotation_x",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 456,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_x(float x) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Transforms the values of the inner 3x3 matrix by a rotation matrix of x radians about the X axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_x"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_x/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_x.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af5b49514344279a605282a06e24845e8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L456"
		},
		{
			"name": "shz_xmtrx_apply_rotation_y",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 459,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_y(float y) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "y",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Transforms the values of the inner 3x3 matrix by a rotation matrix of y radians about the Y axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_y"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_y/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_y.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a8d910557eeb22262496eb93c75e90dad",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L459"
		},
		{
			"name": "shz_xmtrx_apply_rotation_z",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 462,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_z(float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Transforms the values of the inner 3x3 matrix by a rotation matrix of z radians about the Z axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_z"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_z/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_z.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a030a71ad5210596211174e026af11004",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L462"
		},
		{
			"name": "shz_xmtrx_apply_rotation_xyz",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 473,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_xyz(float xAngle, float yAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D X-Y-Z rotation matrix, with the corresponding angles given in radians.",
			"detail": "The transform is applied to the inner 3x3 values within XMTRX, preserving the translational components.",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_apply_rotation_zyx",
				"shz_xmtrx_apply_rotation_yxz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_xyz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_xyz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a73d69eae97d3934f990d21429aaa55a5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L473"
		},
		{
			"name": "shz_xmtrx_apply_rotation_zyx",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 484,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_zyx(float zAngle, float yAngle, float xAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D Z-Y-X rotation matrix, with the corresponding angles given in radians.",
			"detail": "The transform is applied to the inner 3x3 values within XMTRX, preserving the translational components.",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_apply_rotation_xyz",
				"shz_xmtrx_apply_rotation_yxz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_zyx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_zyx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a9dde2cc0ea5e6c2cb94bdd0745c7122d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L484"
		},
		{
			"name": "shz_xmtrx_apply_rotation_zxy",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 495,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_zxy(float zAngle, float xAngle, float yAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D Z-X-Y rotation matrix, with the corresponding angles given in radians.",
			"detail": "The transform is applied to the inner 3x3 values within XMTRX, preserving the translational components.",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_apply_rotation_zyx",
				"shz_xmtrx_apply_rotation_yxz"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_zxy"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_zxy/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aced1c3a02c0e3785f8780a88f5e23ebc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L495"
		},
		{
			"name": "shz_xmtrx_apply_rotation_yxz",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 506,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_yxz(float yAngle, float xAngle, float zAngle) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "yAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAngle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAngle",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D Y-X-Z rotation matrix, with the corresponding angles given in radians.",
			"detail": "The transform is applied to the inner 3x3 values within XMTRX, preserving the translational components.",
			"returns": "",
			"notes": [
				"The given angles are represented as Tait-Bryan angles, representing an extrinsic rotation."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_apply_rotation_xyz",
				"shz_xmtrx_apply_rotation_zyx"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_yxz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_yxz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a8d4460a1686360fff58363257ac45136",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L506"
		},
		{
			"name": "shz_xmtrx_apply_rotation",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 509,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation(float angle, float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "angle",
					"type": "float",
					"doc": ""
				},
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Transforms the values of the inner 3x3 matrix by a rotation matrix of angle radians about the axis with the given components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aaaaa26d9ccd31d5328636be24ddb0ef6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L509"
		},
		{
			"name": "shz_xmtrx_apply_rotation_quat",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 512,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_rotation_quat(shz_quat_t quat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "quat",
					"type": "shz_quat_t",
					"doc": ""
				}
			],
			"brief": "Transforms the values of the inner 3x3 matrix by the rotation matrix represented by the given quaternion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_rotation_quat"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_quat/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_rotation_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a1b0f52d88c771846801d786b44e3a3c2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L512"
		},
		{
			"name": "shz_xmtrx_apply_lookat",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 515,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_lookat(shz_vec3_t eye, shz_vec3_t center, shz_vec3_t up) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "eye",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "center",
					"type": "shz_vec3_t",
					"doc": ""
				},
				{
					"name": "up",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Applies the 3D \"lookAt\" matrix constructed with the given vector components onto XMTRX. Equivalent to gluLookAt().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_lookat"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_lookat/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_lookat.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ad74a6d2c726b9c8ec6b49eaa13b31a44",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L515"
		},
		{
			"name": "shz_xmtrx_apply_ortho",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 518,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_ortho(float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Applies a 2D orthographic projection matrix onto XMTRX, equivalent to glOrtho().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_ortho"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_ortho/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_ortho.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a3b9f9048c8b852dff02beeb1be5e82a6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L518"
		},
		{
			"name": "shz_xmtrx_apply_frustum",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 521,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_frustum(float left, float right, float bottom, float top, float znear, float zfar) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "left",
					"type": "float",
					"doc": ""
				},
				{
					"name": "right",
					"type": "float",
					"doc": ""
				},
				{
					"name": "bottom",
					"type": "float",
					"doc": ""
				},
				{
					"name": "top",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zfar",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Applies a frustum projection matrix onto XMTRX, equivalent to glFrustum().",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_frustum"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_frustum/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_frustum.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a5ac89c2ebd7beae0b861a599674d975b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L521"
		},
		{
			"name": "shz_xmtrx_apply_perspective",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 532,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_perspective(float fov, float aspect, float znear) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "fov",
					"type": "float",
					"doc": ""
				},
				{
					"name": "aspect",
					"type": "float",
					"doc": ""
				},
				{
					"name": "znear",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the perspective matrix constructed from the given values onto XMTRX.",
			"detail": "| fr\\[n + 0\\] | fr\\[n + 4\\] | fr\\[n + 8\\] | fr\\[n + 12\\] |\n| --- | --- | --- | --- |\n| cot(f)/a | 0.0f | 0.0f | 0.0f |\n| 0.0f | cot(f) | 0.0f | 0.0f |\n| 0.0f | 0.0f | 0.0f | nz |\n| 0.0f | 0.0f | -1.0f | 0.0f |",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_perspective"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_perspective/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_perspective.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a8ba7d1a98b27d43d34c749d88efea88f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L532"
		},
		{
			"name": "shz_xmtrx_apply_screen",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 543,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_screen(float width, float height) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "width",
					"type": "float",
					"doc": ""
				},
				{
					"name": "height",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the viewport matrix created with the given components.",
			"detail": "| fr\\[n + 0\\] | fr\\[n + 4\\] | fr\\[n + 8\\] | fr\\[n + 12\\] |\n| --- | --- | --- | --- |\n| w\\*0.5f | 0.0f | 0.0f | w\\*0.5f |\n| 0.0f | -h\\*0.5f | 0.0f | h\\*0.5f |\n| 0.0f | 0.0f | 1.0f | 0.0f |\n| 0.0f | 0.0f | 0.0f | 1.0f |",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_screen"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_screen/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_screen.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aec7f032a8c67ab5ab0abfa3120a4a9dd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L543"
		},
		{
			"name": "shz_xmtrx_apply_symmetric_skew",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 546,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_symmetric_skew(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates the 3D symmetric skew matrix with the given components onto XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_symmetric_skew"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_symmetric_skew/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_symmetric_skew.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a687ecf8a2f2100a5152b55cf5d74e926",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L546"
		},
		{
			"name": "shz_xmtrx_apply_permutation_wxyz",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 549,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_permutation_wxyz(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a permutation matrix, which reorders the components of transformed vectors to be in WXYZ order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_permutation_wxyz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_permutation_wxyz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_permutation_wxyz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#acdc4378287cf550208f0579576fe661c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L549"
		},
		{
			"name": "shz_xmtrx_apply_permutation_yzwx",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 552,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_permutation_yzwx(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a permutation matrix, which reorders the components of transformed vectors to be in YZWX order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_permutation_yzwx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_permutation_yzwx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_permutation_yzwx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac90449f1cbcacedb5fdcb75b8b591692",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L552"
		},
		{
			"name": "shz_xmtrx_apply_permutation_wzyx",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 555,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_permutation_wzyx(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates a permutation matrix, which reorders the components of transformed vectors to be in WZYX order.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_permutation_wzyx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_permutation_wzyx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_permutation_wzyx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a80bd9b9ac834a4ffa0c1d1dd69ae976b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L555"
		},
		{
			"name": "shz_xmtrx_apply_self",
			"kind": "function",
			"module": "xmtrx",
			"section": "Apply Operation",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 558,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_self(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulatse the XMTRX matrix by itself, squaring it.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::apply_self"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_self/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_self.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aa0cee8e684abd01cf522cef6ce030c17",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L558"
		},
		{
			"name": "shz_xmtrx_translate",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 568,
			"signature": "SHZ_INLINE void shz_xmtrx_translate(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D translation matrix with the given components (glTranslatef() equivalent).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::translate"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_translate/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_translate.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#acde55e871ec981de186b2a3d1e026fc7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L568"
		},
		{
			"name": "shz_xmtrx_scale",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 571,
			"signature": "SHZ_INLINE void shz_xmtrx_scale(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D scaling matrix with the given components (glScalef() equivalent).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::scale"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_scale/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ac59af4a1915570857406e0a69dbeebb9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L571"
		},
		{
			"name": "shz_xmtrx_rotate_x",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 574,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_x(float radians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D rotation matrix about the X axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_x"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_x/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_x.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a259b99445bec19e11c33016ee44e2173",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L574"
		},
		{
			"name": "shz_xmtrx_rotate_y",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 577,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_y(float radians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D rotation matrix about the Y axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_y"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_y/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_y.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a7352f21cb30e1471d54974d57a2f8190",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L577"
		},
		{
			"name": "shz_xmtrx_rotate_z",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 580,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_z(float radians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by a 3D rotation matrix about the Z axis.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_z"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_z/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_z.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a3f3605b7e1b776a01ed96be6804cbb0a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L580"
		},
		{
			"name": "shz_xmtrx_rotate_xyz",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 583,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_xyz(float xRadians, float yRadians, float zRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by 3D rotation matrices about the X then Y then Z axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_xyz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_xyz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_xyz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a586f932591c41d33f6009fed6aee11d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L583"
		},
		{
			"name": "shz_xmtrx_rotate_zyx",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 586,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_zyx(float zRadians, float yRadians, float xRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by 3D rotation matrices about the Z then Y then X axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_zyx"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_zyx/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_zyx.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a493b5f5f5ae448973cfdc7382552af49",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L586"
		},
		{
			"name": "shz_xmtrx_rotate_zxy",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 589,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_zxy(float zRadians, float xRadians, float yRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by 3D rotation matrices about the Z then X then Y axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_zxy"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_zxy/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_zxy.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a5ac3494b23b15014ce43b4a62d80ce87",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L589"
		},
		{
			"name": "shz_xmtrx_rotate_yxz",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 592,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate_yxz(float yRadians, float xRadians, float zRadians) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "yRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xRadians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zRadians",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by 3D rotation matrices about the Y then X then Z axes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate_yxz"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_yxz/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate_yxz.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af0631748684b07b95a061f6bcbeccdd6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L592"
		},
		{
			"name": "shz_xmtrx_rotate",
			"kind": "function",
			"module": "xmtrx",
			"section": "GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 595,
			"signature": "SHZ_INLINE void shz_xmtrx_rotate(float radians, float xAxis, float yAxis, float zAxis) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "radians",
					"type": "float",
					"doc": ""
				},
				{
					"name": "xAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "yAxis",
					"type": "float",
					"doc": ""
				},
				{
					"name": "zAxis",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Multiplies and accumulates XMTRX by the 3D rotation matrix formed by the given axis and angle (glRotatef equivalent).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::rotate"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_rotate.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a4b710f61dfd30ecaf7a27adec5d2c8bc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L595"
		},
		{
			"name": "shz_xmtrx_translate_reverse",
			"kind": "function",
			"module": "xmtrx",
			"section": "Reverse GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 605,
			"signature": "SHZ_INLINE void shz_xmtrx_translate_reverse(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Pre-multiplies and accumulates XMTRX onto the 3D translation matrix with the given components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::translate_reverse"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_translate_reverse/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_translate_reverse.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a35108085e988780fd056e78156e8ec3b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L605"
		},
		{
			"name": "shz_xmtrx_scale_reverse",
			"kind": "function",
			"module": "xmtrx",
			"section": "Reverse GL Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 608,
			"signature": "SHZ_INLINE void shz_xmtrx_scale_reverse(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Pre-multiplies and accumulates XMTRX onto the 3D scaling matrix with the given components.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::scale_reverse"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_scale_reverse/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_scale_reverse.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a30403a30fc5b178f5ab60d0b4aecf9cc",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L608"
		},
		{
			"name": "shz_xmtrx_load_apply_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 628,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_4x4(const shz_mat4x4_t* matrix1, const shz_mat4x4_t* matrix2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix1",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the result of applying matrix2 onto matrix1.",
			"detail": "This operation is equivalent to: [`shz_xmtrx_load_4x4`](/api/xmtrx/shz_xmtrx_load_4x4/)(matrix1); [`shz_xmtrx_apply_4x4`](/api/xmtrx/shz_xmtrx_apply_4x4/)(matrix2);\n\nHowever, it has been optimized and pipelined for performing the load and multiply in parallel.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_4x4",
				"shz_xmtrx_apply_4x4",
				"shz_xmtrx_load_apply_store_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a478275158499d7f820cd7dd82d095ae2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L628"
		},
		{
			"name": "shz_xmtrx_load_apply_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 639,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_unaligned_4x4(const float matrix1[16], const float matrix2[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix1",
					"type": "const float [16]",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the result of applying unaligned matrix2 onto matrix1.",
			"detail": "This routine is equivalent to `shz_xmtrx_load_apply_4x4()`, except that the two operand matrices do not require 8-byte alignment and can simply be 16-element single-precision float arrays.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_apply_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a49d608b3b4adcc58808cc65486c3f053",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L639"
		},
		{
			"name": "shz_xmtrx_apply_store_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 658,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_store_4x4(shz_mat4x4_t* out, const shz_mat4x4_t* in) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "out",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "in",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Multiplies XMTRX by the matrix, in, storing the result within the matrix, out.",
			"detail": "This routine is roughly equivalent to: [`shz_xmtrx_apply_4x4`](/api/xmtrx/shz_xmtrx_apply_4x4/)(in); [`shz_xmtrx_store_4x4`](/api/xmtrx/shz_xmtrx_store_4x4/)(out);\n\nHowever, it has been optimized and pipelined for performing the multiply and store in parallel.",
			"returns": "",
			"notes": [
				"This is useful for when you want to multiply a batch of matrices by the same matrix, held within XMTRX."
			],
			"warnings": [
				"The result of the multiplication is not stored within XMTRX, despite it getting clobbered."
			],
			"sa": [
				"shz_xmtrx_apply_4x4",
				"shz_xmtrx_store_4x4",
				"shz_xmtrx_apply_store_unaligned_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_store_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_store_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a923a10e6129358d909d30d88b9ee9935",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L658"
		},
		{
			"name": "shz_xmtrx_apply_store_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 677,
			"signature": "SHZ_INLINE void shz_xmtrx_apply_store_unaligned_4x4(float out[16], const float in[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "out",
					"type": "float [16]",
					"doc": ""
				},
				{
					"name": "in",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Multiplies XMTRX by the unaligned matrix, in, storing the result within the unaligned matrix, out.",
			"detail": "This routine is roughly equivalent to: [`shz_xmtrx_apply_unaligned_4x4`](/api/xmtrx/shz_xmtrx_apply_unaligned_4x4/)(in); [`shz_xmtrx_store_unaligned_4x4`](/api/xmtrx/shz_xmtrx_store_unaligned_4x4/)(out);\n\nHowever, it has been optimized and pipelined for performing the multiply and store in parallel.",
			"returns": "",
			"notes": [
				"This is useful for when you want to multiply a batch of matrices by the same matrix, held within XMTRX."
			],
			"warnings": [
				"The result of the multiplication is not stored within XMTRX, despite it getting clobbered."
			],
			"sa": [
				"shz_xmtrx_apply_unaligned_4x4",
				"shz_xmtrx_store_unaligned_4x4",
				"shz_xmtrx_apply_store_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_store_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_apply_store_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a651f20befe8ec9653e76a8dc383b9383",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L677"
		},
		{
			"name": "shz_xmtrx_load_apply_store_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 692,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_store_4x4(shz_mat4x4_t* out, const shz_mat4x4_t* matrix1, const shz_mat4x4_t* matrix2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "out",
					"type": "shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "matrix1",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the 4x4 result of applying matrix2 onto matrix1, storing the result.",
			"detail": "This operation is equivalent to: [`shz_xmtrx_load_4x4`](/api/xmtrx/shz_xmtrx_load_4x4/)(matrix1); [`shz_xmtrx_apply_4x4`](/api/xmtrx/shz_xmtrx_apply_4x4/)(matrix2); [`shz_xmtrx_store_4x4`](/api/xmtrx/shz_xmtrx_store_4x4/)(out);\n\nHowever, it has been optimized and pipelined for performing the loads, multiplies, and stores in parallel.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_apply_4x4",
				"shz_xmtrx_load_apply_store_unaligned_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#acda42568ed3855052943a511a6dfeed4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L692"
		},
		{
			"name": "shz_xmtrx_load_apply_store_unaligned_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 704,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_store_unaligned_4x4(float out[16], const float matrix1[16], const float matrix2[16]) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "out",
					"type": "float [16]",
					"doc": ""
				},
				{
					"name": "matrix1",
					"type": "const float [16]",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const float [16]",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the result of applying unaligned matrix2 onto unaligned matrix1, storing the result.",
			"detail": "This routine is equivalent to `shz_xmtrx_load_apply_store_4x4()`, except that the three operand matrices do not require 8-byte alignment and can simply be 16-element single-precision float arrays.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_apply_store_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_unaligned_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_unaligned_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a0dad615c7bb6822a4f3248652e98033f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L704"
		},
		{
			"name": "shz_xmtrx_load_apply_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 719,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_3x4(const shz_mat3x4_t* matrix1, const shz_mat3x4_t* matrix2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix1",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the result of applying matrix2 onto matrix1.",
			"detail": "This operation is equivalent to: [`shz_xmtrx_load_3x4`](/api/xmtrx/shz_xmtrx_load_3x4/)(matrix1); [`shz_xmtrx_apply_3x4`](/api/xmtrx/shz_xmtrx_apply_3x4/)(matrix2);\n\nHowever, it has been optimized and pipelined for performing the load and multiply in parallel.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_3x4",
				"shz_xmtrx_apply_3x4",
				"shz_xmtrx_load_apply_store_3x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aed2931204416d539d32cf6952e1e9c85",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L719"
		},
		{
			"name": "shz_xmtrx_load_apply_store_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 737,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_store_3x4(shz_mat3x4_t* out, const shz_mat3x4_t* matrix1, const shz_mat3x4_t* matrix2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "out",
					"type": "shz_mat3x4_t *",
					"doc": ""
				},
				{
					"name": "matrix1",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const shz_mat3x4_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the 3x4 result of applying matrix2 onto matrix1, storing the result.",
			"detail": "This operation is equivalent to: [`shz_xmtrx_load_3x4`](/api/xmtrx/shz_xmtrx_load_3x4/)(matrix1); [`shz_xmtrx_apply_3x4`](/api/xmtrx/shz_xmtrx_apply_3x4/)(matrix2); [`shz_xmtrx_store_3x4`](/api/xmtrx/shz_xmtrx_store_3x4/)(out);\n\nHowever, it has been optimized and pipelined for performing the loads, multiplies, and stores in parallel.",
			"returns": "",
			"notes": [
				"The resulting matrix does not get stored within XMTRX, despite it getting clobbered."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_3x4",
				"shz_xmtrx_apply_3x4",
				"shz_xmtrx_store_3x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a400e50bf6ecd1a6136ae714cfb3b5e01",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L737"
		},
		{
			"name": "shz_xmtrx_load_apply_store_3x3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Compound Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 756,
			"signature": "SHZ_INLINE void shz_xmtrx_load_apply_store_3x3(shz_mat3x3_t* out, const shz_mat3x3_t* matrix1, const shz_mat3x3_t* matrix2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "out",
					"type": "shz_mat3x3_t *",
					"doc": ""
				},
				{
					"name": "matrix1",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				},
				{
					"name": "matrix2",
					"type": "const shz_mat3x3_t *",
					"doc": ""
				}
			],
			"brief": "Loads XMTRX with the 3x3 result of applying matrix2 onto matrix1, storing the result.",
			"detail": "This operation is equivalent to: [`shz_xmtrx_load_3x3`](/api/xmtrx/shz_xmtrx_load_3x3/)(matrix1); [`shz_xmtrx_apply_3x3`](/api/xmtrx/shz_xmtrx_apply_3x3/)(matrix2); [`shz_xmtrx_store_3x3`](/api/xmtrx/shz_xmtrx_store_3x3/)(out);\n\nHowever, it has been optimized and pipelined for performing the loads, multiplies, and stores in parallel.",
			"returns": "",
			"notes": [
				"The resulting matrix does not get stored within XMTRX, despite it getting clobbered."
			],
			"warnings": [],
			"sa": [
				"shz_xmtrx_load_3x3",
				"shz_xmtrx_apply_3x3",
				"shz_xmtrx_store_3x3"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_3x3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_load_apply_store_3x3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a1667985fdebf2e445f0742dd3bfc4e8a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L756"
		},
		{
			"name": "shz_xmtrx_transform_vec4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 768,
			"signature": "SHZ_INLINE shz_vec4_t shz_xmtrx_transform_vec4(shz_vec4_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec4_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec4_t",
					"doc": ""
				}
			],
			"brief": "Returns the 4D vector that is the result of transforming vec by XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_vec4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_vec4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ab6b47fc14cec554027e2299a371f0cf0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L768"
		},
		{
			"name": "shz_xmtrx_transform_vec3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 771,
			"signature": "SHZ_INLINE shz_vec3_t shz_xmtrx_transform_vec3(shz_vec3_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the 3D vector that is the result of transforming vec by XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_vec3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_vec3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a96ac43ebfcf64cfc969cc88e06e73472",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L771"
		},
		{
			"name": "shz_xmtrx_transform_vec2",
			"kind": "function",
			"module": "xmtrx",
			"section": "Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 774,
			"signature": "SHZ_INLINE shz_vec2_t shz_xmtrx_transform_vec2(shz_vec2_t vec) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "vec",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the 2D vector that is the result of transforming vec by XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_vec2/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_vec2.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#abf22ae76ea98eea6c42d881ebe621b63",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L774"
		},
		{
			"name": "shz_xmtrx_transform_point2",
			"kind": "function",
			"module": "xmtrx",
			"section": "Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 777,
			"signature": "SHZ_INLINE shz_vec2_t shz_xmtrx_transform_point2(shz_vec2_t pt) SHZ_NOEXCEPT;",
			"return_type": "shz_vec2_t",
			"params": [
				{
					"name": "pt",
					"type": "shz_vec2_t",
					"doc": ""
				}
			],
			"brief": "Returns the 2D point that is the result of transforming pt by XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_point2/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_point2.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ab03e6061b02a4d937bd2479e90e84304",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L777"
		},
		{
			"name": "shz_xmtrx_transform_point3",
			"kind": "function",
			"module": "xmtrx",
			"section": "Transformations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 780,
			"signature": "SHZ_INLINE shz_vec3_t shz_xmtrx_transform_point3(shz_vec3_t pt) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "pt",
					"type": "shz_vec3_t",
					"doc": ""
				}
			],
			"brief": "Returns the 3D point that is the result of transforming pt by XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_point3/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transform_point3.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a9baaa842811dde9380adc0e2ab92a7ed",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L780"
		},
		{
			"name": "shz_xmtrx_set_translation",
			"kind": "function",
			"module": "xmtrx",
			"section": "Setters",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 790,
			"signature": "SHZ_INLINE void shz_xmtrx_set_translation(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Sets only the translational components of XMTRX to the given values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::set_translation"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_set_translation/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_set_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a2e347c978fd31c0b5cb8cc532e118ae7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L790"
		},
		{
			"name": "shz_xmtrx_set_scale",
			"kind": "function",
			"module": "xmtrx",
			"section": "Setters",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 793,
			"signature": "SHZ_INLINE void shz_xmtrx_set_scale(float x, float y, float z) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "x",
					"type": "float",
					"doc": ""
				},
				{
					"name": "y",
					"type": "float",
					"doc": ""
				},
				{
					"name": "z",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Sets only the inner 3x3 submatrix of XMTRX to be a scaling matrix.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::set_scale"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_set_scale/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_set_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a241a1443393751ac1a319450a08c78ee",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L793"
		},
		{
			"name": "shz_xmtrx_get_translation",
			"kind": "function",
			"module": "xmtrx",
			"section": "Getters",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 803,
			"signature": "SHZ_INLINE shz_vec3_t shz_xmtrx_get_translation(void) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Returns the translational components from the last column of XMTRX, as a 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::get_translation"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_get_translation/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_get_translation.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a7a43737c8220a0e48f76489ad87e2b9a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L803"
		},
		{
			"name": "shz_xmtrx_get_scale",
			"kind": "function",
			"module": "xmtrx",
			"section": "Getters",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 810,
			"signature": "SHZ_INLINE shz_vec3_t shz_xmtrx_get_scale(void) SHZ_NOEXCEPT;",
			"return_type": "shz_vec3_t",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Returns the scaling components from the inner 3x3 matrix of XMTRX, as a 3D vector.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine assumes XMTRX is a standard TRS-style transform matrix, without shearing or reflection."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::get_scale"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_get_scale/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_get_scale.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a947474aaf5a030aac7d5a0262bbda210",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L810"
		},
		{
			"name": "shz_xmtrx_add_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Component-Wise Matrix Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 820,
			"signature": "SHZ_INLINE void shz_xmtrx_add_4x4(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Adds each element within mat to each element within XMTRX, storing the result in XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::add"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_add_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_add_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a57f385c7a2ad2869719e8dac030ae906",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L820"
		},
		{
			"name": "shz_xmtrx_sub_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Component-Wise Matrix Operations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 823,
			"signature": "SHZ_INLINE void shz_xmtrx_sub_4x4(const shz_mat4x4_t* mat) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "mat",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				}
			],
			"brief": "Subtracts each element within mat from each element within XMTRX, storing the result in XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::sub"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_sub_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_sub_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ad611f544e03a0b7963f72fc4f494ad3e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L823"
		},
		{
			"name": "shz_xmtrx_transpose",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 833,
			"signature": "SHZ_INLINE void shz_xmtrx_transpose(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Transposes the elements within XMTRX, in-place.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::transpose"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transpose/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_transpose.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#ab930edfb1b8c3bd4e743aceeb35103d7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L833"
		},
		{
			"name": "shz_xmtrx_negate",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 836,
			"signature": "SHZ_INLINE void shz_xmtrx_negate(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Negates each element held within XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::negate"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_negate/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_negate.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a43708d7118c058a9fcb652a33382c430",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L836"
		},
		{
			"name": "shz_xmtrx_abs",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 839,
			"signature": "SHZ_INLINE void shz_xmtrx_abs(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Takes the absolute value of each element held within XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::abs"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_abs/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_abs.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#af16cfb8938af412e0d2bfac268ba8a24",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L839"
		},
		{
			"name": "shz_xmtrx_to_quat",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 842,
			"signature": "shz_quat_t shz_xmtrx_to_quat(void) SHZ_NOEXCEPT;",
			"return_type": "shz_quat_t",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Constructs a quaternion from the 3D rotation matrix within XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::to_quat"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_to_quat/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_to_quat.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a0b09c9bc74ac14e14d4fde3013edea9c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L842"
		},
		{
			"name": "shz_xmtrx_determinant",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 845,
			"signature": "float shz_xmtrx_determinant(void) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Returns the determinant of XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::determinant"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_determinant/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_determinant.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#aa9e96e25dd9775e2cc2a150aec24a8ab",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L845"
		},
		{
			"name": "shz_xmtrx_invert",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 854,
			"signature": "void shz_xmtrx_invert(void) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Inverts XMTRX in-place.",
			"detail": "Stores XMTRX to memory, computes the inverse via `shz_mat4x4_inverse()`, and reloads the result.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine is out-of-line."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::xmtrx::invert"
			],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_invert/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_invert.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a11b9714e907be132cdaefce1346f711e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L854"
		},
		{
			"name": "shz_xmtrx_blend",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 865,
			"signature": "SHZ_INLINE void shz_xmtrx_blend(const shz_mat4x4_t* matrix, float weight) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": ""
				},
				{
					"name": "weight",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Deprecated way to add and accumulate a scaled 4x4 matrix onto XMTRX.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_blend_4x4"
			],
			"documented": true,
			"deprecated": "This routine has been renamed to shz_xmtrx_blend_4x4(), as support is being added to blend matrices of different dimensions onto XMTRX.",
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_blend/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_blend.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a02d91d344829ab54473e16f4c917926d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L865"
		},
		{
			"name": "shz_xmtrx_blend_4x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 881,
			"signature": "SHZ_INLINE void shz_xmtrx_blend_4x4(const shz_mat4x4_t* matrix, float weight) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat4x4_t *",
					"doc": "4x4 matrix to multiply and accumulate onto XMTRX."
				},
				{
					"name": "weight",
					"type": "float",
					"doc": "Factor each element in `matrix` gets scaled by."
				}
			],
			"brief": "Adds and accumulates a scaled 4x4 matrix onto XMTRX.",
			"detail": "Each component of `joint_matrix` will be multiplied by `weight`, with the result being added to the existing value of that component of XMTRX.\n\nThis is useful for accumulating weighted joint matrices onto an initially zeroed-out XMTRX. This allows for in-place construction of a skin matrix, which can then be directly used to transform the vertices of a mesh against for animation.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_zero",
				"shz_xmtrx_blend_3x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_blend_4x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_blend_4x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a0d555faa9324aff0b592bedfea5118a0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L881"
		},
		{
			"name": "shz_xmtrx_blend_3x4",
			"kind": "function",
			"module": "xmtrx",
			"section": "Miscellaneous",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 897,
			"signature": "SHZ_INLINE void shz_xmtrx_blend_3x4(const shz_mat3x4_t* matrix, float weight) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "matrix",
					"type": "const shz_mat3x4_t *",
					"doc": "3x4 matrix to multiply and accumulate onto XMTRX."
				},
				{
					"name": "weight",
					"type": "float",
					"doc": "Factor each element in `matrix` gets scaled by."
				}
			],
			"brief": "Adds and accumulates a scaled 3x4 matrix onto XMTRX.",
			"detail": "Each component of `joint_matrix` will be multiplied by `weight`, with the result being added to the existing value of that component of XMTRX.\n\nThis is useful for accumulating weighted joint matrices onto an initially zeroed-out XMTRX. This allows for in-place construction of a skin matrix, which can then be directly used to transform the vertices of a mesh against for animation.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_init_zero",
				"shz_xmtrx_blend_4x4"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_blend_3x4/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_blend_3x4.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a243bbeb5b1b2c637a018d4bee91af605",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L897"
		},
		{
			"name": "shz_xmtrx_reg",
			"kind": "enum",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "typedef enum shz_xmtrx_reg {\n    SHZ_XMTRX_XF0,  //!< FP register `xf0`.\n    SHZ_XMTRX_XF1,  //!< FP register `xf1`.\n    SHZ_XMTRX_XF2,  //!< FP register `xf2`.\n    SHZ_XMTRX_XF3,  //!< FP register `xf3`.\n    SHZ_XMTRX_XF4,  //!< FP register `xf4`.\n    SHZ_XMTRX_XF5,  //!< FP register `xf5`.\n    SHZ_XMTRX_XF6,  //!< FP register `xf6`.\n    SHZ_XMTRX_XF7,  //!< FP register `xf7`.\n    SHZ_XMTRX_XF8,  //!< FP register `xf8`.\n    SHZ_XMTRX_XF9,  //!< FP register `xf9`.\n    SHZ_XMTRX_XF10, //!< FP register `xf10`.\n    SHZ_XMTRX_XF11, //!< FP register `xf11`.\n    SHZ_XMTRX_XF12, //!< FP register `xf12`.\n    SHZ_XMTRX_XF13, //!< FP register `xf13`.\n    SHZ_XMTRX_XF14, //!< FP register `xf14`.\n    SHZ_XMTRX_XF15  //!< FP register `xf15`.\n} shz_xmtrx_reg_t, shz_xmtrx_reg;",
			"brief": "Registers comprising XMTRX, in the FPU back-bank.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": "https://sh4zam.com/shz__xmtrx_8h.html#a5a6356831207f1970dfdfc5db3dfc10a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF0",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF0",
			"brief": "FP register xf0.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf0",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF1",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF1",
			"brief": "FP register xf1.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf1",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF10",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF10",
			"brief": "FP register xf10.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf10",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF11",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF11",
			"brief": "FP register xf11.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf11",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF12",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF12",
			"brief": "FP register xf12.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf12",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF13",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF13",
			"brief": "FP register xf13.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf13",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF14",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF14",
			"brief": "FP register xf14.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf14",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF15",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF15",
			"brief": "FP register xf15.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf15",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF2",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF2",
			"brief": "FP register xf2.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf2",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF3",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF3",
			"brief": "FP register xf3.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf3",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF4",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF4",
			"brief": "FP register xf4.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf4",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF5",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF5",
			"brief": "FP register xf5.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf5",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF6",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF6",
			"brief": "FP register xf6.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf6",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF7",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF7",
			"brief": "FP register xf7.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf7",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF8",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF8",
			"brief": "FP register xf8.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf8",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_XMTRX_XF9",
			"kind": "enumerator",
			"module": "xmtrx",
			"section": "Enumerations",
			"header": "sh4zam/shz_xmtrx.h",
			"line": 68,
			"signature": "SHZ_XMTRX_XF9",
			"brief": "FP register xf9.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_xmtrx_reg"
			],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg/#shz_xmtrx_xf9",
			"md": "https://sh4zam.com/api/xmtrx/shz_xmtrx_reg.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_xmtrx.h#L68"
		},
		{
			"name": "SHZ_CMPLXF",
			"kind": "macro",
			"module": "complex",
			"section": "Preprocessor",
			"header": "sh4zam/shz_complex.h",
			"line": 38,
			"signature": "#define SHZ_CMPLXF(x, y) shz_cinitf(x, y)",
			"params": [
				{
					"name": "x",
					"type": "",
					"doc": ""
				},
				{
					"name": "y",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Initializes a complex number.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/complex/SHZ_CMPLXF/",
			"md": "https://sh4zam.com/api/complex/SHZ_CMPLXF.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a0afb25b935f266a0c9c89b0d5a65d4ee",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L38"
		},
		{
			"name": "SHZ_CMPLXF32",
			"kind": "macro",
			"module": "complex",
			"section": "Preprocessor",
			"header": "sh4zam/shz_complex.h",
			"line": 39,
			"signature": "#define SHZ_CMPLXF32(x, y) SHZ_CMPLXF(x, y)",
			"params": [
				{
					"name": "x",
					"type": "",
					"doc": ""
				},
				{
					"name": "y",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Initializes a complex number.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/complex/SHZ_CMPLXF32/",
			"md": "https://sh4zam.com/api/complex/SHZ_CMPLXF32.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a5bd519b1c42e363dc24672511db6f171",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L39"
		},
		{
			"name": "SHZ_I",
			"kind": "macro",
			"module": "complex",
			"section": "Preprocessor",
			"header": "sh4zam/shz_complex.h",
			"line": 40,
			"signature": "#define SHZ_I SHZ_CMPLXF32(0.0f, 1.0f)",
			"params": [],
			"brief": "Unit imaginary constant, 'I'.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/complex/SHZ_I/",
			"md": "https://sh4zam.com/api/complex/SHZ_I.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#afd07e4b5fde93dc8b00f110b75651bf2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L40"
		},
		{
			"name": "shz_cinitf",
			"kind": "function",
			"module": "complex",
			"section": "Basic",
			"header": "sh4zam/shz_complex.h",
			"line": 61,
			"signature": "SHZ_INLINE shz_complex_t shz_cinitf(float real, float imag) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "real",
					"type": "float",
					"doc": ""
				},
				{
					"name": "imag",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a complex number which has been initialized to contain the given component values.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cinitf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cinitf/",
			"md": "https://sh4zam.com/api/complex/shz_cinitf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a72286736d13aab0847ca4ab9647f6748",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L61"
		},
		{
			"name": "shz_cpolarf",
			"kind": "function",
			"module": "complex",
			"section": "Basic",
			"header": "sh4zam/shz_complex.h",
			"line": 64,
			"signature": "SHZ_INLINE shz_complex_t shz_cpolarf(float r, float theta) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "r",
					"type": "float",
					"doc": ""
				},
				{
					"name": "theta",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Returns a complex number with a magnitude of r, and a phase angle of theta (in radians).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cpolarf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cpolarf/",
			"md": "https://sh4zam.com/api/complex/shz_cpolarf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a19437e010b62b3c292b23ebf87c5716b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L64"
		},
		{
			"name": "shz_cequalf",
			"kind": "function",
			"module": "complex",
			"section": "Basic",
			"header": "sh4zam/shz_complex.h",
			"line": 67,
			"signature": "SHZ_INLINE bool shz_cequalf(shz_complex_t lhs, shz_complex_t rhs) SHZ_NOEXCEPT;",
			"return_type": "bool",
			"params": [
				{
					"name": "lhs",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Checks for equality between two complex numbers with either an absolute or relative tolerance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cequalf",
				"shz::operator=="
			],
			"url": "https://sh4zam.com/api/complex/shz_cequalf/",
			"md": "https://sh4zam.com/api/complex/shz_cequalf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a47625bab0e02504cc4aa6796f05deda9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L67"
		},
		{
			"name": "shz_crealf",
			"kind": "function",
			"module": "complex",
			"section": "Basic",
			"header": "sh4zam/shz_complex.h",
			"line": 70,
			"signature": "SHZ_INLINE float shz_crealf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the real component of a complex number.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::crealf"
			],
			"url": "https://sh4zam.com/api/complex/shz_crealf/",
			"md": "https://sh4zam.com/api/complex/shz_crealf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a70c2d08cd25fdf4acde3aaf0ec942581",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L70"
		},
		{
			"name": "shz_cimagf",
			"kind": "function",
			"module": "complex",
			"section": "Basic",
			"header": "sh4zam/shz_complex.h",
			"line": 73,
			"signature": "SHZ_INLINE float shz_cimagf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the imaginary component of a complex number.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cimagf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cimagf/",
			"md": "https://sh4zam.com/api/complex/shz_cimagf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a62a2f1bf6d702725dc2663f5bf8eed4d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L73"
		},
		{
			"name": "shz_caddf",
			"kind": "function",
			"module": "complex",
			"section": "Arithmetic",
			"header": "sh4zam/shz_complex.h",
			"line": 83,
			"signature": "SHZ_INLINE shz_complex_t shz_caddf(shz_complex_t lhs, shz_complex_t rhs) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "lhs",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Adds two complex numbers together and returns the result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::caddf",
				"shz::complex::operator+=",
				"shz::operator+"
			],
			"url": "https://sh4zam.com/api/complex/shz_caddf/",
			"md": "https://sh4zam.com/api/complex/shz_caddf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a99789e531ebad64f10ebd54a0a95d2e8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L83"
		},
		{
			"name": "shz_csubf",
			"kind": "function",
			"module": "complex",
			"section": "Arithmetic",
			"header": "sh4zam/shz_complex.h",
			"line": 86,
			"signature": "SHZ_INLINE shz_complex_t shz_csubf(shz_complex_t lhs, shz_complex_t rhs) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "lhs",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Subtracts rhs from lhs and returns the complex result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::complex::operator-=",
				"shz::csubf",
				"shz::operator-"
			],
			"url": "https://sh4zam.com/api/complex/shz_csubf/",
			"md": "https://sh4zam.com/api/complex/shz_csubf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a074abb1492711d74c271b556a7a43683",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L86"
		},
		{
			"name": "shz_cmulf",
			"kind": "function",
			"module": "complex",
			"section": "Arithmetic",
			"header": "sh4zam/shz_complex.h",
			"line": 89,
			"signature": "SHZ_INLINE shz_complex_t shz_cmulf(shz_complex_t lhs, shz_complex_t rhs) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "lhs",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Multiplies two complex numbers together, returning the complex result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cmulf",
				"shz::operator*"
			],
			"url": "https://sh4zam.com/api/complex/shz_cmulf/",
			"md": "https://sh4zam.com/api/complex/shz_cmulf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a4ff88b5c8587c8b5ac2206271969af76",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L89"
		},
		{
			"name": "shz_cdivf",
			"kind": "function",
			"module": "complex",
			"section": "Arithmetic",
			"header": "sh4zam/shz_complex.h",
			"line": 92,
			"signature": "SHZ_INLINE shz_complex_t shz_cdivf(shz_complex_t lhs, shz_complex_t rhs) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "lhs",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "rhs",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Divides lhs by rhs, returning the complex result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cdivf",
				"shz::complex::operator/=",
				"shz::operator/"
			],
			"url": "https://sh4zam.com/api/complex/shz_cdivf/",
			"md": "https://sh4zam.com/api/complex/shz_cdivf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ad963da910823d4c3c8640bc58581d29e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L92"
		},
		{
			"name": "shz_cscalef",
			"kind": "function",
			"module": "complex",
			"section": "Arithmetic",
			"header": "sh4zam/shz_complex.h",
			"line": 95,
			"signature": "SHZ_INLINE shz_complex_t shz_cscalef(shz_complex_t c, float v) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "v",
					"type": "float",
					"doc": ""
				}
			],
			"brief": "Scales both componets of the complex number, c, by the value, v, returning the result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cscalef",
				"shz::operator*",
				"shz::operator/"
			],
			"url": "https://sh4zam.com/api/complex/shz_cscalef/",
			"md": "https://sh4zam.com/api/complex/shz_cscalef.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ae5e05dfcf645beedc002016ab4cc0145",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L95"
		},
		{
			"name": "shz_crecipf",
			"kind": "function",
			"module": "complex",
			"section": "Arithmetic",
			"header": "sh4zam/shz_complex.h",
			"line": 98,
			"signature": "SHZ_INLINE shz_complex_t shz_crecipf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the multiplicative inverse or reciprocal of the complex number, c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::crecipf"
			],
			"url": "https://sh4zam.com/api/complex/shz_crecipf/",
			"md": "https://sh4zam.com/api/complex/shz_crecipf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a785e2669eba1afa6d1a795aa4fbb8127",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L98"
		},
		{
			"name": "shz_cabsf",
			"kind": "function",
			"module": "complex",
			"section": "Manipulation",
			"header": "sh4zam/shz_complex.h",
			"line": 108,
			"signature": "SHZ_INLINE float shz_cabsf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the absolute value (or magnitude) of the complex number, c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cabsf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cabsf/",
			"md": "https://sh4zam.com/api/complex/shz_cabsf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ad9bcb2e5961f6872bac58f97bee8e20a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L108"
		},
		{
			"name": "shz_inv_cabsf",
			"kind": "function",
			"module": "complex",
			"section": "Manipulation",
			"header": "sh4zam/shz_complex.h",
			"line": 111,
			"signature": "SHZ_INLINE float shz_inv_cabsf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the inverse of the absolute value (or inverse of the magnitude) of the complex number, c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::inv_cabsf"
			],
			"url": "https://sh4zam.com/api/complex/shz_inv_cabsf/",
			"md": "https://sh4zam.com/api/complex/shz_inv_cabsf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a47c06fd63a62430746aafa5c458c8b0d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L111"
		},
		{
			"name": "shz_cnormf",
			"kind": "function",
			"module": "complex",
			"section": "Manipulation",
			"header": "sh4zam/shz_complex.h",
			"line": 114,
			"signature": "SHZ_INLINE float shz_cnormf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the squared magnitude of the complex number, c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cnormf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cnormf/",
			"md": "https://sh4zam.com/api/complex/shz_cnormf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a0303f73e657384bab9257c552bc48b7a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L114"
		},
		{
			"name": "shz_cargf",
			"kind": "function",
			"module": "complex",
			"section": "Manipulation",
			"header": "sh4zam/shz_complex.h",
			"line": 117,
			"signature": "SHZ_INLINE float shz_cargf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "float",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the phase angle of the complex number, c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cargf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cargf/",
			"md": "https://sh4zam.com/api/complex/shz_cargf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#add186b306276f28832765c3ad8b25b06",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L117"
		},
		{
			"name": "shz_conjf",
			"kind": "function",
			"module": "complex",
			"section": "Manipulation",
			"header": "sh4zam/shz_complex.h",
			"line": 120,
			"signature": "SHZ_INLINE shz_complex_t shz_conjf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the complex conjugate of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::conjf"
			],
			"url": "https://sh4zam.com/api/complex/shz_conjf/",
			"md": "https://sh4zam.com/api/complex/shz_conjf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ada6b145a0f87c504b93fcbbdda221225",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L120"
		},
		{
			"name": "shz_cprojf",
			"kind": "function",
			"module": "complex",
			"section": "Manipulation",
			"header": "sh4zam/shz_complex.h",
			"line": 123,
			"signature": "SHZ_INLINE shz_complex_t shz_cprojf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates the projection of the complex number, c, onto the Riemann sphere.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cprojf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cprojf/",
			"md": "https://sh4zam.com/api/complex/shz_cprojf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a3afaa3d7ba7fbd57ac9b6c730f8421c6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L123"
		},
		{
			"name": "shz_csqrtf",
			"kind": "function",
			"module": "complex",
			"section": "Transcendental",
			"header": "sh4zam/shz_complex.h",
			"line": 133,
			"signature": "SHZ_INLINE shz_complex_t shz_csqrtf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Computes and returns the complex square root of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::csqrtf"
			],
			"url": "https://sh4zam.com/api/complex/shz_csqrtf/",
			"md": "https://sh4zam.com/api/complex/shz_csqrtf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a4a2c02002f76cf2be6f35707eddb70b9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L133"
		},
		{
			"name": "shz_cpowf",
			"kind": "function",
			"module": "complex",
			"section": "Transcendental",
			"header": "sh4zam/shz_complex.h",
			"line": 136,
			"signature": "SHZ_INLINE shz_complex_t shz_cpowf(shz_complex_t base, shz_complex_t exp) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "base",
					"type": "shz_complex_t",
					"doc": ""
				},
				{
					"name": "exp",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Raises the complex base to the complex exp power, returning a complex result.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cpowf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cpowf/",
			"md": "https://sh4zam.com/api/complex/shz_cpowf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ab3e20852b6d96f10865d6dd74ce4f416",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L136"
		},
		{
			"name": "shz_cexpf",
			"kind": "function",
			"module": "complex",
			"section": "Transcendental",
			"header": "sh4zam/shz_complex.h",
			"line": 139,
			"signature": "SHZ_INLINE shz_complex_t shz_cexpf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Returns the complex base e exponential of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cexpf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cexpf/",
			"md": "https://sh4zam.com/api/complex/shz_cexpf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a6fb2e8cc68c2361bd743f6b54efe118a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L139"
		},
		{
			"name": "shz_clogf",
			"kind": "function",
			"module": "complex",
			"section": "Transcendental",
			"header": "sh4zam/shz_complex.h",
			"line": 142,
			"signature": "SHZ_INLINE shz_complex_t shz_clogf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Computes and returns the complex natural logarithm of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::clogf"
			],
			"url": "https://sh4zam.com/api/complex/shz_clogf/",
			"md": "https://sh4zam.com/api/complex/shz_clogf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a786e1ee9d54ffbf12615e17315273687",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L142"
		},
		{
			"name": "shz_clog10f",
			"kind": "function",
			"module": "complex",
			"section": "Transcendental",
			"header": "sh4zam/shz_complex.h",
			"line": 145,
			"signature": "SHZ_INLINE shz_complex_t shz_clog10f(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Computes and returns the complex base 10 logarithm of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::clog10f"
			],
			"url": "https://sh4zam.com/api/complex/shz_clog10f/",
			"md": "https://sh4zam.com/api/complex/shz_clog10f.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a84cb702163df852d85a3da91cddaae6d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L145"
		},
		{
			"name": "shz_csinf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 155,
			"signature": "SHZ_INLINE shz_complex_t shz_csinf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex sine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::csinf"
			],
			"url": "https://sh4zam.com/api/complex/shz_csinf/",
			"md": "https://sh4zam.com/api/complex/shz_csinf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a483fd9880d1a5b77825c19729e38dac7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L155"
		},
		{
			"name": "shz_ccosf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 158,
			"signature": "SHZ_INLINE shz_complex_t shz_ccosf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex cosine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ccosf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ccosf/",
			"md": "https://sh4zam.com/api/complex/shz_ccosf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a8000e3a0c37772ca7fe48aa51630b128",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L158"
		},
		{
			"name": "shz_ctanf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 161,
			"signature": "SHZ_INLINE shz_complex_t shz_ctanf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex tangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ctanf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ctanf/",
			"md": "https://sh4zam.com/api/complex/shz_ctanf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#af6bbed6f7dcbce9e482ab91a2dabc544",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L161"
		},
		{
			"name": "shz_ccscf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 164,
			"signature": "SHZ_INLINE shz_complex_t shz_ccscf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex cosecant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ccscf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ccscf/",
			"md": "https://sh4zam.com/api/complex/shz_ccscf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a21a2d2980a2f85c4cf290bef1cab269a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L164"
		},
		{
			"name": "shz_csecf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 167,
			"signature": "SHZ_INLINE shz_complex_t shz_csecf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex secant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::csecf"
			],
			"url": "https://sh4zam.com/api/complex/shz_csecf/",
			"md": "https://sh4zam.com/api/complex/shz_csecf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a674e999a98c4e7586e0c4632b6be7a51",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L167"
		},
		{
			"name": "shz_ccotf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 170,
			"signature": "SHZ_INLINE shz_complex_t shz_ccotf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex cotangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ccotf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ccotf/",
			"md": "https://sh4zam.com/api/complex/shz_ccotf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#af9bc9ecfda5913f987891ac1f88935a5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L170"
		},
		{
			"name": "shz_casinf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 173,
			"signature": "SHZ_INLINE shz_complex_t shz_casinf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex arcsine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::casinf"
			],
			"url": "https://sh4zam.com/api/complex/shz_casinf/",
			"md": "https://sh4zam.com/api/complex/shz_casinf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a9ad2421588c0aa9761082fccdf1d79d8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L173"
		},
		{
			"name": "shz_cacosf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 176,
			"signature": "SHZ_INLINE shz_complex_t shz_cacosf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex arccosine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cacosf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cacosf/",
			"md": "https://sh4zam.com/api/complex/shz_cacosf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a2f408a9e8fa6f21d8d22fcae2306370e",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L176"
		},
		{
			"name": "shz_catanf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 179,
			"signature": "SHZ_INLINE shz_complex_t shz_catanf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex arctangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::catanf"
			],
			"url": "https://sh4zam.com/api/complex/shz_catanf/",
			"md": "https://sh4zam.com/api/complex/shz_catanf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a9eabd53bdb5b6bdf0f059cb6ee074d5f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L179"
		},
		{
			"name": "shz_cacscf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 182,
			"signature": "SHZ_INLINE shz_complex_t shz_cacscf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex arccosecant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cacscf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cacscf/",
			"md": "https://sh4zam.com/api/complex/shz_cacscf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a16e7563359e0b443b16b443a77f36ea9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L182"
		},
		{
			"name": "shz_casecf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 185,
			"signature": "SHZ_INLINE shz_complex_t shz_casecf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex arcsecant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::casecf"
			],
			"url": "https://sh4zam.com/api/complex/shz_casecf/",
			"md": "https://sh4zam.com/api/complex/shz_casecf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#acaf8605dee95b673bc30e5be1041468b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L185"
		},
		{
			"name": "shz_cacotf",
			"kind": "function",
			"module": "complex",
			"section": "Spherical Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 188,
			"signature": "SHZ_INLINE shz_complex_t shz_cacotf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex arccotangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cacotf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cacotf/",
			"md": "https://sh4zam.com/api/complex/shz_cacotf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#aad50f445dd9b967a3c499f4eccb34c6a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L188"
		},
		{
			"name": "shz_csinhf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 198,
			"signature": "SHZ_INLINE shz_complex_t shz_csinhf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic sine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::csinhf"
			],
			"url": "https://sh4zam.com/api/complex/shz_csinhf/",
			"md": "https://sh4zam.com/api/complex/shz_csinhf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ada719acc861791b4982dd483e47f77f4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L198"
		},
		{
			"name": "shz_ccoshf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 201,
			"signature": "SHZ_INLINE shz_complex_t shz_ccoshf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic cosine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ccoshf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ccoshf/",
			"md": "https://sh4zam.com/api/complex/shz_ccoshf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a725f9e42c01eeea22f91edbaaa57ab55",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L201"
		},
		{
			"name": "shz_ctanhf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 204,
			"signature": "SHZ_INLINE shz_complex_t shz_ctanhf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic tangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ctanhf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ctanhf/",
			"md": "https://sh4zam.com/api/complex/shz_ctanhf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a1c742b1d812ed69b37dc0bddd004ca30",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L204"
		},
		{
			"name": "shz_ccschf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 207,
			"signature": "SHZ_INLINE shz_complex_t shz_ccschf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic cosecant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ccschf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ccschf/",
			"md": "https://sh4zam.com/api/complex/shz_ccschf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a53d148231c73bca9cead91b3559a3855",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L207"
		},
		{
			"name": "shz_csechf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 210,
			"signature": "SHZ_INLINE shz_complex_t shz_csechf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic secant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::csechf"
			],
			"url": "https://sh4zam.com/api/complex/shz_csechf/",
			"md": "https://sh4zam.com/api/complex/shz_csechf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#afbd90fa31e1af741aca6aca076f59ccf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L210"
		},
		{
			"name": "shz_ccothf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 213,
			"signature": "SHZ_INLINE shz_complex_t shz_ccothf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic cotangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::ccothf"
			],
			"url": "https://sh4zam.com/api/complex/shz_ccothf/",
			"md": "https://sh4zam.com/api/complex/shz_ccothf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ae62d8f13ce0301cd30bf49967b18f3a8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L213"
		},
		{
			"name": "shz_casinhf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 216,
			"signature": "SHZ_INLINE shz_complex_t shz_casinhf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic arcsine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::casinhf"
			],
			"url": "https://sh4zam.com/api/complex/shz_casinhf/",
			"md": "https://sh4zam.com/api/complex/shz_casinhf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a7ff3f71ecf889314e1db575288599112",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L216"
		},
		{
			"name": "shz_cacoshf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 219,
			"signature": "SHZ_INLINE shz_complex_t shz_cacoshf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic arccosine of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cacoshf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cacoshf/",
			"md": "https://sh4zam.com/api/complex/shz_cacoshf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#ac3496866c015279c5a3b1cd9b67bca89",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L219"
		},
		{
			"name": "shz_catanhf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 222,
			"signature": "SHZ_INLINE shz_complex_t shz_catanhf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic arctangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::catanhf"
			],
			"url": "https://sh4zam.com/api/complex/shz_catanhf/",
			"md": "https://sh4zam.com/api/complex/shz_catanhf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a08e4aceea2dc8fc627b36f2d65c30600",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L222"
		},
		{
			"name": "shz_cacschf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 225,
			"signature": "SHZ_INLINE shz_complex_t shz_cacschf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic arccosecant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cacschf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cacschf/",
			"md": "https://sh4zam.com/api/complex/shz_cacschf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#acffb57dbc347a3eec0672c8708d322ee",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L225"
		},
		{
			"name": "shz_casechf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 228,
			"signature": "SHZ_INLINE shz_complex_t shz_casechf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic arcsecant of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::casechf"
			],
			"url": "https://sh4zam.com/api/complex/shz_casechf/",
			"md": "https://sh4zam.com/api/complex/shz_casechf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#afedbe56e0d94bdd70d68dd6810053925",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L228"
		},
		{
			"name": "shz_cacothf",
			"kind": "function",
			"module": "complex",
			"section": "Hyperbolic Trigonometry",
			"header": "sh4zam/shz_complex.h",
			"line": 231,
			"signature": "SHZ_INLINE shz_complex_t shz_cacothf(shz_complex_t c) SHZ_NOEXCEPT;",
			"return_type": "shz_complex_t",
			"params": [
				{
					"name": "c",
					"type": "shz_complex_t",
					"doc": ""
				}
			],
			"brief": "Calculates and returns the complex hyperbolic arccotangent of c.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::cacothf"
			],
			"url": "https://sh4zam.com/api/complex/shz_cacothf/",
			"md": "https://sh4zam.com/api/complex/shz_cacothf.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#aa0675306ecf4b3330f8b71c5c9898e0b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L231"
		},
		{
			"name": "shz_fft",
			"kind": "function",
			"module": "complex",
			"section": "Signal Processing",
			"header": "sh4zam/shz_complex.h",
			"line": 255,
			"signature": "SHZ_INLINE void shz_fft(shz_complex_t* s, size_t size) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "s",
					"type": "shz_complex_t *",
					"doc": ""
				},
				{
					"name": "size",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Fast Fourier Transform.",
			"detail": "Applies a fast fourier transform to convert the complex array of samples, `s`, of the given `size`, from the time to the frequency domain. The conversion is done in-place.",
			"returns": "",
			"notes": [
				"The underlying implementation uses the Radix2 variant of the Cooley-Tukey FFT algorithm, using an XMTRX-accelerated 2 point butterfly DIF."
			],
			"warnings": [
				"size must be a power-of-two!",
				"s must be aligned to 8-byte boundaries!",
				"This routine clobbers XMTRX!"
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::fft"
			],
			"url": "https://sh4zam.com/api/complex/shz_fft/",
			"md": "https://sh4zam.com/api/complex/shz_fft.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#a7c3ee48898818af0189b4f3ab40128c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L255"
		},
		{
			"name": "shz_complex_t",
			"kind": "type",
			"module": "complex",
			"section": "Types",
			"header": "sh4zam/shz_complex.h",
			"line": 47,
			"signature": "typedef struct shz_complex {\n    float real;     //!< The real portion of the complex number.\n    float imag;     //!< The imaginary portion of the complex number.\n} shz_complex_t;",
			"fields": [
				{
					"name": "real",
					"type": "float",
					"doc": "The real portion of the complex number."
				},
				{
					"name": "imag",
					"type": "float",
					"doc": "The imaginary portion of the complex number."
				}
			],
			"brief": "Represents a floating-point complex number real/imaginary pair.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [
				"shz::complex"
			],
			"url": "https://sh4zam.com/api/complex/shz_complex_t/",
			"md": "https://sh4zam.com/api/complex/shz_complex_t.md",
			"doxygen_url": "https://sh4zam.com/structshz__complex__t.html",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L47"
		},
		{
			"name": "shz_complex",
			"kind": "typedef",
			"module": "complex",
			"section": "Types",
			"header": "sh4zam/shz_complex.h",
			"line": 53,
			"signature": "typedef shz_complex_t shz_complex;",
			"brief": "shz_complex_t alias for those who don't like POSIX-style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/complex/shz_complex/",
			"md": "https://sh4zam.com/api/complex/shz_complex.md",
			"doxygen_url": "https://sh4zam.com/shz__complex_8h.html#aa575d966425425443d80976c8b490d19",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_complex.h#L53"
		},
		{
			"name": "shz_memcpy",
			"kind": "function",
			"module": "memory",
			"section": "C stdlib Replacements",
			"header": "sh4zam/shz_mem.h",
			"line": 75,
			"signature": "SHZ_INLINE void* shz_memcpy( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Generic drop-in fast memcpy() replacement.",
			"detail": "Copies `bytes` from `src` to `dst`, determining the most efficient specialization to call into at run-time, returning `dst`.\n\nThere are no alignment or size requirements for this routine, but it is specifically optimized for 2-, 4-, 8-, and 32-byte alignments, with bigger alignments bringing bigger gainz.",
			"returns": "",
			"notes": [
				"When you know of and can control the src and dst alignments and batch sizes, you can micro-optimize by calling into the most specific memcpy() specialization for your given scenario, over just using this generic implementation, which must choose which one to use at run-time."
			],
			"warnings": [
				"dst and src buffers should not be overlapping."
			],
			"sa": [
				"shz_memcpy1",
				"shz_memcpy2",
				"shz_memcpy4",
				"shz_memcpy8",
				"shz_memcpy32",
				"shz_memcpy64",
				"shz_memcpy128"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#af4e84eea93dd052233fb344de772fd42",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L75"
		},
		{
			"name": "shz_memmove",
			"kind": "function",
			"module": "memory",
			"section": "C stdlib Replacements",
			"header": "sh4zam/shz_mem.h",
			"line": 90,
			"signature": "SHZ_INLINE void* shz_memmove(void* dst, const void* src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Generic drop-in fast memmove() replacement.",
			"detail": "Copies `bytes` from `src` to `dst`, determining the most efficient specialization to call into at run-time, return `dst`. The source and destination buffers are allowed to overlap, making this routine slightly less efficient, but more versatile than `shz_memcpy()`.\n\nThere is no alignment or size requirement for this routine.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [
				"shz_memcpy"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memmove"
			],
			"url": "https://sh4zam.com/api/memory/shz_memmove/",
			"md": "https://sh4zam.com/api/memory/shz_memmove.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a423724ba91fa642ad1926abacb218db7",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L90"
		},
		{
			"name": "shz_memcpy1",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 114,
			"signature": "SHZ_INLINE void* shz_memcpy1( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies an unaligned buffer to another one byte at a time.",
			"detail": "The `dst` pointer is returned.",
			"returns": "",
			"notes": [
				"Typically, unless you know you are copying a tiny number of definitely unaligned bytes, you want to use shz_memcpy(), which automatically handles arbitrary alignment for you, potentially more efficiently than copying byte-by-byte."
			],
			"warnings": [
				"dst and src buffers should not be overlapping."
			],
			"sa": [
				"shz_memcpy"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy1"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy1/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy1.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a28158c1dca0bb3a91005e3d1472a841b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L114"
		},
		{
			"name": "shz_memcpy2",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 129,
			"signature": "SHZ_INLINE void* shz_memcpy2( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies from one 2-byte aligned buffer to another two bytes at a time.",
			"detail": "The `dst` pointer is returned.",
			"returns": "",
			"notes": [],
			"warnings": [
				"dst and src must both be aligned by at least 2 bytes, and bytes must be a multiple of 2.",
				"dst and src buffers should not be overlapping."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy2"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy2/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy2.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a873307df18b73c3bb941d895ed66ec38",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L129"
		},
		{
			"name": "shz_memcpy4",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 144,
			"signature": "SHZ_INLINE void* shz_memcpy4( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies a from one 4-byte aligned buffer to another 4 bytes at a time.",
			"detail": "The `dst` buffer is returned.",
			"returns": "",
			"notes": [],
			"warnings": [
				"dst and src must both be aligned by at least 4 bytes, and bytes must be a multiple of 4.",
				"dst and src buffers should not be overlapping."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy4"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy4/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy4.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a77d3997a4d1d8a2ed4ccdc036ed6fba5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L144"
		},
		{
			"name": "shz_memcpy8",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 159,
			"signature": "SHZ_INLINE void* shz_memcpy8( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies a from one 8-byte aligned buffer to another 8 bytes at a time.",
			"detail": "The `dst` buffer is returned.",
			"returns": "",
			"notes": [],
			"warnings": [
				"dst and src must both be aligned by at least 8 bytes, and bytes must be a multiple of 8.",
				"src and dst should not overlap."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy8"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy8/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy8.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a456ba7d8d4661186bfed130ffc135b6d",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L159"
		},
		{
			"name": "shz_memset8",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 169,
			"signature": "SHZ_INLINE void* shz_memset8(void* dst, uint64_t value, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *",
					"doc": ""
				},
				{
					"name": "value",
					"type": "uint64_t",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Assigns the given 8-byte value to the bytes in dst.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"dst should be at least 8-byte aligned, and bytes should be a multiple of 8!"
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memset8"
			],
			"url": "https://sh4zam.com/api/memory/shz_memset8/",
			"md": "https://sh4zam.com/api/memory/shz_memset8.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a0aaf033a7588e1067f2f7a1f7dfebf63",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L169"
		},
		{
			"name": "shz_memcpy32",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 189,
			"signature": "SHZ_INLINE void* shz_memcpy32( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies bytes from the src to the dst buffer in 32-byte chunks.",
			"detail": "Transfers from 8-byte aligned buffer, `src` to 32-byte aligned buffer, `dst`, 32 bytes at a time. Returns the `dst` address.",
			"returns": "",
			"notes": [
				"This is the quickest way to move 32-byte chunks of data around within memory, but the shz_sq_memcpy32() will be faster when writing through the cache to external memory."
			],
			"warnings": [
				"dst must be 32-byte aligned, while src can be only 8-byte aligned. bytes must be a multiple of 32.",
				"src and dst buffers must not overlap."
			],
			"sa": [
				"shz_sq_memcpy32"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy32"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy32/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy32.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a64802a15c2974116a76be878e6f7638c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L189"
		},
		{
			"name": "shz_sq_memcpy32",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 211,
			"signature": "SHZ_INLINE void* shz_sq_memcpy32( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies bytes from src to dst in 32-byte chunks, using the Store Queues.",
			"detail": "Transfers from 8-byte aligned buffer, `src` to 4-byte aligned address, `dst`, 32 bytes at a time, writing through the cache, using the SH4's Store Queues. Returns the `dst` address.",
			"returns": "",
			"notes": [
				"This is the quickest way to move 32-byte chunks of data to external memory. When copying to cached memory, you must invalidate the cache lines containing dst before initiating the copy... Which means this routine becomes slower than doing memory-to-memory copies with shz_memcpy32()."
			],
			"warnings": [
				"src must be at least 8-byte aligned, while dst can be only 4-byte aligned. bytes must be a multiple of 32."
			],
			"sa": [
				"shz_memcpy32",
				"shz_sq_memcpy32_1"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sq_memcpy32"
			],
			"url": "https://sh4zam.com/api/memory/shz_sq_memcpy32/",
			"md": "https://sh4zam.com/api/memory/shz_sq_memcpy32.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#aed2f52d4eb1a79f9ccd3d27671b5f877",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L211"
		},
		{
			"name": "shz_sq_memcpy32_xmtrx",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 222,
			"signature": "SHZ_INLINE void* shz_sq_memcpy32_xmtrx( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Copies bytes from src to dst in 32-byte chunks, using the Store Queues and XMTRX.",
			"detail": "Equiavalent to `shz_sq_memcpy32()`, except copying is done through XMTRX.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sq_memcpy32_xmtrx"
			],
			"url": "https://sh4zam.com/api/memory/shz_sq_memcpy32_xmtrx/",
			"md": "https://sh4zam.com/api/memory/shz_sq_memcpy32_xmtrx.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#ae1073aca895eaf904811f0e20f83d3d2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L222"
		},
		{
			"name": "shz_memcpy64",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 238,
			"signature": "SHZ_INLINE void* shz_memcpy64( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Specialized memcpy() variant for copying multiples of 64-bytes.",
			"detail": "Copies a from an 8-byte aligned buffer to a 32-byte aligned buffer, 64 bytes at a time. Returns the `dst` address.",
			"returns": "",
			"notes": [],
			"warnings": [
				"src and dst buffers must not overlap.",
				"dst must be 32-byte aligned, while src can be only 8-byte aligned. bytes must be a multiple of 64."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy64"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy64/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy64.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a7ff29627172ecf894005bbf7929e0e75",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L238"
		},
		{
			"name": "shz_memcpy128",
			"kind": "function",
			"module": "memory",
			"section": "Specializations",
			"header": "sh4zam/shz_mem.h",
			"line": 254,
			"signature": "SHZ_INLINE void* shz_memcpy128( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src, size_t bytes) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "bytes",
					"type": "size_t",
					"doc": ""
				}
			],
			"brief": "Specialized memcpy() variant for copying multiples of 128 bytes.",
			"detail": "Copies a from an 8-byte aligned buffer to a 32-byte aligned buffer, 128 bytes at a time. Returns the `dst` address.",
			"returns": "",
			"notes": [],
			"warnings": [
				"src and dst buffers must not overlap.",
				"dst must be 32-byte aligned, while src can be only 8-byte aligned. bytes must be a multiple of 128."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy128"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy128/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy128.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a1095043879eb344cb8f110abc8b6518a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L254"
		},
		{
			"name": "shz_memcpy2_8",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 273,
			"signature": "SHZ_INLINE void shz_memcpy2_8( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Copies 8 shorts from src to dst.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"src and dst buffers must not overlap.",
				"dst and src must both be aligned by at least two bytes."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy2_8"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy2_8/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy2_8.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a0e8ab895e3d5f6ef3ff8bffe172d6794",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L273"
		},
		{
			"name": "shz_memcpy2_16",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 284,
			"signature": "SHZ_INLINE void shz_memcpy2_16( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Copies 16 shorts from src to dst.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"src and dst buffers must not overlap.",
				"dst and src must both be aligned by at least two bytes."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy2_16"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy2_16/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy2_16.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a4288a3c1d8931499f4033364bb144e05",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L284"
		},
		{
			"name": "shz_memset2_16",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 292,
			"signature": "SHZ_INLINE void shz_memset2_16(void* dst, uint16_t value) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "void *",
					"doc": ""
				},
				{
					"name": "value",
					"type": "uint16_t",
					"doc": ""
				}
			],
			"brief": "Sets the values of the 16 shorts pointed to by dst to the given value.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"dst must be aligned by at least two bytes."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memset2_16"
			],
			"url": "https://sh4zam.com/api/memory/shz_memset2_16/",
			"md": "https://sh4zam.com/api/memory/shz_memset2_16.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#ad08bb81ef5e722a0bfb32ee10fcf6657",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L292"
		},
		{
			"name": "shz_memcpy4_16",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 302,
			"signature": "SHZ_INLINE void shz_memcpy4_16( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Copies 16 4-byte, long values from src to dst.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"src and dst buffers must not overlap.",
				"The src and dst buffers must both be at least 4-byte aligned."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memcpy4_16"
			],
			"url": "https://sh4zam.com/api/memory/shz_memcpy4_16/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy4_16.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#ab2d1577819f02ea3de750a5ec95adc28",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L302"
		},
		{
			"name": "shz_memcpy32_1",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 310,
			"signature": "SHZ_INLINE void shz_memcpy32_1( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Copies 32 bytes from p1 to p2 as a single chunk.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"dst must be 32-byte aligned, while src can be only 8-byte aligned."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/memory/shz_memcpy32_1/",
			"md": "https://sh4zam.com/api/memory/shz_memcpy32_1.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a01f0f915f8f928c5d001d95ad022379f",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L310"
		},
		{
			"name": "shz_memswap32_1",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 318,
			"signature": "SHZ_INLINE void shz_memswap32_1(void* SHZ_RESTRICT p1, void* SHZ_RESTRICT p2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "p1",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "p2",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Swaps the values within the given 32-byte buffers.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [
				"p1 and p2 must be at least 8-byte aligned."
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memswap32_1"
			],
			"url": "https://sh4zam.com/api/memory/shz_memswap32_1/",
			"md": "https://sh4zam.com/api/memory/shz_memswap32_1.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a9048b48c9fb08def59f16f368c73545b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L318"
		},
		{
			"name": "shz_memswap32_1_xmtrx",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 328,
			"signature": "SHZ_INLINE void shz_memswap32_1_xmtrx(void* SHZ_RESTRICT p1, void* SHZ_RESTRICT p2) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "p1",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "p2",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Swaps the values within the given 32-byte buffers, using XMTRX.",
			"detail": "Equivalent to `shz_memcpy32_1()`, except copying is done through XMTRX.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobbers XMTRX!"
			],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::memswap32_1_xmtrx"
			],
			"url": "https://sh4zam.com/api/memory/shz_memswap32_1_xmtrx/",
			"md": "https://sh4zam.com/api/memory/shz_memswap32_1_xmtrx.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#ae40bbb11ffc516fbc0c39e381662ee19",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L328"
		},
		{
			"name": "shz_sq_memcpy32_1",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 342,
			"signature": "SHZ_INLINE void* shz_sq_memcpy32_1( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Copies src to dst in a single 32-byte transaction using the Store Queues.",
			"detail": "",
			"returns": "",
			"notes": [
				"The Store Queues bypass the SH4's data-cache! They are typically used to transfer to external memory and are slower for memory-to-memory transactions."
			],
			"warnings": [
				"dst must be at least 4-byte aligned, while src must be at least 8-byte aligned."
			],
			"sa": [
				"shz_memcpy32"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sq_memcpy32_1"
			],
			"url": "https://sh4zam.com/api/memory/shz_sq_memcpy32_1/",
			"md": "https://sh4zam.com/api/memory/shz_sq_memcpy32_1.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a39126c0ba957a478f73f6155f1106cf9",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L342"
		},
		{
			"name": "shz_sq_memcpy32_1_xmtrx",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 355,
			"signature": "SHZ_INLINE void* shz_sq_memcpy32_1_xmtrx( void* SHZ_RESTRICT dst, const void* SHZ_RESTRICT src) SHZ_NOEXCEPT;",
			"return_type": "void *",
			"params": [
				{
					"name": "dst",
					"type": "void *SHZ_RESTRICT",
					"doc": ""
				},
				{
					"name": "src",
					"type": "const void *SHZ_RESTRICT",
					"doc": ""
				}
			],
			"brief": "Copies src to dst in a single 32-byte transaction using the Store Queues and XMTRX.",
			"detail": "Equivalent to `shz_sq_memcpy32_1()`, except copying is done through XMTRX.",
			"returns": "",
			"notes": [],
			"warnings": [
				"This routine clobberx XMTRX."
			],
			"sa": [
				"shz_memcpy32"
			],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::sq_memcpy32_1_xmtrx"
			],
			"url": "https://sh4zam.com/api/memory/shz_sq_memcpy32_1_xmtrx/",
			"md": "https://sh4zam.com/api/memory/shz_sq_memcpy32_1_xmtrx.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a55fa3a70082c8b46c2b1217d215beabf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L355"
		},
		{
			"name": "shz_dcache_alloc_line",
			"kind": "function",
			"module": "memory",
			"section": "Constant-sized Operations",
			"header": "sh4zam/shz_mem.h",
			"line": 365,
			"signature": "SHZ_INLINE void shz_dcache_alloc_line(void* src) SHZ_NOEXCEPT;",
			"return_type": "void",
			"params": [
				{
					"name": "src",
					"type": "void *",
					"doc": ""
				}
			],
			"brief": "Intrinsic around the SH4 MOVCA.L instruction.",
			"detail": "Preallocates the cache-line containing `src`.\n\nZero-initializes all 32-bytes within the `src` cache-line, setting the valid bit to `1`.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "asm",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::dcache_alloc_line"
			],
			"url": "https://sh4zam.com/api/memory/shz_dcache_alloc_line/",
			"md": "https://sh4zam.com/api/memory/shz_dcache_alloc_line.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#a893dcc1507fa058e178d8fc2c3c8af12",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L365"
		},
		{
			"name": "SHZ_PREFETCH",
			"kind": "macro",
			"module": "memory",
			"section": "Macros",
			"header": "sh4zam/shz_mem.h",
			"line": 45,
			"signature": "#define SHZ_PREFETCH(ptr) SHZ_PREFETCH_(ptr)",
			"params": [
				{
					"name": "ptr",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Used to prepopulate the cache line mapping to the given address, before it is used.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/memory/SHZ_PREFETCH/",
			"md": "https://sh4zam.com/api/memory/SHZ_PREFETCH.md",
			"doxygen_url": "https://sh4zam.com/shz__mem_8h.html#ae89fed818b9d701cd610c3a9ceca38c0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_mem.h#L45"
		},
		{
			"name": "SHZ_SH4",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 30,
			"signature": "#define SHZ_SH4 1",
			"params": [],
			"brief": "Back-end for the Dreamcast's SH4.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_SH4/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_SH4.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a0b93d11dd614dfbeb2b6611ac3384be3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L30"
		},
		{
			"name": "SHZ_PPC",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 31,
			"signature": "#define SHZ_PPC 2",
			"params": [],
			"brief": "Back-end for the Gamecube/Wii's Gekko PPC.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_PPC/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_PPC.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a973841f5e8d1e9808362427a1fb37d56",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L31"
		},
		{
			"name": "SHZ_MIPS",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 32,
			"signature": "#define SHZ_MIPS 3",
			"params": [],
			"brief": "Back-end for MIPS architectures.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_MIPS/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_MIPS.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a6bfb25e15e1ab9b88340851ea5cfdd80",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L32"
		},
		{
			"name": "SHZ_ARM",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 33,
			"signature": "#define SHZ_ARM 4",
			"params": [],
			"brief": "Back-end for ARM architectures.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_ARM/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_ARM.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#aa87dbd8e1c4d89144d442b56e29d7ffd",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L33"
		},
		{
			"name": "SHZ_X86_64",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 34,
			"signature": "#define SHZ_X86_64 5",
			"params": [],
			"brief": "Back-end for x86_64 architectures.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_X86_64/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_X86_64.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a6a498c61fb9d7c2caf3a135216426e46",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L34"
		},
		{
			"name": "SHZ_SPU",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 35,
			"signature": "#define SHZ_SPU 6",
			"params": [],
			"brief": "Back-end for the Cell B/E SPU architecture.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_SPU/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_SPU.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a9ad78e0939e57fed05895595e7d10345",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L35"
		},
		{
			"name": "SHZ_WASM",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 36,
			"signature": "#define SHZ_WASM 8",
			"params": [],
			"brief": "Back-end for WebAssembly.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_WASM/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_WASM.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#af74453ff06566c0e142766b34d0e79e0",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L36"
		},
		{
			"name": "SHZ_SW",
			"kind": "macro",
			"module": "cdefs",
			"section": "Back-Ends",
			"header": "sh4zam/shz_cdefs.h",
			"line": 37,
			"signature": "#define SHZ_SW ~0",
			"params": [],
			"brief": "Generic C-based software back-end.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_SW/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_SW.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a52b6e6495a53a9b30d5d1cdc3aa2a913",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L37"
		},
		{
			"name": "SHZ_TLS_DISABLED",
			"kind": "macro",
			"module": "cdefs",
			"section": "TLS Models",
			"header": "sh4zam/shz_cdefs.h",
			"line": 82,
			"signature": "#define SHZ_TLS_DISABLED 0",
			"params": [],
			"brief": "No thread-local variables.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_DISABLED/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_DISABLED.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#aff4a742ab94ba49352cfe4194c0d92ae",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L82"
		},
		{
			"name": "SHZ_TLS_IMPLICIT",
			"kind": "macro",
			"module": "cdefs",
			"section": "TLS Models",
			"header": "sh4zam/shz_cdefs.h",
			"line": 83,
			"signature": "#define SHZ_TLS_IMPLICIT 1",
			"params": [],
			"brief": "Use thread_local keyword for TLS.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_IMPLICIT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_IMPLICIT.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a4a8cdbb753e5fb34fb3e8756996a66c4",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L83"
		},
		{
			"name": "SHZ_TLS_PTHREAD",
			"kind": "macro",
			"module": "cdefs",
			"section": "TLS Models",
			"header": "sh4zam/shz_cdefs.h",
			"line": 84,
			"signature": "#define SHZ_TLS_PTHREAD 2",
			"params": [],
			"brief": "Use pthread unique keys for TLS.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_PTHREAD/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_PTHREAD.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#aede0c0f042fbd7be175f8e6d52e18071",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L84"
		},
		{
			"name": "SHZ_TLS_CTHREAD",
			"kind": "macro",
			"module": "cdefs",
			"section": "TLS Models",
			"header": "sh4zam/shz_cdefs.h",
			"line": 85,
			"signature": "#define SHZ_TLS_CTHREAD 3",
			"params": [],
			"brief": "Use C11 thread TSS keys for TLS.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_CTHREAD/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_CTHREAD.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a539a036beef8afdc415e22683c2e969b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L85"
		},
		{
			"name": "SHZ_GNUC",
			"kind": "macro",
			"module": "cdefs",
			"section": "Compiler Detection",
			"header": "sh4zam/shz_cdefs.h",
			"line": 120,
			"signature": "#define SHZ_GNUC 1",
			"params": [],
			"brief": "Defined when building with a GCC-compatible compiler.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_GNUC/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_GNUC.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#ae7a1e0417f568fe1c01f1b7927b02149",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L120"
		},
		{
			"name": "SHZ_STRINGIFY_LITERAL",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 129,
			"signature": "#define SHZ_STRINGIFY_LITERAL(a) #a",
			"params": [
				{
					"name": "a",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Stringifies a literal expression.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_STRINGIFY_LITERAL/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_STRINGIFY_LITERAL.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a58966dd297ccdb568f7157637af00559",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L129"
		},
		{
			"name": "SHZ_STRINGIFY",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 131,
			"signature": "#define SHZ_STRINGIFY(a) SHZ_STRINGIFY_LITERAL(a)",
			"params": [
				{
					"name": "a",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Stringifies an expression after preprocessing, supporting macro expansion.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_STRINGIFY/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_STRINGIFY.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#acfea762310556d3c403c36b3c19e8cac",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L131"
		},
		{
			"name": "SHZ_COUNT_OF",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 133,
			"signature": "#define SHZ_COUNT_OF(array) (sizeof(array) / sizeof((array)[0]))",
			"params": [
				{
					"name": "array",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Returns the number of elements within a statically sized array.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_COUNT_OF/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_COUNT_OF.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a359a01a17edd23f214ec7b6573979a4c",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L133"
		},
		{
			"name": "SHZ_CONTAINER_OF",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 135,
			"signature": "#define SHZ_CONTAINER_OF(ptr, type, member) ((type*)((char*)(ptr) - offsetof(type, member)))",
			"params": [
				{
					"name": "ptr",
					"type": "",
					"doc": ""
				},
				{
					"name": "type",
					"type": "",
					"doc": ""
				},
				{
					"name": "member",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Returns the containing structure from a pointer to one of its members.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_CONTAINER_OF/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_CONTAINER_OF.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a4880bc9fd51be0b6e529a046315a2baf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L135"
		},
		{
			"name": "SHZ_SWAP",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 137,
			"signature": "#define SHZ_SWAP(a, b) do { typeof(a) tmp = a; a = b; b = tmp; } while(false)",
			"params": [
				{
					"name": "a",
					"type": "",
					"doc": ""
				},
				{
					"name": "b",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Macro which swaps the two values held by a and b.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_SWAP/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_SWAP.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a05612c53cc702a67857bc497593b0f07",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L137"
		},
		{
			"name": "SHZ_DECLARE_STRUCT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 139,
			"signature": "#define SHZ_DECLARE_STRUCT(n, t) struct n; typedef struct n t",
			"params": [
				{
					"name": "n",
					"type": "",
					"doc": ""
				},
				{
					"name": "t",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Macro which forward declares a struct and its typedef.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_DECLARE_STRUCT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_DECLARE_STRUCT.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a24a7784776fa93b34be47be2a92228b2",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L139"
		},
		{
			"name": "SHZ_DECLARE_STRUCT_ALIGNED",
			"kind": "macro",
			"module": "cdefs",
			"section": "Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 141,
			"signature": "#define SHZ_DECLARE_STRUCT_ALIGNED(n, t, a) struct SHZ_ALIGNAS(a) n; typedef struct n t",
			"params": [
				{
					"name": "n",
					"type": "",
					"doc": ""
				},
				{
					"name": "t",
					"type": "",
					"doc": ""
				},
				{
					"name": "a",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Macro which forward declares a manually aligned struct and its typedef.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_DECLARE_STRUCT_ALIGNED/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_DECLARE_STRUCT_ALIGNED.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a487ecbaefad5faffc0862b43f24c40cf",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L141"
		},
		{
			"name": "SHZ_TLS_DECL",
			"kind": "macro",
			"module": "cdefs",
			"section": "TLS Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 313,
			"signature": "#define SHZ_TLS_DECL(type, name, ...) static type name = __VA_ARGS__;",
			"params": [
				{
					"name": "type",
					"type": "",
					"doc": ""
				},
				{
					"name": "name",
					"type": "",
					"doc": ""
				},
				{
					"name": "...",
					"type": "",
					"doc": ""
				}
			],
			"brief": "Declares a TLS variable with disabled model (so not thread-local).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_DECL/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_DECL.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#adc0671a5de57286c905d24b2eb470225",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L313"
		},
		{
			"name": "SHZ_TLS_REF",
			"kind": "macro",
			"module": "cdefs",
			"section": "TLS Utilities",
			"header": "sh4zam/shz_cdefs.h",
			"line": 315,
			"signature": "#define SHZ_TLS_REF(name) (&name)",
			"params": [
				{
					"name": "name",
					"type": "",
					"doc": ""
				}
			],
			"brief": "References a TLS variable, with disabled model.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_REF/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_REF.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#ae567f8afa91c1a52df5c8120e25f197a",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L315"
		},
		{
			"name": "shz_alias_int16_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 388,
			"signature": "typedef SHZ_ALIASING int16_t shz_alias_int16_t;",
			"brief": "int16_t type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_int16_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_int16_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a2ea2cf8041d6dcb09ca6348c0ad17ed8",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L388"
		},
		{
			"name": "shz_alias_uint16_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 390,
			"signature": "typedef SHZ_ALIASING uint16_t shz_alias_uint16_t;",
			"brief": "uint16_t type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_uint16_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_uint16_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a74778d8d3ab3bf60c1d1c08180aa5835",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L390"
		},
		{
			"name": "shz_alias_int32_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 392,
			"signature": "typedef SHZ_ALIASING int32_t shz_alias_int32_t;",
			"brief": "int32_t type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_int32_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_int32_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a7fadf9b10d8e46d835f1064e9452e6c5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L392"
		},
		{
			"name": "shz_alias_uint32_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 394,
			"signature": "typedef SHZ_ALIASING uint32_t shz_alias_uint32_t;",
			"brief": "uint32_t type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_uint32_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_uint32_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a515e908dcf0ba2cb4a2f393c7a7ec8cb",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L394"
		},
		{
			"name": "shz_alias_float_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 396,
			"signature": "typedef SHZ_ALIASING float shz_alias_float_t;",
			"brief": "float type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_float_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_float_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a9271b9db6b5dd49549945a9f2c5442e6",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L396"
		},
		{
			"name": "shz_alias_int64_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 398,
			"signature": "typedef SHZ_ALIASING int64_t shz_alias_int64_t;",
			"brief": "int64_t type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_int64_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_int64_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a6bc7da5d03a481695db31fc75b135e76",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L398"
		},
		{
			"name": "shz_alias_uint64_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 400,
			"signature": "typedef SHZ_ALIASING uint64_t shz_alias_uint64_t;",
			"brief": "uint64_t type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_uint64_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_uint64_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a90f9159201c64a71201365b565a2bc11",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L400"
		},
		{
			"name": "shz_alias_double_t",
			"kind": "typedef",
			"module": "cdefs",
			"section": "Aliasing Types",
			"header": "sh4zam/shz_cdefs.h",
			"line": 402,
			"signature": "typedef SHZ_ALIASING double shz_alias_double_t;",
			"brief": "double type whose value may be aliased as another type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/shz_alias_double_t/",
			"md": "https://sh4zam.com/api/cdefs/shz_alias_double_t.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a4a6b753bf4c55357cfd99cd1158197b5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L402"
		},
		{
			"name": "SHZ_TARGET",
			"kind": "macro",
			"module": "cdefs",
			"section": "Macros",
			"header": "sh4zam/shz_cdefs.h",
			"line": 60,
			"signature": "#define SHZ_TARGET SHZ_SW",
			"params": [],
			"brief": "Target architecture Determines the actual architecture we're building for.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TARGET/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TARGET.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a1dd04872c58280ca64ff6b4448feae77",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L60"
		},
		{
			"name": "SHZ_BACKEND",
			"kind": "macro",
			"module": "cdefs",
			"section": "Macros",
			"header": "sh4zam/shz_cdefs.h",
			"line": 72,
			"signature": "#define SHZ_BACKEND SHZ_SPU",
			"params": [],
			"brief": "SH4ZAM back-end Selects which SH4ZAM implementation to use for a given target.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_BACKEND/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_BACKEND.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#ab58812fd0a4c75aa2276a6e7f4556e87",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L72"
		},
		{
			"name": "SHZ_TLS_MODEL",
			"kind": "macro",
			"module": "cdefs",
			"section": "Macros",
			"header": "sh4zam/shz_cdefs.h",
			"line": 94,
			"signature": "#define SHZ_TLS_MODEL SHZ_TLS_IMPLICIT",
			"params": [],
			"brief": "thread_local storage.",
			"detail": "Selects the model used to declare access thread-local variables.",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_TLS_MODEL/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_TLS_MODEL.md",
			"doxygen_url": "https://sh4zam.com/shz__cdefs_8h.html#a649dd74eedb58fd28471e506b842b695",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L94"
		},
		{
			"name": "SHZ_MSVC",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 107,
			"signature": "#define SHZ_MSVC 1",
			"brief": "Defined when building with Microsoft Visual C++.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_MSVC/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_MSVC.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L107"
		},
		{
			"name": "SHZ_CLANG",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 111,
			"signature": "#define SHZ_CLANG 1",
			"brief": "Defined when bulding with Clang.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_CLANG/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_CLANG.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L111"
		},
		{
			"name": "SHZ_MINGW64",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 113,
			"signature": "#define SHZ_MINGW64 1",
			"brief": "Defined when bulding with MinGW-w64.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_MINGW64/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_MINGW64.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L113"
		},
		{
			"name": "SHZ_MINGW32",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 115,
			"signature": "#define SHZ_MINGW32 1",
			"brief": "Defined when building for 32-bit MinGW or other MinGW compiler(s).",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_MINGW32/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_MINGW32.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L115"
		},
		{
			"name": "SHZ_GCC",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 117,
			"signature": "#define SHZ_GCC 1",
			"brief": "Defined when building for GCC.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_GCC/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_GCC.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L117"
		},
		{
			"name": "SHZ_ALIGNAS",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 151,
			"signature": "#define SHZ_ALIGNAS(N) __attribute__((aligned((N))))",
			"brief": "Forces a function or type to be aligned by N bytes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_ALIGNAS/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_ALIGNAS.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L151"
		},
		{
			"name": "SHZ_SIMD",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 153,
			"signature": "#define SHZ_SIMD(N) __attribute__((vector_size((N))))",
			"brief": "Tells GCC that a scalar type is to be treated as a vector of size N.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_SIMD/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_SIMD.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L153"
		},
		{
			"name": "SHZ_HOT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 155,
			"signature": "#define SHZ_HOT __attribute__((hot))",
			"brief": "Tells GCC that a particular function should be optimized for performance.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_HOT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_HOT.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L155"
		},
		{
			"name": "SHZ_COLD",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 157,
			"signature": "#define SHZ_COLD __attribute__((cold))",
			"brief": "Tells GCC that a particular function should be optimized for size.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_COLD/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_COLD.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L157"
		},
		{
			"name": "SHZ_FAST_MATH",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 159,
			"signature": "#define SHZ_FAST_MATH __attribute__((optimize(\"fast-math\")))",
			"brief": "Put this before a function definition to tell GCC to use fast math optimizations on a specific function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_FAST_MATH/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_FAST_MATH.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L159"
		},
		{
			"name": "SHZ_NO_FAST_MATH",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 161,
			"signature": "#define SHZ_NO_FAST_MATH __attribute__((optimize(\"no-fast-math\")))",
			"brief": "Put this before a function definition to tell GCC to NOT use fast math optimizations on a specific function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_NO_FAST_MATH/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_NO_FAST_MATH.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L161"
		},
		{
			"name": "SHZ_NO_UNROLL_LOOPS",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 163,
			"signature": "#define SHZ_NO_UNROLL_LOOPS __attribute__((optimize(\"no-unroll-loops\")))",
			"brief": "Put this before a function definition to tell GCC to NOT unroll loops in a specific function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_NO_UNROLL_LOOPS/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_NO_UNROLL_LOOPS.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L163"
		},
		{
			"name": "SHZ_NO_OPTIMIZATION",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 165,
			"signature": "#define SHZ_NO_OPTIMIZATION __attribute__((optimize(\"O0\")))",
			"brief": "Tells GCC to disable any optimizations when compiling a function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_NO_OPTIMIZATION/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_NO_OPTIMIZATION.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L165"
		},
		{
			"name": "SHZ_FUNC_ALIGNAS",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 167,
			"signature": "#define SHZ_FUNC_ALIGNAS(N) __attribute__((aligned(N)))",
			"brief": "Aligns a function within the .text segment by N bytes.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_FUNC_ALIGNAS/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_FUNC_ALIGNAS.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L167"
		},
		{
			"name": "SHZ_FORCE_INLINE",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 169,
			"signature": "#define SHZ_FORCE_INLINE __attribute__((always_inline)) SHZ_INLINE",
			"brief": "Forces GCC to inline the given function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_FORCE_INLINE/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_FORCE_INLINE.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L169"
		},
		{
			"name": "SHZ_NO_INLINE",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 171,
			"signature": "#define SHZ_NO_INLINE __attribute__((noinline))",
			"brief": "Prevents GCC from inlining the given function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_NO_INLINE/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_NO_INLINE.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L171"
		},
		{
			"name": "SHZ_FLATTEN",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 173,
			"signature": "#define SHZ_FLATTEN __attribute__((flatten))",
			"brief": "Forces GCC to inline all calls to other functions made within the tagged function.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_FLATTEN/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_FLATTEN.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L173"
		},
		{
			"name": "SHZ_PACKED",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 175,
			"signature": "#define SHZ_PACKED __attribute__((packed))",
			"brief": "Tells GCC not to introduce any extra padding for the given type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_PACKED/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_PACKED.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L175"
		},
		{
			"name": "SHZ_PURE",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 177,
			"signature": "#define SHZ_PURE __attribute__((pure))",
			"brief": "Tells GCC the function has no effects other than returning a value that depends on its arguments and global variables.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_PURE/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_PURE.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L177"
		},
		{
			"name": "SHZ_CONST",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 179,
			"signature": "#define SHZ_CONST __attribute__((const))",
			"brief": "Tells GCC the function has no effects other than returning a value that depends only on its arguments.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_CONST/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_CONST.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L179"
		},
		{
			"name": "SHZ_ALIASING",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 181,
			"signature": "#define SHZ_ALIASING __attribute__((__may_alias__))",
			"brief": "Tells GCC that the decorated pointer may be breaking strict aliasing rules for C and C++",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_ALIASING/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_ALIASING.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L181"
		},
		{
			"name": "SHZ_DEPRECATED",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 183,
			"signature": "#define SHZ_DEPRECATED(m) __attribute__((deprecated(m)))",
			"brief": "Emits a warning that a symbol has been deprecated with a message, upon use.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_DEPRECATED/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_DEPRECATED.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L183"
		},
		{
			"name": "SHZ_LIKELY",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 185,
			"signature": "#define SHZ_LIKELY(e) __builtin_expect(!!(e), 1)",
			"brief": "Tells GCC that the expression is likely to be true (used for conditional and loop optimizations)",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_LIKELY/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_LIKELY.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L185"
		},
		{
			"name": "SHZ_UNLIKELY",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 187,
			"signature": "#define SHZ_UNLIKELY(e) __builtin_expect(!!(e), 0)",
			"brief": "Tells GCC that the expression is likely to be false (used for conditional and loop optimizations)",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_UNLIKELY/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_UNLIKELY.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L187"
		},
		{
			"name": "SHZ_RESTRICT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 189,
			"signature": "#define SHZ_RESTRICT __restrict__",
			"brief": "Tells GCC the pointer paraemter is unique and is not aliased by another parameter",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_RESTRICT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_RESTRICT.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L189"
		},
		{
			"name": "SHZ_MEMORY_BARRIER_SOFT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 191,
			"signature": "#define SHZ_MEMORY_BARRIER_SOFT() asm volatile(\"\" : : : \"memory\")",
			"brief": "Creates a software memory barrier beyond which any loads or stores may not be reordered",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_MEMORY_BARRIER_SOFT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_MEMORY_BARRIER_SOFT.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L191"
		},
		{
			"name": "SHZ_MEMORY_BARRIER_HARD",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 193,
			"signature": "#define SHZ_MEMORY_BARRIER_HARD() __sync_synchronize()",
			"brief": "Creates a hardware memory barrier beyond which any loads or stores may not be reordered",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_MEMORY_BARRIER_HARD/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_MEMORY_BARRIER_HARD.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L193"
		},
		{
			"name": "SHZ_INSTR_BARRIER",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 195,
			"signature": "#define SHZ_INSTR_BARRIER() asm volatile(\"\")",
			"brief": "Prevents the compiler from reordering instructions beyond the barrier.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_INSTR_BARRIER/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_INSTR_BARRIER.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L195"
		},
		{
			"name": "SHZ_DECLS_BEGIN",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 247,
			"signature": "#define SHZ_DECLS_BEGIN",
			"brief": "Dummy define provided for C++ compatibility",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_DECLS_BEGIN/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_DECLS_BEGIN.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L247"
		},
		{
			"name": "SHZ_DECLS_END",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 249,
			"signature": "#define SHZ_DECLS_END",
			"brief": "Dummy define provided for C++ compatibility",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_DECLS_END/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_DECLS_END.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L249"
		},
		{
			"name": "SHZ_INLINE",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 251,
			"signature": "#define SHZ_INLINE inline static",
			"brief": "Requests a function or member to be inlined (nonforcibly) OR to have static linkage.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_INLINE/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_INLINE.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L251"
		},
		{
			"name": "SHZ_NOEXCEPT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 253,
			"signature": "#define SHZ_NOEXCEPT",
			"brief": "Dummy define provided for C++ compatibility",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_NOEXCEPT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_NOEXCEPT.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L253"
		},
		{
			"name": "SHZ_INIT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 256,
			"signature": "#define SHZ_INIT(type, ...) ((type){ __VA_ARGS__ })",
			"brief": "Temporary struct initialization statement to use within C.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_INIT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_INIT.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L256"
		},
		{
			"name": "SHZ_CONVERT",
			"kind": "macro",
			"module": "cdefs",
			"section": "Not in upstream reference",
			"header": "sh4zam/shz_cdefs.h",
			"line": 261,
			"signature": "#define SHZ_CONVERT(type, value)",
			"brief": "Conversion macro for zero-overhead conversions, taking the given value to a value of the given type.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/cdefs/SHZ_CONVERT/",
			"md": "https://sh4zam.com/api/cdefs/SHZ_CONVERT.md",
			"doxygen_url": null,
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_cdefs.h#L261"
		},
		{
			"name": "SHZ_VERSION_MAJOR",
			"kind": "macro",
			"module": "version",
			"section": "Compile-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 25,
			"signature": "#define SHZ_VERSION_MAJOR 0",
			"params": [],
			"brief": "Compile-time SH4ZAM major version.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/SHZ_VERSION_MAJOR/",
			"md": "https://sh4zam.com/api/version/SHZ_VERSION_MAJOR.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#a5199e91bbe63a94b38b1bf489056d0fa",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L25"
		},
		{
			"name": "SHZ_VERSION_MINOR",
			"kind": "macro",
			"module": "version",
			"section": "Compile-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 26,
			"signature": "#define SHZ_VERSION_MINOR 9",
			"params": [],
			"brief": "Compile-time SH4ZAM minor version.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/SHZ_VERSION_MINOR/",
			"md": "https://sh4zam.com/api/version/SHZ_VERSION_MINOR.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#a42e3d8c8a2773e2b2cdd881362763b1b",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L26"
		},
		{
			"name": "SHZ_VERSION_PATCH",
			"kind": "macro",
			"module": "version",
			"section": "Compile-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 27,
			"signature": "#define SHZ_VERSION_PATCH 1",
			"params": [],
			"brief": "Compile-time Sh4ZAM patch version.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/SHZ_VERSION_PATCH/",
			"md": "https://sh4zam.com/api/version/SHZ_VERSION_PATCH.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#a2edf08831bddf3cf979209a96dc8a2e5",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L27"
		},
		{
			"name": "SHZ_VERSION",
			"kind": "macro",
			"module": "version",
			"section": "Compile-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 30,
			"signature": "#define SHZ_VERSION",
			"params": [],
			"brief": "Current SH4ZAM full compile-time version identifier, integer-compatible.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/SHZ_VERSION/",
			"md": "https://sh4zam.com/api/version/SHZ_VERSION.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#ab80cdfded85f103e8367ff5a541a4f49",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L30"
		},
		{
			"name": "SHZ_VERSION_INIT",
			"kind": "macro",
			"module": "version",
			"section": "Compile-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 44,
			"signature": "#define SHZ_VERSION_INIT(major, minor, patch)",
			"params": [
				{
					"name": "major",
					"type": "",
					"doc": "Unsigned 8-bit field representing major version value."
				},
				{
					"name": "minor",
					"type": "",
					"doc": "Unsigned 16-bit field representing minor version value."
				},
				{
					"name": "patch",
					"type": "",
					"doc": "Unsigned 8-bit field representing patch version value."
				}
			],
			"brief": "Packs values of individual version components into a SH4ZAM full version value.",
			"detail": "Combines values from individual version components into a single unsigned 32-bit integer which can be compared to other version values for equality or inequality.",
			"returns": "Unsigned 32-bit value representing the full version value.",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/SHZ_VERSION_INIT/",
			"md": "https://sh4zam.com/api/version/SHZ_VERSION_INIT.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#a54085ab1f97bafb61310874b337ea336",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L44"
		},
		{
			"name": "shz_version_t",
			"kind": "typedef",
			"module": "version",
			"section": "Link-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 55,
			"signature": "typedef uint32_t shz_version_t;",
			"brief": "Integer-compatible value type containing a full SH4ZAM version.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/shz_version_t/",
			"md": "https://sh4zam.com/api/version/shz_version_t.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#afd9a8bcd73de655ecc2cff8855f75143",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L55"
		},
		{
			"name": "shz_version",
			"kind": "typedef",
			"module": "version",
			"section": "Link-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 58,
			"signature": "typedef shz_version_t shz_version;",
			"brief": "Version typedef for those who hate POSIX-style.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": null,
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/shz_version-typedef/",
			"md": "https://sh4zam.com/api/version/shz_version-typedef.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#ae598c9af136c5f27da4ba7e9397142d3",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L58"
		},
		{
			"name": "shz_version_linked",
			"kind": "function",
			"module": "version",
			"section": "Link-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 61,
			"signature": "shz_version_t shz_version_linked(void);",
			"return_type": "shz_version_t",
			"params": [
				{
					"name": "",
					"type": "void",
					"doc": ""
				}
			],
			"brief": "Returns the full version of SH4ZAM that was linked against.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [
				"shz::version::linked"
			],
			"url": "https://sh4zam.com/api/version/shz_version_linked/",
			"md": "https://sh4zam.com/api/version/shz_version_linked.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#af8e0c38fab52447186f3961fd91b32aa",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L61"
		},
		{
			"name": "shz_version_fields",
			"kind": "function",
			"module": "version",
			"section": "Link-Time Utilities",
			"header": "sh4zam/shz_version.h",
			"line": 64,
			"signature": "void shz_version_fields(shz_version_t version, uint8_t* major, uint16_t* minor, uint8_t* patch);",
			"return_type": "void",
			"params": [
				{
					"name": "version",
					"type": "shz_version_t",
					"doc": ""
				},
				{
					"name": "major",
					"type": "uint8_t *",
					"doc": ""
				},
				{
					"name": "minor",
					"type": "uint16_t *",
					"doc": ""
				},
				{
					"name": "patch",
					"type": "uint8_t *",
					"doc": ""
				}
			],
			"brief": "Extracts the individual version component values from a full version.",
			"detail": "",
			"returns": "",
			"notes": [],
			"warnings": [],
			"sa": [],
			"documented": true,
			"backends": {
				"sh4": "c",
				"sw": "c",
				"spu": "c"
			},
			"generic": null,
			"cpp": [],
			"url": "https://sh4zam.com/api/version/shz_version_fields/",
			"md": "https://sh4zam.com/api/version/shz_version_fields.md",
			"doxygen_url": "https://sh4zam.com/shz__version_8h.html#a3bc30bde59b281592dc1c4ae48749b88",
			"source_url": "https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_version.h#L64"
		}
	]
}
