< Summary

Information
Class: FixedMathSharp.Signed576
Assembly: FixedMathSharp
File(s): /home/runner/work/FixedMathSharp/FixedMathSharp/src/FixedMathSharp/Numerics/Wide/Signed576.cs
Line coverage
100%
Covered lines: 35
Uncovered lines: 0
Coverable lines: 35
Total lines: 86
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
.ctor(...)100%11100%
get_IsZero()100%11100%
get_Sign()100%44100%
ExtendValue(...)100%11100%
NarrowValue(...)100%11100%
Equals(...)100%11100%

File(s)

/home/runner/work/FixedMathSharp/FixedMathSharp/src/FixedMathSharp/Numerics/Wide/Signed576.cs

#LineLine coverage
 1//=======================================================================
 2// Signed576.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2024–present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8using System.Runtime.CompilerServices;
 9
 10namespace FixedMathSharp;
 11
 12/// <summary>
 13/// A signed nine-word value used by exact finite-axis geometry evaluations.
 14/// </summary>
 15internal readonly struct Signed576
 16{
 117    public static readonly Signed576 One = ExtendValue(Signed320.One);
 18
 19    internal readonly ulong Word8;
 20    internal readonly ulong Word7;
 21    internal readonly ulong Word6;
 22    internal readonly ulong Word5;
 23    internal readonly ulong Word4;
 24    internal readonly ulong Word3;
 25    internal readonly ulong Word2;
 26    internal readonly ulong Word1;
 27    internal readonly ulong Word0;
 28
 29    internal Signed576(
 30        ulong word8,
 31        ulong word7,
 32        ulong word6,
 33        ulong word5,
 34        ulong word4,
 35        ulong word3,
 36        ulong word2,
 37        ulong word1,
 38        ulong word0)
 39    {
 518636540        Word8 = word8;
 518636541        Word7 = word7;
 518636542        Word6 = word6;
 518636543        Word5 = word5;
 518636544        Word4 = word4;
 518636545        Word3 = word3;
 518636546        Word2 = word2;
 518636547        Word1 = word1;
 518636548        Word0 = word0;
 518636549    }
 50
 51    internal bool IsZero =>
 390806952        (Word8 | Word7 | Word6 | Word5 | Word4 | Word3 | Word2 | Word1 | Word0) == 0UL;
 53
 382438654    internal int Sign => IsZero ? 0 : (Word8 & (1UL << 63)) != 0UL ? -1 : 1;
 55
 56    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 57    internal static Signed576 ExtendValue(Signed320 value)
 58    {
 244285659        ulong extension = unchecked((ulong)((long)value.Word4 >> 63));
 244285660        return new Signed576(
 244285661            extension, extension, extension, extension,
 244285662            value.Word4, value.Word3, value.Word2, value.Word1, value.Word0);
 63    }
 64
 65    internal static Signed576 NarrowValue(Signed704 value) =>
 5538866        new(value.Word8,
 5538867            value.Word7,
 5538868            value.Word6,
 5538869            value.Word5,
 5538870            value.Word4,
 5538871            value.Word3,
 5538872            value.Word2,
 5538873            value.Word1,
 5538874            value.Word0);
 75
 76    internal bool Equals(Signed576 other) =>
 277        ((Word8 ^ other.Word8)
 278         | (Word7 ^ other.Word7)
 279         | (Word6 ^ other.Word6)
 280         | (Word5 ^ other.Word5)
 281         | (Word4 ^ other.Word4)
 282         | (Word3 ^ other.Word3)
 283         | (Word2 ^ other.Word2)
 284         | (Word1 ^ other.Word1)
 285         | (Word0 ^ other.Word0)) == 0UL;
 86}