⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fused.cpp

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 CPP
字号:
/************************************************** Fused Arithmetic Operations Source File        ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/numthry.h>#include <botan/mp_core.h>#include <iostream>#include <iomanip>namespace Botan {/************************************************** Fused Multiply/Add Operation                   **************************************************/BigInt mul_add(const BigInt& a, const BigInt& b, const BigInt& c)   {   if(c.is_negative())      throw Invalid_Argument("mul_add: Third argument must be positive");   Sign sign = Positive;   if(a.sign() != b.sign())      sign = Negative;   const u32bit a_sw = a.sig_words();   const u32bit b_sw = b.sig_words();   const u32bit c_sw = c.sig_words();   BigInt z(sign, std::max(a.size() + b.size(), c_sw) + 1);   bigint_mul3(z.get_reg(), z.size(),               a.data(), a.size(), a_sw,               b.data(), b.size(), b_sw);   const u32bit z_size = std::max(z.sig_words(), c_sw);   bigint_add2(z.get_reg(), z_size, c.data(), c_sw);   return z;   }/************************************************** Fused Subtract/Multiply Operation              **************************************************/BigInt sub_mul(const BigInt& a, const BigInt& b, const BigInt& c)   {   if(a.is_negative() || b.is_negative())      throw Invalid_Argument("sub_mul: First two arguments must be positive");   BigInt x = a;   x -= b;   x *= c;   return x;   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -