exiftool-vendored.exe 12.80.0 → 12.82.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/README.md +6 -0
  2. package/bin/exiftool.exe +0 -0
  3. package/bin/exiftool_files/Changes +44 -0
  4. package/bin/exiftool_files/Licenses_Strawberry_Perl.zip +0 -0
  5. package/bin/exiftool_files/README +3 -2
  6. package/bin/exiftool_files/exiftool.pl +36 -14
  7. package/bin/exiftool_files/lib/Archive/Zip/Archive.pm +399 -65
  8. package/bin/exiftool_files/lib/Archive/Zip/DirectoryMember.pm +1 -1
  9. package/bin/exiftool_files/lib/Archive/Zip/FileMember.pm +1 -1
  10. package/bin/exiftool_files/lib/Archive/Zip/Member.pm +499 -195
  11. package/bin/exiftool_files/lib/Archive/Zip/NewFileMember.pm +1 -1
  12. package/bin/exiftool_files/lib/Archive/Zip/StringMember.pm +2 -2
  13. package/bin/exiftool_files/lib/Archive/Zip/ZipFileMember.pm +79 -20
  14. package/bin/exiftool_files/lib/Archive/Zip.pm +179 -29
  15. package/bin/exiftool_files/lib/AutoLoader.pm +453 -0
  16. package/bin/exiftool_files/lib/B/Deparse.pm +209 -137
  17. package/bin/exiftool_files/lib/B.pm +1 -1
  18. package/bin/exiftool_files/lib/Benchmark.pm +1123 -0
  19. package/bin/exiftool_files/lib/Class/Struct.pm +2 -2
  20. package/bin/exiftool_files/lib/Compress/Raw/Bzip2.pm +14 -9
  21. package/bin/exiftool_files/lib/Compress/Raw/Lzma.pm +982 -0
  22. package/bin/exiftool_files/lib/Compress/Raw/Zlib.pm +91 -86
  23. package/bin/exiftool_files/lib/Compress/Zlib.pm +105 -100
  24. package/bin/exiftool_files/lib/Config.pm +9 -9
  25. package/bin/exiftool_files/lib/Config_heavy.pl +36 -33
  26. package/bin/exiftool_files/lib/CryptX.pm +2 -82
  27. package/bin/exiftool_files/lib/Data/Dumper.pm +2 -2
  28. package/bin/exiftool_files/lib/Digest/MD5.pm +12 -9
  29. package/bin/exiftool_files/lib/Digest/Perl/MD5.pm +1 -191
  30. package/bin/exiftool_files/lib/Digest/base.pm +26 -20
  31. package/bin/exiftool_files/lib/DynaLoader.pm +7 -4
  32. package/bin/exiftool_files/lib/Encode.pm +3 -3
  33. package/bin/exiftool_files/lib/Errno.pm +13 -13
  34. package/bin/exiftool_files/lib/Exporter/Heavy.pm +2 -2
  35. package/bin/exiftool_files/lib/Exporter.pm +1 -1
  36. package/bin/exiftool_files/lib/ExtUtils/Command/MM.pm +323 -0
  37. package/bin/exiftool_files/lib/ExtUtils/Command.pm +382 -0
  38. package/bin/exiftool_files/lib/File/Find.pm +1 -1
  39. package/bin/exiftool_files/lib/File/Glob.pm +1 -8
  40. package/bin/exiftool_files/lib/File/GlobMapper.pm +2 -2
  41. package/bin/exiftool_files/lib/File/HomeDir/Darwin/Carbon.pm +2 -40
  42. package/bin/exiftool_files/lib/File/HomeDir/Darwin/Cocoa.pm +2 -34
  43. package/bin/exiftool_files/lib/File/HomeDir/Darwin.pm +2 -28
  44. package/bin/exiftool_files/lib/File/HomeDir/Driver.pm +2 -35
  45. package/bin/exiftool_files/lib/File/HomeDir/FreeDesktop.pm +2 -62
  46. package/bin/exiftool_files/lib/File/HomeDir/MacOS9.pm +2 -53
  47. package/bin/exiftool_files/lib/File/HomeDir/Test.pm +2 -43
  48. package/bin/exiftool_files/lib/File/HomeDir/Unix.pm +2 -53
  49. package/bin/exiftool_files/lib/File/HomeDir/Windows.pm +2 -69
  50. package/bin/exiftool_files/lib/File/HomeDir.pm +5 -416
  51. package/bin/exiftool_files/lib/File/Path.pm +3 -3
  52. package/bin/exiftool_files/lib/File/Spec/Win32.pm +2 -2
  53. package/bin/exiftool_files/lib/File/Temp.pm +70 -35
  54. package/bin/exiftool_files/lib/File/Which.pm +1 -240
  55. package/bin/exiftool_files/lib/File/stat.pm +3 -2
  56. package/bin/exiftool_files/lib/IO/Compress/Adapter/Bzip2.pm +16 -17
  57. package/bin/exiftool_files/lib/IO/Compress/Adapter/Deflate.pm +19 -20
  58. package/bin/exiftool_files/lib/IO/Compress/Base/Common.pm +5 -5
  59. package/bin/exiftool_files/lib/IO/Compress/Base.pm +35 -26
  60. package/bin/exiftool_files/lib/IO/Compress/Brotli.pm +159 -0
  61. package/bin/exiftool_files/lib/IO/Compress/Bzip2.pm +50 -25
  62. package/bin/exiftool_files/lib/IO/Compress/Gzip/Constants.pm +6 -6
  63. package/bin/exiftool_files/lib/IO/Compress/Gzip.pm +58 -32
  64. package/bin/exiftool_files/lib/IO/Compress/RawDeflate.pm +63 -38
  65. package/bin/exiftool_files/lib/IO/Compress/Zlib/Extra.pm +20 -20
  66. package/bin/exiftool_files/lib/IO/Dir.pm +1 -1
  67. package/bin/exiftool_files/lib/IO/File.pm +1 -1
  68. package/bin/exiftool_files/lib/IO/Handle.pm +1 -21
  69. package/bin/exiftool_files/lib/IO/Pipe.pm +1 -1
  70. package/bin/exiftool_files/lib/IO/Seekable.pm +1 -1
  71. package/bin/exiftool_files/lib/IO/Select.pm +16 -2
  72. package/bin/exiftool_files/lib/IO/Socket/INET.pm +14 -9
  73. package/bin/exiftool_files/lib/IO/Socket/UNIX.pm +17 -1
  74. package/bin/exiftool_files/lib/IO/Socket.pm +474 -126
  75. package/bin/exiftool_files/lib/IO/String.pm +425 -0
  76. package/bin/exiftool_files/lib/IO/Uncompress/Adapter/Inflate.pm +13 -14
  77. package/bin/exiftool_files/lib/IO/Uncompress/Base.pm +142 -132
  78. package/bin/exiftool_files/lib/IO/Uncompress/Brotli.pm +119 -0
  79. package/bin/exiftool_files/lib/IO/Uncompress/Gunzip.pm +43 -37
  80. package/bin/exiftool_files/lib/IO/Uncompress/RawInflate.pm +49 -43
  81. package/bin/exiftool_files/lib/IO.pm +2 -2
  82. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +44 -31
  83. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +2 -2
  84. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +20 -7
  85. package/bin/exiftool_files/lib/Image/ExifTool/GM.pm +543 -0
  86. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +332 -149
  87. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +9 -4
  88. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +32 -4
  89. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +2 -2
  90. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
  91. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +331 -22
  92. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +55 -1
  93. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -0
  94. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +21 -3
  95. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +3 -3
  96. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +40 -24
  97. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +61 -30
  98. package/bin/exiftool_files/lib/Image/ExifTool/README +2 -0
  99. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +1 -1
  100. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4815 -4775
  101. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +931 -617
  102. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +30 -8
  103. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +10 -4
  104. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +4 -2
  105. package/bin/exiftool_files/lib/Image/ExifTool.pm +77 -41
  106. package/bin/exiftool_files/lib/Image/ExifTool.pod +24 -11
  107. package/bin/exiftool_files/lib/List/Util.pm +97 -8
  108. package/bin/exiftool_files/lib/MIME/Base64.pm +5 -5
  109. package/bin/exiftool_files/lib/MIME/Charset/_Compat.pm +106 -0
  110. package/bin/exiftool_files/lib/MIME/Charset.pm +1303 -0
  111. package/bin/exiftool_files/lib/Math/BigFloat.pm +444 -27
  112. package/bin/exiftool_files/lib/Math/BigInt/Calc.pm +296 -313
  113. package/bin/exiftool_files/lib/Math/BigInt/FastCalc.pm +1 -1
  114. package/bin/exiftool_files/lib/Math/BigInt/GMP.pm +2 -115
  115. package/bin/exiftool_files/lib/Math/BigInt/LTM.pm +2 -24
  116. package/bin/exiftool_files/lib/Math/BigInt/Lib.pm +61 -32
  117. package/bin/exiftool_files/lib/Math/BigInt.pm +292 -107
  118. package/bin/exiftool_files/lib/POSIX.pm +1 -1
  119. package/bin/exiftool_files/lib/PerlIO/scalar.pm +41 -0
  120. package/bin/exiftool_files/lib/PerlIO.pm +397 -0
  121. package/bin/exiftool_files/lib/Portable/CPAN.pm +94 -94
  122. package/bin/exiftool_files/lib/Portable/Config.pm +94 -94
  123. package/bin/exiftool_files/lib/Portable/FileSpec.pm +180 -180
  124. package/bin/exiftool_files/lib/Portable/HomeDir.pm +110 -110
  125. package/bin/exiftool_files/lib/Portable/LoadYaml.pm +430 -430
  126. package/bin/exiftool_files/lib/Portable/minicpan.pm +55 -55
  127. package/bin/exiftool_files/lib/Portable.pm +246 -320
  128. package/bin/exiftool_files/lib/Scalar/Util.pm +9 -4
  129. package/bin/exiftool_files/lib/Socket.pm +16 -12
  130. package/bin/exiftool_files/lib/Storable.pm +1444 -1441
  131. package/bin/exiftool_files/lib/TAP/Base.pm +133 -0
  132. package/bin/exiftool_files/lib/TAP/Formatter/Base.pm +467 -0
  133. package/bin/exiftool_files/lib/TAP/Formatter/Color.pm +116 -0
  134. package/bin/exiftool_files/lib/TAP/Formatter/Console/ParallelSession.pm +201 -0
  135. package/bin/exiftool_files/lib/TAP/Formatter/Console/Session.pm +205 -0
  136. package/bin/exiftool_files/lib/TAP/Formatter/Console.pm +100 -0
  137. package/bin/exiftool_files/lib/TAP/Formatter/File/Session.pm +95 -0
  138. package/bin/exiftool_files/lib/TAP/Formatter/File.pm +56 -0
  139. package/bin/exiftool_files/lib/TAP/Formatter/Session.pm +220 -0
  140. package/bin/exiftool_files/lib/TAP/Harness/Beyond.pod +426 -0
  141. package/bin/exiftool_files/lib/TAP/Harness/Env.pm +215 -0
  142. package/bin/exiftool_files/lib/TAP/Harness.pm +1054 -0
  143. package/bin/exiftool_files/lib/TAP/Object.pm +155 -0
  144. package/bin/exiftool_files/lib/TAP/Parser/Aggregator.pm +414 -0
  145. package/bin/exiftool_files/lib/TAP/Parser/Grammar.pm +584 -0
  146. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Array.pm +100 -0
  147. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Process.pm +378 -0
  148. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Stream.pm +116 -0
  149. package/bin/exiftool_files/lib/TAP/Parser/Iterator.pm +162 -0
  150. package/bin/exiftool_files/lib/TAP/Parser/IteratorFactory.pm +339 -0
  151. package/bin/exiftool_files/lib/TAP/Parser/Multiplexer.pm +194 -0
  152. package/bin/exiftool_files/lib/TAP/Parser/Result/Bailout.pm +62 -0
  153. package/bin/exiftool_files/lib/TAP/Parser/Result/Comment.pm +60 -0
  154. package/bin/exiftool_files/lib/TAP/Parser/Result/Plan.pm +119 -0
  155. package/bin/exiftool_files/lib/TAP/Parser/Result/Pragma.pm +62 -0
  156. package/bin/exiftool_files/lib/TAP/Parser/Result/Test.pm +271 -0
  157. package/bin/exiftool_files/lib/TAP/Parser/Result/Unknown.pm +48 -0
  158. package/bin/exiftool_files/lib/TAP/Parser/Result/Version.pm +62 -0
  159. package/bin/exiftool_files/lib/TAP/Parser/Result/YAML.pm +61 -0
  160. package/bin/exiftool_files/lib/TAP/Parser/Result.pm +297 -0
  161. package/bin/exiftool_files/lib/TAP/Parser/ResultFactory.pm +183 -0
  162. package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Job.pm +127 -0
  163. package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Spinner.pm +61 -0
  164. package/bin/exiftool_files/lib/TAP/Parser/Scheduler.pm +448 -0
  165. package/bin/exiftool_files/lib/TAP/Parser/Source.pm +381 -0
  166. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Executable.pm +184 -0
  167. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/File.pm +136 -0
  168. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Handle.pm +124 -0
  169. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Perl.pm +370 -0
  170. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/RawTAP.pm +130 -0
  171. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler.pm +191 -0
  172. package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Reader.pm +332 -0
  173. package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Writer.pm +254 -0
  174. package/bin/exiftool_files/lib/TAP/Parser.pm +1931 -0
  175. package/bin/exiftool_files/lib/Test/Builder/Formatter.pm +107 -0
  176. package/bin/exiftool_files/lib/Test/Builder/IO/Scalar.pm +659 -0
  177. package/bin/exiftool_files/lib/Test/Builder/Module.pm +182 -0
  178. package/bin/exiftool_files/lib/Test/Builder/Tester/Color.pm +51 -0
  179. package/bin/exiftool_files/lib/Test/Builder/Tester.pm +675 -0
  180. package/bin/exiftool_files/lib/Test/Builder/TodoDiag.pm +68 -0
  181. package/bin/exiftool_files/lib/Test/Builder.pm +2653 -0
  182. package/bin/exiftool_files/lib/Test/Harness.pm +618 -0
  183. package/bin/exiftool_files/lib/Test/More.pm +1997 -0
  184. package/bin/exiftool_files/lib/Test/Simple.pm +220 -0
  185. package/bin/exiftool_files/lib/Test/Tester/Capture.pm +241 -0
  186. package/bin/exiftool_files/lib/Test/Tester/CaptureRunner.pm +79 -0
  187. package/bin/exiftool_files/lib/Test/Tester/Delegate.pm +45 -0
  188. package/bin/exiftool_files/lib/Test/Tester.pm +695 -0
  189. package/bin/exiftool_files/lib/Test/Tutorial.pod +618 -0
  190. package/bin/exiftool_files/lib/Test/use/ok.pm +64 -0
  191. package/bin/exiftool_files/lib/Text/ParseWords.pm +303 -0
  192. package/bin/exiftool_files/lib/Tie/StdHandle.pm +2 -2
  193. package/bin/exiftool_files/lib/Time/HiRes.pm +73 -68
  194. package/bin/exiftool_files/lib/Time/Local.pm +82 -35
  195. package/bin/exiftool_files/lib/Time/Piece.pm +19 -4
  196. package/bin/exiftool_files/lib/Time/Seconds.pm +1 -1
  197. package/bin/exiftool_files/lib/UNIVERSAL.pm +203 -0
  198. package/bin/exiftool_files/lib/Unicode/GCString.pm +60 -0
  199. package/bin/exiftool_files/lib/Unicode/LineBreak/Constants.pm +68 -0
  200. package/bin/exiftool_files/lib/Unicode/LineBreak.pm +248 -0
  201. package/bin/exiftool_files/lib/Win32/API/Struct.pm +1 -177
  202. package/bin/exiftool_files/lib/Win32/API/Type.pm +1 -100
  203. package/bin/exiftool_files/lib/Win32/API.pm +1 -830
  204. package/bin/exiftool_files/lib/Win32/FindFile.pm +2 -123
  205. package/bin/exiftool_files/lib/Win32.pm +213 -89
  206. package/bin/exiftool_files/lib/Win32API/File.pm +1 -1
  207. package/bin/exiftool_files/lib/auto/B/B.xs.dll +0 -0
  208. package/bin/exiftool_files/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll +0 -0
  209. package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/Lzma.xs.dll +0 -0
  210. package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/autosplit.ix +3 -0
  211. package/bin/exiftool_files/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll +0 -0
  212. package/bin/exiftool_files/lib/auto/CryptX/CryptX.xs.dll +0 -0
  213. package/bin/exiftool_files/lib/auto/Cwd/Cwd.xs.dll +0 -0
  214. package/bin/exiftool_files/lib/auto/Data/Dumper/Dumper.xs.dll +0 -0
  215. package/bin/exiftool_files/lib/auto/Digest/MD5/MD5.xs.dll +0 -0
  216. package/bin/exiftool_files/lib/auto/Digest/SHA/SHA.xs.dll +0 -0
  217. package/bin/exiftool_files/lib/auto/Encode/Encode.xs.dll +0 -0
  218. package/bin/exiftool_files/lib/auto/Fcntl/Fcntl.xs.dll +0 -0
  219. package/bin/exiftool_files/lib/auto/File/Glob/Glob.xs.dll +0 -0
  220. package/bin/exiftool_files/lib/auto/IO/Compress/Brotli/Brotli.xs.dll +0 -0
  221. package/bin/exiftool_files/lib/auto/IO/IO.xs.dll +0 -0
  222. package/bin/exiftool_files/lib/auto/List/Util/Util.xs.dll +0 -0
  223. package/bin/exiftool_files/lib/auto/MIME/Base64/Base64.xs.dll +0 -0
  224. package/bin/exiftool_files/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll +0 -0
  225. package/bin/exiftool_files/lib/auto/Math/BigInt/GMP/GMP.xs.dll +0 -0
  226. package/bin/exiftool_files/lib/auto/POSIX/POSIX.xs.dll +0 -0
  227. package/bin/exiftool_files/lib/auto/PerlIO/scalar/scalar.xs.dll +0 -0
  228. package/bin/exiftool_files/lib/auto/Socket/Socket.xs.dll +0 -0
  229. package/bin/exiftool_files/lib/auto/Storable/Storable.xs.dll +0 -0
  230. package/bin/exiftool_files/lib/auto/Time/HiRes/HiRes.xs.dll +0 -0
  231. package/bin/exiftool_files/lib/auto/Time/Piece/Piece.xs.dll +0 -0
  232. package/bin/exiftool_files/lib/auto/Unicode/LineBreak/LineBreak.xs.dll +0 -0
  233. package/bin/exiftool_files/lib/auto/Win32/API/API.xs.dll +0 -0
  234. package/bin/exiftool_files/lib/auto/Win32/FindFile/FindFile.xs.dll +0 -0
  235. package/bin/exiftool_files/lib/auto/Win32/Win32.xs.dll +0 -0
  236. package/bin/exiftool_files/lib/auto/Win32API/File/File.xs.dll +0 -0
  237. package/bin/exiftool_files/lib/auto/mro/mro.xs.dll +0 -0
  238. package/bin/exiftool_files/lib/auto/re/re.xs.dll +0 -0
  239. package/bin/exiftool_files/lib/feature.pm +49 -17
  240. package/bin/exiftool_files/lib/mro.pm +4 -20
  241. package/bin/exiftool_files/lib/overload.pm +15 -15
  242. package/bin/exiftool_files/lib/parent.pm +10 -2
  243. package/bin/exiftool_files/lib/re.pm +91 -33
  244. package/bin/exiftool_files/lib/warnings.pm +17 -6
  245. package/bin/exiftool_files/libgcc_s_seh-1.dll +0 -0
  246. package/bin/exiftool_files/liblzma-5__.dll +0 -0
  247. package/bin/exiftool_files/libstdc++-6.dll +0 -0
  248. package/bin/exiftool_files/libwinpthread-1.dll +0 -0
  249. package/bin/exiftool_files/perl.exe +0 -0
  250. package/bin/exiftool_files/perl532.dll +0 -0
  251. package/package.json +7 -5
  252. package/bin/exiftool_files/libgcc_s_dw2-1.dll +0 -0
  253. package/bin/exiftool_files/perl530.dll +0 -0
