Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ operator*() [1/2]

static unsafe Matrix4x4 System.Numerics.Matrix4x4.operator* ( Matrix4x4 value1,
float value2 )
inlinestatic

Definition at line 243 of file Matrix4x4.cs.

244 {
246 {
247 }
248 if (Sse.IsSupported)
249 {
250 Vector128<float> right = Vector128.Create(value2);
251 Sse.Store(&value1.M11, Sse.Multiply(Sse.LoadVector128(&value1.M11), right));
252 Sse.Store(&value1.M21, Sse.Multiply(Sse.LoadVector128(&value1.M21), right));
253 Sse.Store(&value1.M31, Sse.Multiply(Sse.LoadVector128(&value1.M31), right));
254 Sse.Store(&value1.M41, Sse.Multiply(Sse.LoadVector128(&value1.M41), right));
255 return value1;
256 }
257 System.Runtime.CompilerServices.Unsafe.SkipInit(out Matrix4x4 result);
258 result.M11 = value1.M11 * value2;
259 result.M12 = value1.M12 * value2;
260 result.M13 = value1.M13 * value2;
261 result.M14 = value1.M14 * value2;
262 result.M21 = value1.M21 * value2;
263 result.M22 = value1.M22 * value2;
264 result.M23 = value1.M23 * value2;
265 result.M24 = value1.M24 * value2;
266 result.M31 = value1.M31 * value2;
267 result.M32 = value1.M32 * value2;
268 result.M33 = value1.M33 * value2;
269 result.M34 = value1.M34 * value2;
270 result.M41 = value1.M41 * value2;
271 result.M42 = value1.M42 * value2;
272 result.M43 = value1.M43 * value2;
273 result.M44 = value1.M44 * value2;
274 return result;
275 }
static Vector128< byte > Create(byte value)
Definition Vector128.cs:138
static unsafe void Store(float *address, Vector128< float > source)
Definition Sse.cs:417
static new bool IsSupported
Definition Sse.cs:30
static unsafe Vector128< float > LoadVector128(float *address)
Definition Sse.cs:257
static Vector128< float > Multiply(Vector128< float > left, Vector128< float > right)
Definition Sse.cs:322
Matrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)
Definition Matrix4x4.cs:93

References System.Runtime.Intrinsics.Vector128< T >.Create(), System.Runtime.Intrinsics.Arm.AdvSimd.IsSupported, System.Runtime.Intrinsics.X86.Sse.IsSupported, System.Runtime.Intrinsics.X86.Sse.LoadVector128(), System.Numerics.Matrix4x4.M11, System.Numerics.Matrix4x4.M21, System.Numerics.Matrix4x4.M31, System.Numerics.Matrix4x4.M41, System.Runtime.Intrinsics.X86.Sse.Multiply(), and System.Runtime.Intrinsics.X86.Sse.Store().