@ladybugmem/icebug 0.1.0 → 0.1.2

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 (625) hide show
  1. package/binding.gyp +32 -10
  2. package/lib/index.js +23 -11
  3. package/package.json +9 -15
  4. package/prebuilds/darwin-arm64/icebug.node +0 -0
  5. package/{vendor/lib → prebuilds/darwin-arm64}/libnetworkit.dylib +0 -0
  6. package/prebuilds/linux-x64/icebug.node +0 -0
  7. package/prebuilds/linux-x64/libnetworkit.so +0 -0
  8. package/scripts/download-icebug.sh +92 -0
  9. package/build/Release/.deps/Release/icebug.node.d +0 -1
  10. package/build/Release/.deps/Release/obj.target/icebug/src/addon.o.d +0 -291
  11. package/build/Release/icebug.node +0 -0
  12. package/build/Release/obj.target/icebug/src/addon.o +0 -0
  13. package/vendor/include/networkit/GlobalState.hpp +0 -86
  14. package/vendor/include/networkit/Globals.hpp +0 -41
  15. package/vendor/include/networkit/algebraic/AlgebraicGlobals.hpp +0 -27
  16. package/vendor/include/networkit/algebraic/CSRGeneralMatrix.hpp +0 -1292
  17. package/vendor/include/networkit/algebraic/CSRMatrix.hpp +0 -11
  18. package/vendor/include/networkit/algebraic/DenseMatrix.hpp +0 -537
  19. package/vendor/include/networkit/algebraic/DynamicMatrix.hpp +0 -514
  20. package/vendor/include/networkit/algebraic/GraphBLAS.hpp +0 -323
  21. package/vendor/include/networkit/algebraic/MatrixTools.hpp +0 -156
  22. package/vendor/include/networkit/algebraic/Semirings.hpp +0 -171
  23. package/vendor/include/networkit/algebraic/SparseAccumulator.hpp +0 -111
  24. package/vendor/include/networkit/algebraic/Vector.hpp +0 -371
  25. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBFS.hpp +0 -72
  26. package/vendor/include/networkit/algebraic/algorithms/AlgebraicBellmanFord.hpp +0 -88
  27. package/vendor/include/networkit/algebraic/algorithms/AlgebraicMatchingCoarsening.hpp +0 -96
  28. package/vendor/include/networkit/algebraic/algorithms/AlgebraicPageRank.hpp +0 -145
  29. package/vendor/include/networkit/algebraic/algorithms/AlgebraicSpanningEdgeCentrality.hpp +0 -122
  30. package/vendor/include/networkit/algebraic/algorithms/AlgebraicTriangleCounting.hpp +0 -76
  31. package/vendor/include/networkit/auxiliary/AlignedAllocator.hpp +0 -113
  32. package/vendor/include/networkit/auxiliary/ArrayTools.hpp +0 -85
  33. package/vendor/include/networkit/auxiliary/BloomFilter.hpp +0 -70
  34. package/vendor/include/networkit/auxiliary/BucketPQ.hpp +0 -142
  35. package/vendor/include/networkit/auxiliary/Enforce.hpp +0 -117
  36. package/vendor/include/networkit/auxiliary/FunctionTraits.hpp +0 -74
  37. package/vendor/include/networkit/auxiliary/HashUtils.hpp +0 -28
  38. package/vendor/include/networkit/auxiliary/IncrementalUniformRandomSelector.hpp +0 -52
  39. package/vendor/include/networkit/auxiliary/Log.hpp +0 -119
  40. package/vendor/include/networkit/auxiliary/MissingMath.hpp +0 -48
  41. package/vendor/include/networkit/auxiliary/Multiprecision.hpp +0 -17
  42. package/vendor/include/networkit/auxiliary/NumberParsing.hpp +0 -307
  43. package/vendor/include/networkit/auxiliary/NumericTools.hpp +0 -57
  44. package/vendor/include/networkit/auxiliary/Parallel.hpp +0 -56
  45. package/vendor/include/networkit/auxiliary/Parallelism.hpp +0 -33
  46. package/vendor/include/networkit/auxiliary/PrioQueue.hpp +0 -252
  47. package/vendor/include/networkit/auxiliary/Random.hpp +0 -122
  48. package/vendor/include/networkit/auxiliary/SetIntersector.hpp +0 -72
  49. package/vendor/include/networkit/auxiliary/SignalHandling.hpp +0 -39
  50. package/vendor/include/networkit/auxiliary/SortedList.hpp +0 -128
  51. package/vendor/include/networkit/auxiliary/SparseVector.hpp +0 -215
  52. package/vendor/include/networkit/auxiliary/SpinLock.hpp +0 -23
  53. package/vendor/include/networkit/auxiliary/StringBuilder.hpp +0 -322
  54. package/vendor/include/networkit/auxiliary/StringTools.hpp +0 -76
  55. package/vendor/include/networkit/auxiliary/TemplateUtils.hpp +0 -76
  56. package/vendor/include/networkit/auxiliary/Timer.hpp +0 -145
  57. package/vendor/include/networkit/auxiliary/VectorComparator.hpp +0 -32
  58. package/vendor/include/networkit/base/Algorithm.hpp +0 -41
  59. package/vendor/include/networkit/base/DynAlgorithm.hpp +0 -31
  60. package/vendor/include/networkit/centrality/ApproxBetweenness.hpp +0 -62
  61. package/vendor/include/networkit/centrality/ApproxCloseness.hpp +0 -136
  62. package/vendor/include/networkit/centrality/ApproxElectricalCloseness.hpp +0 -156
  63. package/vendor/include/networkit/centrality/ApproxGroupBetweenness.hpp +0 -124
  64. package/vendor/include/networkit/centrality/ApproxSpanningEdge.hpp +0 -84
  65. package/vendor/include/networkit/centrality/Betweenness.hpp +0 -47
  66. package/vendor/include/networkit/centrality/Centrality.hpp +0 -98
  67. package/vendor/include/networkit/centrality/Closeness.hpp +0 -107
  68. package/vendor/include/networkit/centrality/ComplexPaths.hpp +0 -113
  69. package/vendor/include/networkit/centrality/CoreDecomposition.hpp +0 -161
  70. package/vendor/include/networkit/centrality/DegreeCentrality.hpp +0 -55
  71. package/vendor/include/networkit/centrality/DynApproxBetweenness.hpp +0 -95
  72. package/vendor/include/networkit/centrality/DynBetweenness.hpp +0 -99
  73. package/vendor/include/networkit/centrality/DynBetweennessOneNode.hpp +0 -98
  74. package/vendor/include/networkit/centrality/DynKatzCentrality.hpp +0 -115
  75. package/vendor/include/networkit/centrality/DynTopHarmonicCloseness.hpp +0 -223
  76. package/vendor/include/networkit/centrality/EigenvectorCentrality.hpp +0 -41
  77. package/vendor/include/networkit/centrality/EstimateBetweenness.hpp +0 -51
  78. package/vendor/include/networkit/centrality/ForestCentrality.hpp +0 -112
  79. package/vendor/include/networkit/centrality/GedWalk.hpp +0 -225
  80. package/vendor/include/networkit/centrality/GroupCloseness.hpp +0 -115
  81. package/vendor/include/networkit/centrality/GroupClosenessGrowShrink.hpp +0 -78
  82. package/vendor/include/networkit/centrality/GroupClosenessLocalSearch.hpp +0 -77
  83. package/vendor/include/networkit/centrality/GroupClosenessLocalSwaps.hpp +0 -106
  84. package/vendor/include/networkit/centrality/GroupDegree.hpp +0 -155
  85. package/vendor/include/networkit/centrality/GroupHarmonicCloseness.hpp +0 -83
  86. package/vendor/include/networkit/centrality/HarmonicCloseness.hpp +0 -48
  87. package/vendor/include/networkit/centrality/KPathCentrality.hpp +0 -52
  88. package/vendor/include/networkit/centrality/KadabraBetweenness.hpp +0 -242
  89. package/vendor/include/networkit/centrality/KatzCentrality.hpp +0 -62
  90. package/vendor/include/networkit/centrality/LaplacianCentrality.hpp +0 -44
  91. package/vendor/include/networkit/centrality/LocalClusteringCoefficient.hpp +0 -60
  92. package/vendor/include/networkit/centrality/LocalPartitionCoverage.hpp +0 -43
  93. package/vendor/include/networkit/centrality/LocalSquareClusteringCoefficient.hpp +0 -42
  94. package/vendor/include/networkit/centrality/PageRank.hpp +0 -101
  95. package/vendor/include/networkit/centrality/PermanenceCentrality.hpp +0 -48
  96. package/vendor/include/networkit/centrality/Sfigality.hpp +0 -45
  97. package/vendor/include/networkit/centrality/SpanningEdgeCentrality.hpp +0 -86
  98. package/vendor/include/networkit/centrality/TopCloseness.hpp +0 -136
  99. package/vendor/include/networkit/centrality/TopHarmonicCloseness.hpp +0 -151
  100. package/vendor/include/networkit/clique/MaximalCliques.hpp +0 -83
  101. package/vendor/include/networkit/coarsening/ClusteringProjector.hpp +0 -59
  102. package/vendor/include/networkit/coarsening/CoarsenedGraphView.hpp +0 -156
  103. package/vendor/include/networkit/coarsening/GraphCoarsening.hpp +0 -57
  104. package/vendor/include/networkit/coarsening/MatchingCoarsening.hpp +0 -43
  105. package/vendor/include/networkit/coarsening/ParallelPartitionCoarsening.hpp +0 -33
  106. package/vendor/include/networkit/coarsening/ParallelPartitionCoarseningView.hpp +0 -62
  107. package/vendor/include/networkit/community/AdjustedRandMeasure.hpp +0 -31
  108. package/vendor/include/networkit/community/ClusteringGenerator.hpp +0 -75
  109. package/vendor/include/networkit/community/CommunityDetectionAlgorithm.hpp +0 -58
  110. package/vendor/include/networkit/community/Conductance.hpp +0 -32
  111. package/vendor/include/networkit/community/CoverF1Similarity.hpp +0 -53
  112. package/vendor/include/networkit/community/CoverHubDominance.hpp +0 -38
  113. package/vendor/include/networkit/community/Coverage.hpp +0 -25
  114. package/vendor/include/networkit/community/CutClustering.hpp +0 -62
  115. package/vendor/include/networkit/community/DissimilarityMeasure.hpp +0 -31
  116. package/vendor/include/networkit/community/DynamicNMIDistance.hpp +0 -44
  117. package/vendor/include/networkit/community/EdgeCut.hpp +0 -24
  118. package/vendor/include/networkit/community/GraphClusteringTools.hpp +0 -103
  119. package/vendor/include/networkit/community/GraphStructuralRandMeasure.hpp +0 -28
  120. package/vendor/include/networkit/community/HubDominance.hpp +0 -46
  121. package/vendor/include/networkit/community/IntrapartitionDensity.hpp +0 -44
  122. package/vendor/include/networkit/community/IsolatedInterpartitionConductance.hpp +0 -40
  123. package/vendor/include/networkit/community/IsolatedInterpartitionExpansion.hpp +0 -40
  124. package/vendor/include/networkit/community/JaccardMeasure.hpp +0 -25
  125. package/vendor/include/networkit/community/LFM.hpp +0 -49
  126. package/vendor/include/networkit/community/LPDegreeOrdered.hpp +0 -48
  127. package/vendor/include/networkit/community/LocalCommunityEvaluation.hpp +0 -100
  128. package/vendor/include/networkit/community/LocalCoverEvaluation.hpp +0 -31
  129. package/vendor/include/networkit/community/LocalPartitionEvaluation.hpp +0 -31
  130. package/vendor/include/networkit/community/LouvainMapEquation.hpp +0 -135
  131. package/vendor/include/networkit/community/Modularity.hpp +0 -54
  132. package/vendor/include/networkit/community/NMIDistance.hpp +0 -28
  133. package/vendor/include/networkit/community/NodeStructuralRandMeasure.hpp +0 -27
  134. package/vendor/include/networkit/community/OverlappingCommunityDetectionAlgorithm.hpp +0 -51
  135. package/vendor/include/networkit/community/OverlappingNMIDistance.hpp +0 -175
  136. package/vendor/include/networkit/community/PLM.hpp +0 -89
  137. package/vendor/include/networkit/community/PLP.hpp +0 -83
  138. package/vendor/include/networkit/community/ParallelAgglomerativeClusterer.hpp +0 -37
  139. package/vendor/include/networkit/community/ParallelLeiden.hpp +0 -96
  140. package/vendor/include/networkit/community/ParallelLeidenView.hpp +0 -138
  141. package/vendor/include/networkit/community/PartitionFragmentation.hpp +0 -30
  142. package/vendor/include/networkit/community/PartitionHubDominance.hpp +0 -37
  143. package/vendor/include/networkit/community/PartitionIntersection.hpp +0 -25
  144. package/vendor/include/networkit/community/QualityMeasure.hpp +0 -27
  145. package/vendor/include/networkit/community/SampledGraphStructuralRandMeasure.hpp +0 -40
  146. package/vendor/include/networkit/community/SampledNodeStructuralRandMeasure.hpp +0 -40
  147. package/vendor/include/networkit/community/StablePartitionNodes.hpp +0 -48
  148. package/vendor/include/networkit/components/BiconnectedComponents.hpp +0 -116
  149. package/vendor/include/networkit/components/ComponentDecomposition.hpp +0 -72
  150. package/vendor/include/networkit/components/ConnectedComponents.hpp +0 -55
  151. package/vendor/include/networkit/components/DynConnectedComponents.hpp +0 -71
  152. package/vendor/include/networkit/components/DynWeaklyConnectedComponents.hpp +0 -73
  153. package/vendor/include/networkit/components/ParallelConnectedComponents.hpp +0 -44
  154. package/vendor/include/networkit/components/RandomSpanningForest.hpp +0 -36
  155. package/vendor/include/networkit/components/StronglyConnectedComponents.hpp +0 -50
  156. package/vendor/include/networkit/components/WeaklyConnectedComponents.hpp +0 -59
  157. package/vendor/include/networkit/correlation/Assortativity.hpp +0 -64
  158. package/vendor/include/networkit/distance/APSP.hpp +0 -70
  159. package/vendor/include/networkit/distance/AStar.hpp +0 -68
  160. package/vendor/include/networkit/distance/AStarGeneral.hpp +0 -110
  161. package/vendor/include/networkit/distance/AdamicAdarDistance.hpp +0 -52
  162. package/vendor/include/networkit/distance/AffectedNodes.hpp +0 -130
  163. package/vendor/include/networkit/distance/AlgebraicDistance.hpp +0 -63
  164. package/vendor/include/networkit/distance/BFS.hpp +0 -43
  165. package/vendor/include/networkit/distance/BidirectionalBFS.hpp +0 -51
  166. package/vendor/include/networkit/distance/BidirectionalDijkstra.hpp +0 -69
  167. package/vendor/include/networkit/distance/CommuteTimeDistance.hpp +0 -89
  168. package/vendor/include/networkit/distance/Diameter.hpp +0 -97
  169. package/vendor/include/networkit/distance/Dijkstra.hpp +0 -50
  170. package/vendor/include/networkit/distance/DynAPSP.hpp +0 -67
  171. package/vendor/include/networkit/distance/DynBFS.hpp +0 -56
  172. package/vendor/include/networkit/distance/DynDijkstra.hpp +0 -57
  173. package/vendor/include/networkit/distance/DynPrunedLandmarkLabeling.hpp +0 -67
  174. package/vendor/include/networkit/distance/DynSSSP.hpp +0 -87
  175. package/vendor/include/networkit/distance/Eccentricity.hpp +0 -32
  176. package/vendor/include/networkit/distance/EffectiveDiameter.hpp +0 -47
  177. package/vendor/include/networkit/distance/EffectiveDiameterApproximation.hpp +0 -57
  178. package/vendor/include/networkit/distance/FloydWarshall.hpp +0 -93
  179. package/vendor/include/networkit/distance/GraphDistance.hpp +0 -49
  180. package/vendor/include/networkit/distance/HopPlotApproximation.hpp +0 -62
  181. package/vendor/include/networkit/distance/IncompleteDijkstra.hpp +0 -66
  182. package/vendor/include/networkit/distance/IncompleteSSSP.hpp +0 -41
  183. package/vendor/include/networkit/distance/JaccardDistance.hpp +0 -57
  184. package/vendor/include/networkit/distance/MultiTargetBFS.hpp +0 -32
  185. package/vendor/include/networkit/distance/MultiTargetDijkstra.hpp +0 -40
  186. package/vendor/include/networkit/distance/NeighborhoodFunction.hpp +0 -47
  187. package/vendor/include/networkit/distance/NeighborhoodFunctionApproximation.hpp +0 -56
  188. package/vendor/include/networkit/distance/NeighborhoodFunctionHeuristic.hpp +0 -56
  189. package/vendor/include/networkit/distance/NodeDistance.hpp +0 -54
  190. package/vendor/include/networkit/distance/PrunedLandmarkLabeling.hpp +0 -76
  191. package/vendor/include/networkit/distance/ReverseBFS.hpp +0 -46
  192. package/vendor/include/networkit/distance/SPSP.hpp +0 -143
  193. package/vendor/include/networkit/distance/SSSP.hpp +0 -216
  194. package/vendor/include/networkit/distance/STSP.hpp +0 -193
  195. package/vendor/include/networkit/distance/Volume.hpp +0 -66
  196. package/vendor/include/networkit/dynamics/DGSStreamParser.hpp +0 -40
  197. package/vendor/include/networkit/dynamics/DGSWriter.hpp +0 -30
  198. package/vendor/include/networkit/dynamics/GraphDifference.hpp +0 -110
  199. package/vendor/include/networkit/dynamics/GraphEvent.hpp +0 -55
  200. package/vendor/include/networkit/dynamics/GraphEventHandler.hpp +0 -39
  201. package/vendor/include/networkit/dynamics/GraphEventProxy.hpp +0 -55
  202. package/vendor/include/networkit/dynamics/GraphUpdater.hpp +0 -38
  203. package/vendor/include/networkit/edgescores/ChibaNishizekiQuadrangleEdgeScore.hpp +0 -26
  204. package/vendor/include/networkit/edgescores/ChibaNishizekiTriangleEdgeScore.hpp +0 -33
  205. package/vendor/include/networkit/edgescores/EdgeScore.hpp +0 -50
  206. package/vendor/include/networkit/edgescores/EdgeScoreAsWeight.hpp +0 -33
  207. package/vendor/include/networkit/edgescores/EdgeScoreBlender.hpp +0 -33
  208. package/vendor/include/networkit/edgescores/EdgeScoreLinearizer.hpp +0 -32
  209. package/vendor/include/networkit/edgescores/EdgeScoreNormalizer.hpp +0 -35
  210. package/vendor/include/networkit/edgescores/GeometricMeanScore.hpp +0 -29
  211. package/vendor/include/networkit/edgescores/PrefixJaccardScore.hpp +0 -23
  212. package/vendor/include/networkit/edgescores/TriangleEdgeScore.hpp +0 -39
  213. package/vendor/include/networkit/embedding/Node2Vec.hpp +0 -83
  214. package/vendor/include/networkit/flow/EdmondsKarp.hpp +0 -112
  215. package/vendor/include/networkit/generators/BarabasiAlbertGenerator.hpp +0 -87
  216. package/vendor/include/networkit/generators/ChungLuGenerator.hpp +0 -46
  217. package/vendor/include/networkit/generators/ChungLuGeneratorAlamEtAl.hpp +0 -63
  218. package/vendor/include/networkit/generators/ClusteredRandomGraphGenerator.hpp +0 -56
  219. package/vendor/include/networkit/generators/ConfigurationModel.hpp +0 -36
  220. package/vendor/include/networkit/generators/DorogovtsevMendesGenerator.hpp +0 -33
  221. package/vendor/include/networkit/generators/DynamicBarabasiAlbertGenerator.hpp +0 -33
  222. package/vendor/include/networkit/generators/DynamicDGSParser.hpp +0 -51
  223. package/vendor/include/networkit/generators/DynamicDorogovtsevMendesGenerator.hpp +0 -34
  224. package/vendor/include/networkit/generators/DynamicForestFireGenerator.hpp +0 -55
  225. package/vendor/include/networkit/generators/DynamicGraphGenerator.hpp +0 -40
  226. package/vendor/include/networkit/generators/DynamicGraphSource.hpp +0 -79
  227. package/vendor/include/networkit/generators/DynamicHyperbolicGenerator.hpp +0 -143
  228. package/vendor/include/networkit/generators/DynamicPathGenerator.hpp +0 -26
  229. package/vendor/include/networkit/generators/DynamicPubWebGenerator.hpp +0 -54
  230. package/vendor/include/networkit/generators/EdgeSwitchingMarkovChainGenerator.hpp +0 -65
  231. package/vendor/include/networkit/generators/ErdosRenyiEnumerator.hpp +0 -318
  232. package/vendor/include/networkit/generators/ErdosRenyiGenerator.hpp +0 -56
  233. package/vendor/include/networkit/generators/HavelHakimiGenerator.hpp +0 -48
  234. package/vendor/include/networkit/generators/HyperbolicGenerator.hpp +0 -236
  235. package/vendor/include/networkit/generators/LFRGenerator.hpp +0 -175
  236. package/vendor/include/networkit/generators/MocnikGenerator.hpp +0 -147
  237. package/vendor/include/networkit/generators/MocnikGeneratorBasic.hpp +0 -58
  238. package/vendor/include/networkit/generators/PowerlawDegreeSequence.hpp +0 -128
  239. package/vendor/include/networkit/generators/PubWebGenerator.hpp +0 -94
  240. package/vendor/include/networkit/generators/RegularRingLatticeGenerator.hpp +0 -37
  241. package/vendor/include/networkit/generators/RmatGenerator.hpp +0 -67
  242. package/vendor/include/networkit/generators/StaticDegreeSequenceGenerator.hpp +0 -42
  243. package/vendor/include/networkit/generators/StaticGraphGenerator.hpp +0 -30
  244. package/vendor/include/networkit/generators/StochasticBlockmodel.hpp +0 -41
  245. package/vendor/include/networkit/generators/WattsStrogatzGenerator.hpp +0 -43
  246. package/vendor/include/networkit/generators/quadtree/QuadNode.hpp +0 -857
  247. package/vendor/include/networkit/generators/quadtree/QuadNodeCartesianEuclid.hpp +0 -587
  248. package/vendor/include/networkit/generators/quadtree/QuadNodePolarEuclid.hpp +0 -726
  249. package/vendor/include/networkit/generators/quadtree/Quadtree.hpp +0 -232
  250. package/vendor/include/networkit/generators/quadtree/QuadtreeCartesianEuclid.hpp +0 -149
  251. package/vendor/include/networkit/generators/quadtree/QuadtreePolarEuclid.hpp +0 -143
  252. package/vendor/include/networkit/geometric/HyperbolicSpace.hpp +0 -248
  253. package/vendor/include/networkit/geometric/Point2DWithIndex.hpp +0 -145
  254. package/vendor/include/networkit/global/ClusteringCoefficient.hpp +0 -42
  255. package/vendor/include/networkit/global/GlobalClusteringCoefficient.hpp +0 -24
  256. package/vendor/include/networkit/graph/Attributes.hpp +0 -568
  257. package/vendor/include/networkit/graph/BFS.hpp +0 -111
  258. package/vendor/include/networkit/graph/DFS.hpp +0 -71
  259. package/vendor/include/networkit/graph/Dijkstra.hpp +0 -83
  260. package/vendor/include/networkit/graph/EdgeIterators.hpp +0 -171
  261. package/vendor/include/networkit/graph/Graph.hpp +0 -2083
  262. package/vendor/include/networkit/graph/GraphBuilder.hpp +0 -289
  263. package/vendor/include/networkit/graph/GraphR.hpp +0 -133
  264. package/vendor/include/networkit/graph/GraphTools.hpp +0 -589
  265. package/vendor/include/networkit/graph/GraphW.hpp +0 -1236
  266. package/vendor/include/networkit/graph/KruskalMSF.hpp +0 -50
  267. package/vendor/include/networkit/graph/NeighborIterators.hpp +0 -163
  268. package/vendor/include/networkit/graph/NodeIterators.hpp +0 -127
  269. package/vendor/include/networkit/graph/PrimMSF.hpp +0 -66
  270. package/vendor/include/networkit/graph/RandomMaximumSpanningForest.hpp +0 -133
  271. package/vendor/include/networkit/graph/SpanningForest.hpp +0 -41
  272. package/vendor/include/networkit/graph/TopologicalSort.hpp +0 -87
  273. package/vendor/include/networkit/graph/UnionMaximumSpanningForest.hpp +0 -126
  274. package/vendor/include/networkit/graph/test/GraphBuilderBenchmark.hpp +0 -68
  275. package/vendor/include/networkit/independentset/IndependentSetFinder.hpp +0 -44
  276. package/vendor/include/networkit/independentset/Luby.hpp +0 -27
  277. package/vendor/include/networkit/io/BinaryEdgeListPartitionReader.hpp +0 -45
  278. package/vendor/include/networkit/io/BinaryEdgeListPartitionWriter.hpp +0 -47
  279. package/vendor/include/networkit/io/BinaryPartitionReader.hpp +0 -41
  280. package/vendor/include/networkit/io/BinaryPartitionWriter.hpp +0 -44
  281. package/vendor/include/networkit/io/CoverReader.hpp +0 -27
  282. package/vendor/include/networkit/io/CoverWriter.hpp +0 -21
  283. package/vendor/include/networkit/io/DGSReader.hpp +0 -39
  284. package/vendor/include/networkit/io/DibapGraphReader.hpp +0 -43
  285. package/vendor/include/networkit/io/DotGraphWriter.hpp +0 -39
  286. package/vendor/include/networkit/io/DotPartitionWriter.hpp +0 -23
  287. package/vendor/include/networkit/io/DynamicGraphReader.hpp +0 -29
  288. package/vendor/include/networkit/io/EdgeListCoverReader.hpp +0 -35
  289. package/vendor/include/networkit/io/EdgeListPartitionReader.hpp +0 -43
  290. package/vendor/include/networkit/io/EdgeListReader.hpp +0 -61
  291. package/vendor/include/networkit/io/EdgeListWriter.hpp +0 -48
  292. package/vendor/include/networkit/io/GMLGraphReader.hpp +0 -33
  293. package/vendor/include/networkit/io/GMLGraphWriter.hpp +0 -33
  294. package/vendor/include/networkit/io/GraphIO.hpp +0 -52
  295. package/vendor/include/networkit/io/GraphReader.hpp +0 -40
  296. package/vendor/include/networkit/io/GraphToolBinaryReader.hpp +0 -71
  297. package/vendor/include/networkit/io/GraphToolBinaryWriter.hpp +0 -61
  298. package/vendor/include/networkit/io/GraphWriter.hpp +0 -27
  299. package/vendor/include/networkit/io/KONECTGraphReader.hpp +0 -44
  300. package/vendor/include/networkit/io/LineFileReader.hpp +0 -42
  301. package/vendor/include/networkit/io/METISGraphReader.hpp +0 -36
  302. package/vendor/include/networkit/io/METISGraphWriter.hpp +0 -29
  303. package/vendor/include/networkit/io/METISParser.hpp +0 -63
  304. package/vendor/include/networkit/io/MTXGraphReader.hpp +0 -31
  305. package/vendor/include/networkit/io/MTXParser.hpp +0 -87
  306. package/vendor/include/networkit/io/MatrixMarketReader.hpp +0 -33
  307. package/vendor/include/networkit/io/MatrixReader.hpp +0 -33
  308. package/vendor/include/networkit/io/MemoryMappedFile.hpp +0 -80
  309. package/vendor/include/networkit/io/NetworkitBinaryGraph.hpp +0 -144
  310. package/vendor/include/networkit/io/NetworkitBinaryReader.hpp +0 -50
  311. package/vendor/include/networkit/io/NetworkitBinaryWriter.hpp +0 -71
  312. package/vendor/include/networkit/io/PartitionReader.hpp +0 -34
  313. package/vendor/include/networkit/io/PartitionWriter.hpp +0 -31
  314. package/vendor/include/networkit/io/RBGraphReader.hpp +0 -37
  315. package/vendor/include/networkit/io/RBMatrixReader.hpp +0 -49
  316. package/vendor/include/networkit/io/RasterReader.hpp +0 -40
  317. package/vendor/include/networkit/io/SNAPEdgeListPartitionReader.hpp +0 -28
  318. package/vendor/include/networkit/io/SNAPGraphReader.hpp +0 -53
  319. package/vendor/include/networkit/io/SNAPGraphWriter.hpp +0 -53
  320. package/vendor/include/networkit/io/ThrillGraphBinaryReader.hpp +0 -44
  321. package/vendor/include/networkit/io/ThrillGraphBinaryWriter.hpp +0 -27
  322. package/vendor/include/networkit/layout/LayoutAlgorithm.hpp +0 -39
  323. package/vendor/include/networkit/linkprediction/AdamicAdarIndex.hpp +0 -37
  324. package/vendor/include/networkit/linkprediction/AdjustedRandIndex.hpp +0 -36
  325. package/vendor/include/networkit/linkprediction/AlgebraicDistanceIndex.hpp +0 -70
  326. package/vendor/include/networkit/linkprediction/CommonNeighborsIndex.hpp +0 -39
  327. package/vendor/include/networkit/linkprediction/EvaluationMetric.hpp +0 -135
  328. package/vendor/include/networkit/linkprediction/JaccardIndex.hpp +0 -44
  329. package/vendor/include/networkit/linkprediction/KatzIndex.hpp +0 -84
  330. package/vendor/include/networkit/linkprediction/LinkPredictor.hpp +0 -98
  331. package/vendor/include/networkit/linkprediction/LinkThresholder.hpp +0 -56
  332. package/vendor/include/networkit/linkprediction/MissingLinksFinder.hpp +0 -60
  333. package/vendor/include/networkit/linkprediction/NeighborhoodDistanceIndex.hpp +0 -42
  334. package/vendor/include/networkit/linkprediction/NeighborhoodUtility.hpp +0 -54
  335. package/vendor/include/networkit/linkprediction/NeighborsMeasureIndex.hpp +0 -48
  336. package/vendor/include/networkit/linkprediction/PrecisionRecallMetric.hpp +0 -40
  337. package/vendor/include/networkit/linkprediction/PredictionsSorter.hpp +0 -66
  338. package/vendor/include/networkit/linkprediction/PreferentialAttachmentIndex.hpp +0 -37
  339. package/vendor/include/networkit/linkprediction/ROCMetric.hpp +0 -39
  340. package/vendor/include/networkit/linkprediction/RandomLinkSampler.hpp +0 -47
  341. package/vendor/include/networkit/linkprediction/ResourceAllocationIndex.hpp +0 -38
  342. package/vendor/include/networkit/linkprediction/SameCommunityIndex.hpp +0 -50
  343. package/vendor/include/networkit/linkprediction/TotalNeighborsIndex.hpp +0 -39
  344. package/vendor/include/networkit/linkprediction/UDegreeIndex.hpp +0 -35
  345. package/vendor/include/networkit/linkprediction/VDegreeIndex.hpp +0 -35
  346. package/vendor/include/networkit/matching/BMatcher.hpp +0 -52
  347. package/vendor/include/networkit/matching/BMatching.hpp +0 -115
  348. package/vendor/include/networkit/matching/BSuitorMatcher.hpp +0 -170
  349. package/vendor/include/networkit/matching/DynamicBSuitorMatcher.hpp +0 -78
  350. package/vendor/include/networkit/matching/LocalMaxMatcher.hpp +0 -35
  351. package/vendor/include/networkit/matching/Matcher.hpp +0 -55
  352. package/vendor/include/networkit/matching/Matching.hpp +0 -111
  353. package/vendor/include/networkit/matching/PathGrowingMatcher.hpp +0 -46
  354. package/vendor/include/networkit/matching/SuitorMatcher.hpp +0 -62
  355. package/vendor/include/networkit/numerics/ConjugateGradient.hpp +0 -163
  356. package/vendor/include/networkit/numerics/GaussSeidelRelaxation.hpp +0 -99
  357. package/vendor/include/networkit/numerics/LAMG/LAMGSettings.hpp +0 -70
  358. package/vendor/include/networkit/numerics/LAMG/Lamg.hpp +0 -460
  359. package/vendor/include/networkit/numerics/LAMG/Level/EliminationStage.hpp +0 -47
  360. package/vendor/include/networkit/numerics/LAMG/Level/Level.hpp +0 -56
  361. package/vendor/include/networkit/numerics/LAMG/Level/LevelAggregation.hpp +0 -52
  362. package/vendor/include/networkit/numerics/LAMG/Level/LevelElimination.hpp +0 -133
  363. package/vendor/include/networkit/numerics/LAMG/Level/LevelFinest.hpp +0 -28
  364. package/vendor/include/networkit/numerics/LAMG/LevelHierarchy.hpp +0 -165
  365. package/vendor/include/networkit/numerics/LAMG/MultiLevelSetup.hpp +0 -1090
  366. package/vendor/include/networkit/numerics/LAMG/SolverLamg.hpp +0 -316
  367. package/vendor/include/networkit/numerics/LinearSolver.hpp +0 -151
  368. package/vendor/include/networkit/numerics/Preconditioner/DiagonalPreconditioner.hpp +0 -61
  369. package/vendor/include/networkit/numerics/Preconditioner/IdentityPreconditioner.hpp +0 -36
  370. package/vendor/include/networkit/numerics/Smoother.hpp +0 -37
  371. package/vendor/include/networkit/overlap/HashingOverlapper.hpp +0 -28
  372. package/vendor/include/networkit/overlap/Overlapper.hpp +0 -27
  373. package/vendor/include/networkit/planarity/LeftRightPlanarityCheck.hpp +0 -113
  374. package/vendor/include/networkit/randomization/Curveball.hpp +0 -49
  375. package/vendor/include/networkit/randomization/CurveballGlobalTradeGenerator.hpp +0 -39
  376. package/vendor/include/networkit/randomization/CurveballUniformTradeGenerator.hpp +0 -39
  377. package/vendor/include/networkit/randomization/DegreePreservingShuffle.hpp +0 -82
  378. package/vendor/include/networkit/randomization/EdgeSwitching.hpp +0 -157
  379. package/vendor/include/networkit/randomization/GlobalCurveball.hpp +0 -69
  380. package/vendor/include/networkit/randomization/GlobalTradeSequence.hpp +0 -303
  381. package/vendor/include/networkit/reachability/AllSimplePaths.hpp +0 -122
  382. package/vendor/include/networkit/reachability/ReachableNodes.hpp +0 -83
  383. package/vendor/include/networkit/scd/ApproximatePageRank.hpp +0 -51
  384. package/vendor/include/networkit/scd/CliqueDetect.hpp +0 -55
  385. package/vendor/include/networkit/scd/CombinedSCD.hpp +0 -51
  386. package/vendor/include/networkit/scd/GCE.hpp +0 -42
  387. package/vendor/include/networkit/scd/LFMLocal.hpp +0 -54
  388. package/vendor/include/networkit/scd/LocalT.hpp +0 -40
  389. package/vendor/include/networkit/scd/LocalTightnessExpansion.hpp +0 -46
  390. package/vendor/include/networkit/scd/PageRankNibble.hpp +0 -55
  391. package/vendor/include/networkit/scd/RandomBFS.hpp +0 -33
  392. package/vendor/include/networkit/scd/SCDGroundTruthComparison.hpp +0 -121
  393. package/vendor/include/networkit/scd/SelectiveCommunityDetector.hpp +0 -76
  394. package/vendor/include/networkit/scd/SetConductance.hpp +0 -47
  395. package/vendor/include/networkit/scd/TCE.hpp +0 -41
  396. package/vendor/include/networkit/scd/TwoPhaseL.hpp +0 -40
  397. package/vendor/include/networkit/scoring/EdgeScoring.hpp +0 -44
  398. package/vendor/include/networkit/scoring/ModularityScoring.hpp +0 -79
  399. package/vendor/include/networkit/simulation/EpidemicSimulationSEIR.hpp +0 -59
  400. package/vendor/include/networkit/sparsification/ChanceCorrectedTriangleScore.hpp +0 -28
  401. package/vendor/include/networkit/sparsification/ForestFireScore.hpp +0 -34
  402. package/vendor/include/networkit/sparsification/GlobalThresholdFilter.hpp +0 -40
  403. package/vendor/include/networkit/sparsification/LocalDegreeScore.hpp +0 -30
  404. package/vendor/include/networkit/sparsification/LocalFilterScore.hpp +0 -124
  405. package/vendor/include/networkit/sparsification/LocalSimilarityScore.hpp +0 -63
  406. package/vendor/include/networkit/sparsification/MultiscaleScore.hpp +0 -38
  407. package/vendor/include/networkit/sparsification/RandomEdgeScore.hpp +0 -33
  408. package/vendor/include/networkit/sparsification/RandomNodeEdgeScore.hpp +0 -29
  409. package/vendor/include/networkit/sparsification/SCANStructuralSimilarityScore.hpp +0 -23
  410. package/vendor/include/networkit/sparsification/SimmelianOverlapScore.hpp +0 -35
  411. package/vendor/include/networkit/sparsification/SimmelianScore.hpp +0 -92
  412. package/vendor/include/networkit/sparsification/Sparsifiers.hpp +0 -166
  413. package/vendor/include/networkit/structures/Cover.hpp +0 -248
  414. package/vendor/include/networkit/structures/LocalCommunity.hpp +0 -363
  415. package/vendor/include/networkit/structures/Partition.hpp +0 -335
  416. package/vendor/include/networkit/structures/UnionFind.hpp +0 -66
  417. package/vendor/include/networkit/viz/GraphLayoutAlgorithm.hpp +0 -157
  418. package/vendor/include/networkit/viz/MaxentStress.hpp +0 -346
  419. package/vendor/include/networkit/viz/Octree.hpp +0 -428
  420. package/vendor/include/networkit/viz/PivotMDS.hpp +0 -63
  421. package/vendor/include/networkit/viz/Point.hpp +0 -415
  422. package/vendor/include/networkit/viz/PostscriptWriter.hpp +0 -78
  423. package/vendor/include/tlx/algorithm/exclusive_scan.hpp +0 -56
  424. package/vendor/include/tlx/algorithm/is_sorted_cmp.hpp +0 -56
  425. package/vendor/include/tlx/algorithm/merge_advance.hpp +0 -177
  426. package/vendor/include/tlx/algorithm/merge_combine.hpp +0 -76
  427. package/vendor/include/tlx/algorithm/multisequence_partition.hpp +0 -346
  428. package/vendor/include/tlx/algorithm/multisequence_selection.hpp +0 -351
  429. package/vendor/include/tlx/algorithm/multiway_merge.hpp +0 -1385
  430. package/vendor/include/tlx/algorithm/multiway_merge_splitting.hpp +0 -257
  431. package/vendor/include/tlx/algorithm/parallel_multiway_merge.hpp +0 -408
  432. package/vendor/include/tlx/algorithm/random_bipartition_shuffle.hpp +0 -116
  433. package/vendor/include/tlx/algorithm.hpp +0 -36
  434. package/vendor/include/tlx/allocator_base.hpp +0 -100
  435. package/vendor/include/tlx/backtrace.hpp +0 -54
  436. package/vendor/include/tlx/cmdline_parser.hpp +0 -498
  437. package/vendor/include/tlx/container/btree.hpp +0 -3977
  438. package/vendor/include/tlx/container/btree_map.hpp +0 -634
  439. package/vendor/include/tlx/container/btree_multimap.hpp +0 -627
  440. package/vendor/include/tlx/container/btree_multiset.hpp +0 -612
  441. package/vendor/include/tlx/container/btree_set.hpp +0 -612
  442. package/vendor/include/tlx/container/d_ary_addressable_int_heap.hpp +0 -416
  443. package/vendor/include/tlx/container/d_ary_heap.hpp +0 -311
  444. package/vendor/include/tlx/container/loser_tree.hpp +0 -1009
  445. package/vendor/include/tlx/container/lru_cache.hpp +0 -319
  446. package/vendor/include/tlx/container/radix_heap.hpp +0 -735
  447. package/vendor/include/tlx/container/ring_buffer.hpp +0 -428
  448. package/vendor/include/tlx/container/simple_vector.hpp +0 -304
  449. package/vendor/include/tlx/container/splay_tree.hpp +0 -399
  450. package/vendor/include/tlx/container/string_view.hpp +0 -805
  451. package/vendor/include/tlx/container.hpp +0 -40
  452. package/vendor/include/tlx/counting_ptr.hpp +0 -522
  453. package/vendor/include/tlx/define/attribute_always_inline.hpp +0 -34
  454. package/vendor/include/tlx/define/attribute_fallthrough.hpp +0 -36
  455. package/vendor/include/tlx/define/attribute_format_printf.hpp +0 -34
  456. package/vendor/include/tlx/define/attribute_packed.hpp +0 -34
  457. package/vendor/include/tlx/define/attribute_warn_unused_result.hpp +0 -34
  458. package/vendor/include/tlx/define/constexpr.hpp +0 -31
  459. package/vendor/include/tlx/define/deprecated.hpp +0 -39
  460. package/vendor/include/tlx/define/endian.hpp +0 -49
  461. package/vendor/include/tlx/define/likely.hpp +0 -33
  462. package/vendor/include/tlx/define/visibility_hidden.hpp +0 -34
  463. package/vendor/include/tlx/define.hpp +0 -36
  464. package/vendor/include/tlx/delegate.hpp +0 -524
  465. package/vendor/include/tlx/die/core.hpp +0 -311
  466. package/vendor/include/tlx/die.hpp +0 -106
  467. package/vendor/include/tlx/digest/md5.hpp +0 -81
  468. package/vendor/include/tlx/digest/sha1.hpp +0 -81
  469. package/vendor/include/tlx/digest/sha256.hpp +0 -81
  470. package/vendor/include/tlx/digest/sha512.hpp +0 -81
  471. package/vendor/include/tlx/digest.hpp +0 -30
  472. package/vendor/include/tlx/logger/all.hpp +0 -33
  473. package/vendor/include/tlx/logger/array.hpp +0 -43
  474. package/vendor/include/tlx/logger/core.hpp +0 -287
  475. package/vendor/include/tlx/logger/deque.hpp +0 -42
  476. package/vendor/include/tlx/logger/map.hpp +0 -65
  477. package/vendor/include/tlx/logger/set.hpp +0 -60
  478. package/vendor/include/tlx/logger/tuple.hpp +0 -66
  479. package/vendor/include/tlx/logger/unordered_map.hpp +0 -68
  480. package/vendor/include/tlx/logger/unordered_set.hpp +0 -64
  481. package/vendor/include/tlx/logger/wrap_unprintable.hpp +0 -75
  482. package/vendor/include/tlx/logger.hpp +0 -44
  483. package/vendor/include/tlx/math/abs_diff.hpp +0 -35
  484. package/vendor/include/tlx/math/aggregate.hpp +0 -231
  485. package/vendor/include/tlx/math/aggregate_min_max.hpp +0 -116
  486. package/vendor/include/tlx/math/bswap.hpp +0 -148
  487. package/vendor/include/tlx/math/bswap_be.hpp +0 -79
  488. package/vendor/include/tlx/math/bswap_le.hpp +0 -79
  489. package/vendor/include/tlx/math/clz.hpp +0 -174
  490. package/vendor/include/tlx/math/ctz.hpp +0 -174
  491. package/vendor/include/tlx/math/div_ceil.hpp +0 -36
  492. package/vendor/include/tlx/math/ffs.hpp +0 -123
  493. package/vendor/include/tlx/math/integer_log2.hpp +0 -189
  494. package/vendor/include/tlx/math/is_power_of_two.hpp +0 -74
  495. package/vendor/include/tlx/math/polynomial_regression.hpp +0 -243
  496. package/vendor/include/tlx/math/popcount.hpp +0 -173
  497. package/vendor/include/tlx/math/power_to_the.hpp +0 -44
  498. package/vendor/include/tlx/math/rol.hpp +0 -112
  499. package/vendor/include/tlx/math/ror.hpp +0 -112
  500. package/vendor/include/tlx/math/round_to_power_of_two.hpp +0 -121
  501. package/vendor/include/tlx/math/round_up.hpp +0 -36
  502. package/vendor/include/tlx/math/sgn.hpp +0 -38
  503. package/vendor/include/tlx/math.hpp +0 -46
  504. package/vendor/include/tlx/meta/apply_tuple.hpp +0 -55
  505. package/vendor/include/tlx/meta/call_for_range.hpp +0 -78
  506. package/vendor/include/tlx/meta/call_foreach.hpp +0 -60
  507. package/vendor/include/tlx/meta/call_foreach_tuple.hpp +0 -60
  508. package/vendor/include/tlx/meta/call_foreach_tuple_with_index.hpp +0 -61
  509. package/vendor/include/tlx/meta/call_foreach_with_index.hpp +0 -64
  510. package/vendor/include/tlx/meta/enable_if.hpp +0 -37
  511. package/vendor/include/tlx/meta/fold_left.hpp +0 -63
  512. package/vendor/include/tlx/meta/fold_left_tuple.hpp +0 -60
  513. package/vendor/include/tlx/meta/fold_right.hpp +0 -63
  514. package/vendor/include/tlx/meta/fold_right_tuple.hpp +0 -60
  515. package/vendor/include/tlx/meta/function_chain.hpp +0 -197
  516. package/vendor/include/tlx/meta/function_stack.hpp +0 -189
  517. package/vendor/include/tlx/meta/has_member.hpp +0 -80
  518. package/vendor/include/tlx/meta/has_method.hpp +0 -117
  519. package/vendor/include/tlx/meta/index_sequence.hpp +0 -66
  520. package/vendor/include/tlx/meta/is_std_array.hpp +0 -40
  521. package/vendor/include/tlx/meta/is_std_pair.hpp +0 -39
  522. package/vendor/include/tlx/meta/is_std_tuple.hpp +0 -39
  523. package/vendor/include/tlx/meta/is_std_vector.hpp +0 -39
  524. package/vendor/include/tlx/meta/log2.hpp +0 -101
  525. package/vendor/include/tlx/meta/no_operation.hpp +0 -55
  526. package/vendor/include/tlx/meta/static_index.hpp +0 -42
  527. package/vendor/include/tlx/meta/vexpand.hpp +0 -34
  528. package/vendor/include/tlx/meta/vmap_for_range.hpp +0 -84
  529. package/vendor/include/tlx/meta/vmap_foreach.hpp +0 -63
  530. package/vendor/include/tlx/meta/vmap_foreach_tuple.hpp +0 -59
  531. package/vendor/include/tlx/meta/vmap_foreach_tuple_with_index.hpp +0 -62
  532. package/vendor/include/tlx/meta/vmap_foreach_with_index.hpp +0 -70
  533. package/vendor/include/tlx/meta.hpp +0 -55
  534. package/vendor/include/tlx/multi_timer.hpp +0 -148
  535. package/vendor/include/tlx/port/setenv.hpp +0 -31
  536. package/vendor/include/tlx/port.hpp +0 -27
  537. package/vendor/include/tlx/semaphore.hpp +0 -119
  538. package/vendor/include/tlx/simple_vector.hpp +0 -20
  539. package/vendor/include/tlx/siphash.hpp +0 -282
  540. package/vendor/include/tlx/sort/networks/best.hpp +0 -611
  541. package/vendor/include/tlx/sort/networks/bose_nelson.hpp +0 -412
  542. package/vendor/include/tlx/sort/networks/bose_nelson_parameter.hpp +0 -507
  543. package/vendor/include/tlx/sort/networks/cswap.hpp +0 -60
  544. package/vendor/include/tlx/sort/parallel_mergesort.hpp +0 -398
  545. package/vendor/include/tlx/sort/strings/insertion_sort.hpp +0 -232
  546. package/vendor/include/tlx/sort/strings/multikey_quicksort.hpp +0 -185
  547. package/vendor/include/tlx/sort/strings/parallel_sample_sort.hpp +0 -1647
  548. package/vendor/include/tlx/sort/strings/radix_sort.hpp +0 -934
  549. package/vendor/include/tlx/sort/strings/sample_sort_tools.hpp +0 -756
  550. package/vendor/include/tlx/sort/strings/string_ptr.hpp +0 -426
  551. package/vendor/include/tlx/sort/strings/string_set.hpp +0 -800
  552. package/vendor/include/tlx/sort/strings.hpp +0 -329
  553. package/vendor/include/tlx/sort/strings_parallel.hpp +0 -325
  554. package/vendor/include/tlx/sort.hpp +0 -29
  555. package/vendor/include/tlx/stack_allocator.hpp +0 -226
  556. package/vendor/include/tlx/string/appendline.hpp +0 -35
  557. package/vendor/include/tlx/string/base64.hpp +0 -87
  558. package/vendor/include/tlx/string/bitdump.hpp +0 -139
  559. package/vendor/include/tlx/string/compare_icase.hpp +0 -42
  560. package/vendor/include/tlx/string/contains.hpp +0 -36
  561. package/vendor/include/tlx/string/contains_word.hpp +0 -42
  562. package/vendor/include/tlx/string/ends_with.hpp +0 -79
  563. package/vendor/include/tlx/string/equal_icase.hpp +0 -42
  564. package/vendor/include/tlx/string/erase_all.hpp +0 -70
  565. package/vendor/include/tlx/string/escape_html.hpp +0 -34
  566. package/vendor/include/tlx/string/escape_uri.hpp +0 -34
  567. package/vendor/include/tlx/string/expand_environment_variables.hpp +0 -49
  568. package/vendor/include/tlx/string/extract_between.hpp +0 -40
  569. package/vendor/include/tlx/string/format_iec_units.hpp +0 -32
  570. package/vendor/include/tlx/string/format_si_iec_units.hpp +0 -19
  571. package/vendor/include/tlx/string/format_si_units.hpp +0 -32
  572. package/vendor/include/tlx/string/hash_djb2.hpp +0 -87
  573. package/vendor/include/tlx/string/hash_sdbm.hpp +0 -86
  574. package/vendor/include/tlx/string/hexdump.hpp +0 -154
  575. package/vendor/include/tlx/string/index_of.hpp +0 -56
  576. package/vendor/include/tlx/string/join.hpp +0 -65
  577. package/vendor/include/tlx/string/join_generic.hpp +0 -89
  578. package/vendor/include/tlx/string/join_quoted.hpp +0 -46
  579. package/vendor/include/tlx/string/less_icase.hpp +0 -64
  580. package/vendor/include/tlx/string/levenshtein.hpp +0 -193
  581. package/vendor/include/tlx/string/pad.hpp +0 -39
  582. package/vendor/include/tlx/string/parse_si_iec_units.hpp +0 -46
  583. package/vendor/include/tlx/string/parse_uri.hpp +0 -66
  584. package/vendor/include/tlx/string/parse_uri_form_data.hpp +0 -136
  585. package/vendor/include/tlx/string/replace.hpp +0 -141
  586. package/vendor/include/tlx/string/split.hpp +0 -170
  587. package/vendor/include/tlx/string/split_quoted.hpp +0 -49
  588. package/vendor/include/tlx/string/split_view.hpp +0 -218
  589. package/vendor/include/tlx/string/split_words.hpp +0 -53
  590. package/vendor/include/tlx/string/ssprintf.hpp +0 -45
  591. package/vendor/include/tlx/string/ssprintf_generic.hpp +0 -95
  592. package/vendor/include/tlx/string/starts_with.hpp +0 -44
  593. package/vendor/include/tlx/string/to_lower.hpp +0 -47
  594. package/vendor/include/tlx/string/to_upper.hpp +0 -47
  595. package/vendor/include/tlx/string/trim.hpp +0 -298
  596. package/vendor/include/tlx/string/union_words.hpp +0 -33
  597. package/vendor/include/tlx/string/word_wrap.hpp +0 -35
  598. package/vendor/include/tlx/string.hpp +0 -68
  599. package/vendor/include/tlx/thread_barrier_mutex.hpp +0 -109
  600. package/vendor/include/tlx/thread_barrier_spin.hpp +0 -127
  601. package/vendor/include/tlx/thread_pool.hpp +0 -151
  602. package/vendor/include/tlx/timestamp.hpp +0 -23
  603. package/vendor/include/tlx/unused.hpp +0 -28
  604. package/vendor/include/tlx/vector_free.hpp +0 -30
  605. package/vendor/include/tlx/version.hpp +0 -49
  606. package/vendor/include/ttmath/ttmath.h +0 -2881
  607. package/vendor/include/ttmath/ttmathbig.h +0 -6111
  608. package/vendor/include/ttmath/ttmathdec.h +0 -419
  609. package/vendor/include/ttmath/ttmathint.h +0 -1923
  610. package/vendor/include/ttmath/ttmathmisc.h +0 -250
  611. package/vendor/include/ttmath/ttmathobjects.h +0 -812
  612. package/vendor/include/ttmath/ttmathparser.h +0 -2791
  613. package/vendor/include/ttmath/ttmaththreads.h +0 -252
  614. package/vendor/include/ttmath/ttmathtypes.h +0 -707
  615. package/vendor/include/ttmath/ttmathuint.h +0 -4190
  616. package/vendor/include/ttmath/ttmathuint_noasm.h +0 -1038
  617. package/vendor/include/ttmath/ttmathuint_x86.h +0 -1620
  618. package/vendor/include/ttmath/ttmathuint_x86_64.h +0 -1177
  619. package/vendor/lib/cmake/tlx/tlx-config.cmake +0 -51
  620. package/vendor/lib/cmake/tlx/tlx-targets-release.cmake +0 -19
  621. package/vendor/lib/cmake/tlx/tlx-targets.cmake +0 -106
  622. package/vendor/lib/cmake/tlx/tlx-version.cmake +0 -11
  623. package/vendor/lib/libtlx.a +0 -0
  624. package/vendor/lib/pkgconfig/networkit.pc +0 -11
  625. package/vendor/lib/pkgconfig/tlx.pc +0 -11