@@ -8,7 +8,7 @@ use Math::BigInt::Calc 1.999801;
8
8
 
9
9
  our @ISA = qw< Math::BigInt::Calc >;
10
10
 
11
- our $VERSION = '0.5008';
11
+ our $VERSION = '0.5009';
12
12
 
13
13
  ##############################################################################
14
14
  # global constants, flags and accessory
@@ -8,7 +8,7 @@ use Math::BigInt::Lib 1.999801;
8
8
 
9
9
  our @ISA = qw< Math::BigInt::Lib >;
10
10
 
11
- our $VERSION = '1.6006';
11
+ our $VERSION = '1.6007';
12
12
 
13
13
  use XSLoader;
14
14
  XSLoader::load "Math::BigInt::GMP", $VERSION;
@@ -45,117 +45,4 @@ sub STORABLE_thaw {
45
45
 
46
46
  __END__
47
47
 
48
- =pod
49
-
50
- =head1 NAME
51
-
52
- Math::BigInt::GMP - backend library for Math::BigInt etc. based on GMP
53
-
54
- =head1 SYNOPSIS
55
-
56
- # to use it with Math::BigInt
57
- use Math::BigInt lib => 'GMP';
58
-
59
- # to use it with Math::BigFloat
60
- use Math::BigFloat lib => 'GMP';
61
-
62
- # to use it with Math::BigRat
63
- use Math::BigRat lib => 'GMP';
64
-
65
- =head1 DESCRIPTION
66
-
67
- Math::BigInt::GMP is a backend library for Math::BigInt, Math::BigFloat,
68
- Math::BigRat and related modules.
69
-
70
- Math::BigInt::GMP provides support for big integer calculations by means of the
71
- GMP C library. See L<https://gmplib.org/> for more information about the GMP
72
- library.
73
-
74
- Math::BigInt::GMP no longer uses Math::GMP, but provides its own XS layer to
75
- access the GMP C library. This cuts out another (Perl subroutine) layer and
76
- also reduces the memory footprint.
77
-
78
- Math::BigInt::GMP inherits from Math::BigInt::Lib.
79
-
80
- =head1 BUGS
81
-
82
- Please report any bugs or feature requests to
83
- C<bug-math-bigint-gmp at rt.cpan.org>, or through the web interface at
84
- L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt-GMP>
85
- (requires login).
86
- We will be notified, and then you'll automatically be notified of progress on
87
- your bug as I make changes.
88
-
89
- =head1 SUPPORT
90
-
91
- You can find documentation for this module with the perldoc command.
92
-
93
- perldoc Math::BigInt::GMP
94
-
95
- You can also look for information at:
96
-
97
- =over 4
98
-
99
- =item * RT: CPAN's request tracker
100
-
101
- L<https://rt.cpan.org/Dist/Display.html?Name=Math-BigInt-GMP>
102
-
103
- =item * AnnoCPAN: Annotated CPAN documentation
104
-
105
- L<http://annocpan.org/dist/Math-BigInt-GMP>
106
-
107
- =item * CPAN Ratings
108
-
109
- L<http://cpanratings.perl.org/dist/Math-BigInt-GMP>
110
-
111
- =item * Search CPAN
112
-
113
- L<http://search.cpan.org/dist/Math-BigInt-GMP/>
114
-
115
- =item * CPAN Testers Matrix
116
-
117
- L<http://matrix.cpantesters.org/?dist=Math-BigInt-GMP>
118
-
119
- =item * The Bignum mailing list
120
-
121
- =over 4
122
-
123
- =item * Post to mailing list
124
-
125
- C<bignum at lists.scsys.co.uk>
126
-
127
- =item * View mailing list
128
-
129
- L<http://lists.scsys.co.uk/pipermail/bignum/>
130
-
131
- =item * Subscribe/Unsubscribe
132
-
133
- L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
134
-
135
- =back
136
-
137
- =back
138
-
139
- =head1 LICENSE
140
-
141
- This program is free software; you may redistribute it and/or modify it under
142
- the same terms as Perl itself.
143
-
144
- =head1 AUTHOR
145
-
146
- Tels E<lt>http://bloodgate.com/E<gt> in 2001-2007.
147
-
148
- Thanks to Chip Turner (CHIPT on CPAN) for providing Math::GMP, which was
149
- inspiring my work.
150
-
151
- =head1 SEE ALSO
152
-
153
- L<Math::BigInt::Lib> for a description of the API.
154
-
155
- Alternative libraries L<Math::BigInt::Calc>, L<Math::BigInt::FastCalc>, and
156
- L<Math::BigInt::Pari>.
157
-
158
- Some of the modules that use these libraries L<Math::BigInt>,
159
- L<Math::BigFloat>, and L<Math::BigRat>.
160
-
161
- =cut
48
+ #line 162
@@ -2,7 +2,7 @@ package Math::BigInt::LTM;
2
2
 
3
3
  use strict;
4
4
  use warnings;
5
- our $VERSION = '0.063';
5
+ our $VERSION = '0.069';
6
6
 
7
7
  use CryptX;
8
8
  use Carp;
@@ -883,26 +883,4 @@ sub _as_hex {
883
883
 
884
884
  1;
885
885
 
886
- =pod
887
-
888
- =head1 NAME
889
-
890
- Math::BigInt::LTM - Use the libtommath library for Math::BigInt routines
891
-
892
- =head1 SYNOPSIS
893
-
894
- use Math::BigInt lib => 'LTM';
895
-
896
- ## See Math::BigInt docs for usage.
897
-
898
- =head1 DESCRIPTION
899
-
900
- Provides support for big integer calculations by means of the libtommath c-library.
901
-
902
- I<Since: CryptX-0.029>
903
-
904
- =head1 SEE ALSO
905
-
906
- L<Math::BigInt>, L<https://github.com/libtom/libtommath>
907
-
908
- =cut
886
+ #line 909
@@ -4,7 +4,7 @@ use 5.006001;
4
4
  use strict;
5
5
  use warnings;
6
6
 
7
- our $VERSION = '1.999816';
7
+ our $VERSION = '1.999818';
8
8
 
9
9
  use Carp;
10
10
 
@@ -251,13 +251,6 @@ use overload
251
251
 
252
252
  ;
253
253
 
254
- # Do we need api_version() at all, now that we have a virtual parent class that
255
- # will provide any missing methods? Fixme!
256
-
257
- sub api_version () {
258
- croak "@{[(caller 0)[3]]} method not implemented";
259
- }
260
-
261
254
  sub _new {
262
255
  croak "@{[(caller 0)[3]]} method not implemented";
263
256
  }
@@ -386,6 +379,20 @@ sub _digit {
386
379
  substr($class ->_str($x), -($n+1), 1);
387
380
  }
388
381
 
382
+ sub _digitsum {
383
+ my ($class, $x) = @_;
384
+
385
+ my $len = $class -> _len($x);
386
+ my $sum = $class -> _zero();
387
+ for (my $i = 0 ; $i < $len ; ++$i) {
388
+ my $digit = $class -> _digit($x, $i);
389
+ $digit = $class -> _new($digit);
390
+ $sum = $class -> _add($sum, $digit);
391
+ }
392
+
393
+ return $sum;
394
+ }
395
+
389
396
  sub _zeros {
390
397
  my ($class, $x) = @_;
391
398
  my $str = $class -> _str($x);
@@ -1428,16 +1435,20 @@ sub _to_base {
1428
1435
  if (@_) {
1429
1436
  $collseq = shift();
1430
1437
  } else {
1431
- if ($class -> _acmp($base, $class -> _new("62")) <= 0) {
1432
- $collseq = '0123456789' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1433
- . 'abcdefghijklmnopqrstuvwxyz';
1438
+ if ($class -> _acmp($base, $class -> _new("94")) <= 0) {
1439
+ $collseq = '0123456789' # 48 .. 57
1440
+ . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 65 .. 90
1441
+ . 'abcdefghijklmnopqrstuvwxyz' # 97 .. 122
1442
+ . '!"#$%&\'()*+,-./' # 33 .. 47
1443
+ . ':;<=>?@' # 58 .. 64
1444
+ . '[\\]^_`' # 91 .. 96
1445
+ . '{|}~'; # 123 .. 126
1434
1446
  } else {
1435
- croak "When base > 62, a collation sequence must be given";
1447
+ croak "When base > 94, a collation sequence must be given";
1436
1448
  }
1437
1449
  }
1438
1450
 
1439
1451
  my @collseq = split '', $collseq;
1440
- my %collseq = map { $_ => $collseq[$_] } 0 .. $#collseq;
1441
1452
 
1442
1453
  my $str = '';
1443
1454
  my $tmp = $class -> _copy($x);
@@ -1573,11 +1584,16 @@ sub _from_base {
1573
1584
  if ($class -> _acmp($base, $class -> _new("36")) <= 0) {
1574
1585
  $str = uc $str;
1575
1586
  $collseq = '0123456789' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
1576
- } elsif ($class -> _acmp($base, $class -> _new("62")) <= 0) {
1577
- $collseq = '0123456789' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1578
- . 'abcdefghijklmnopqrstuvwxyz';
1587
+ } elsif ($class -> _acmp($base, $class -> _new("94")) <= 0) {
1588
+ $collseq = '0123456789' # 48 .. 57
1589
+ . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 65 .. 90
1590
+ . 'abcdefghijklmnopqrstuvwxyz' # 97 .. 122
1591
+ . '!"#$%&\'()*+,-./' # 33 .. 47
1592
+ . ':;<=>?@' # 58 .. 64
1593
+ . '[\\]^_`' # 91 .. 96
1594
+ . '{|}~'; # 123 .. 126
1579
1595
  } else {
1580
- croak "When base > 62, a collation sequence must be given";
1596
+ croak "When base > 94, a collation sequence must be given";
1581
1597
  }
1582
1598
  $collseq = substr $collseq, 0, $class -> _num($base);
1583
1599
  }
@@ -1920,11 +1936,8 @@ comparison routines.
1920
1936
 
1921
1937
  =item CLASS-E<gt>api_version()
1922
1938
 
1923
- Return API version as a Perl scalar, 1 for Math::BigInt v1.70, 2 for
1924
- Math::BigInt v1.83.
1925
-
1926
- This method is no longer used. Methods that are not implemented by a subclass
1927
- will be inherited from this class.
1939
+ This method is no longer used and can be omitted. Methods that are not
1940
+ implemented by a subclass will be inherited from this class.
1928
1941
 
1929
1942
  =back
1930
1943
 
@@ -1986,10 +1999,20 @@ COLLSEQ. Each character in STR represents a numerical value identical to the
1986
1999
  character's position in COLLSEQ. All characters in STR must be present in
1987
2000
  COLLSEQ.
1988
2001
 
1989
- If BASE is less than or equal to 62, and a collation sequence is not specified,
1990
- a default collation sequence consisting of the 62 characters 0..9, A..Z, and
1991
- a..z is used. If the default collation sequence is used, and the BASE is less
1992
- than or equal to 36, the letter case in STR is ignored.
2002
+ If BASE is less than or equal to 94, and a collation sequence is not specified,
2003
+ the following default collation sequence is used. It contains of all the 94
2004
+ printable ASCII characters except space/blank:
2005
+
2006
+ 0123456789 # ASCII 48 to 57
2007
+ ABCDEFGHIJKLMNOPQRSTUVWXYZ # ASCII 65 to 90
2008
+ abcdefghijklmnopqrstuvwxyz # ASCII 97 to 122
2009
+ !"#$%&'()*+,-./ # ASCII 33 to 47
2010
+ :;<=>?@ # ASCII 58 to 64
2011
+ [\]^_` # ASCII 91 to 96
2012
+ {|}~ # ASCII 123 to 126
2013
+
2014
+ If the default collation sequence is used, and the BASE is less than or equal
2015
+ to 36, the letter case in STR is ignored.
1993
2016
 
1994
2017
  For instance, with base 3 and collation sequence "-/|", the character "-"
1995
2018
  represents 0, "/" represents 1, and "|" represents 2. So if STR is "/|-", the
@@ -2005,10 +2028,12 @@ conversion. All examples return 250.
2005
2028
 
2006
2029
  Some more examples, all returning 250:
2007
2030
 
2008
- $x = $class -> _from_base("100021", 3, "012")
2009
- $x = $class -> _from_base("3322", 4, "0123")
2010
- $x = $class -> _from_base("2000", 5, "01234")
2031
+ $x = $class -> _from_base("100021", 3)
2032
+ $x = $class -> _from_base("3322", 4)
2033
+ $x = $class -> _from_base("2000", 5)
2011
2034
  $x = $class -> _from_base("caaa", 5, "abcde")
2035
+ $x = $class -> _from_base("42", 62)
2036
+ $x = $class -> _from_base("2!", 94)
2012
2037
 
2013
2038
  =back
2014
2039
 
@@ -2301,6 +2326,10 @@ from the left (most significant digit). If $obj represents the number 123, then
2301
2326
  CLASS->_digit($obj, 2) # returns 1
2302
2327
  CLASS->_digit($obj, -1) # returns 1
2303
2328
 
2329
+ =item CLASS-E<gt>_digitsum(OBJ)
2330
+
2331
+ Returns the sum of the base 10 digits.
2332
+
2304
2333
  =item CLASS-E<gt>_check(OBJ)
2305
2334
 
2306
2335
  Returns true if the object is invalid and false otherwise. Preferably, the true
@@ -2394,11 +2423,11 @@ L<http://annocpan.org/dist/Math-BigInt>
2394
2423
 
2395
2424
  =item * CPAN Ratings
2396
2425
 
2397
- L<http://cpanratings.perl.org/dist/Math-BigInt>
2426
+ L<https://cpanratings.perl.org/dist/Math-BigInt>
2398
2427
 
2399
- =item * Search CPAN
2428
+ =item * MetaCPAN
2400
2429
 
2401
- L<http://search.cpan.org/dist/Math-BigInt/>
2430
+ L<https://metacpan.org/release/Math-BigInt>
2402
2431
 
2403
2432
  =item * CPAN Testers Matrix
2404
2433