Joomla CMS  4.2.2
Documentation des API du CMS Joomla en version 4.2.2
Référence de la classe Engine
+ Graphe d'héritage de Engine:

Fonctions membres publiques

 __construct ($x=0, $base=10)
 
 toHex ($twos_compliment=false)
 
 toBits ($twos_compliment=false)
 
 __sleep ()
 
 __wakeup ()
 
 jsonSerialize ()
 
 __toString ()
 
 __debugInfo ()
 
 setPrecision ($bits)
 
 getPrecision ()
 
 bitwise_not ()
 
 bitwise_leftRotate ($shift)
 
 bitwise_rightRotate ($shift)
 
 getLength ()
 
 getLengthInBytes ()
 
 isPrime ($t=false)
 
 root ($n=2)
 
 createRecurringModuloFunction ()
 
 bitwise_split ($split)
 

Fonctions membres publiques statiques

static setModExpEngine ($engine)
 
static minMaxBits ($bits)
 

Champs de données

const PRIMES
 

Fonctions membres protégées

 toBytesHelper ()
 
 powModOuter (Engine $e, Engine $n)
 
 setupIsPrime ()
 
 testPrimality ($t)
 
 rootHelper ($n)
 
 rootInner ($n)
 
 extendedGCDHelper (Engine $n)
 
 bitwiseAndHelper (Engine $x)
 
 bitwiseOrHelper (Engine $x)
 
 bitwiseXorHelper (Engine $x)
 

Fonctions membres protégées statiques

static setBitmask ($bits)
 
static base256_lshift (&$x, $shift)
 
static slidingWindow (Engine $x, Engine $e, Engine $n, $class)
 
static randomRangePrimeOuter (Engine $min, Engine $max)
 
static randomRangeHelper (Engine $min, Engine $max)
 
static randomRangePrimeInner (Engine $x, Engine $min, Engine $max)
 
static minHelper (array $nums)
 
static maxHelper (array $nums)
 

Attributs protégés

 $value
 
 $is_negative
 
 $precision = -1
 
 $bitmask = false
 
 $reduce
 
 $hex
 

Attributs protégés statiques

static $zero = []
 
static $one = []
 
static $two = []
 
static $modexpEngine
 
static $isValidEngine
 

Documentation des constructeurs et destructeur

◆ __construct()

__construct (   $x = 0,
  $base = 10 
)

Default constructor

Paramètres
int | numeric-string$xinteger Base-10 number or base-$base number if $base set.
int$base

Références $base, Engine\$is_negative, $temp, BigInteger\abs(), BigInteger\add(), Strings\bits2bin(), class, Laminas\Diactoros\initialize(), null, et value.

Documentation des fonctions membres

◆ __debugInfo()

__debugInfo ( )

__debugInfo() magic method

Will be called, automatically, when print_r() or var_dump() are called

Renvoie
array

Références Engine\$precision, $result, class, et Engine\toHex().

◆ __sleep()

__sleep ( )

Serialize

Will be called, automatically, when serialize() is called on a BigInteger object.

Renvoie
array

Références Engine\toHex().

◆ __toString()

__toString ( )

Converts a BigInteger to a base-10 number.

Renvoie
string

Références BigInteger\toString().

◆ __wakeup()

__wakeup ( )

Serialize

Will be called, automatically, when unserialize() is called on a BigInteger object.

Renvoie
void

Références Engine\$hex, $temp, Engine\setPrecision(), et value.

◆ base256_lshift()

static base256_lshift ( $x,
  $shift 
)
staticprotected

Logical Left Shift

Shifts binary strings $shift bits, essentially multiplying by 2**$shift.

Paramètres
string$x
int$shift
Renvoie
void

Références $i, et $temp.

◆ bitwise_leftRotate()

bitwise_leftRotate (   $shift)

Logical Left Rotate

Instead of the top x bits being dropped they're appended to the shifted bit string.

Paramètres
int$shift
Renvoie
Engine

Références $i, Engine\$precision, $result, $temp, $this, BigInteger\bitwise_leftShift(), BigInteger\bitwise_rightShift(), et BigInteger\toBytes().

Référencé par Engine\bitwise_rightRotate().

◆ bitwise_not()

bitwise_not ( )

Logical Not

Renvoie
Engine|string

Références $temp, class, et BigInteger\toBytes().

◆ bitwise_rightRotate()

bitwise_rightRotate (   $shift)

Logical Right Rotate

Instead of the bottom x bits being dropped they're prepended to the shifted bit string.

Paramètres
int$shift
Renvoie
Engine

Références Engine\bitwise_leftRotate().

◆ bitwise_split()

bitwise_split (   $split)

Bitwise Split

