VT
Size: a a a
VT
TL
TL
VT
TL
VT
TL
VT
VT
VT
TL
VT
TL
uLongInt uLongInt::operator*(const uLongInt& given) const
{
uLongInt result{};
int givlen = given.length();
if (givlen > number.size())
result = given * *this;
else
{
if (givlen > 0)
{
auto thread_arr = new std::thread[givlen];
auto results_get = new uLongInt[givlen];
for (int i = givlen - 1; i >= 0; i--)
{
thread_arr[i] = std::thread([&]() {
uLongInt temp{};
temp = operator*(given[i]);
temp.move_arr(i);
results_get[i] = temp;
});
}
for (int i = 0; i < givlen; i++)
{
thread_arr[i].join();
}
result = RecursiveSum(results_get, givlen);
}
}
return result;
}
TL
uLongInt uLongInt::operator*(const uint64_t& given) const
{
uLongInt result{};
int len = number.size();
for (int i = len - 1; i > 0; i--)
{
result = result + multiply(given, number[i]);
result.move_arr(1);
}
result = result + multiply(given, number[0]);
result.purify();
return result;
}
TL
VT
TL
TL
VT