< 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    {
 172678742        Word10 = word10;
 172678743        Word9 = word9;
 172678744        Word8 = word8;
 172678745        Word7 = word7;
 172678746        Word6 = word6;
 172678747        Word5 = word5;
 172678748        Word4 = word4;
 172678749        Word3 = word3;
 172678750        Word2 = word2;
 172678751        Word1 = word1;
 172678752        Word0 = word0;
 172678753    }
 54
 55    internal bool IsZero =>
 85577056        (Word10 | Word9 | Word8 | Word7 | Word6 | Word5 | Word4 | Word3 | Word2 | Word1 | Word0) == 0UL;
 57
 75143258    internal int Sign => IsZero ? 0 : (Word10 & (1UL << 63)) != 0UL ? -1 : 1;
 59
 60    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 61    internal static Signed704 ExtendValue(Signed576 value)
 62    {
 10148563        ulong extension = unchecked((ulong)((long)value.Word8 >> 63));
 10148564        return new Signed704(
 10148565            extension,
 10148566            extension,
 10148567            value.Word8,
 10148568            value.Word7,
 10148569            value.Word6,
 10148570            value.Word5,
 10148571            value.Word4,
 10148572            value.Word3,
 10148573            value.Word2,
 10148574            value.Word1,
 10148575            value.Word0);
 76    }
 77
 78}