@@ -1,1923 +0,0 @@
1
- /*
2
- * This file is a part of TTMath Bignum Library
3
- * and is distributed under the 3-Clause BSD Licence.
4
- * Author: Tomasz Sowa <t.sowa@ttmath.org>
5
- */
6
-
7
- /*
8
- * Copyright (c) 2006-2017, Tomasz Sowa
9
- * All rights reserved.
10
- *
11
- * Redistribution and use in source and binary forms, with or without
12
- * modification, are permitted provided that the following conditions are met:
13
- *
14
- * * Redistributions of source code must retain the above copyright notice,
15
- * this list of conditions and the following disclaimer.
16
- *
17
- * * Redistributions in binary form must reproduce the above copyright
18
- * notice, this list of conditions and the following disclaimer in the
19
- * documentation and/or other materials provided with the distribution.
20
- *
21
- * * Neither the name Tomasz Sowa nor the names of contributors to this
22
- * project may be used to endorse or promote products derived
23
- * from this software without specific prior written permission.
24
- *
25
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
35
- * THE POSSIBILITY OF SUCH DAMAGE.
36
- */
37
-
38
-
39
-
40
- #ifndef headerfilettmathint
41
- #define headerfilettmathint
42
-
43
- /*!
44
- \file ttmathint.h
45
- \brief template class Int<uint>
46
- */
47
-
48
- #include "ttmathuint.h"
49
-
50
- namespace ttmath
51
- {
52
-
53
-
54
- /*!
55
- \brief Int implements a big integer value with a sign
56
-
57
- value_size - how many bytes specify our value
58
- - on 32bit platforms: value_size=1 -> 4 bytes -> 32 bits
59
- - on 64bit platforms: value_size=1 -> 8 bytes -> 64 bits
60
- value_size = 1,2,3,4,5,6....
61
- */
62
- template<uint value_size>
63
- class Int : public UInt<value_size>
64
- {
65
- public:
66
-
67
- /*!
68
- this method sets the max value which this class can hold
69
- (all bits will be one besides the last one)
70
- */
71
- void SetMax()
72
- {
73
- UInt<value_size>::SetMax();
74
- UInt<value_size>::table[value_size-1] = ~ TTMATH_UINT_HIGHEST_BIT;
75
- }
76
-
77
-
78
- /*!
79
- this method sets the min value which this class can hold
80
- (all bits will be zero besides the last one which is one)
81
- */
82
- void SetMin()
83
- {
84
- UInt<value_size>::SetZero();
85
- UInt<value_size>::table[value_size-1] = TTMATH_UINT_HIGHEST_BIT;
86
- }
87
-
88
-
89
- /*!
90
- this method sets -1 as the value
91
- (-1 is equal the max value in an unsigned type)
92
- */
93
- void SetSignOne()
94
- {
95
- UInt<value_size>::SetMax();
96
- }
97
-
98
-
99
- /*!
100
- we change the sign of the value
101
-
102
- if it isn't possible to change the sign this method returns 1
103
- else return 0 and changing the sign
104
- */
105
- uint ChangeSign()
106
- {
107
- /*
108
- if the value is equal that one which has been returned from SetMin
109
- (only the highest bit is set) that means we can't change sign
110
- because the value is too big (bigger about one)
111
-
112
- e.g. when value_size = 1 and value is -2147483648 we can't change it to the
113
- 2147483648 because the max value which can be held is 2147483647
114
-
115
- we don't change the value and we're using this fact somewhere in some methods
116
- (if we look on our value without the sign we get the correct value
117
- eg. -2147483648 in Int<1> will be 2147483648 on the UInt<1> type)
118
- */
119
- if( UInt<value_size>::IsOnlyTheHighestBitSet() )
120
- return 1;
121
-
122
- UInt<value_size> temp(*this);
123
- UInt<value_size>::SetZero();
124
- UInt<value_size>::Sub(temp);
125
-
126
- return 0;
127
- }
128
-
129
-
130
-
131
- /*!
132
- this method sets the sign
133
-
134
- samples
135
- - 1 -> -1
136
- - -2 -> -2
137
-
138
- from a positive value we make a negative value,
139
- if the value is negative we do nothing
140
- */
141
- void SetSign()
142
- {
143
- if( IsSign() )
144
- return;
145
-
146
- ChangeSign();
147
- }
148
-
149
-
150
-
151
- /*!
152
- this method returns true if there's the sign
153
-
154
- (the highest bit will be converted to the bool)
155
- */
156
- bool IsSign() const
157
- {
158
- return UInt<value_size>::IsTheHighestBitSet();
159
- }
160
-
161
-
162
-
163
- /*!
164
- it sets an absolute value
165
-
166
- it can return carry (1) (look on ChangeSign() for details)
167
- */
168
- uint Abs()
169
- {
170
- if( !IsSign() )
171
- return 0;
172
-
173
- return ChangeSign();
174
- }
175
-
176
-
177
-
178
-
179
- /*!
180
- *
181
- * basic mathematic functions
182
- *
183
- */
184
-
185
- private:
186
-
187
- uint CorrectCarryAfterAdding(bool p1_is_sign, bool p2_is_sign)
188
- {
189
- if( !p1_is_sign && !p2_is_sign )
190
- {
191
- if( UInt<value_size>::IsTheHighestBitSet() )
192
- return 1;
193
- }
194
-
195
- if( p1_is_sign && p2_is_sign )
196
- {
197
- if( ! UInt<value_size>::IsTheHighestBitSet() )
198
- return 1;
199
- }
200
-
201
- return 0;
202
- }
203
-
204
-
205
- public:
206
-
207
- /*!
208
- this method adds two value with a sign and returns a carry
209
-
210
- we're using methods from the base class because values are stored with U2
211
- we must only make the carry correction
212
-
213
- this = p1(=this) + p2
214
-
215
- when p1>=0 i p2>=0 carry is set when the highest bit of value is set
216
- when p1<0 i p2<0 carry is set when the highest bit of value is clear
217
- when p1>=0 i p2<0 carry will never be set
218
- when p1<0 i p2>=0 carry will never be set
219
- */
220
- uint Add(const Int<value_size> & ss2)
221
- {
222
- bool p1_is_sign = IsSign();
223
- bool p2_is_sign = ss2.IsSign();
224
-
225
- UInt<value_size>::Add(ss2);
226
-
227
- return CorrectCarryAfterAdding(p1_is_sign, p2_is_sign);
228
- }
229
-
230
-
231
- /*!
232
- this method adds one *unsigned* word (at a specific position)
233
- and returns a carry (if it was)
234
-
235
- look at a description in UInt<>::AddInt(...)
236
- */
237
- uint AddInt(uint value, uint index = 0)
238
- {
239
- bool p1_is_sign = IsSign();
240
-
241
- UInt<value_size>::AddInt(value, index);
242
-
243
- return CorrectCarryAfterAdding(p1_is_sign, false);
244
- }
245
-
246
-
247
- /*!
248
- this method adds two *unsigned* words to the existing value
249
- and these words begin on the 'index' position
250
-
251
- index should be equal or smaller than value_size-2 (index <= value_size-2)
252
- x1 - lower word, x2 - higher word
253
-
254
- look at a description in UInt<>::AddTwoInts(...)
255
- */
256
- uint AddTwoInts(uint x2, uint x1, uint index)
257
- {
258
- bool p1_is_sign = IsSign();
259
-
260
- UInt<value_size>::AddTwoInts(x2, x1, index);
261
-
262
- return CorrectCarryAfterAdding(p1_is_sign, false);
263
- }
264
-
265
- private:
266
-
267
- uint CorrectCarryAfterSubtracting(bool p1_is_sign, bool p2_is_sign)
268
- {
269
- if( !p1_is_sign && p2_is_sign )
270
- {
271
- if( UInt<value_size>::IsTheHighestBitSet() )
272
- return 1;
273
- }
274
-
275
- if( p1_is_sign && !p2_is_sign )
276
- {
277
- if( ! UInt<value_size>::IsTheHighestBitSet() )
278
- return 1;
279
- }
280
-
281
- return 0;
282
- }
283
-
284
- public:
285
-
286
- /*!
287
- this method subtracts two values with a sign
288
-
289
- we don't use the previous Add because the method ChangeSign can
290
- sometimes return carry
291
-
292
- this = p1(=this) - p2
293
-
294
- - when p1>=0 i p2>=0 carry will never be set
295
- - when p1<0 i p2<0 carry will never be set
296
- - when p1>=0 i p2<0 carry is set when the highest bit of value is set
297
- - when p1<0 i p2>=0 carry is set when the highest bit of value is clear
298
- */
299
- uint Sub(const Int<value_size> & ss2)
300
- {
301
- bool p1_is_sign = IsSign();
302
- bool p2_is_sign = ss2.IsSign();
303
-
304
- UInt<value_size>::Sub(ss2);
305
-
306
- return CorrectCarryAfterSubtracting(p1_is_sign, p2_is_sign);
307
- }
308
-
309
-
310
- /*!
311
- this method subtracts one *unsigned* word (at a specific position)
312
- and returns a carry (if it was)
313
- */
314
- uint SubInt(uint value, uint index = 0)
315
- {
316
- bool p1_is_sign = IsSign();
317
-
318
- UInt<value_size>::SubInt(value, index);
319
-
320
- return CorrectCarryAfterSubtracting(p1_is_sign, false);
321
- }
322
-
323
-
324
- /*!
325
- this method adds one to the value and returns carry
326
- */
327
- uint AddOne()
328
- {
329
- bool p1_is_sign = IsSign();
330
-
331
- UInt<value_size>::AddOne();
332
-
333
- return CorrectCarryAfterAdding(p1_is_sign, false);
334
- }
335
-
336
-
337
- /*!
338
- this method subtracts one from the value and returns carry
339
- */
340
- uint SubOne()
341
- {
342
- bool p1_is_sign = IsSign();
343
-
344
- UInt<value_size>::SubOne();
345
-
346
- return CorrectCarryAfterSubtracting(p1_is_sign, false);
347
- }
348
-
349
-
350
- private:
351
-
352
-
353
- uint CheckMinCarry(bool ss1_is_sign, bool ss2_is_sign)
354
- {
355
- /*
356
- we have to examine the sign of the result now
357
- but if the result is with the sign then:
358
- 1. if the signs were the same that means the result is too big
359
- (the result must be without a sign)
360
- 2. if the signs were different that means if the result
361
- is different from that one which has been returned from SetMin()
362
- that is carry (result too big) but if the result is equal SetMin()
363
- there'll be ok (and the next SetSign will has no effect because
364
- the value is actually negative -- look at description of that case
365
- in ChangeSign())
366
- */
367
- if( IsSign() )
368
- {
369
- if( ss1_is_sign != ss2_is_sign )
370
- {
371
- /*
372
- there can be one case where signs are different and
373
- the result will be equal the value from SetMin() (only the highest bit is set)
374
- (this situation is ok)
375
- */
376
- if( !UInt<value_size>::IsOnlyTheHighestBitSet() )
377
- return 1;
378
- }
379
- else
380
- {
381
- // signs were the same
382
- return 1;
383
- }
384
- }
385
-
386
- return 0;
387
- }
388
-
389
-
390
- public:
391
-
392
-
393
- /*!
394
- multiplication: this = this * ss2
395
-
396
- it can return a carry
397
- */
398
- uint MulInt(sint ss2)
399
- {
400
- bool ss1_is_sign, ss2_is_sign;
401
- uint c;
402
-
403
- ss1_is_sign = IsSign();
404
-
405
- /*
406
- we don't have to check the carry from Abs (values will be correct
407
- because next we're using the method MulInt from the base class UInt
408
- which is without a sign)
409
- */
410
- Abs();
411
-
412
- if( ss2 < 0 )
413
- {
414
- ss2 = -ss2;
415
- ss2_is_sign = true;
416
- }
417
- else
418
- {
419
- ss2_is_sign = false;
420
- }
421
-
422
- c = UInt<value_size>::MulInt((uint)ss2);
423
- c += CheckMinCarry(ss1_is_sign, ss2_is_sign);
424
-
425
- if( ss1_is_sign != ss2_is_sign )
426
- SetSign();
427
-
428
- return c;
429
- }
430
-
431
-
432
-
433
- /*!
434
- multiplication this = this * ss2
435
-
436
- it returns carry if the result is too big
437
- (we're using the method from the base class but we have to make
438
- one correction in account of signs)
439
- */
440
- uint Mul(Int<value_size> ss2)
441
- {
442
- bool ss1_is_sign, ss2_is_sign;
443
- uint c;
444
-
445
- ss1_is_sign = IsSign();
446
- ss2_is_sign = ss2.IsSign();
447
-
448
- /*
449
- we don't have to check the carry from Abs (values will be correct
450
- because next we're using the method Mul from the base class UInt
451
- which is without a sign)
452
- */
453
- Abs();
454
- ss2.Abs();
455
-
456
- c = UInt<value_size>::Mul(ss2);
457
- c += CheckMinCarry(ss1_is_sign, ss2_is_sign);
458
-
459
- if( ss1_is_sign != ss2_is_sign )
460
- SetSign();
461
-
462
- return c;
463
- }
464
-
465
-
466
- /*!
467
- division this = this / ss2
468
- returned values:
469
- - 0 - ok
470
- - 1 - division by zero
471
-
472
- for example: (result means 'this')
473
- - 20 / 3 --> result: 6 remainder: 2
474
- - -20 / 3 --> result: -6 remainder: -2
475
- - 20 / -3 --> result: -6 remainder: 2
476
- - -20 / -3 --> result: 6 remainder: -2
477
-
478
- in other words: this(old) = ss2 * this(new)(result) + remainder
479
- */
480
- uint Div(Int<value_size> ss2, Int<value_size> * remainder = 0)
481
- {
482
- bool ss1_is_sign, ss2_is_sign;
483
-
484
- ss1_is_sign = IsSign();
485
- ss2_is_sign = ss2.IsSign();
486
-
487
- /*
488
- we don't have to test the carry from Abs as well as in Mul
489
- */
490
- Abs();
491
- ss2.Abs();
492
-
493
- uint c = UInt<value_size>::Div(ss2, remainder);
494
-
495
- if( ss1_is_sign != ss2_is_sign )
496
- SetSign();
497
-
498
- if( ss1_is_sign && remainder )
499
- remainder->SetSign();
500
-
501
- return c;
502
- }
503
-
504
- uint Div(const Int<value_size> & ss2, Int<value_size> & remainder)
505
- {
506
- return Div(ss2, &remainder);
507
- }
508
-
509
-
510
- /*!
511
- division this = this / ss2 (ss2 is int)
512
- returned values:
513
- - 0 - ok
514
- - 1 - division by zero
515
-
516
- for example: (result means 'this')
517
- - 20 / 3 --> result: 6 remainder: 2
518
- - -20 / 3 --> result: -6 remainder: -2
519
- - 20 / -3 --> result: -6 remainder: 2
520
- - -20 / -3 --> result: 6 remainder: -2
521
-
522
- in other words: this(old) = ss2 * this(new)(result) + remainder
523
- */
524
- uint DivInt(sint ss2, sint * remainder = 0)
525
- {
526
- bool ss1_is_sign, ss2_is_sign;
527
-
528
- ss1_is_sign = IsSign();
529
-
530
- /*
531
- we don't have to test the carry from Abs as well as in Mul
532
- */
533
- Abs();
534
-
535
- if( ss2 < 0 )
536
- {
537
- ss2 = -ss2;
538
- ss2_is_sign = true;
539
- }
540
- else
541
- {
542
- ss2_is_sign = false;
543
- }
544
-
545
- uint rem;
546
- uint c = UInt<value_size>::DivInt((uint)ss2, &rem);
547
-
548
- if( ss1_is_sign != ss2_is_sign )
549
- SetSign();
550
-
551
- if( remainder )
552
- {
553
- if( ss1_is_sign )
554
- *remainder = -sint(rem);
555
- else
556
- *remainder = sint(rem);
557
- }
558
-
559
- return c;
560
- }
561
-
562
-
563
- uint DivInt(sint ss2, sint & remainder)
564
- {
565
- return DivInt(ss2, &remainder);
566
- }
567
-
568
-
569
- private:
570
-
571
-
572
- /*!
573
- power this = this ^ pow
574
- this can be negative
575
- pow is >= 0
576
- */
577
- uint Pow2(const Int<value_size> & pow)
578
- {
579
- bool was_sign = IsSign();
580
- uint c = 0;
581
-
582
- if( was_sign )
583
- c += Abs();
584
-
585
- uint c_temp = UInt<value_size>::Pow(pow);
586
- if( c_temp > 0 )
587
- return c_temp; // c_temp can be: 0, 1 or 2
588
-
589
- if( was_sign && (pow.table[0] & 1) == 1 )
590
- // negative value to the power of odd number is negative
591
- c += ChangeSign();
592
-
593
- return (c==0)? 0 : 1;
594
- }
595
-
596
-
597
- public:
598
-
599
-
600
- /*!
601
- power this = this ^ pow
602
-
603
- return values:
604
- - 0 - ok
605
- - 1 - carry
606
- - 2 - incorrect arguments 0^0 or 0^(-something)
607
- */
608
- uint Pow(Int<value_size> pow)
609
- {
610
- if( !pow.IsSign() )
611
- return Pow2(pow);
612
-
613
- if( UInt<value_size>::IsZero() )
614
- // if 'pow' is negative then
615
- // 'this' must be different from zero
616
- return 2;
617
-
618
- if( pow.ChangeSign() )
619
- return 1;
620
-
621
- Int<value_size> t(*this);
622
- uint c_temp = t.Pow2(pow);
623
- if( c_temp > 0 )
624
- return c_temp;
625
-
626
- UInt<value_size>::SetOne();
627
- if( Div(t) )
628
- return 1;
629
-
630
- return 0;
631
- }
632
-
633
-
634
-
635
- /*!
636
- *
637
- * convertion methods
638
- *
639
- */
640
- private:
641
-
642
-
643
- /*!
644
- an auxiliary method for converting both from UInt and Int
645
- */
646
- template<uint argument_size>
647
- uint FromUIntOrInt(const UInt<argument_size> & p, bool UInt_type)
648
- {
649
- uint min_size = (value_size < argument_size)? value_size : argument_size;
650
- uint i;
651
-
652
- for(i=0 ; i<min_size ; ++i)
653
- UInt<value_size>::table[i] = p.table[i];
654
-
655
-
656
- if( value_size > argument_size )
657
- {
658
- uint fill;
659
-
660
- if( UInt_type )
661
- fill = 0;
662
- else
663
- fill = (p.table[argument_size-1] & TTMATH_UINT_HIGHEST_BIT)?
664
- TTMATH_UINT_MAX_VALUE : 0;
665
-
666
- // 'this' is longer than 'p'
667
- for( ; i<value_size ; ++i)
668
- UInt<value_size>::table[i] = fill;
669
- }
670
- else
671
- {
672
- uint test = (UInt<value_size>::table[value_size-1] & TTMATH_UINT_HIGHEST_BIT)?
673
- TTMATH_UINT_MAX_VALUE : 0;
674
-
675
- if( UInt_type && test!=0 )
676
- return 1;
677
-
678
- for( ; i<argument_size ; ++i)
679
- if( p.table[i] != test )
680
- return 1;
681
- }
682
-
683
- return 0;
684
- }
685
-
686
- public:
687
-
688
- /*!
689
- this method converts an Int<another_size> type into this class
690
-
691
- this operation has mainly sense if the value from p
692
- can be held in this type
693
-
694
- it returns a carry if the value 'p' is too big
695
- */
696
- template<uint argument_size>
697
- uint FromInt(const Int<argument_size> & p)
698
- {
699
- return FromUIntOrInt(p, false);
700
- }
701
-
702
-
703
- /*!
704
- this method converts the sint type into this class
705
- */
706
- uint FromInt(sint value)
707
- {
708
- uint fill = ( value<0 ) ? TTMATH_UINT_MAX_VALUE : 0;
709
-
710
- for(uint i=1 ; i<value_size ; ++i)
711
- UInt<value_size>::table[i] = fill;
712
-
713
- UInt<value_size>::table[0] = uint(value);
714
-
715
- // there'll never be a carry here
716
- return 0;
717
- }
718
-
719
-
720
- /*!
721
- this method converts UInt<another_size> into this class
722
- */
723
- template<uint argument_size>
724
- uint FromUInt(const UInt<argument_size> & p)
725
- {
726
- return FromUIntOrInt(p, true);
727
- }
728
-
729
-
730
- /*!
731
- this method converts UInt<another_size> into this class
732
- */
733
- template<uint argument_size>
734
- uint FromInt(const UInt<argument_size> & p)
735
- {
736
- return FromUIntOrInt(p, true);
737
- }
738
-
739
-
740
- /*!
741
- this method converts the uint type into this class
742
- */
743
- uint FromUInt(uint value)
744
- {
745
- for(uint i=1 ; i<value_size ; ++i)
746
- UInt<value_size>::table[i] = 0;
747
-
748
- UInt<value_size>::table[0] = value;
749
-
750
- // there can be a carry here when the size of this value is equal one word
751
- // and the 'value' has the highest bit set
752
- if( value_size==1 && (value & TTMATH_UINT_HIGHEST_BIT)!=0 )
753
- return 1;
754
-
755
- return 0;
756
- }
757
-
758
-
759
- /*!
760
- this method converts the uint type into this class
761
- */
762
- uint FromInt(uint value)
763
- {
764
- return FromUInt(value);
765
- }
766
-
767
-
768
- /*!
769
- the default assignment operator
770
- */
771
- Int<value_size> & operator=(const Int<value_size> & p)
772
- {
773
- FromInt(p);
774
-
775
- return *this;
776
- }
777
-
778
-
779
- /*!
780
- this operator converts an Int<another_size> type to this class
781
-
782
- it doesn't return a carry
783
- */
784
- template<uint argument_size>
785
- Int<value_size> & operator=(const Int<argument_size> & p)
786
- {
787
- FromInt(p);
788
-
789
- return *this;
790
- }
791
-
792
-
793
- /*!
794
- this method converts the sint type to this class
795
- */
796
- Int<value_size> & operator=(sint i)
797
- {
798
- FromInt(i);
799
-
800
- return *this;
801
- }
802
-
803
-
804
- /*!
805
- a constructor for converting the uint to this class
806
- */
807
- Int(sint i)
808
- {
809
- FromInt(i);
810
- }
811
-
812
-
813
- /*!
814
- a copy constructor
815
- */
816
- Int(const Int<value_size> & u) : UInt<value_size>()
817
- {
818
- FromInt(u);
819
- }
820
-
821
-
822
- /*!
823
- a constructor for copying from another types
824
- */
825
- template<uint argument_size>
826
- Int(const Int<argument_size> & u)
827
- {
828
- // look that 'size' we still set as 'value_size' and not as u.value_size
829
- FromInt(u);
830
- }
831
-
832
-
833
-
834
- /*!
835
- this operator converts an UInt<another_size> type to this class
836
-
837
- it doesn't return a carry
838
- */
839
- template<uint argument_size>
840
- Int<value_size> & operator=(const UInt<argument_size> & p)
841
- {
842
- FromUInt(p);
843
-
844
- return *this;
845
- }
846
-
847
-
848
- /*!
849
- this method converts the Uint type to this class
850
- */
851
- Int<value_size> & operator=(uint i)
852
- {
853
- FromUInt(i);
854
-
855
- return *this;
856
- }
857
-
858
-
859
- /*!
860
- a constructor for converting the uint to this class
861
- */
862
- Int(uint i)
863
- {
864
- FromUInt(i);
865
- }
866
-
867
-
868
- /*!
869
- a constructor for copying from another types
870
- */
871
- template<uint argument_size>
872
- Int(const UInt<argument_size> & u)
873
- {
874
- // look that 'size' we still set as 'value_size' and not as u.value_size
875
- FromUInt(u);
876
- }
877
-
878
-
879
-
880
- #ifdef TTMATH_PLATFORM32
881
-
882
-
883
- /*!
884
- this method converts unsigned 64 bit int type to this class
885
- ***this method is created only on a 32bit platform***
886
- */
887
- uint FromUInt(ulint n)
888
- {
889
- uint c = UInt<value_size>::FromUInt(n);
890
-
891
- if( c )
892
- return 1;
893
-
894
- if( value_size == 1 )
895
- return ((UInt<value_size>::table[0] & TTMATH_UINT_HIGHEST_BIT) == 0) ? 0 : 1;
896
-
897
- if( value_size == 2 )
898
- return ((UInt<value_size>::table[1] & TTMATH_UINT_HIGHEST_BIT) == 0) ? 0 : 1;
899
-
900
- return 0;
901
- }
902
-
903
-
904
- /*!
905
- this method converts unsigned 64 bit int type to this class
906
- ***this method is created only on a 32bit platform***
907
- */
908
- uint FromInt(ulint n)
909
- {
910
- return FromUInt(n);
911
- }
912
-
913
-
914
- /*!
915
- this method converts signed 64 bit int type to this class
916
- ***this method is created only on a 32bit platform***
917
- */
918
- uint FromInt(slint n)
919
- {
920
- uint mask = (n < 0) ? TTMATH_UINT_MAX_VALUE : 0;
921
-
922
- UInt<value_size>::table[0] = (uint)(ulint)n;
923
-
924
- if( value_size == 1 )
925
- {
926
- if( uint(ulint(n) >> 32) != mask )
927
- return 1;
928
-
929
- return ((UInt<value_size>::table[0] & TTMATH_UINT_HIGHEST_BIT) == (mask & TTMATH_UINT_HIGHEST_BIT)) ? 0 : 1;
930
- }
931
-
932
- UInt<value_size>::table[1] = (uint)(ulint(n) >> 32);
933
-
934
- for(uint i=2 ; i<value_size ; ++i)
935
- UInt<value_size>::table[i] = mask;
936
-
937
- return 0;
938
- }
939
-
940
-
941
- /*!
942
- this operator converts unsigned 64 bit int type to this class
943
- ***this operator is created only on a 32bit platform***
944
- */
945
- Int<value_size> & operator=(ulint n)
946
- {
947
- FromUInt(n);
948
-
949
- return *this;
950
- }
951
-
952
-
953
- /*!
954
- a constructor for converting unsigned 64 bit int to this class
955
- ***this constructor is created only on a 32bit platform***
956
- */
957
- Int(ulint n)
958
- {
959
- FromUInt(n);
960
- }
961
-
962
-
963
- /*!
964
- this operator converts signed 64 bit int type to this class
965
- ***this operator is created only on a 32bit platform***
966
- */
967
- Int<value_size> & operator=(slint n)
968
- {
969
- FromInt(n);
970
-
971
- return *this;
972
- }
973
-
974
-
975
- /*!
976
- a constructor for converting signed 64 bit int to this class
977
- ***this constructor is created only on a 32bit platform***
978
- */
979
- Int(slint n)
980
- {
981
- FromInt(n);
982
- }
983
-
984
- #endif
985
-
986
-
987
-
988
-
989
- #ifdef TTMATH_PLATFORM64
990
-
991
- /*!
992
- this method converts 32 bit unsigned int type to this class
993
- ***this operator is created only on a 64bit platform***
994
- */
995
- uint FromUInt(unsigned int i)
996
- {
997
- return FromUInt(uint(i));
998
- }
999
-
1000
-
1001
- /*!
1002
- this method converts 32 bit unsigned int type to this class
1003
- ***this operator is created only on a 64bit platform***
1004
- */
1005
- uint FromInt(unsigned int i)
1006
- {
1007
- return FromUInt(i);
1008
- }
1009
-
1010
-
1011
- /*!
1012
- this method converts 32 bit signed int type to this class
1013
- ***this operator is created only on a 64bit platform***
1014
- */
1015
- uint FromInt(signed int i)
1016
- {
1017
- return FromInt(sint(i));
1018
- }
1019
-
1020
-
1021
- /*!
1022
- this method converts 32 bit unsigned int type to this class
1023
- ***this operator is created only on a 64bit platform***
1024
- */
1025
- Int<value_size> & operator=(unsigned int i)
1026
- {
1027
- FromUInt(i);
1028
-
1029
- return *this;
1030
- }
1031
-
1032
-
1033
- /*!
1034
- a constructor for converting 32 bit unsigned int to this class
1035
- ***this constructor is created only on a 64bit platform***
1036
- */
1037
- Int(unsigned int i)
1038
- {
1039
- FromUInt(i);
1040
- }
1041
-
1042
-
1043
- /*!
1044
- this operator converts 32 bit signed int type to this class
1045
- ***this operator is created only on a 64bit platform***
1046
- */
1047
- Int<value_size> & operator=(signed int i)
1048
- {
1049
- FromInt(i);
1050
-
1051
- return *this;
1052
- }
1053
-
1054
-
1055
- /*!
1056
- a constructor for converting 32 bit signed int to this class
1057
- ***this constructor is created only on a 64bit platform***
1058
- */
1059
- Int(signed int i)
1060
- {
1061
- FromInt(i);
1062
- }
1063
-
1064
- #endif
1065
-
1066
-
1067
-
1068
- /*!
1069
- a constructor for converting string to this class (with the base=10)
1070
- */
1071
- Int(const char * s)
1072
- {
1073
- FromString(s);
1074
- }
1075
-
1076
-
1077
- /*!
1078
- a constructor for converting a string to this class (with the base=10)
1079
- */
1080
- Int(const std::string & s)
1081
- {
1082
- FromString( s.c_str() );
1083
- }
1084
-
1085
-
1086
- #ifndef TTMATH_DONT_USE_WCHAR
1087
-
1088
- /*!
1089
- a constructor for converting string to this class (with the base=10)
1090
- */
1091
- Int(const wchar_t * s)
1092
- {
1093
- FromString(s);
1094
- }
1095
-
1096
-
1097
- /*!
1098
- a constructor for converting a string to this class (with the base=10)
1099
- */
1100
- Int(const std::wstring & s)
1101
- {
1102
- FromString( s.c_str() );
1103
- }
1104
-
1105
- #endif
1106
-
1107
-
1108
- /*!
1109
- a default constructor
1110
-
1111
- we don't clear table etc.
1112
- */
1113
- Int()
1114
- {
1115
- }
1116
-
1117
-
1118
- /*!
1119
- the destructor
1120
- */
1121
- ~Int()
1122
- {
1123
- }
1124
-
1125
-
1126
- /*!
1127
- this method returns the lowest value from table with a sign
1128
-
1129
- we must be sure when we using this method whether the value
1130
- will hold in an sint type or not (the rest value from table must be zero or -1)
1131
- */
1132
- sint ToInt() const
1133
- {
1134
- return sint( UInt<value_size>::table[0] );
1135
- }
1136
-
1137
-
1138
- /*!
1139
- this method converts the value to uint type
1140
- can return a carry if the value is too long to store it in uint type
1141
- */
1142
- uint ToUInt(uint & result) const
1143
- {
1144
- uint c = UInt<value_size>::ToUInt(result);
1145
-
1146
- if( value_size == 1 )
1147
- return (result & TTMATH_UINT_HIGHEST_BIT) == 0 ? 0 : 1;
1148
-
1149
- return c;
1150
- }
1151
-
1152
-
1153
- /*!
1154
- this method converts the value to uint type
1155
- can return a carry if the value is too long to store it in uint type
1156
- */
1157
- uint ToInt(uint & result) const
1158
- {
1159
- return ToUInt(result);
1160
- }
1161
-
1162
-
1163
- /*!
1164
- this method converts the value to sint type
1165
- can return a carry if the value is too long to store it in sint type
1166
- */
1167
- uint ToInt(sint & result) const
1168
- {
1169
- result = sint( UInt<value_size>::table[0] );
1170
- uint mask = IsSign() ? TTMATH_UINT_MAX_VALUE : 0;
1171
-
1172
- if( (result & TTMATH_UINT_HIGHEST_BIT) != (mask & TTMATH_UINT_HIGHEST_BIT) )
1173
- return 1;
1174
-
1175
- for(uint i=1 ; i<value_size ; ++i)
1176
- if( UInt<value_size>::table[i] != mask )
1177
- return 1;
1178
-
1179
- return 0;
1180
- }
1181
-
1182
-
1183
- #ifdef TTMATH_PLATFORM32
1184
-
1185
- /*!
1186
- this method converts the value to ulint type (64 bit unsigned integer)
1187
- can return a carry if the value is too long to store it in ulint type
1188
- *** this method is created only on a 32 bit platform ***
1189
- */
1190
- uint ToUInt(ulint & result) const
1191
- {
1192
- uint c = UInt<value_size>::ToUInt(result);
1193
-
1194
- if( value_size == 1 )
1195
- return (UInt<value_size>::table[0] & TTMATH_UINT_HIGHEST_BIT) == 0 ? 0 : 1;
1196
-
1197
- if( value_size == 2 )
1198
- return (UInt<value_size>::table[1] & TTMATH_UINT_HIGHEST_BIT) == 0 ? 0 : 1;
1199
-
1200
- return c;
1201
- }
1202
-
1203
-
1204
- /*!
1205
- this method converts the value to ulint type (64 bit unsigned integer)
1206
- can return a carry if the value is too long to store it in ulint type
1207
- *** this method is created only on a 32 bit platform ***
1208
- */
1209
- uint ToInt(ulint & result) const
1210
- {
1211
- return ToUInt(result);
1212
- }
1213
-
1214
-
1215
- /*!
1216
- this method converts the value to slint type (64 bit signed integer)
1217
- can return a carry if the value is too long to store it in slint type
1218
- *** this method is created only on a 32 bit platform ***
1219
- */
1220
- uint ToInt(slint & result) const
1221
- {
1222
- if( value_size == 1 )
1223
- {
1224
- result = slint(sint(UInt<value_size>::table[0]));
1225
- }
1226
- else
1227
- {
1228
- uint low = UInt<value_size>::table[0];
1229
- uint high = UInt<value_size>::table[1];
1230
-
1231
- result = low;
1232
- result |= (ulint(high) << TTMATH_BITS_PER_UINT);
1233
-
1234
- uint mask = IsSign() ? TTMATH_UINT_MAX_VALUE : 0;
1235
-
1236
- if( (high & TTMATH_UINT_HIGHEST_BIT) != (mask & TTMATH_UINT_HIGHEST_BIT) )
1237
- return 1;
1238
-
1239
- for(uint i=2 ; i<value_size ; ++i)
1240
- if( UInt<value_size>::table[i] != mask )
1241
- return 1;
1242
- }
1243
-
1244
- return 0;
1245
- }
1246
-
1247
- #endif
1248
-
1249
-
1250
-
1251
- #ifdef TTMATH_PLATFORM64
1252
-
1253
- /*!
1254
- this method converts the value to a 32 bit unsigned integer
1255
- can return a carry if the value is too long to store it in this type
1256
- *** this method is created only on a 64 bit platform ***
1257
- */
1258
- uint ToUInt(unsigned int & result) const
1259
- {
1260
- uint c = UInt<value_size>::ToUInt(result);
1261
-
1262
- if( c || IsSign() )
1263
- return 1;
1264
-
1265
- return 0;
1266
- }
1267
-
1268
-
1269
- /*!
1270
- this method converts the value to a 32 bit unsigned integer
1271
- can return a carry if the value is too long to store it in this type
1272
- *** this method is created only on a 64 bit platform ***
1273
- */
1274
- uint ToInt(unsigned int & result) const
1275
- {
1276
- return ToUInt(result);
1277
- }
1278
-
1279
-
1280
- /*!
1281
- this method converts the value to a 32 bit signed integer
1282
- can return a carry if the value is too long to store it in this type
1283
- *** this method is created only on a 64 bit platform ***
1284
- */
1285
- uint ToInt(int & result) const
1286
- {
1287
- uint first = UInt<value_size>::table[0];
1288
-
1289
- result = int(first);
1290
- uint mask = IsSign() ? TTMATH_UINT_MAX_VALUE : 0;
1291
-
1292
- if( (first >> 31) != (mask >> 31) )
1293
- return 1;
1294
-
1295
- for(uint i=1 ; i<value_size ; ++i)
1296
- if( UInt<value_size>::table[i] != mask )
1297
- return 1;
1298
-
1299
- return 0;
1300
- }
1301
-
1302
- #endif
1303
-
1304
-
1305
-
1306
-
1307
- private:
1308
-
1309
- /*!
1310
- an auxiliary method for converting to a string
1311
- */
1312
- template<class string_type>
1313
- void ToStringBase(string_type & result, uint b = 10) const
1314
- {
1315
- if( IsSign() )
1316
- {
1317
- Int<value_size> temp(*this);
1318
- temp.Abs();
1319
- temp.UInt<value_size>::ToStringBase(result, b, true);
1320
- }
1321
- else
1322
- {
1323
- UInt<value_size>::ToStringBase(result, b, false);
1324
- }
1325
- }
1326
-
1327
- public:
1328
-
1329
- /*!
1330
- this method converts the value to a string with a base equal 'b'
1331
- */
1332
- void ToString(std::string & result, uint b = 10) const
1333
- {
1334
- return ToStringBase(result, b);
1335
- }
1336
-
1337
-
1338
- /*!
1339
- this method converts the value to a string with a base equal 'b'
1340
- */
1341
- std::string ToString(uint b = 10) const
1342
- {
1343
- std::string result;
1344
- ToStringBase(result, b);
1345
-
1346
- return result;
1347
- }
1348
-
1349
-
1350
- #ifndef TTMATH_DONT_USE_WCHAR
1351
-
1352
- /*!
1353
- this method converts the value to a string with a base equal 'b'
1354
- */
1355
- void ToString(std::wstring & result, uint b = 10) const
1356
- {
1357
- return ToStringBase(result, b);
1358
- }
1359
-
1360
-
1361
- /*!
1362
- this method converts the value to a string with a base equal 'b'
1363
- */
1364
- std::wstring ToWString(uint b = 10) const
1365
- {
1366
- std::wstring result;
1367
- ToStringBase(result, b);
1368
-
1369
- return result;
1370
- }
1371
-
1372
- #endif
1373
-
1374
-
1375
-
1376
- private:
1377
-
1378
- /*!
1379
- an auxiliary method for converting from a string
1380
- */
1381
- template<class char_type>
1382
- uint FromStringBase(const char_type * s, uint b = 10, const char_type ** after_source = 0, bool * value_read = 0)
1383
- {
1384
- bool is_sign = false;
1385
-
1386
- Misc::SkipWhiteCharacters(s);
1387
-
1388
- if( *s == '-' )
1389
- {
1390
- is_sign = true;
1391
- Misc::SkipWhiteCharacters(++s);
1392
- }
1393
- else
1394
- if( *s == '+' )
1395
- {
1396
- Misc::SkipWhiteCharacters(++s);
1397
- }
1398
-
1399
- if( UInt<value_size>::FromString(s,b,after_source,value_read) )
1400
- return 1;
1401
-
1402
- if( is_sign )
1403
- {
1404
- Int<value_size> mmin;
1405
-
1406
- mmin.SetMin();
1407
-
1408
- /*
1409
- the reference to mmin will be automatically converted to the reference
1410
- to UInt type
1411
- (this value can be equal mmin -- look at a description in ChangeSign())
1412
- */
1413
- if( UInt<value_size>::operator>( mmin ) )
1414
- return 1;
1415
-
1416
- /*
1417
- if the value is equal mmin the method ChangeSign() does nothing (only returns 1 but we ignore it)
1418
- */
1419
- ChangeSign();
1420
- }
1421
- else
1422
- {
1423
- Int<value_size> mmax;
1424
-
1425
- mmax.SetMax();
1426
-
1427
- if( UInt<value_size>::operator>( mmax ) )
1428
- return 1;
1429
- }
1430
-
1431
- return 0;
1432
- }
1433
-
1434
-
1435
- public:
1436
-
1437
- /*!
1438
- this method converts a string into its value
1439
- it returns carry=1 if the value will be too big or an incorrect base 'b' is given
1440
-
1441
- string is ended with a non-digit value, for example:
1442
- "-12" will be translated to -12
1443
- as well as:
1444
- "- 12foo" will be translated to -12 too
1445
-
1446
- existing first white characters will be ommited
1447
- (between '-' and a first digit can be white characters too)
1448
-
1449
- after_source (if exists) is pointing at the end of the parsed string
1450
-
1451
- value_read (if exists) tells whether something has actually been read (at least one digit)
1452
- */
1453
- uint FromString(const char * s, uint b = 10, const char ** after_source = 0, bool * value_read = 0)
1454
- {
1455
- return FromStringBase(s, b, after_source, value_read);
1456
- }
1457
-
1458
-
1459
- /*!
1460
- this method converts a string into its value
1461
- */
1462
- uint FromString(const wchar_t * s, uint b = 10, const wchar_t ** after_source = 0, bool * value_read = 0)
1463
- {
1464
- return FromStringBase(s, b, after_source, value_read);
1465
- }
1466
-
1467
-
1468
- /*!
1469
- this method converts a string into its value
1470
- it returns carry=1 if the value will be too big or an incorrect base 'b' is given
1471
- */
1472
- uint FromString(const std::string & s, uint b = 10)
1473
- {
1474
- return FromString( s.c_str(), b );
1475
- }
1476
-
1477
-
1478
- /*!
1479
- this operator converts a string into its value (with base = 10)
1480
- */
1481
- Int<value_size> & operator=(const char * s)
1482
- {
1483
- FromString(s);
1484
-
1485
- return *this;
1486
- }
1487
-
1488
-
1489
- #ifndef TTMATH_DONT_USE_WCHAR
1490
-
1491
-
1492
- /*!
1493
- this method converts a string into its value
1494
- it returns carry=1 if the value will be too big or an incorrect base 'b' is given
1495
- */
1496
- uint FromString(const std::wstring & s, uint b = 10)
1497
- {
1498
- return FromString( s.c_str(), b );
1499
- }
1500
-
1501
-
1502
- /*!
1503
- this operator converts a string into its value (with base = 10)
1504
- */
1505
- Int<value_size> & operator=(const wchar_t * s)
1506
- {
1507
- FromString(s);
1508
-
1509
- return *this;
1510
- }
1511
-
1512
-
1513
- /*!
1514
- this operator converts a string into its value (with base = 10)
1515
- */
1516
- Int<value_size> & operator=(const std::wstring & s)
1517
- {
1518
- FromString( s.c_str() );
1519
-
1520
- return *this;
1521
- }
1522
-
1523
- #endif
1524
-
1525
-
1526
- /*!
1527
- this operator converts a string into its value (with base = 10)
1528
- */
1529
- Int<value_size> & operator=(const std::string & s)
1530
- {
1531
- FromString( s.c_str() );
1532
-
1533
- return *this;
1534
- }
1535
-
1536
-
1537
-
1538
- /*!
1539
- *
1540
- * methods for comparing
1541
- *
1542
- *
1543
- */
1544
-
1545
- bool operator==(const Int<value_size> & l) const
1546
- {
1547
- return UInt<value_size>::operator==(l);
1548
- }
1549
-
1550
- bool operator!=(const Int<value_size> & l) const
1551
- {
1552
- return UInt<value_size>::operator!=(l);
1553
- }
1554
-
1555
- bool operator<(const Int<value_size> & l) const
1556
- {
1557
- sint i=value_size-1;
1558
-
1559
- sint a1 = sint(UInt<value_size>::table[i]);
1560
- sint a2 = sint(l.table[i]);
1561
-
1562
- if( a1 != a2 )
1563
- return a1 < a2;
1564
-
1565
-
1566
- for(--i ; i>=0 ; --i)
1567
- {
1568
- if( UInt<value_size>::table[i] != l.table[i] )
1569
- // comparison as unsigned int
1570
- return UInt<value_size>::table[i] < l.table[i];
1571
- }
1572
-
1573
- // they're equal
1574
- return false;
1575
- }
1576
-
1577
-
1578
- bool operator>(const Int<value_size> & l) const
1579
- {
1580
- sint i=value_size-1;
1581
-
1582
- sint a1 = sint(UInt<value_size>::table[i]);
1583
- sint a2 = sint(l.table[i]);
1584
-
1585
- if( a1 != a2 )
1586
- return a1 > a2;
1587
-
1588
-
1589
- for(--i ; i>=0 ; --i)
1590
- {
1591
- if( UInt<value_size>::table[i] != l.table[i] )
1592
- // comparison as unsigned int
1593
- return UInt<value_size>::table[i] > l.table[i];
1594
- }
1595
-
1596
- // they're equal
1597
- return false;
1598
- }
1599
-
1600
-
1601
- bool operator<=(const Int<value_size> & l) const
1602
- {
1603
- sint i=value_size-1;
1604
-
1605
- sint a1 = sint(UInt<value_size>::table[i]);
1606
- sint a2 = sint(l.table[i]);
1607
-
1608
- if( a1 != a2 )
1609
- return a1 < a2;
1610
-
1611
-
1612
- for(--i ; i>=0 ; --i)
1613
- {
1614
- if( UInt<value_size>::table[i] != l.table[i] )
1615
- // comparison as unsigned int
1616
- return UInt<value_size>::table[i] < l.table[i];
1617
- }
1618
-
1619
- // they're equal
1620
- return true;
1621
- }
1622
-
1623
-
1624
- bool operator>=(const Int<value_size> & l) const
1625
- {
1626
- sint i=value_size-1;
1627
-
1628
- sint a1 = sint(UInt<value_size>::table[i]);
1629
- sint a2 = sint(l.table[i]);
1630
-
1631
- if( a1 != a2 )
1632
- return a1 > a2;
1633
-
1634
-
1635
- for(--i ; i>=0 ; --i)
1636
- {
1637
- if( UInt<value_size>::table[i] != l.table[i] )
1638
- // comparison as unsigned int
1639
- return UInt<value_size>::table[i] > l.table[i];
1640
- }
1641
-
1642
- // they're equal
1643
- return true;
1644
- }
1645
-
1646
-
1647
-
1648
- /*!
1649
- *
1650
- * standard mathematical operators
1651
- *
1652
- */
1653
-
1654
-
1655
- /*!
1656
- an operator for changing the sign
1657
-
1658
- it's not changing 'this' but the changed value will be returned
1659
- */
1660
- Int<value_size> operator-() const
1661
- {
1662
- Int<value_size> temp(*this);
1663
-
1664
- temp.ChangeSign();
1665
-
1666
- return temp;
1667
- }
1668
-
1669
-
1670
- Int<value_size> operator-(const Int<value_size> & p2) const
1671
- {
1672
- Int<value_size> temp(*this);
1673
-
1674
- temp.Sub(p2);
1675
-
1676
- return temp;
1677
- }
1678
-
1679
-
1680
- Int<value_size> & operator-=(const Int<value_size> & p2)
1681
- {
1682
- Sub(p2);
1683
-
1684
- return *this;
1685
- }
1686
-
1687
-
1688
- Int<value_size> operator+(const Int<value_size> & p2) const
1689
- {
1690
- Int<value_size> temp(*this);
1691
-
1692
- temp.Add(p2);
1693
-
1694
- return temp;
1695
- }
1696
-
1697
-
1698
- Int<value_size> & operator+=(const Int<value_size> & p2)
1699
- {
1700
- Add(p2);
1701
-
1702
- return *this;
1703
- }
1704
-
1705
-
1706
- Int<value_size> operator*(const Int<value_size> & p2) const
1707
- {
1708
- Int<value_size> temp(*this);
1709
-
1710
- temp.Mul(p2);
1711
-
1712
- return temp;
1713
- }
1714
-
1715
-
1716
- Int<value_size> & operator*=(const Int<value_size> & p2)
1717
- {
1718
- Mul(p2);
1719
-
1720
- return *this;
1721
- }
1722
-
1723
-
1724
- Int<value_size> operator/(const Int<value_size> & p2) const
1725
- {
1726
- Int<value_size> temp(*this);
1727
-
1728
- temp.Div(p2);
1729
-
1730
- return temp;
1731
- }
1732
-
1733
-
1734
- Int<value_size> & operator/=(const Int<value_size> & p2)
1735
- {
1736
- Div(p2);
1737
-
1738
- return *this;
1739
- }
1740
-
1741
-
1742
- Int<value_size> operator%(const Int<value_size> & p2) const
1743
- {
1744
- Int<value_size> temp(*this);
1745
- Int<value_size> remainder;
1746
-
1747
- temp.Div(p2, remainder);
1748
-
1749
- return remainder;
1750
- }
1751
-
1752
-
1753
- Int<value_size> & operator%=(const Int<value_size> & p2)
1754
- {
1755
- Int<value_size> remainder;
1756
-
1757
- Div(p2, remainder);
1758
- operator=(remainder);
1759
-
1760
- return *this;
1761
- }
1762
-
1763
-
1764
- /*!
1765
- Prefix operator e.g. ++variable
1766
- */
1767
- UInt<value_size> & operator++()
1768
- {
1769
- AddOne();
1770
-
1771
- return *this;
1772
- }
1773
-
1774
-
1775
- /*!
1776
- Postfix operator e.g. variable++
1777
- */
1778
- UInt<value_size> operator++(int)
1779
- {
1780
- UInt<value_size> temp( *this );
1781
-
1782
- AddOne();
1783
-
1784
- return temp;
1785
- }
1786
-
1787
-
1788
- UInt<value_size> & operator--()
1789
- {
1790
- SubOne();
1791
-
1792
- return *this;
1793
- }
1794
-
1795
-
1796
- UInt<value_size> operator--(int)
1797
- {
1798
- UInt<value_size> temp( *this );
1799
-
1800
- SubOne();
1801
-
1802
- return temp;
1803
- }
1804
-
1805
-
1806
-
1807
- /*!
1808
- *
1809
- * input/output operators for standard streams
1810
- *
1811
- */
1812
-
1813
- private:
1814
-
1815
- /*!
1816
- an auxiliary method for outputing to standard streams
1817
- */
1818
- template<class ostream_type, class string_type>
1819
- static ostream_type & OutputToStream(ostream_type & s, const Int<value_size> & l)
1820
- {
1821
- string_type ss;
1822
-
1823
- l.ToString(ss);
1824
- s << ss;
1825
-
1826
- return s;
1827
- }
1828
-
1829
-
1830
-
1831
- public:
1832
-
1833
-
1834
- /*!
1835
- output to standard streams
1836
- */
1837
- friend std::ostream & operator<<(std::ostream & s, const Int<value_size> & l)
1838
- {
1839
- return OutputToStream<std::ostream, std::string>(s, l);
1840
- }
1841
-
1842
-
1843
- #ifndef TTMATH_DONT_USE_WCHAR
1844
-
1845
- /*!
1846
- output to standard streams
1847
- */
1848
- friend std::wostream & operator<<(std::wostream & s, const Int<value_size> & l)
1849
- {
1850
- return OutputToStream<std::wostream, std::wstring>(s, l);
1851
- }
1852
-
1853
- #endif
1854
-
1855
-
1856
-
1857
- private:
1858
-
1859
- /*!
1860
- an auxiliary method for converting from a string
1861
- */
1862
- template<class istream_type, class string_type, class char_type>
1863
- static istream_type & InputFromStream(istream_type & s, Int<value_size> & l)
1864
- {
1865
- string_type ss;
1866
-
1867
- // char or wchar_t for operator>>
1868
- char_type z;
1869
-
1870
- // operator>> omits white characters if they're set for ommiting
1871
- s >> z;
1872
-
1873
- if( z=='-' || z=='+' )
1874
- {
1875
- ss += z;
1876
- s >> z; // we're reading a next character (white characters can be ommited)
1877
- }
1878
-
1879
- // we're reading only digits (base=10)
1880
- while( s.good() && Misc::CharToDigit(z, 10)>=0 )
1881
- {
1882
- ss += z;
1883
- z = static_cast<char_type>(s.get());
1884
- }
1885
-
1886
- // we're leaving the last readed character
1887
- // (it's not belonging to the value)
1888
- s.unget();
1889
-
1890
- l.FromString(ss);
1891
-
1892
- return s;
1893
- }
1894
-
1895
-
1896
- public:
1897
-
1898
- /*!
1899
- input from standard streams
1900
- */
1901
- friend std::istream & operator>>(std::istream & s, Int<value_size> & l)
1902
- {
1903
- return InputFromStream<std::istream, std::string, char>(s, l);
1904
- }
1905
-
1906
-
1907
- #ifndef TTMATH_DONT_USE_WCHAR
1908
-
1909
- /*!
1910
- input from standard streams
1911
- */
1912
- friend std::wistream & operator>>(std::wistream & s, Int<value_size> & l)
1913
- {
1914
- return InputFromStream<std::wistream, std::wstring, wchar_t>(s, l);
1915
- }
1916
- #endif
1917
-
1918
-
1919
- };
1920
-
1921
- } // namespace
1922
-
1923
- #endif