C # - любой способ использовать _addcarry_u64 встроенной? - PullRequest
2 голосов
/ 19 июня 2019

Я пытаюсь создать прототип неподписанного типа BigInteger с фиксированным размером в байтах.Общая идея состоит в том, чтобы иметь структуру с фиксированным буфером из частей UInt64.

Чтобы эффективно добавлять эти большие целые числа, я мог бы использовать C # эквивалент встроенной функции _addcarry_u64 , как поддерживается MSVC или ICC в мире C ++.До сих пор я, к сожалению, не смог найти встроенный эквивалент в .NET Core 2.1.

Есть ли уже какой-либо эквивалент в мире C # (может быть, с внутренними компонентами .NET Core 3.0? Я не могу это проверитьна моей машине, к сожалению)?

В качестве альтернативы, есть ли разумный способ для пользовательской реализации?Единственный способ, которым я могу придумать, - это сгенерировать Assembly для этих инструкций, но, с другой стороны, я видел единственный способ вызвать Assembly на всех из C # через PInvoke и - для тестирования - но я бы настоятельно предположилнакладные расходы на это будут значительно больше, чем производительность, которая будет получена от встроенного в первую очередь.

Спасибо

...