Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Additional cleanup and acceleration of the System.Numerics vector and related types - #103527

Merged
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup
Jun 20, 2024
Merged

Additional cleanup and acceleration of the System.Numerics vector and related types#103527
tannergooding merged 10 commits into
dotnet:mainfrom
tannergooding:numerics-cleanup

Conversation

@tannergooding

@tannergoodingtannergooding commented Jun 15, 2024

Copy link
Copy Markdown
Member

Similar overall improvements to the PR this is continuing from. Most remain identical to what they were previously:

MethodToolchainMeanErrorStdDevMedianMinMaxRatioRatioSD
Plane.DotCoordinateBenchmarkruntime-base0.7257 ns0.0085 ns0.0075 ns0.7241 ns0.7169 ns0.7398 ns1.000.01
Plane.DotCoordinateBenchmarkruntime0.5491 ns0.0197 ns0.0184 ns0.5382 ns0.5358 ns0.5879 ns0.760.03
Plane.NormalizeBenchmarkruntime-base1.1018 ns0.0207 ns0.0193 ns1.0922 ns1.0873 ns1.1382 ns1.000.02
Plane.NormalizeBenchmarkruntime1.1102 ns0.0296 ns0.0277 ns1.0938 ns1.0860 ns1.1548 ns1.010.03
Plane.TransformByMatrix4x4Benchmarkruntime11.3975 ns0.0586 ns0.0519 ns11.4152 ns11.3087 ns11.4736 ns1.000.01
Plane.TransformByMatrix4x4Benchmarkruntime-base9.5247 ns0.0415 ns0.0368 ns9.5240 ns9.4585 ns9.5803 ns0.840.00
Quaternion.DivisionOperatorBenchmarkruntime-base4.1745 ns0.0149 ns0.0132 ns4.1728 ns4.1580 ns4.2009 ns1.000.00
Quaternion.DivisionOperatorBenchmarkruntime1.2661 ns0.0039 ns0.0030 ns1.2660 ns1.2628 ns1.2734 ns0.300.00
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime-base2.2240 ns0.0162 ns0.0144 ns2.2184 ns2.2091 ns2.2562 ns1.000.01
Quaternion.MultiplyByQuaternionOperatorBenchmarkruntime0.5656 ns0.0232 ns0.0217 ns0.5499 ns0.5478 ns0.6062 ns0.250.01
Quaternion.ConcatenateBenchmarkruntime-base3.1269 ns0.0402 ns0.0376 ns3.1064 ns3.0917 ns3.1953 ns1.000.02
Quaternion.ConcatenateBenchmarkruntime0.5663 ns0.0227 ns0.0213 ns0.5633 ns0.5338 ns0.6047 ns0.180.01
Quaternion.ConjugateBenchmarkruntime-base0.1936 ns0.0124 ns0.0116 ns0.1857 ns0.1818 ns0.2111 ns1.000.08
Quaternion.ConjugateBenchmarkruntime0.1968 ns0.0162 ns0.0151 ns0.1878 ns0.1837 ns0.2265 ns1.020.10
Quaternion.CreateFromAxisAngleBenchmarkruntime-base7.7296 ns0.0161 ns0.0151 ns7.7302 ns7.6947 ns7.7572 ns1.000.00
Quaternion.CreateFromAxisAngleBenchmarkruntime7.4446 ns0.0478 ns0.0447 ns7.4217 ns7.4048 ns7.5371 ns0.960.01
Quaternion.InverseBenchmarkruntime-base0.9127 ns0.0110 ns0.0103 ns0.9101 ns0.9014 ns0.9351 ns1.000.02
Quaternion.InverseBenchmarkruntime1.2364 ns0.1370 ns0.1577 ns1.1716 ns1.0853 ns1.5973 ns1.350.17
Quaternion.LerpBenchmarkruntime-base5.0949 ns0.0332 ns0.0310 ns5.0914 ns5.0590 ns5.1670 ns1.000.01
Quaternion.LerpBenchmarkruntime1.6378 ns0.0297 ns0.0278 ns1.6312 ns1.6031 ns1.6804 ns0.320.01
Quaternion.MultiplyByQuaternionBenchmarkruntime-base2.2071 ns0.0051 ns0.0042 ns2.2056 ns2.2036 ns2.2187 ns1.000.00
Quaternion.MultiplyByQuaternionBenchmarkruntime0.5629 ns0.0293 ns0.0274 ns0.5437 ns0.5400 ns0.6083 ns0.260.01
Quaternion.SlerpBenchmarkruntime-base5.1270 ns0.0144 ns0.0135 ns5.1238 ns5.1027 ns5.1533 ns1.000.00
Quaternion.SlerpBenchmarkruntime1.6400 ns0.0270 ns0.0252 ns1.6321 ns1.6087 ns1.6817 ns0.320.00

martenfand others added 8 commits March 11, 2024 17:20
Vector3.Cross(Vector3 vector1, Vector3 vector2)
Vector3.Transform(Vector3 value, Quaternion rotation)
added simd paths for quaternion multiplication, division and concatenate
added simd path for matrix4x4 multiplication
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-numerics
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@tannergooding@michaelgsharp@martenf