This branch is 8 commits behind QuasarApp/QtBigInt:main
2021-04-29 22:53:58 +03:00
2020-06-04 14:23:42 +03:00
2021-04-29 23:35:10 +03:00
2021-04-29 23:08:09 +03:00
2021-01-24 14:07:20 +03:00
2020-03-29 14:22:44 +03:00
2021-04-29 23:08:09 +03:00
2020-01-06 14:16:10 +03:00
2021-04-07 10:30:34 +03:00
2019-08-16 09:33:07 +03:00
2021-04-09 14:36:37 +03:00

QtBigInt Logo

QtBigInt - Arbitrary-sized integer class for C++ and build system qmake and cmake. Power by minigmp.

Features

  • No additional dependencies other than the standard library.
  • Support for all arithmetic operators, which allows you to easily integrate the library into any of your algorithms.
  • Based on the minigmp 6.1.2 library that provides high performance.

Build

Include

For qmake projects

  • cd yourRepo
  • git submodule add https://github.com/QuasarApp/QtBigInt.git # add the repository of QtBigInt into your repo like submodule
  • git submodule update --init --recursive
  • Include in your pro file the pri file of QtBigInt library

    include($$PWD/QtBigInt/GMP.pri)

  • Rebuild your project

For cmake projects

The cmake build do not required Qt libraries.

  • cd yourRepo
  • git submodule add https://github.com/QuasarApp/QtBigInt.git # add the repository of QtBigInt into your repo like submodule
  • git submodule update --init --recursive
  • Disable Building of tests (because tests requariend qt libraries). Add befor incuding of QtBigInt next line :

set(WITHOUT_TESTS 1)

  • Include in your CMakeLists.txt file the main CMakeLists.txt file of QtBigInt library

add_subdirectory(QtBigInt)

  • Rebuild your project
set(WITHOUT_TESTS 1)
add_subdirectory(QtBigInt)
target_link_libraries(MyBinary PUBLIC QtBigInt)

Note

By Default QtBigInt makes as a static library. If you want to create a shared library just add the BUILD_SHARED_LIBS into your main CMakeLists.txt file. Example :

set(BUILD_SHARED_LIBS ON)
set(WITHOUT_TESTS 1)
add_subdirectory(QtBigInt)
target_link_libraries(MyBinary PUBLIC QtBigInt)

For other build system

  • cd yourRepo
  • git submodule add https://github.com/QuasarApp/QtBigInt.git # add the repository of QtBigInt into your repo like submodule
  • git submodule update --init --recursive
  • Add the rule for build QtBigInt
  • Add INCLUDEPATH and LIBS for your build system
  • Rebuild your project

Usage

Create objects of the BigInt class, and do what you got to do!

#include <bigint.h>

BigInt big1 = 1234567890, big2;
big2 = "9876543210123456789098765432101234567890";

std::cout << (big1 * big2 * 123456).getSring() << "\n";
// Output: 1505331490682966620443288524512589666204282352096057600
Description
No description provided
Readme 5.6 MiB
Languages
C 61.5%
C++ 33.9%
QMake 2.8%
CMake 1.8%