Splits BigInteger's into chunks of $split bits

Paramètres
int$split
Renvoie
Engine[]

Références $this, et class.

◆ bitwiseAndHelper()

bitwiseAndHelper ( Engine  $x)
protected

Logical And

Paramètres
Engine$x
Renvoie
Engine

Références BigInteger\max(), et BigInteger\toBytes().

Référencé par PHP32\bitwise_and(), PHP64\bitwise_and(), et BCMath\bitwise_and().

◆ bitwiseOrHelper()

bitwiseOrHelper ( Engine  $x)
protected

Logical Or

Paramètres
Engine$x
Renvoie
Engine

Références BigInteger\max(), et BigInteger\toBytes().

Référencé par PHP32\bitwise_or(), et PHP64\bitwise_or().

◆ bitwiseXorHelper()

bitwiseXorHelper ( Engine  $x)
protected

Logical Exclusive Or

Paramètres
Engine$x
Renvoie
Engine

Références BigInteger\max(), et BigInteger\toBytes().

Référencé par BCMath\bitwise_or(), PHP32\bitwise_xor(), PHP64\bitwise_xor(), et BCMath\bitwise_xor().

◆ createRecurringModuloFunction()

createRecurringModuloFunction ( )

Create Recurring Modulo Function

Sometimes it may be desirable to do repeated modulos with the same number outside of modular exponentiation

Renvoie
callable

Références $class, $n, $this, Engine\$value, et class.

◆ extendedGCDHelper()

extendedGCDHelper ( Engine  $n)
protected

Calculates the greatest common divisor and Bezout's identity.

Paramètres
Engine$n
Renvoie
array{gcd: Engine, x: Engine, y: Engine}

Références $b, $c, $n, Engine\$one, $temp, $this, et Engine\$zero.

Référencé par PHP32\extendedGCD(), et PHP64\extendedGCD().

◆ getLength()

getLength ( )

Return the size of a BigInteger in bits

Renvoie
int

Références Engine\toBits().

◆ getLengthInBytes()

getLengthInBytes ( )

Return the size of a BigInteger in bytes

Renvoie
int

Références BigInteger\toBytes().

Référencé par Engine\setupIsPrime().

◆ getPrecision()

getPrecision ( )

Get Precision

Returns the precision if it exists, -1 if it doesn't

Renvoie
int

Références Engine\$precision.

◆ isPrime()

isPrime (   $t = false)

Checks a numer to see if it's prime

Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the $t parameter is distributability. BigInteger::randomPrime() can be distributed across multiple pageloads on a website instead of just one.

Paramètres
int | bool$t
Renvoie
bool

Références Engine\setupIsPrime(), et Engine\testPrimality().

Référencé par Engine\randomRangePrimeOuter().

◆ jsonSerialize()

jsonSerialize ( )

JSON Serialize

Will be called, automatically, when json_encode() is called on a BigInteger object.

Références Engine\$precision, $result, et Engine\toHex().

◆ maxHelper()

static maxHelper ( array  $nums)
staticprotected

Return the minimum BigInteger between an arbitrary number of BigIntegers.

Paramètres
array$nums
Renvoie
Engine

Références $i.

◆ minHelper()

static minHelper ( array  $nums)
staticprotected

Return the minimum BigInteger between an arbitrary number of BigIntegers.

Paramètres
array$nums
Renvoie
Engine

Références $i.

◆ minMaxBits()

static minMaxBits (   $bits)
static

Returns the smallest and largest n-bit number

Paramètres
int$bits
Renvoie
array{min: static, max: static}

◆ powModOuter()

powModOuter ( Engine  $e,
Engine  $n 
)
protected

Performs some pre-processing for powMod

Paramètres
Engine$e
Engine$n
Renvoie
static|false

Références $n, $temp, et BigInteger\modInverse().

Référencé par PHP32\modPow(), PHP64\modPow(), GMP\modPow(), BCMath\modPow(), PHP32\powMod(), PHP64\powMod(), GMP\powMod(), et BCMath\powMod().

◆ randomRangeHelper()

static randomRangeHelper ( Engine  $min,
Engine  $max 
)
staticprotected

Generate a random number between a range

Returns a random number between $min and $max where $min and $max can be defined using one of the two methods:

BigInteger::randomRange($min, $max) BigInteger::randomRange($max, $min)

Paramètres
Engine$min
Engine$max
Renvoie
Engine

Références $size, $temp, class, et elseif.

◆ randomRangePrimeInner()

static randomRangePrimeInner ( Engine  $x,
Engine  $min,
Engine  $max 
)
staticprotected

Performs some post-processing for randomRangePrime

Paramètres
Engine$x
Engine$min
Engine$max
Renvoie
static|false

