[ Index ] |
PHP Cross Reference of DokuWiki |
[Source view] [Print] [Project Stats]
PHP Dynamic Barrett Modular Exponentiation Engine PHP version 5 and 7
Author: | Jim Wigginton |
Copyright: | 2017 Jim Wigginton |
License: | http://www.opensource.org/licenses/mit-license.html MIT License |
Link: | http://pear.php.net/package/Math_BigInteger |
File Size: | 484 lines (16 kb) |
Included or required: | 0 times |
Referenced: | 0 times |
Includes or requires: | 0 files |
reduce(array $n, array $m, $class) X-Ref |
Barrett Modular Reduction This calls a dynamically generated loop unrolled function that's specific to a given modulo. Array lookups are avoided as are if statements testing for how many bits the host OS supports, etc. return: array param: array $n param: array $m param: string $class |
generateCustomReduction(PHP $m, $class) X-Ref |
Generate Custom Reduction return: callable param: PHP $m param: string $class |
generateInlineTrim($name) X-Ref |
Inline Trim Removes leading zeros return: string param: string $name |
generateInlineMultiply($input, array $arr, $output, $class) X-Ref |
Inline Multiply (unknown, known) return: string param: string $input param: array $arr param: string $output param: string $class |
generateInlineAdd($x, $y, $result, $class) X-Ref |
Inline Addition return: string param: string $x param: string $y param: string $result param: string $class |
generateInlineSubtract2($known, $unknown, $result, $class) X-Ref |
Inline Subtraction 2 For when $known is more digits than $unknown. This is the harder use case to optimize for. return: string param: string $known param: string $unknown param: string $result param: string $class |
generateInlineSubtract1($unknown, array $known, $result, $class) X-Ref |
Inline Subtraction 1 For when $unknown is more digits than $known. This is the easier use case to optimize for. return: string param: string $unknown param: array $known param: string $result param: string $class |
generateInlineCompare(array $known, $unknown, $subcode) X-Ref |
Inline Comparison If $unknown >= $known then loop return: string param: array $known param: string $unknown param: string $subcode |
float2string($num) X-Ref |
Convert a float to a string If you do echo floatval(pow(2, 52)) you'll get 4.6116860184274E+18. It /can/ be displayed without a loss of precision but displayed in this way there will be precision loss, hence the need for this method. return: string param: int|float $num |