< Summary

Information
Class: FixedMathSharp.Signed704
Assembly: FixedMathSharp
File(s): /home/runner/work/FixedMathSharp/FixedMathSharp/src/FixedMathSharp/Numerics/Wide/Signed704.cs
Line coverage
100%
Covered lines: 27
Uncovered lines: 0
Coverable lines: 27
Total lines: 78
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
.ctor(...)100%11100%
get_IsZero()100%11100%
get_Sign()100%44100%
ExtendValue(...)100%11100%

File(s)

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

#LineLine coverage
 1//=======================================================================
 2// Signed704.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 eleven-word value used by expanded finite-axis evaluations.
 14/// </summary>
 15internal readonly struct Signed704
 16{
 17    internal readonly ulong Word10;
 18    internal readonly ulong Word9;
 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 Signed704(
 30        ulong word10,
 31        ulong word9,
 32        ulong word8,
 33        ulong word7,
 34        ulong word6,
 35        ulong word5,
 36        ulong word4,
 37        ulong word3,
 38        ulong word2,
 39        ulong word1,
 40        ulong word0)
 41    {
 146919542        Word10 = word10;
 146919543        Word9 = word9;
 146919544        Word8 = word8;
 146919545        Word7 = word7;
 146919546        Word6 = word6;
 146919547        Word5 = word5;
 146919548        Word4 = word4;
 146919549        Word3 = word3;
 146919550        Word2 = word2;
 146919551        Word1 = word1;
 146919552        Word0 = word0;
 146919553    }
 54
 55    internal bool IsZero =>
 82194856        (Word10 | Word9 | Word8 | Word7 | Word6 | Word5 | Word4 | Word3 | Word2 | Word1 | Word0) == 0UL;
 57
 77375458    internal int Sign => IsZero ? 0 : (Word10 & (1UL << 63)) != 0UL ? -1 : 1;
 59
 60    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 61    internal static Signed704 ExtendValue(Signed576 value)
 62    {
 2150263        ulong extension = unchecked((ulong)((long)value.Word8 >> 63));
 2150264        return new Signed704(
 2150265            extension,
 2150266            extension,
 2150267            value.Word8,
 2150268            value.Word7,
 2150269            value.Word6,
 2150270            value.Word5,
 2150271            value.Word4,
 2150272            value.Word3,
 2150273            value.Word2,
 2150274            value.Word1,
 2150275            value.Word0);
 76    }
 77
 78}