Références class.

◆ randomRangePrimeOuter()

static randomRangePrimeOuter ( Engine  $min,
Engine  $max 
)
staticprotected

Performs some pre-processing for randomRangePrime

Paramètres
Engine$min
Engine$max
Renvoie
static|false

Références $temp, elseif, et Engine\isPrime().

◆ root()

root (   $n = 2)

Calculates the nth root of a biginteger.

Paramètres
int$n
Renvoie
Engine

Références Engine\rootHelper().

◆ rootHelper()

rootHelper (   $n)
protected

Performs a few preliminary checks on root

Paramètres
int$n
Renvoie
Engine

Références $n, class, BigInteger\compare(), et Engine\rootInner().

Référencé par Engine\root().

◆ rootInner()

rootInner (   $n)
protected

Calculates the nth root of a biginteger.

Returns the nth root of a positive biginteger, where n defaults to 2

{

Références $g, $n, $root, $step, $this, et class.

Référencé par Engine\rootHelper().

◆ setBitmask()

static setBitmask (   $bits)
staticprotected

Set Bitmask

Renvoie
static
Paramètres
int$bits
Voir également
self::setPrecision()

◆ setModExpEngine()

static setModExpEngine (   $engine)
static

Sets engine type.

Throws an exception if the type is invalid

Paramètres
class-string<Engine>$engine

Références class.

◆ setPrecision()

setPrecision (   $bits)

Set Precision

Some bitwise operations give different results depending on the precision being used. Examples include left shift, not, and rotates.

Paramètres
int$bits

Références $temp, $this, et value.

Référencé par Engine\__wakeup().

◆ setupIsPrime()

setupIsPrime ( )
protected

Sets the $t parameter for primality testing

Renvoie
int

Références Engine\getLengthInBytes().

Référencé par Engine\isPrime().

◆ slidingWindow()

static slidingWindow ( Engine  $x,
Engine  $e,
Engine  $n,
  $class 
)
staticprotected

Sliding Window k-ary Modular Exponentiation

Based on HAC 14.85 / MPM 7.7. In a departure from those algorithims, however, this function performs a modular reduction after every multiplication and squaring operation. As such, this function has the same preconditions that the reductions being used do.

T of Engine

Paramètres
Engine$x
Engine$e
Engine$n
class-string<T>$class
Renvoie
T

Références $class, $i, $n, $result, $temp, class, et Engine\toBits().

◆ testPrimality()

testPrimality (   $t)
protected

Tests Primality

Uses the Miller-Rabin primality test. See HAC 4.24 for more info.

Paramètres
int$t
Renvoie
bool

Références $i, $n, $r, $this, et class.

Référencé par Engine\isPrime().

◆ toBits()

toBits (   $twos_compliment = false)

Converts a BigInteger to a bit string (eg. base-2).

Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're saved as two's compliment.

Paramètres
bool$twos_compliment
Renvoie
string

Références Engine\$hex, $result, Strings\bin2bits(), BigInteger\compare(), et BigInteger\toBytes().

Référencé par Engine\getLength(), et Engine\slidingWindow().

◆ toBytesHelper()

toBytesHelper ( )
protected

Converts a BigInteger to a byte string (eg. base-256).

Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're saved as two's compliment.

Renvoie
string

Références $temp, $this, BigInteger\add(), et BigInteger\compare().

Référencé par BCMath\toBytes(), GMP\toBytes(), et PHP\toBytes().

◆ toHex()

toHex (   $twos_compliment = false)

Converts a BigInteger to a hex string (eg. base-16).

Paramètres
bool$twos_compliment
Renvoie
string

Références BigInteger\toBytes().

Référencé par Engine\__debugInfo(), Engine\__sleep(), Engine\jsonSerialize(), et GMP\toBits().

Documentation des champs

◆ $bitmask

$bitmask = false
protected

◆ $hex

$hex
protected

◆ $is_negative

$is_negative
protected

Référencé par Engine\__construct(), et PHP\isNegative().

◆ $isValidEngine

$isValidEngine
staticprotected

◆ $modexpEngine

$modexpEngine
staticprotected

◆ $one

$one = []
staticprotected

◆ $precision

◆ $reduce

$reduce
protected

◆ $two

$two = []
staticprotected

◆ $value

◆ $zero

$zero = []
staticprotected

Référencé par Engine\extendedGCDHelper().

◆ PRIMES

const PRIMES
Valeur initiale :
= [
3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,
61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137,
139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227,
229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313,
317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419,
421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509,
521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617,
619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727,
733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829,
839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947,
953, 967, 971, 977, 983, 991, 997,
]

La documentation de cette classe a été générée à partir du fichier suivant :