diff --git a/src/minecraft/net/minecraft/client/Minecraft.java b/src/minecraft/net/minecraft/client/Minecraft.java index 7626b75..4a81a0c 100644 --- a/src/minecraft/net/minecraft/client/Minecraft.java +++ b/src/minecraft/net/minecraft/client/Minecraft.java @@ -9,7 +9,7 @@ import java.awt.Frame; import java.awt.Graphics; import java.io.File; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.nio.ByteBuffer; import java.text.DecimalFormat; import java.util.HashMap; diff --git a/src/minecraft/net/minecraft/server/MinecraftServer.java b/src/minecraft/net/minecraft/server/MinecraftServer.java index 7588912..4d88a43 100644 --- a/src/minecraft/net/minecraft/server/MinecraftServer.java +++ b/src/minecraft/net/minecraft/server/MinecraftServer.java @@ -3,7 +3,7 @@ package net.minecraft.server; import java.awt.GraphicsEnvironment; import java.io.File; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.security.KeyPair; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -21,6 +21,7 @@ import net.minecraft.src.ChunkCoordinates; import net.minecraft.src.CommandBase; import net.minecraft.src.ConvertProgressUpdater; import net.minecraft.src.CrashReport; +import net.minecraft.src.DedicatedServer; import net.minecraft.src.DemoWorldServer; import net.minecraft.src.EnumGameType; import net.minecraft.src.ICommandManager; @@ -41,6 +42,7 @@ import net.minecraft.src.RConConsoleSource; import net.minecraft.src.ReportedException; import net.minecraft.src.ServerCommandManager; import net.minecraft.src.ServerConfigurationManager; +import net.minecraft.src.StatList; import net.minecraft.src.StringTranslate; import net.minecraft.src.StringUtils; import net.minecraft.src.ThreadServerApplication; @@ -1242,4 +1244,9 @@ public abstract class MinecraftServer implements Runnable, IPlayerUsage, IComman { return par0MinecraftServer.serverConfigManager; } + + public static void main(String[] args) { + StatList.func_75919_a(); + new Thread(new DedicatedServer(new File("."))).start(); + } } diff --git a/src/minecraft/net/minecraft/src/AnvilChunkLoader.java b/src/minecraft/net/minecraft/src/AnvilChunkLoader.java index 392f8ba..71eafec 100644 --- a/src/minecraft/net/minecraft/src/AnvilChunkLoader.java +++ b/src/minecraft/net/minecraft/src/AnvilChunkLoader.java @@ -4,7 +4,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/AxisAlignedBB.java b/src/minecraft/net/minecraft/src/AxisAlignedBB.java index abf55d9..769b55f 100644 --- a/src/minecraft/net/minecraft/src/AxisAlignedBB.java +++ b/src/minecraft/net/minecraft/src/AxisAlignedBB.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class AxisAlignedBB { diff --git a/src/minecraft/net/minecraft/src/BiomeCache.java b/src/minecraft/net/minecraft/src/BiomeCache.java index a6d9391..582a734 100644 --- a/src/minecraft/net/minecraft/src/BiomeCache.java +++ b/src/minecraft/net/minecraft/src/BiomeCache.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/BiomeCacheBlock.java b/src/minecraft/net/minecraft/src/BiomeCacheBlock.java index ab7302f..8e50aba 100644 --- a/src/minecraft/net/minecraft/src/BiomeCacheBlock.java +++ b/src/minecraft/net/minecraft/src/BiomeCacheBlock.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BiomeCacheBlock { diff --git a/src/minecraft/net/minecraft/src/BiomeDecorator.java b/src/minecraft/net/minecraft/src/BiomeDecorator.java index 59c60c7..6bbf300 100644 --- a/src/minecraft/net/minecraft/src/BiomeDecorator.java +++ b/src/minecraft/net/minecraft/src/BiomeDecorator.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BiomeDecorator diff --git a/src/minecraft/net/minecraft/src/BiomeEndDecorator.java b/src/minecraft/net/minecraft/src/BiomeEndDecorator.java index f01ec2e..b6f1ac5 100644 --- a/src/minecraft/net/minecraft/src/BiomeEndDecorator.java +++ b/src/minecraft/net/minecraft/src/BiomeEndDecorator.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BiomeEndDecorator extends BiomeDecorator { diff --git a/src/minecraft/net/minecraft/src/BiomeGenBase.java b/src/minecraft/net/minecraft/src/BiomeGenBase.java index 2847a62..43a5db9 100644 --- a/src/minecraft/net/minecraft/src/BiomeGenBase.java +++ b/src/minecraft/net/minecraft/src/BiomeGenBase.java @@ -1,7 +1,7 @@ package net.minecraft.src; import java.awt.Color; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BiomeGenDesert.java b/src/minecraft/net/minecraft/src/BiomeGenDesert.java index 342248d..41cb8c1 100644 --- a/src/minecraft/net/minecraft/src/BiomeGenDesert.java +++ b/src/minecraft/net/minecraft/src/BiomeGenDesert.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BiomeGenDesert extends BiomeGenBase diff --git a/src/minecraft/net/minecraft/src/BiomeGenHills.java b/src/minecraft/net/minecraft/src/BiomeGenHills.java index 929bd4a..e3c2ac6 100644 --- a/src/minecraft/net/minecraft/src/BiomeGenHills.java +++ b/src/minecraft/net/minecraft/src/BiomeGenHills.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BiomeGenHills extends BiomeGenBase diff --git a/src/minecraft/net/minecraft/src/BiomeGenJungle.java b/src/minecraft/net/minecraft/src/BiomeGenJungle.java index d756ce5..376326a 100644 --- a/src/minecraft/net/minecraft/src/BiomeGenJungle.java +++ b/src/minecraft/net/minecraft/src/BiomeGenJungle.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BiomeGenJungle extends BiomeGenBase diff --git a/src/minecraft/net/minecraft/src/Block.java b/src/minecraft/net/minecraft/src/Block.java index 3b502c9..69d2ac8 100644 --- a/src/minecraft/net/minecraft/src/Block.java +++ b/src/minecraft/net/minecraft/src/Block.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockBed.java b/src/minecraft/net/minecraft/src/BlockBed.java index af2114c..828414c 100644 --- a/src/minecraft/net/minecraft/src/BlockBed.java +++ b/src/minecraft/net/minecraft/src/BlockBed.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockBreakable.java b/src/minecraft/net/minecraft/src/BlockBreakable.java index 04938fb..7136541 100644 --- a/src/minecraft/net/minecraft/src/BlockBreakable.java +++ b/src/minecraft/net/minecraft/src/BlockBreakable.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockBreakable extends Block { diff --git a/src/minecraft/net/minecraft/src/BlockBrewingStand.java b/src/minecraft/net/minecraft/src/BlockBrewingStand.java index d6b2ea7..f7c2045 100644 --- a/src/minecraft/net/minecraft/src/BlockBrewingStand.java +++ b/src/minecraft/net/minecraft/src/BlockBrewingStand.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockButton.java b/src/minecraft/net/minecraft/src/BlockButton.java index fd3823a..b6bd441 100644 --- a/src/minecraft/net/minecraft/src/BlockButton.java +++ b/src/minecraft/net/minecraft/src/BlockButton.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockButton extends Block diff --git a/src/minecraft/net/minecraft/src/BlockCactus.java b/src/minecraft/net/minecraft/src/BlockCactus.java index afd814b..d6e763a 100644 --- a/src/minecraft/net/minecraft/src/BlockCactus.java +++ b/src/minecraft/net/minecraft/src/BlockCactus.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockCactus extends Block diff --git a/src/minecraft/net/minecraft/src/BlockCake.java b/src/minecraft/net/minecraft/src/BlockCake.java index 2238401..968f9e2 100644 --- a/src/minecraft/net/minecraft/src/BlockCake.java +++ b/src/minecraft/net/minecraft/src/BlockCake.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockCake extends Block diff --git a/src/minecraft/net/minecraft/src/BlockCauldron.java b/src/minecraft/net/minecraft/src/BlockCauldron.java index d77e99b..2e7d270 100644 --- a/src/minecraft/net/minecraft/src/BlockCauldron.java +++ b/src/minecraft/net/minecraft/src/BlockCauldron.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockChest.java b/src/minecraft/net/minecraft/src/BlockChest.java index 1f975f9..f7037ef 100644 --- a/src/minecraft/net/minecraft/src/BlockChest.java +++ b/src/minecraft/net/minecraft/src/BlockChest.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockCocoa.java b/src/minecraft/net/minecraft/src/BlockCocoa.java index 8e7cfd5..175041a 100644 --- a/src/minecraft/net/minecraft/src/BlockCocoa.java +++ b/src/minecraft/net/minecraft/src/BlockCocoa.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockCocoa extends BlockDirectional diff --git a/src/minecraft/net/minecraft/src/BlockContainer.java b/src/minecraft/net/minecraft/src/BlockContainer.java index ecc74a9..90dec0a 100644 --- a/src/minecraft/net/minecraft/src/BlockContainer.java +++ b/src/minecraft/net/minecraft/src/BlockContainer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class BlockContainer extends Block { diff --git a/src/minecraft/net/minecraft/src/BlockCrops.java b/src/minecraft/net/minecraft/src/BlockCrops.java index 4291ad5..6086aee 100644 --- a/src/minecraft/net/minecraft/src/BlockCrops.java +++ b/src/minecraft/net/minecraft/src/BlockCrops.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockCrops extends BlockFlower diff --git a/src/minecraft/net/minecraft/src/BlockDeadBush.java b/src/minecraft/net/minecraft/src/BlockDeadBush.java index 2faab22..2731b7c 100644 --- a/src/minecraft/net/minecraft/src/BlockDeadBush.java +++ b/src/minecraft/net/minecraft/src/BlockDeadBush.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockDeadBush extends BlockFlower diff --git a/src/minecraft/net/minecraft/src/BlockDetectorRail.java b/src/minecraft/net/minecraft/src/BlockDetectorRail.java index b058be0..d3ab54b 100644 --- a/src/minecraft/net/minecraft/src/BlockDetectorRail.java +++ b/src/minecraft/net/minecraft/src/BlockDetectorRail.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockDispenser.java b/src/minecraft/net/minecraft/src/BlockDispenser.java index 49df014..3e30380 100644 --- a/src/minecraft/net/minecraft/src/BlockDispenser.java +++ b/src/minecraft/net/minecraft/src/BlockDispenser.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockDispenser extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockDoor.java b/src/minecraft/net/minecraft/src/BlockDoor.java index d79de36..7e43b42 100644 --- a/src/minecraft/net/minecraft/src/BlockDoor.java +++ b/src/minecraft/net/minecraft/src/BlockDoor.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockDoor extends Block diff --git a/src/minecraft/net/minecraft/src/BlockDragonEgg.java b/src/minecraft/net/minecraft/src/BlockDragonEgg.java index 18bba4a..241a571 100644 --- a/src/minecraft/net/minecraft/src/BlockDragonEgg.java +++ b/src/minecraft/net/minecraft/src/BlockDragonEgg.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockDragonEgg extends Block diff --git a/src/minecraft/net/minecraft/src/BlockEnchantmentTable.java b/src/minecraft/net/minecraft/src/BlockEnchantmentTable.java index ad676eb..df2c2d2 100644 --- a/src/minecraft/net/minecraft/src/BlockEnchantmentTable.java +++ b/src/minecraft/net/minecraft/src/BlockEnchantmentTable.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockEnchantmentTable extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockEndPortal.java b/src/minecraft/net/minecraft/src/BlockEndPortal.java index 6468ce9..df5ed11 100644 --- a/src/minecraft/net/minecraft/src/BlockEndPortal.java +++ b/src/minecraft/net/minecraft/src/BlockEndPortal.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockEndPortalFrame.java b/src/minecraft/net/minecraft/src/BlockEndPortalFrame.java index 6707a3c..3f8f49b 100644 --- a/src/minecraft/net/minecraft/src/BlockEndPortalFrame.java +++ b/src/minecraft/net/minecraft/src/BlockEndPortalFrame.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockEnderChest.java b/src/minecraft/net/minecraft/src/BlockEnderChest.java index c023d91..8086e5c 100644 --- a/src/minecraft/net/minecraft/src/BlockEnderChest.java +++ b/src/minecraft/net/minecraft/src/BlockEnderChest.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockEnderChest extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockEventData.java b/src/minecraft/net/minecraft/src/BlockEventData.java index b65a576..8340e3e 100644 --- a/src/minecraft/net/minecraft/src/BlockEventData.java +++ b/src/minecraft/net/minecraft/src/BlockEventData.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockEventData { diff --git a/src/minecraft/net/minecraft/src/BlockFarmland.java b/src/minecraft/net/minecraft/src/BlockFarmland.java index 72370d9..abc63f2 100644 --- a/src/minecraft/net/minecraft/src/BlockFarmland.java +++ b/src/minecraft/net/minecraft/src/BlockFarmland.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockFarmland extends Block diff --git a/src/minecraft/net/minecraft/src/BlockFence.java b/src/minecraft/net/minecraft/src/BlockFence.java index 01e027c..f357c9f 100644 --- a/src/minecraft/net/minecraft/src/BlockFence.java +++ b/src/minecraft/net/minecraft/src/BlockFence.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockFence extends Block { diff --git a/src/minecraft/net/minecraft/src/BlockFenceGate.java b/src/minecraft/net/minecraft/src/BlockFenceGate.java index deda8b2..8277a83 100644 --- a/src/minecraft/net/minecraft/src/BlockFenceGate.java +++ b/src/minecraft/net/minecraft/src/BlockFenceGate.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockFenceGate extends BlockDirectional { diff --git a/src/minecraft/net/minecraft/src/BlockFire.java b/src/minecraft/net/minecraft/src/BlockFire.java index 3517b25..e4fb6ae 100644 --- a/src/minecraft/net/minecraft/src/BlockFire.java +++ b/src/minecraft/net/minecraft/src/BlockFire.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockFire extends Block diff --git a/src/minecraft/net/minecraft/src/BlockFlower.java b/src/minecraft/net/minecraft/src/BlockFlower.java index 63b1e3b..d7a8df4 100644 --- a/src/minecraft/net/minecraft/src/BlockFlower.java +++ b/src/minecraft/net/minecraft/src/BlockFlower.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockFlower extends Block diff --git a/src/minecraft/net/minecraft/src/BlockFlowing.java b/src/minecraft/net/minecraft/src/BlockFlowing.java index 14af4e5..4bd1162 100644 --- a/src/minecraft/net/minecraft/src/BlockFlowing.java +++ b/src/minecraft/net/minecraft/src/BlockFlowing.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockFlowing extends BlockFluid diff --git a/src/minecraft/net/minecraft/src/BlockFluid.java b/src/minecraft/net/minecraft/src/BlockFluid.java index 70b0ca3..c226914 100644 --- a/src/minecraft/net/minecraft/src/BlockFluid.java +++ b/src/minecraft/net/minecraft/src/BlockFluid.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public abstract class BlockFluid extends Block diff --git a/src/minecraft/net/minecraft/src/BlockFurnace.java b/src/minecraft/net/minecraft/src/BlockFurnace.java index 7d8671e..554ed7e 100644 --- a/src/minecraft/net/minecraft/src/BlockFurnace.java +++ b/src/minecraft/net/minecraft/src/BlockFurnace.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockFurnace extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockGrass.java b/src/minecraft/net/minecraft/src/BlockGrass.java index 004b82f..b5e50a1 100644 --- a/src/minecraft/net/minecraft/src/BlockGrass.java +++ b/src/minecraft/net/minecraft/src/BlockGrass.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockGrass extends Block diff --git a/src/minecraft/net/minecraft/src/BlockHalfSlab.java b/src/minecraft/net/minecraft/src/BlockHalfSlab.java index 43aeae5..7b9c2bd 100644 --- a/src/minecraft/net/minecraft/src/BlockHalfSlab.java +++ b/src/minecraft/net/minecraft/src/BlockHalfSlab.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockIce.java b/src/minecraft/net/minecraft/src/BlockIce.java index 45045f2..351c229 100644 --- a/src/minecraft/net/minecraft/src/BlockIce.java +++ b/src/minecraft/net/minecraft/src/BlockIce.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockIce extends BlockBreakable diff --git a/src/minecraft/net/minecraft/src/BlockJukeBox.java b/src/minecraft/net/minecraft/src/BlockJukeBox.java index f3d8e18..4eaf7f8 100644 --- a/src/minecraft/net/minecraft/src/BlockJukeBox.java +++ b/src/minecraft/net/minecraft/src/BlockJukeBox.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockJukeBox extends BlockContainer { diff --git a/src/minecraft/net/minecraft/src/BlockLadder.java b/src/minecraft/net/minecraft/src/BlockLadder.java index c422b36..6c286d5 100644 --- a/src/minecraft/net/minecraft/src/BlockLadder.java +++ b/src/minecraft/net/minecraft/src/BlockLadder.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockLadder extends Block diff --git a/src/minecraft/net/minecraft/src/BlockLeaves.java b/src/minecraft/net/minecraft/src/BlockLeaves.java index 2ff0bb4..8ad39b1 100644 --- a/src/minecraft/net/minecraft/src/BlockLeaves.java +++ b/src/minecraft/net/minecraft/src/BlockLeaves.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockLeavesBase.java b/src/minecraft/net/minecraft/src/BlockLeavesBase.java index 1e81305..f9c8d14 100644 --- a/src/minecraft/net/minecraft/src/BlockLeavesBase.java +++ b/src/minecraft/net/minecraft/src/BlockLeavesBase.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockLeavesBase extends Block { diff --git a/src/minecraft/net/minecraft/src/BlockLever.java b/src/minecraft/net/minecraft/src/BlockLever.java index 069e476..45ad337 100644 --- a/src/minecraft/net/minecraft/src/BlockLever.java +++ b/src/minecraft/net/minecraft/src/BlockLever.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockLever extends Block { diff --git a/src/minecraft/net/minecraft/src/BlockLilyPad.java b/src/minecraft/net/minecraft/src/BlockLilyPad.java index 3f866f5..27a6840 100644 --- a/src/minecraft/net/minecraft/src/BlockLilyPad.java +++ b/src/minecraft/net/minecraft/src/BlockLilyPad.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public class BlockLilyPad extends BlockFlower diff --git a/src/minecraft/net/minecraft/src/BlockLockedChest.java b/src/minecraft/net/minecraft/src/BlockLockedChest.java index 2e86c4b..55d2bae 100644 --- a/src/minecraft/net/minecraft/src/BlockLockedChest.java +++ b/src/minecraft/net/minecraft/src/BlockLockedChest.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockLockedChest extends Block diff --git a/src/minecraft/net/minecraft/src/BlockLog.java b/src/minecraft/net/minecraft/src/BlockLog.java index 74b8828..1edf9d1 100644 --- a/src/minecraft/net/minecraft/src/BlockLog.java +++ b/src/minecraft/net/minecraft/src/BlockLog.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockMobSpawner.java b/src/minecraft/net/minecraft/src/BlockMobSpawner.java index 642ad6c..5e9309e 100644 --- a/src/minecraft/net/minecraft/src/BlockMobSpawner.java +++ b/src/minecraft/net/minecraft/src/BlockMobSpawner.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockMobSpawner extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockMushroom.java b/src/minecraft/net/minecraft/src/BlockMushroom.java index cdd2008..e55a581 100644 --- a/src/minecraft/net/minecraft/src/BlockMushroom.java +++ b/src/minecraft/net/minecraft/src/BlockMushroom.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockMushroom extends BlockFlower diff --git a/src/minecraft/net/minecraft/src/BlockMycelium.java b/src/minecraft/net/minecraft/src/BlockMycelium.java index d81a2b9..6b69fdc 100644 --- a/src/minecraft/net/minecraft/src/BlockMycelium.java +++ b/src/minecraft/net/minecraft/src/BlockMycelium.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockMycelium extends Block diff --git a/src/minecraft/net/minecraft/src/BlockNetherStalk.java b/src/minecraft/net/minecraft/src/BlockNetherStalk.java index 66426dc..e5de9d0 100644 --- a/src/minecraft/net/minecraft/src/BlockNetherStalk.java +++ b/src/minecraft/net/minecraft/src/BlockNetherStalk.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockNetherStalk extends BlockFlower diff --git a/src/minecraft/net/minecraft/src/BlockNote.java b/src/minecraft/net/minecraft/src/BlockNote.java index b084211..82bcc05 100644 --- a/src/minecraft/net/minecraft/src/BlockNote.java +++ b/src/minecraft/net/minecraft/src/BlockNote.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockNote extends BlockContainer { diff --git a/src/minecraft/net/minecraft/src/BlockOre.java b/src/minecraft/net/minecraft/src/BlockOre.java index bc2e827..3773bdc 100644 --- a/src/minecraft/net/minecraft/src/BlockOre.java +++ b/src/minecraft/net/minecraft/src/BlockOre.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockOre extends Block diff --git a/src/minecraft/net/minecraft/src/BlockPane.java b/src/minecraft/net/minecraft/src/BlockPane.java index 9d68e55..f16f0cf 100644 --- a/src/minecraft/net/minecraft/src/BlockPane.java +++ b/src/minecraft/net/minecraft/src/BlockPane.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockPistonBase.java b/src/minecraft/net/minecraft/src/BlockPistonBase.java index e727c33..20259e9 100644 --- a/src/minecraft/net/minecraft/src/BlockPistonBase.java +++ b/src/minecraft/net/minecraft/src/BlockPistonBase.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public class BlockPistonBase extends Block diff --git a/src/minecraft/net/minecraft/src/BlockPistonExtension.java b/src/minecraft/net/minecraft/src/BlockPistonExtension.java index 6079936..1639d43 100644 --- a/src/minecraft/net/minecraft/src/BlockPistonExtension.java +++ b/src/minecraft/net/minecraft/src/BlockPistonExtension.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockPistonMoving.java b/src/minecraft/net/minecraft/src/BlockPistonMoving.java index 724b0ec..08650c4 100644 --- a/src/minecraft/net/minecraft/src/BlockPistonMoving.java +++ b/src/minecraft/net/minecraft/src/BlockPistonMoving.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockPistonMoving extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockPortal.java b/src/minecraft/net/minecraft/src/BlockPortal.java index 16bdc54..de51e99 100644 --- a/src/minecraft/net/minecraft/src/BlockPortal.java +++ b/src/minecraft/net/minecraft/src/BlockPortal.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockPortal extends BlockBreakable diff --git a/src/minecraft/net/minecraft/src/BlockPressurePlate.java b/src/minecraft/net/minecraft/src/BlockPressurePlate.java index bdf4391..e929c23 100644 --- a/src/minecraft/net/minecraft/src/BlockPressurePlate.java +++ b/src/minecraft/net/minecraft/src/BlockPressurePlate.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockPumpkin.java b/src/minecraft/net/minecraft/src/BlockPumpkin.java index d8bf2ee..0c387f0 100644 --- a/src/minecraft/net/minecraft/src/BlockPumpkin.java +++ b/src/minecraft/net/minecraft/src/BlockPumpkin.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockPumpkin extends BlockDirectional { diff --git a/src/minecraft/net/minecraft/src/BlockRail.java b/src/minecraft/net/minecraft/src/BlockRail.java index 4e84bcb..c027ec5 100644 --- a/src/minecraft/net/minecraft/src/BlockRail.java +++ b/src/minecraft/net/minecraft/src/BlockRail.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockRail extends Block diff --git a/src/minecraft/net/minecraft/src/BlockRedstoneLight.java b/src/minecraft/net/minecraft/src/BlockRedstoneLight.java index fba695a..e7fd05e 100644 --- a/src/minecraft/net/minecraft/src/BlockRedstoneLight.java +++ b/src/minecraft/net/minecraft/src/BlockRedstoneLight.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockRedstoneLight extends Block diff --git a/src/minecraft/net/minecraft/src/BlockRedstoneOre.java b/src/minecraft/net/minecraft/src/BlockRedstoneOre.java index dbe9f18..af9608b 100644 --- a/src/minecraft/net/minecraft/src/BlockRedstoneOre.java +++ b/src/minecraft/net/minecraft/src/BlockRedstoneOre.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockRedstoneOre extends Block diff --git a/src/minecraft/net/minecraft/src/BlockRedstoneRepeater.java b/src/minecraft/net/minecraft/src/BlockRedstoneRepeater.java index 87acf41..a88893c 100644 --- a/src/minecraft/net/minecraft/src/BlockRedstoneRepeater.java +++ b/src/minecraft/net/minecraft/src/BlockRedstoneRepeater.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockRedstoneRepeater extends BlockDirectional diff --git a/src/minecraft/net/minecraft/src/BlockRedstoneTorch.java b/src/minecraft/net/minecraft/src/BlockRedstoneTorch.java index e93a7b8..2984d5a 100644 --- a/src/minecraft/net/minecraft/src/BlockRedstoneTorch.java +++ b/src/minecraft/net/minecraft/src/BlockRedstoneTorch.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/BlockRedstoneWire.java b/src/minecraft/net/minecraft/src/BlockRedstoneWire.java index 624c56d..6b9c9bd 100644 --- a/src/minecraft/net/minecraft/src/BlockRedstoneWire.java +++ b/src/minecraft/net/minecraft/src/BlockRedstoneWire.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/BlockReed.java b/src/minecraft/net/minecraft/src/BlockReed.java index f1ed7d8..3cb6151 100644 --- a/src/minecraft/net/minecraft/src/BlockReed.java +++ b/src/minecraft/net/minecraft/src/BlockReed.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockReed extends Block diff --git a/src/minecraft/net/minecraft/src/BlockSand.java b/src/minecraft/net/minecraft/src/BlockSand.java index a474997..de1d2d4 100644 --- a/src/minecraft/net/minecraft/src/BlockSand.java +++ b/src/minecraft/net/minecraft/src/BlockSand.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockSand extends Block diff --git a/src/minecraft/net/minecraft/src/BlockSapling.java b/src/minecraft/net/minecraft/src/BlockSapling.java index b35f159..09c8d7b 100644 --- a/src/minecraft/net/minecraft/src/BlockSapling.java +++ b/src/minecraft/net/minecraft/src/BlockSapling.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockSign.java b/src/minecraft/net/minecraft/src/BlockSign.java index d43d8b8..9405a8f 100644 --- a/src/minecraft/net/minecraft/src/BlockSign.java +++ b/src/minecraft/net/minecraft/src/BlockSign.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockSign extends BlockContainer diff --git a/src/minecraft/net/minecraft/src/BlockSilverfish.java b/src/minecraft/net/minecraft/src/BlockSilverfish.java index a0e244d..36e97d0 100644 --- a/src/minecraft/net/minecraft/src/BlockSilverfish.java +++ b/src/minecraft/net/minecraft/src/BlockSilverfish.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockSnow.java b/src/minecraft/net/minecraft/src/BlockSnow.java index 9de41d7..5e403a3 100644 --- a/src/minecraft/net/minecraft/src/BlockSnow.java +++ b/src/minecraft/net/minecraft/src/BlockSnow.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockSnow extends Block diff --git a/src/minecraft/net/minecraft/src/BlockSnowBlock.java b/src/minecraft/net/minecraft/src/BlockSnowBlock.java index 31bf72e..5572b34 100644 --- a/src/minecraft/net/minecraft/src/BlockSnowBlock.java +++ b/src/minecraft/net/minecraft/src/BlockSnowBlock.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockSnowBlock extends Block diff --git a/src/minecraft/net/minecraft/src/BlockStairs.java b/src/minecraft/net/minecraft/src/BlockStairs.java index 77c75f5..a78b4a3 100644 --- a/src/minecraft/net/minecraft/src/BlockStairs.java +++ b/src/minecraft/net/minecraft/src/BlockStairs.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockStationary.java b/src/minecraft/net/minecraft/src/BlockStationary.java index 9b52e5c..3656c39 100644 --- a/src/minecraft/net/minecraft/src/BlockStationary.java +++ b/src/minecraft/net/minecraft/src/BlockStationary.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockStationary extends BlockFluid diff --git a/src/minecraft/net/minecraft/src/BlockStem.java b/src/minecraft/net/minecraft/src/BlockStem.java index 2cde4e2..64aecd0 100644 --- a/src/minecraft/net/minecraft/src/BlockStem.java +++ b/src/minecraft/net/minecraft/src/BlockStem.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockStem extends BlockFlower diff --git a/src/minecraft/net/minecraft/src/BlockTNT.java b/src/minecraft/net/minecraft/src/BlockTNT.java index 873a86b..8b6530a 100644 --- a/src/minecraft/net/minecraft/src/BlockTNT.java +++ b/src/minecraft/net/minecraft/src/BlockTNT.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockTNT extends Block diff --git a/src/minecraft/net/minecraft/src/BlockTallGrass.java b/src/minecraft/net/minecraft/src/BlockTallGrass.java index 7d7f0c5..579ef3d 100644 --- a/src/minecraft/net/minecraft/src/BlockTallGrass.java +++ b/src/minecraft/net/minecraft/src/BlockTallGrass.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockTorch.java b/src/minecraft/net/minecraft/src/BlockTorch.java index 69f00d3..ead4413 100644 --- a/src/minecraft/net/minecraft/src/BlockTorch.java +++ b/src/minecraft/net/minecraft/src/BlockTorch.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockTorch extends Block diff --git a/src/minecraft/net/minecraft/src/BlockTrapDoor.java b/src/minecraft/net/minecraft/src/BlockTrapDoor.java index ce88e51..d68ac0f 100644 --- a/src/minecraft/net/minecraft/src/BlockTrapDoor.java +++ b/src/minecraft/net/minecraft/src/BlockTrapDoor.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockTrapDoor extends Block { diff --git a/src/minecraft/net/minecraft/src/BlockTripWire.java b/src/minecraft/net/minecraft/src/BlockTripWire.java index 7377a3b..c77b969 100644 --- a/src/minecraft/net/minecraft/src/BlockTripWire.java +++ b/src/minecraft/net/minecraft/src/BlockTripWire.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/BlockTripWireSource.java b/src/minecraft/net/minecraft/src/BlockTripWireSource.java index a154010..320daaa 100644 --- a/src/minecraft/net/minecraft/src/BlockTripWireSource.java +++ b/src/minecraft/net/minecraft/src/BlockTripWireSource.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockTripWireSource extends Block diff --git a/src/minecraft/net/minecraft/src/BlockVine.java b/src/minecraft/net/minecraft/src/BlockVine.java index 5d76988..a69928a 100644 --- a/src/minecraft/net/minecraft/src/BlockVine.java +++ b/src/minecraft/net/minecraft/src/BlockVine.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class BlockVine extends Block diff --git a/src/minecraft/net/minecraft/src/BlockWorkbench.java b/src/minecraft/net/minecraft/src/BlockWorkbench.java index abdbf2a..5e44080 100644 --- a/src/minecraft/net/minecraft/src/BlockWorkbench.java +++ b/src/minecraft/net/minecraft/src/BlockWorkbench.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class BlockWorkbench extends Block { diff --git a/src/minecraft/net/minecraft/src/Chunk.java b/src/minecraft/net/minecraft/src/Chunk.java index 3f2d32a..1a914ac 100644 --- a/src/minecraft/net/minecraft/src/Chunk.java +++ b/src/minecraft/net/minecraft/src/Chunk.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; diff --git a/src/minecraft/net/minecraft/src/ChunkCache.java b/src/minecraft/net/minecraft/src/ChunkCache.java index d8adcea..035548f 100644 --- a/src/minecraft/net/minecraft/src/ChunkCache.java +++ b/src/minecraft/net/minecraft/src/ChunkCache.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; // The most evil class public class ChunkCache implements IBlockAccess diff --git a/src/minecraft/net/minecraft/src/ChunkCoordIntPair.java b/src/minecraft/net/minecraft/src/ChunkCoordIntPair.java index b65e66c..56f406b 100644 --- a/src/minecraft/net/minecraft/src/ChunkCoordIntPair.java +++ b/src/minecraft/net/minecraft/src/ChunkCoordIntPair.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ChunkCoordIntPair { diff --git a/src/minecraft/net/minecraft/src/ChunkCoordinates.java b/src/minecraft/net/minecraft/src/ChunkCoordinates.java index 52d4fd1..8b13c63 100644 --- a/src/minecraft/net/minecraft/src/ChunkCoordinates.java +++ b/src/minecraft/net/minecraft/src/ChunkCoordinates.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ChunkCoordinates implements Comparable { diff --git a/src/minecraft/net/minecraft/src/ChunkLoader.java b/src/minecraft/net/minecraft/src/ChunkLoader.java index feb0b45..928b771 100644 --- a/src/minecraft/net/minecraft/src/ChunkLoader.java +++ b/src/minecraft/net/minecraft/src/ChunkLoader.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ChunkLoader { diff --git a/src/minecraft/net/minecraft/src/ChunkPosition.java b/src/minecraft/net/minecraft/src/ChunkPosition.java index 7d70ab5..6e22207 100644 --- a/src/minecraft/net/minecraft/src/ChunkPosition.java +++ b/src/minecraft/net/minecraft/src/ChunkPosition.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ChunkPosition { diff --git a/src/minecraft/net/minecraft/src/ChunkProviderClient.java b/src/minecraft/net/minecraft/src/ChunkProviderClient.java index 7c00914..f8e1ea2 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderClient.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderClient.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/ChunkProviderEnd.java b/src/minecraft/net/minecraft/src/ChunkProviderEnd.java index 2213248..d9eeeed 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderEnd.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderEnd.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ChunkProviderFlat.java b/src/minecraft/net/minecraft/src/ChunkProviderFlat.java index 558c274..4e7d337 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderFlat.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderFlat.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java b/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java index ef9fdb3..3140433 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderGenerate.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; @@ -520,8 +520,8 @@ public class ChunkProviderGenerate implements IChunkProvider ; } } - - var6.decorate(this.worldObj, this.rand, var4, var5); +// FIXME: java.lang.RuntimeException: Already decorating!! +// var6.decorate(this.worldObj, this.rand, var4, var5); SpawnerAnimals.performWorldGenSpawning(this.worldObj, var6, var4.add(BigInteger.valueOf(8)), var5.add(BigInteger.valueOf(8)), 16, 16, this.rand); var4 = var4.add(BigInteger.valueOf(8)); var5 = var5.add(BigInteger.valueOf(8)); diff --git a/src/minecraft/net/minecraft/src/ChunkProviderHell.java b/src/minecraft/net/minecraft/src/ChunkProviderHell.java index 3f3ed46..13b4c07 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderHell.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderHell.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ChunkProviderServer.java b/src/minecraft/net/minecraft/src/ChunkProviderServer.java index ef322f7..b268d8f 100644 --- a/src/minecraft/net/minecraft/src/ChunkProviderServer.java +++ b/src/minecraft/net/minecraft/src/ChunkProviderServer.java @@ -1,7 +1,7 @@ package net.minecraft.src; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; diff --git a/src/minecraft/net/minecraft/src/CommandBase.java b/src/minecraft/net/minecraft/src/CommandBase.java index e54a582..eab09e0 100644 --- a/src/minecraft/net/minecraft/src/CommandBase.java +++ b/src/minecraft/net/minecraft/src/CommandBase.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/CommandServerTp.java b/src/minecraft/net/minecraft/src/CommandServerTp.java index ff6bd32..4532576 100644 --- a/src/minecraft/net/minecraft/src/CommandServerTp.java +++ b/src/minecraft/net/minecraft/src/CommandServerTp.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import net.minecraft.server.MinecraftServer; diff --git a/src/minecraft/net/minecraft/src/ComponentMineshaftCorridor.java b/src/minecraft/net/minecraft/src/ComponentMineshaftCorridor.java index a475cf6..5a11e0a 100644 --- a/src/minecraft/net/minecraft/src/ComponentMineshaftCorridor.java +++ b/src/minecraft/net/minecraft/src/ComponentMineshaftCorridor.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ComponentNetherBridgeEntrance.java b/src/minecraft/net/minecraft/src/ComponentNetherBridgeEntrance.java index 3931c81..e5c2df8 100644 --- a/src/minecraft/net/minecraft/src/ComponentNetherBridgeEntrance.java +++ b/src/minecraft/net/minecraft/src/ComponentNetherBridgeEntrance.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ComponentNetherBridgeThrone.java b/src/minecraft/net/minecraft/src/ComponentNetherBridgeThrone.java index 7a1aa3b..7cb7b2d 100644 --- a/src/minecraft/net/minecraft/src/ComponentNetherBridgeThrone.java +++ b/src/minecraft/net/minecraft/src/ComponentNetherBridgeThrone.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ComponentScatteredFeature.java b/src/minecraft/net/minecraft/src/ComponentScatteredFeature.java index 9753f76..de352f5 100644 --- a/src/minecraft/net/minecraft/src/ComponentScatteredFeature.java +++ b/src/minecraft/net/minecraft/src/ComponentScatteredFeature.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; abstract class ComponentScatteredFeature extends StructureComponent diff --git a/src/minecraft/net/minecraft/src/ComponentStrongholdPortalRoom.java b/src/minecraft/net/minecraft/src/ComponentStrongholdPortalRoom.java index d81e7ae..82aee80 100644 --- a/src/minecraft/net/minecraft/src/ComponentStrongholdPortalRoom.java +++ b/src/minecraft/net/minecraft/src/ComponentStrongholdPortalRoom.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ComponentVillage.java b/src/minecraft/net/minecraft/src/ComponentVillage.java index c038a72..ad8f161 100644 --- a/src/minecraft/net/minecraft/src/ComponentVillage.java +++ b/src/minecraft/net/minecraft/src/ComponentVillage.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ComponentVillagePathGen.java b/src/minecraft/net/minecraft/src/ComponentVillagePathGen.java index 741ee85..4b985a9 100644 --- a/src/minecraft/net/minecraft/src/ComponentVillagePathGen.java +++ b/src/minecraft/net/minecraft/src/ComponentVillagePathGen.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ComponentVillageStartPiece.java b/src/minecraft/net/minecraft/src/ComponentVillageStartPiece.java index 07fe64c..a5a1be0 100644 --- a/src/minecraft/net/minecraft/src/ComponentVillageStartPiece.java +++ b/src/minecraft/net/minecraft/src/ComponentVillageStartPiece.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ContainerEnchantment.java b/src/minecraft/net/minecraft/src/ContainerEnchantment.java index 18a37fc..0dec938 100644 --- a/src/minecraft/net/minecraft/src/ContainerEnchantment.java +++ b/src/minecraft/net/minecraft/src/ContainerEnchantment.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ContainerWorkbench.java b/src/minecraft/net/minecraft/src/ContainerWorkbench.java index eba1988..fadb78a 100644 --- a/src/minecraft/net/minecraft/src/ContainerWorkbench.java +++ b/src/minecraft/net/minecraft/src/ContainerWorkbench.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ContainerWorkbench extends Container { diff --git a/src/minecraft/net/minecraft/src/DataWatcher.java b/src/minecraft/net/minecraft/src/DataWatcher.java index 50d7fd8..2c9db8f 100644 --- a/src/minecraft/net/minecraft/src/DataWatcher.java +++ b/src/minecraft/net/minecraft/src/DataWatcher.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/DemoWorldManager.java b/src/minecraft/net/minecraft/src/DemoWorldManager.java index db87305..759fc04 100644 --- a/src/minecraft/net/minecraft/src/DemoWorldManager.java +++ b/src/minecraft/net/minecraft/src/DemoWorldManager.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class DemoWorldManager extends ItemInWorldManager { diff --git a/src/minecraft/net/minecraft/src/DerivedWorldInfo.java b/src/minecraft/net/minecraft/src/DerivedWorldInfo.java index 723bb66..e3757cd 100644 --- a/src/minecraft/net/minecraft/src/DerivedWorldInfo.java +++ b/src/minecraft/net/minecraft/src/DerivedWorldInfo.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class DerivedWorldInfo extends WorldInfo { diff --git a/src/minecraft/net/minecraft/src/DestroyBlockProgress.java b/src/minecraft/net/minecraft/src/DestroyBlockProgress.java index 74d0e7e..3af84b3 100644 --- a/src/minecraft/net/minecraft/src/DestroyBlockProgress.java +++ b/src/minecraft/net/minecraft/src/DestroyBlockProgress.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class DestroyBlockProgress { diff --git a/src/minecraft/net/minecraft/src/EffectRenderer.java b/src/minecraft/net/minecraft/src/EffectRenderer.java index ef59783..1d1777d 100644 --- a/src/minecraft/net/minecraft/src/EffectRenderer.java +++ b/src/minecraft/net/minecraft/src/EffectRenderer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/EmptyChunk.java b/src/minecraft/net/minecraft/src/EmptyChunk.java index 7494629..6f27961 100644 --- a/src/minecraft/net/minecraft/src/EmptyChunk.java +++ b/src/minecraft/net/minecraft/src/EmptyChunk.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/Entity.java b/src/minecraft/net/minecraft/src/Entity.java index 336eb9e..5a5b906 100644 --- a/src/minecraft/net/minecraft/src/Entity.java +++ b/src/minecraft/net/minecraft/src/Entity.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/EntityAIDoorInteract.java b/src/minecraft/net/minecraft/src/EntityAIDoorInteract.java index acf2282..50f5f05 100644 --- a/src/minecraft/net/minecraft/src/EntityAIDoorInteract.java +++ b/src/minecraft/net/minecraft/src/EntityAIDoorInteract.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class EntityAIDoorInteract extends EntityAIBase { diff --git a/src/minecraft/net/minecraft/src/EntityAIEatGrass.java b/src/minecraft/net/minecraft/src/EntityAIEatGrass.java index 7863917..2507956 100644 --- a/src/minecraft/net/minecraft/src/EntityAIEatGrass.java +++ b/src/minecraft/net/minecraft/src/EntityAIEatGrass.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityAIEatGrass extends EntityAIBase { diff --git a/src/minecraft/net/minecraft/src/EntityAIFleeSun.java b/src/minecraft/net/minecraft/src/EntityAIFleeSun.java index 070e07e..fe35ab3 100644 --- a/src/minecraft/net/minecraft/src/EntityAIFleeSun.java +++ b/src/minecraft/net/minecraft/src/EntityAIFleeSun.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class EntityAIFleeSun extends EntityAIBase diff --git a/src/minecraft/net/minecraft/src/EntityAIFollowOwner.java b/src/minecraft/net/minecraft/src/EntityAIFollowOwner.java index ed16896..52e88f6 100644 --- a/src/minecraft/net/minecraft/src/EntityAIFollowOwner.java +++ b/src/minecraft/net/minecraft/src/EntityAIFollowOwner.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityAIFollowOwner extends EntityAIBase { diff --git a/src/minecraft/net/minecraft/src/EntityAIMoveIndoors.java b/src/minecraft/net/minecraft/src/EntityAIMoveIndoors.java index 5d028c2..dce1aa9 100644 --- a/src/minecraft/net/minecraft/src/EntityAIMoveIndoors.java +++ b/src/minecraft/net/minecraft/src/EntityAIMoveIndoors.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityAIMoveIndoors extends EntityAIBase { diff --git a/src/minecraft/net/minecraft/src/EntityAIMoveThroughVillage.java b/src/minecraft/net/minecraft/src/EntityAIMoveThroughVillage.java index 8972807..efa5fca 100644 --- a/src/minecraft/net/minecraft/src/EntityAIMoveThroughVillage.java +++ b/src/minecraft/net/minecraft/src/EntityAIMoveThroughVillage.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityAIOcelotSit.java b/src/minecraft/net/minecraft/src/EntityAIOcelotSit.java index 5fa7a87..cbb4d98 100644 --- a/src/minecraft/net/minecraft/src/EntityAIOcelotSit.java +++ b/src/minecraft/net/minecraft/src/EntityAIOcelotSit.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityAIOcelotSit extends EntityAIBase { diff --git a/src/minecraft/net/minecraft/src/EntityAITarget.java b/src/minecraft/net/minecraft/src/EntityAITarget.java index 4406d46..e0710a3 100644 --- a/src/minecraft/net/minecraft/src/EntityAITarget.java +++ b/src/minecraft/net/minecraft/src/EntityAITarget.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class EntityAITarget extends EntityAIBase { diff --git a/src/minecraft/net/minecraft/src/EntityAnimal.java b/src/minecraft/net/minecraft/src/EntityAnimal.java index 3b86ec0..23a00ea 100644 --- a/src/minecraft/net/minecraft/src/EntityAnimal.java +++ b/src/minecraft/net/minecraft/src/EntityAnimal.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityArrow.java b/src/minecraft/net/minecraft/src/EntityArrow.java index 2391ab6..e7808e3 100644 --- a/src/minecraft/net/minecraft/src/EntityArrow.java +++ b/src/minecraft/net/minecraft/src/EntityArrow.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityBoat.java b/src/minecraft/net/minecraft/src/EntityBoat.java index d452c7b..6048f5e 100644 --- a/src/minecraft/net/minecraft/src/EntityBoat.java +++ b/src/minecraft/net/minecraft/src/EntityBoat.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityClientPlayerMP.java b/src/minecraft/net/minecraft/src/EntityClientPlayerMP.java index 2ab1ca1..647a7c7 100644 --- a/src/minecraft/net/minecraft/src/EntityClientPlayerMP.java +++ b/src/minecraft/net/minecraft/src/EntityClientPlayerMP.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import net.minecraft.client.Minecraft; diff --git a/src/minecraft/net/minecraft/src/EntityCreature.java b/src/minecraft/net/minecraft/src/EntityCreature.java index 3a0e24f..3841a10 100644 --- a/src/minecraft/net/minecraft/src/EntityCreature.java +++ b/src/minecraft/net/minecraft/src/EntityCreature.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class EntityCreature extends EntityLiving { diff --git a/src/minecraft/net/minecraft/src/EntityDiggingFX.java b/src/minecraft/net/minecraft/src/EntityDiggingFX.java index 257c66c..5473f8d 100644 --- a/src/minecraft/net/minecraft/src/EntityDiggingFX.java +++ b/src/minecraft/net/minecraft/src/EntityDiggingFX.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityDiggingFX extends EntityFX { diff --git a/src/minecraft/net/minecraft/src/EntityDragon.java b/src/minecraft/net/minecraft/src/EntityDragon.java index d994da8..81a4b38 100644 --- a/src/minecraft/net/minecraft/src/EntityDragon.java +++ b/src/minecraft/net/minecraft/src/EntityDragon.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityEnderCrystal.java b/src/minecraft/net/minecraft/src/EntityEnderCrystal.java index f4a7300..eb9b8b1 100644 --- a/src/minecraft/net/minecraft/src/EntityEnderCrystal.java +++ b/src/minecraft/net/minecraft/src/EntityEnderCrystal.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityEnderCrystal extends Entity { diff --git a/src/minecraft/net/minecraft/src/EntityEnderman.java b/src/minecraft/net/minecraft/src/EntityEnderman.java index c2b2ccb..d341ff8 100644 --- a/src/minecraft/net/minecraft/src/EntityEnderman.java +++ b/src/minecraft/net/minecraft/src/EntityEnderman.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityEnderman extends EntityMob { diff --git a/src/minecraft/net/minecraft/src/EntityFallingSand.java b/src/minecraft/net/minecraft/src/EntityFallingSand.java index e7b7324..eab0e16 100644 --- a/src/minecraft/net/minecraft/src/EntityFallingSand.java +++ b/src/minecraft/net/minecraft/src/EntityFallingSand.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityFallingSand extends Entity { diff --git a/src/minecraft/net/minecraft/src/EntityFireball.java b/src/minecraft/net/minecraft/src/EntityFireball.java index f902372..9482398 100644 --- a/src/minecraft/net/minecraft/src/EntityFireball.java +++ b/src/minecraft/net/minecraft/src/EntityFireball.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityFishHook.java b/src/minecraft/net/minecraft/src/EntityFishHook.java index 359e328..38b7f95 100644 --- a/src/minecraft/net/minecraft/src/EntityFishHook.java +++ b/src/minecraft/net/minecraft/src/EntityFishHook.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityGiantZombie.java b/src/minecraft/net/minecraft/src/EntityGiantZombie.java index d08f01c..92183ec 100644 --- a/src/minecraft/net/minecraft/src/EntityGiantZombie.java +++ b/src/minecraft/net/minecraft/src/EntityGiantZombie.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityGiantZombie extends EntityMob { diff --git a/src/minecraft/net/minecraft/src/EntityIronGolem.java b/src/minecraft/net/minecraft/src/EntityIronGolem.java index 327ace1..c5d4638 100644 --- a/src/minecraft/net/minecraft/src/EntityIronGolem.java +++ b/src/minecraft/net/minecraft/src/EntityIronGolem.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityIronGolem extends EntityGolem { diff --git a/src/minecraft/net/minecraft/src/EntityLightningBolt.java b/src/minecraft/net/minecraft/src/EntityLightningBolt.java index f3ff792..5597518 100644 --- a/src/minecraft/net/minecraft/src/EntityLightningBolt.java +++ b/src/minecraft/net/minecraft/src/EntityLightningBolt.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityLiving.java b/src/minecraft/net/minecraft/src/EntityLiving.java index 726c9fd..54d559f 100644 --- a/src/minecraft/net/minecraft/src/EntityLiving.java +++ b/src/minecraft/net/minecraft/src/EntityLiving.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/EntityMinecart.java b/src/minecraft/net/minecraft/src/EntityMinecart.java index e0463b8..97dd15c 100644 --- a/src/minecraft/net/minecraft/src/EntityMinecart.java +++ b/src/minecraft/net/minecraft/src/EntityMinecart.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public class EntityMinecart extends Entity implements IInventory diff --git a/src/minecraft/net/minecraft/src/EntityMob.java b/src/minecraft/net/minecraft/src/EntityMob.java index 689b2d8..c08ee99 100644 --- a/src/minecraft/net/minecraft/src/EntityMob.java +++ b/src/minecraft/net/minecraft/src/EntityMob.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class EntityMob extends EntityCreature implements IMob { diff --git a/src/minecraft/net/minecraft/src/EntityOcelot.java b/src/minecraft/net/minecraft/src/EntityOcelot.java index b2dffbd..dfb1467 100644 --- a/src/minecraft/net/minecraft/src/EntityOcelot.java +++ b/src/minecraft/net/minecraft/src/EntityOcelot.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntityOcelot extends EntityTameable { diff --git a/src/minecraft/net/minecraft/src/EntityPainting.java b/src/minecraft/net/minecraft/src/EntityPainting.java index 45a35d2..4a0c69e 100644 --- a/src/minecraft/net/minecraft/src/EntityPainting.java +++ b/src/minecraft/net/minecraft/src/EntityPainting.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityPlayer.java b/src/minecraft/net/minecraft/src/EntityPlayer.java index 4aabc1e..2d2a550 100644 --- a/src/minecraft/net/minecraft/src/EntityPlayer.java +++ b/src/minecraft/net/minecraft/src/EntityPlayer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntityPlayerMP.java b/src/minecraft/net/minecraft/src/EntityPlayerMP.java index 551e085..57a6fb4 100644 --- a/src/minecraft/net/minecraft/src/EntityPlayerMP.java +++ b/src/minecraft/net/minecraft/src/EntityPlayerMP.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; diff --git a/src/minecraft/net/minecraft/src/EntityPlayerSP.java b/src/minecraft/net/minecraft/src/EntityPlayerSP.java index 08c1079..d1e1c11 100644 --- a/src/minecraft/net/minecraft/src/EntityPlayerSP.java +++ b/src/minecraft/net/minecraft/src/EntityPlayerSP.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import net.minecraft.client.Minecraft; diff --git a/src/minecraft/net/minecraft/src/EntityRenderer.java b/src/minecraft/net/minecraft/src/EntityRenderer.java index 3b87dd8..aace12a 100644 --- a/src/minecraft/net/minecraft/src/EntityRenderer.java +++ b/src/minecraft/net/minecraft/src/EntityRenderer.java @@ -1,7 +1,7 @@ package net.minecraft.src; import java.awt.image.BufferedImage; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.nio.FloatBuffer; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/EntitySilverfish.java b/src/minecraft/net/minecraft/src/EntitySilverfish.java index 5a1d1a5..0247c41 100644 --- a/src/minecraft/net/minecraft/src/EntitySilverfish.java +++ b/src/minecraft/net/minecraft/src/EntitySilverfish.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntitySilverfish extends EntityMob { diff --git a/src/minecraft/net/minecraft/src/EntitySmallFireball.java b/src/minecraft/net/minecraft/src/EntitySmallFireball.java index 3dfbd62..aed9db2 100644 --- a/src/minecraft/net/minecraft/src/EntitySmallFireball.java +++ b/src/minecraft/net/minecraft/src/EntitySmallFireball.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntitySmallFireball extends EntityFireball { diff --git a/src/minecraft/net/minecraft/src/EntitySnowman.java b/src/minecraft/net/minecraft/src/EntitySnowman.java index 9d963b5..7253b99 100644 --- a/src/minecraft/net/minecraft/src/EntitySnowman.java +++ b/src/minecraft/net/minecraft/src/EntitySnowman.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class EntitySnowman extends EntityGolem { diff --git a/src/minecraft/net/minecraft/src/EntityThrowable.java b/src/minecraft/net/minecraft/src/EntityThrowable.java index 60987a6..8934468 100644 --- a/src/minecraft/net/minecraft/src/EntityThrowable.java +++ b/src/minecraft/net/minecraft/src/EntityThrowable.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/Explosion.java b/src/minecraft/net/minecraft/src/Explosion.java index a46d0a8..590078a 100644 --- a/src/minecraft/net/minecraft/src/Explosion.java +++ b/src/minecraft/net/minecraft/src/Explosion.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; diff --git a/src/minecraft/net/minecraft/src/Facing.java b/src/minecraft/net/minecraft/src/Facing.java index 1fa7a70..d0bc1a4 100644 --- a/src/minecraft/net/minecraft/src/Facing.java +++ b/src/minecraft/net/minecraft/src/Facing.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Facing { private static final BigInteger ZERO = BigInteger.ZERO, diff --git a/src/minecraft/net/minecraft/src/GenLayer.java b/src/minecraft/net/minecraft/src/GenLayer.java index b39e9f4..3e4b170 100644 --- a/src/minecraft/net/minecraft/src/GenLayer.java +++ b/src/minecraft/net/minecraft/src/GenLayer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerAddIsland.java b/src/minecraft/net/minecraft/src/GenLayerAddIsland.java index 15eb6d1..54bc21b 100644 --- a/src/minecraft/net/minecraft/src/GenLayerAddIsland.java +++ b/src/minecraft/net/minecraft/src/GenLayerAddIsland.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerAddIsland extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerAddMushroomIsland.java b/src/minecraft/net/minecraft/src/GenLayerAddMushroomIsland.java index ea111c8..7cfbaf9 100644 --- a/src/minecraft/net/minecraft/src/GenLayerAddMushroomIsland.java +++ b/src/minecraft/net/minecraft/src/GenLayerAddMushroomIsland.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerAddMushroomIsland extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerAddSnow.java b/src/minecraft/net/minecraft/src/GenLayerAddSnow.java index ab9216e..7ef6085 100644 --- a/src/minecraft/net/minecraft/src/GenLayerAddSnow.java +++ b/src/minecraft/net/minecraft/src/GenLayerAddSnow.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerAddSnow extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerBiome.java b/src/minecraft/net/minecraft/src/GenLayerBiome.java index 6f64c44..57f9c70 100644 --- a/src/minecraft/net/minecraft/src/GenLayerBiome.java +++ b/src/minecraft/net/minecraft/src/GenLayerBiome.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerBiome extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerFuzzyZoom.java b/src/minecraft/net/minecraft/src/GenLayerFuzzyZoom.java index 83340e9..15b580d 100644 --- a/src/minecraft/net/minecraft/src/GenLayerFuzzyZoom.java +++ b/src/minecraft/net/minecraft/src/GenLayerFuzzyZoom.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerFuzzyZoom extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerHills.java b/src/minecraft/net/minecraft/src/GenLayerHills.java index e8a7cb6..ca1ba32 100644 --- a/src/minecraft/net/minecraft/src/GenLayerHills.java +++ b/src/minecraft/net/minecraft/src/GenLayerHills.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerHills extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerIsland.java b/src/minecraft/net/minecraft/src/GenLayerIsland.java index 9312b6a..68e45bc 100644 --- a/src/minecraft/net/minecraft/src/GenLayerIsland.java +++ b/src/minecraft/net/minecraft/src/GenLayerIsland.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerIsland extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerRiver.java b/src/minecraft/net/minecraft/src/GenLayerRiver.java index 688701b..607b60b 100644 --- a/src/minecraft/net/minecraft/src/GenLayerRiver.java +++ b/src/minecraft/net/minecraft/src/GenLayerRiver.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerRiver extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerRiverInit.java b/src/minecraft/net/minecraft/src/GenLayerRiverInit.java index c183f67..a211348 100644 --- a/src/minecraft/net/minecraft/src/GenLayerRiverInit.java +++ b/src/minecraft/net/minecraft/src/GenLayerRiverInit.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerRiverInit extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerRiverMix.java b/src/minecraft/net/minecraft/src/GenLayerRiverMix.java index 953fc95..a631993 100644 --- a/src/minecraft/net/minecraft/src/GenLayerRiverMix.java +++ b/src/minecraft/net/minecraft/src/GenLayerRiverMix.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerRiverMix extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerShore.java b/src/minecraft/net/minecraft/src/GenLayerShore.java index 1a3da55..e18e81a 100644 --- a/src/minecraft/net/minecraft/src/GenLayerShore.java +++ b/src/minecraft/net/minecraft/src/GenLayerShore.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerShore extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerSmooth.java b/src/minecraft/net/minecraft/src/GenLayerSmooth.java index f89e8a8..4bbcd39 100644 --- a/src/minecraft/net/minecraft/src/GenLayerSmooth.java +++ b/src/minecraft/net/minecraft/src/GenLayerSmooth.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerSmooth extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerSwampRivers.java b/src/minecraft/net/minecraft/src/GenLayerSwampRivers.java index 72e9b44..b119d39 100644 --- a/src/minecraft/net/minecraft/src/GenLayerSwampRivers.java +++ b/src/minecraft/net/minecraft/src/GenLayerSwampRivers.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerSwampRivers extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerVoronoiZoom.java b/src/minecraft/net/minecraft/src/GenLayerVoronoiZoom.java index ffeeee4..85b609c 100644 --- a/src/minecraft/net/minecraft/src/GenLayerVoronoiZoom.java +++ b/src/minecraft/net/minecraft/src/GenLayerVoronoiZoom.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerVoronoiZoom extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GenLayerZoom.java b/src/minecraft/net/minecraft/src/GenLayerZoom.java index 381825f..f02b7cc 100644 --- a/src/minecraft/net/minecraft/src/GenLayerZoom.java +++ b/src/minecraft/net/minecraft/src/GenLayerZoom.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class GenLayerZoom extends GenLayer { diff --git a/src/minecraft/net/minecraft/src/GuiCrafting.java b/src/minecraft/net/minecraft/src/GuiCrafting.java index bd2e457..ac095c0 100644 --- a/src/minecraft/net/minecraft/src/GuiCrafting.java +++ b/src/minecraft/net/minecraft/src/GuiCrafting.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import org.lwjgl.opengl.GL11; diff --git a/src/minecraft/net/minecraft/src/GuiEnchantment.java b/src/minecraft/net/minecraft/src/GuiEnchantment.java index d15071b..443ad1d 100644 --- a/src/minecraft/net/minecraft/src/GuiEnchantment.java +++ b/src/minecraft/net/minecraft/src/GuiEnchantment.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/src/minecraft/net/minecraft/src/GuiIngame.java b/src/minecraft/net/minecraft/src/GuiIngame.java index 9de9e7f..9fcd07c 100644 --- a/src/minecraft/net/minecraft/src/GuiIngame.java +++ b/src/minecraft/net/minecraft/src/GuiIngame.java @@ -1,7 +1,7 @@ package net.minecraft.src; import java.awt.Color; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; import net.minecraft.client.Minecraft; diff --git a/src/minecraft/net/minecraft/src/IBlockAccess.java b/src/minecraft/net/minecraft/src/IBlockAccess.java index 34701ea..a9f957a 100644 --- a/src/minecraft/net/minecraft/src/IBlockAccess.java +++ b/src/minecraft/net/minecraft/src/IBlockAccess.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public interface IBlockAccess { diff --git a/src/minecraft/net/minecraft/src/IChunkLoader.java b/src/minecraft/net/minecraft/src/IChunkLoader.java index c456e8e..0066d7f 100644 --- a/src/minecraft/net/minecraft/src/IChunkLoader.java +++ b/src/minecraft/net/minecraft/src/IChunkLoader.java @@ -1,7 +1,7 @@ package net.minecraft.src; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public interface IChunkLoader { diff --git a/src/minecraft/net/minecraft/src/IChunkProvider.java b/src/minecraft/net/minecraft/src/IChunkProvider.java index d8ace96..341e229 100644 --- a/src/minecraft/net/minecraft/src/IChunkProvider.java +++ b/src/minecraft/net/minecraft/src/IChunkProvider.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public interface IChunkProvider diff --git a/src/minecraft/net/minecraft/src/IWorldAccess.java b/src/minecraft/net/minecraft/src/IWorldAccess.java index ed303f1..bfd1b09 100644 --- a/src/minecraft/net/minecraft/src/IWorldAccess.java +++ b/src/minecraft/net/minecraft/src/IWorldAccess.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public interface IWorldAccess { diff --git a/src/minecraft/net/minecraft/src/Item.java b/src/minecraft/net/minecraft/src/Item.java index 86b22ff..8c39b3a 100644 --- a/src/minecraft/net/minecraft/src/Item.java +++ b/src/minecraft/net/minecraft/src/Item.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/ItemBed.java b/src/minecraft/net/minecraft/src/ItemBed.java index 9e2fa1c..895d483 100644 --- a/src/minecraft/net/minecraft/src/ItemBed.java +++ b/src/minecraft/net/minecraft/src/ItemBed.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemBed extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemBlock.java b/src/minecraft/net/minecraft/src/ItemBlock.java index bbc664e..7d2aa3d 100644 --- a/src/minecraft/net/minecraft/src/ItemBlock.java +++ b/src/minecraft/net/minecraft/src/ItemBlock.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public class ItemBlock extends Item diff --git a/src/minecraft/net/minecraft/src/ItemBoat.java b/src/minecraft/net/minecraft/src/ItemBoat.java index 6789329..3ffc7e7 100644 --- a/src/minecraft/net/minecraft/src/ItemBoat.java +++ b/src/minecraft/net/minecraft/src/ItemBoat.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/ItemBucket.java b/src/minecraft/net/minecraft/src/ItemBucket.java index c061c88..1ccf5cf 100644 --- a/src/minecraft/net/minecraft/src/ItemBucket.java +++ b/src/minecraft/net/minecraft/src/ItemBucket.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemBucket extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemDoor.java b/src/minecraft/net/minecraft/src/ItemDoor.java index 2471ed3..cb31db7 100644 --- a/src/minecraft/net/minecraft/src/ItemDoor.java +++ b/src/minecraft/net/minecraft/src/ItemDoor.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemDoor extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemDye.java b/src/minecraft/net/minecraft/src/ItemDye.java index 4f7d544..bc74e82 100644 --- a/src/minecraft/net/minecraft/src/ItemDye.java +++ b/src/minecraft/net/minecraft/src/ItemDye.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public class ItemDye extends Item diff --git a/src/minecraft/net/minecraft/src/ItemEnderEye.java b/src/minecraft/net/minecraft/src/ItemEnderEye.java index 35d2665..15865cc 100644 --- a/src/minecraft/net/minecraft/src/ItemEnderEye.java +++ b/src/minecraft/net/minecraft/src/ItemEnderEye.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemEnderEye extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemFireball.java b/src/minecraft/net/minecraft/src/ItemFireball.java index 053a530..187ec4a 100644 --- a/src/minecraft/net/minecraft/src/ItemFireball.java +++ b/src/minecraft/net/minecraft/src/ItemFireball.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemFireball extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemFlintAndSteel.java b/src/minecraft/net/minecraft/src/ItemFlintAndSteel.java index 9574bfa..48f3e31 100644 --- a/src/minecraft/net/minecraft/src/ItemFlintAndSteel.java +++ b/src/minecraft/net/minecraft/src/ItemFlintAndSteel.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemFlintAndSteel extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemGlassBottle.java b/src/minecraft/net/minecraft/src/ItemGlassBottle.java index 327e5ab..1e571f5 100644 --- a/src/minecraft/net/minecraft/src/ItemGlassBottle.java +++ b/src/minecraft/net/minecraft/src/ItemGlassBottle.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemGlassBottle extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemHoe.java b/src/minecraft/net/minecraft/src/ItemHoe.java index 9986289..b596c01 100644 --- a/src/minecraft/net/minecraft/src/ItemHoe.java +++ b/src/minecraft/net/minecraft/src/ItemHoe.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemHoe extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemInWorldManager.java b/src/minecraft/net/minecraft/src/ItemInWorldManager.java index d1ef127..1782ba4 100644 --- a/src/minecraft/net/minecraft/src/ItemInWorldManager.java +++ b/src/minecraft/net/minecraft/src/ItemInWorldManager.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemInWorldManager { diff --git a/src/minecraft/net/minecraft/src/ItemLilyPad.java b/src/minecraft/net/minecraft/src/ItemLilyPad.java index 590281c..c370b53 100644 --- a/src/minecraft/net/minecraft/src/ItemLilyPad.java +++ b/src/minecraft/net/minecraft/src/ItemLilyPad.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemLilyPad extends ItemColored { diff --git a/src/minecraft/net/minecraft/src/ItemMap.java b/src/minecraft/net/minecraft/src/ItemMap.java index 8924f57..a8381c8 100644 --- a/src/minecraft/net/minecraft/src/ItemMap.java +++ b/src/minecraft/net/minecraft/src/ItemMap.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemMap extends ItemMapBase { diff --git a/src/minecraft/net/minecraft/src/ItemMinecart.java b/src/minecraft/net/minecraft/src/ItemMinecart.java index 543e358..fa63a9f 100644 --- a/src/minecraft/net/minecraft/src/ItemMinecart.java +++ b/src/minecraft/net/minecraft/src/ItemMinecart.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemMinecart extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemMonsterPlacer.java b/src/minecraft/net/minecraft/src/ItemMonsterPlacer.java index d6ea9fe..e5def34 100644 --- a/src/minecraft/net/minecraft/src/ItemMonsterPlacer.java +++ b/src/minecraft/net/minecraft/src/ItemMonsterPlacer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/ItemPainting.java b/src/minecraft/net/minecraft/src/ItemPainting.java index fc55161..6406a34 100644 --- a/src/minecraft/net/minecraft/src/ItemPainting.java +++ b/src/minecraft/net/minecraft/src/ItemPainting.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemPainting extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemRecord.java b/src/minecraft/net/minecraft/src/ItemRecord.java index 10e1cc8..ee43f40 100644 --- a/src/minecraft/net/minecraft/src/ItemRecord.java +++ b/src/minecraft/net/minecraft/src/ItemRecord.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; public class ItemRecord extends Item diff --git a/src/minecraft/net/minecraft/src/ItemRedstone.java b/src/minecraft/net/minecraft/src/ItemRedstone.java index 77cf685..c6d3101 100644 --- a/src/minecraft/net/minecraft/src/ItemRedstone.java +++ b/src/minecraft/net/minecraft/src/ItemRedstone.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemRedstone extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemReed.java b/src/minecraft/net/minecraft/src/ItemReed.java index 9a07daa..ba412e7 100644 --- a/src/minecraft/net/minecraft/src/ItemReed.java +++ b/src/minecraft/net/minecraft/src/ItemReed.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemReed extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemRenderer.java b/src/minecraft/net/minecraft/src/ItemRenderer.java index ac80a79..3ccffa6 100644 --- a/src/minecraft/net/minecraft/src/ItemRenderer.java +++ b/src/minecraft/net/minecraft/src/ItemRenderer.java @@ -2,7 +2,7 @@ package net.minecraft.src; import net.minecraft.client.Minecraft; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/src/minecraft/net/minecraft/src/ItemSeeds.java b/src/minecraft/net/minecraft/src/ItemSeeds.java index fd8bb72..948cffa 100644 --- a/src/minecraft/net/minecraft/src/ItemSeeds.java +++ b/src/minecraft/net/minecraft/src/ItemSeeds.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemSeeds extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemShears.java b/src/minecraft/net/minecraft/src/ItemShears.java index 488a1ce..2930a1b 100644 --- a/src/minecraft/net/minecraft/src/ItemShears.java +++ b/src/minecraft/net/minecraft/src/ItemShears.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemShears extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemSign.java b/src/minecraft/net/minecraft/src/ItemSign.java index 2a2447e..68f9b02 100644 --- a/src/minecraft/net/minecraft/src/ItemSign.java +++ b/src/minecraft/net/minecraft/src/ItemSign.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemSign extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemSlab.java b/src/minecraft/net/minecraft/src/ItemSlab.java index b957779..4166fe6 100644 --- a/src/minecraft/net/minecraft/src/ItemSlab.java +++ b/src/minecraft/net/minecraft/src/ItemSlab.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemSlab extends ItemBlock { diff --git a/src/minecraft/net/minecraft/src/ItemStack.java b/src/minecraft/net/minecraft/src/ItemStack.java index a00ad7f..fde3e67 100644 --- a/src/minecraft/net/minecraft/src/ItemStack.java +++ b/src/minecraft/net/minecraft/src/ItemStack.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/ItemSword.java b/src/minecraft/net/minecraft/src/ItemSword.java index 5ff2b57..565fb6a 100644 --- a/src/minecraft/net/minecraft/src/ItemSword.java +++ b/src/minecraft/net/minecraft/src/ItemSword.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemSword extends Item { diff --git a/src/minecraft/net/minecraft/src/ItemTool.java b/src/minecraft/net/minecraft/src/ItemTool.java index 190fa7b..7dd60d2 100644 --- a/src/minecraft/net/minecraft/src/ItemTool.java +++ b/src/minecraft/net/minecraft/src/ItemTool.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class ItemTool extends Item { diff --git a/src/minecraft/net/minecraft/src/MapGenBase.java b/src/minecraft/net/minecraft/src/MapGenBase.java index 67630be..6eea830 100644 --- a/src/minecraft/net/minecraft/src/MapGenBase.java +++ b/src/minecraft/net/minecraft/src/MapGenBase.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class MapGenBase diff --git a/src/minecraft/net/minecraft/src/MapGenCaves.java b/src/minecraft/net/minecraft/src/MapGenCaves.java index ef2d900..e4b959d 100644 --- a/src/minecraft/net/minecraft/src/MapGenCaves.java +++ b/src/minecraft/net/minecraft/src/MapGenCaves.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class MapGenCaves extends MapGenBase diff --git a/src/minecraft/net/minecraft/src/MapGenMineshaft.java b/src/minecraft/net/minecraft/src/MapGenMineshaft.java index 5eb3987..b9b75e0 100644 --- a/src/minecraft/net/minecraft/src/MapGenMineshaft.java +++ b/src/minecraft/net/minecraft/src/MapGenMineshaft.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class MapGenMineshaft extends MapGenStructure { diff --git a/src/minecraft/net/minecraft/src/MapGenNetherBridge.java b/src/minecraft/net/minecraft/src/MapGenNetherBridge.java index a3c37ae..474c86f 100644 --- a/src/minecraft/net/minecraft/src/MapGenNetherBridge.java +++ b/src/minecraft/net/minecraft/src/MapGenNetherBridge.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/MapGenRavine.java b/src/minecraft/net/minecraft/src/MapGenRavine.java index 9d3f146..073ca31 100644 --- a/src/minecraft/net/minecraft/src/MapGenRavine.java +++ b/src/minecraft/net/minecraft/src/MapGenRavine.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class MapGenRavine extends MapGenBase diff --git a/src/minecraft/net/minecraft/src/MapGenScatteredFeature.java b/src/minecraft/net/minecraft/src/MapGenScatteredFeature.java index 9c52e2c..a119da1 100644 --- a/src/minecraft/net/minecraft/src/MapGenScatteredFeature.java +++ b/src/minecraft/net/minecraft/src/MapGenScatteredFeature.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Arrays; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/MapGenStronghold.java b/src/minecraft/net/minecraft/src/MapGenStronghold.java index f4ff0e5..54b28e5 100644 --- a/src/minecraft/net/minecraft/src/MapGenStronghold.java +++ b/src/minecraft/net/minecraft/src/MapGenStronghold.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/MapGenStructure.java b/src/minecraft/net/minecraft/src/MapGenStructure.java index 22b84a6..6e7da38 100644 --- a/src/minecraft/net/minecraft/src/MapGenStructure.java +++ b/src/minecraft/net/minecraft/src/MapGenStructure.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.HashMap; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/MapGenVillage.java b/src/minecraft/net/minecraft/src/MapGenVillage.java index bcc857b..8f6c7bd 100644 --- a/src/minecraft/net/minecraft/src/MapGenVillage.java +++ b/src/minecraft/net/minecraft/src/MapGenVillage.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Arrays; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/MathHelper.java b/src/minecraft/net/minecraft/src/MathHelper.java index 1a525f4..e194444 100644 --- a/src/minecraft/net/minecraft/src/MathHelper.java +++ b/src/minecraft/net/minecraft/src/MathHelper.java @@ -1,7 +1,7 @@ package net.minecraft.src; import java.math.BigDecimal; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class MathHelper diff --git a/src/minecraft/net/minecraft/src/MovingObjectPosition.java b/src/minecraft/net/minecraft/src/MovingObjectPosition.java index 2363e2f..a216ceb 100644 --- a/src/minecraft/net/minecraft/src/MovingObjectPosition.java +++ b/src/minecraft/net/minecraft/src/MovingObjectPosition.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class MovingObjectPosition { diff --git a/src/minecraft/net/minecraft/src/NBTTagCompound.java b/src/minecraft/net/minecraft/src/NBTTagCompound.java index dc4e32e..7c7c09e 100644 --- a/src/minecraft/net/minecraft/src/NBTTagCompound.java +++ b/src/minecraft/net/minecraft/src/NBTTagCompound.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/NetClientHandler.java b/src/minecraft/net/minecraft/src/NetClientHandler.java index 785ccec..b00c723 100644 --- a/src/minecraft/net/minecraft/src/NetClientHandler.java +++ b/src/minecraft/net/minecraft/src/NetClientHandler.java @@ -5,7 +5,7 @@ import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStreamReader; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.net.InetAddress; import java.net.Socket; import java.net.URL; diff --git a/src/minecraft/net/minecraft/src/NetServerHandler.java b/src/minecraft/net/minecraft/src/NetServerHandler.java index 86d737d..0ed2780 100644 --- a/src/minecraft/net/minecraft/src/NetServerHandler.java +++ b/src/minecraft/net/minecraft/src/NetServerHandler.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/NextTickListEntry.java b/src/minecraft/net/minecraft/src/NextTickListEntry.java index 3032122..1ea1c56 100644 --- a/src/minecraft/net/minecraft/src/NextTickListEntry.java +++ b/src/minecraft/net/minecraft/src/NextTickListEntry.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class NextTickListEntry implements Comparable { diff --git a/src/minecraft/net/minecraft/src/NoiseGeneratorOctaves.java b/src/minecraft/net/minecraft/src/NoiseGeneratorOctaves.java index 6f51c1b..b779562 100644 --- a/src/minecraft/net/minecraft/src/NoiseGeneratorOctaves.java +++ b/src/minecraft/net/minecraft/src/NoiseGeneratorOctaves.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class NoiseGeneratorOctaves extends NoiseGenerator diff --git a/src/minecraft/net/minecraft/src/Packet.java b/src/minecraft/net/minecraft/src/Packet.java index 9d48bdf..a665534 100644 --- a/src/minecraft/net/minecraft/src/Packet.java +++ b/src/minecraft/net/minecraft/src/Packet.java @@ -4,7 +4,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.HashMap; import java.util.HashSet; import java.util.Map; diff --git a/src/minecraft/net/minecraft/src/Packet130UpdateSign.java b/src/minecraft/net/minecraft/src/Packet130UpdateSign.java index fb49aa2..f0c2049 100644 --- a/src/minecraft/net/minecraft/src/Packet130UpdateSign.java +++ b/src/minecraft/net/minecraft/src/Packet130UpdateSign.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet130UpdateSign extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet132TileEntityData.java b/src/minecraft/net/minecraft/src/Packet132TileEntityData.java index 165b916..3615325 100644 --- a/src/minecraft/net/minecraft/src/Packet132TileEntityData.java +++ b/src/minecraft/net/minecraft/src/Packet132TileEntityData.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet132TileEntityData extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet14BlockDig.java b/src/minecraft/net/minecraft/src/Packet14BlockDig.java index 1fe23d7..c4e7112 100644 --- a/src/minecraft/net/minecraft/src/Packet14BlockDig.java +++ b/src/minecraft/net/minecraft/src/Packet14BlockDig.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet14BlockDig extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet15Place.java b/src/minecraft/net/minecraft/src/Packet15Place.java index 66a5aa8..8cd5709 100644 --- a/src/minecraft/net/minecraft/src/Packet15Place.java +++ b/src/minecraft/net/minecraft/src/Packet15Place.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet15Place extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet17Sleep.java b/src/minecraft/net/minecraft/src/Packet17Sleep.java index 420e844..66d0bef 100644 --- a/src/minecraft/net/minecraft/src/Packet17Sleep.java +++ b/src/minecraft/net/minecraft/src/Packet17Sleep.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet17Sleep extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet25EntityPainting.java b/src/minecraft/net/minecraft/src/Packet25EntityPainting.java index 7bfb627..0a8668c 100644 --- a/src/minecraft/net/minecraft/src/Packet25EntityPainting.java +++ b/src/minecraft/net/minecraft/src/Packet25EntityPainting.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet25EntityPainting extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet51MapChunk.java b/src/minecraft/net/minecraft/src/Packet51MapChunk.java index 6051b1a..8932610 100644 --- a/src/minecraft/net/minecraft/src/Packet51MapChunk.java +++ b/src/minecraft/net/minecraft/src/Packet51MapChunk.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; diff --git a/src/minecraft/net/minecraft/src/Packet52MultiBlockChange.java b/src/minecraft/net/minecraft/src/Packet52MultiBlockChange.java index 54bfe20..c04068c 100644 --- a/src/minecraft/net/minecraft/src/Packet52MultiBlockChange.java +++ b/src/minecraft/net/minecraft/src/Packet52MultiBlockChange.java @@ -4,7 +4,7 @@ import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet52MultiBlockChange extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet53BlockChange.java b/src/minecraft/net/minecraft/src/Packet53BlockChange.java index 191c445..3728e9e 100644 --- a/src/minecraft/net/minecraft/src/Packet53BlockChange.java +++ b/src/minecraft/net/minecraft/src/Packet53BlockChange.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet53BlockChange extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet54PlayNoteBlock.java b/src/minecraft/net/minecraft/src/Packet54PlayNoteBlock.java index 89633f7..e0fb222 100644 --- a/src/minecraft/net/minecraft/src/Packet54PlayNoteBlock.java +++ b/src/minecraft/net/minecraft/src/Packet54PlayNoteBlock.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet54PlayNoteBlock extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet55BlockDestroy.java b/src/minecraft/net/minecraft/src/Packet55BlockDestroy.java index 34a4d0f..3f635d1 100644 --- a/src/minecraft/net/minecraft/src/Packet55BlockDestroy.java +++ b/src/minecraft/net/minecraft/src/Packet55BlockDestroy.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet55BlockDestroy extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet56MapChunks.java b/src/minecraft/net/minecraft/src/Packet56MapChunks.java index 3000166..009d62a 100644 --- a/src/minecraft/net/minecraft/src/Packet56MapChunks.java +++ b/src/minecraft/net/minecraft/src/Packet56MapChunks.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.List; import java.util.zip.DataFormatException; import java.util.zip.Deflater; diff --git a/src/minecraft/net/minecraft/src/Packet60Explosion.java b/src/minecraft/net/minecraft/src/Packet60Explosion.java index f526b35..573d790 100644 --- a/src/minecraft/net/minecraft/src/Packet60Explosion.java +++ b/src/minecraft/net/minecraft/src/Packet60Explosion.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/Packet61DoorChange.java b/src/minecraft/net/minecraft/src/Packet61DoorChange.java index d33ab56..8a38399 100644 --- a/src/minecraft/net/minecraft/src/Packet61DoorChange.java +++ b/src/minecraft/net/minecraft/src/Packet61DoorChange.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet61DoorChange extends Packet { diff --git a/src/minecraft/net/minecraft/src/Packet6SpawnPosition.java b/src/minecraft/net/minecraft/src/Packet6SpawnPosition.java index 5a84b96..602feba 100644 --- a/src/minecraft/net/minecraft/src/Packet6SpawnPosition.java +++ b/src/minecraft/net/minecraft/src/Packet6SpawnPosition.java @@ -3,7 +3,7 @@ package net.minecraft.src; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class Packet6SpawnPosition extends Packet { diff --git a/src/minecraft/net/minecraft/src/PathFinder.java b/src/minecraft/net/minecraft/src/PathFinder.java index d5e15fc..c350fcf 100644 --- a/src/minecraft/net/minecraft/src/PathFinder.java +++ b/src/minecraft/net/minecraft/src/PathFinder.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class PathFinder { diff --git a/src/minecraft/net/minecraft/src/PathNavigate.java b/src/minecraft/net/minecraft/src/PathNavigate.java index 1bd4104..b60b5cc 100644 --- a/src/minecraft/net/minecraft/src/PathNavigate.java +++ b/src/minecraft/net/minecraft/src/PathNavigate.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class PathNavigate { diff --git a/src/minecraft/net/minecraft/src/PathPoint.java b/src/minecraft/net/minecraft/src/PathPoint.java index c4399c9..aff929c 100644 --- a/src/minecraft/net/minecraft/src/PathPoint.java +++ b/src/minecraft/net/minecraft/src/PathPoint.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class PathPoint { diff --git a/src/minecraft/net/minecraft/src/PlayerControllerMP.java b/src/minecraft/net/minecraft/src/PlayerControllerMP.java index e3076f1..039e5a2 100644 --- a/src/minecraft/net/minecraft/src/PlayerControllerMP.java +++ b/src/minecraft/net/minecraft/src/PlayerControllerMP.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import net.minecraft.client.Minecraft; diff --git a/src/minecraft/net/minecraft/src/PlayerInstance.java b/src/minecraft/net/minecraft/src/PlayerInstance.java index 3dbbf2a..c1adc17 100644 --- a/src/minecraft/net/minecraft/src/PlayerInstance.java +++ b/src/minecraft/net/minecraft/src/PlayerInstance.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/PlayerManager.java b/src/minecraft/net/minecraft/src/PlayerManager.java index 808c619..29bdc0e 100644 --- a/src/minecraft/net/minecraft/src/PlayerManager.java +++ b/src/minecraft/net/minecraft/src/PlayerManager.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; diff --git a/src/minecraft/net/minecraft/src/RailLogic.java b/src/minecraft/net/minecraft/src/RailLogic.java index c62c045..ccbedba 100644 --- a/src/minecraft/net/minecraft/src/RailLogic.java +++ b/src/minecraft/net/minecraft/src/RailLogic.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/RandomPositionGenerator.java b/src/minecraft/net/minecraft/src/RandomPositionGenerator.java index e6f505c..7003bc1 100644 --- a/src/minecraft/net/minecraft/src/RandomPositionGenerator.java +++ b/src/minecraft/net/minecraft/src/RandomPositionGenerator.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class RandomPositionGenerator diff --git a/src/minecraft/net/minecraft/src/RedstoneUpdateInfo.java b/src/minecraft/net/minecraft/src/RedstoneUpdateInfo.java index 1801ae7..809bba2 100644 --- a/src/minecraft/net/minecraft/src/RedstoneUpdateInfo.java +++ b/src/minecraft/net/minecraft/src/RedstoneUpdateInfo.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; class RedstoneUpdateInfo { diff --git a/src/minecraft/net/minecraft/src/RegionFileCache.java b/src/minecraft/net/minecraft/src/RegionFileCache.java index 77e492d..ef2d8ff 100644 --- a/src/minecraft/net/minecraft/src/RegionFileCache.java +++ b/src/minecraft/net/minecraft/src/RegionFileCache.java @@ -6,7 +6,7 @@ import java.io.File; import java.io.IOException; import java.lang.ref.Reference; import java.lang.ref.SoftReference; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.HashMap; import java.util.Iterator; import java.util.Map; diff --git a/src/minecraft/net/minecraft/src/Render.java b/src/minecraft/net/minecraft/src/Render.java index d7aab5b..70fbed9 100644 --- a/src/minecraft/net/minecraft/src/Render.java +++ b/src/minecraft/net/minecraft/src/Render.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import org.lwjgl.opengl.GL11; diff --git a/src/minecraft/net/minecraft/src/RenderBlocks.java b/src/minecraft/net/minecraft/src/RenderBlocks.java index 9aa57b5..7fdb616 100644 --- a/src/minecraft/net/minecraft/src/RenderBlocks.java +++ b/src/minecraft/net/minecraft/src/RenderBlocks.java @@ -2,7 +2,7 @@ package net.minecraft.src; import net.minecraft.client.Minecraft; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/src/minecraft/net/minecraft/src/RenderGlobal.java b/src/minecraft/net/minecraft/src/RenderGlobal.java index d702cc9..8971770 100644 --- a/src/minecraft/net/minecraft/src/RenderGlobal.java +++ b/src/minecraft/net/minecraft/src/RenderGlobal.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.nio.IntBuffer; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/minecraft/net/minecraft/src/RenderList.java b/src/minecraft/net/minecraft/src/RenderList.java index 2f7ba9c..04cc06f 100644 --- a/src/minecraft/net/minecraft/src/RenderList.java +++ b/src/minecraft/net/minecraft/src/RenderList.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.nio.IntBuffer; import org.lwjgl.opengl.GL11; diff --git a/src/minecraft/net/minecraft/src/RenderPainting.java b/src/minecraft/net/minecraft/src/RenderPainting.java index 8330bd9..4629e26 100644 --- a/src/minecraft/net/minecraft/src/RenderPainting.java +++ b/src/minecraft/net/minecraft/src/RenderPainting.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/src/minecraft/net/minecraft/src/SpawnerAnimals.java b/src/minecraft/net/minecraft/src/SpawnerAnimals.java index 062d13a..773b310 100644 --- a/src/minecraft/net/minecraft/src/SpawnerAnimals.java +++ b/src/minecraft/net/minecraft/src/SpawnerAnimals.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.HashMap; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/StructureComponent.java b/src/minecraft/net/minecraft/src/StructureComponent.java index f89b73d..0c90451 100644 --- a/src/minecraft/net/minecraft/src/StructureComponent.java +++ b/src/minecraft/net/minecraft/src/StructureComponent.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/StructureScatteredFeatureStart.java b/src/minecraft/net/minecraft/src/StructureScatteredFeatureStart.java index b87f89b..c702428 100644 --- a/src/minecraft/net/minecraft/src/StructureScatteredFeatureStart.java +++ b/src/minecraft/net/minecraft/src/StructureScatteredFeatureStart.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class StructureScatteredFeatureStart extends StructureStart diff --git a/src/minecraft/net/minecraft/src/StructureVillagePieces.java b/src/minecraft/net/minecraft/src/StructureVillagePieces.java index fc22a39..d931676 100644 --- a/src/minecraft/net/minecraft/src/StructureVillagePieces.java +++ b/src/minecraft/net/minecraft/src/StructureVillagePieces.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/Teleporter.java b/src/minecraft/net/minecraft/src/Teleporter.java index 0e23290..1bc7328 100644 --- a/src/minecraft/net/minecraft/src/Teleporter.java +++ b/src/minecraft/net/minecraft/src/Teleporter.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class Teleporter diff --git a/src/minecraft/net/minecraft/src/ThreadLoginVerifier.java b/src/minecraft/net/minecraft/src/ThreadLoginVerifier.java index 446cc80..260a68c 100644 --- a/src/minecraft/net/minecraft/src/ThreadLoginVerifier.java +++ b/src/minecraft/net/minecraft/src/ThreadLoginVerifier.java @@ -2,7 +2,7 @@ package net.minecraft.src; import java.io.BufferedReader; import java.io.InputStreamReader; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.net.URL; import java.net.URLEncoder; diff --git a/src/minecraft/net/minecraft/src/TileEntity.java b/src/minecraft/net/minecraft/src/TileEntity.java index b1ba803..6aa42eb 100644 --- a/src/minecraft/net/minecraft/src/TileEntity.java +++ b/src/minecraft/net/minecraft/src/TileEntity.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.HashMap; import java.util.Map; diff --git a/src/minecraft/net/minecraft/src/TileEntityChest.java b/src/minecraft/net/minecraft/src/TileEntityChest.java index 5356e3d..87eb247 100644 --- a/src/minecraft/net/minecraft/src/TileEntityChest.java +++ b/src/minecraft/net/minecraft/src/TileEntityChest.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class TileEntityChest extends TileEntity implements IInventory { diff --git a/src/minecraft/net/minecraft/src/TileEntityMobSpawner.java b/src/minecraft/net/minecraft/src/TileEntityMobSpawner.java index 42e5c0c..1800e4a 100644 --- a/src/minecraft/net/minecraft/src/TileEntityMobSpawner.java +++ b/src/minecraft/net/minecraft/src/TileEntityMobSpawner.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; public class TileEntityMobSpawner extends TileEntity diff --git a/src/minecraft/net/minecraft/src/TileEntityNote.java b/src/minecraft/net/minecraft/src/TileEntityNote.java index 56f28af..7b12081 100644 --- a/src/minecraft/net/minecraft/src/TileEntityNote.java +++ b/src/minecraft/net/minecraft/src/TileEntityNote.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class TileEntityNote extends TileEntity { diff --git a/src/minecraft/net/minecraft/src/Village.java b/src/minecraft/net/minecraft/src/Village.java index 959c8a7..5eecb9b 100644 --- a/src/minecraft/net/minecraft/src/Village.java +++ b/src/minecraft/net/minecraft/src/Village.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/VillageCollection.java b/src/minecraft/net/minecraft/src/VillageCollection.java index 9562ab5..80e49ec 100644 --- a/src/minecraft/net/minecraft/src/VillageCollection.java +++ b/src/minecraft/net/minecraft/src/VillageCollection.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/VillageDoorInfo.java b/src/minecraft/net/minecraft/src/VillageDoorInfo.java index 2b8f12a..84c877c 100644 --- a/src/minecraft/net/minecraft/src/VillageDoorInfo.java +++ b/src/minecraft/net/minecraft/src/VillageDoorInfo.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class VillageDoorInfo { diff --git a/src/minecraft/net/minecraft/src/VillageSiege.java b/src/minecraft/net/minecraft/src/VillageSiege.java index d787487..a307924 100644 --- a/src/minecraft/net/minecraft/src/VillageSiege.java +++ b/src/minecraft/net/minecraft/src/VillageSiege.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/World.java b/src/minecraft/net/minecraft/src/World.java index 3bbfe8e..e49dbb1 100644 --- a/src/minecraft/net/minecraft/src/World.java +++ b/src/minecraft/net/minecraft/src/World.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; diff --git a/src/minecraft/net/minecraft/src/WorldChunkManager.java b/src/minecraft/net/minecraft/src/WorldChunkManager.java index 74aac6d..561662f 100644 --- a/src/minecraft/net/minecraft/src/WorldChunkManager.java +++ b/src/minecraft/net/minecraft/src/WorldChunkManager.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/WorldChunkManagerHell.java b/src/minecraft/net/minecraft/src/WorldChunkManagerHell.java index 0d2375e..f6786a2 100644 --- a/src/minecraft/net/minecraft/src/WorldChunkManagerHell.java +++ b/src/minecraft/net/minecraft/src/WorldChunkManagerHell.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Arrays; import java.util.List; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/WorldClient.java b/src/minecraft/net/minecraft/src/WorldClient.java index 1f1c69b..2327c5e 100644 --- a/src/minecraft/net/minecraft/src/WorldClient.java +++ b/src/minecraft/net/minecraft/src/WorldClient.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.HashSet; import java.util.Iterator; import java.util.Random; diff --git a/src/minecraft/net/minecraft/src/WorldGenBigMushroom.java b/src/minecraft/net/minecraft/src/WorldGenBigMushroom.java index 6a04933..acbc507 100644 --- a/src/minecraft/net/minecraft/src/WorldGenBigMushroom.java +++ b/src/minecraft/net/minecraft/src/WorldGenBigMushroom.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenBigMushroom extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenBigTree.java b/src/minecraft/net/minecraft/src/WorldGenBigTree.java index f2a4972..667420d 100644 --- a/src/minecraft/net/minecraft/src/WorldGenBigTree.java +++ b/src/minecraft/net/minecraft/src/WorldGenBigTree.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; // Fuck you Mojang 傻逼Mojang你妈死了操你妈弱智 diff --git a/src/minecraft/net/minecraft/src/WorldGenCactus.java b/src/minecraft/net/minecraft/src/WorldGenCactus.java index 08cedae..9e00c6a 100644 --- a/src/minecraft/net/minecraft/src/WorldGenCactus.java +++ b/src/minecraft/net/minecraft/src/WorldGenCactus.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenCactus extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenClay.java b/src/minecraft/net/minecraft/src/WorldGenClay.java index baff8b2..4a422bc 100644 --- a/src/minecraft/net/minecraft/src/WorldGenClay.java +++ b/src/minecraft/net/minecraft/src/WorldGenClay.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenClay extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenDeadBush.java b/src/minecraft/net/minecraft/src/WorldGenDeadBush.java index ae0d202..f0ec1bd 100644 --- a/src/minecraft/net/minecraft/src/WorldGenDeadBush.java +++ b/src/minecraft/net/minecraft/src/WorldGenDeadBush.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenDeadBush extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenDesertWells.java b/src/minecraft/net/minecraft/src/WorldGenDesertWells.java index 73e66eb..208d523 100644 --- a/src/minecraft/net/minecraft/src/WorldGenDesertWells.java +++ b/src/minecraft/net/minecraft/src/WorldGenDesertWells.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenDesertWells extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenDungeons.java b/src/minecraft/net/minecraft/src/WorldGenDungeons.java index 6c9b23d..624b460 100644 --- a/src/minecraft/net/minecraft/src/WorldGenDungeons.java +++ b/src/minecraft/net/minecraft/src/WorldGenDungeons.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenDungeons extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenFire.java b/src/minecraft/net/minecraft/src/WorldGenFire.java index 47a1b00..2fea0bf 100644 --- a/src/minecraft/net/minecraft/src/WorldGenFire.java +++ b/src/minecraft/net/minecraft/src/WorldGenFire.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenFire extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenFlowers.java b/src/minecraft/net/minecraft/src/WorldGenFlowers.java index eba91b0..787ce99 100644 --- a/src/minecraft/net/minecraft/src/WorldGenFlowers.java +++ b/src/minecraft/net/minecraft/src/WorldGenFlowers.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenFlowers extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenForest.java b/src/minecraft/net/minecraft/src/WorldGenForest.java index e69834c..5875cb1 100644 --- a/src/minecraft/net/minecraft/src/WorldGenForest.java +++ b/src/minecraft/net/minecraft/src/WorldGenForest.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenForest extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenGlowStone1.java b/src/minecraft/net/minecraft/src/WorldGenGlowStone1.java index b2fc155..e378f80 100644 --- a/src/minecraft/net/minecraft/src/WorldGenGlowStone1.java +++ b/src/minecraft/net/minecraft/src/WorldGenGlowStone1.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenGlowStone1 extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenGlowStone2.java b/src/minecraft/net/minecraft/src/WorldGenGlowStone2.java index 7ca64ee..35ba8eb 100644 --- a/src/minecraft/net/minecraft/src/WorldGenGlowStone2.java +++ b/src/minecraft/net/minecraft/src/WorldGenGlowStone2.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenGlowStone2 extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenHellLava.java b/src/minecraft/net/minecraft/src/WorldGenHellLava.java index ca697b0..29fd860 100644 --- a/src/minecraft/net/minecraft/src/WorldGenHellLava.java +++ b/src/minecraft/net/minecraft/src/WorldGenHellLava.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenHellLava extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenHugeTrees.java b/src/minecraft/net/minecraft/src/WorldGenHugeTrees.java index 6c77ee4..e0aa971 100644 --- a/src/minecraft/net/minecraft/src/WorldGenHugeTrees.java +++ b/src/minecraft/net/minecraft/src/WorldGenHugeTrees.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenHugeTrees extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenLakes.java b/src/minecraft/net/minecraft/src/WorldGenLakes.java index 26ec686..0f711f4 100644 --- a/src/minecraft/net/minecraft/src/WorldGenLakes.java +++ b/src/minecraft/net/minecraft/src/WorldGenLakes.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenLakes extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenLiquids.java b/src/minecraft/net/minecraft/src/WorldGenLiquids.java index f473a6c..eca4fcf 100644 --- a/src/minecraft/net/minecraft/src/WorldGenLiquids.java +++ b/src/minecraft/net/minecraft/src/WorldGenLiquids.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenLiquids extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenMinable.java b/src/minecraft/net/minecraft/src/WorldGenMinable.java index 1465afe..ceddb66 100644 --- a/src/minecraft/net/minecraft/src/WorldGenMinable.java +++ b/src/minecraft/net/minecraft/src/WorldGenMinable.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenMinable extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenPumpkin.java b/src/minecraft/net/minecraft/src/WorldGenPumpkin.java index 289f87e..22f8c94 100644 --- a/src/minecraft/net/minecraft/src/WorldGenPumpkin.java +++ b/src/minecraft/net/minecraft/src/WorldGenPumpkin.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenPumpkin extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenReed.java b/src/minecraft/net/minecraft/src/WorldGenReed.java index 7f70e02..d6cbcea 100644 --- a/src/minecraft/net/minecraft/src/WorldGenReed.java +++ b/src/minecraft/net/minecraft/src/WorldGenReed.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenReed extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenSand.java b/src/minecraft/net/minecraft/src/WorldGenSand.java index 5a55b6b..0d9e07a 100644 --- a/src/minecraft/net/minecraft/src/WorldGenSand.java +++ b/src/minecraft/net/minecraft/src/WorldGenSand.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenSand extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenShrub.java b/src/minecraft/net/minecraft/src/WorldGenShrub.java index ffe467f..3a1d5e2 100644 --- a/src/minecraft/net/minecraft/src/WorldGenShrub.java +++ b/src/minecraft/net/minecraft/src/WorldGenShrub.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenShrub extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenSpikes.java b/src/minecraft/net/minecraft/src/WorldGenSpikes.java index a3d3733..871e9d1 100644 --- a/src/minecraft/net/minecraft/src/WorldGenSpikes.java +++ b/src/minecraft/net/minecraft/src/WorldGenSpikes.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenSpikes extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenSwamp.java b/src/minecraft/net/minecraft/src/WorldGenSwamp.java index 71ee23a..f562892 100644 --- a/src/minecraft/net/minecraft/src/WorldGenSwamp.java +++ b/src/minecraft/net/minecraft/src/WorldGenSwamp.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenSwamp extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenTaiga1.java b/src/minecraft/net/minecraft/src/WorldGenTaiga1.java index 24221dc..b87ad78 100644 --- a/src/minecraft/net/minecraft/src/WorldGenTaiga1.java +++ b/src/minecraft/net/minecraft/src/WorldGenTaiga1.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenTaiga1 extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenTaiga2.java b/src/minecraft/net/minecraft/src/WorldGenTaiga2.java index 641733e..6cbf641 100644 --- a/src/minecraft/net/minecraft/src/WorldGenTaiga2.java +++ b/src/minecraft/net/minecraft/src/WorldGenTaiga2.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenTaiga2 extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenTallGrass.java b/src/minecraft/net/minecraft/src/WorldGenTallGrass.java index 63675ba..67ad4a6 100644 --- a/src/minecraft/net/minecraft/src/WorldGenTallGrass.java +++ b/src/minecraft/net/minecraft/src/WorldGenTallGrass.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenTallGrass extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenTrees.java b/src/minecraft/net/minecraft/src/WorldGenTrees.java index ad9f815..f8c766a 100644 --- a/src/minecraft/net/minecraft/src/WorldGenTrees.java +++ b/src/minecraft/net/minecraft/src/WorldGenTrees.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenTrees extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenVines.java b/src/minecraft/net/minecraft/src/WorldGenVines.java index 32ec590..ab379fd 100644 --- a/src/minecraft/net/minecraft/src/WorldGenVines.java +++ b/src/minecraft/net/minecraft/src/WorldGenVines.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenVines extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenWaterlily.java b/src/minecraft/net/minecraft/src/WorldGenWaterlily.java index 16c7220..79755e6 100644 --- a/src/minecraft/net/minecraft/src/WorldGenWaterlily.java +++ b/src/minecraft/net/minecraft/src/WorldGenWaterlily.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGenWaterlily extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGenerator.java b/src/minecraft/net/minecraft/src/WorldGenerator.java index 16b1a1e..007b5e6 100644 --- a/src/minecraft/net/minecraft/src/WorldGenerator.java +++ b/src/minecraft/net/minecraft/src/WorldGenerator.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public abstract class WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldGeneratorBonusChest.java b/src/minecraft/net/minecraft/src/WorldGeneratorBonusChest.java index bca93e0..758fa26 100644 --- a/src/minecraft/net/minecraft/src/WorldGeneratorBonusChest.java +++ b/src/minecraft/net/minecraft/src/WorldGeneratorBonusChest.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Random; public class WorldGeneratorBonusChest extends WorldGenerator diff --git a/src/minecraft/net/minecraft/src/WorldInfo.java b/src/minecraft/net/minecraft/src/WorldInfo.java index c25722d..124dbd4 100644 --- a/src/minecraft/net/minecraft/src/WorldInfo.java +++ b/src/minecraft/net/minecraft/src/WorldInfo.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class WorldInfo { diff --git a/src/minecraft/net/minecraft/src/WorldManager.java b/src/minecraft/net/minecraft/src/WorldManager.java index 19da8e6..ffacd9a 100644 --- a/src/minecraft/net/minecraft/src/WorldManager.java +++ b/src/minecraft/net/minecraft/src/WorldManager.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.Iterator; import net.minecraft.server.MinecraftServer; diff --git a/src/minecraft/net/minecraft/src/WorldProvider.java b/src/minecraft/net/minecraft/src/WorldProvider.java index dbd7e2b..dbd33c0 100644 --- a/src/minecraft/net/minecraft/src/WorldProvider.java +++ b/src/minecraft/net/minecraft/src/WorldProvider.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public abstract class WorldProvider { diff --git a/src/minecraft/net/minecraft/src/WorldProviderEnd.java b/src/minecraft/net/minecraft/src/WorldProviderEnd.java index 292e4de..4670665 100644 --- a/src/minecraft/net/minecraft/src/WorldProviderEnd.java +++ b/src/minecraft/net/minecraft/src/WorldProviderEnd.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; public class WorldProviderEnd extends WorldProvider { diff --git a/src/minecraft/net/minecraft/src/WorldRenderer.java b/src/minecraft/net/minecraft/src/WorldRenderer.java index 2367263..4768e87 100644 --- a/src/minecraft/net/minecraft/src/WorldRenderer.java +++ b/src/minecraft/net/minecraft/src/WorldRenderer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashSet; import java.util.List; diff --git a/src/minecraft/net/minecraft/src/WorldServer.java b/src/minecraft/net/minecraft/src/WorldServer.java index 1a6ff10..2fdcc9d 100644 --- a/src/minecraft/net/minecraft/src/WorldServer.java +++ b/src/minecraft/net/minecraft/src/WorldServer.java @@ -1,6 +1,6 @@ package net.minecraft.src; -import java.math.BigInteger; +import org.mcmodule.math.BigInteger; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; diff --git a/src/minecraft/org/mcmodule/math/BigInteger.java b/src/minecraft/org/mcmodule/math/BigInteger.java new file mode 100644 index 0000000..7abae30 --- /dev/null +++ b/src/minecraft/org/mcmodule/math/BigInteger.java @@ -0,0 +1,4767 @@ +/* + * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +/* + * Portions Copyright (c) 1995 Colin Plumb. All rights reserved. + */ + +package org.mcmodule.math; + +import java.io.IOException; +import java.io.InvalidObjectException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.ObjectStreamField; +import java.io.ObjectStreamException; +import java.util.Arrays; +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; + +import org.mcmodule.util.IntArrayAllcator; +import org.mcmodule.util.ObjectAllocator; +import org.mcmodule.util.Recycleable; + +/** + * Immutable arbitrary-precision integers. All operations behave as if + * BigIntegers were represented in two's-complement notation (like Java's + * primitive integer types). BigInteger provides analogues to all of Java's + * primitive integer operators, and all relevant methods from java.lang.Math. + * Additionally, BigInteger provides operations for modular arithmetic, GCD + * calculation, primality testing, prime generation, bit manipulation, + * and a few other miscellaneous operations. + * + *
Semantics of arithmetic operations exactly mimic those of Java's integer + * arithmetic operators, as defined in The Java Language Specification. + * For example, division by zero throws an {@code ArithmeticException}, and + * division of a negative by a positive yields a negative (or zero) remainder. + * All of the details in the Spec concerning overflow are ignored, as + * BigIntegers are made as large as necessary to accommodate the results of an + * operation. + * + *
Semantics of shift operations extend those of Java's shift operators + * to allow for negative shift distances. A right-shift with a negative + * shift distance results in a left shift, and vice-versa. The unsigned + * right shift operator ({@code >>>}) is omitted, as this operation makes + * little sense in combination with the "infinite word size" abstraction + * provided by this class. + * + *
Semantics of bitwise logical operations exactly mimic those of Java's + * bitwise integer operators. The binary operators ({@code and}, + * {@code or}, {@code xor}) implicitly perform sign extension on the shorter + * of the two operands prior to performing the operation. + * + *
Comparison operations perform signed integer comparisons, analogous to + * those performed by Java's relational and equality operators. + * + *
Modular arithmetic operations are provided to compute residues, perform + * exponentiation, and compute multiplicative inverses. These methods always + * return a non-negative result, between {@code 0} and {@code (modulus - 1)}, + * inclusive. + * + *
Bit operations operate on a single bit of the two's-complement + * representation of their operand. If necessary, the operand is sign- + * extended so that it contains the designated bit. None of the single-bit + * operations can produce a BigInteger with a different sign from the + * BigInteger being operated on, as they affect only a single bit, and the + * "infinite word size" abstraction provided by this class ensures that there + * are infinitely many "virtual sign bits" preceding each BigInteger. + * + *
For the sake of brevity and clarity, pseudo-code is used throughout the + * descriptions of BigInteger methods. The pseudo-code expression + * {@code (i + j)} is shorthand for "a BigInteger whose value is + * that of the BigInteger {@code i} plus that of the BigInteger {@code j}." + * The pseudo-code expression {@code (i == j)} is shorthand for + * "{@code true} if and only if the BigInteger {@code i} represents the same + * value as the BigInteger {@code j}." Other pseudo-code expressions are + * interpreted similarly. + * + *
All methods and constructors in this class throw
+ * {@code NullPointerException} when passed
+ * a null object reference for any input parameter.
+ *
+ * BigInteger must support values in the range
+ * -2{@code Integer.MAX_VALUE} (exclusive) to
+ * +2{@code Integer.MAX_VALUE} (exclusive)
+ * and may support values outside of that range.
+ *
+ * The range of probable prime values is limited and may be less than
+ * the full supported positive range of {@code BigInteger}.
+ * The range must be at least 1 to 2500000000.
+ *
+ * @implNote
+ * BigInteger constructors and operations throw {@code ArithmeticException} when
+ * the result is out of the supported range of
+ * -2{@code Integer.MAX_VALUE} (exclusive) to
+ * +2{@code Integer.MAX_VALUE} (exclusive).
+ *
+ * @see BigDecimal
+ * @author Josh Bloch
+ * @author Michael McCloskey
+ * @author Alan Eliasen
+ * @author Timothy Buktu
+ * @since JDK1.1
+ */
+
+public class BigInteger extends Number implements Comparable It is recommended that the {@link #probablePrime probablePrime}
+ * method be used in preference to this constructor unless there
+ * is a compelling need to specify a certainty.
+ *
+ * @param bitLength bitLength of the returned BigInteger.
+ * @param certainty a measure of the uncertainty that the caller is
+ * willing to tolerate. The probability that the new BigInteger
+ * represents a prime number will exceed
+ * (1 - 1/2{@code certainty}). The execution time of
+ * this constructor is proportional to the value of this parameter.
+ * @param rnd source of random bits used to select candidates to be
+ * tested for primality.
+ * @throws ArithmeticException {@code bitLength < 2} or {@code bitLength} is too large.
+ * @see #bitLength()
+ */
+ public void init(int bitLength, int certainty, Random rnd) {
+ BigInteger prime;
+
+ if (bitLength < 2)
+ throw new ArithmeticException("bitLength < 2");
+ prime = (bitLength < SMALL_PRIME_THRESHOLD
+ ? smallPrime(bitLength, certainty, rnd)
+ : largePrime(bitLength, certainty, rnd));
+ signum = 1;
+ mag = prime.mag;
+ }
+
+ // Minimum size in bits that the requested prime number has
+ // before we use the large prime number generating algorithms.
+ // The cutoff of 95 was chosen empirically for best performance.
+ private static final int SMALL_PRIME_THRESHOLD = 95;
+
+ // Certainty required to meet the spec of probablePrime
+ private static final int DEFAULT_PRIME_CERTAINTY = 100;
+
+ /**
+ * Returns a positive BigInteger that is probably prime, with the
+ * specified bitLength. The probability that a BigInteger returned
+ * by this method is composite does not exceed 2-100.
+ *
+ * @param bitLength bitLength of the returned BigInteger.
+ * @param rnd source of random bits used to select candidates to be
+ * tested for primality.
+ * @return a BigInteger of {@code bitLength} bits that is probably prime
+ * @throws ArithmeticException {@code bitLength < 2} or {@code bitLength} is too large.
+ * @see #bitLength()
+ * @since 1.4
+ */
+ public static BigInteger probablePrime(int bitLength, Random rnd) {
+ if (bitLength < 2)
+ throw new ArithmeticException("bitLength < 2");
+
+ return (bitLength < SMALL_PRIME_THRESHOLD ?
+ smallPrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd) :
+ largePrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd));
+ }
+
+ /**
+ * Find a random number of the specified bitLength that is probably prime.
+ * This method is used for smaller primes, its performance degrades on
+ * larger bitlengths.
+ *
+ * This method assumes bitLength > 1.
+ */
+ private static BigInteger smallPrime(int bitLength, int certainty, Random rnd) {
+ int magLen = (bitLength + 31) >>> 5;
+ int temp[] = new int[magLen];
+ int highBit = 1 << ((bitLength+31) & 0x1f); // High bit of high int
+ int highMask = (highBit << 1) - 1; // Bits to keep in high int
+
+ while (true) {
+ // Construct a candidate
+ for (int i=0; i < magLen; i++)
+ temp[i] = rnd.nextInt();
+ temp[0] = (temp[0] & highMask) | highBit; // Ensure exact length
+ if (bitLength > 2)
+ temp[magLen-1] |= 1; // Make odd if bitlen > 2
+
+ BigInteger p = new BigInteger(temp, 1);
+
+ // Do cheap "pre-test" if applicable
+ if (bitLength > 6) {
+ long r = p.remainder(SMALL_PRIME_PRODUCT).longValue();
+ if ((r%3==0) || (r%5==0) || (r%7==0) || (r%11==0) ||
+ (r%13==0) || (r%17==0) || (r%19==0) || (r%23==0) ||
+ (r%29==0) || (r%31==0) || (r%37==0) || (r%41==0))
+ continue; // Candidate is composite; try another
+ }
+
+ // All candidates of bitLength 2 and 3 are prime by this point
+ if (bitLength < 4)
+ return p;
+
+ // Do expensive test if we survive pre-test (or it's inapplicable)
+ if (p.primeToCertainty(certainty, rnd))
+ return p;
+ }
+ }
+
+ private static final BigInteger SMALL_PRIME_PRODUCT
+ = valueOf(3L*5*7*11*13*17*19*23*29*31*37*41);
+
+ /**
+ * Find a random number of the specified bitLength that is probably prime.
+ * This method is more appropriate for larger bitlengths since it uses
+ * a sieve to eliminate most composites before using a more expensive
+ * test.
+ */
+ private static BigInteger largePrime(int bitLength, int certainty, Random rnd) {
+ BigInteger p;
+ p = new BigInteger(bitLength, rnd).setBit(bitLength-1);
+ p.mag[p.mag.length-1] &= 0xfffffffe;
+
+ // Use a sieve length likely to contain the next prime number
+ int searchLen = getPrimeSearchLen(bitLength);
+ BitSieve searchSieve = new BitSieve(p, searchLen);
+ BigInteger candidate = searchSieve.retrieve(p, certainty, rnd);
+
+ while ((candidate == null) || (candidate.bitLength() != bitLength)) {
+ p = p.add(BigInteger.valueOf(2*searchLen));
+ if (p.bitLength() != bitLength)
+ p = new BigInteger(bitLength, rnd).setBit(bitLength-1);
+ p.mag[p.mag.length-1] &= 0xfffffffe;
+ searchSieve = new BitSieve(p, searchLen);
+ candidate = searchSieve.retrieve(p, certainty, rnd);
+ }
+ return candidate;
+ }
+
+ /**
+ * Returns the first integer greater than this {@code BigInteger} that
+ * is probably prime. The probability that the number returned by this
+ * method is composite does not exceed 2-100. This method will
+ * never skip over a prime when searching: if it returns {@code p}, there
+ * is no prime {@code q} such that {@code this < q < p}.
+ *
+ * @return the first integer greater than this {@code BigInteger} that
+ * is probably prime.
+ * @throws ArithmeticException {@code this < 0} or {@code this} is too large.
+ * @since 1.5
+ */
+ public BigInteger nextProbablePrime() {
+ if (this.signum < 0)
+ throw new ArithmeticException("start < 0: " + this);
+
+ // Handle trivial cases
+ if ((this.signum == 0) || this.equals(ONE))
+ return TWO;
+
+ BigInteger result = this.add(ONE);
+
+ // Fastpath for small numbers
+ if (result.bitLength() < SMALL_PRIME_THRESHOLD) {
+
+ // Ensure an odd number
+ if (!result.testBit(0))
+ result = result.add(ONE);
+
+ while (true) {
+ // Do cheap "pre-test" if applicable
+ if (result.bitLength() > 6) {
+ long r = result.remainder(SMALL_PRIME_PRODUCT).longValue();
+ if ((r%3==0) || (r%5==0) || (r%7==0) || (r%11==0) ||
+ (r%13==0) || (r%17==0) || (r%19==0) || (r%23==0) ||
+ (r%29==0) || (r%31==0) || (r%37==0) || (r%41==0)) {
+ result = result.add(TWO);
+ continue; // Candidate is composite; try another
+ }
+ }
+
+ // All candidates of bitLength 2 and 3 are prime by this point
+ if (result.bitLength() < 4)
+ return result;
+
+ // The expensive test
+ if (result.primeToCertainty(DEFAULT_PRIME_CERTAINTY, null))
+ return result;
+
+ result = result.add(TWO);
+ }
+ }
+
+ // Start at previous even number
+ if (result.testBit(0))
+ result = result.subtract(ONE);
+
+ // Looking for the next large prime
+ int searchLen = getPrimeSearchLen(result.bitLength());
+
+ while (true) {
+ BitSieve searchSieve = new BitSieve(result, searchLen);
+ BigInteger candidate = searchSieve.retrieve(result,
+ DEFAULT_PRIME_CERTAINTY, null);
+ if (candidate != null)
+ return candidate;
+ result = result.add(BigInteger.valueOf(2 * searchLen));
+ }
+ }
+
+ private static int getPrimeSearchLen(int bitLength) {
+ if (bitLength > PRIME_SEARCH_BIT_LENGTH_LIMIT + 1) {
+ throw new ArithmeticException("Prime search implementation restriction on bitLength");
+ }
+ return bitLength / 20 * 64;
+ }
+
+ /**
+ * Returns {@code true} if this BigInteger is probably prime,
+ * {@code false} if it's definitely composite.
+ *
+ * This method assumes bitLength > 2.
+ *
+ * @param certainty a measure of the uncertainty that the caller is
+ * willing to tolerate: if the call returns {@code true}
+ * the probability that this BigInteger is prime exceeds
+ * {@code (1 - 1/2certainty)}. The execution time of
+ * this method is proportional to the value of this parameter.
+ * @return {@code true} if this BigInteger is probably prime,
+ * {@code false} if it's definitely composite.
+ */
+ boolean primeToCertainty(int certainty, Random random) {
+ int rounds = 0;
+ int n = (Math.min(certainty, Integer.MAX_VALUE-1)+1)/2;
+
+ // The relationship between the certainty and the number of rounds
+ // we perform is given in the draft standard ANSI X9.80, "PRIME
+ // NUMBER GENERATION, PRIMALITY TESTING, AND PRIMALITY CERTIFICATES".
+ int sizeInBits = this.bitLength();
+ if (sizeInBits < 100) {
+ rounds = 50;
+ rounds = n < rounds ? n : rounds;
+ return passesMillerRabin(rounds, random);
+ }
+
+ if (sizeInBits < 256) {
+ rounds = 27;
+ } else if (sizeInBits < 512) {
+ rounds = 15;
+ } else if (sizeInBits < 768) {
+ rounds = 8;
+ } else if (sizeInBits < 1024) {
+ rounds = 4;
+ } else {
+ rounds = 2;
+ }
+ rounds = n < rounds ? n : rounds;
+
+ return passesMillerRabin(rounds, random) && passesLucasLehmer();
+ }
+
+ /**
+ * Returns true iff this BigInteger is a Lucas-Lehmer probable prime.
+ *
+ * The following assumptions are made:
+ * This BigInteger is a positive, odd number.
+ */
+ private boolean passesLucasLehmer() {
+ BigInteger thisPlusOne = this.add(ONE);
+
+ // Step 1
+ int d = 5;
+ while (jacobiSymbol(d, this) != -1) {
+ // 5, -7, 9, -11, ...
+ d = (d < 0) ? Math.abs(d)+2 : -(d+2);
+ }
+
+ // Step 2
+ BigInteger u = lucasLehmerSequence(d, thisPlusOne, this);
+
+ // Step 3
+ return u.mod(this).equals(ZERO);
+ }
+
+ /**
+ * Computes Jacobi(p,n).
+ * Assumes n positive, odd, n>=3.
+ */
+ private static int jacobiSymbol(int p, BigInteger n) {
+ if (p == 0)
+ return 0;
+
+ // Algorithm and comments adapted from Colin Plumb's C library.
+ int j = 1;
+ int u = n.mag[n.mag.length-1];
+
+ // Make p positive
+ if (p < 0) {
+ p = -p;
+ int n8 = u & 7;
+ if ((n8 == 3) || (n8 == 7))
+ j = -j; // 3 (011) or 7 (111) mod 8
+ }
+
+ // Get rid of factors of 2 in p
+ while ((p & 3) == 0)
+ p >>= 2;
+ if ((p & 1) == 0) {
+ p >>= 1;
+ if (((u ^ (u>>1)) & 2) != 0)
+ j = -j; // 3 (011) or 5 (101) mod 8
+ }
+ if (p == 1)
+ return j;
+ // Then, apply quadratic reciprocity
+ if ((p & u & 2) != 0) // p = u = 3 (mod 4)?
+ j = -j;
+ // And reduce u mod p
+ u = n.mod(BigInteger.valueOf(p)).intValue();
+
+ // Now compute Jacobi(u,p), u < p
+ while (u != 0) {
+ while ((u & 3) == 0)
+ u >>= 2;
+ if ((u & 1) == 0) {
+ u >>= 1;
+ if (((p ^ (p>>1)) & 2) != 0)
+ j = -j; // 3 (011) or 5 (101) mod 8
+ }
+ if (u == 1)
+ return j;
+ // Now both u and p are odd, so use quadratic reciprocity
+ assert (u < p);
+ int t = u; u = p; p = t;
+ if ((u & p & 2) != 0) // u = p = 3 (mod 4)?
+ j = -j;
+ // Now u >= p, so it can be reduced
+ u %= p;
+ }
+ return 0;
+ }
+
+ private static BigInteger lucasLehmerSequence(int z, BigInteger k, BigInteger n) {
+ BigInteger d = BigInteger.valueOf(z);
+ BigInteger u = ONE; BigInteger u2;
+ BigInteger v = ONE; BigInteger v2;
+
+ for (int i=k.bitLength()-2; i >= 0; i--) {
+ u2 = u.multiply(v).mod(n);
+
+ v2 = v.square().add(d.multiply(u.square())).mod(n);
+ if (v2.testBit(0))
+ v2 = v2.subtract(n);
+
+ v2 = v2.shiftRight(1);
+
+ u = u2; v = v2;
+ if (k.testBit(i)) {
+ u2 = u.add(v).mod(n);
+ if (u2.testBit(0))
+ u2 = u2.subtract(n);
+
+ u2 = u2.shiftRight(1);
+ v2 = v.add(d.multiply(u)).mod(n);
+ if (v2.testBit(0))
+ v2 = v2.subtract(n);
+ v2 = v2.shiftRight(1);
+
+ u = u2; v = v2;
+ }
+ }
+ return u;
+ }
+
+ /**
+ * Returns true iff this BigInteger passes the specified number of
+ * Miller-Rabin tests. This test is taken from the DSA spec (NIST FIPS
+ * 186-2).
+ *
+ * The following assumptions are made:
+ * This BigInteger is a positive, odd number greater than 2.
+ * iterations<=50.
+ */
+ private boolean passesMillerRabin(int iterations, Random rnd) {
+ // Find a and m such that m is odd and this == 1 + 2**a * m
+ BigInteger thisMinusOne = this.subtract(ONE);
+ BigInteger m = thisMinusOne;
+ int a = m.getLowestSetBit();
+ m = m.shiftRight(a);
+
+ // Do the tests
+ if (rnd == null) {
+ rnd = ThreadLocalRandom.current();
+ }
+ for (int i=0; i < iterations; i++) {
+ // Generate a uniform random on (1, this)
+ BigInteger b;
+ do {
+ b = new BigInteger(this.bitLength(), rnd);
+ } while (b.compareTo(ONE) <= 0 || b.compareTo(this) >= 0);
+
+ int j = 0;
+ BigInteger z = b.modPow(m, this);
+ while (!((j == 0 && z.equals(ONE)) || z.equals(thisMinusOne))) {
+ if (j > 0 && z.equals(ONE) || ++j == a)
+ return false;
+ z = z.modPow(TWO, this);
+ }
+ }
+ return true;
+ }
+
+ /**
+ * This internal constructor differs from its public cousin
+ * with the arguments reversed in two ways: it assumes that its
+ * arguments are correct, and it doesn't copy the magnitude array.
+ */
+ BigInteger(int[] magnitude, int signum) {
+ this.signum = (magnitude.length == 0 ? 0 : signum);
+ this.mag = magnitude;
+ if (mag.length >= MAX_MAG_LENGTH) {
+ checkRange();
+ }
+ }
+
+ /**
+ * This private constructor is for internal use and assumes that its
+ * arguments are correct.
+ */
+ private BigInteger(byte[] magnitude, int signum) {
+ this.signum = (magnitude.length == 0 ? 0 : signum);
+ this.mag = stripLeadingZeroBytes(magnitude);
+ if (mag.length >= MAX_MAG_LENGTH) {
+ checkRange();
+ }
+ }
+
+ /**
+ * Throws an {@code ArithmeticException} if the {@code BigInteger} would be
+ * out of the supported range.
+ *
+ * @throws ArithmeticException if {@code this} exceeds the supported range.
+ */
+ private void checkRange() {
+ if (mag.length > MAX_MAG_LENGTH || mag.length == MAX_MAG_LENGTH && mag[0] < 0) {
+ reportOverflow();
+ }
+ }
+
+ private static void reportOverflow() {
+ throw new ArithmeticException("BigInteger would overflow supported range");
+ }
+
+ //Static Factory Methods
+
+ /**
+ * Returns a BigInteger whose value is equal to that of the
+ * specified {@code long}. This "static factory method" is
+ * provided in preference to a ({@code long}) constructor
+ * because it allows for reuse of frequently used BigIntegers.
+ *
+ * @param val value of the BigInteger to return.
+ * @return a BigInteger with the specified value.
+ */
+ public static BigInteger valueOf(long val) {
+ // If -MAX_CONSTANT < val < MAX_CONSTANT, return stashed constant
+ if (val == 0)
+ return ZERO;
+
+ // Third hack: create cache dynamically
+ BigInteger[] constArray = null;
+
+ if (val > 0 && val <= MAX_CONSTANT)
+ constArray = posConst;
+ else if (val < 0 && val >= -MAX_CONSTANT)
+ constArray = negConst;
+
+ if(constArray != null) {
+ int pos = Math.abs((int) val);
+ BigInteger value;
+ return (value = constArray[pos]) == null ? constArray[pos] = new BigInteger(new int[] {pos}, val < 0 ? -1 : 1) : value;
+ }
+
+ return new BigInteger(val);
+ }
+
+ /**
+ * Constructs a BigInteger with the specified value, which may not be zero.
+ */
+ private BigInteger(long val) {
+ if (val < 0) {
+ val = -val;
+ signum = -1;
+ } else {
+ signum = 1;
+ }
+
+ int highWord = (int)(val >>> 32);
+ if (highWord == 0) {
+ mag = new int[1];
+ mag[0] = (int)val;
+ } else {
+ mag = new int[2];
+ mag[0] = highWord;
+ mag[1] = (int)val;
+ }
+ }
+
+ /**
+ * Returns a BigInteger with the given two's complement representation.
+ * Assumes that the input array will not be modified (the returned
+ * BigInteger will reference the input array if feasible).
+ */
+ private static BigInteger valueOf(int val[]) {
+ return (val[0] > 0 ? new BigInteger(val, 1) : new BigInteger(val));
+ }
+
+ // Constants
+
+ /**
+ * Initialize static constant array when class is loaded.
+ */
+ private final static int MAX_CONSTANT = 1048576; // First hack: increase cache
+ private static BigInteger posConst[] = new BigInteger[MAX_CONSTANT+1];
+ private static BigInteger negConst[] = new BigInteger[MAX_CONSTANT+1];
+
+ /**
+ * The cache of powers of each radix. This allows us to not have to
+ * recalculate powers of radix^(2^n) more than once. This speeds
+ * Schoenhage recursive base conversion significantly.
+ */
+ private static volatile BigInteger[][] powerCache;
+
+ /** The cache of logarithms of radices for base conversion. */
+ private static final double[] logCache;
+
+ /** The natural log of 2. This is used in computing cache indices. */
+ private static final double LOG_TWO = Math.log(2.0);
+
+ static {
+ assert 0 < KARATSUBA_THRESHOLD
+ && KARATSUBA_THRESHOLD < TOOM_COOK_THRESHOLD
+ && TOOM_COOK_THRESHOLD < Integer.MAX_VALUE
+ && 0 < KARATSUBA_SQUARE_THRESHOLD
+ && KARATSUBA_SQUARE_THRESHOLD < TOOM_COOK_SQUARE_THRESHOLD
+ && TOOM_COOK_SQUARE_THRESHOLD < Integer.MAX_VALUE :
+ "Algorithm thresholds are inconsistent";
+
+// for (int i = 1; i <= MAX_CONSTANT; i++) {
+// int[] magnitude = new int[1];
+// magnitude[0] = i;
+// posConst[i] = new BigInteger(magnitude, 1);
+// negConst[i] = new BigInteger(magnitude, -1);
+// }
+
+ /*
+ * Initialize the cache of radix^(2^x) values used for base conversion
+ * with just the very first value. Additional values will be created
+ * on demand.
+ */
+ powerCache = new BigInteger[Character.MAX_RADIX+1][];
+ logCache = new double[Character.MAX_RADIX+1];
+
+ for (int i=Character.MIN_RADIX; i <= Character.MAX_RADIX; i++) {
+ powerCache[i] = new BigInteger[] { BigInteger.valueOf(i) };
+ logCache[i] = Math.log(i);
+ }
+ }
+
+ /**
+ * The BigInteger constant zero.
+ *
+ * @since 1.2
+ */
+ public static final BigInteger ZERO = new BigInteger(new int[0], 0);
+
+ /**
+ * The BigInteger constant one.
+ *
+ * @since 1.2
+ */
+ public static final BigInteger ONE = valueOf(1);
+
+ /**
+ * The BigInteger constant two. (Not exported.)
+ */
+ private static final BigInteger TWO = valueOf(2);
+
+ /**
+ * The BigInteger constant -1. (Not exported.)
+ */
+ private static final BigInteger NEGATIVE_ONE = valueOf(-1);
+
+ /**
+ * The BigInteger constant ten.
+ *
+ * @since 1.5
+ */
+ public static final BigInteger TEN = valueOf(10);
+
+ // Arithmetic Operations
+
+ /**
+ * Returns a BigInteger whose value is {@code (this + val)}.
+ *
+ * @param val value to be added to this BigInteger.
+ * @return {@code this + val}
+ */
+ public BigInteger add(BigInteger val) {
+ if (val.signum == 0)
+ return this;
+ if (signum == 0)
+ return val;
+ if (val.signum == signum)
+ return new BigInteger(add(mag, val.mag), signum);
+
+ int cmp = compareMagnitude(val);
+ if (cmp == 0)
+ return ZERO;
+ int[] resultMag = (cmp > 0 ? subtract(mag, val.mag)
+ : subtract(val.mag, mag));
+ resultMag = trustedStripLeadingZeroInts(resultMag);
+
+ return new BigInteger(resultMag, cmp == signum ? 1 : -1);
+ }
+
+ /**
+ * Package private methods used by BigDecimal code to add a BigInteger
+ * with a long. Assumes val is not equal to INFLATED.
+ */
+ BigInteger add(long val) {
+ if (val == 0)
+ return this;
+ if (signum == 0)
+ return valueOf(val);
+ if (Long.signum(val) == signum)
+ return new BigInteger(add(mag, Math.abs(val)), signum);
+ int cmp = compareMagnitude(val);
+ if (cmp == 0)
+ return ZERO;
+ int[] resultMag = (cmp > 0 ? subtract(mag, Math.abs(val)) : subtract(Math.abs(val), mag));
+ resultMag = trustedStripLeadingZeroInts(resultMag);
+ return new BigInteger(resultMag, cmp == signum ? 1 : -1);
+ }
+
+ /**
+ * Adds the contents of the int array x and long value val. This
+ * method allocates a new int array to hold the answer and returns
+ * a reference to that array. Assumes x.length > 0 and val is
+ * non-negative
+ */
+ private static int[] add(int[] x, long val) {
+ int[] y;
+ long sum = 0;
+ int xIndex = x.length;
+ int[] result;
+ int highWord = (int)(val >>> 32);
+ if (highWord == 0) {
+ result = new int[xIndex];
+ sum = (x[--xIndex] & LONG_MASK) + val;
+ result[xIndex] = (int)sum;
+ } else {
+ if (xIndex == 1) {
+ result = new int[2];
+ sum = val + (x[0] & LONG_MASK);
+ result[1] = (int)sum;
+ result[0] = (int)(sum >>> 32);
+ return result;
+ } else {
+ result = new int[xIndex];
+ sum = (x[--xIndex] & LONG_MASK) + (val & LONG_MASK);
+ result[xIndex] = (int)sum;
+ sum = (x[--xIndex] & LONG_MASK) + (highWord & LONG_MASK) + (sum >>> 32);
+ result[xIndex] = (int)sum;
+ }
+ }
+ // Copy remainder of longer number while carry propagation is required
+ boolean carry = (sum >>> 32 != 0);
+ while (xIndex > 0 && carry)
+ carry = ((result[--xIndex] = x[xIndex] + 1) == 0);
+ // Copy remainder of longer number
+ while (xIndex > 0)
+ result[--xIndex] = x[xIndex];
+ // Grow result if necessary
+ if (carry) {
+ int bigger[] = new int[result.length + 1];
+ System.arraycopy(result, 0, bigger, 1, result.length);
+ bigger[0] = 0x01;
+ return bigger;
+ }
+ return result;
+ }
+
+ /**
+ * Adds the contents of the int arrays x and y. This method allocates
+ * a new int array to hold the answer and returns a reference to that
+ * array.
+ */
+ private static int[] add(int[] x, int[] y) {
+ // If x is shorter, swap the two arrays
+ if (x.length < y.length) {
+ int[] tmp = x;
+ x = y;
+ y = tmp;
+ }
+
+ int xIndex = x.length;
+ int yIndex = y.length;
+ int result[] = new int[xIndex];
+ long sum = 0;
+ if (yIndex == 1) {
+ sum = (x[--xIndex] & LONG_MASK) + (y[0] & LONG_MASK) ;
+ result[xIndex] = (int)sum;
+ } else {
+ // Add common parts of both numbers
+ while (yIndex > 0) {
+ sum = (x[--xIndex] & LONG_MASK) +
+ (y[--yIndex] & LONG_MASK) + (sum >>> 32);
+ result[xIndex] = (int)sum;
+ }
+ }
+ // Copy remainder of longer number while carry propagation is required
+ boolean carry = (sum >>> 32 != 0);
+ while (xIndex > 0 && carry)
+ carry = ((result[--xIndex] = x[xIndex] + 1) == 0);
+
+ // Copy remainder of longer number
+ while (xIndex > 0)
+ result[--xIndex] = x[xIndex];
+
+ // Grow result if necessary
+ if (carry) {
+ int bigger[] = new int[result.length + 1];
+ System.arraycopy(result, 0, bigger, 1, result.length);
+ bigger[0] = 0x01;
+ return bigger;
+ }
+ return result;
+ }
+
+ private static int[] subtract(long val, int[] little) {
+ int highWord = (int)(val >>> 32);
+ if (highWord == 0) {
+ int result[] = new int[1];
+ result[0] = (int)(val - (little[0] & LONG_MASK));
+ return result;
+ } else {
+ int result[] = new int[2];
+ if (little.length == 1) {
+ long difference = ((int)val & LONG_MASK) - (little[0] & LONG_MASK);
+ result[1] = (int)difference;
+ // Subtract remainder of longer number while borrow propagates
+ boolean borrow = (difference >> 32 != 0);
+ if (borrow) {
+ result[0] = highWord - 1;
+ } else { // Copy remainder of longer number
+ result[0] = highWord;
+ }
+ return result;
+ } else { // little.length == 2
+ long difference = ((int)val & LONG_MASK) - (little[1] & LONG_MASK);
+ result[1] = (int)difference;
+ difference = (highWord & LONG_MASK) - (little[0] & LONG_MASK) + (difference >> 32);
+ result[0] = (int)difference;
+ return result;
+ }
+ }
+ }
+
+ /**
+ * Subtracts the contents of the second argument (val) from the
+ * first (big). The first int array (big) must represent a larger number
+ * than the second. This method allocates the space necessary to hold the
+ * answer.
+ * assumes val >= 0
+ */
+ private static int[] subtract(int[] big, long val) {
+ int highWord = (int)(val >>> 32);
+ int bigIndex = big.length;
+ int result[] = new int[bigIndex];
+ long difference = 0;
+
+ if (highWord == 0) {
+ difference = (big[--bigIndex] & LONG_MASK) - val;
+ result[bigIndex] = (int)difference;
+ } else {
+ difference = (big[--bigIndex] & LONG_MASK) - (val & LONG_MASK);
+ result[bigIndex] = (int)difference;
+ difference = (big[--bigIndex] & LONG_MASK) - (highWord & LONG_MASK) + (difference >> 32);
+ result[bigIndex] = (int)difference;
+ }
+
+ // Subtract remainder of longer number while borrow propagates
+ boolean borrow = (difference >> 32 != 0);
+ while (bigIndex > 0 && borrow)
+ borrow = ((result[--bigIndex] = big[bigIndex] - 1) == -1);
+
+ // Copy remainder of longer number
+ while (bigIndex > 0)
+ result[--bigIndex] = big[bigIndex];
+
+ return result;
+ }
+
+ /**
+ * Returns a BigInteger whose value is {@code (this - val)}.
+ *
+ * @param val value to be subtracted from this BigInteger.
+ * @return {@code this - val}
+ */
+ public BigInteger subtract(BigInteger val) {
+ if (val.signum == 0)
+ return this;
+ if (signum == 0)
+ return val.negate();
+ if (val.signum != signum)
+ return new BigInteger(add(mag, val.mag), signum);
+
+ int cmp = compareMagnitude(val);
+ if (cmp == 0)
+ return ZERO;
+ int[] resultMag = (cmp > 0 ? subtract(mag, val.mag)
+ : subtract(val.mag, mag));
+ resultMag = trustedStripLeadingZeroInts(resultMag);
+ return new BigInteger(resultMag, cmp == signum ? 1 : -1);
+ }
+
+ /**
+ * Subtracts the contents of the second int arrays (little) from the
+ * first (big). The first int array (big) must represent a larger number
+ * than the second. This method allocates the space necessary to hold the
+ * answer.
+ */
+ private static int[] subtract(int[] big, int[] little) {
+ int bigIndex = big.length;
+ int result[] = new int[bigIndex];
+ int littleIndex = little.length;
+ long difference = 0;
+
+ // Subtract common parts of both numbers
+ while (littleIndex > 0) {
+ difference = (big[--bigIndex] & LONG_MASK) -
+ (little[--littleIndex] & LONG_MASK) +
+ (difference >> 32);
+ result[bigIndex] = (int)difference;
+ }
+
+ // Subtract remainder of longer number while borrow propagates
+ boolean borrow = (difference >> 32 != 0);
+ while (bigIndex > 0 && borrow)
+ borrow = ((result[--bigIndex] = big[bigIndex] - 1) == -1);
+
+ // Copy remainder of longer number
+ while (bigIndex > 0)
+ result[--bigIndex] = big[bigIndex];
+
+ return result;
+ }
+
+ /**
+ * Returns a BigInteger whose value is {@code (this * val)}.
+ *
+ * @implNote An implementation may offer better algorithmic
+ * performance when {@code val == this}.
+ *
+ * @param val value to be multiplied by this BigInteger.
+ * @return {@code this * val}
+ */
+ public BigInteger multiply(BigInteger val) {
+ return multiply(val, false);
+ }
+
+ /**
+ * Returns a BigInteger whose value is {@code (this * val)}. If
+ * the invocation is recursive certain overflow checks are skipped.
+ *
+ * @param val value to be multiplied by this BigInteger.
+ * @param isRecursion whether this is a recursive invocation
+ * @return {@code this * val}
+ */
+ private BigInteger multiply(BigInteger val, boolean isRecursion) {
+ if (val.signum == 0 || signum == 0)
+ return ZERO;
+
+ int xlen = mag.length;
+
+ if (val == this && xlen > MULTIPLY_SQUARE_THRESHOLD) {
+ return square();
+ }
+
+ int ylen = val.mag.length;
+
+ if ((xlen < KARATSUBA_THRESHOLD) || (ylen < KARATSUBA_THRESHOLD)) {
+ int resultSign = signum == val.signum ? 1 : -1;
+ if (val.mag.length == 1) {
+ return multiplyByInt(mag,val.mag[0], resultSign);
+ }
+ if (mag.length == 1) {
+ return multiplyByInt(val.mag,mag[0], resultSign);
+ }
+ int[] result = multiplyToLen(mag, xlen,
+ val.mag, ylen, null);
+ result = trustedStripLeadingZeroInts(result);
+ return new BigInteger(result, resultSign);
+ } else {
+ if ((xlen < TOOM_COOK_THRESHOLD) && (ylen < TOOM_COOK_THRESHOLD)) {
+ return multiplyKaratsuba(this, val);
+ } else {
+ //
+ // In "Hacker's Delight" section 2-13, p.33, it is explained
+ // that if x and y are unsigned 32-bit quantities and m and n
+ // are their respective numbers of leading zeros within 32 bits,
+ // then the number of leading zeros within their product as a
+ // 64-bit unsigned quantity is either m + n or m + n + 1. If
+ // their product is not to overflow, it cannot exceed 32 bits,
+ // and so the number of leading zeros of the product within 64
+ // bits must be at least 32, i.e., the leftmost set bit is at
+ // zero-relative position 31 or less.
+ //
+ // From the above there are three cases:
+ //
+ // m + n leftmost set bit condition
+ // ----- ---------------- ---------
+ // >= 32 x <= 64 - 32 = 32 no overflow
+ // == 31 x >= 64 - 32 = 32 possible overflow
+ // <= 30 x >= 64 - 31 = 33 definite overflow
+ //
+ // The "possible overflow" condition cannot be detected by
+ // examning data lengths alone and requires further calculation.
+ //
+ // By analogy, if 'this' and 'val' have m and n as their
+ // respective numbers of leading zeros within 32*MAX_MAG_LENGTH
+ // bits, then:
+ //
+ // m + n >= 32*MAX_MAG_LENGTH no overflow
+ // m + n == 32*MAX_MAG_LENGTH - 1 possible overflow
+ // m + n <= 32*MAX_MAG_LENGTH - 2 definite overflow
+ //
+ // Note however that if the number of ints in the result
+ // were to be MAX_MAG_LENGTH and mag[0] < 0, then there would
+ // be overflow. As a result the leftmost bit (of mag[0]) cannot
+ // be used and the constraints must be adjusted by one bit to:
+ //
+ // m + n > 32*MAX_MAG_LENGTH no overflow
+ // m + n == 32*MAX_MAG_LENGTH possible overflow
+ // m + n < 32*MAX_MAG_LENGTH definite overflow
+ //
+ // The foregoing leading zero-based discussion is for clarity
+ // only. The actual calculations use the estimated bit length
+ // of the product as this is more natural to the internal
+ // array representation of the magnitude which has no leading
+ // zero elements.
+ //
+ if (!isRecursion) {
+ // The bitLength() instance method is not used here as we
+ // are only considering the magnitudes as non-negative. The
+ // Toom-Cook multiplication algorithm determines the sign
+ // at its end from the two signum values.
+ if (bitLength(mag, mag.length) +
+ bitLength(val.mag, val.mag.length) >
+ 32L*MAX_MAG_LENGTH) {
+ reportOverflow();
+ }
+ }
+
+ return multiplyToomCook3(this, val);
+ }
+ }
+ }
+
+ private static BigInteger multiplyByInt(int[] x, int y, int sign) {
+ if (Integer.bitCount(y) == 1) {
+ return new BigInteger(shiftLeft(x,Integer.numberOfTrailingZeros(y)), sign);
+ }
+ int xlen = x.length;
+ int[] rmag = new int[xlen + 1];
+ long carry = 0;
+ long yl = y & LONG_MASK;
+ int rstart = rmag.length - 1;
+ for (int i = xlen - 1; i >= 0; i--) {
+ long product = (x[i] & LONG_MASK) * yl + carry;
+ rmag[rstart--] = (int)product;
+ carry = product >>> 32;
+ }
+ if (carry == 0L) {
+ rmag = java.util.Arrays.copyOfRange(rmag, 1, rmag.length);
+ } else {
+ rmag[rstart] = (int)carry;
+ }
+ return new BigInteger(rmag, sign);
+ }
+
+ /**
+ * Package private methods used by BigDecimal code to multiply a BigInteger
+ * with a long. Assumes v is not equal to INFLATED.
+ */
+ BigInteger multiply(long v) {
+ if (v == 0 || signum == 0)
+ return ZERO;
+ if (v == Long.MIN_VALUE)
+ return multiply(BigInteger.valueOf(v));
+ int rsign = (v > 0 ? signum : -signum);
+ if (v < 0)
+ v = -v;
+ long dh = v >>> 32; // higher order bits
+ long dl = v & LONG_MASK; // lower order bits
+
+ int xlen = mag.length;
+ int[] value = mag;
+ int[] rmag = (dh == 0L) ? (new int[xlen + 1]) : (new int[xlen + 2]);
+ long carry = 0;
+ int rstart = rmag.length - 1;
+ for (int i = xlen - 1; i >= 0; i--) {
+ long product = (value[i] & LONG_MASK) * dl + carry;
+ rmag[rstart--] = (int)product;
+ carry = product >>> 32;
+ }
+ rmag[rstart] = (int)carry;
+ if (dh != 0L) {
+ carry = 0;
+ rstart = rmag.length - 2;
+ for (int i = xlen - 1; i >= 0; i--) {
+ long product = (value[i] & LONG_MASK) * dh +
+ (rmag[rstart] & LONG_MASK) + carry;
+ rmag[rstart--] = (int)product;
+ carry = product >>> 32;
+ }
+ rmag[0] = (int)carry;
+ }
+ if (carry == 0L)
+ rmag = java.util.Arrays.copyOfRange(rmag, 1, rmag.length);
+ return new BigInteger(rmag, rsign);
+ }
+
+ /**
+ * Multiplies int arrays x and y to the specified lengths and places
+ * the result into z. There will be no leading zeros in the resultant array.
+ */
+ private static int[] multiplyToLen(int[] x, int xlen, int[] y, int ylen, int[] z) {
+ int xstart = xlen - 1;
+ int ystart = ylen - 1;
+
+ if (z == null || z.length < (xlen+ ylen))
+ z = new int[xlen+ylen];
+
+ long carry = 0;
+ for (int j=ystart, k=ystart+1+xstart; j >= 0; j--, k--) {
+ long product = (y[j] & LONG_MASK) *
+ (x[xstart] & LONG_MASK) + carry;
+ z[k] = (int)product;
+ carry = product >>> 32;
+ }
+ z[xstart] = (int)carry;
+
+ for (int i = xstart-1; i >= 0; i--) {
+ carry = 0;
+ for (int j=ystart, k=ystart+1+i; j >= 0; j--, k--) {
+ long product = (y[j] & LONG_MASK) *
+ (x[i] & LONG_MASK) +
+ (z[k] & LONG_MASK) + carry;
+ z[k] = (int)product;
+ carry = product >>> 32;
+ }
+ z[i] = (int)carry;
+ }
+ return z;
+ }
+
+ /**
+ * Multiplies two BigIntegers using the Karatsuba multiplication
+ * algorithm. This is a recursive divide-and-conquer algorithm which is
+ * more efficient for large numbers than what is commonly called the
+ * "grade-school" algorithm used in multiplyToLen. If the numbers to be
+ * multiplied have length n, the "grade-school" algorithm has an
+ * asymptotic complexity of O(n^2). In contrast, the Karatsuba algorithm
+ * has complexity of O(n^(log2(3))), or O(n^1.585). It achieves this
+ * increased performance by doing 3 multiplies instead of 4 when
+ * evaluating the product. As it has some overhead, should be used when
+ * both numbers are larger than a certain threshold (found
+ * experimentally).
+ *
+ * See: http://en.wikipedia.org/wiki/Karatsuba_algorithm
+ */
+ private static BigInteger multiplyKaratsuba(BigInteger x, BigInteger y) {
+ int xlen = x.mag.length;
+ int ylen = y.mag.length;
+
+ // The number of ints in each half of the number.
+ int half = (Math.max(xlen, ylen)+1) / 2;
+
+ // xl and yl are the lower halves of x and y respectively,
+ // xh and yh are the upper halves.
+ BigInteger xl = x.getLower(half);
+ BigInteger xh = x.getUpper(half);
+ BigInteger yl = y.getLower(half);
+ BigInteger yh = y.getUpper(half);
+
+ BigInteger p1 = xh.multiply(yh); // p1 = xh*yh
+ BigInteger p2 = xl.multiply(yl); // p2 = xl*yl
+
+ // p3=(xh+xl)*(yh+yl)
+ BigInteger p3 = xh.add(xl).multiply(yh.add(yl));
+
+ // result = p1 * 2^(32*2*half) + (p3 - p1 - p2) * 2^(32*half) + p2
+ BigInteger result = p1.shiftLeft(32*half).add(p3.subtract(p1).subtract(p2)).shiftLeft(32*half).add(p2);
+
+ if (x.signum != y.signum) {
+ return result.negate();
+ } else {
+ return result;
+ }
+ }
+
+ /**
+ * Multiplies two BigIntegers using a 3-way Toom-Cook multiplication
+ * algorithm. This is a recursive divide-and-conquer algorithm which is
+ * more efficient for large numbers than what is commonly called the
+ * "grade-school" algorithm used in multiplyToLen. If the numbers to be
+ * multiplied have length n, the "grade-school" algorithm has an
+ * asymptotic complexity of O(n^2). In contrast, 3-way Toom-Cook has a
+ * complexity of about O(n^1.465). It achieves this increased asymptotic
+ * performance by breaking each number into three parts and by doing 5
+ * multiplies instead of 9 when evaluating the product. Due to overhead
+ * (additions, shifts, and one division) in the Toom-Cook algorithm, it
+ * should only be used when both numbers are larger than a certain
+ * threshold (found experimentally). This threshold is generally larger
+ * than that for Karatsuba multiplication, so this algorithm is generally
+ * only used when numbers become significantly larger.
+ *
+ * The algorithm used is the "optimal" 3-way Toom-Cook algorithm outlined
+ * by Marco Bodrato.
+ *
+ * See: http://bodrato.it/toom-cook/
+ * http://bodrato.it/papers/#WAIFI2007
+ *
+ * "Towards Optimal Toom-Cook Multiplication for Univariate and
+ * Multivariate Polynomials in Characteristic 2 and 0." by Marco BODRATO;
+ * In C.Carlet and B.Sunar, Eds., "WAIFI'07 proceedings", p. 116-133,
+ * LNCS #4547. Springer, Madrid, Spain, June 21-22, 2007.
+ *
+ */
+ private static BigInteger multiplyToomCook3(BigInteger a, BigInteger b) {
+ int alen = a.mag.length;
+ int blen = b.mag.length;
+
+ int largest = Math.max(alen, blen);
+
+ // k is the size (in ints) of the lower-order slices.
+ int k = (largest+2)/3; // Equal to ceil(largest/3)
+
+ // r is the size (in ints) of the highest-order slice.
+ int r = largest - 2*k;
+
+ // Obtain slices of the numbers. a2 and b2 are the most significant
+ // bits of the numbers a and b, and a0 and b0 the least significant.
+ BigInteger a0, a1, a2, b0, b1, b2;
+ a2 = a.getToomSlice(k, r, 0, largest);
+ a1 = a.getToomSlice(k, r, 1, largest);
+ a0 = a.getToomSlice(k, r, 2, largest);
+ b2 = b.getToomSlice(k, r, 0, largest);
+ b1 = b.getToomSlice(k, r, 1, largest);
+ b0 = b.getToomSlice(k, r, 2, largest);
+
+ BigInteger v0, v1, v2, vm1, vinf, t1, t2, tm1, da1, db1;
+
+ v0 = a0.multiply(b0, true);
+ da1 = a2.add(a0);
+ db1 = b2.add(b0);
+ vm1 = da1.subtract(a1).multiply(db1.subtract(b1), true);
+ da1 = da1.add(a1);
+ db1 = db1.add(b1);
+ v1 = da1.multiply(db1, true);
+ v2 = da1.add(a2).shiftLeft(1).subtract(a0).multiply(
+ db1.add(b2).shiftLeft(1).subtract(b0), true);
+ vinf = a2.multiply(b2, true);
+
+ // The algorithm requires two divisions by 2 and one by 3.
+ // All divisions are known to be exact, that is, they do not produce
+ // remainders, and all results are positive. The divisions by 2 are
+ // implemented as right shifts which are relatively efficient, leaving
+ // only an exact division by 3, which is done by a specialized
+ // linear-time algorithm.
+ t2 = v2.subtract(vm1).exactDivideBy3();
+ tm1 = v1.subtract(vm1).shiftRight(1);
+ t1 = v1.subtract(v0);
+ t2 = t2.subtract(t1).shiftRight(1);
+ t1 = t1.subtract(tm1).subtract(vinf);
+ t2 = t2.subtract(vinf.shiftLeft(1));
+ tm1 = tm1.subtract(t2);
+
+ // Number of bits to shift left.
+ int ss = k*32;
+
+ BigInteger result = vinf.shiftLeft(ss).add(t2).shiftLeft(ss).add(t1).shiftLeft(ss).add(tm1).shiftLeft(ss).add(v0);
+
+ if (a.signum != b.signum) {
+ return result.negate();
+ } else {
+ return result;
+ }
+ }
+
+
+ /**
+ * Returns a slice of a BigInteger for use in Toom-Cook multiplication.
+ *
+ * @param lowerSize The size of the lower-order bit slices.
+ * @param upperSize The size of the higher-order bit slices.
+ * @param slice The index of which slice is requested, which must be a
+ * number from 0 to size-1. Slice 0 is the highest-order bits, and slice
+ * size-1 are the lowest-order bits. Slice 0 may be of different size than
+ * the other slices.
+ * @param fullsize The size of the larger integer array, used to align
+ * slices to the appropriate position when multiplying different-sized
+ * numbers.
+ */
+ private BigInteger getToomSlice(int lowerSize, int upperSize, int slice,
+ int fullsize) {
+ int start, end, sliceSize, len, offset;
+
+ len = mag.length;
+ offset = fullsize - len;
+
+ if (slice == 0) {
+ start = 0 - offset;
+ end = upperSize - 1 - offset;
+ } else {
+ start = upperSize + (slice-1)*lowerSize - offset;
+ end = start + lowerSize - 1;
+ }
+
+ if (start < 0) {
+ start = 0;
+ }
+ if (end < 0) {
+ return ZERO;
+ }
+
+ sliceSize = (end-start) + 1;
+
+ if (sliceSize <= 0) {
+ return ZERO;
+ }
+
+ // While performing Toom-Cook, all slices are positive and
+ // the sign is adjusted when the final number is composed.
+ if (start == 0 && sliceSize >= len) {
+ return this.abs();
+ }
+
+ int intSlice[] = new int[sliceSize];
+ System.arraycopy(mag, start, intSlice, 0, sliceSize);
+
+ return new BigInteger(trustedStripLeadingZeroInts(intSlice), 1);
+ }
+
+ /**
+ * Does an exact division (that is, the remainder is known to be zero)
+ * of the specified number by 3. This is used in Toom-Cook
+ * multiplication. This is an efficient algorithm that runs in linear
+ * time. If the argument is not exactly divisible by 3, results are
+ * undefined. Note that this is expected to be called with positive
+ * arguments only.
+ */
+ private BigInteger exactDivideBy3() {
+ int len = mag.length;
+ int[] result = new int[len];
+ long x, w, q, borrow;
+ borrow = 0L;
+ for (int i=len-1; i >= 0; i--) {
+ x = (mag[i] & LONG_MASK);
+ w = x - borrow;
+ if (borrow > x) { // Did we make the number go negative?
+ borrow = 1L;
+ } else {
+ borrow = 0L;
+ }
+
+ // 0xAAAAAAAB is the modular inverse of 3 (mod 2^32). Thus,
+ // the effect of this is to divide by 3 (mod 2^32).
+ // This is much faster than division on most architectures.
+ q = (w * 0xAAAAAAABL) & LONG_MASK;
+ result[i] = (int) q;
+
+ // Now check the borrow. The second check can of course be
+ // eliminated if the first fails.
+ if (q >= 0x55555556L) {
+ borrow++;
+ if (q >= 0xAAAAAAABL)
+ borrow++;
+ }
+ }
+ result = trustedStripLeadingZeroInts(result);
+ return new BigInteger(result, signum);
+ }
+
+ /**
+ * Returns a new BigInteger representing n lower ints of the number.
+ * This is used by Karatsuba multiplication and Karatsuba squaring.
+ */
+ private BigInteger getLower(int n) {
+ int len = mag.length;
+
+ if (len <= n) {
+ return abs();
+ }
+
+ int lowerInts[] = new int[n];
+ System.arraycopy(mag, len-n, lowerInts, 0, n);
+
+ return new BigInteger(trustedStripLeadingZeroInts(lowerInts), 1);
+ }
+
+ /**
+ * Returns a new BigInteger representing mag.length-n upper
+ * ints of the number. This is used by Karatsuba multiplication and
+ * Karatsuba squaring.
+ */
+ private BigInteger getUpper(int n) {
+ int len = mag.length;
+
+ if (len <= n) {
+ return ZERO;
+ }
+
+ int upperLen = len - n;
+ int upperInts[] = new int[upperLen];
+ System.arraycopy(mag, 0, upperInts, 0, upperLen);
+
+ return new BigInteger(trustedStripLeadingZeroInts(upperInts), 1);
+ }
+
+ // Squaring
+
+ /**
+ * Returns a BigInteger whose value is {@code (this2)}.
+ *
+ * @return {@code this2}
+ */
+ private BigInteger square() {
+ return square(false);
+ }
+
+ /**
+ * Returns a BigInteger whose value is {@code (this2)}. If
+ * the invocation is recursive certain overflow checks are skipped.
+ *
+ * @param isRecursion whether this is a recursive invocation
+ * @return {@code this2}
+ */
+ private BigInteger square(boolean isRecursion) {
+ if (signum == 0) {
+ return ZERO;
+ }
+ int len = mag.length;
+
+ if (len < KARATSUBA_SQUARE_THRESHOLD) {
+ int[] z = squareToLen(mag, len, null);
+ return new BigInteger(trustedStripLeadingZeroInts(z), 1);
+ } else {
+ if (len < TOOM_COOK_SQUARE_THRESHOLD) {
+ return squareKaratsuba();
+ } else {
+ //
+ // For a discussion of overflow detection see multiply()
+ //
+ if (!isRecursion) {
+ if (bitLength(mag, mag.length) > 16L*MAX_MAG_LENGTH) {
+ reportOverflow();
+ }
+ }
+
+ return squareToomCook3();
+ }
+ }
+ }
+
+ /**
+ * Squares the contents of the int array x. The result is placed into the
+ * int array z. The contents of x are not changed.
+ */
+ private static final int[] squareToLen(int[] x, int len, int[] z) {
+ int zlen = len << 1;
+ if (z == null || z.length < zlen)
+ z = new int[zlen];
+
+ // Execute checks before calling intrinsified method.
+ implSquareToLenChecks(x, len, z, zlen);
+ return implSquareToLen(x, len, z, zlen);
+ }
+
+ /**
+ * Parameters validation.
+ */
+ private static void implSquareToLenChecks(int[] x, int len, int[] z, int zlen) throws RuntimeException {
+ if (len < 1) {
+ throw new IllegalArgumentException("invalid input length: " + len);
+ }
+ if (len > x.length) {
+ throw new IllegalArgumentException("input length out of bound: " +
+ len + " > " + x.length);
+ }
+ if (len * 2 > z.length) {
+ throw new IllegalArgumentException("input length out of bound: " +
+ (len * 2) + " > " + z.length);
+ }
+ if (zlen < 1) {
+ throw new IllegalArgumentException("invalid input length: " + zlen);
+ }
+ if (zlen > z.length) {
+ throw new IllegalArgumentException("input length out of bound: " +
+ len + " > " + z.length);
+ }
+ }
+
+ /**
+ * Java Runtime may use intrinsic for this method.
+ */
+ private static final int[] implSquareToLen(int[] x, int len, int[] z, int zlen) {
+ /*
+ * The algorithm used here is adapted from Colin Plumb's C library.
+ * Technique: Consider the partial products in the multiplication
+ * of "abcde" by itself:
+ *
+ * a b c d e
+ * * a b c d e
+ * ==================
+ * ae be ce de ee
+ * ad bd cd dd de
+ * ac bc cc cd ce
+ * ab bb bc bd be
+ * aa ab ac ad ae
+ *
+ * Note that everything above the main diagonal:
+ * ae be ce de = (abcd) * e
+ * ad bd cd = (abc) * d
+ * ac bc = (ab) * c
+ * ab = (a) * b
+ *
+ * is a copy of everything below the main diagonal:
+ * de
+ * cd ce
+ * bc bd be
+ * ab ac ad ae
+ *
+ * Thus, the sum is 2 * (off the diagonal) + diagonal.
+ *
+ * This is accumulated beginning with the diagonal (which
+ * consist of the squares of the digits of the input), which is then
+ * divided by two, the off-diagonal added, and multiplied by two
+ * again. The low bit is simply a copy of the low bit of the
+ * input, so it doesn't need special care.
+ */
+
+ // Store the squares, right shifted one bit (i.e., divided by 2)
+ int lastProductLowWord = 0;
+ for (int j=0, i=0; j < len; j++) {
+ long piece = (x[j] & LONG_MASK);
+ long product = piece * piece;
+ z[i++] = (lastProductLowWord << 31) | (int)(product >>> 33);
+ z[i++] = (int)(product >>> 1);
+ lastProductLowWord = (int)product;
+ }
+
+ // Add in off-diagonal sums
+ for (int i=len, offset=1; i > 0; i--, offset+=2) {
+ int t = x[i-1];
+ t = mulAdd(z, x, offset, i-1, t);
+ addOne(z, offset-1, i, t);
+ }
+
+ // Shift back up and set low bit
+ primitiveLeftShift(z, zlen, 1);
+ z[zlen-1] |= x[len-1] & 1;
+
+ return z;
+ }
+
+ /**
+ * Squares a BigInteger using the Karatsuba squaring algorithm. It should
+ * be used when both numbers are larger than a certain threshold (found
+ * experimentally). It is a recursive divide-and-conquer algorithm that
+ * has better asymptotic performance than the algorithm used in
+ * squareToLen.
+ */
+ private BigInteger squareKaratsuba() {
+ int half = (mag.length+1) / 2;
+
+ BigInteger xl = getLower(half);
+ BigInteger xh = getUpper(half);
+
+ BigInteger xhs = xh.square(); // xhs = xh^2
+ BigInteger xls = xl.square(); // xls = xl^2
+
+ // xh^2 << 64 + (((xl+xh)^2 - (xh^2 + xl^2)) << 32) + xl^2
+ return xhs.shiftLeft(half*32).add(xl.add(xh).square().subtract(xhs.add(xls))).shiftLeft(half*32).add(xls);
+ }
+
+ /**
+ * Squares a BigInteger using the 3-way Toom-Cook squaring algorithm. It
+ * should be used when both numbers are larger than a certain threshold
+ * (found experimentally). It is a recursive divide-and-conquer algorithm
+ * that has better asymptotic performance than the algorithm used in
+ * squareToLen or squareKaratsuba.
+ */
+ private BigInteger squareToomCook3() {
+ int len = mag.length;
+
+ // k is the size (in ints) of the lower-order slices.
+ int k = (len+2)/3; // Equal to ceil(largest/3)
+
+ // r is the size (in ints) of the highest-order slice.
+ int r = len - 2*k;
+
+ // Obtain slices of the numbers. a2 is the most significant
+ // bits of the number, and a0 the least significant.
+ BigInteger a0, a1, a2;
+ a2 = getToomSlice(k, r, 0, len);
+ a1 = getToomSlice(k, r, 1, len);
+ a0 = getToomSlice(k, r, 2, len);
+ BigInteger v0, v1, v2, vm1, vinf, t1, t2, tm1, da1;
+
+ v0 = a0.square(true);
+ da1 = a2.add(a0);
+ vm1 = da1.subtract(a1).square(true);
+ da1 = da1.add(a1);
+ v1 = da1.square(true);
+ vinf = a2.square(true);
+ v2 = da1.add(a2).shiftLeft(1).subtract(a0).square(true);
+
+ // The algorithm requires two divisions by 2 and one by 3.
+ // All divisions are known to be exact, that is, they do not produce
+ // remainders, and all results are positive. The divisions by 2 are
+ // implemented as right shifts which are relatively efficient, leaving
+ // only a division by 3.
+ // The division by 3 is done by an optimized algorithm for this case.
+ t2 = v2.subtract(vm1).exactDivideBy3();
+ tm1 = v1.subtract(vm1).shiftRight(1);
+ t1 = v1.subtract(v0);
+ t2 = t2.subtract(t1).shiftRight(1);
+ t1 = t1.subtract(tm1).subtract(vinf);
+ t2 = t2.subtract(vinf.shiftLeft(1));
+ tm1 = tm1.subtract(t2);
+
+ // Number of bits to shift left.
+ int ss = k*32;
+
+ return vinf.shiftLeft(ss).add(t2).shiftLeft(ss).add(t1).shiftLeft(ss).add(tm1).shiftLeft(ss).add(v0);
+ }
+
+ // Division
+
+ /**
+ * Returns a BigInteger whose value is {@code (this / val)}.
+ *
+ * @param val value by which this BigInteger is to be divided.
+ * @return {@code this / val}
+ * @throws ArithmeticException if {@code val} is zero.
+ */
+ public BigInteger divide(BigInteger val) {
+ if (val.mag.length < BURNIKEL_ZIEGLER_THRESHOLD ||
+ mag.length - val.mag.length < BURNIKEL_ZIEGLER_OFFSET) {
+ return divideKnuth(val);
+ } else {
+ return divideBurnikelZiegler(val);
+ }
+ }
+
+ /**
+ * Returns a BigInteger whose value is {@code (this / val)} using an O(n^2) algorithm from Knuth.
+ *
+ * @param val value by which this BigInteger is to be divided.
+ * @return {@code this / val}
+ * @throws ArithmeticException if {@code val} is zero.
+ * @see MutableBigInteger#divideKnuth(MutableBigInteger, MutableBigInteger, boolean)
+ */
+ private BigInteger divideKnuth(BigInteger val) {
+ MutableBigInteger q = new MutableBigInteger(),
+ a = new MutableBigInteger(this.mag),
+ b = new MutableBigInteger(val.mag);
+
+ a.divideKnuth(b, q, false);
+ return q.toBigInteger(this.signum * val.signum);
+ }
+
+ /**
+ * Returns an array of two BigIntegers containing {@code (this / val)}
+ * followed by {@code (this % val)}.
+ *
+ * @param val value by which this BigInteger is to be divided, and the
+ * remainder computed.
+ * @return an array of two BigIntegers: the quotient {@code (this / val)}
+ * is the initial element, and the remainder {@code (this % val)}
+ * is the final element.
+ * @throws ArithmeticException if {@code val} is zero.
+ */
+ public BigInteger[] divideAndRemainder(BigInteger val) {
+ if (val.mag.length < BURNIKEL_ZIEGLER_THRESHOLD ||
+ mag.length - val.mag.length < BURNIKEL_ZIEGLER_OFFSET) {
+ return divideAndRemainderKnuth(val);
+ } else {
+ return divideAndRemainderBurnikelZiegler(val);
+ }
+ }
+
+ /** Long division */
+ private BigInteger[] divideAndRemainderKnuth(BigInteger val) {
+ BigInteger[] result = new BigInteger[2];
+ MutableBigInteger q = new MutableBigInteger(),
+ a = new MutableBigInteger(this.mag),
+ b = new MutableBigInteger(val.mag);
+ MutableBigInteger r = a.divideKnuth(b, q);
+ result[0] = q.toBigInteger(this.signum == val.signum ? 1 : -1);
+ result[1] = r.toBigInteger(this.signum);
+ return result;
+ }
+
+ /**
+ * Returns a BigInteger whose value is {@code (this % val)}.
+ *
+ * @param val value by which this BigInteger is to be divided, and the
+ * remainder computed.
+ * @return {@code this % val}
+ * @throws ArithmeticException if {@code val} is zero.
+ */
+ public BigInteger remainder(BigInteger val) {
+ if (val.mag.length < BURNIKEL_ZIEGLER_THRESHOLD ||
+ mag.length - val.mag.length < BURNIKEL_ZIEGLER_OFFSET) {
+ return remainderKnuth(val);
+ } else {
+ return remainderBurnikelZiegler(val);
+ }
+ }
+
+ /** Long division */
+ private BigInteger remainderKnuth(BigInteger val) {
+ MutableBigInteger q = new MutableBigInteger(),
+ a = new MutableBigInteger(this.mag),
+ b = new MutableBigInteger(val.mag);
+
+ return a.divideKnuth(b, q).toBigInteger(this.signum);
+ }
+
+ /**
+ * Calculates {@code this / val} using the Burnikel-Ziegler algorithm.
+ * @param val the divisor
+ * @return {@code this / val}
+ */
+ private BigInteger divideBurnikelZiegler(BigInteger val) {
+ return divideAndRemainderBurnikelZiegler(val)[0];
+ }
+
+ /**
+ * Calculates {@code this % val} using the Burnikel-Ziegler algorithm.
+ * @param val the divisor
+ * @return {@code this % val}
+ */
+ private BigInteger remainderBurnikelZiegler(BigInteger val) {
+ return divideAndRemainderBurnikelZiegler(val)[1];
+ }
+
+ /**
+ * Computes {@code this / val} and {@code this % val} using the
+ * Burnikel-Ziegler algorithm.
+ * @param val the divisor
+ * @return an array containing the quotient and remainder
+ */
+ private BigInteger[] divideAndRemainderBurnikelZiegler(BigInteger val) {
+ MutableBigInteger q = new MutableBigInteger();
+ MutableBigInteger r = new MutableBigInteger(this).divideAndRemainderBurnikelZiegler(new MutableBigInteger(val), q);
+ BigInteger qBigInt = q.isZero() ? ZERO : q.toBigInteger(signum*val.signum);
+ BigInteger rBigInt = r.isZero() ? ZERO : r.toBigInteger(signum);
+ return new BigInteger[] {qBigInt, rBigInt};
+ }
+
+ /**
+ * Returns a BigInteger whose value is (thisexponent).
+ * Note that {@code exponent} is an integer rather than a BigInteger.
+ *
+ * @param exponent exponent to which this BigInteger is to be raised.
+ * @return thisexponent
+ * @throws ArithmeticException {@code exponent} is negative. (This would
+ * cause the operation to yield a non-integer value.)
+ */
+ public BigInteger pow(int exponent) {
+ if (exponent < 0) {
+ throw new ArithmeticException("Negative exponent");
+ }
+ if (signum == 0) {
+ return (exponent == 0 ? ONE : this);
+ }
+
+ BigInteger partToSquare = this.abs();
+
+ // Factor out powers of two from the base, as the exponentiation of
+ // these can be done by left shifts only.
+ // The remaining part can then be exponentiated faster. The
+ // powers of two will be multiplied back at the end.
+ int powersOfTwo = partToSquare.getLowestSetBit();
+ long bitsToShiftLong = (long)powersOfTwo * exponent;
+ if (bitsToShiftLong > Integer.MAX_VALUE) {
+ reportOverflow();
+ }
+ int bitsToShift = (int)bitsToShiftLong;
+
+ int remainingBits;
+
+ // Factor the powers of two out quickly by shifting right, if needed.
+ if (powersOfTwo > 0) {
+ partToSquare = partToSquare.shiftRight(powersOfTwo);
+ remainingBits = partToSquare.bitLength();
+ if (remainingBits == 1) { // Nothing left but +/- 1?
+ if (signum < 0 && (exponent&1) == 1) {
+ return NEGATIVE_ONE.shiftLeft(bitsToShift);
+ } else {
+ return ONE.shiftLeft(bitsToShift);
+ }
+ }
+ } else {
+ remainingBits = partToSquare.bitLength();
+ if (remainingBits == 1) { // Nothing left but +/- 1?
+ if (signum < 0 && (exponent&1) == 1) {
+ return NEGATIVE_ONE;
+ } else {
+ return ONE;
+ }
+ }
+ }
+
+ // This is a quick way to approximate the size of the result,
+ // similar to doing log2[n] * exponent. This will give an upper bound
+ // of how big the result can be, and which algorithm to use.
+ long scaleFactor = (long)remainingBits * exponent;
+
+ // Use slightly different algorithms for small and large operands.
+ // See if the result will safely fit into a long. (Largest 2^63-1)
+ if (partToSquare.mag.length == 1 && scaleFactor <= 62) {
+ // Small number algorithm. Everything fits into a long.
+ int newSign = (signum <0 && (exponent&1) == 1 ? -1 : 1);
+ long result = 1;
+ long baseToPow2 = partToSquare.mag[0] & LONG_MASK;
+
+ int workingExponent = exponent;
+
+ // Perform exponentiation using repeated squaring trick
+ while (workingExponent != 0) {
+ if ((workingExponent & 1) == 1) {
+ result = result * baseToPow2;
+ }
+
+ if ((workingExponent >>>= 1) != 0) {
+ baseToPow2 = baseToPow2 * baseToPow2;
+ }
+ }
+
+ // Multiply back the powers of two (quickly, by shifting left)
+ if (powersOfTwo > 0) {
+ if (bitsToShift + scaleFactor <= 62) { // Fits in long?
+ return valueOf((result << bitsToShift) * newSign);
+ } else {
+ return valueOf(result*newSign).shiftLeft(bitsToShift);
+ }
+ } else {
+ return valueOf(result*newSign);
+ }
+ } else {
+ if ((long)bitLength() * exponent / Integer.SIZE > MAX_MAG_LENGTH) {
+ reportOverflow();
+ }
+
+ // Large number algorithm. This is basically identical to
+ // the algorithm above, but calls multiply() and square()
+ // which may use more efficient algorithms for large numbers.
+ BigInteger answer = ONE;
+
+ int workingExponent = exponent;
+ // Perform exponentiation using repeated squaring trick
+ while (workingExponent != 0) {
+ if ((workingExponent & 1) == 1) {
+ answer = answer.multiply(partToSquare);
+ }
+
+ if ((workingExponent >>>= 1) != 0) {
+ partToSquare = partToSquare.square();
+ }
+ }
+ // Multiply back the (exponentiated) powers of two (quickly,
+ // by shifting left)
+ if (powersOfTwo > 0) {
+ answer = answer.shiftLeft(bitsToShift);
+ }
+
+ if (signum < 0 && (exponent&1) == 1) {
+ return answer.negate();
+ } else {
+ return answer;
+ }
+ }
+ }
+
+ /**
+ * Returns a BigInteger whose value is the greatest common divisor of
+ * {@code abs(this)} and {@code abs(val)}. Returns 0 if
+ * {@code this == 0 && val == 0}.
+ *
+ * @param val value with which the GCD is to be computed.
+ * @return {@code GCD(abs(this), abs(val))}
+ */
+ public BigInteger gcd(BigInteger val) {
+ if (val.signum == 0)
+ return this.abs();
+ else if (this.signum == 0)
+ return val.abs();
+
+ MutableBigInteger a = new MutableBigInteger(this);
+ MutableBigInteger b = new MutableBigInteger(val);
+
+ MutableBigInteger result = a.hybridGCD(b);
+
+ return result.toBigInteger(1);
+ }
+
+ /**
+ * Package private method to return bit length for an integer.
+ */
+ static int bitLengthForInt(int n) {
+ return 32 - Integer.numberOfLeadingZeros(n);
+ }
+
+ /**
+ * Left shift int array a up to len by n bits. Returns the array that
+ * results from the shift since space may have to be reallocated.
+ */
+ private static int[] leftShift(int[] a, int len, int n) {
+ int nInts = n >>> 5;
+ int nBits = n&0x1F;
+ int bitsInHighWord = bitLengthForInt(a[0]);
+
+ // If shift can be done without recopy, do so
+ if (n <= (32-bitsInHighWord)) {
+ primitiveLeftShift(a, len, nBits);
+ return a;
+ } else { // Array must be resized
+ if (nBits <= (32-bitsInHighWord)) {
+ int result[] = new int[nInts+len];
+ System.arraycopy(a, 0, result, 0, len);
+ primitiveLeftShift(result, result.length, nBits);
+ return result;
+ } else {
+ int result[] = new int[nInts+len+1];
+ System.arraycopy(a, 0, result, 0, len);
+ primitiveRightShift(result, result.length, 32 - nBits);
+ return result;
+ }
+ }
+ }
+
+ // shifts a up to len right n bits assumes no leading zeros, 0 > 5; i < numWords; i++) {
+ // V = R * c (mod 2^j)
+ int v = r * c.value[c.offset + c.intLen-1];
+ // c = c + (v * p)
+ p.mul(v, temp);
+ c.add(temp);
+ // c = c / 2^j
+ c.intLen--;
+ }
+ int numBits = k & 0x1f;
+ if (numBits != 0) {
+ // V = R * c (mod 2^j)
+ int v = r * c.value[c.offset + c.intLen-1];
+ v &= ((1<
+ * (Unused)
+ * (Unused)
+ * (Unused)
+ * (Unused)
+ * Is double cached?
+ * Is float cached?
+ * Is long cached?
+ * Is integer cached?
+ */
+ private byte cacheInfo;
+ private int cachedInteger;
+ private long cachedLong;
+ private float cachedFloat;
+ private double cachedDouble;
+
+ /**
+ * This mask is used to obtain the value of an int as if it were unsigned.
+ */
+ final static long LONG_MASK = 0xffffffffL;
+
+ /**
+ * This constant limits {@code mag.length} of BigIntegers to the supported
+ * range.
+ */
+ private static final int MAX_MAG_LENGTH = Integer.MAX_VALUE / Integer.SIZE + 1; // (1 << 26)
+
+ /**
+ * Bit lengths larger than this constant can cause overflow in searchLen
+ * calculation and in BitSieve.singleSearch method.
+ */
+ private static final int PRIME_SEARCH_BIT_LENGTH_LIMIT = 500000000;
+
+ /**
+ * The threshold value for using Karatsuba multiplication. If the number
+ * of ints in both mag arrays are greater than this number, then
+ * Karatsuba multiplication will be used. This value is found
+ * experimentally to work well.
+ */
+ private static final int KARATSUBA_THRESHOLD = 80;
+
+ /**
+ * The threshold value for using 3-way Toom-Cook multiplication.
+ * If the number of ints in each mag array is greater than the
+ * Karatsuba threshold, and the number of ints in at least one of
+ * the mag arrays is greater than this threshold, then Toom-Cook
+ * multiplication will be used.
+ */
+ private static final int TOOM_COOK_THRESHOLD = 240;
+
+ /**
+ * The threshold value for using Karatsuba squaring. If the number
+ * of ints in the number are larger than this value,
+ * Karatsuba squaring will be used. This value is found
+ * experimentally to work well.
+ */
+ private static final int KARATSUBA_SQUARE_THRESHOLD = 128;
+
+ /**
+ * The threshold value for using Toom-Cook squaring. If the number
+ * of ints in the number are larger than this value,
+ * Toom-Cook squaring will be used. This value is found
+ * experimentally to work well.
+ */
+ private static final int TOOM_COOK_SQUARE_THRESHOLD = 216;
+
+ /**
+ * The threshold value for using Burnikel-Ziegler division. If the number
+ * of ints in the divisor are larger than this value, Burnikel-Ziegler
+ * division may be used. This value is found experimentally to work well.
+ */
+ static final int BURNIKEL_ZIEGLER_THRESHOLD = 80;
+
+ /**
+ * The offset value for using Burnikel-Ziegler division. If the number
+ * of ints in the divisor exceeds the Burnikel-Ziegler threshold, and the
+ * number of ints in the dividend is greater than the number of ints in the
+ * divisor plus this value, Burnikel-Ziegler division will be used. This
+ * value is found experimentally to work well.
+ */
+ static final int BURNIKEL_ZIEGLER_OFFSET = 40;
+
+ /**
+ * The threshold value for using Schoenhage recursive base conversion. If
+ * the number of ints in the number are larger than this value,
+ * the Schoenhage algorithm will be used. In practice, it appears that the
+ * Schoenhage routine is faster for any threshold down to 2, and is
+ * relatively flat for thresholds between 2-25, so this choice may be
+ * varied within this range for very small effect.
+ */
+ private static final int SCHOENHAGE_BASE_CONVERSION_THRESHOLD = 20;
+
+ /**
+ * The threshold value for using squaring code to perform multiplication
+ * of a {@code BigInteger} instance by itself. If the number of ints in
+ * the number are larger than this value, {@code multiply(this)} will
+ * return {@code square()}.
+ */
+ private static final int MULTIPLY_SQUARE_THRESHOLD = 20;
+
+ /**
+ * The threshold for using an intrinsic version of
+ * implMontgomeryXXX to perform Montgomery multiplication. If the
+ * number of ints in the number is more than this value we do not
+ * use the intrinsic.
+ */
+ private static final int MONTGOMERY_INTRINSIC_THRESHOLD = 512;
+
+ // Unused hack: Manage memory
+ public static final ObjectAllocator
+ * {@code this} and {@code b} must be nonnegative.
+ * @param b the divisor
+ * @param quotient output parameter for {@code this/b}
+ * @return the remainder
+ */
+ MutableBigInteger divideAndRemainderBurnikelZiegler(MutableBigInteger b, MutableBigInteger quotient) {
+ int r = intLen;
+ int s = b.intLen;
+
+ // Clear the quotient
+ quotient.offset = quotient.intLen = 0;
+
+ if (r < s) {
+ return this;
+ } else {
+ // Unlike Knuth division, we don't check for common powers of two here because
+ // BZ already runs faster if both numbers contain powers of two and cancelling them has no
+ // additional benefit.
+
+ // step 1: let m = min{2^k | (2^k)*BURNIKEL_ZIEGLER_THRESHOLD > s}
+ int m = 1 << (32-Integer.numberOfLeadingZeros(s/BigInteger.BURNIKEL_ZIEGLER_THRESHOLD));
+
+ int j = (s+m-1) / m; // step 2a: j = ceil(s/m)
+ int n = j * m; // step 2b: block length in 32-bit units
+ long n32 = 32L * n; // block length in bits
+ int sigma = (int) Math.max(0, n32 - b.bitLength()); // step 3: sigma = max{T | (2^T)*B < beta^n}
+ MutableBigInteger bShifted = new MutableBigInteger(b);
+ bShifted.safeLeftShift(sigma); // step 4a: shift b so its length is a multiple of n
+ MutableBigInteger aShifted = new MutableBigInteger (this);
+ aShifted.safeLeftShift(sigma); // step 4b: shift a by the same amount
+
+ // step 5: t is the number of blocks needed to accommodate a plus one additional bit
+ int t = (int) ((aShifted.bitLength()+n32) / n32);
+ if (t < 2) {
+ t = 2;
+ }
+
+ // step 6: conceptually split a into blocks a[t-1], ..., a[0]
+ MutableBigInteger a1 = aShifted.getBlock(t-1, t, n); // the most significant block of a
+
+ // step 7: z[t-2] = [a[t-1], a[t-2]]
+ MutableBigInteger z = aShifted.getBlock(t-2, t, n); // the second to most significant block
+ z.addDisjoint(a1, n); // z[t-2]
+
+ // do schoolbook division on blocks, dividing 2-block numbers by 1-block numbers
+ MutableBigInteger qi = new MutableBigInteger();
+ MutableBigInteger ri;
+ for (int i=t-2; i > 0; i--) {
+ // step 8a: compute (qi,ri) such that z=b*qi+ri
+ ri = z.divide2n1n(bShifted, qi);
+
+ // step 8b: z = [ri, a[i-1]]
+ z = aShifted.getBlock(i-1, t, n); // a[i-1]
+ z.addDisjoint(ri, n);
+ quotient.addShifted(qi, i*n); // update q (part of step 9)
+ }
+ // final iteration of step 8: do the loop one more time for i=0 but leave z unchanged
+ ri = z.divide2n1n(bShifted, qi);
+ quotient.add(qi);
+
+ ri.rightShift(sigma); // step 9: a and b were shifted, so shift back
+ return ri;
+ }
+ }
+
+ /**
+ * This method implements algorithm 1 from pg. 4 of the Burnikel-Ziegler paper.
+ * It divides a 2n-digit number by a n-digit number.
+ * The parameter beta is 232 so all shifts are multiples of 32 bits.
+ *
+ * {@code this} must be a nonnegative number such that {@code this.bitLength() <= 2*b.bitLength()}
+ * @param b a positive number such that {@code b.bitLength()} is even
+ * @param quotient output parameter for {@code this/b}
+ * @return {@code this%b}
+ */
+ private MutableBigInteger divide2n1n(MutableBigInteger b, MutableBigInteger quotient) {
+ int n = b.intLen;
+
+ // step 1: base case
+ if (n%2 != 0 || n < BigInteger.BURNIKEL_ZIEGLER_THRESHOLD) {
+ return divideKnuth(b, quotient);
+ }
+
+ // step 2: view this as [a1,a2,a3,a4] where each ai is n/2 ints or less
+ MutableBigInteger aUpper = new MutableBigInteger(this);
+ aUpper.safeRightShift(32*(n/2)); // aUpper = [a1,a2,a3]
+ keepLower(n/2); // this = a4
+
+ // step 3: q1=aUpper/b, r1=aUpper%b
+ MutableBigInteger q1 = new MutableBigInteger();
+ MutableBigInteger r1 = aUpper.divide3n2n(b, q1);
+
+ // step 4: quotient=[r1,this]/b, r2=[r1,this]%b
+ addDisjoint(r1, n/2); // this = [r1,this]
+ MutableBigInteger r2 = divide3n2n(b, quotient);
+
+ // step 5: let quotient=[q1,quotient] and return r2
+ quotient.addDisjoint(q1, n/2);
+ return r2;
+ }
+
+ /**
+ * This method implements algorithm 2 from pg. 5 of the Burnikel-Ziegler paper.
+ * It divides a 3n-digit number by a 2n-digit number.
+ * The parameter beta is 232 so all shifts are multiples of 32 bits.
+ *
+ * {@code this} must be a nonnegative number such that {@code 2*this.bitLength() <= 3*b.bitLength()}
+ * @param quotient output parameter for {@code this/b}
+ * @return {@code this%b}
+ */
+ private MutableBigInteger divide3n2n(MutableBigInteger b, MutableBigInteger quotient) {
+ int n = b.intLen / 2; // half the length of b in ints
+
+ // step 1: view this as [a1,a2,a3] where each ai is n ints or less; let a12=[a1,a2]
+ MutableBigInteger a12 = new MutableBigInteger(this);
+ a12.safeRightShift(32*n);
+
+ // step 2: view b as [b1,b2] where each bi is n ints or less
+ MutableBigInteger b1 = new MutableBigInteger(b);
+ b1.safeRightShift(n * 32);
+ BigInteger b2 = b.getLower(n);
+
+ MutableBigInteger r;
+ MutableBigInteger d;
+ if (compareShifted(b, n) < 0) {
+ // step 3a: if a1
+ * Used by Burnikel-Ziegler division.
+ * @param index the block index
+ * @param numBlocks the total number of blocks in {@code this} number
+ * @param blockLength length of one block in units of 32 bits
+ * @return
+ */
+ private MutableBigInteger getBlock(int index, int numBlocks, int blockLength) {
+ int blockStart = index * blockLength;
+ if (blockStart >= intLen) {
+ return new MutableBigInteger();
+ }
+
+ int blockEnd;
+ if (index == numBlocks-1) {
+ blockEnd = intLen;
+ } else {
+ blockEnd = (index+1) * blockLength;
+ }
+ if (blockEnd > intLen) {
+ return new MutableBigInteger();
+ }
+
+ int[] newVal = Arrays.copyOfRange(value, offset+intLen-blockEnd, offset+intLen-blockStart);
+ return new MutableBigInteger(newVal);
+ }
+
+ /** @see BigInteger#bitLength() */
+ long bitLength() {
+ if (intLen == 0)
+ return 0;
+ return intLen*32L - Integer.numberOfLeadingZeros(value[offset]);
+ }
+
+ /**
+ * Internally used to calculate the quotient of this div v and places the
+ * quotient in the provided MutableBigInteger object and the remainder is
+ * returned.
+ *
+ * @return the remainder of the division will be returned.
+ */
+ long divide(long v, MutableBigInteger quotient) {
+ if (v == 0)
+ throw new ArithmeticException("BigInteger divide by zero");
+
+ // Dividend is zero
+ if (intLen == 0) {
+ quotient.intLen = quotient.offset = 0;
+ return 0;
+ }
+ if (v < 0)
+ v = -v;
+
+ int d = (int)(v >>> 32);
+ quotient.clear();
+ // Special case on word divisor
+ if (d == 0)
+ return divideOneWord((int)v, quotient) & LONG_MASK;
+ else {
+ return divideLongMagnitude(v, quotient).toLong();
+ }
+ }
+
+ private static void copyAndShift(int[] src, int srcFrom, int srcLen, int[] dst, int dstFrom, int shift) {
+ int n2 = 32 - shift;
+ int c=src[srcFrom];
+ for (int i=0; i < srcLen-1; i++) {
+ int b = c;
+ c = src[++srcFrom];
+ dst[dstFrom+i] = (b << shift) | (c >>> n2);
+ }
+ dst[dstFrom+srcLen-1] = c << shift;
+ }
+
+ /**
+ * Divide this MutableBigInteger by the divisor.
+ * The quotient will be placed into the provided quotient object &
+ * the remainder object is returned.
+ */
+ private MutableBigInteger divideMagnitude(MutableBigInteger div,
+ MutableBigInteger quotient,
+ boolean needRemainder ) {
+ // assert div.intLen > 1
+ // D1 normalize the divisor
+ int shift = Integer.numberOfLeadingZeros(div.value[div.offset]);
+ // Copy divisor value to protect divisor
+ final int dlen = div.intLen;
+ int[] divisor;
+ MutableBigInteger rem; // Remainder starts as dividend with space for a leading zero
+ if (shift > 0) {
+ divisor = new int[dlen];
+ copyAndShift(div.value,div.offset,dlen,divisor,0,shift);
+ if (Integer.numberOfLeadingZeros(value[offset]) >= shift) {
+ int[] remarr = new int[intLen + 1];
+ rem = new MutableBigInteger(remarr);
+ rem.intLen = intLen;
+ rem.offset = 1;
+ copyAndShift(value,offset,intLen,remarr,1,shift);
+ } else {
+ int[] remarr = new int[intLen + 2];
+ rem = new MutableBigInteger(remarr);
+ rem.intLen = intLen+1;
+ rem.offset = 1;
+ int rFrom = offset;
+ int c=0;
+ int n2 = 32 - shift;
+ for (int i=1; i < intLen+1; i++,rFrom++) {
+ int b = c;
+ c = value[rFrom];
+ remarr[i] = (b << shift) | (c >>> n2);
+ }
+ remarr[intLen+1] = c << shift;
+ }
+ } else {
+ divisor = Arrays.copyOfRange(div.value, div.offset, div.offset + div.intLen);
+ rem = new MutableBigInteger(new int[intLen + 1]);
+ System.arraycopy(value, offset, rem.value, 1, intLen);
+ rem.intLen = intLen;
+ rem.offset = 1;
+ }
+
+ int nlen = rem.intLen;
+
+ // Set the quotient size
+ final int limit = nlen - dlen + 1;
+ if (quotient.value.length < limit) {
+ quotient.value = new int[limit];
+ quotient.offset = 0;
+ }
+ quotient.intLen = limit;
+ int[] q = quotient.value;
+
+
+ // Must insert leading 0 in rem if its length did not change
+ if (rem.intLen == nlen) {
+ rem.offset = 0;
+ rem.value[0] = 0;
+ rem.intLen++;
+ }
+
+ int dh = divisor[0];
+ long dhLong = dh & LONG_MASK;
+ int dl = divisor[1];
+
+ // D2 Initialize j
+ for (int j=0; j < limit-1; j++) {
+ // D3 Calculate qhat
+ // estimate qhat
+ int qhat = 0;
+ int qrem = 0;
+ boolean skipCorrection = false;
+ int nh = rem.value[j+rem.offset];
+ int nh2 = nh + 0x80000000;
+ int nm = rem.value[j+1+rem.offset];
+
+ if (nh == dh) {
+ qhat = ~0;
+ qrem = nh + nm;
+ skipCorrection = qrem + 0x80000000 < nh2;
+ } else {
+ long nChunk = (((long)nh) << 32) | (nm & LONG_MASK);
+ if (nChunk >= 0) {
+ qhat = (int) (nChunk / dhLong);
+ qrem = (int) (nChunk - (qhat * dhLong));
+ } else {
+ long tmp = divWord(nChunk, dh);
+ qhat = (int) (tmp & LONG_MASK);
+ qrem = (int) (tmp >>> 32);
+ }
+ }
+
+ if (qhat == 0)
+ continue;
+
+ if (!skipCorrection) { // Correct qhat
+ long nl = rem.value[j+2+rem.offset] & LONG_MASK;
+ long rs = ((qrem & LONG_MASK) << 32) | nl;
+ long estProduct = (dl & LONG_MASK) * (qhat & LONG_MASK);
+
+ if (unsignedLongCompare(estProduct, rs)) {
+ qhat--;
+ qrem = (int)((qrem & LONG_MASK) + dhLong);
+ if ((qrem & LONG_MASK) >= dhLong) {
+ estProduct -= (dl & LONG_MASK);
+ rs = ((qrem & LONG_MASK) << 32) | nl;
+ if (unsignedLongCompare(estProduct, rs))
+ qhat--;
+ }
+ }
+ }
+
+ // D4 Multiply and subtract
+ rem.value[j+rem.offset] = 0;
+ int borrow = mulsub(rem.value, divisor, qhat, dlen, j+rem.offset);
+
+ // D5 Test remainder
+ if (borrow + 0x80000000 > nh2) {
+ // D6 Add back
+ divadd(divisor, rem.value, j+1+rem.offset);
+ qhat--;
+ }
+
+ // Store the quotient digit
+ q[j] = qhat;
+ } // D7 loop on j
+ // D3 Calculate qhat
+ // estimate qhat
+ int qhat = 0;
+ int qrem = 0;
+ boolean skipCorrection = false;
+ int nh = rem.value[limit - 1 + rem.offset];
+ int nh2 = nh + 0x80000000;
+ int nm = rem.value[limit + rem.offset];
+
+ if (nh == dh) {
+ qhat = ~0;
+ qrem = nh + nm;
+ skipCorrection = qrem + 0x80000000 < nh2;
+ } else {
+ long nChunk = (((long) nh) << 32) | (nm & LONG_MASK);
+ if (nChunk >= 0) {
+ qhat = (int) (nChunk / dhLong);
+ qrem = (int) (nChunk - (qhat * dhLong));
+ } else {
+ long tmp = divWord(nChunk, dh);
+ qhat = (int) (tmp & LONG_MASK);
+ qrem = (int) (tmp >>> 32);
+ }
+ }
+ if (qhat != 0) {
+ if (!skipCorrection) { // Correct qhat
+ long nl = rem.value[limit + 1 + rem.offset] & LONG_MASK;
+ long rs = ((qrem & LONG_MASK) << 32) | nl;
+ long estProduct = (dl & LONG_MASK) * (qhat & LONG_MASK);
+
+ if (unsignedLongCompare(estProduct, rs)) {
+ qhat--;
+ qrem = (int) ((qrem & LONG_MASK) + dhLong);
+ if ((qrem & LONG_MASK) >= dhLong) {
+ estProduct -= (dl & LONG_MASK);
+ rs = ((qrem & LONG_MASK) << 32) | nl;
+ if (unsignedLongCompare(estProduct, rs))
+ qhat--;
+ }
+ }
+ }
+
+
+ // D4 Multiply and subtract
+ int borrow;
+ rem.value[limit - 1 + rem.offset] = 0;
+ if(needRemainder)
+ borrow = mulsub(rem.value, divisor, qhat, dlen, limit - 1 + rem.offset);
+ else
+ borrow = mulsubBorrow(rem.value, divisor, qhat, dlen, limit - 1 + rem.offset);
+
+ // D5 Test remainder
+ if (borrow + 0x80000000 > nh2) {
+ // D6 Add back
+ if(needRemainder)
+ divadd(divisor, rem.value, limit - 1 + 1 + rem.offset);
+ qhat--;
+ }
+
+ // Store the quotient digit
+ q[(limit - 1)] = qhat;
+ }
+
+
+ if (needRemainder) {
+ // D8 Unnormalize
+ if (shift > 0)
+ rem.rightShift(shift);
+ rem.normalize();
+ }
+ quotient.normalize();
+ return needRemainder ? rem : null;
+ }
+
+ /**
+ * Divide this MutableBigInteger by the divisor represented by positive long
+ * value. The quotient will be placed into the provided quotient object &
+ * the remainder object is returned.
+ */
+ private MutableBigInteger divideLongMagnitude(long ldivisor, MutableBigInteger quotient) {
+ // Remainder starts as dividend with space for a leading zero
+ MutableBigInteger rem = new MutableBigInteger(new int[intLen + 1]);
+ System.arraycopy(value, offset, rem.value, 1, intLen);
+ rem.intLen = intLen;
+ rem.offset = 1;
+
+ int nlen = rem.intLen;
+
+ int limit = nlen - 2 + 1;
+ if (quotient.value.length < limit) {
+ quotient.value = new int[limit];
+ quotient.offset = 0;
+ }
+ quotient.intLen = limit;
+ int[] q = quotient.value;
+
+ // D1 normalize the divisor
+ int shift = Long.numberOfLeadingZeros(ldivisor);
+ if (shift > 0) {
+ ldivisor<<=shift;
+ rem.leftShift(shift);
+ }
+
+ // Must insert leading 0 in rem if its length did not change
+ if (rem.intLen == nlen) {
+ rem.offset = 0;
+ rem.value[0] = 0;
+ rem.intLen++;
+ }
+
+ int dh = (int)(ldivisor >>> 32);
+ long dhLong = dh & LONG_MASK;
+ int dl = (int)(ldivisor & LONG_MASK);
+
+ // D2 Initialize j
+ for (int j = 0; j < limit; j++) {
+ // D3 Calculate qhat
+ // estimate qhat
+ int qhat = 0;
+ int qrem = 0;
+ boolean skipCorrection = false;
+ int nh = rem.value[j + rem.offset];
+ int nh2 = nh + 0x80000000;
+ int nm = rem.value[j + 1 + rem.offset];
+
+ if (nh == dh) {
+ qhat = ~0;
+ qrem = nh + nm;
+ skipCorrection = qrem + 0x80000000 < nh2;
+ } else {
+ long nChunk = (((long) nh) << 32) | (nm & LONG_MASK);
+ if (nChunk >= 0) {
+ qhat = (int) (nChunk / dhLong);
+ qrem = (int) (nChunk - (qhat * dhLong));
+ } else {
+ long tmp = divWord(nChunk, dh);
+ qhat =(int)(tmp & LONG_MASK);
+ qrem = (int)(tmp>>>32);
+ }
+ }
+
+ if (qhat == 0)
+ continue;
+
+ if (!skipCorrection) { // Correct qhat
+ long nl = rem.value[j + 2 + rem.offset] & LONG_MASK;
+ long rs = ((qrem & LONG_MASK) << 32) | nl;
+ long estProduct = (dl & LONG_MASK) * (qhat & LONG_MASK);
+
+ if (unsignedLongCompare(estProduct, rs)) {
+ qhat--;
+ qrem = (int) ((qrem & LONG_MASK) + dhLong);
+ if ((qrem & LONG_MASK) >= dhLong) {
+ estProduct -= (dl & LONG_MASK);
+ rs = ((qrem & LONG_MASK) << 32) | nl;
+ if (unsignedLongCompare(estProduct, rs))
+ qhat--;
+ }
+ }
+ }
+
+ // D4 Multiply and subtract
+ rem.value[j + rem.offset] = 0;
+ int borrow = mulsubLong(rem.value, dh, dl, qhat, j + rem.offset);
+
+ // D5 Test remainder
+ if (borrow + 0x80000000 > nh2) {
+ // D6 Add back
+ divaddLong(dh,dl, rem.value, j + 1 + rem.offset);
+ qhat--;
+ }
+
+ // Store the quotient digit
+ q[j] = qhat;
+ } // D7 loop on j
+
+ // D8 Unnormalize
+ if (shift > 0)
+ rem.rightShift(shift);
+
+ quotient.normalize();
+ rem.normalize();
+ return rem;
+ }
+
+ /**
+ * A primitive used for division by long.
+ * Specialized version of the method divadd.
+ * dh is a high part of the divisor, dl is a low part
+ */
+ private int divaddLong(int dh, int dl, int[] result, int offset) {
+ long carry = 0;
+
+ long sum = (dl & LONG_MASK) + (result[1+offset] & LONG_MASK);
+ result[1+offset] = (int)sum;
+
+ sum = (dh & LONG_MASK) + (result[offset] & LONG_MASK) + carry;
+ result[offset] = (int)sum;
+ carry = sum >>> 32;
+ return (int)carry;
+ }
+
+ /**
+ * This method is used for division by long.
+ * Specialized version of the method sulsub.
+ * dh is a high part of the divisor, dl is a low part
+ */
+ private int mulsubLong(int[] q, int dh, int dl, int x, int offset) {
+ long xLong = x & LONG_MASK;
+ offset += 2;
+ long product = (dl & LONG_MASK) * xLong;
+ long difference = q[offset] - product;
+ q[offset--] = (int)difference;
+ long carry = (product >>> 32)
+ + (((difference & LONG_MASK) >
+ (((~(int)product) & LONG_MASK))) ? 1:0);
+ product = (dh & LONG_MASK) * xLong + carry;
+ difference = q[offset] - product;
+ q[offset--] = (int)difference;
+ carry = (product >>> 32)
+ + (((difference & LONG_MASK) >
+ (((~(int)product) & LONG_MASK))) ? 1:0);
+ return (int)carry;
+ }
+
+ /**
+ * Compare two longs as if they were unsigned.
+ * Returns true iff one is bigger than two.
+ */
+ private boolean unsignedLongCompare(long one, long two) {
+ return (one+Long.MIN_VALUE) > (two+Long.MIN_VALUE);
+ }
+
+ /**
+ * This method divides a long quantity by an int to estimate
+ * qhat for two multi precision numbers. It is used when
+ * the signed value of n is less than zero.
+ * Returns long value where high 32 bits contain remainder value and
+ * low 32 bits contain quotient value.
+ */
+ static long divWord(long n, int d) {
+ long dLong = d & LONG_MASK;
+ long r;
+ long q;
+ if (dLong == 1) {
+ q = (int)n;
+ r = 0;
+ return (r << 32) | (q & LONG_MASK);
+ }
+
+ // Approximate the quotient and remainder
+ q = (n >>> 1) / (dLong >>> 1);
+ r = n - q*dLong;
+
+ // Correct the approximation
+ while (r < 0) {
+ r += dLong;
+ q--;
+ }
+ while (r >= dLong) {
+ r -= dLong;
+ q++;
+ }
+ // n - q*dlong == r && 0 <= r