Une bibliothèque Bignum pour PHP.
| Taper | Ajout | Soustraction | Division | Multiplication | Racine carrée | Pouvoir |
|---|---|---|---|---|---|---|
| Grand | fait | fait | fait | fait | fait | fait |
| Bigfloat | fait | fait | fait | fait | fait | fait |
Il suffit de cloner le projet, d'aller au répertoire du projet et d'exécuter composer install et devrait être bon à partir! Oh et aussi pour exécuter des tests, vous devez effectuer vendor/phpunit/phpunit/phpunit tests/ .
Le package est installable via composer require hpez/php-bignum ou Packagist Repo
<?php
// BigInteger Addition
$ bigInt1 = new BigInt( ' 123456 ' )
$ bigInt2 = new BigInt ( ' 654321 ' );
$ bigInt1 -> add ( $ bigInt2 );
echo $ bigInt1 ; // "777777"
// BigFloat Addition
$ bigFloat1 = new BigFloat ( ' 123456.111 ' );
$ bigFloat2 = new BigFloat ( ' 654321.22 ' );
$ bigFloat1 -> add ( $ bigFloat2 )
echo $ bigFloat1 ; // "777777.331"
// BigInteger Subtraction
$ bigInt3 = new BigInt ( ' 777777 ' );
$ bigInt4 = new BigInt ( ' 654321 ' );
$ bigInt3 -> sub ( $ bigInt4 );
echo $ bigInt3 ; // "123456"
// BigFloat Subtraction
$ bigFloat3 = new BigFloat ( ' 123456.111 ' );
$ bigFloat4 = new BigFloat ( ' 654321.22 ' );
$ bigFloat3 -> sub ( $ bigFloat4 );
echo $ bigFloat3 ; // results "530865.109"
// BigInteger Division
$ bigInt5 = new BigInt ( ' 777777 ' );
$ bigInt6 = new BigInt ( ' 654321 ' );
$ bigInt5 -> div ( $ bigInt6 );
echo $ bigInt5 ; // "1"
// BigFloat Division
$ bigFloat5 = new BigFloat ( ' 123456.111 ' );
$ bigFloat6 = new BigFloat ( ' 654321.22 ' );
$ bigFloat5 -> div ( $ bigFloat6 );
echo $ bigFloat5 ; // "0.188678"
// BigInteger Multiplication
$ bigInt7 = new BigInt ( ' 777777 ' );
$ bigInt8 = new BigInt ( ' 654321 ' );
$ bigInt7 -> multiply ( $ bigInt8 );
echo $ bigInt7 ; // "508915824417"
// BigFloat Multiplication
$ bigFloat7 = new BigFloat ( ' 123456.111 ' );
$ bigFloat8 = new BigFloat ( ' 654321.22 ' );
$ bigFloat7 -> multiply ( $ bigFloat8 );
echo $ bigFloat7 ; // "80779953165.97542"
// BigInteger Modulo
$ bigInt9 = new BigInt ( ' 777777 ' );
$ bigInt10 = new BigInt ( ' 654321 ' );
$ bigInt9 -> mod ( $ bigInt10 );
echo $ bigInt9 ; // "123456"
// BigInteger Power
$ bigInt11 = new BigInt ( ' 777777 ' );
$ bigInt12 = new BigInt ( ' 1 ' );
$ bigInt11 -> pow ( $ bigInt12 );
echo $ bigInt11 ; // "777777"
// BigFloat Power
$ bigFloat9 = new BigFloat ( ' 12345.12345 ' );
$ bigInt13 = new BigInt ( ' 3 ' );
$ bigFloat9 -> pow ( $ bigInt13 );
echo $ bigFloat9 // "1881422405168.320420453463625"
// BigInteger Square Root
$ bigInt14 = new BigInt ( ' 10000 ' );
$ bigInt15 -> sqrt ();
echo $ bigInt14 ; // "100"
// BigFloat Square Root
$ bigFloat10 = new BigFloat ( ' 2 ' );
$ bigFloat11 -> sqrt ( 7 );
echo $ bigFloat10 ; // "1.4142136"
// BigInteger Lesser-Than
$ bigInt16 = new BigInt ( ' 1234567890 ' );
$ bigInt17 = new BigInt ( ' 1234567891 ' );
echo $ bigInt16 -> isLesserThan ( $ bigInt17 ); // True
$ bigInt18 = new BigInt ( ' 1234567891 ' );
$ bigInt19 = new BigInt ( ' 1234567891 ' );
echo $ bigInt18 -> isLesserThan ( $ bigInt19 ); // False
// BigInteger Bigger-Than
$ bigInt20 = new BigInt ( ' 1234567891 ' );
$ bigInt21 = new BigInt ( ' 1234567890 ' );
echo $ bigInt20 -> isBiggerThan ( $ bigInt21 ); // True
$ bigInt22 = new BigInt ( ' 1234567891 ' );
$ bigInt23 = new BigInt ( ' 1234567891 ' );
echo $ bigInt22 -> isBiggerThan ( $ bigInt23 ); // False L'objectif de ce projet est de fabriquer une bibliothèque de bignum complète pour le langage PHP, donc des opérations autres que celles mentionnées dans le tableau doivent également être ajoutées (fonctions trigonométriques, ...).
Toute contribution sous la forme d'un problème ou d'une demande de traction est plus que bienvenue! De plus, si vous avez des questions, n'hésitez pas à créer un nouveau problème ou à commenter ceux existants.