diff --git a/src/main/java/com/volmit/iris/core/commands/CommandFind.java b/src/main/java/com/volmit/iris/core/commands/CommandFind.java index 0edb8ff2c..ac57b16e2 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandFind.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandFind.java @@ -38,8 +38,7 @@ public class CommandFind implements DecreeExecutor { ) { Engine e = engine(); - if(e == null) - { + if (e == null) { sender().sendMessage(C.GOLD + "Not in an Iris World!"); return; } @@ -54,8 +53,7 @@ public class CommandFind implements DecreeExecutor { ) { Engine e = engine(); - if(e == null) - { + if (e == null) { sender().sendMessage(C.GOLD + "Not in an Iris World!"); return; } @@ -70,8 +68,7 @@ public class CommandFind implements DecreeExecutor { ) { Engine e = engine(); - if(e == null) - { + if (e == null) { sender().sendMessage(C.GOLD + "Not in an Iris World!"); return; } @@ -86,8 +83,7 @@ public class CommandFind implements DecreeExecutor { ) { Engine e = engine(); - if(e == null) - { + if (e == null) { sender().sendMessage(C.GOLD + "Not in an Iris World!"); return; } diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/src/main/java/com/volmit/iris/engine/IrisComplex.java index 28261db5b..94f380c0e 100644 --- a/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/src/main/java/com/volmit/iris/engine/IrisComplex.java @@ -34,7 +34,6 @@ import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.data.DataProvider; -import com.volmit.iris.util.interpolation.IrisInterpolation; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.noise.CNG; @@ -291,14 +290,12 @@ public class IrisComplex implements DataProvider { return biome; } - private double interpolateGenerators(Engine engine, IrisInterpolator interpolator, KSet generators, double x, double z, long seed) - { - if(generators.isEmpty()) - { + private double interpolateGenerators(Engine engine, IrisInterpolator interpolator, KSet generators, double x, double z, long seed) { + if (generators.isEmpty()) { return 0; } - double hi = interpolator.interpolate(x, z, (xx,zz) -> { + double hi = interpolator.interpolate(x, z, (xx, zz) -> { try { IrisBiome bx = baseBiomeStream.get(xx, zz); double b = 0; @@ -317,7 +314,7 @@ public class IrisComplex implements DataProvider { return 0; }); - double lo = interpolator.interpolate(x, z, (xx,zz) -> { + double lo = interpolator.interpolate(x, z, (xx, zz) -> { try { IrisBiome bx = baseBiomeStream.get(xx, zz); double b = 0; @@ -338,8 +335,7 @@ public class IrisComplex implements DataProvider { double d = 0; - for(IrisGenerator i : generators) - { + for (IrisGenerator i : generators) { d += M.lerp(lo, hi, i.getHeight(x, z, seed + 239945)); } diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index a1424ba44..2536e4135 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -199,7 +199,7 @@ public class IrisEngine implements Engine { var bodies = new IrisBodyModifier(this); var perfection = new IrisPerfectionModifier(this); - registerStage((x, z, k, p, m) -> warmupChunk(x>>4, z>>4)); + registerStage((x, z, k, p, m) -> warmupChunk(x >> 4, z >> 4)); registerStage((x, z, k, p, m) -> generateMatter(x >> 4, z >> 4, m)); registerStage((x, z, k, p, m) -> terrain.actuate(x, z, k, m)); registerStage((x, z, k, p, m) -> biome.actuate(x, z, p, m)); @@ -228,14 +228,12 @@ public class IrisEngine implements Engine { } private void warmupChunk(int x, int z) { - for(int i = 0; i < 16; i++) - { - for(int j = 0; j < 16; j++) - { + for (int i = 0; i < 16; i++) { + for (int j = 0; j < 16; j++) { int xx = x + (i << 4); int zz = z + (z << 4); - getComplex().getTrueBiomeStream().get(xx,zz); - getComplex().getHeightStream().get(xx,zz); + getComplex().getTrueBiomeStream().get(xx, zz); + getComplex().getHeightStream().get(xx, zz); } } } diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java index 71b927859..6b21e2c2f 100644 --- a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java @@ -118,8 +118,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { } if (getEngine().getWorld().hasRealWorld()) { - if(getEngine().getWorld().getPlayers().isEmpty()) - { + if (getEngine().getWorld().getPlayers().isEmpty()) { return 5000; } @@ -303,7 +302,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { IrisSpawner s = new KList<>(spawners).getRandom(); spawn(block, s, false); J.a(() -> getMantle().raiseFlag(c.getX(), c.getZ(), MantleFlag.INITIAL_SPAWNED_MARKER, - () -> spawn(block, s, true))); + () -> spawn(block, s, true))); }); if (v != null && v.getReferenceSpawner() != null) { @@ -492,22 +491,19 @@ public class IrisWorldManager extends EngineAssignedWorldManager { Map> p = new KMap<>(); Set b = new KSet<>(); getMantle().iterateChunk(c.getX(), c.getZ(), MatterMarker.class, (x, y, z, t) -> { - if(t.getTag().equals("cave_floor") || t.getTag().equals("cave_ceiling")) - { + if (t.getTag().equals("cave_floor") || t.getTag().equals("cave_ceiling")) { return; } IrisMarker mark = getData().getMarkerLoader().load(t.getTag()); IrisPosition pos = new IrisPosition((c.getX() << 4) + x, y, (c.getZ() << 4) + z); - if(mark.isEmptyAbove()) - { + if (mark.isEmptyAbove()) { AtomicBoolean remove = new AtomicBoolean(false); try { J.sfut(() -> { - if(c.getBlock(x, y+1, z).getBlockData().getMaterial().isSolid() || c.getBlock(x, y+2, z).getBlockData().getMaterial().isSolid()) - { + if (c.getBlock(x, y + 1, z).getBlockData().getMaterial().isSolid() || c.getBlock(x, y + 2, z).getBlockData().getMaterial().isSolid()) { remove.set(true); } }).get(); @@ -515,8 +511,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { e.printStackTrace(); } - if(remove.get()) - { + if (remove.get()) { b.add(pos); return; } @@ -534,8 +529,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { } }); - for(IrisPosition i : b) - { + for (IrisPosition i : b) { getEngine().getMantle().getMantle().remove(i.getX(), i.getY(), i.getZ(), MatterMarker.class); } @@ -550,8 +544,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { MatterMarker marker = getMantle().get(e.getBlock().getX(), e.getBlock().getY(), e.getBlock().getZ(), MatterMarker.class); if (marker != null) { - if(marker.getTag().equals("cave_floor") || marker.getTag().equals("cave_ceiling")) - { + if (marker.getTag().equals("cave_floor") || marker.getTag().equals("cave_ceiling")) { return; } diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java index e0c24b2d3..9ad02e022 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java @@ -78,14 +78,14 @@ public class IrisDecorantActuator extends EngineAssignedActuator { int finalI = i; burst.queue(() -> { int height; - int realX = (int) Math.round(x + finalI); + int realX = Math.round(x + finalI); int realZ; IrisBiome biome, cave; for (int j = 0; j < output.getDepth(); j++) { boolean solid; int emptyFor = 0; int lastSolid = 0; - realZ = (int) Math.round(z + j); + realZ = Math.round(z + j); height = (int) Math.round(getComplex().getHeightStream().get(realX, realZ)); biome = getComplex().getTrueBiomeStream().get(realX, realZ); cave = shouldRay ? getComplex().getCaveBiomeStream().get(realX, realZ) : null; @@ -96,8 +96,8 @@ public class IrisDecorantActuator extends EngineAssignedActuator { if (height < getDimension().getFluidHeight()) { getSeaSurfaceDecorator().decorate(finalI, j, - realX, (int) Math.round( + finalI + 1), (int) Math.round(x + finalI - 1), - realZ, (int) Math.round(z + j + 1), (int) Math.round(z + j - 1), + realX, Math.round(+finalI + 1), Math.round(x + finalI - 1), + realZ, Math.round(z + j + 1), Math.round(z + j - 1), output, biome, getDimension().getFluidHeight(), getEngine().getHeight()); getSeaFloorDecorator().decorate(finalI, j, realX, realZ, output, biome, height + 1, @@ -106,8 +106,8 @@ public class IrisDecorantActuator extends EngineAssignedActuator { if (height == getDimension().getFluidHeight()) { getShoreLineDecorator().decorate(finalI, j, - realX, (int) Math.round(x + finalI + 1), (int) Math.round(x + finalI - 1), - realZ, (int) Math.round(z + j + 1), (int) Math.round(z + j - 1), + realX, Math.round(x + finalI + 1), Math.round(x + finalI - 1), + realZ, Math.round(z + j + 1), Math.round(z + j - 1), output, biome, height, getEngine().getHeight()); } diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java index c76db5722..56c6f2729 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java @@ -80,8 +80,8 @@ public class IrisTerrainNormalActuator extends EngineAssignedActuator IrisBiome biome; for (zf = 0; zf < h.getDepth(); zf++) { - realX = (int) xf + x; - realZ = (int) zf + z; + realX = xf + x; + realZ = zf + z; biome = getComplex().getTrueBiomeStream().get(realX, realZ); he = (int) Math.round(Math.min(h.getHeight(), getComplex().getHeightStream().get(realX, realZ))); hf = Math.round(Math.max(Math.min(h.getHeight(), getDimension().getFluidHeight()), he)); diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index f6eff8f2b..f4731da6c 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -286,33 +286,19 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat return; } boolean u = false; - if(B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.DOWN).getBlockData())) - { + if (B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.DOWN).getBlockData())) { + u = true; + } else if (B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.WEST).getBlockData())) { + u = true; + } else if (B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.EAST).getBlockData())) { + u = true; + } else if (B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.SOUTH).getBlockData())) { + u = true; + } else if (B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.NORTH).getBlockData())) { u = true; } - else if(B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.WEST).getBlockData())) - { - u = true; - } - - else if(B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.EAST).getBlockData())) - { - u = true; - } - - else if(B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.SOUTH).getBlockData())) - { - u = true; - } - - else if(B.isAir(c.getBlock(x & 15, y, z & 15).getRelative(BlockFace.NORTH).getBlockData())) - { - u = true; - } - - if(u) - { + if (u) { updates.compute(Cache.key(x & 15, z & 15), (k, vv) -> { if (vv != null) { return Math.max(vv, y); @@ -785,8 +771,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat return getBiomeOrMantle(l.getBlockX(), l.getBlockY(), l.getBlockZ()); } - default void gotoBiome(IrisBiome biome, Player player) - { + default void gotoBiome(IrisBiome biome, Player player) { Set regionKeys = getDimension() .getAllRegions(this).stream() .filter((i) -> i.getAllBiomes(this).contains(biome)) @@ -794,31 +779,22 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat .collect(Collectors.toSet()); Locator lb = Locator.surfaceBiome(biome.getLoadKey()); Locator locator = (engine, chunk) - -> regionKeys.contains(getRegion((chunk.getX()<< 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey()) + -> regionKeys.contains(getRegion((chunk.getX() << 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey()) && lb.matches(engine, chunk); - if(!regionKeys.isEmpty()) - { + if (!regionKeys.isEmpty()) { locator.find(player); - } - - else - { + } else { player.sendMessage(C.RED + biome.getName() + " is not in any defined regions!"); } } - default void gotoJigsaw(IrisJigsawStructure s, Player player) - { - if(getDimension().getJigsawStructures().stream() + default void gotoJigsaw(IrisJigsawStructure s, Player player) { + if (getDimension().getJigsawStructures().stream() .map(IrisJigsawStructurePlacement::getStructure) - .collect(Collectors.toSet()).contains(s.getLoadKey())) - { + .collect(Collectors.toSet()).contains(s.getLoadKey())) { Locator.jigsawStructure(s.getLoadKey()).find(player); - } - - else - { + } else { Set biomeKeys = getDimension().getAllBiomes(this).stream() .filter((i) -> i.getJigsawStructures() .stream() @@ -835,33 +811,24 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat Locator sl = Locator.jigsawStructure(s.getLoadKey()); Locator locator = (engine, chunk) -> { - if(biomeKeys.contains(getSurfaceBiome((chunk.getX()<< 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) - { + if (biomeKeys.contains(getSurfaceBiome((chunk.getX() << 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) { return sl.matches(engine, chunk); - } - - else if(regionKeys.contains(getRegion((chunk.getX()<< 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) - { + } else if (regionKeys.contains(getRegion((chunk.getX() << 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) { return sl.matches(engine, chunk); } return false; }; - if(!regionKeys.isEmpty()) - { + if (!regionKeys.isEmpty()) { locator.find(player); - } - - else - { + } else { player.sendMessage(C.RED + s.getLoadKey() + " is not in any defined regions, biomes or dimensions!"); } } } - default void gotoObject(String s, Player player) - { + default void gotoObject(String s, Player player) { Set biomeKeys = getDimension().getAllBiomes(this).stream() .filter((i) -> i.getObjects().stream().anyMatch((f) -> f.getPlace().contains(s))) .map(IrisRegistrant::getLoadKey) @@ -874,34 +841,24 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat Locator sl = Locator.object(s); Locator locator = (engine, chunk) -> { - if(biomeKeys.contains(getSurfaceBiome((chunk.getX()<< 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) - { + if (biomeKeys.contains(getSurfaceBiome((chunk.getX() << 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) { return sl.matches(engine, chunk); - } - - else if(regionKeys.contains(getRegion((chunk.getX()<< 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) - { + } else if (regionKeys.contains(getRegion((chunk.getX() << 4) + 8, (chunk.getZ() << 4) + 8).getLoadKey())) { return sl.matches(engine, chunk); } return false; }; - if(!regionKeys.isEmpty()) - { + if (!regionKeys.isEmpty()) { locator.find(player); - } - - else - { + } else { player.sendMessage(C.RED + s + " is not in any defined regions or biomes!"); } } - default void gotoRegion(IrisRegion r, Player player) - { - if(!getDimension().getAllRegions(this).contains(r)) - { + default void gotoRegion(IrisRegion r, Player player) { + if (!getDimension().getAllRegions(this).contains(r)) { player.sendMessage(C.RED + r.getName() + " is not defined in the dimension!"); return; } diff --git a/src/main/java/com/volmit/iris/engine/framework/Locator.java b/src/main/java/com/volmit/iris/engine/framework/Locator.java index a5a44980e..dc7092a95 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Locator.java +++ b/src/main/java/com/volmit/iris/engine/framework/Locator.java @@ -50,30 +50,25 @@ import java.util.function.Consumer; public interface Locator { boolean matches(Engine engine, Position2 chunk); - static void cancelSearch() - { - if(LocatorCanceller.cancel != null) - { + static void cancelSearch() { + if (LocatorCanceller.cancel != null) { LocatorCanceller.cancel.run(); LocatorCanceller.cancel = null; } } - default void find(Player player) - { + default void find(Player player) { find(player, 30_000); } - default void find(Player player, long timeout) - { + default void find(Player player, long timeout) { AtomicLong checks = new AtomicLong(); long ms = M.ms(); new SingleJob("Searching", () -> { try { Position2 at = find(IrisToolbelt.access(player.getWorld()).getEngine(), new Position2(player.getLocation().getBlockX() >> 4, player.getLocation().getBlockZ() >> 4), timeout, checks::set).get(); - if(at != null) - { + if (at != null) { J.s(() -> player.teleport(new Location(player.getWorld(), (at.getX() << 4) + 8, IrisToolbelt.access(player.getWorld()).getEngine().getHeight( (at.getX() << 4) + 8, @@ -83,7 +78,7 @@ public interface Locator { } catch (WrongEngineBroException | InterruptedException | ExecutionException e) { e.printStackTrace(); } - }){ + }) { @Override public String getName() { return "Searched " + Form.f(checks.get()) + " Chunks"; @@ -96,14 +91,13 @@ public interface Locator { @Override public int getWorkCompleted() { - return (int) Math.min(M.ms() - ms, timeout-1); + return (int) Math.min(M.ms() - ms, timeout - 1); } }.execute(new VolmitSender(player)); } default Future find(Engine engine, Position2 pos, long timeout, Consumer checks) throws WrongEngineBroException { - if(engine.isClosed()) - { + if (engine.isClosed()) { throw new WrongEngineBroException(); } @@ -123,19 +117,15 @@ public interface Locator { Spiraler s = new Spiraler(100000, 100000, (x, z) -> next.set(new Position2(x, z))); s.setOffset(cursor.getX(), cursor.getZ()); s.next(); - while(!found.get() && !stop.get() && px.getMilliseconds() < timeout) - { + while (!found.get() && !stop.get() && px.getMilliseconds() < timeout) { BurstExecutor e = burst.burst(tc); - for(int i = 0; i < tc; i++) - { + for (int i = 0; i < tc; i++) { Position2 p = next.get(); s.next(); e.queue(() -> { - if(matches(engine, p)) - { - if(foundPos.get() == null) - { + if (matches(engine, p)) { + if (foundPos.get() == null) { foundPos.set(p); } @@ -151,8 +141,7 @@ public interface Locator { LocatorCanceller.cancel = null; - if(found.get() && foundPos.get() != null) - { + if (found.get() && foundPos.get() != null) { return foundPos.get(); } @@ -160,47 +149,39 @@ public interface Locator { }); } - static Locator region(String loadKey) - { + static Locator region(String loadKey) { return (e, c) -> e.getRegion((c.getX() << 4) + 8, (c.getZ() << 4) + 8).getLoadKey().equals(loadKey); } - static Locator jigsawStructure(String loadKey) - { + static Locator jigsawStructure(String loadKey) { return (e, c) -> { IrisJigsawStructure s = e.getStructureAt(c.getX(), c.getZ()); return s != null && s.getLoadKey().equals(loadKey); }; } - static Locator object(String loadKey) - { + static Locator object(String loadKey) { return (e, c) -> e.getObjectsAt(c.getX(), c.getZ()).contains(loadKey); } - static Locator surfaceBiome(String loadKey) - { + static Locator surfaceBiome(String loadKey) { return (e, c) -> e.getSurfaceBiome((c.getX() << 4) + 8, (c.getZ() << 4) + 8).getLoadKey().equals(loadKey); } - static Locator caveBiome(String loadKey) - { + static Locator caveBiome(String loadKey) { return (e, c) -> e.getCaveBiome((c.getX() << 4) + 8, (c.getZ() << 4) + 8).getLoadKey().equals(loadKey); } - static Locator caveOrMantleBiome(String loadKey) - { + static Locator caveOrMantleBiome(String loadKey) { return (e, c) -> { AtomicBoolean found = new AtomicBoolean(false); e.generateMatter(c.getX(), c.getZ(), true); - e.getMantle().getMantle().iterateChunk(c.getX(), c.getZ(), MatterCavern.class, (x,y,z,t) ->{ - if(found.get()) - { + e.getMantle().getMantle().iterateChunk(c.getX(), c.getZ(), MatterCavern.class, (x, y, z, t) -> { + if (found.get()) { return; } - if(t != null && t.getCustomBiome().equals(loadKey)) - { + if (t != null && t.getCustomBiome().equals(loadKey)) { found.set(true); } }); diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java index da80cce9f..6a8a242b0 100644 --- a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java +++ b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java @@ -243,8 +243,7 @@ public class PlannedPiece { @Override public Engine getEngine() { - if(IrisToolbelt.isIrisWorld(world)) - { + if (IrisToolbelt.isIrisWorld(world)) { return IrisToolbelt.access(world).getEngine(); } diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java index 72c7879a8..c5817e4e2 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java @@ -260,5 +260,6 @@ public interface EngineMantle extends IObjectPlacer { } MantleJigsawComponent getJigsawComponent(); + MantleObjectComponent getObjectComponent(); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java b/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java index 96c7f9643..97449f73e 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java @@ -113,8 +113,7 @@ public class IrisEntitySpawn implements IRare { World world = gen.getWorld().realWorld(); if (spawns > 0) { - if(referenceMarker != null) - { + if (referenceMarker != null) { gen.getMantle().getMantle().remove(c.getX(), c.getY(), c.getZ(), MatterMarker.class); } @@ -158,7 +157,7 @@ public class IrisEntitySpawn implements IRare { return spawn100(g, at, false); } - private Entity spawn100(Engine g, Location at, boolean ignoreSurfaces) { + private Entity spawn100(Engine g, Location at, boolean ignoreSurfaces) { try { IrisEntity irisEntity = getRealEntity(g); diff --git a/src/main/java/com/volmit/iris/engine/object/IrisMarker.java b/src/main/java/com/volmit/iris/engine/object/IrisMarker.java index 9fe0d5f77..b2d938435 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisMarker.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisMarker.java @@ -53,8 +53,7 @@ public class IrisMarker extends IrisRegistrant { @Desc("If this marker is used, what is the chance it removes itself. For example 25% (0.25) would mean that on average 4 uses will remove a specific marker. Set this below 0 (-1) to never exhaust & set this to 1 or higher to always exhaust on first use.") private double exhaustionChance = 0.33; - public boolean shouldExhaust() - { + public boolean shouldExhaust() { return RNG.r.chance(exhaustionChance); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObject.java b/src/main/java/com/volmit/iris/engine/object/IrisObject.java index 68034cc70..a4cfec435 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObject.java @@ -658,32 +658,26 @@ public class IrisObject extends IrisRegistrant { KMap markers = null; try { - if(config.getMarkers().isNotEmpty() && placer.getEngine() != null) - { + if (config.getMarkers().isNotEmpty() && placer.getEngine() != null) { markers = new KMap<>(); - for(IrisObjectMarker j : config.getMarkers()) - { + for (IrisObjectMarker j : config.getMarkers()) { IrisMarker marker = getLoader().getMarkerLoader().load(j.getMarker()); - if(marker == null) - { + if (marker == null) { continue; } int max = j.getMaximumMarkers(); - for(BlockVector i : getBlocks().k().shuffle()) - { - if(max <= 0) - { + for (BlockVector i : getBlocks().k().shuffle()) { + if (max <= 0) { break; } BlockData data = getBlocks().get(i); for (BlockData k : j.getMark(rdata)) { - if(max <= 0) - { + if (max <= 0) { break; } @@ -691,8 +685,7 @@ public class IrisObject extends IrisRegistrant { boolean a = !blocks.containsKey(new BlockVector(i.clone().add(new BlockVector(0, 1, 0)))); boolean fff = !blocks.containsKey(new BlockVector(i.clone().add(new BlockVector(0, 2, 0)))); - if((marker.isEmptyAbove() && a && fff) || !marker.isEmptyAbove()) - { + if ((marker.isEmptyAbove() && a && fff) || !marker.isEmptyAbove()) { markers.put(i, j.getMarker()); max--; } @@ -787,9 +780,8 @@ public class IrisObject extends IrisRegistrant { listener.accept(new BlockPosition(xx, yy, zz)); } - if(markers != null && markers.containsKey(g)) - { - placer.getEngine().getMantle().getMantle().set(xx,yy,zz,new MatterMarker(markers.get(g))); + if (markers != null && markers.containsKey(g)) { + placer.getEngine().getMantle().getMantle().set(xx, yy, zz, new MatterMarker(markers.get(g))); } if (!data.getMaterial().equals(Material.AIR) && !data.getMaterial().equals(Material.CAVE_AIR)) { diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java b/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java index b3db6b459..923054d9b 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java @@ -82,7 +82,7 @@ public class IrisObjectPlacement { @MinNumber(0) @Desc("When bore is enabled, expand max-y of the cuboid it removes") private int boreExtendMaxY = 0; - @ArrayType(min = 1,type = IrisObjectMarker.class) + @ArrayType(min = 1, type = IrisObjectMarker.class) @Desc("Add markers to blocks in this object") private KList markers = new KList<>(); @MaxNumber(64) diff --git a/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java b/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java index 87578eb0a..ef9067da9 100644 --- a/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java +++ b/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java @@ -19,17 +19,14 @@ package com.volmit.iris.util.interpolation; import com.google.common.util.concurrent.AtomicDouble; -import com.volmit.iris.Iris; import com.volmit.iris.engine.object.NoiseStyle; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.function.Consumer2; -import com.volmit.iris.util.function.Function2; import com.volmit.iris.util.function.NoiseProvider; import com.volmit.iris.util.function.NoiseProvider3; import com.volmit.iris.util.hunk.Hunk; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.noise.SimplexNoise; import com.volmit.iris.util.scheduling.PrecisionStopwatch; import java.math.BigDecimal; @@ -307,12 +304,10 @@ public class IrisInterpolation { //@done } - public static void test(String m, Consumer2 f) - { + public static void test(String m, Consumer2 f) { PrecisionStopwatch p = PrecisionStopwatch.start(); - for(int i = 0; i < 8192; i++) - { + for (int i = 0; i < 8192; i++) { f.accept(i, -i * 234); } @@ -322,46 +317,59 @@ public class IrisInterpolation { } public static void main(String[] args) { - CNG cng = new CNG(new RNG()); - NoiseProvider n = cng::noise; - System.out.println(generateOptimizedStarcast(3)); - System.out.println(generateOptimizedStarcast(5)); - System.out.println(generateOptimizedStarcast(6)); - System.out.println(generateOptimizedStarcast(7)); - System.out.println(generateOptimizedStarcast(9)); - System.out.println(generateOptimizedStarcast(12)); - System.out.println(generateOptimizedStarcast(24)); - System.out.println(generateOptimizedStarcast(32)); - System.out.println(generateOptimizedStarcast(48)); - System.out.println(generateOptimizedStarcast(64)); - System.out.println(generateOptimizedStarcast(72)); - System.out.println(generateOptimizedStarcast(96)); - System.out.println(generateOptimizedStarcast(128)); - System.out.println(generateOptimizedStarcast(186)); - System.out.println(generateOptimizedStarcast(256)); + printOptimizedSrc(false); + } - public static String generateOptimizedStarcast(double checks) { + public static void printOptimizedSrc(boolean arrays) { + System.out.println(generateOptimizedStarcast(3, arrays)); + System.out.println(generateOptimizedStarcast(5, arrays)); + System.out.println(generateOptimizedStarcast(6, arrays)); + System.out.println(generateOptimizedStarcast(7, arrays)); + System.out.println(generateOptimizedStarcast(9, arrays)); + System.out.println(generateOptimizedStarcast(12, arrays)); + System.out.println(generateOptimizedStarcast(24, arrays)); + System.out.println(generateOptimizedStarcast(32, arrays)); + System.out.println(generateOptimizedStarcast(48, arrays)); + System.out.println(generateOptimizedStarcast(64, arrays)); + } + + public static String generateOptimizedStarcast(double checks, boolean array) { double m = (360 / checks); int ig = 0; int igx = 0; StringBuilder fb = new StringBuilder(); StringBuilder sb = new StringBuilder(); - fb.append("private static final double[] F"+(int)checks+"A = {"); - sb.append("private static double sc"+(int)checks+"(int x, int z, double r, NoiseProvider n) {\n return ("); + + if (array) { + fb.append("private static final double[] F" + (int) checks + "A = {"); + } + + sb.append("private static double sc" + (int) checks + "(int x, int z, double r, NoiseProvider n) {\n return ("); for (int i = 0; i < 360; i += m) { double sin = Math.sin(Math.toRadians(i)); double cos = Math.cos(Math.toRadians(i)); String cof = new BigDecimal(cos).toPlainString(); String sif = new BigDecimal(sin).toPlainString(); - String cc = "F"+(int)checks+"A["+(igx++)+"]"; - String ss = "F"+(int)checks+"A["+(igx++)+"]"; - fb.append((ig > 0 ? (ig % 3 == 0 ? ",\n" : ",") : "") + cof + "," + sif); - sb.append( (ig > 0 ? "\n +" : "") + "n.noise(x + ((r * "+ cc +") - (r * "+ss+")), z + ((r * "+ss+") + (r * "+cc+")))"); + String cc = array ? "F" + (int) checks + "A[" + (igx++) + "]" : "F" + (int) checks + "C" + ig; + String ss = array ? "F" + (int) checks + "A[" + (igx++) + "]" : "F" + (int) checks + "S" + ig; + + if (array) { + fb.append((ig > 0 ? (ig % 6 == 0 ? ",\n" : ",") : "") + cof + "," + sif); + } else { + fb.append("private static final double " + cc + " = " + cof + ";\n"); + fb.append("private static final double " + ss + " = " + sif + ";\n"); + } + + sb.append((ig > 0 ? "\n +" : "") + "n.noise(x + ((r * " + cc + ") - (r * " + ss + ")), z + ((r * " + ss + ") + (r * " + cc + ")))"); ig++; } - fb.append("};"); - sb.append(")/"+checks+"D;\n}"); + + if (array) { + fb.append("};"); + } + + sb.append(")/" + checks + "D;\n}"); return fb + "\n" + sb; } diff --git a/src/main/java/com/volmit/iris/util/interpolation/Starcast.java b/src/main/java/com/volmit/iris/util/interpolation/Starcast.java index 1d13b17c6..16456b425 100644 --- a/src/main/java/com/volmit/iris/util/interpolation/Starcast.java +++ b/src/main/java/com/volmit/iris/util/interpolation/Starcast.java @@ -18,65 +18,21 @@ package com.volmit.iris.util.interpolation; -import com.volmit.iris.util.format.Form; import com.volmit.iris.util.function.NoiseProvider; -import com.volmit.iris.util.math.M; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.noise.CNG; -import com.volmit.iris.util.scheduling.PrecisionStopwatch; public class Starcast { - public static void main(String[] args) { - CNG cng = new CNG(new RNG()); - NoiseProvider n = cng::noise; - check(3, n); - check(6, n); - check(9, n); - check(12, n); - check(24, n); - check(32, n); - check(64, n); - check(128, n); - check(256, n); - } - - private static void check(int c, NoiseProvider n) { - PrecisionStopwatch p = PrecisionStopwatch.start(); - for(int i = 0; i < 8192 * 64; i++) - { - starcast(i, i * 293, 8, c, false, n); - } - p.end(); - - PrecisionStopwatch p2 = PrecisionStopwatch.start(); - for(int i = 0; i < 8192 * 64; i++) - { - starcast(i, i * 293, 8, c, true, n); - } - p2.end(); - - System.out.println("Starcast " + c + ": " + Form.duration(p.getMilliseconds(), 2) + " -> " + Form.duration(p2.getMilliseconds(), 2) + " (" + Form.pc((p.getMilliseconds() - p2.getMilliseconds()) / (p.getMilliseconds()),2) + " Faster)"); - } - - public static double starcast(int x, int z, double r, double checks, boolean optimized, NoiseProvider n) - { - if(optimized) - { - if(checks == 3) return sc3(x, z, r, n); - else if(checks == 5) return sc5(x, z, r, n); - else if(checks == 6) return sc6(x, z, r, n); - else if(checks == 7) return sc7(x, z, r, n); - else if(checks == 9) return sc9(x, z, r, n); - else if(checks == 12) return sc12(x, z, r, n); - else if(checks == 24) return sc24(x, z, r, n); - else if(checks == 32) return sc32(x, z, r, n); - else if(checks == 48) return sc48(x, z, r, n); - else if(checks == 64) return sc64(x, z, r, n); - else if(checks == 72) return sc72(x, z, r, n); - else if(checks == 96) return sc96(x, z, r, n); - else if(checks == 128) return sc128(x, z, r, n); - else if(checks == 186) return sc186(x, z, r, n); - else if(checks == 256) return sc256(x, z, r, n); + public static double starcast(int x, int z, double r, double checks, boolean optimized, NoiseProvider n) { + if (optimized) { + if (checks == 3) return sc3(x, z, r, n); + else if (checks == 5) return sc5(x, z, r, n); + else if (checks == 6) return sc6(x, z, r, n); + else if (checks == 7) return sc7(x, z, r, n); + else if (checks == 9) return sc9(x, z, r, n); + else if (checks == 12) return sc12(x, z, r, n); + else if (checks == 24) return sc24(x, z, r, n); + else if (checks == 32) return sc32(x, z, r, n); + else if (checks == 48) return sc48(x, z, r, n); + else if (checks == 64) return sc64(x, z, r, n); } double m = 360D / checks; @@ -93,1795 +49,719 @@ public class Starcast { return v / checks; } - public static double starcast(int x, int z, double r, double checks, NoiseProvider n) - { + public static double starcast(int x, int z, double r, double checks, NoiseProvider n) { return starcast(x, z, r, checks, true, n); } - private static final double[] F3A = {1,0,-0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125}; + private static final double F3C0 = 1; + private static final double F3S0 = 0; + private static final double F3C1 = -0.4999999999999997779553950749686919152736663818359375; + private static final double F3S1 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F3C2 = -0.500000000000000444089209850062616169452667236328125; + private static final double F3S2 = -0.86602540378443837454369713668711483478546142578125; + private static double sc3(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F3A[0]) - (r * F3A[1])), z + ((r * F3A[1]) + (r * F3A[0]))) - +n.noise(x + ((r * F3A[2]) - (r * F3A[3])), z + ((r * F3A[3]) + (r * F3A[2]))) - +n.noise(x + ((r * F3A[4]) - (r * F3A[5])), z + ((r * F3A[5]) + (r * F3A[4]))))/3.0D; + return (n.noise(x + ((r * F3C0) - (r * F3S0)), z + ((r * F3S0) + (r * F3C0))) + + n.noise(x + ((r * F3C1) - (r * F3S1)), z + ((r * F3S1) + (r * F3C1))) + + n.noise(x + ((r * F3C2) - (r * F3S2)), z + ((r * F3S2) + (r * F3C2)))) / 3.0D; } - private static final double[] F5A = {1,0,0.30901699437494745126286943559534847736358642578125,0.95105651629515353118193843329208903014659881591796875,-0.80901699437494734024056697307969443500041961669921875,0.58778525229247324812575925534474663436412811279296875, - -0.80901699437494756228517189811100251972675323486328125,-0.58778525229247302608115433031343854963779449462890625,0.3090169943749472292182645105640403926372528076171875,-0.951056516295153642204240895807743072509765625}; + + private static final double F5C0 = 1; + private static final double F5S0 = 0; + private static final double F5C1 = 0.30901699437494745126286943559534847736358642578125; + private static final double F5S1 = 0.95105651629515353118193843329208903014659881591796875; + private static final double F5C2 = -0.80901699437494734024056697307969443500041961669921875; + private static final double F5S2 = 0.58778525229247324812575925534474663436412811279296875; + private static final double F5C3 = -0.80901699437494756228517189811100251972675323486328125; + private static final double F5S3 = -0.58778525229247302608115433031343854963779449462890625; + private static final double F5C4 = 0.3090169943749472292182645105640403926372528076171875; + private static final double F5S4 = -0.951056516295153642204240895807743072509765625; + private static double sc5(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F5A[0]) - (r * F5A[1])), z + ((r * F5A[1]) + (r * F5A[0]))) - +n.noise(x + ((r * F5A[2]) - (r * F5A[3])), z + ((r * F5A[3]) + (r * F5A[2]))) - +n.noise(x + ((r * F5A[4]) - (r * F5A[5])), z + ((r * F5A[5]) + (r * F5A[4]))) - +n.noise(x + ((r * F5A[6]) - (r * F5A[7])), z + ((r * F5A[7]) + (r * F5A[6]))) - +n.noise(x + ((r * F5A[8]) - (r * F5A[9])), z + ((r * F5A[9]) + (r * F5A[8]))))/5.0D; + return (n.noise(x + ((r * F5C0) - (r * F5S0)), z + ((r * F5S0) + (r * F5C0))) + + n.noise(x + ((r * F5C1) - (r * F5S1)), z + ((r * F5S1) + (r * F5C1))) + + n.noise(x + ((r * F5C2) - (r * F5S2)), z + ((r * F5S2) + (r * F5C2))) + + n.noise(x + ((r * F5C3) - (r * F5S3)), z + ((r * F5S3) + (r * F5C3))) + + n.noise(x + ((r * F5C4) - (r * F5S4)), z + ((r * F5S4) + (r * F5C4)))) / 5.0D; } - private static final double[] F6A = {1,0,0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,-0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125}; + + private static final double F6C0 = 1; + private static final double F6S0 = 0; + private static final double F6C1 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F6S1 = 0.8660254037844385965883020617184229195117950439453125; + private static final double F6C2 = -0.4999999999999997779553950749686919152736663818359375; + private static final double F6S2 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F6C3 = -1; + private static final double F6S3 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; + private static final double F6C4 = -0.500000000000000444089209850062616169452667236328125; + private static final double F6S4 = -0.86602540378443837454369713668711483478546142578125; + private static final double F6C5 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F6S5 = -0.8660254037844385965883020617184229195117950439453125; + private static double sc6(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F6A[0]) - (r * F6A[1])), z + ((r * F6A[1]) + (r * F6A[0]))) - +n.noise(x + ((r * F6A[2]) - (r * F6A[3])), z + ((r * F6A[3]) + (r * F6A[2]))) - +n.noise(x + ((r * F6A[4]) - (r * F6A[5])), z + ((r * F6A[5]) + (r * F6A[4]))) - +n.noise(x + ((r * F6A[6]) - (r * F6A[7])), z + ((r * F6A[7]) + (r * F6A[6]))) - +n.noise(x + ((r * F6A[8]) - (r * F6A[9])), z + ((r * F6A[9]) + (r * F6A[8]))) - +n.noise(x + ((r * F6A[10]) - (r * F6A[11])), z + ((r * F6A[11]) + (r * F6A[10]))))/6.0D; + return (n.noise(x + ((r * F6C0) - (r * F6S0)), z + ((r * F6S0) + (r * F6C0))) + + n.noise(x + ((r * F6C1) - (r * F6S1)), z + ((r * F6S1) + (r * F6C1))) + + n.noise(x + ((r * F6C2) - (r * F6S2)), z + ((r * F6S2) + (r * F6C2))) + + n.noise(x + ((r * F6C3) - (r * F6S3)), z + ((r * F6S3) + (r * F6C3))) + + n.noise(x + ((r * F6C4) - (r * F6S4)), z + ((r * F6S4) + (r * F6C4))) + + n.noise(x + ((r * F6C5) - (r * F6S5)), z + ((r * F6S5) + (r * F6C5)))) / 6.0D; } - private static final double[] F7A = {1,0,0.6293203910498375019955119569203816354274749755859375,0.77714596145697090179282895405776798725128173828125,-0.207911690817759342575499204031075350940227508544921875,0.9781476007338056888329447247087955474853515625, - -0.891006524188367787786546614370308816432952880859375,0.45399049973954685999188995992881245911121368408203125,-0.91354545764260086659902526662335731089115142822265625,-0.406736643075800208269043878317461349070072174072265625,-0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625, - 0.587785252292472915058851867797784507274627685546875,-0.80901699437494756228517189811100251972675323486328125,0.99862953475457383323288240717374719679355621337890625,-0.052335956242944368932423770957029773853719234466552734375}; + + private static final double F7C0 = 1; + private static final double F7S0 = 0; + private static final double F7C1 = 0.6293203910498375019955119569203816354274749755859375; + private static final double F7S1 = 0.77714596145697090179282895405776798725128173828125; + private static final double F7C2 = -0.207911690817759342575499204031075350940227508544921875; + private static final double F7S2 = 0.9781476007338056888329447247087955474853515625; + private static final double F7C3 = -0.891006524188367787786546614370308816432952880859375; + private static final double F7S3 = 0.45399049973954685999188995992881245911121368408203125; + private static final double F7C4 = -0.91354545764260086659902526662335731089115142822265625; + private static final double F7S4 = -0.406736643075800208269043878317461349070072174072265625; + private static final double F7C5 = -0.25881904510252062845410137015278451144695281982421875; + private static final double F7S5 = -0.96592582628906831221371476203785277903079986572265625; + private static final double F7C6 = 0.587785252292472915058851867797784507274627685546875; + private static final double F7S6 = -0.80901699437494756228517189811100251972675323486328125; + private static final double F7C7 = 0.99862953475457383323288240717374719679355621337890625; + private static final double F7S7 = -0.052335956242944368932423770957029773853719234466552734375; + private static double sc7(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F7A[0]) - (r * F7A[1])), z + ((r * F7A[1]) + (r * F7A[0]))) - +n.noise(x + ((r * F7A[2]) - (r * F7A[3])), z + ((r * F7A[3]) + (r * F7A[2]))) - +n.noise(x + ((r * F7A[4]) - (r * F7A[5])), z + ((r * F7A[5]) + (r * F7A[4]))) - +n.noise(x + ((r * F7A[6]) - (r * F7A[7])), z + ((r * F7A[7]) + (r * F7A[6]))) - +n.noise(x + ((r * F7A[8]) - (r * F7A[9])), z + ((r * F7A[9]) + (r * F7A[8]))) - +n.noise(x + ((r * F7A[10]) - (r * F7A[11])), z + ((r * F7A[11]) + (r * F7A[10]))) - +n.noise(x + ((r * F7A[12]) - (r * F7A[13])), z + ((r * F7A[13]) + (r * F7A[12]))) - +n.noise(x + ((r * F7A[14]) - (r * F7A[15])), z + ((r * F7A[15]) + (r * F7A[14]))))/7.0D; + return (n.noise(x + ((r * F7C0) - (r * F7S0)), z + ((r * F7S0) + (r * F7C0))) + + n.noise(x + ((r * F7C1) - (r * F7S1)), z + ((r * F7S1) + (r * F7C1))) + + n.noise(x + ((r * F7C2) - (r * F7S2)), z + ((r * F7S2) + (r * F7C2))) + + n.noise(x + ((r * F7C3) - (r * F7S3)), z + ((r * F7S3) + (r * F7C3))) + + n.noise(x + ((r * F7C4) - (r * F7S4)), z + ((r * F7S4) + (r * F7C4))) + + n.noise(x + ((r * F7C5) - (r * F7S5)), z + ((r * F7S5) + (r * F7C5))) + + n.noise(x + ((r * F7C6) - (r * F7S6)), z + ((r * F7S6) + (r * F7C6))) + + n.noise(x + ((r * F7C7) - (r * F7S7)), z + ((r * F7S7) + (r * F7C7)))) / 7.0D; } - private static final double[] F9A = {1,0,0.76604444311897801345168090847437269985675811767578125,0.642787609686539251896419955301098525524139404296875,0.17364817766693041445336120887077413499355316162109375,0.98480775301220802031565426659653894603252410888671875, - -0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.93969262078590831688273965482949279248714447021484375,0.342020143325668879441536773811094462871551513671875,-0.939692620785908427905042117345146834850311279296875,-0.3420201433256686573969318487797863781452178955078125, - -0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875,0.76604444311897779140707598344306461513042449951171875,-0.64278760968653958496332734284806065261363983154296875}; + + private static final double F9C0 = 1; + private static final double F9S0 = 0; + private static final double F9C1 = 0.76604444311897801345168090847437269985675811767578125; + private static final double F9S1 = 0.642787609686539251896419955301098525524139404296875; + private static final double F9C2 = 0.17364817766693041445336120887077413499355316162109375; + private static final double F9S2 = 0.98480775301220802031565426659653894603252410888671875; + private static final double F9C3 = -0.4999999999999997779553950749686919152736663818359375; + private static final double F9S3 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F9C4 = -0.93969262078590831688273965482949279248714447021484375; + private static final double F9S4 = 0.342020143325668879441536773811094462871551513671875; + private static final double F9C5 = -0.939692620785908427905042117345146834850311279296875; + private static final double F9S5 = -0.3420201433256686573969318487797863781452178955078125; + private static final double F9C6 = -0.500000000000000444089209850062616169452667236328125; + private static final double F9S6 = -0.86602540378443837454369713668711483478546142578125; + private static final double F9C7 = 0.17364817766692997036415135880815796554088592529296875; + private static final double F9S7 = -0.98480775301220813133795672911219298839569091796875; + private static final double F9C8 = 0.76604444311897779140707598344306461513042449951171875; + private static final double F9S8 = -0.64278760968653958496332734284806065261363983154296875; + private static double sc9(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F9A[0]) - (r * F9A[1])), z + ((r * F9A[1]) + (r * F9A[0]))) - +n.noise(x + ((r * F9A[2]) - (r * F9A[3])), z + ((r * F9A[3]) + (r * F9A[2]))) - +n.noise(x + ((r * F9A[4]) - (r * F9A[5])), z + ((r * F9A[5]) + (r * F9A[4]))) - +n.noise(x + ((r * F9A[6]) - (r * F9A[7])), z + ((r * F9A[7]) + (r * F9A[6]))) - +n.noise(x + ((r * F9A[8]) - (r * F9A[9])), z + ((r * F9A[9]) + (r * F9A[8]))) - +n.noise(x + ((r * F9A[10]) - (r * F9A[11])), z + ((r * F9A[11]) + (r * F9A[10]))) - +n.noise(x + ((r * F9A[12]) - (r * F9A[13])), z + ((r * F9A[13]) + (r * F9A[12]))) - +n.noise(x + ((r * F9A[14]) - (r * F9A[15])), z + ((r * F9A[15]) + (r * F9A[14]))) - +n.noise(x + ((r * F9A[16]) - (r * F9A[17])), z + ((r * F9A[17]) + (r * F9A[16]))))/9.0D; + return (n.noise(x + ((r * F9C0) - (r * F9S0)), z + ((r * F9S0) + (r * F9C0))) + + n.noise(x + ((r * F9C1) - (r * F9S1)), z + ((r * F9S1) + (r * F9C1))) + + n.noise(x + ((r * F9C2) - (r * F9S2)), z + ((r * F9S2) + (r * F9C2))) + + n.noise(x + ((r * F9C3) - (r * F9S3)), z + ((r * F9S3) + (r * F9C3))) + + n.noise(x + ((r * F9C4) - (r * F9S4)), z + ((r * F9S4) + (r * F9C4))) + + n.noise(x + ((r * F9C5) - (r * F9S5)), z + ((r * F9S5) + (r * F9C5))) + + n.noise(x + ((r * F9C6) - (r * F9S6)), z + ((r * F9S6) + (r * F9C6))) + + n.noise(x + ((r * F9C7) - (r * F9S7)), z + ((r * F9S7) + (r * F9C7))) + + n.noise(x + ((r * F9C8) - (r * F9S8)), z + ((r * F9S8) + (r * F9C8)))) / 9.0D; } - private static final double[] F12A = {1,0,0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125}; + + private static final double F12C0 = 1; + private static final double F12S0 = 0; + private static final double F12C1 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F12S1 = 0.499999999999999944488848768742172978818416595458984375; + private static final double F12C2 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F12S2 = 0.8660254037844385965883020617184229195117950439453125; + private static final double F12C3 = 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375; + private static final double F12S3 = 1; + private static final double F12C4 = -0.4999999999999997779553950749686919152736663818359375; + private static final double F12S4 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F12C5 = -0.86602540378443870761060452423407696187496185302734375; + private static final double F12S5 = 0.499999999999999944488848768742172978818416595458984375; + private static final double F12C6 = -1; + private static final double F12S6 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; + private static final double F12C7 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F12S7 = -0.50000000000000011102230246251565404236316680908203125; + private static final double F12C8 = -0.500000000000000444089209850062616169452667236328125; + private static final double F12S8 = -0.86602540378443837454369713668711483478546142578125; + private static final double F12C9 = -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125; + private static final double F12S9 = -1; + private static final double F12C10 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F12S10 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F12C11 = 0.86602540378443837454369713668711483478546142578125; + private static final double F12S11 = -0.500000000000000444089209850062616169452667236328125; + private static double sc12(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F12A[0]) - (r * F12A[1])), z + ((r * F12A[1]) + (r * F12A[0]))) - +n.noise(x + ((r * F12A[2]) - (r * F12A[3])), z + ((r * F12A[3]) + (r * F12A[2]))) - +n.noise(x + ((r * F12A[4]) - (r * F12A[5])), z + ((r * F12A[5]) + (r * F12A[4]))) - +n.noise(x + ((r * F12A[6]) - (r * F12A[7])), z + ((r * F12A[7]) + (r * F12A[6]))) - +n.noise(x + ((r * F12A[8]) - (r * F12A[9])), z + ((r * F12A[9]) + (r * F12A[8]))) - +n.noise(x + ((r * F12A[10]) - (r * F12A[11])), z + ((r * F12A[11]) + (r * F12A[10]))) - +n.noise(x + ((r * F12A[12]) - (r * F12A[13])), z + ((r * F12A[13]) + (r * F12A[12]))) - +n.noise(x + ((r * F12A[14]) - (r * F12A[15])), z + ((r * F12A[15]) + (r * F12A[14]))) - +n.noise(x + ((r * F12A[16]) - (r * F12A[17])), z + ((r * F12A[17]) + (r * F12A[16]))) - +n.noise(x + ((r * F12A[18]) - (r * F12A[19])), z + ((r * F12A[19]) + (r * F12A[18]))) - +n.noise(x + ((r * F12A[20]) - (r * F12A[21])), z + ((r * F12A[21]) + (r * F12A[20]))) - +n.noise(x + ((r * F12A[22]) - (r * F12A[23])), z + ((r * F12A[23]) + (r * F12A[22]))))/12.0D; + return (n.noise(x + ((r * F12C0) - (r * F12S0)), z + ((r * F12S0) + (r * F12C0))) + + n.noise(x + ((r * F12C1) - (r * F12S1)), z + ((r * F12S1) + (r * F12C1))) + + n.noise(x + ((r * F12C2) - (r * F12S2)), z + ((r * F12S2) + (r * F12C2))) + + n.noise(x + ((r * F12C3) - (r * F12S3)), z + ((r * F12S3) + (r * F12C3))) + + n.noise(x + ((r * F12C4) - (r * F12S4)), z + ((r * F12S4) + (r * F12C4))) + + n.noise(x + ((r * F12C5) - (r * F12S5)), z + ((r * F12S5) + (r * F12C5))) + + n.noise(x + ((r * F12C6) - (r * F12S6)), z + ((r * F12S6) + (r * F12C6))) + + n.noise(x + ((r * F12C7) - (r * F12S7)), z + ((r * F12S7) + (r * F12C7))) + + n.noise(x + ((r * F12C8) - (r * F12S8)), z + ((r * F12S8) + (r * F12C8))) + + n.noise(x + ((r * F12C9) - (r * F12S9)), z + ((r * F12S9) + (r * F12C9))) + + n.noise(x + ((r * F12C10) - (r * F12S10)), z + ((r * F12S10) + (r * F12C10))) + + n.noise(x + ((r * F12C11) - (r * F12S11)), z + ((r * F12S11) + (r * F12C11)))) / 12.0D; } - private static final double[] F24A = {1,0,0.96592582628906831221371476203785277903079986572265625,0.25881904510252073947640383266843855381011962890625,0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375, - 0.70710678118654757273731092936941422522068023681640625,0.707106781186547461715008466853760182857513427734375,0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,0.25881904510252073947640383266843855381011962890625,0.96592582628906831221371476203785277903079986572265625, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625,-0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375, - -0.707106781186547461715008466853760182857513427734375,0.70710678118654757273731092936941422522068023681640625,-0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,-0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.96592582628906831221371476203785277903079986572265625,-0.258819045102520794987555063926265574991703033447265625,-0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125, - -0.7071067811865476837596133918850682675838470458984375,-0.707106781186547461715008466853760182857513427734375,-0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,-0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.258819045102520295387193982605822384357452392578125,-0.9659258262890684232360172245535068213939666748046875,0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.96592582628906831221371476203785277903079986572265625,-0.258819045102520683965252601410611532628536224365234375}; + + private static final double F24C0 = 1; + private static final double F24S0 = 0; + private static final double F24C1 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F24S1 = 0.25881904510252073947640383266843855381011962890625; + private static final double F24C2 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F24S2 = 0.499999999999999944488848768742172978818416595458984375; + private static final double F24C3 = 0.70710678118654757273731092936941422522068023681640625; + private static final double F24S3 = 0.707106781186547461715008466853760182857513427734375; + private static final double F24C4 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F24S4 = 0.8660254037844385965883020617184229195117950439453125; + private static final double F24C5 = 0.25881904510252073947640383266843855381011962890625; + private static final double F24S5 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F24C6 = 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375; + private static final double F24S6 = 1; + private static final double F24C7 = -0.25881904510252085049870629518409259617328643798828125; + private static final double F24S7 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F24C8 = -0.4999999999999997779553950749686919152736663818359375; + private static final double F24S8 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F24C9 = -0.707106781186547461715008466853760182857513427734375; + private static final double F24S9 = 0.70710678118654757273731092936941422522068023681640625; + private static final double F24C10 = -0.86602540378443870761060452423407696187496185302734375; + private static final double F24S10 = 0.499999999999999944488848768742172978818416595458984375; + private static final double F24C11 = -0.965925826289068201191412299522198736667633056640625; + private static final double F24S11 = 0.258819045102521017032159988957573659718036651611328125; + private static final double F24C12 = -1; + private static final double F24S12 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; + private static final double F24C13 = -0.96592582628906831221371476203785277903079986572265625; + private static final double F24S13 = -0.258819045102520794987555063926265574991703033447265625; + private static final double F24C14 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F24S14 = -0.50000000000000011102230246251565404236316680908203125; + private static final double F24C15 = -0.7071067811865476837596133918850682675838470458984375; + private static final double F24S15 = -0.707106781186547461715008466853760182857513427734375; + private static final double F24C16 = -0.500000000000000444089209850062616169452667236328125; + private static final double F24S16 = -0.86602540378443837454369713668711483478546142578125; + private static final double F24C17 = -0.25881904510252062845410137015278451144695281982421875; + private static final double F24S17 = -0.96592582628906831221371476203785277903079986572265625; + private static final double F24C18 = -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125; + private static final double F24S18 = -1; + private static final double F24C19 = 0.258819045102520295387193982605822384357452392578125; + private static final double F24S19 = -0.9659258262890684232360172245535068213939666748046875; + private static final double F24C20 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F24S20 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F24C21 = 0.70710678118654735069270600433810614049434661865234375; + private static final double F24S21 = -0.7071067811865476837596133918850682675838470458984375; + private static final double F24C22 = 0.86602540378443837454369713668711483478546142578125; + private static final double F24S22 = -0.500000000000000444089209850062616169452667236328125; + private static final double F24C23 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F24S23 = -0.258819045102520683965252601410611532628536224365234375; + private static double sc24(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F24A[0]) - (r * F24A[1])), z + ((r * F24A[1]) + (r * F24A[0]))) - +n.noise(x + ((r * F24A[2]) - (r * F24A[3])), z + ((r * F24A[3]) + (r * F24A[2]))) - +n.noise(x + ((r * F24A[4]) - (r * F24A[5])), z + ((r * F24A[5]) + (r * F24A[4]))) - +n.noise(x + ((r * F24A[6]) - (r * F24A[7])), z + ((r * F24A[7]) + (r * F24A[6]))) - +n.noise(x + ((r * F24A[8]) - (r * F24A[9])), z + ((r * F24A[9]) + (r * F24A[8]))) - +n.noise(x + ((r * F24A[10]) - (r * F24A[11])), z + ((r * F24A[11]) + (r * F24A[10]))) - +n.noise(x + ((r * F24A[12]) - (r * F24A[13])), z + ((r * F24A[13]) + (r * F24A[12]))) - +n.noise(x + ((r * F24A[14]) - (r * F24A[15])), z + ((r * F24A[15]) + (r * F24A[14]))) - +n.noise(x + ((r * F24A[16]) - (r * F24A[17])), z + ((r * F24A[17]) + (r * F24A[16]))) - +n.noise(x + ((r * F24A[18]) - (r * F24A[19])), z + ((r * F24A[19]) + (r * F24A[18]))) - +n.noise(x + ((r * F24A[20]) - (r * F24A[21])), z + ((r * F24A[21]) + (r * F24A[20]))) - +n.noise(x + ((r * F24A[22]) - (r * F24A[23])), z + ((r * F24A[23]) + (r * F24A[22]))) - +n.noise(x + ((r * F24A[24]) - (r * F24A[25])), z + ((r * F24A[25]) + (r * F24A[24]))) - +n.noise(x + ((r * F24A[26]) - (r * F24A[27])), z + ((r * F24A[27]) + (r * F24A[26]))) - +n.noise(x + ((r * F24A[28]) - (r * F24A[29])), z + ((r * F24A[29]) + (r * F24A[28]))) - +n.noise(x + ((r * F24A[30]) - (r * F24A[31])), z + ((r * F24A[31]) + (r * F24A[30]))) - +n.noise(x + ((r * F24A[32]) - (r * F24A[33])), z + ((r * F24A[33]) + (r * F24A[32]))) - +n.noise(x + ((r * F24A[34]) - (r * F24A[35])), z + ((r * F24A[35]) + (r * F24A[34]))) - +n.noise(x + ((r * F24A[36]) - (r * F24A[37])), z + ((r * F24A[37]) + (r * F24A[36]))) - +n.noise(x + ((r * F24A[38]) - (r * F24A[39])), z + ((r * F24A[39]) + (r * F24A[38]))) - +n.noise(x + ((r * F24A[40]) - (r * F24A[41])), z + ((r * F24A[41]) + (r * F24A[40]))) - +n.noise(x + ((r * F24A[42]) - (r * F24A[43])), z + ((r * F24A[43]) + (r * F24A[42]))) - +n.noise(x + ((r * F24A[44]) - (r * F24A[45])), z + ((r * F24A[45]) + (r * F24A[44]))) - +n.noise(x + ((r * F24A[46]) - (r * F24A[47])), z + ((r * F24A[47]) + (r * F24A[46]))))/24.0D; + return (n.noise(x + ((r * F24C0) - (r * F24S0)), z + ((r * F24S0) + (r * F24C0))) + + n.noise(x + ((r * F24C1) - (r * F24S1)), z + ((r * F24S1) + (r * F24C1))) + + n.noise(x + ((r * F24C2) - (r * F24S2)), z + ((r * F24S2) + (r * F24C2))) + + n.noise(x + ((r * F24C3) - (r * F24S3)), z + ((r * F24S3) + (r * F24C3))) + + n.noise(x + ((r * F24C4) - (r * F24S4)), z + ((r * F24S4) + (r * F24C4))) + + n.noise(x + ((r * F24C5) - (r * F24S5)), z + ((r * F24S5) + (r * F24C5))) + + n.noise(x + ((r * F24C6) - (r * F24S6)), z + ((r * F24S6) + (r * F24C6))) + + n.noise(x + ((r * F24C7) - (r * F24S7)), z + ((r * F24S7) + (r * F24C7))) + + n.noise(x + ((r * F24C8) - (r * F24S8)), z + ((r * F24S8) + (r * F24C8))) + + n.noise(x + ((r * F24C9) - (r * F24S9)), z + ((r * F24S9) + (r * F24C9))) + + n.noise(x + ((r * F24C10) - (r * F24S10)), z + ((r * F24S10) + (r * F24C10))) + + n.noise(x + ((r * F24C11) - (r * F24S11)), z + ((r * F24S11) + (r * F24C11))) + + n.noise(x + ((r * F24C12) - (r * F24S12)), z + ((r * F24S12) + (r * F24C12))) + + n.noise(x + ((r * F24C13) - (r * F24S13)), z + ((r * F24S13) + (r * F24C13))) + + n.noise(x + ((r * F24C14) - (r * F24S14)), z + ((r * F24S14) + (r * F24C14))) + + n.noise(x + ((r * F24C15) - (r * F24S15)), z + ((r * F24S15) + (r * F24C15))) + + n.noise(x + ((r * F24C16) - (r * F24S16)), z + ((r * F24S16) + (r * F24C16))) + + n.noise(x + ((r * F24C17) - (r * F24S17)), z + ((r * F24S17) + (r * F24C17))) + + n.noise(x + ((r * F24C18) - (r * F24S18)), z + ((r * F24S18) + (r * F24C18))) + + n.noise(x + ((r * F24C19) - (r * F24S19)), z + ((r * F24S19) + (r * F24C19))) + + n.noise(x + ((r * F24C20) - (r * F24S20)), z + ((r * F24S20) + (r * F24C20))) + + n.noise(x + ((r * F24C21) - (r * F24S21)), z + ((r * F24S21) + (r * F24C21))) + + n.noise(x + ((r * F24C22) - (r * F24S22)), z + ((r * F24S22) + (r * F24C22))) + + n.noise(x + ((r * F24C23) - (r * F24S23)), z + ((r * F24S23) + (r * F24C23)))) / 24.0D; } - private static final double[] F32A = {1,0,0.9816271834476639757127713892259635031223297119140625,0.1908089953765448043565555735767702572047710418701171875,0.92718385456678742428948680753819644451141357421875,0.374606593415912014766178117497474886476993560791015625, - 0.838670567945424050293468098971061408519744873046875,0.54463903501502708426329490976058878004550933837890625,0.71933980033865119185776393351261503994464874267578125,0.6946583704589972541043607634492218494415283203125,0.57357643635104615942310601894860155880451202392578125,0.81915204428899179855960710483486764132976531982421875, - 0.406736643075800208269043878317461349070072174072265625,0.91354545764260086659902526662335731089115142822265625,0.224951054343864920159745679484331049025058746337890625,0.97437006478523524588553073044749908149242401123046875,0.034899496702501080214187112460422213189303874969482421875,0.99939082701909576211818375668372027575969696044921875, - -0.1564344650402308134484741231062798760831356048583984375,0.987688340595137770350220307591371238231658935546875,-0.342020143325668712908083080037613399326801300048828125,0.939692620785908427905042117345146834850311279296875,-0.515038074910054266553061097511090338230133056640625,0.8571673007021123336102164103067480027675628662109375, - -0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,-0.79863551004729294024997443557367660105228424072265625,0.60181502315204815634075430352822877466678619384765625,-0.8987940462991670376169395240140147507190704345703125,0.43837114678907729281576166613376699388027191162109375, - -0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125,-0.9975640502598241976528470331686548888683319091796875,0.06975647374412552448319502218510024249553680419921875,-0.992546151641322094150154953240416944026947021484375,-0.12186934340514730956694933183825924061238765716552734375, - -0.951056516295153642204240895807743072509765625,-0.309016994374947284729415741821867413818836212158203125,-0.87461970713939585220231265338952653110027313232421875,-0.484809620246336947513299264755914919078350067138671875,-0.76604444311897801345168090847437269985675811767578125,-0.642787609686539251896419955301098525524139404296875, - -0.62932039104983783506241934446734376251697540283203125,-0.77714596145697056872592156651080586016178131103515625,-0.469471562785890750291173389996401965618133544921875,-0.88294759285892698841280434862710535526275634765625,-0.29237170472273710242205879694665782153606414794921875,-0.9563047559630353244841671767062507569789886474609375, - -0.104528463267653359825004599770181812345981597900390625,-0.99452189536827340088365190240438096225261688232421875,0.0871557427476578883140945208651828579604625701904296875,-0.9961946980917455451987052583717741072177886962890625,0.275637355816999385371701691838097758591175079345703125,-0.96126169593831878312784056106465868651866912841796875, - 0.45399049973954663794728503489750437438488006591796875,-0.89100652418836789880884907688596285879611968994140625,0.61566147532565851374641852089553140103816986083984375,-0.7880107536067217921527117141522467136383056640625,0.7547095802227719030241814834880642592906951904296875,-0.65605902899050738685815531425760127604007720947265625, - 0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.94551857559931684615861513520940206944942474365234375,-0.3255681544571566998769185374840162694454193115234375,0.99026806874157025095684048210387118160724639892578125,-0.1391731009600658819369556340461713261902332305908203125}; + + private static final double F32C0 = 1; + private static final double F32S0 = 0; + private static final double F32C1 = 0.9816271834476639757127713892259635031223297119140625; + private static final double F32S1 = 0.1908089953765448043565555735767702572047710418701171875; + private static final double F32C2 = 0.92718385456678742428948680753819644451141357421875; + private static final double F32S2 = 0.374606593415912014766178117497474886476993560791015625; + private static final double F32C3 = 0.838670567945424050293468098971061408519744873046875; + private static final double F32S3 = 0.54463903501502708426329490976058878004550933837890625; + private static final double F32C4 = 0.71933980033865119185776393351261503994464874267578125; + private static final double F32S4 = 0.6946583704589972541043607634492218494415283203125; + private static final double F32C5 = 0.57357643635104615942310601894860155880451202392578125; + private static final double F32S5 = 0.81915204428899179855960710483486764132976531982421875; + private static final double F32C6 = 0.406736643075800208269043878317461349070072174072265625; + private static final double F32S6 = 0.91354545764260086659902526662335731089115142822265625; + private static final double F32C7 = 0.224951054343864920159745679484331049025058746337890625; + private static final double F32S7 = 0.97437006478523524588553073044749908149242401123046875; + private static final double F32C8 = 0.034899496702501080214187112460422213189303874969482421875; + private static final double F32S8 = 0.99939082701909576211818375668372027575969696044921875; + private static final double F32C9 = -0.1564344650402308134484741231062798760831356048583984375; + private static final double F32S9 = 0.987688340595137770350220307591371238231658935546875; + private static final double F32C10 = -0.342020143325668712908083080037613399326801300048828125; + private static final double F32S10 = 0.939692620785908427905042117345146834850311279296875; + private static final double F32C11 = -0.515038074910054266553061097511090338230133056640625; + private static final double F32S11 = 0.8571673007021123336102164103067480027675628662109375; + private static final double F32C12 = -0.66913060635885823757007528911344707012176513671875; + private static final double F32S12 = 0.7431448254773942441175904605188407003879547119140625; + private static final double F32C13 = -0.79863551004729294024997443557367660105228424072265625; + private static final double F32S13 = 0.60181502315204815634075430352822877466678619384765625; + private static final double F32C14 = -0.8987940462991670376169395240140147507190704345703125; + private static final double F32S14 = 0.43837114678907729281576166613376699388027191162109375; + private static final double F32C15 = -0.965925826289068201191412299522198736667633056640625; + private static final double F32S15 = 0.258819045102521017032159988957573659718036651611328125; + private static final double F32C16 = -0.9975640502598241976528470331686548888683319091796875; + private static final double F32S16 = 0.06975647374412552448319502218510024249553680419921875; + private static final double F32C17 = -0.992546151641322094150154953240416944026947021484375; + private static final double F32S17 = -0.12186934340514730956694933183825924061238765716552734375; + private static final double F32C18 = -0.951056516295153642204240895807743072509765625; + private static final double F32S18 = -0.309016994374947284729415741821867413818836212158203125; + private static final double F32C19 = -0.87461970713939585220231265338952653110027313232421875; + private static final double F32S19 = -0.484809620246336947513299264755914919078350067138671875; + private static final double F32C20 = -0.76604444311897801345168090847437269985675811767578125; + private static final double F32S20 = -0.642787609686539251896419955301098525524139404296875; + private static final double F32C21 = -0.62932039104983783506241934446734376251697540283203125; + private static final double F32S21 = -0.77714596145697056872592156651080586016178131103515625; + private static final double F32C22 = -0.469471562785890750291173389996401965618133544921875; + private static final double F32S22 = -0.88294759285892698841280434862710535526275634765625; + private static final double F32C23 = -0.29237170472273710242205879694665782153606414794921875; + private static final double F32S23 = -0.9563047559630353244841671767062507569789886474609375; + private static final double F32C24 = -0.104528463267653359825004599770181812345981597900390625; + private static final double F32S24 = -0.99452189536827340088365190240438096225261688232421875; + private static final double F32C25 = 0.0871557427476578883140945208651828579604625701904296875; + private static final double F32S25 = -0.9961946980917455451987052583717741072177886962890625; + private static final double F32C26 = 0.275637355816999385371701691838097758591175079345703125; + private static final double F32S26 = -0.96126169593831878312784056106465868651866912841796875; + private static final double F32C27 = 0.45399049973954663794728503489750437438488006591796875; + private static final double F32S27 = -0.89100652418836789880884907688596285879611968994140625; + private static final double F32C28 = 0.61566147532565851374641852089553140103816986083984375; + private static final double F32S28 = -0.7880107536067217921527117141522467136383056640625; + private static final double F32C29 = 0.7547095802227719030241814834880642592906951904296875; + private static final double F32S29 = -0.65605902899050738685815531425760127604007720947265625; + private static final double F32C30 = 0.86602540378443837454369713668711483478546142578125; + private static final double F32S30 = -0.500000000000000444089209850062616169452667236328125; + private static final double F32C31 = 0.94551857559931684615861513520940206944942474365234375; + private static final double F32S31 = -0.3255681544571566998769185374840162694454193115234375; + private static final double F32C32 = 0.99026806874157025095684048210387118160724639892578125; + private static final double F32S32 = -0.1391731009600658819369556340461713261902332305908203125; + private static double sc32(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F32A[0]) - (r * F32A[1])), z + ((r * F32A[1]) + (r * F32A[0]))) - +n.noise(x + ((r * F32A[2]) - (r * F32A[3])), z + ((r * F32A[3]) + (r * F32A[2]))) - +n.noise(x + ((r * F32A[4]) - (r * F32A[5])), z + ((r * F32A[5]) + (r * F32A[4]))) - +n.noise(x + ((r * F32A[6]) - (r * F32A[7])), z + ((r * F32A[7]) + (r * F32A[6]))) - +n.noise(x + ((r * F32A[8]) - (r * F32A[9])), z + ((r * F32A[9]) + (r * F32A[8]))) - +n.noise(x + ((r * F32A[10]) - (r * F32A[11])), z + ((r * F32A[11]) + (r * F32A[10]))) - +n.noise(x + ((r * F32A[12]) - (r * F32A[13])), z + ((r * F32A[13]) + (r * F32A[12]))) - +n.noise(x + ((r * F32A[14]) - (r * F32A[15])), z + ((r * F32A[15]) + (r * F32A[14]))) - +n.noise(x + ((r * F32A[16]) - (r * F32A[17])), z + ((r * F32A[17]) + (r * F32A[16]))) - +n.noise(x + ((r * F32A[18]) - (r * F32A[19])), z + ((r * F32A[19]) + (r * F32A[18]))) - +n.noise(x + ((r * F32A[20]) - (r * F32A[21])), z + ((r * F32A[21]) + (r * F32A[20]))) - +n.noise(x + ((r * F32A[22]) - (r * F32A[23])), z + ((r * F32A[23]) + (r * F32A[22]))) - +n.noise(x + ((r * F32A[24]) - (r * F32A[25])), z + ((r * F32A[25]) + (r * F32A[24]))) - +n.noise(x + ((r * F32A[26]) - (r * F32A[27])), z + ((r * F32A[27]) + (r * F32A[26]))) - +n.noise(x + ((r * F32A[28]) - (r * F32A[29])), z + ((r * F32A[29]) + (r * F32A[28]))) - +n.noise(x + ((r * F32A[30]) - (r * F32A[31])), z + ((r * F32A[31]) + (r * F32A[30]))) - +n.noise(x + ((r * F32A[32]) - (r * F32A[33])), z + ((r * F32A[33]) + (r * F32A[32]))) - +n.noise(x + ((r * F32A[34]) - (r * F32A[35])), z + ((r * F32A[35]) + (r * F32A[34]))) - +n.noise(x + ((r * F32A[36]) - (r * F32A[37])), z + ((r * F32A[37]) + (r * F32A[36]))) - +n.noise(x + ((r * F32A[38]) - (r * F32A[39])), z + ((r * F32A[39]) + (r * F32A[38]))) - +n.noise(x + ((r * F32A[40]) - (r * F32A[41])), z + ((r * F32A[41]) + (r * F32A[40]))) - +n.noise(x + ((r * F32A[42]) - (r * F32A[43])), z + ((r * F32A[43]) + (r * F32A[42]))) - +n.noise(x + ((r * F32A[44]) - (r * F32A[45])), z + ((r * F32A[45]) + (r * F32A[44]))) - +n.noise(x + ((r * F32A[46]) - (r * F32A[47])), z + ((r * F32A[47]) + (r * F32A[46]))) - +n.noise(x + ((r * F32A[48]) - (r * F32A[49])), z + ((r * F32A[49]) + (r * F32A[48]))) - +n.noise(x + ((r * F32A[50]) - (r * F32A[51])), z + ((r * F32A[51]) + (r * F32A[50]))) - +n.noise(x + ((r * F32A[52]) - (r * F32A[53])), z + ((r * F32A[53]) + (r * F32A[52]))) - +n.noise(x + ((r * F32A[54]) - (r * F32A[55])), z + ((r * F32A[55]) + (r * F32A[54]))) - +n.noise(x + ((r * F32A[56]) - (r * F32A[57])), z + ((r * F32A[57]) + (r * F32A[56]))) - +n.noise(x + ((r * F32A[58]) - (r * F32A[59])), z + ((r * F32A[59]) + (r * F32A[58]))) - +n.noise(x + ((r * F32A[60]) - (r * F32A[61])), z + ((r * F32A[61]) + (r * F32A[60]))) - +n.noise(x + ((r * F32A[62]) - (r * F32A[63])), z + ((r * F32A[63]) + (r * F32A[62]))) - +n.noise(x + ((r * F32A[64]) - (r * F32A[65])), z + ((r * F32A[65]) + (r * F32A[64]))))/32.0D; + return (n.noise(x + ((r * F32C0) - (r * F32S0)), z + ((r * F32S0) + (r * F32C0))) + + n.noise(x + ((r * F32C1) - (r * F32S1)), z + ((r * F32S1) + (r * F32C1))) + + n.noise(x + ((r * F32C2) - (r * F32S2)), z + ((r * F32S2) + (r * F32C2))) + + n.noise(x + ((r * F32C3) - (r * F32S3)), z + ((r * F32S3) + (r * F32C3))) + + n.noise(x + ((r * F32C4) - (r * F32S4)), z + ((r * F32S4) + (r * F32C4))) + + n.noise(x + ((r * F32C5) - (r * F32S5)), z + ((r * F32S5) + (r * F32C5))) + + n.noise(x + ((r * F32C6) - (r * F32S6)), z + ((r * F32S6) + (r * F32C6))) + + n.noise(x + ((r * F32C7) - (r * F32S7)), z + ((r * F32S7) + (r * F32C7))) + + n.noise(x + ((r * F32C8) - (r * F32S8)), z + ((r * F32S8) + (r * F32C8))) + + n.noise(x + ((r * F32C9) - (r * F32S9)), z + ((r * F32S9) + (r * F32C9))) + + n.noise(x + ((r * F32C10) - (r * F32S10)), z + ((r * F32S10) + (r * F32C10))) + + n.noise(x + ((r * F32C11) - (r * F32S11)), z + ((r * F32S11) + (r * F32C11))) + + n.noise(x + ((r * F32C12) - (r * F32S12)), z + ((r * F32S12) + (r * F32C12))) + + n.noise(x + ((r * F32C13) - (r * F32S13)), z + ((r * F32S13) + (r * F32C13))) + + n.noise(x + ((r * F32C14) - (r * F32S14)), z + ((r * F32S14) + (r * F32C14))) + + n.noise(x + ((r * F32C15) - (r * F32S15)), z + ((r * F32S15) + (r * F32C15))) + + n.noise(x + ((r * F32C16) - (r * F32S16)), z + ((r * F32S16) + (r * F32C16))) + + n.noise(x + ((r * F32C17) - (r * F32S17)), z + ((r * F32S17) + (r * F32C17))) + + n.noise(x + ((r * F32C18) - (r * F32S18)), z + ((r * F32S18) + (r * F32C18))) + + n.noise(x + ((r * F32C19) - (r * F32S19)), z + ((r * F32S19) + (r * F32C19))) + + n.noise(x + ((r * F32C20) - (r * F32S20)), z + ((r * F32S20) + (r * F32C20))) + + n.noise(x + ((r * F32C21) - (r * F32S21)), z + ((r * F32S21) + (r * F32C21))) + + n.noise(x + ((r * F32C22) - (r * F32S22)), z + ((r * F32S22) + (r * F32C22))) + + n.noise(x + ((r * F32C23) - (r * F32S23)), z + ((r * F32S23) + (r * F32C23))) + + n.noise(x + ((r * F32C24) - (r * F32S24)), z + ((r * F32S24) + (r * F32C24))) + + n.noise(x + ((r * F32C25) - (r * F32S25)), z + ((r * F32S25) + (r * F32C25))) + + n.noise(x + ((r * F32C26) - (r * F32S26)), z + ((r * F32S26) + (r * F32C26))) + + n.noise(x + ((r * F32C27) - (r * F32S27)), z + ((r * F32S27) + (r * F32C27))) + + n.noise(x + ((r * F32C28) - (r * F32S28)), z + ((r * F32S28) + (r * F32C28))) + + n.noise(x + ((r * F32C29) - (r * F32S29)), z + ((r * F32S29) + (r * F32C29))) + + n.noise(x + ((r * F32C30) - (r * F32S30)), z + ((r * F32S30) + (r * F32C30))) + + n.noise(x + ((r * F32C31) - (r * F32S31)), z + ((r * F32S31) + (r * F32C31))) + + n.noise(x + ((r * F32C32) - (r * F32S32)), z + ((r * F32S32) + (r * F32C32)))) / 32.0D; } - private static final double[] F48A = {1,0,0.99254615164132198312785249072476290166378021240234375,0.12186934340514747610040302561174030415713787078857421875,0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625, - 0.93358042649720174299687869279296137392520904541015625,0.3583679495453002683547083506709896028041839599609375,0.88294759285892698841280434862710535526275634765625,0.469471562785890805802324621254228986799716949462890625,0.81915204428899179855960710483486764132976531982421875,0.57357643635104604840080355643294751644134521484375, - 0.7431448254773942441175904605188407003879547119140625,0.66913060635885823757007528911344707012176513671875,0.656059028990507275835852851741947233676910400390625,0.75470958022277201404648394600371830165386199951171875,0.5591929034707467938147829045192338526248931884765625,0.82903757255504173517834942686022259294986724853515625, - 0.453990499739546804480738728670985437929630279541015625,0.891006524188367787786546614370308816432952880859375,0.342020143325668823930385542553267441689968109130859375,0.93969262078590831688273965482949279248714447021484375,0.224951054343864920159745679484331049025058746337890625,0.97437006478523524588553073044749908149242401123046875, - 0.10452846326765345696951925447137909941375255584716796875,0.9945218953682732898613494398887269198894500732421875,-0.01745240643728347695873281963940826244652271270751953125,0.9998476951563912695775115935248322784900665283203125,-0.139173100960065354581018937096814624965190887451171875,0.9902680687415703619791429446195252239704132080078125, - -0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625,-0.37460659341591207027732934875530190765857696533203125,0.92718385456678742428948680753819644451141357421875,-0.4848096202463370030244504960137419402599334716796875,0.87461970713939585220231265338952653110027313232421875, - -0.58778525229247302608115433031343854963779449462890625,0.80901699437494745126286943559534847736358642578125,-0.6819983600624983655080768585321493446826934814453125,0.73135370161917057085787519099540077149868011474609375,-0.76604444311897790242937844595871865749359130859375,0.6427876096865394739410248803324066102504730224609375, - -0.83867056794542393927116563645540736615657806396484375,0.54463903501502730630789983479189686477184295654296875,-0.8987940462991670376169395240140147507190704345703125,0.43837114678907729281576166613376699388027191162109375,-0.94551857559931684615861513520940206944942474365234375,0.32556815445715658885461607496836222708225250244140625, - -0.9781476007338056888329447247087955474853515625,0.2079116908177593148199235884021618403494358062744140625,-0.9961946980917455451987052583717741072177886962890625,0.087155742747658193625426292783231474459171295166015625,-0.99939082701909576211818375668372027575969696044921875,-0.034899496702500899802945610872484394349157810211181640625, - -0.987688340595137770350220307591371238231658935546875,-0.156434465040230730181747276219539344310760498046875,-0.9612616959383188941501430235803127288818359375,-0.27563735581699899679364307303330861032009124755859375,-0.92050485345244037471701403774204663932323455810546875,-0.390731128489273549231342030907399021089076995849609375, - -0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.798635510047292829227671973058022558689117431640625,-0.60181502315204837838535922855953685939311981201171875,-0.71933980033865108083546147099696099758148193359375,-0.69465837045899736512666322596487589180469512939453125, - -0.62932039104983783506241934446734376251697540283203125,-0.77714596145697056872592156651080586016178131103515625,-0.52991926423320501182701036668731831014156341552734375,-0.84804809615642595677087456351728178560733795166015625,-0.42261826174069916373099431439186446368694305419921875,-0.90630778703665004769618462887592613697052001953125, - -0.30901699437494756228517189811100251972675323486328125,-0.95105651629515353118193843329208903014659881591796875,-0.1908089953765446100675262641743756830692291259765625,-0.9816271834476639757127713892259635031223297119140625,-0.069756473744125579994346253442927263677120208740234375,-0.9975640502598241976528470331686548888683319091796875, - 0.05233595624294394565989563261609873734414577484130859375,-0.99862953475457383323288240717374719679355621337890625,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875,0.292371704722736713844000178141868673264980316162109375,-0.95630475596303543550646963922190479934215545654296875, - 0.406736643075799764179834028254845179617404937744140625,-0.91354545764260108864363019165466539561748504638671875,0.51503807491005415553075863499543629586696624755859375,-0.8571673007021123336102164103067480027675628662109375,0.61566147532565851374641852089553140103816986083984375,-0.7880107536067217921527117141522467136383056640625, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375,0.857167300702112111565611485275439918041229248046875,-0.5150380749100544885976660225423984229564666748046875, - 0.9135454576426009776213277291390113532543182373046875,-0.40673664307580015275789264705963432788848876953125,0.9563047559630353244841671767062507569789886474609375,-0.292371704722737157933210028204484842717647552490234375,0.98480775301220802031565426659653894603252410888671875,-0.1736481776669303866977855932418606244027614593505859375, - 0.99862953475457383323288240717374719679355621337890625,-0.052335956242944368932423770957029773853719234466552734375}; + + private static final double F48C0 = 1; + private static final double F48S0 = 0; + private static final double F48C1 = 0.99254615164132198312785249072476290166378021240234375; + private static final double F48S1 = 0.12186934340514747610040302561174030415713787078857421875; + private static final double F48C2 = 0.97029572627599647294260876151383854448795318603515625; + private static final double F48S2 = 0.2419218955996677300479547056966111995279788970947265625; + private static final double F48C3 = 0.93358042649720174299687869279296137392520904541015625; + private static final double F48S3 = 0.3583679495453002683547083506709896028041839599609375; + private static final double F48C4 = 0.88294759285892698841280434862710535526275634765625; + private static final double F48S4 = 0.469471562785890805802324621254228986799716949462890625; + private static final double F48C5 = 0.81915204428899179855960710483486764132976531982421875; + private static final double F48S5 = 0.57357643635104604840080355643294751644134521484375; + private static final double F48C6 = 0.7431448254773942441175904605188407003879547119140625; + private static final double F48S6 = 0.66913060635885823757007528911344707012176513671875; + private static final double F48C7 = 0.656059028990507275835852851741947233676910400390625; + private static final double F48S7 = 0.75470958022277201404648394600371830165386199951171875; + private static final double F48C8 = 0.5591929034707467938147829045192338526248931884765625; + private static final double F48S8 = 0.82903757255504173517834942686022259294986724853515625; + private static final double F48C9 = 0.453990499739546804480738728670985437929630279541015625; + private static final double F48S9 = 0.891006524188367787786546614370308816432952880859375; + private static final double F48C10 = 0.342020143325668823930385542553267441689968109130859375; + private static final double F48S10 = 0.93969262078590831688273965482949279248714447021484375; + private static final double F48C11 = 0.224951054343864920159745679484331049025058746337890625; + private static final double F48S11 = 0.97437006478523524588553073044749908149242401123046875; + private static final double F48C12 = 0.10452846326765345696951925447137909941375255584716796875; + private static final double F48S12 = 0.9945218953682732898613494398887269198894500732421875; + private static final double F48C13 = -0.01745240643728347695873281963940826244652271270751953125; + private static final double F48S13 = 0.9998476951563912695775115935248322784900665283203125; + private static final double F48C14 = -0.139173100960065354581018937096814624965190887451171875; + private static final double F48S14 = 0.9902680687415703619791429446195252239704132080078125; + private static final double F48C15 = -0.25881904510252085049870629518409259617328643798828125; + private static final double F48S15 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F48C16 = -0.37460659341591207027732934875530190765857696533203125; + private static final double F48S16 = 0.92718385456678742428948680753819644451141357421875; + private static final double F48C17 = -0.4848096202463370030244504960137419402599334716796875; + private static final double F48S17 = 0.87461970713939585220231265338952653110027313232421875; + private static final double F48C18 = -0.58778525229247302608115433031343854963779449462890625; + private static final double F48S18 = 0.80901699437494745126286943559534847736358642578125; + private static final double F48C19 = -0.6819983600624983655080768585321493446826934814453125; + private static final double F48S19 = 0.73135370161917057085787519099540077149868011474609375; + private static final double F48C20 = -0.76604444311897790242937844595871865749359130859375; + private static final double F48S20 = 0.6427876096865394739410248803324066102504730224609375; + private static final double F48C21 = -0.83867056794542393927116563645540736615657806396484375; + private static final double F48S21 = 0.54463903501502730630789983479189686477184295654296875; + private static final double F48C22 = -0.8987940462991670376169395240140147507190704345703125; + private static final double F48S22 = 0.43837114678907729281576166613376699388027191162109375; + private static final double F48C23 = -0.94551857559931684615861513520940206944942474365234375; + private static final double F48S23 = 0.32556815445715658885461607496836222708225250244140625; + private static final double F48C24 = -0.9781476007338056888329447247087955474853515625; + private static final double F48S24 = 0.2079116908177593148199235884021618403494358062744140625; + private static final double F48C25 = -0.9961946980917455451987052583717741072177886962890625; + private static final double F48S25 = 0.087155742747658193625426292783231474459171295166015625; + private static final double F48C26 = -0.99939082701909576211818375668372027575969696044921875; + private static final double F48S26 = -0.034899496702500899802945610872484394349157810211181640625; + private static final double F48C27 = -0.987688340595137770350220307591371238231658935546875; + private static final double F48S27 = -0.156434465040230730181747276219539344310760498046875; + private static final double F48C28 = -0.9612616959383188941501430235803127288818359375; + private static final double F48S28 = -0.27563735581699899679364307303330861032009124755859375; + private static final double F48C29 = -0.92050485345244037471701403774204663932323455810546875; + private static final double F48S29 = -0.390731128489273549231342030907399021089076995849609375; + private static final double F48C30 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F48S30 = -0.50000000000000011102230246251565404236316680908203125; + private static final double F48C31 = -0.798635510047292829227671973058022558689117431640625; + private static final double F48S31 = -0.60181502315204837838535922855953685939311981201171875; + private static final double F48C32 = -0.71933980033865108083546147099696099758148193359375; + private static final double F48S32 = -0.69465837045899736512666322596487589180469512939453125; + private static final double F48C33 = -0.62932039104983783506241934446734376251697540283203125; + private static final double F48S33 = -0.77714596145697056872592156651080586016178131103515625; + private static final double F48C34 = -0.52991926423320501182701036668731831014156341552734375; + private static final double F48S34 = -0.84804809615642595677087456351728178560733795166015625; + private static final double F48C35 = -0.42261826174069916373099431439186446368694305419921875; + private static final double F48S35 = -0.90630778703665004769618462887592613697052001953125; + private static final double F48C36 = -0.30901699437494756228517189811100251972675323486328125; + private static final double F48S36 = -0.95105651629515353118193843329208903014659881591796875; + private static final double F48C37 = -0.1908089953765446100675262641743756830692291259765625; + private static final double F48S37 = -0.9816271834476639757127713892259635031223297119140625; + private static final double F48C38 = -0.069756473744125579994346253442927263677120208740234375; + private static final double F48S38 = -0.9975640502598241976528470331686548888683319091796875; + private static final double F48C39 = 0.05233595624294394565989563261609873734414577484130859375; + private static final double F48S39 = -0.99862953475457383323288240717374719679355621337890625; + private static final double F48C40 = 0.17364817766692997036415135880815796554088592529296875; + private static final double F48S40 = -0.98480775301220813133795672911219298839569091796875; + private static final double F48C41 = 0.292371704722736713844000178141868673264980316162109375; + private static final double F48S41 = -0.95630475596303543550646963922190479934215545654296875; + private static final double F48C42 = 0.406736643075799764179834028254845179617404937744140625; + private static final double F48S42 = -0.91354545764260108864363019165466539561748504638671875; + private static final double F48C43 = 0.51503807491005415553075863499543629586696624755859375; + private static final double F48S43 = -0.8571673007021123336102164103067480027675628662109375; + private static final double F48C44 = 0.61566147532565851374641852089553140103816986083984375; + private static final double F48S44 = -0.7880107536067217921527117141522467136383056640625; + private static final double F48C45 = 0.70710678118654735069270600433810614049434661865234375; + private static final double F48S45 = -0.7071067811865476837596133918850682675838470458984375; + private static final double F48C46 = 0.7880107536067220141973166391835547983646392822265625; + private static final double F48S46 = -0.61566147532565818067951113334856927394866943359375; + private static final double F48C47 = 0.857167300702112111565611485275439918041229248046875; + private static final double F48S47 = -0.5150380749100544885976660225423984229564666748046875; + private static final double F48C48 = 0.9135454576426009776213277291390113532543182373046875; + private static final double F48S48 = -0.40673664307580015275789264705963432788848876953125; + private static final double F48C49 = 0.9563047559630353244841671767062507569789886474609375; + private static final double F48S49 = -0.292371704722737157933210028204484842717647552490234375; + private static final double F48C50 = 0.98480775301220802031565426659653894603252410888671875; + private static final double F48S50 = -0.1736481776669303866977855932418606244027614593505859375; + private static final double F48C51 = 0.99862953475457383323288240717374719679355621337890625; + private static final double F48S51 = -0.052335956242944368932423770957029773853719234466552734375; + private static double sc48(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F48A[0]) - (r * F48A[1])), z + ((r * F48A[1]) + (r * F48A[0]))) - +n.noise(x + ((r * F48A[2]) - (r * F48A[3])), z + ((r * F48A[3]) + (r * F48A[2]))) - +n.noise(x + ((r * F48A[4]) - (r * F48A[5])), z + ((r * F48A[5]) + (r * F48A[4]))) - +n.noise(x + ((r * F48A[6]) - (r * F48A[7])), z + ((r * F48A[7]) + (r * F48A[6]))) - +n.noise(x + ((r * F48A[8]) - (r * F48A[9])), z + ((r * F48A[9]) + (r * F48A[8]))) - +n.noise(x + ((r * F48A[10]) - (r * F48A[11])), z + ((r * F48A[11]) + (r * F48A[10]))) - +n.noise(x + ((r * F48A[12]) - (r * F48A[13])), z + ((r * F48A[13]) + (r * F48A[12]))) - +n.noise(x + ((r * F48A[14]) - (r * F48A[15])), z + ((r * F48A[15]) + (r * F48A[14]))) - +n.noise(x + ((r * F48A[16]) - (r * F48A[17])), z + ((r * F48A[17]) + (r * F48A[16]))) - +n.noise(x + ((r * F48A[18]) - (r * F48A[19])), z + ((r * F48A[19]) + (r * F48A[18]))) - +n.noise(x + ((r * F48A[20]) - (r * F48A[21])), z + ((r * F48A[21]) + (r * F48A[20]))) - +n.noise(x + ((r * F48A[22]) - (r * F48A[23])), z + ((r * F48A[23]) + (r * F48A[22]))) - +n.noise(x + ((r * F48A[24]) - (r * F48A[25])), z + ((r * F48A[25]) + (r * F48A[24]))) - +n.noise(x + ((r * F48A[26]) - (r * F48A[27])), z + ((r * F48A[27]) + (r * F48A[26]))) - +n.noise(x + ((r * F48A[28]) - (r * F48A[29])), z + ((r * F48A[29]) + (r * F48A[28]))) - +n.noise(x + ((r * F48A[30]) - (r * F48A[31])), z + ((r * F48A[31]) + (r * F48A[30]))) - +n.noise(x + ((r * F48A[32]) - (r * F48A[33])), z + ((r * F48A[33]) + (r * F48A[32]))) - +n.noise(x + ((r * F48A[34]) - (r * F48A[35])), z + ((r * F48A[35]) + (r * F48A[34]))) - +n.noise(x + ((r * F48A[36]) - (r * F48A[37])), z + ((r * F48A[37]) + (r * F48A[36]))) - +n.noise(x + ((r * F48A[38]) - (r * F48A[39])), z + ((r * F48A[39]) + (r * F48A[38]))) - +n.noise(x + ((r * F48A[40]) - (r * F48A[41])), z + ((r * F48A[41]) + (r * F48A[40]))) - +n.noise(x + ((r * F48A[42]) - (r * F48A[43])), z + ((r * F48A[43]) + (r * F48A[42]))) - +n.noise(x + ((r * F48A[44]) - (r * F48A[45])), z + ((r * F48A[45]) + (r * F48A[44]))) - +n.noise(x + ((r * F48A[46]) - (r * F48A[47])), z + ((r * F48A[47]) + (r * F48A[46]))) - +n.noise(x + ((r * F48A[48]) - (r * F48A[49])), z + ((r * F48A[49]) + (r * F48A[48]))) - +n.noise(x + ((r * F48A[50]) - (r * F48A[51])), z + ((r * F48A[51]) + (r * F48A[50]))) - +n.noise(x + ((r * F48A[52]) - (r * F48A[53])), z + ((r * F48A[53]) + (r * F48A[52]))) - +n.noise(x + ((r * F48A[54]) - (r * F48A[55])), z + ((r * F48A[55]) + (r * F48A[54]))) - +n.noise(x + ((r * F48A[56]) - (r * F48A[57])), z + ((r * F48A[57]) + (r * F48A[56]))) - +n.noise(x + ((r * F48A[58]) - (r * F48A[59])), z + ((r * F48A[59]) + (r * F48A[58]))) - +n.noise(x + ((r * F48A[60]) - (r * F48A[61])), z + ((r * F48A[61]) + (r * F48A[60]))) - +n.noise(x + ((r * F48A[62]) - (r * F48A[63])), z + ((r * F48A[63]) + (r * F48A[62]))) - +n.noise(x + ((r * F48A[64]) - (r * F48A[65])), z + ((r * F48A[65]) + (r * F48A[64]))) - +n.noise(x + ((r * F48A[66]) - (r * F48A[67])), z + ((r * F48A[67]) + (r * F48A[66]))) - +n.noise(x + ((r * F48A[68]) - (r * F48A[69])), z + ((r * F48A[69]) + (r * F48A[68]))) - +n.noise(x + ((r * F48A[70]) - (r * F48A[71])), z + ((r * F48A[71]) + (r * F48A[70]))) - +n.noise(x + ((r * F48A[72]) - (r * F48A[73])), z + ((r * F48A[73]) + (r * F48A[72]))) - +n.noise(x + ((r * F48A[74]) - (r * F48A[75])), z + ((r * F48A[75]) + (r * F48A[74]))) - +n.noise(x + ((r * F48A[76]) - (r * F48A[77])), z + ((r * F48A[77]) + (r * F48A[76]))) - +n.noise(x + ((r * F48A[78]) - (r * F48A[79])), z + ((r * F48A[79]) + (r * F48A[78]))) - +n.noise(x + ((r * F48A[80]) - (r * F48A[81])), z + ((r * F48A[81]) + (r * F48A[80]))) - +n.noise(x + ((r * F48A[82]) - (r * F48A[83])), z + ((r * F48A[83]) + (r * F48A[82]))) - +n.noise(x + ((r * F48A[84]) - (r * F48A[85])), z + ((r * F48A[85]) + (r * F48A[84]))) - +n.noise(x + ((r * F48A[86]) - (r * F48A[87])), z + ((r * F48A[87]) + (r * F48A[86]))) - +n.noise(x + ((r * F48A[88]) - (r * F48A[89])), z + ((r * F48A[89]) + (r * F48A[88]))) - +n.noise(x + ((r * F48A[90]) - (r * F48A[91])), z + ((r * F48A[91]) + (r * F48A[90]))) - +n.noise(x + ((r * F48A[92]) - (r * F48A[93])), z + ((r * F48A[93]) + (r * F48A[92]))) - +n.noise(x + ((r * F48A[94]) - (r * F48A[95])), z + ((r * F48A[95]) + (r * F48A[94]))) - +n.noise(x + ((r * F48A[96]) - (r * F48A[97])), z + ((r * F48A[97]) + (r * F48A[96]))) - +n.noise(x + ((r * F48A[98]) - (r * F48A[99])), z + ((r * F48A[99]) + (r * F48A[98]))) - +n.noise(x + ((r * F48A[100]) - (r * F48A[101])), z + ((r * F48A[101]) + (r * F48A[100]))) - +n.noise(x + ((r * F48A[102]) - (r * F48A[103])), z + ((r * F48A[103]) + (r * F48A[102]))))/48.0D; + return (n.noise(x + ((r * F48C0) - (r * F48S0)), z + ((r * F48S0) + (r * F48C0))) + + n.noise(x + ((r * F48C1) - (r * F48S1)), z + ((r * F48S1) + (r * F48C1))) + + n.noise(x + ((r * F48C2) - (r * F48S2)), z + ((r * F48S2) + (r * F48C2))) + + n.noise(x + ((r * F48C3) - (r * F48S3)), z + ((r * F48S3) + (r * F48C3))) + + n.noise(x + ((r * F48C4) - (r * F48S4)), z + ((r * F48S4) + (r * F48C4))) + + n.noise(x + ((r * F48C5) - (r * F48S5)), z + ((r * F48S5) + (r * F48C5))) + + n.noise(x + ((r * F48C6) - (r * F48S6)), z + ((r * F48S6) + (r * F48C6))) + + n.noise(x + ((r * F48C7) - (r * F48S7)), z + ((r * F48S7) + (r * F48C7))) + + n.noise(x + ((r * F48C8) - (r * F48S8)), z + ((r * F48S8) + (r * F48C8))) + + n.noise(x + ((r * F48C9) - (r * F48S9)), z + ((r * F48S9) + (r * F48C9))) + + n.noise(x + ((r * F48C10) - (r * F48S10)), z + ((r * F48S10) + (r * F48C10))) + + n.noise(x + ((r * F48C11) - (r * F48S11)), z + ((r * F48S11) + (r * F48C11))) + + n.noise(x + ((r * F48C12) - (r * F48S12)), z + ((r * F48S12) + (r * F48C12))) + + n.noise(x + ((r * F48C13) - (r * F48S13)), z + ((r * F48S13) + (r * F48C13))) + + n.noise(x + ((r * F48C14) - (r * F48S14)), z + ((r * F48S14) + (r * F48C14))) + + n.noise(x + ((r * F48C15) - (r * F48S15)), z + ((r * F48S15) + (r * F48C15))) + + n.noise(x + ((r * F48C16) - (r * F48S16)), z + ((r * F48S16) + (r * F48C16))) + + n.noise(x + ((r * F48C17) - (r * F48S17)), z + ((r * F48S17) + (r * F48C17))) + + n.noise(x + ((r * F48C18) - (r * F48S18)), z + ((r * F48S18) + (r * F48C18))) + + n.noise(x + ((r * F48C19) - (r * F48S19)), z + ((r * F48S19) + (r * F48C19))) + + n.noise(x + ((r * F48C20) - (r * F48S20)), z + ((r * F48S20) + (r * F48C20))) + + n.noise(x + ((r * F48C21) - (r * F48S21)), z + ((r * F48S21) + (r * F48C21))) + + n.noise(x + ((r * F48C22) - (r * F48S22)), z + ((r * F48S22) + (r * F48C22))) + + n.noise(x + ((r * F48C23) - (r * F48S23)), z + ((r * F48S23) + (r * F48C23))) + + n.noise(x + ((r * F48C24) - (r * F48S24)), z + ((r * F48S24) + (r * F48C24))) + + n.noise(x + ((r * F48C25) - (r * F48S25)), z + ((r * F48S25) + (r * F48C25))) + + n.noise(x + ((r * F48C26) - (r * F48S26)), z + ((r * F48S26) + (r * F48C26))) + + n.noise(x + ((r * F48C27) - (r * F48S27)), z + ((r * F48S27) + (r * F48C27))) + + n.noise(x + ((r * F48C28) - (r * F48S28)), z + ((r * F48S28) + (r * F48C28))) + + n.noise(x + ((r * F48C29) - (r * F48S29)), z + ((r * F48S29) + (r * F48C29))) + + n.noise(x + ((r * F48C30) - (r * F48S30)), z + ((r * F48S30) + (r * F48C30))) + + n.noise(x + ((r * F48C31) - (r * F48S31)), z + ((r * F48S31) + (r * F48C31))) + + n.noise(x + ((r * F48C32) - (r * F48S32)), z + ((r * F48S32) + (r * F48C32))) + + n.noise(x + ((r * F48C33) - (r * F48S33)), z + ((r * F48S33) + (r * F48C33))) + + n.noise(x + ((r * F48C34) - (r * F48S34)), z + ((r * F48S34) + (r * F48C34))) + + n.noise(x + ((r * F48C35) - (r * F48S35)), z + ((r * F48S35) + (r * F48C35))) + + n.noise(x + ((r * F48C36) - (r * F48S36)), z + ((r * F48S36) + (r * F48C36))) + + n.noise(x + ((r * F48C37) - (r * F48S37)), z + ((r * F48S37) + (r * F48C37))) + + n.noise(x + ((r * F48C38) - (r * F48S38)), z + ((r * F48S38) + (r * F48C38))) + + n.noise(x + ((r * F48C39) - (r * F48S39)), z + ((r * F48S39) + (r * F48C39))) + + n.noise(x + ((r * F48C40) - (r * F48S40)), z + ((r * F48S40) + (r * F48C40))) + + n.noise(x + ((r * F48C41) - (r * F48S41)), z + ((r * F48S41) + (r * F48C41))) + + n.noise(x + ((r * F48C42) - (r * F48S42)), z + ((r * F48S42) + (r * F48C42))) + + n.noise(x + ((r * F48C43) - (r * F48S43)), z + ((r * F48S43) + (r * F48C43))) + + n.noise(x + ((r * F48C44) - (r * F48S44)), z + ((r * F48S44) + (r * F48C44))) + + n.noise(x + ((r * F48C45) - (r * F48S45)), z + ((r * F48S45) + (r * F48C45))) + + n.noise(x + ((r * F48C46) - (r * F48S46)), z + ((r * F48S46) + (r * F48C46))) + + n.noise(x + ((r * F48C47) - (r * F48S47)), z + ((r * F48S47) + (r * F48C47))) + + n.noise(x + ((r * F48C48) - (r * F48S48)), z + ((r * F48S48) + (r * F48C48))) + + n.noise(x + ((r * F48C49) - (r * F48S49)), z + ((r * F48S49) + (r * F48C49))) + + n.noise(x + ((r * F48C50) - (r * F48S50)), z + ((r * F48S50) + (r * F48C50))) + + n.noise(x + ((r * F48C51) - (r * F48S51)), z + ((r * F48S51) + (r * F48C51)))) / 48.0D; } - private static final double[] F64A = {1,0,0.9961946980917455451987052583717741072177886962890625,0.0871557427476581658698506771543179638683795928955078125,0.98480775301220802031565426659653894603252410888671875,0.1736481776669303311866343619840336032211780548095703125, - 0.96592582628906831221371476203785277903079986572265625,0.25881904510252073947640383266843855381011962890625,0.939692620785908427905042117345146834850311279296875,0.342020143325668712908083080037613399326801300048828125,0.90630778703664993667388216636027209460735321044921875,0.422618261740699441286750470680999569594860076904296875, - 0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.81915204428899179855960710483486764132976531982421875,0.57357643635104604840080355643294751644134521484375,0.76604444311897801345168090847437269985675811767578125,0.642787609686539251896419955301098525524139404296875, - 0.70710678118654757273731092936941422522068023681640625,0.707106781186547461715008466853760182857513427734375,0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125,0.57357643635104615942310601894860155880451202392578125,0.81915204428899179855960710483486764132976531982421875, - 0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,0.422618261740699441286750470680999569594860076904296875,0.90630778703664993667388216636027209460735321044921875,0.342020143325668823930385542553267441689968109130859375,0.93969262078590831688273965482949279248714447021484375, - 0.25881904510252073947640383266843855381011962890625,0.96592582628906831221371476203785277903079986572265625,0.17364817766693041445336120887077413499355316162109375,0.98480775301220802031565426659653894603252410888671875,0.087155742747658138114275061525404453277587890625,0.9961946980917455451987052583717741072177886962890625, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.08715574274765823525878971622660174034535884857177734375,0.9961946980917455451987052583717741072177886962890625,-0.1736481776669303034310587463551200926303863525390625,0.98480775301220802031565426659653894603252410888671875, - -0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625,-0.342020143325668712908083080037613399326801300048828125,0.939692620785908427905042117345146834850311279296875,-0.422618261740699330264448008165345527231693267822265625,0.90630778703665004769618462887592613697052001953125, - -0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.57357643635104615942310601894860155880451202392578125,0.8191520442889916875373046423192135989665985107421875,-0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125, - -0.707106781186547461715008466853760182857513427734375,0.70710678118654757273731092936941422522068023681640625,-0.76604444311897790242937844595871865749359130859375,0.6427876096865394739410248803324066102504730224609375,-0.81915204428899190958190956735052168369293212890625,0.57357643635104593737850109391729347407817840576171875, - -0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,-0.90630778703664993667388216636027209460735321044921875,0.4226182617406994967979017019388265907764434814453125,-0.93969262078590831688273965482949279248714447021484375,0.342020143325668879441536773811094462871551513671875, - -0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125,-0.98480775301220802031565426659653894603252410888671875,0.1736481776669302756754831307262065820395946502685546875,-0.9961946980917455451987052583717741072177886962890625,0.087155742747658193625426292783231474459171295166015625, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.9961946980917455451987052583717741072177886962890625,-0.0871557427476579438252457521230098791420459747314453125,-0.98480775301220802031565426659653894603252410888671875,-0.173648177666930469964512440128601156175136566162109375, - -0.96592582628906831221371476203785277903079986572265625,-0.258819045102520794987555063926265574991703033447265625,-0.939692620785908427905042117345146834850311279296875,-0.3420201433256686573969318487797863781452178955078125,-0.90630778703665004769618462887592613697052001953125,-0.42261826174069927475329677690751850605010986328125, - -0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.81915204428899179855960710483486764132976531982421875,-0.57357643635104615942310601894860155880451202392578125,-0.76604444311897801345168090847437269985675811767578125,-0.642787609686539251896419955301098525524139404296875, - -0.7071067811865476837596133918850682675838470458984375,-0.707106781186547461715008466853760182857513427734375,-0.6427876096865394739410248803324066102504730224609375,-0.76604444311897790242937844595871865749359130859375,-0.57357643635104638146771094397990964353084564208984375,-0.81915204428899157651500217980355955660343170166015625, - -0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,-0.42261826174069916373099431439186446368694305419921875,-0.90630778703665004769618462887592613697052001953125,-0.34202014332566854637462938626413233578205108642578125,-0.939692620785908427905042117345146834850311279296875, - -0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625,-0.1736481776669303311866343619840336032211780548095703125,-0.98480775301220802031565426659653894603252410888671875,-0.08715574274765824913657752404105849564075469970703125,-0.9961946980917455451987052583717741072177886962890625, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.0871557427476578883140945208651828579604625701904296875,-0.9961946980917455451987052583717741072177886962890625,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875, - 0.258819045102520295387193982605822384357452392578125,-0.9659258262890684232360172245535068213939666748046875,0.34202014332566899046383923632674850523471832275390625,-0.93969262078590831688273965482949279248714447021484375,0.42261826174069960782020416445448063313961029052734375,-0.90630778703664993667388216636027209460735321044921875, - 0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.57357643635104604840080355643294751644134521484375,-0.81915204428899179855960710483486764132976531982421875,0.642787609686539251896419955301098525524139404296875,-0.7660444431189781244739833709900267422199249267578125, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.76604444311897779140707598344306461513042449951171875,-0.64278760968653958496332734284806065261363983154296875,0.81915204428899157651500217980355955660343170166015625,-0.573576436351046492490013406495563685894012451171875, - 0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.90630778703665004769618462887592613697052001953125,-0.422618261740699219242145545649691484868526458740234375,0.939692620785908427905042117345146834850311279296875,-0.342020143325668601885780617521959356963634490966796875, - 0.96592582628906831221371476203785277903079986572265625,-0.258819045102520683965252601410611532628536224365234375,0.98480775301220802031565426659653894603252410888671875,-0.1736481776669303866977855932418606244027614593505859375,0.9961946980917455451987052583717741072177886962890625,-0.08715574274765831852551656311334227211773395538330078125}; + + private static final double F64C0 = 1; + private static final double F64S0 = 0; + private static final double F64C1 = 0.9961946980917455451987052583717741072177886962890625; + private static final double F64S1 = 0.0871557427476581658698506771543179638683795928955078125; + private static final double F64C2 = 0.98480775301220802031565426659653894603252410888671875; + private static final double F64S2 = 0.1736481776669303311866343619840336032211780548095703125; + private static final double F64C3 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F64S3 = 0.25881904510252073947640383266843855381011962890625; + private static final double F64C4 = 0.939692620785908427905042117345146834850311279296875; + private static final double F64S4 = 0.342020143325668712908083080037613399326801300048828125; + private static final double F64C5 = 0.90630778703664993667388216636027209460735321044921875; + private static final double F64S5 = 0.422618261740699441286750470680999569594860076904296875; + private static final double F64C6 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F64S6 = 0.499999999999999944488848768742172978818416595458984375; + private static final double F64C7 = 0.81915204428899179855960710483486764132976531982421875; + private static final double F64S7 = 0.57357643635104604840080355643294751644134521484375; + private static final double F64C8 = 0.76604444311897801345168090847437269985675811767578125; + private static final double F64S8 = 0.642787609686539251896419955301098525524139404296875; + private static final double F64C9 = 0.70710678118654757273731092936941422522068023681640625; + private static final double F64S9 = 0.707106781186547461715008466853760182857513427734375; + private static final double F64C10 = 0.64278760968653936291872241781675256788730621337890625; + private static final double F64S10 = 0.76604444311897801345168090847437269985675811767578125; + private static final double F64C11 = 0.57357643635104615942310601894860155880451202392578125; + private static final double F64S11 = 0.81915204428899179855960710483486764132976531982421875; + private static final double F64C12 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F64S12 = 0.8660254037844385965883020617184229195117950439453125; + private static final double F64C13 = 0.422618261740699441286750470680999569594860076904296875; + private static final double F64S13 = 0.90630778703664993667388216636027209460735321044921875; + private static final double F64C14 = 0.342020143325668823930385542553267441689968109130859375; + private static final double F64S14 = 0.93969262078590831688273965482949279248714447021484375; + private static final double F64C15 = 0.25881904510252073947640383266843855381011962890625; + private static final double F64S15 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F64C16 = 0.17364817766693041445336120887077413499355316162109375; + private static final double F64S16 = 0.98480775301220802031565426659653894603252410888671875; + private static final double F64C17 = 0.087155742747658138114275061525404453277587890625; + private static final double F64S17 = 0.9961946980917455451987052583717741072177886962890625; + private static final double F64C18 = 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375; + private static final double F64S18 = 1; + private static final double F64C19 = -0.08715574274765823525878971622660174034535884857177734375; + private static final double F64S19 = 0.9961946980917455451987052583717741072177886962890625; + private static final double F64C20 = -0.1736481776669303034310587463551200926303863525390625; + private static final double F64S20 = 0.98480775301220802031565426659653894603252410888671875; + private static final double F64C21 = -0.25881904510252085049870629518409259617328643798828125; + private static final double F64S21 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F64C22 = -0.342020143325668712908083080037613399326801300048828125; + private static final double F64S22 = 0.939692620785908427905042117345146834850311279296875; + private static final double F64C23 = -0.422618261740699330264448008165345527231693267822265625; + private static final double F64S23 = 0.90630778703665004769618462887592613697052001953125; + private static final double F64C24 = -0.4999999999999997779553950749686919152736663818359375; + private static final double F64S24 = 0.86602540378443870761060452423407696187496185302734375; + private static final double F64C25 = -0.57357643635104615942310601894860155880451202392578125; + private static final double F64S25 = 0.8191520442889916875373046423192135989665985107421875; + private static final double F64C26 = -0.64278760968653936291872241781675256788730621337890625; + private static final double F64S26 = 0.76604444311897801345168090847437269985675811767578125; + private static final double F64C27 = -0.707106781186547461715008466853760182857513427734375; + private static final double F64S27 = 0.70710678118654757273731092936941422522068023681640625; + private static final double F64C28 = -0.76604444311897790242937844595871865749359130859375; + private static final double F64S28 = 0.6427876096865394739410248803324066102504730224609375; + private static final double F64C29 = -0.81915204428899190958190956735052168369293212890625; + private static final double F64S29 = 0.57357643635104593737850109391729347407817840576171875; + private static final double F64C30 = -0.86602540378443870761060452423407696187496185302734375; + private static final double F64S30 = 0.499999999999999944488848768742172978818416595458984375; + private static final double F64C31 = -0.90630778703664993667388216636027209460735321044921875; + private static final double F64S31 = 0.4226182617406994967979017019388265907764434814453125; + private static final double F64C32 = -0.93969262078590831688273965482949279248714447021484375; + private static final double F64S32 = 0.342020143325668879441536773811094462871551513671875; + private static final double F64C33 = -0.965925826289068201191412299522198736667633056640625; + private static final double F64S33 = 0.258819045102521017032159988957573659718036651611328125; + private static final double F64C34 = -0.98480775301220802031565426659653894603252410888671875; + private static final double F64S34 = 0.1736481776669302756754831307262065820395946502685546875; + private static final double F64C35 = -0.9961946980917455451987052583717741072177886962890625; + private static final double F64S35 = 0.087155742747658193625426292783231474459171295166015625; + private static final double F64C36 = -1; + private static final double F64S36 = 0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875; + private static final double F64C37 = -0.9961946980917455451987052583717741072177886962890625; + private static final double F64S37 = -0.0871557427476579438252457521230098791420459747314453125; + private static final double F64C38 = -0.98480775301220802031565426659653894603252410888671875; + private static final double F64S38 = -0.173648177666930469964512440128601156175136566162109375; + private static final double F64C39 = -0.96592582628906831221371476203785277903079986572265625; + private static final double F64S39 = -0.258819045102520794987555063926265574991703033447265625; + private static final double F64C40 = -0.939692620785908427905042117345146834850311279296875; + private static final double F64S40 = -0.3420201433256686573969318487797863781452178955078125; + private static final double F64C41 = -0.90630778703665004769618462887592613697052001953125; + private static final double F64S41 = -0.42261826174069927475329677690751850605010986328125; + private static final double F64C42 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F64S42 = -0.50000000000000011102230246251565404236316680908203125; + private static final double F64C43 = -0.81915204428899179855960710483486764132976531982421875; + private static final double F64S43 = -0.57357643635104615942310601894860155880451202392578125; + private static final double F64C44 = -0.76604444311897801345168090847437269985675811767578125; + private static final double F64S44 = -0.642787609686539251896419955301098525524139404296875; + private static final double F64C45 = -0.7071067811865476837596133918850682675838470458984375; + private static final double F64S45 = -0.707106781186547461715008466853760182857513427734375; + private static final double F64C46 = -0.6427876096865394739410248803324066102504730224609375; + private static final double F64S46 = -0.76604444311897790242937844595871865749359130859375; + private static final double F64C47 = -0.57357643635104638146771094397990964353084564208984375; + private static final double F64S47 = -0.81915204428899157651500217980355955660343170166015625; + private static final double F64C48 = -0.500000000000000444089209850062616169452667236328125; + private static final double F64S48 = -0.86602540378443837454369713668711483478546142578125; + private static final double F64C49 = -0.42261826174069916373099431439186446368694305419921875; + private static final double F64S49 = -0.90630778703665004769618462887592613697052001953125; + private static final double F64C50 = -0.34202014332566854637462938626413233578205108642578125; + private static final double F64S50 = -0.939692620785908427905042117345146834850311279296875; + private static final double F64C51 = -0.25881904510252062845410137015278451144695281982421875; + private static final double F64S51 = -0.96592582628906831221371476203785277903079986572265625; + private static final double F64C52 = -0.1736481776669303311866343619840336032211780548095703125; + private static final double F64S52 = -0.98480775301220802031565426659653894603252410888671875; + private static final double F64C53 = -0.08715574274765824913657752404105849564075469970703125; + private static final double F64S53 = -0.9961946980917455451987052583717741072177886962890625; + private static final double F64C54 = -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125; + private static final double F64S54 = -1; + private static final double F64C55 = 0.0871557427476578883140945208651828579604625701904296875; + private static final double F64S55 = -0.9961946980917455451987052583717741072177886962890625; + private static final double F64C56 = 0.17364817766692997036415135880815796554088592529296875; + private static final double F64S56 = -0.98480775301220813133795672911219298839569091796875; + private static final double F64C57 = 0.258819045102520295387193982605822384357452392578125; + private static final double F64S57 = -0.9659258262890684232360172245535068213939666748046875; + private static final double F64C58 = 0.34202014332566899046383923632674850523471832275390625; + private static final double F64S58 = -0.93969262078590831688273965482949279248714447021484375; + private static final double F64C59 = 0.42261826174069960782020416445448063313961029052734375; + private static final double F64S59 = -0.90630778703664993667388216636027209460735321044921875; + private static final double F64C60 = 0.50000000000000011102230246251565404236316680908203125; + private static final double F64S60 = -0.8660254037844385965883020617184229195117950439453125; + private static final double F64C61 = 0.57357643635104604840080355643294751644134521484375; + private static final double F64S61 = -0.81915204428899179855960710483486764132976531982421875; + private static final double F64C62 = 0.642787609686539251896419955301098525524139404296875; + private static final double F64S62 = -0.7660444431189781244739833709900267422199249267578125; + private static final double F64C63 = 0.70710678118654735069270600433810614049434661865234375; + private static final double F64S63 = -0.7071067811865476837596133918850682675838470458984375; + private static final double F64C64 = 0.76604444311897779140707598344306461513042449951171875; + private static final double F64S64 = -0.64278760968653958496332734284806065261363983154296875; + private static final double F64C65 = 0.81915204428899157651500217980355955660343170166015625; + private static final double F64S65 = -0.573576436351046492490013406495563685894012451171875; + private static final double F64C66 = 0.86602540378443837454369713668711483478546142578125; + private static final double F64S66 = -0.500000000000000444089209850062616169452667236328125; + private static final double F64C67 = 0.90630778703665004769618462887592613697052001953125; + private static final double F64S67 = -0.422618261740699219242145545649691484868526458740234375; + private static final double F64C68 = 0.939692620785908427905042117345146834850311279296875; + private static final double F64S68 = -0.342020143325668601885780617521959356963634490966796875; + private static final double F64C69 = 0.96592582628906831221371476203785277903079986572265625; + private static final double F64S69 = -0.258819045102520683965252601410611532628536224365234375; + private static final double F64C70 = 0.98480775301220802031565426659653894603252410888671875; + private static final double F64S70 = -0.1736481776669303866977855932418606244027614593505859375; + private static final double F64C71 = 0.9961946980917455451987052583717741072177886962890625; + private static final double F64S71 = -0.08715574274765831852551656311334227211773395538330078125; + private static double sc64(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F64A[0]) - (r * F64A[1])), z + ((r * F64A[1]) + (r * F64A[0]))) - +n.noise(x + ((r * F64A[2]) - (r * F64A[3])), z + ((r * F64A[3]) + (r * F64A[2]))) - +n.noise(x + ((r * F64A[4]) - (r * F64A[5])), z + ((r * F64A[5]) + (r * F64A[4]))) - +n.noise(x + ((r * F64A[6]) - (r * F64A[7])), z + ((r * F64A[7]) + (r * F64A[6]))) - +n.noise(x + ((r * F64A[8]) - (r * F64A[9])), z + ((r * F64A[9]) + (r * F64A[8]))) - +n.noise(x + ((r * F64A[10]) - (r * F64A[11])), z + ((r * F64A[11]) + (r * F64A[10]))) - +n.noise(x + ((r * F64A[12]) - (r * F64A[13])), z + ((r * F64A[13]) + (r * F64A[12]))) - +n.noise(x + ((r * F64A[14]) - (r * F64A[15])), z + ((r * F64A[15]) + (r * F64A[14]))) - +n.noise(x + ((r * F64A[16]) - (r * F64A[17])), z + ((r * F64A[17]) + (r * F64A[16]))) - +n.noise(x + ((r * F64A[18]) - (r * F64A[19])), z + ((r * F64A[19]) + (r * F64A[18]))) - +n.noise(x + ((r * F64A[20]) - (r * F64A[21])), z + ((r * F64A[21]) + (r * F64A[20]))) - +n.noise(x + ((r * F64A[22]) - (r * F64A[23])), z + ((r * F64A[23]) + (r * F64A[22]))) - +n.noise(x + ((r * F64A[24]) - (r * F64A[25])), z + ((r * F64A[25]) + (r * F64A[24]))) - +n.noise(x + ((r * F64A[26]) - (r * F64A[27])), z + ((r * F64A[27]) + (r * F64A[26]))) - +n.noise(x + ((r * F64A[28]) - (r * F64A[29])), z + ((r * F64A[29]) + (r * F64A[28]))) - +n.noise(x + ((r * F64A[30]) - (r * F64A[31])), z + ((r * F64A[31]) + (r * F64A[30]))) - +n.noise(x + ((r * F64A[32]) - (r * F64A[33])), z + ((r * F64A[33]) + (r * F64A[32]))) - +n.noise(x + ((r * F64A[34]) - (r * F64A[35])), z + ((r * F64A[35]) + (r * F64A[34]))) - +n.noise(x + ((r * F64A[36]) - (r * F64A[37])), z + ((r * F64A[37]) + (r * F64A[36]))) - +n.noise(x + ((r * F64A[38]) - (r * F64A[39])), z + ((r * F64A[39]) + (r * F64A[38]))) - +n.noise(x + ((r * F64A[40]) - (r * F64A[41])), z + ((r * F64A[41]) + (r * F64A[40]))) - +n.noise(x + ((r * F64A[42]) - (r * F64A[43])), z + ((r * F64A[43]) + (r * F64A[42]))) - +n.noise(x + ((r * F64A[44]) - (r * F64A[45])), z + ((r * F64A[45]) + (r * F64A[44]))) - +n.noise(x + ((r * F64A[46]) - (r * F64A[47])), z + ((r * F64A[47]) + (r * F64A[46]))) - +n.noise(x + ((r * F64A[48]) - (r * F64A[49])), z + ((r * F64A[49]) + (r * F64A[48]))) - +n.noise(x + ((r * F64A[50]) - (r * F64A[51])), z + ((r * F64A[51]) + (r * F64A[50]))) - +n.noise(x + ((r * F64A[52]) - (r * F64A[53])), z + ((r * F64A[53]) + (r * F64A[52]))) - +n.noise(x + ((r * F64A[54]) - (r * F64A[55])), z + ((r * F64A[55]) + (r * F64A[54]))) - +n.noise(x + ((r * F64A[56]) - (r * F64A[57])), z + ((r * F64A[57]) + (r * F64A[56]))) - +n.noise(x + ((r * F64A[58]) - (r * F64A[59])), z + ((r * F64A[59]) + (r * F64A[58]))) - +n.noise(x + ((r * F64A[60]) - (r * F64A[61])), z + ((r * F64A[61]) + (r * F64A[60]))) - +n.noise(x + ((r * F64A[62]) - (r * F64A[63])), z + ((r * F64A[63]) + (r * F64A[62]))) - +n.noise(x + ((r * F64A[64]) - (r * F64A[65])), z + ((r * F64A[65]) + (r * F64A[64]))) - +n.noise(x + ((r * F64A[66]) - (r * F64A[67])), z + ((r * F64A[67]) + (r * F64A[66]))) - +n.noise(x + ((r * F64A[68]) - (r * F64A[69])), z + ((r * F64A[69]) + (r * F64A[68]))) - +n.noise(x + ((r * F64A[70]) - (r * F64A[71])), z + ((r * F64A[71]) + (r * F64A[70]))) - +n.noise(x + ((r * F64A[72]) - (r * F64A[73])), z + ((r * F64A[73]) + (r * F64A[72]))) - +n.noise(x + ((r * F64A[74]) - (r * F64A[75])), z + ((r * F64A[75]) + (r * F64A[74]))) - +n.noise(x + ((r * F64A[76]) - (r * F64A[77])), z + ((r * F64A[77]) + (r * F64A[76]))) - +n.noise(x + ((r * F64A[78]) - (r * F64A[79])), z + ((r * F64A[79]) + (r * F64A[78]))) - +n.noise(x + ((r * F64A[80]) - (r * F64A[81])), z + ((r * F64A[81]) + (r * F64A[80]))) - +n.noise(x + ((r * F64A[82]) - (r * F64A[83])), z + ((r * F64A[83]) + (r * F64A[82]))) - +n.noise(x + ((r * F64A[84]) - (r * F64A[85])), z + ((r * F64A[85]) + (r * F64A[84]))) - +n.noise(x + ((r * F64A[86]) - (r * F64A[87])), z + ((r * F64A[87]) + (r * F64A[86]))) - +n.noise(x + ((r * F64A[88]) - (r * F64A[89])), z + ((r * F64A[89]) + (r * F64A[88]))) - +n.noise(x + ((r * F64A[90]) - (r * F64A[91])), z + ((r * F64A[91]) + (r * F64A[90]))) - +n.noise(x + ((r * F64A[92]) - (r * F64A[93])), z + ((r * F64A[93]) + (r * F64A[92]))) - +n.noise(x + ((r * F64A[94]) - (r * F64A[95])), z + ((r * F64A[95]) + (r * F64A[94]))) - +n.noise(x + ((r * F64A[96]) - (r * F64A[97])), z + ((r * F64A[97]) + (r * F64A[96]))) - +n.noise(x + ((r * F64A[98]) - (r * F64A[99])), z + ((r * F64A[99]) + (r * F64A[98]))) - +n.noise(x + ((r * F64A[100]) - (r * F64A[101])), z + ((r * F64A[101]) + (r * F64A[100]))) - +n.noise(x + ((r * F64A[102]) - (r * F64A[103])), z + ((r * F64A[103]) + (r * F64A[102]))) - +n.noise(x + ((r * F64A[104]) - (r * F64A[105])), z + ((r * F64A[105]) + (r * F64A[104]))) - +n.noise(x + ((r * F64A[106]) - (r * F64A[107])), z + ((r * F64A[107]) + (r * F64A[106]))) - +n.noise(x + ((r * F64A[108]) - (r * F64A[109])), z + ((r * F64A[109]) + (r * F64A[108]))) - +n.noise(x + ((r * F64A[110]) - (r * F64A[111])), z + ((r * F64A[111]) + (r * F64A[110]))) - +n.noise(x + ((r * F64A[112]) - (r * F64A[113])), z + ((r * F64A[113]) + (r * F64A[112]))) - +n.noise(x + ((r * F64A[114]) - (r * F64A[115])), z + ((r * F64A[115]) + (r * F64A[114]))) - +n.noise(x + ((r * F64A[116]) - (r * F64A[117])), z + ((r * F64A[117]) + (r * F64A[116]))) - +n.noise(x + ((r * F64A[118]) - (r * F64A[119])), z + ((r * F64A[119]) + (r * F64A[118]))) - +n.noise(x + ((r * F64A[120]) - (r * F64A[121])), z + ((r * F64A[121]) + (r * F64A[120]))) - +n.noise(x + ((r * F64A[122]) - (r * F64A[123])), z + ((r * F64A[123]) + (r * F64A[122]))) - +n.noise(x + ((r * F64A[124]) - (r * F64A[125])), z + ((r * F64A[125]) + (r * F64A[124]))) - +n.noise(x + ((r * F64A[126]) - (r * F64A[127])), z + ((r * F64A[127]) + (r * F64A[126]))) - +n.noise(x + ((r * F64A[128]) - (r * F64A[129])), z + ((r * F64A[129]) + (r * F64A[128]))) - +n.noise(x + ((r * F64A[130]) - (r * F64A[131])), z + ((r * F64A[131]) + (r * F64A[130]))) - +n.noise(x + ((r * F64A[132]) - (r * F64A[133])), z + ((r * F64A[133]) + (r * F64A[132]))) - +n.noise(x + ((r * F64A[134]) - (r * F64A[135])), z + ((r * F64A[135]) + (r * F64A[134]))) - +n.noise(x + ((r * F64A[136]) - (r * F64A[137])), z + ((r * F64A[137]) + (r * F64A[136]))) - +n.noise(x + ((r * F64A[138]) - (r * F64A[139])), z + ((r * F64A[139]) + (r * F64A[138]))) - +n.noise(x + ((r * F64A[140]) - (r * F64A[141])), z + ((r * F64A[141]) + (r * F64A[140]))) - +n.noise(x + ((r * F64A[142]) - (r * F64A[143])), z + ((r * F64A[143]) + (r * F64A[142]))))/64.0D; - } - private static final double[] F72A = {1,0,0.9961946980917455451987052583717741072177886962890625,0.0871557427476581658698506771543179638683795928955078125,0.98480775301220802031565426659653894603252410888671875,0.1736481776669303311866343619840336032211780548095703125, - 0.96592582628906831221371476203785277903079986572265625,0.25881904510252073947640383266843855381011962890625,0.939692620785908427905042117345146834850311279296875,0.342020143325668712908083080037613399326801300048828125,0.90630778703664993667388216636027209460735321044921875,0.422618261740699441286750470680999569594860076904296875, - 0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.81915204428899179855960710483486764132976531982421875,0.57357643635104604840080355643294751644134521484375,0.76604444311897801345168090847437269985675811767578125,0.642787609686539251896419955301098525524139404296875, - 0.70710678118654757273731092936941422522068023681640625,0.707106781186547461715008466853760182857513427734375,0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125,0.57357643635104615942310601894860155880451202392578125,0.81915204428899179855960710483486764132976531982421875, - 0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,0.422618261740699441286750470680999569594860076904296875,0.90630778703664993667388216636027209460735321044921875,0.342020143325668823930385542553267441689968109130859375,0.93969262078590831688273965482949279248714447021484375, - 0.25881904510252073947640383266843855381011962890625,0.96592582628906831221371476203785277903079986572265625,0.17364817766693041445336120887077413499355316162109375,0.98480775301220802031565426659653894603252410888671875,0.087155742747658138114275061525404453277587890625,0.9961946980917455451987052583717741072177886962890625, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.08715574274765823525878971622660174034535884857177734375,0.9961946980917455451987052583717741072177886962890625,-0.1736481776669303034310587463551200926303863525390625,0.98480775301220802031565426659653894603252410888671875, - -0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625,-0.342020143325668712908083080037613399326801300048828125,0.939692620785908427905042117345146834850311279296875,-0.422618261740699330264448008165345527231693267822265625,0.90630778703665004769618462887592613697052001953125, - -0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.57357643635104615942310601894860155880451202392578125,0.8191520442889916875373046423192135989665985107421875,-0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125, - -0.707106781186547461715008466853760182857513427734375,0.70710678118654757273731092936941422522068023681640625,-0.76604444311897790242937844595871865749359130859375,0.6427876096865394739410248803324066102504730224609375,-0.81915204428899190958190956735052168369293212890625,0.57357643635104593737850109391729347407817840576171875, - -0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,-0.90630778703664993667388216636027209460735321044921875,0.4226182617406994967979017019388265907764434814453125,-0.93969262078590831688273965482949279248714447021484375,0.342020143325668879441536773811094462871551513671875, - -0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125,-0.98480775301220802031565426659653894603252410888671875,0.1736481776669302756754831307262065820395946502685546875,-0.9961946980917455451987052583717741072177886962890625,0.087155742747658193625426292783231474459171295166015625, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.9961946980917455451987052583717741072177886962890625,-0.0871557427476579438252457521230098791420459747314453125,-0.98480775301220802031565426659653894603252410888671875,-0.173648177666930469964512440128601156175136566162109375, - -0.96592582628906831221371476203785277903079986572265625,-0.258819045102520794987555063926265574991703033447265625,-0.939692620785908427905042117345146834850311279296875,-0.3420201433256686573969318487797863781452178955078125,-0.90630778703665004769618462887592613697052001953125,-0.42261826174069927475329677690751850605010986328125, - -0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.81915204428899179855960710483486764132976531982421875,-0.57357643635104615942310601894860155880451202392578125,-0.76604444311897801345168090847437269985675811767578125,-0.642787609686539251896419955301098525524139404296875, - -0.7071067811865476837596133918850682675838470458984375,-0.707106781186547461715008466853760182857513427734375,-0.6427876096865394739410248803324066102504730224609375,-0.76604444311897790242937844595871865749359130859375,-0.57357643635104638146771094397990964353084564208984375,-0.81915204428899157651500217980355955660343170166015625, - -0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,-0.42261826174069916373099431439186446368694305419921875,-0.90630778703665004769618462887592613697052001953125,-0.34202014332566854637462938626413233578205108642578125,-0.939692620785908427905042117345146834850311279296875, - -0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625,-0.1736481776669303311866343619840336032211780548095703125,-0.98480775301220802031565426659653894603252410888671875,-0.08715574274765824913657752404105849564075469970703125,-0.9961946980917455451987052583717741072177886962890625, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.0871557427476578883140945208651828579604625701904296875,-0.9961946980917455451987052583717741072177886962890625,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875, - 0.258819045102520295387193982605822384357452392578125,-0.9659258262890684232360172245535068213939666748046875,0.34202014332566899046383923632674850523471832275390625,-0.93969262078590831688273965482949279248714447021484375,0.42261826174069960782020416445448063313961029052734375,-0.90630778703664993667388216636027209460735321044921875, - 0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.57357643635104604840080355643294751644134521484375,-0.81915204428899179855960710483486764132976531982421875,0.642787609686539251896419955301098525524139404296875,-0.7660444431189781244739833709900267422199249267578125, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.76604444311897779140707598344306461513042449951171875,-0.64278760968653958496332734284806065261363983154296875,0.81915204428899157651500217980355955660343170166015625,-0.573576436351046492490013406495563685894012451171875, - 0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.90630778703665004769618462887592613697052001953125,-0.422618261740699219242145545649691484868526458740234375,0.939692620785908427905042117345146834850311279296875,-0.342020143325668601885780617521959356963634490966796875, - 0.96592582628906831221371476203785277903079986572265625,-0.258819045102520683965252601410611532628536224365234375,0.98480775301220802031565426659653894603252410888671875,-0.1736481776669303866977855932418606244027614593505859375,0.9961946980917455451987052583717741072177886962890625,-0.08715574274765831852551656311334227211773395538330078125}; - private static double sc72(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F72A[0]) - (r * F72A[1])), z + ((r * F72A[1]) + (r * F72A[0]))) - +n.noise(x + ((r * F72A[2]) - (r * F72A[3])), z + ((r * F72A[3]) + (r * F72A[2]))) - +n.noise(x + ((r * F72A[4]) - (r * F72A[5])), z + ((r * F72A[5]) + (r * F72A[4]))) - +n.noise(x + ((r * F72A[6]) - (r * F72A[7])), z + ((r * F72A[7]) + (r * F72A[6]))) - +n.noise(x + ((r * F72A[8]) - (r * F72A[9])), z + ((r * F72A[9]) + (r * F72A[8]))) - +n.noise(x + ((r * F72A[10]) - (r * F72A[11])), z + ((r * F72A[11]) + (r * F72A[10]))) - +n.noise(x + ((r * F72A[12]) - (r * F72A[13])), z + ((r * F72A[13]) + (r * F72A[12]))) - +n.noise(x + ((r * F72A[14]) - (r * F72A[15])), z + ((r * F72A[15]) + (r * F72A[14]))) - +n.noise(x + ((r * F72A[16]) - (r * F72A[17])), z + ((r * F72A[17]) + (r * F72A[16]))) - +n.noise(x + ((r * F72A[18]) - (r * F72A[19])), z + ((r * F72A[19]) + (r * F72A[18]))) - +n.noise(x + ((r * F72A[20]) - (r * F72A[21])), z + ((r * F72A[21]) + (r * F72A[20]))) - +n.noise(x + ((r * F72A[22]) - (r * F72A[23])), z + ((r * F72A[23]) + (r * F72A[22]))) - +n.noise(x + ((r * F72A[24]) - (r * F72A[25])), z + ((r * F72A[25]) + (r * F72A[24]))) - +n.noise(x + ((r * F72A[26]) - (r * F72A[27])), z + ((r * F72A[27]) + (r * F72A[26]))) - +n.noise(x + ((r * F72A[28]) - (r * F72A[29])), z + ((r * F72A[29]) + (r * F72A[28]))) - +n.noise(x + ((r * F72A[30]) - (r * F72A[31])), z + ((r * F72A[31]) + (r * F72A[30]))) - +n.noise(x + ((r * F72A[32]) - (r * F72A[33])), z + ((r * F72A[33]) + (r * F72A[32]))) - +n.noise(x + ((r * F72A[34]) - (r * F72A[35])), z + ((r * F72A[35]) + (r * F72A[34]))) - +n.noise(x + ((r * F72A[36]) - (r * F72A[37])), z + ((r * F72A[37]) + (r * F72A[36]))) - +n.noise(x + ((r * F72A[38]) - (r * F72A[39])), z + ((r * F72A[39]) + (r * F72A[38]))) - +n.noise(x + ((r * F72A[40]) - (r * F72A[41])), z + ((r * F72A[41]) + (r * F72A[40]))) - +n.noise(x + ((r * F72A[42]) - (r * F72A[43])), z + ((r * F72A[43]) + (r * F72A[42]))) - +n.noise(x + ((r * F72A[44]) - (r * F72A[45])), z + ((r * F72A[45]) + (r * F72A[44]))) - +n.noise(x + ((r * F72A[46]) - (r * F72A[47])), z + ((r * F72A[47]) + (r * F72A[46]))) - +n.noise(x + ((r * F72A[48]) - (r * F72A[49])), z + ((r * F72A[49]) + (r * F72A[48]))) - +n.noise(x + ((r * F72A[50]) - (r * F72A[51])), z + ((r * F72A[51]) + (r * F72A[50]))) - +n.noise(x + ((r * F72A[52]) - (r * F72A[53])), z + ((r * F72A[53]) + (r * F72A[52]))) - +n.noise(x + ((r * F72A[54]) - (r * F72A[55])), z + ((r * F72A[55]) + (r * F72A[54]))) - +n.noise(x + ((r * F72A[56]) - (r * F72A[57])), z + ((r * F72A[57]) + (r * F72A[56]))) - +n.noise(x + ((r * F72A[58]) - (r * F72A[59])), z + ((r * F72A[59]) + (r * F72A[58]))) - +n.noise(x + ((r * F72A[60]) - (r * F72A[61])), z + ((r * F72A[61]) + (r * F72A[60]))) - +n.noise(x + ((r * F72A[62]) - (r * F72A[63])), z + ((r * F72A[63]) + (r * F72A[62]))) - +n.noise(x + ((r * F72A[64]) - (r * F72A[65])), z + ((r * F72A[65]) + (r * F72A[64]))) - +n.noise(x + ((r * F72A[66]) - (r * F72A[67])), z + ((r * F72A[67]) + (r * F72A[66]))) - +n.noise(x + ((r * F72A[68]) - (r * F72A[69])), z + ((r * F72A[69]) + (r * F72A[68]))) - +n.noise(x + ((r * F72A[70]) - (r * F72A[71])), z + ((r * F72A[71]) + (r * F72A[70]))) - +n.noise(x + ((r * F72A[72]) - (r * F72A[73])), z + ((r * F72A[73]) + (r * F72A[72]))) - +n.noise(x + ((r * F72A[74]) - (r * F72A[75])), z + ((r * F72A[75]) + (r * F72A[74]))) - +n.noise(x + ((r * F72A[76]) - (r * F72A[77])), z + ((r * F72A[77]) + (r * F72A[76]))) - +n.noise(x + ((r * F72A[78]) - (r * F72A[79])), z + ((r * F72A[79]) + (r * F72A[78]))) - +n.noise(x + ((r * F72A[80]) - (r * F72A[81])), z + ((r * F72A[81]) + (r * F72A[80]))) - +n.noise(x + ((r * F72A[82]) - (r * F72A[83])), z + ((r * F72A[83]) + (r * F72A[82]))) - +n.noise(x + ((r * F72A[84]) - (r * F72A[85])), z + ((r * F72A[85]) + (r * F72A[84]))) - +n.noise(x + ((r * F72A[86]) - (r * F72A[87])), z + ((r * F72A[87]) + (r * F72A[86]))) - +n.noise(x + ((r * F72A[88]) - (r * F72A[89])), z + ((r * F72A[89]) + (r * F72A[88]))) - +n.noise(x + ((r * F72A[90]) - (r * F72A[91])), z + ((r * F72A[91]) + (r * F72A[90]))) - +n.noise(x + ((r * F72A[92]) - (r * F72A[93])), z + ((r * F72A[93]) + (r * F72A[92]))) - +n.noise(x + ((r * F72A[94]) - (r * F72A[95])), z + ((r * F72A[95]) + (r * F72A[94]))) - +n.noise(x + ((r * F72A[96]) - (r * F72A[97])), z + ((r * F72A[97]) + (r * F72A[96]))) - +n.noise(x + ((r * F72A[98]) - (r * F72A[99])), z + ((r * F72A[99]) + (r * F72A[98]))) - +n.noise(x + ((r * F72A[100]) - (r * F72A[101])), z + ((r * F72A[101]) + (r * F72A[100]))) - +n.noise(x + ((r * F72A[102]) - (r * F72A[103])), z + ((r * F72A[103]) + (r * F72A[102]))) - +n.noise(x + ((r * F72A[104]) - (r * F72A[105])), z + ((r * F72A[105]) + (r * F72A[104]))) - +n.noise(x + ((r * F72A[106]) - (r * F72A[107])), z + ((r * F72A[107]) + (r * F72A[106]))) - +n.noise(x + ((r * F72A[108]) - (r * F72A[109])), z + ((r * F72A[109]) + (r * F72A[108]))) - +n.noise(x + ((r * F72A[110]) - (r * F72A[111])), z + ((r * F72A[111]) + (r * F72A[110]))) - +n.noise(x + ((r * F72A[112]) - (r * F72A[113])), z + ((r * F72A[113]) + (r * F72A[112]))) - +n.noise(x + ((r * F72A[114]) - (r * F72A[115])), z + ((r * F72A[115]) + (r * F72A[114]))) - +n.noise(x + ((r * F72A[116]) - (r * F72A[117])), z + ((r * F72A[117]) + (r * F72A[116]))) - +n.noise(x + ((r * F72A[118]) - (r * F72A[119])), z + ((r * F72A[119]) + (r * F72A[118]))) - +n.noise(x + ((r * F72A[120]) - (r * F72A[121])), z + ((r * F72A[121]) + (r * F72A[120]))) - +n.noise(x + ((r * F72A[122]) - (r * F72A[123])), z + ((r * F72A[123]) + (r * F72A[122]))) - +n.noise(x + ((r * F72A[124]) - (r * F72A[125])), z + ((r * F72A[125]) + (r * F72A[124]))) - +n.noise(x + ((r * F72A[126]) - (r * F72A[127])), z + ((r * F72A[127]) + (r * F72A[126]))) - +n.noise(x + ((r * F72A[128]) - (r * F72A[129])), z + ((r * F72A[129]) + (r * F72A[128]))) - +n.noise(x + ((r * F72A[130]) - (r * F72A[131])), z + ((r * F72A[131]) + (r * F72A[130]))) - +n.noise(x + ((r * F72A[132]) - (r * F72A[133])), z + ((r * F72A[133]) + (r * F72A[132]))) - +n.noise(x + ((r * F72A[134]) - (r * F72A[135])), z + ((r * F72A[135]) + (r * F72A[134]))) - +n.noise(x + ((r * F72A[136]) - (r * F72A[137])), z + ((r * F72A[137]) + (r * F72A[136]))) - +n.noise(x + ((r * F72A[138]) - (r * F72A[139])), z + ((r * F72A[139]) + (r * F72A[138]))) - +n.noise(x + ((r * F72A[140]) - (r * F72A[141])), z + ((r * F72A[141]) + (r * F72A[140]))) - +n.noise(x + ((r * F72A[142]) - (r * F72A[143])), z + ((r * F72A[143]) + (r * F72A[142]))))/72.0D; - } - private static final double[] F96A = {1,0,0.99862953475457383323288240717374719679355621337890625,0.05233595624294383463759317010044469498097896575927734375,0.9945218953682732898613494398887269198894500732421875,0.104528463267653470847307062285835854709148406982421875, - 0.987688340595137770350220307591371238231658935546875,0.1564344650402308689596253543641068972647190093994140625,0.9781476007338056888329447247087955474853515625,0.207911690817759342575499204031075350940227508544921875,0.96592582628906831221371476203785277903079986572265625,0.25881904510252073947640383266843855381011962890625, - 0.95105651629515353118193843329208903014659881591796875,0.309016994374947395751718204337521456182003021240234375,0.93358042649720174299687869279296137392520904541015625,0.3583679495453002683547083506709896028041839599609375,0.91354545764260086659902526662335731089115142822265625,0.406736643075800208269043878317461349070072174072265625, - 0.89100652418836789880884907688596285879611968994140625,0.453990499739546748969587497413158416748046875,0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.838670567945424050293468098971061408519744873046875,0.54463903501502708426329490976058878004550933837890625, - 0.80901699437494745126286943559534847736358642578125,0.5877852522924731371034567928290925920009613037109375,0.77714596145697090179282895405776798725128173828125,0.62932039104983739097320949440472759306430816650390625,0.7431448254773942441175904605188407003879547119140625,0.66913060635885823757007528911344707012176513671875, - 0.70710678118654757273731092936941422522068023681640625,0.707106781186547461715008466853760182857513427734375,0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,0.6293203910498375019955119569203816354274749755859375,0.77714596145697090179282895405776798725128173828125, - 0.5877852522924731371034567928290925920009613037109375,0.80901699437494745126286943559534847736358642578125,0.54463903501502708426329490976058878004550933837890625,0.838670567945424050293468098971061408519744873046875,0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125, - 0.453990499739546804480738728670985437929630279541015625,0.891006524188367787786546614370308816432952880859375,0.406736643075800208269043878317461349070072174072265625,0.91354545764260086659902526662335731089115142822265625,0.35836794954530037937701081318664364516735076904296875,0.93358042649720174299687869279296137392520904541015625, - 0.30901699437494745126286943559534847736358642578125,0.95105651629515353118193843329208903014659881591796875,0.25881904510252073947640383266843855381011962890625,0.96592582628906831221371476203785277903079986572265625,0.207911690817759453597801666546729393303394317626953125,0.97814760073380557781064226219314150512218475341796875, - 0.1564344650402309244707765856219339184463024139404296875,0.987688340595137770350220307591371238231658935546875,0.10452846326765345696951925447137909941375255584716796875,0.9945218953682732898613494398887269198894500732421875,0.052335956242943966476577344337783870287239551544189453125,0.99862953475457383323288240717374719679355621337890625, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.052335956242943841576487074007673072628676891326904296875,0.99862953475457383323288240717374719679355621337890625,-0.1045284632676535541140339091725763864815235137939453125,0.9945218953682732898613494398887269198894500732421875, - -0.1564344650402308134484741231062798760831356048583984375,0.987688340595137770350220307591371238231658935546875,-0.207911690817759342575499204031075350940227508544921875,0.9781476007338056888329447247087955474853515625,-0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625, - -0.30901699437494734024056697307969443500041961669921875,0.951056516295153642204240895807743072509765625,-0.3583679495453002683547083506709896028041839599609375,0.93358042649720174299687869279296137392520904541015625,-0.40673664307580026378019510957528837025165557861328125,0.91354545764260086659902526662335731089115142822265625, - -0.453990499739546693458436266155331395566463470458984375,0.89100652418836789880884907688596285879611968994140625,-0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.54463903501502708426329490976058878004550933837890625,0.83867056794542393927116563645540736615657806396484375, - -0.58778525229247302608115433031343854963779449462890625,0.80901699437494745126286943559534847736358642578125,-0.629320391049837279950907031889073550701141357421875,0.77714596145697101281513141657342202961444854736328125,-0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625, - -0.707106781186547461715008466853760182857513427734375,0.70710678118654757273731092936941422522068023681640625,-0.74314482547739402207298553548753261566162109375,0.66913060635885834859237775162910111248493194580078125,-0.77714596145697090179282895405776798725128173828125,0.62932039104983739097320949440472759306430816650390625, - -0.80901699437494734024056697307969443500041961669921875,0.58778525229247324812575925534474663436412811279296875,-0.83867056794542393927116563645540736615657806396484375,0.54463903501502730630789983479189686477184295654296875,-0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375, - -0.891006524188367787786546614370308816432952880859375,0.45399049973954685999188995992881245911121368408203125,-0.913545457642600755576722804107703268527984619140625,0.406736643075800430313648803348769433796405792236328125,-0.93358042649720174299687869279296137392520904541015625,0.358367949545300212843557119413162581622600555419921875, - -0.95105651629515353118193843329208903014659881591796875,0.309016994374947506774020666853175498545169830322265625,-0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125,-0.9781476007338056888329447247087955474853515625,0.2079116908177593148199235884021618403494358062744140625, - -0.98768834059513765932791784507571719586849212646484375,0.1564344650402309799819278168797609396278858184814453125,-0.9945218953682732898613494398887269198894500732421875,0.10452846326765373452527541076051420532166957855224609375,-0.99862953475457383323288240717374719679355621337890625,0.05233595624294380688201755447153118439018726348876953125, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.99862953475457383323288240717374719679355621337890625,-0.05233595624294355708183701381130958907306194305419921875,-0.9945218953682732898613494398887269198894500732421875,-0.1045284632676534986028826779147493652999401092529296875, - -0.987688340595137770350220307591371238231658935546875,-0.156434465040230730181747276219539344310760498046875,-0.97814760073380557781064226219314150512218475341796875,-0.20791169081775950910895289780455641448497772216796875,-0.96592582628906831221371476203785277903079986572265625,-0.258819045102520794987555063926265574991703033447265625, - -0.951056516295153642204240895807743072509765625,-0.309016994374947284729415741821867413818836212158203125,-0.93358042649720174299687869279296137392520904541015625,-0.358367949545300434888162044444470666348934173583984375,-0.91354545764260086659902526662335731089115142822265625,-0.406736643075800208269043878317461349070072174072265625, - -0.89100652418836789880884907688596285879611968994140625,-0.453990499739546693458436266155331395566463470458984375,-0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.838670567945424050293468098971061408519744873046875,-0.54463903501502708426329490976058878004550933837890625, - -0.80901699437494756228517189811100251972675323486328125,-0.58778525229247302608115433031343854963779449462890625,-0.77714596145697079077052649154211394488811492919921875,-0.62932039104983761301781441943603567779064178466796875,-0.7431448254773942441175904605188407003879547119140625,-0.66913060635885823757007528911344707012176513671875, - -0.7071067811865476837596133918850682675838470458984375,-0.707106781186547461715008466853760182857513427734375,-0.66913060635885812654777282659779302775859832763671875,-0.74314482547739435513989292303449474275112152099609375,-0.62932039104983783506241934446734376251697540283203125,-0.77714596145697056872592156651080586016178131103515625, - -0.58778525229247324812575925534474663436412811279296875,-0.80901699437494734024056697307969443500041961669921875,-0.544639035015026973240992447244934737682342529296875,-0.838670567945424050293468098971061408519744873046875,-0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125, - -0.453990499739546915503041191186639480292797088623046875,-0.891006524188367787786546614370308816432952880859375,-0.406736643075800097246741415801807306706905364990234375,-0.9135454576426009776213277291390113532543182373046875,-0.3583679495453007124439182007336057722568511962890625,-0.933580426497201631974576230277307331562042236328125, - -0.30901699437494756228517189811100251972675323486328125,-0.95105651629515353118193843329208903014659881591796875,-0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625,-0.207911690817759786664709054093691520392894744873046875,-0.97814760073380557781064226219314150512218475341796875, - -0.1564344650402310354930790481375879608094692230224609375,-0.98768834059513765932791784507571719586849212646484375,-0.104528463267653359825004599770181812345981597900390625,-0.99452189536827340088365190240438096225261688232421875,-0.05233595624294430648237863579197437502443790435791015625,-0.99862953475457383323288240717374719679355621337890625, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.05233595624294394565989563261609873734414577484130859375,-0.99862953475457383323288240717374719679355621337890625,0.10452846326765298512473378877984941937029361724853515625,-0.99452189536827340088365190240438096225261688232421875, - 0.156434465040230674670596044961712323129177093505859375,-0.987688340595137770350220307591371238231658935546875,0.2079116908177594258422260509178158827126026153564453125,-0.97814760073380557781064226219314150512218475341796875,0.258819045102520295387193982605822384357452392578125,-0.9659258262890684232360172245535068213939666748046875, - 0.3090169943749472292182645105640403926372528076171875,-0.951056516295153642204240895807743072509765625,0.35836794954530037937701081318664364516735076904296875,-0.93358042649720174299687869279296137392520904541015625,0.406736643075799764179834028254845179617404937744140625,-0.91354545764260108864363019165466539561748504638671875, - 0.45399049973954663794728503489750437438488006591796875,-0.89100652418836789880884907688596285879611968994140625,0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.54463903501502664017408505969797261059284210205078125,-0.8386705679454242723380730240023694932460784912109375, - 0.587785252292472915058851867797784507274627685546875,-0.80901699437494756228517189811100251972675323486328125,0.6293203910498375019955119569203816354274749755859375,-0.77714596145697079077052649154211394488811492919921875,0.669130606358857793480865439050830900669097900390625,-0.74314482547739457718449784806580282747745513916015625, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.7431448254773942441175904605188407003879547119140625,-0.66913060635885812654777282659779302775859832763671875,0.77714596145697056872592156651080586016178131103515625,-0.62932039104983783506241934446734376251697540283203125, - 0.80901699437494734024056697307969443500041961669921875,-0.587785252292473359148061717860400676727294921875,0.838670567945424050293468098971061408519744873046875,-0.544639035015026973240992447244934737682342529296875,0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125, - 0.891006524188367787786546614370308816432952880859375,-0.4539904997395469710141924224444665014743804931640625,0.9135454576426009776213277291390113532543182373046875,-0.40673664307580015275789264705963432788848876953125,0.93358042649720152095227376776165328919887542724609375,-0.358367949545300767955069431991432793438434600830078125, - 0.95105651629515353118193843329208903014659881591796875,-0.309016994374947617796323129368829540908336639404296875,0.96592582628906831221371476203785277903079986572265625,-0.258819045102520683965252601410611532628536224365234375,0.97814760073380557781064226219314150512218475341796875,-0.2079116908177598699314359009804320521652698516845703125, - 0.98768834059513765932791784507571719586849212646484375,-0.156434465040231118759805895024328492581844329833984375,0.9945218953682732898613494398887269198894500732421875,-0.10452846326765341533615583102800883352756500244140625,0.99862953475457383323288240717374719679355621337890625,-0.052335956242944368932423770957029773853719234466552734375}; - private static double sc96(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F96A[0]) - (r * F96A[1])), z + ((r * F96A[1]) + (r * F96A[0]))) - +n.noise(x + ((r * F96A[2]) - (r * F96A[3])), z + ((r * F96A[3]) + (r * F96A[2]))) - +n.noise(x + ((r * F96A[4]) - (r * F96A[5])), z + ((r * F96A[5]) + (r * F96A[4]))) - +n.noise(x + ((r * F96A[6]) - (r * F96A[7])), z + ((r * F96A[7]) + (r * F96A[6]))) - +n.noise(x + ((r * F96A[8]) - (r * F96A[9])), z + ((r * F96A[9]) + (r * F96A[8]))) - +n.noise(x + ((r * F96A[10]) - (r * F96A[11])), z + ((r * F96A[11]) + (r * F96A[10]))) - +n.noise(x + ((r * F96A[12]) - (r * F96A[13])), z + ((r * F96A[13]) + (r * F96A[12]))) - +n.noise(x + ((r * F96A[14]) - (r * F96A[15])), z + ((r * F96A[15]) + (r * F96A[14]))) - +n.noise(x + ((r * F96A[16]) - (r * F96A[17])), z + ((r * F96A[17]) + (r * F96A[16]))) - +n.noise(x + ((r * F96A[18]) - (r * F96A[19])), z + ((r * F96A[19]) + (r * F96A[18]))) - +n.noise(x + ((r * F96A[20]) - (r * F96A[21])), z + ((r * F96A[21]) + (r * F96A[20]))) - +n.noise(x + ((r * F96A[22]) - (r * F96A[23])), z + ((r * F96A[23]) + (r * F96A[22]))) - +n.noise(x + ((r * F96A[24]) - (r * F96A[25])), z + ((r * F96A[25]) + (r * F96A[24]))) - +n.noise(x + ((r * F96A[26]) - (r * F96A[27])), z + ((r * F96A[27]) + (r * F96A[26]))) - +n.noise(x + ((r * F96A[28]) - (r * F96A[29])), z + ((r * F96A[29]) + (r * F96A[28]))) - +n.noise(x + ((r * F96A[30]) - (r * F96A[31])), z + ((r * F96A[31]) + (r * F96A[30]))) - +n.noise(x + ((r * F96A[32]) - (r * F96A[33])), z + ((r * F96A[33]) + (r * F96A[32]))) - +n.noise(x + ((r * F96A[34]) - (r * F96A[35])), z + ((r * F96A[35]) + (r * F96A[34]))) - +n.noise(x + ((r * F96A[36]) - (r * F96A[37])), z + ((r * F96A[37]) + (r * F96A[36]))) - +n.noise(x + ((r * F96A[38]) - (r * F96A[39])), z + ((r * F96A[39]) + (r * F96A[38]))) - +n.noise(x + ((r * F96A[40]) - (r * F96A[41])), z + ((r * F96A[41]) + (r * F96A[40]))) - +n.noise(x + ((r * F96A[42]) - (r * F96A[43])), z + ((r * F96A[43]) + (r * F96A[42]))) - +n.noise(x + ((r * F96A[44]) - (r * F96A[45])), z + ((r * F96A[45]) + (r * F96A[44]))) - +n.noise(x + ((r * F96A[46]) - (r * F96A[47])), z + ((r * F96A[47]) + (r * F96A[46]))) - +n.noise(x + ((r * F96A[48]) - (r * F96A[49])), z + ((r * F96A[49]) + (r * F96A[48]))) - +n.noise(x + ((r * F96A[50]) - (r * F96A[51])), z + ((r * F96A[51]) + (r * F96A[50]))) - +n.noise(x + ((r * F96A[52]) - (r * F96A[53])), z + ((r * F96A[53]) + (r * F96A[52]))) - +n.noise(x + ((r * F96A[54]) - (r * F96A[55])), z + ((r * F96A[55]) + (r * F96A[54]))) - +n.noise(x + ((r * F96A[56]) - (r * F96A[57])), z + ((r * F96A[57]) + (r * F96A[56]))) - +n.noise(x + ((r * F96A[58]) - (r * F96A[59])), z + ((r * F96A[59]) + (r * F96A[58]))) - +n.noise(x + ((r * F96A[60]) - (r * F96A[61])), z + ((r * F96A[61]) + (r * F96A[60]))) - +n.noise(x + ((r * F96A[62]) - (r * F96A[63])), z + ((r * F96A[63]) + (r * F96A[62]))) - +n.noise(x + ((r * F96A[64]) - (r * F96A[65])), z + ((r * F96A[65]) + (r * F96A[64]))) - +n.noise(x + ((r * F96A[66]) - (r * F96A[67])), z + ((r * F96A[67]) + (r * F96A[66]))) - +n.noise(x + ((r * F96A[68]) - (r * F96A[69])), z + ((r * F96A[69]) + (r * F96A[68]))) - +n.noise(x + ((r * F96A[70]) - (r * F96A[71])), z + ((r * F96A[71]) + (r * F96A[70]))) - +n.noise(x + ((r * F96A[72]) - (r * F96A[73])), z + ((r * F96A[73]) + (r * F96A[72]))) - +n.noise(x + ((r * F96A[74]) - (r * F96A[75])), z + ((r * F96A[75]) + (r * F96A[74]))) - +n.noise(x + ((r * F96A[76]) - (r * F96A[77])), z + ((r * F96A[77]) + (r * F96A[76]))) - +n.noise(x + ((r * F96A[78]) - (r * F96A[79])), z + ((r * F96A[79]) + (r * F96A[78]))) - +n.noise(x + ((r * F96A[80]) - (r * F96A[81])), z + ((r * F96A[81]) + (r * F96A[80]))) - +n.noise(x + ((r * F96A[82]) - (r * F96A[83])), z + ((r * F96A[83]) + (r * F96A[82]))) - +n.noise(x + ((r * F96A[84]) - (r * F96A[85])), z + ((r * F96A[85]) + (r * F96A[84]))) - +n.noise(x + ((r * F96A[86]) - (r * F96A[87])), z + ((r * F96A[87]) + (r * F96A[86]))) - +n.noise(x + ((r * F96A[88]) - (r * F96A[89])), z + ((r * F96A[89]) + (r * F96A[88]))) - +n.noise(x + ((r * F96A[90]) - (r * F96A[91])), z + ((r * F96A[91]) + (r * F96A[90]))) - +n.noise(x + ((r * F96A[92]) - (r * F96A[93])), z + ((r * F96A[93]) + (r * F96A[92]))) - +n.noise(x + ((r * F96A[94]) - (r * F96A[95])), z + ((r * F96A[95]) + (r * F96A[94]))) - +n.noise(x + ((r * F96A[96]) - (r * F96A[97])), z + ((r * F96A[97]) + (r * F96A[96]))) - +n.noise(x + ((r * F96A[98]) - (r * F96A[99])), z + ((r * F96A[99]) + (r * F96A[98]))) - +n.noise(x + ((r * F96A[100]) - (r * F96A[101])), z + ((r * F96A[101]) + (r * F96A[100]))) - +n.noise(x + ((r * F96A[102]) - (r * F96A[103])), z + ((r * F96A[103]) + (r * F96A[102]))) - +n.noise(x + ((r * F96A[104]) - (r * F96A[105])), z + ((r * F96A[105]) + (r * F96A[104]))) - +n.noise(x + ((r * F96A[106]) - (r * F96A[107])), z + ((r * F96A[107]) + (r * F96A[106]))) - +n.noise(x + ((r * F96A[108]) - (r * F96A[109])), z + ((r * F96A[109]) + (r * F96A[108]))) - +n.noise(x + ((r * F96A[110]) - (r * F96A[111])), z + ((r * F96A[111]) + (r * F96A[110]))) - +n.noise(x + ((r * F96A[112]) - (r * F96A[113])), z + ((r * F96A[113]) + (r * F96A[112]))) - +n.noise(x + ((r * F96A[114]) - (r * F96A[115])), z + ((r * F96A[115]) + (r * F96A[114]))) - +n.noise(x + ((r * F96A[116]) - (r * F96A[117])), z + ((r * F96A[117]) + (r * F96A[116]))) - +n.noise(x + ((r * F96A[118]) - (r * F96A[119])), z + ((r * F96A[119]) + (r * F96A[118]))) - +n.noise(x + ((r * F96A[120]) - (r * F96A[121])), z + ((r * F96A[121]) + (r * F96A[120]))) - +n.noise(x + ((r * F96A[122]) - (r * F96A[123])), z + ((r * F96A[123]) + (r * F96A[122]))) - +n.noise(x + ((r * F96A[124]) - (r * F96A[125])), z + ((r * F96A[125]) + (r * F96A[124]))) - +n.noise(x + ((r * F96A[126]) - (r * F96A[127])), z + ((r * F96A[127]) + (r * F96A[126]))) - +n.noise(x + ((r * F96A[128]) - (r * F96A[129])), z + ((r * F96A[129]) + (r * F96A[128]))) - +n.noise(x + ((r * F96A[130]) - (r * F96A[131])), z + ((r * F96A[131]) + (r * F96A[130]))) - +n.noise(x + ((r * F96A[132]) - (r * F96A[133])), z + ((r * F96A[133]) + (r * F96A[132]))) - +n.noise(x + ((r * F96A[134]) - (r * F96A[135])), z + ((r * F96A[135]) + (r * F96A[134]))) - +n.noise(x + ((r * F96A[136]) - (r * F96A[137])), z + ((r * F96A[137]) + (r * F96A[136]))) - +n.noise(x + ((r * F96A[138]) - (r * F96A[139])), z + ((r * F96A[139]) + (r * F96A[138]))) - +n.noise(x + ((r * F96A[140]) - (r * F96A[141])), z + ((r * F96A[141]) + (r * F96A[140]))) - +n.noise(x + ((r * F96A[142]) - (r * F96A[143])), z + ((r * F96A[143]) + (r * F96A[142]))) - +n.noise(x + ((r * F96A[144]) - (r * F96A[145])), z + ((r * F96A[145]) + (r * F96A[144]))) - +n.noise(x + ((r * F96A[146]) - (r * F96A[147])), z + ((r * F96A[147]) + (r * F96A[146]))) - +n.noise(x + ((r * F96A[148]) - (r * F96A[149])), z + ((r * F96A[149]) + (r * F96A[148]))) - +n.noise(x + ((r * F96A[150]) - (r * F96A[151])), z + ((r * F96A[151]) + (r * F96A[150]))) - +n.noise(x + ((r * F96A[152]) - (r * F96A[153])), z + ((r * F96A[153]) + (r * F96A[152]))) - +n.noise(x + ((r * F96A[154]) - (r * F96A[155])), z + ((r * F96A[155]) + (r * F96A[154]))) - +n.noise(x + ((r * F96A[156]) - (r * F96A[157])), z + ((r * F96A[157]) + (r * F96A[156]))) - +n.noise(x + ((r * F96A[158]) - (r * F96A[159])), z + ((r * F96A[159]) + (r * F96A[158]))) - +n.noise(x + ((r * F96A[160]) - (r * F96A[161])), z + ((r * F96A[161]) + (r * F96A[160]))) - +n.noise(x + ((r * F96A[162]) - (r * F96A[163])), z + ((r * F96A[163]) + (r * F96A[162]))) - +n.noise(x + ((r * F96A[164]) - (r * F96A[165])), z + ((r * F96A[165]) + (r * F96A[164]))) - +n.noise(x + ((r * F96A[166]) - (r * F96A[167])), z + ((r * F96A[167]) + (r * F96A[166]))) - +n.noise(x + ((r * F96A[168]) - (r * F96A[169])), z + ((r * F96A[169]) + (r * F96A[168]))) - +n.noise(x + ((r * F96A[170]) - (r * F96A[171])), z + ((r * F96A[171]) + (r * F96A[170]))) - +n.noise(x + ((r * F96A[172]) - (r * F96A[173])), z + ((r * F96A[173]) + (r * F96A[172]))) - +n.noise(x + ((r * F96A[174]) - (r * F96A[175])), z + ((r * F96A[175]) + (r * F96A[174]))) - +n.noise(x + ((r * F96A[176]) - (r * F96A[177])), z + ((r * F96A[177]) + (r * F96A[176]))) - +n.noise(x + ((r * F96A[178]) - (r * F96A[179])), z + ((r * F96A[179]) + (r * F96A[178]))) - +n.noise(x + ((r * F96A[180]) - (r * F96A[181])), z + ((r * F96A[181]) + (r * F96A[180]))) - +n.noise(x + ((r * F96A[182]) - (r * F96A[183])), z + ((r * F96A[183]) + (r * F96A[182]))) - +n.noise(x + ((r * F96A[184]) - (r * F96A[185])), z + ((r * F96A[185]) + (r * F96A[184]))) - +n.noise(x + ((r * F96A[186]) - (r * F96A[187])), z + ((r * F96A[187]) + (r * F96A[186]))) - +n.noise(x + ((r * F96A[188]) - (r * F96A[189])), z + ((r * F96A[189]) + (r * F96A[188]))) - +n.noise(x + ((r * F96A[190]) - (r * F96A[191])), z + ((r * F96A[191]) + (r * F96A[190]))) - +n.noise(x + ((r * F96A[192]) - (r * F96A[193])), z + ((r * F96A[193]) + (r * F96A[192]))) - +n.noise(x + ((r * F96A[194]) - (r * F96A[195])), z + ((r * F96A[195]) + (r * F96A[194]))) - +n.noise(x + ((r * F96A[196]) - (r * F96A[197])), z + ((r * F96A[197]) + (r * F96A[196]))) - +n.noise(x + ((r * F96A[198]) - (r * F96A[199])), z + ((r * F96A[199]) + (r * F96A[198]))) - +n.noise(x + ((r * F96A[200]) - (r * F96A[201])), z + ((r * F96A[201]) + (r * F96A[200]))) - +n.noise(x + ((r * F96A[202]) - (r * F96A[203])), z + ((r * F96A[203]) + (r * F96A[202]))) - +n.noise(x + ((r * F96A[204]) - (r * F96A[205])), z + ((r * F96A[205]) + (r * F96A[204]))) - +n.noise(x + ((r * F96A[206]) - (r * F96A[207])), z + ((r * F96A[207]) + (r * F96A[206]))) - +n.noise(x + ((r * F96A[208]) - (r * F96A[209])), z + ((r * F96A[209]) + (r * F96A[208]))) - +n.noise(x + ((r * F96A[210]) - (r * F96A[211])), z + ((r * F96A[211]) + (r * F96A[210]))) - +n.noise(x + ((r * F96A[212]) - (r * F96A[213])), z + ((r * F96A[213]) + (r * F96A[212]))) - +n.noise(x + ((r * F96A[214]) - (r * F96A[215])), z + ((r * F96A[215]) + (r * F96A[214]))) - +n.noise(x + ((r * F96A[216]) - (r * F96A[217])), z + ((r * F96A[217]) + (r * F96A[216]))) - +n.noise(x + ((r * F96A[218]) - (r * F96A[219])), z + ((r * F96A[219]) + (r * F96A[218]))) - +n.noise(x + ((r * F96A[220]) - (r * F96A[221])), z + ((r * F96A[221]) + (r * F96A[220]))) - +n.noise(x + ((r * F96A[222]) - (r * F96A[223])), z + ((r * F96A[223]) + (r * F96A[222]))) - +n.noise(x + ((r * F96A[224]) - (r * F96A[225])), z + ((r * F96A[225]) + (r * F96A[224]))) - +n.noise(x + ((r * F96A[226]) - (r * F96A[227])), z + ((r * F96A[227]) + (r * F96A[226]))) - +n.noise(x + ((r * F96A[228]) - (r * F96A[229])), z + ((r * F96A[229]) + (r * F96A[228]))) - +n.noise(x + ((r * F96A[230]) - (r * F96A[231])), z + ((r * F96A[231]) + (r * F96A[230]))) - +n.noise(x + ((r * F96A[232]) - (r * F96A[233])), z + ((r * F96A[233]) + (r * F96A[232]))) - +n.noise(x + ((r * F96A[234]) - (r * F96A[235])), z + ((r * F96A[235]) + (r * F96A[234]))) - +n.noise(x + ((r * F96A[236]) - (r * F96A[237])), z + ((r * F96A[237]) + (r * F96A[236]))) - +n.noise(x + ((r * F96A[238]) - (r * F96A[239])), z + ((r * F96A[239]) + (r * F96A[238]))))/96.0D; - } - private static final double[] F128A = {1,0,0.99939082701909576211818375668372027575969696044921875,0.034899496702500969191884649944768170826137065887451171875,0.9975640502598241976528470331686548888683319091796875,0.06975647374412530243859009715379215776920318603515625, - 0.9945218953682732898613494398887269198894500732421875,0.104528463267653470847307062285835854709148406982421875,0.9902680687415703619791429446195252239704132080078125,0.1391731009600654378477457839835551567375659942626953125,0.98480775301220802031565426659653894603252410888671875,0.1736481776669303311866343619840336032211780548095703125, - 0.9781476007338056888329447247087955474853515625,0.207911690817759342575499204031075350940227508544921875,0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625,0.9612616959383188941501430235803127288818359375,0.275637355816999163327096766806789673864841461181640625, - 0.95105651629515353118193843329208903014659881591796875,0.309016994374947395751718204337521456182003021240234375,0.939692620785908427905042117345146834850311279296875,0.342020143325668712908083080037613399326801300048828125,0.92718385456678742428948680753819644451141357421875,0.374606593415912014766178117497474886476993560791015625, - 0.91354545764260086659902526662335731089115142822265625,0.406736643075800208269043878317461349070072174072265625,0.8987940462991670376169395240140147507190704345703125,0.438371146789077403838064128649421036243438720703125,0.88294759285892698841280434862710535526275634765625,0.469471562785890805802324621254228986799716949462890625, - 0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.84804809615642595677087456351728178560733795166015625,0.5299192642332049008047079041716642677783966064453125,0.829037572555041624156046964344568550586700439453125,0.55919290347074690483708536703488789498805999755859375, - 0.80901699437494745126286943559534847736358642578125,0.5877852522924731371034567928290925920009613037109375,0.78801075360672190317501417666790075600147247314453125,0.61566147532565829170181359586422331631183624267578125,0.76604444311897801345168090847437269985675811767578125,0.642787609686539251896419955301098525524139404296875, - 0.7431448254773942441175904605188407003879547119140625,0.66913060635885823757007528911344707012176513671875,0.71933980033865119185776393351261503994464874267578125,0.6946583704589972541043607634492218494415283203125,0.6946583704589972541043607634492218494415283203125,0.71933980033865108083546147099696099758148193359375, - 0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125,0.61566147532565829170181359586422331631183624267578125,0.7880107536067220141973166391835547983646392822265625, - 0.5877852522924731371034567928290925920009613037109375,0.80901699437494745126286943559534847736358642578125,0.5591929034707467938147829045192338526248931884765625,0.82903757255504173517834942686022259294986724853515625,0.5299192642332049008047079041716642677783966064453125,0.84804809615642595677087456351728178560733795166015625, - 0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,0.46947156278589086131347585251205600798130035400390625,0.88294759285892687739050188611145131289958953857421875,0.438371146789077459349215359907248057425022125244140625,0.8987940462991670376169395240140147507190704345703125, - 0.406736643075800208269043878317461349070072174072265625,0.91354545764260086659902526662335731089115142822265625,0.37460659341591195925502688623964786529541015625,0.92718385456678742428948680753819644451141357421875,0.342020143325668823930385542553267441689968109130859375,0.93969262078590831688273965482949279248714447021484375, - 0.30901699437494745126286943559534847736358642578125,0.95105651629515353118193843329208903014659881591796875,0.275637355816999163327096766806789673864841461181640625,0.9612616959383188941501430235803127288818359375,0.2419218955996676745368034744387841783463954925537109375,0.97029572627599647294260876151383854448795318603515625, - 0.207911690817759453597801666546729393303394317626953125,0.97814760073380557781064226219314150512218475341796875,0.17364817766693041445336120887077413499355316162109375,0.98480775301220802031565426659653894603252410888671875,0.139173100960065465603321399612468667328357696533203125,0.9902680687415703619791429446195252239704132080078125, - 0.10452846326765345696951925447137909941375255584716796875,0.9945218953682732898613494398887269198894500732421875,0.06975647374412523304965105808150838129222393035888671875,0.9975640502598241976528470331686548888683319091796875,0.034899496702501080214187112460422213189303874969482421875,0.99939082701909576211818375668372027575969696044921875, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.034899496702500955314096842130311415530741214752197265625,0.99939082701909576211818375668372027575969696044921875,-0.0697564737441253301941657127827056683599948883056640625,0.9975640502598241976528470331686548888683319091796875, - -0.1045284632676535541140339091725763864815235137939453125,0.9945218953682732898613494398887269198894500732421875,-0.139173100960065354581018937096814624965190887451171875,0.9902680687415703619791429446195252239704132080078125,-0.1736481776669303034310587463551200926303863525390625,0.98480775301220802031565426659653894603252410888671875, - -0.207911690817759342575499204031075350940227508544921875,0.9781476007338056888329447247087955474853515625,-0.2419218955996677855591059369544382207095623016357421875,0.97029572627599647294260876151383854448795318603515625,-0.275637355816999052304794304291135631501674652099609375,0.9612616959383188941501430235803127288818359375, - -0.30901699437494734024056697307969443500041961669921875,0.951056516295153642204240895807743072509765625,-0.342020143325668712908083080037613399326801300048828125,0.939692620785908427905042117345146834850311279296875,-0.37460659341591207027732934875530190765857696533203125,0.92718385456678742428948680753819644451141357421875, - -0.40673664307580026378019510957528837025165557861328125,0.91354545764260086659902526662335731089115142822265625,-0.43837114678907751486036659116507507860660552978515625,0.89879404629916692659463706149836070835590362548828125,-0.469471562785890916824627083769883029162883758544921875,0.88294759285892687739050188611145131289958953857421875, - -0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.52991926423320478978240544165601022541522979736328125,0.8480480961564260677931770260329358279705047607421875,-0.55919290347074668279248044200357981026172637939453125,0.82903757255504173517834942686022259294986724853515625, - -0.58778525229247302608115433031343854963779449462890625,0.80901699437494745126286943559534847736358642578125,-0.61566147532565829170181359586422331631183624267578125,0.7880107536067220141973166391835547983646392822265625,-0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125, - -0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,-0.69465837045899736512666322596487589180469512939453125,0.71933980033865108083546147099696099758148193359375,-0.71933980033865119185776393351261503994464874267578125,0.69465837045899714308205830093356780707836151123046875, - -0.74314482547739402207298553548753261566162109375,0.66913060635885834859237775162910111248493194580078125,-0.76604444311897790242937844595871865749359130859375,0.6427876096865394739410248803324066102504730224609375,-0.78801075360672190317501417666790075600147247314453125,0.6156614753256584027241160583798773586750030517578125, - -0.80901699437494734024056697307969443500041961669921875,0.58778525229247324812575925534474663436412811279296875,-0.829037572555041624156046964344568550586700439453125,0.55919290347074690483708536703488789498805999755859375,-0.84804809615642595677087456351728178560733795166015625,0.5299192642332049008047079041716642677783966064453125, - -0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,-0.88294759285892698841280434862710535526275634765625,0.469471562785890694780022158738574944436550140380859375,-0.8987940462991670376169395240140147507190704345703125,0.43837114678907729281576166613376699388027191162109375, - -0.913545457642600755576722804107703268527984619140625,0.406736643075800430313648803348769433796405792236328125,-0.92718385456678731326718434502254240214824676513671875,0.374606593415912236810783042528782971203327178955078125,-0.93969262078590831688273965482949279248714447021484375,0.342020143325668879441536773811094462871551513671875, - -0.95105651629515353118193843329208903014659881591796875,0.309016994374947506774020666853175498545169830322265625,-0.9612616959383188941501430235803127288818359375,0.27563735581699921883824799806461669504642486572265625,-0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625, - -0.9781476007338056888329447247087955474853515625,0.2079116908177593148199235884021618403494358062744140625,-0.98480775301220802031565426659653894603252410888671875,0.1736481776669302756754831307262065820395946502685546875,-0.9902680687415703619791429446195252239704132080078125,0.1391731009600653268254433214679011143743991851806640625, - -0.9945218953682732898613494398887269198894500732421875,0.10452846326765373452527541076051420532166957855224609375,-0.9975640502598241976528470331686548888683319091796875,0.06975647374412552448319502218510024249553680419921875,-0.99939082701909576211818375668372027575969696044921875,0.034899496702501142664232247625477612018585205078125, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.99939082701909576211818375668372027575969696044921875,-0.034899496702500899802945610872484394349157810211181640625,-0.9975640502598241976528470331686548888683319091796875,-0.0697564737441252746830144815248786471784114837646484375, - -0.9945218953682732898613494398887269198894500732421875,-0.1045284632676534986028826779147493652999401092529296875,-0.99026806874157025095684048210387118160724639892578125,-0.13917310096006552111447263087029568850994110107421875,-0.98480775301220802031565426659653894603252410888671875,-0.173648177666930469964512440128601156175136566162109375, - -0.97814760073380557781064226219314150512218475341796875,-0.20791169081775950910895289780455641448497772216796875,-0.97029572627599647294260876151383854448795318603515625,-0.2419218955996675080033497806653031148016452789306640625,-0.9612616959383188941501430235803127288818359375,-0.27563735581699899679364307303330861032009124755859375, - -0.951056516295153642204240895807743072509765625,-0.309016994374947284729415741821867413818836212158203125,-0.939692620785908427905042117345146834850311279296875,-0.3420201433256686573969318487797863781452178955078125,-0.92718385456678742428948680753819644451141357421875,-0.374606593415912014766178117497474886476993560791015625, - -0.91354545764260086659902526662335731089115142822265625,-0.406736643075800208269043878317461349070072174072265625,-0.89879404629916692659463706149836070835590362548828125,-0.438371146789077459349215359907248057425022125244140625,-0.88294759285892687739050188611145131289958953857421875,-0.46947156278589086131347585251205600798130035400390625, - -0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.8480480961564260677931770260329358279705047607421875,-0.52991926423320478978240544165601022541522979736328125,-0.8290375725550418462006518893758766353130340576171875,-0.55919290347074668279248044200357981026172637939453125, - -0.80901699437494756228517189811100251972675323486328125,-0.58778525229247302608115433031343854963779449462890625,-0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375,-0.76604444311897801345168090847437269985675811767578125,-0.642787609686539251896419955301098525524139404296875, - -0.7431448254773942441175904605188407003879547119140625,-0.66913060635885823757007528911344707012176513671875,-0.71933980033865108083546147099696099758148193359375,-0.69465837045899736512666322596487589180469512939453125,-0.6946583704589972541043607634492218494415283203125,-0.71933980033865119185776393351261503994464874267578125, - -0.66913060635885812654777282659779302775859832763671875,-0.74314482547739435513989292303449474275112152099609375,-0.6427876096865394739410248803324066102504730224609375,-0.76604444311897790242937844595871865749359130859375,-0.61566147532565806965720867083291523158550262451171875,-0.78801075360672212521961910169920884072780609130859375, - -0.58778525229247324812575925534474663436412811279296875,-0.80901699437494734024056697307969443500041961669921875,-0.5591929034707465717701779794879257678985595703125,-0.8290375725550418462006518893758766353130340576171875,-0.52991926423320501182701036668731831014156341552734375,-0.84804809615642595677087456351728178560733795166015625, - -0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,-0.469471562785890750291173389996401965618133544921875,-0.88294759285892698841280434862710535526275634765625,-0.43837114678907773690497151619638316333293914794921875,-0.89879404629916681557233459898270666599273681640625, - -0.406736643075800097246741415801807306706905364990234375,-0.9135454576426009776213277291390113532543182373046875,-0.37460659341591229232193427378660999238491058349609375,-0.92718385456678731326718434502254240214824676513671875,-0.34202014332566854637462938626413233578205108642578125,-0.939692620785908427905042117345146834850311279296875, - -0.30901699437494756228517189811100251972675323486328125,-0.95105651629515353118193843329208903014659881591796875,-0.2756373558169988857713406105176545679569244384765625,-0.96126169593831900517244548609596677124500274658203125,-0.2419218955996677855591059369544382207095623016357421875,-0.97029572627599647294260876151383854448795318603515625, - -0.207911690817759786664709054093691520392894744873046875,-0.97814760073380557781064226219314150512218475341796875,-0.1736481776669303311866343619840336032211780548095703125,-0.98480775301220802031565426659653894603252410888671875,-0.1391731009600658264258044027883443050086498260498046875,-0.99026806874157025095684048210387118160724639892578125, - -0.104528463267653359825004599770181812345981597900390625,-0.99452189536827340088365190240438096225261688232421875,-0.069756473744125579994346253442927263677120208740234375,-0.9975640502598241976528470331686548888683319091796875,-0.034899496702500761025067532727916841395199298858642578125,-0.99939082701909576211818375668372027575969696044921875, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.0348994967025012814421103257700451649725437164306640625,-0.99939082701909576211818375668372027575969696044921875,0.0697564737441252191718632502670516259968280792236328125,-0.99756405025982430867514949568430893123149871826171875, - 0.10452846326765298512473378877984941937029361724853515625,-0.99452189536827340088365190240438096225261688232421875,0.139173100960065465603321399612468667328357696533203125,-0.9902680687415703619791429446195252239704132080078125,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875, - 0.2079116908177594258422260509178158827126026153564453125,-0.97814760073380557781064226219314150512218475341796875,0.2419218955996674524921985494074760936200618743896484375,-0.9702957262759965839649112240294925868511199951171875,0.275637355816999385371701691838097758591175079345703125,-0.96126169593831878312784056106465868651866912841796875, - 0.3090169943749472292182645105640403926372528076171875,-0.951056516295153642204240895807743072509765625,0.34202014332566899046383923632674850523471832275390625,-0.93969262078590831688273965482949279248714447021484375,0.37460659341591195925502688623964786529541015625,-0.92718385456678742428948680753819644451141357421875, - 0.406736643075799764179834028254845179617404937744140625,-0.91354545764260108864363019165466539561748504638671875,0.438371146789077403838064128649421036243438720703125,-0.8987940462991670376169395240140147507190704345703125,0.46947156278589041722426600244943983852863311767578125,-0.88294759285892709943510681114275939762592315673828125, - 0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.52991926423320467876010297914035618305206298828125,-0.84804809615642617881547948854858987033367156982421875,0.559192903470747015859387829550541937351226806640625,-0.829037572555041624156046964344568550586700439453125, - 0.587785252292472915058851867797784507274627685546875,-0.80901699437494756228517189811100251972675323486328125,0.61566147532565851374641852089553140103816986083984375,-0.7880107536067217921527117141522467136383056640625,0.642787609686539251896419955301098525524139404296875,-0.7660444431189781244739833709900267422199249267578125, - 0.669130606358857793480865439050830900669097900390625,-0.74314482547739457718449784806580282747745513916015625,0.6946583704589972541043607634492218494415283203125,-0.71933980033865119185776393351261503994464874267578125,0.7193398003386508587908565459656529128551483154296875,-0.69465837045899758717126815099618397653102874755859375, - 0.7431448254773942441175904605188407003879547119140625,-0.66913060635885812654777282659779302775859832763671875,0.76604444311897779140707598344306461513042449951171875,-0.64278760968653958496332734284806065261363983154296875,0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375, - 0.80901699437494734024056697307969443500041961669921875,-0.587785252292473359148061717860400676727294921875,0.8290375725550418462006518893758766353130340576171875,-0.5591929034707465717701779794879257678985595703125,0.84804809615642595677087456351728178560733795166015625,-0.52991926423320501182701036668731831014156341552734375, - 0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.88294759285892687739050188611145131289958953857421875,-0.469471562785890805802324621254228986799716949462890625,0.89879404629916681557233459898270666599273681640625,-0.438371146789077792416122747454210184514522552490234375, - 0.9135454576426009776213277291390113532543182373046875,-0.40673664307580015275789264705963432788848876953125,0.92718385456678731326718434502254240214824676513671875,-0.374606593415912347833085505044437013566493988037109375,0.939692620785908427905042117345146834850311279296875,-0.342020143325668601885780617521959356963634490966796875, - 0.95105651629515353118193843329208903014659881591796875,-0.309016994374947617796323129368829540908336639404296875,0.9612616959383188941501430235803127288818359375,-0.275637355816998941282491841775481589138507843017578125,0.97029572627599647294260876151383854448795318603515625,-0.241921895599667868825832783841178752481937408447265625, - 0.97814760073380557781064226219314150512218475341796875,-0.2079116908177598699314359009804320521652698516845703125,0.98480775301220802031565426659653894603252410888671875,-0.1736481776669303866977855932418606244027614593505859375,0.99026806874157025095684048210387118160724639892578125,-0.1391731009600658819369556340461713261902332305908203125, - 0.9945218953682732898613494398887269198894500732421875,-0.10452846326765341533615583102800883352756500244140625,0.9975640502598241976528470331686548888683319091796875,-0.06975647374412563550549748470075428485870361328125,0.99939082701909576211818375668372027575969696044921875,-0.03489949670250082347511266789297224022448062896728515625}; - private static double sc128(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F128A[0]) - (r * F128A[1])), z + ((r * F128A[1]) + (r * F128A[0]))) - +n.noise(x + ((r * F128A[2]) - (r * F128A[3])), z + ((r * F128A[3]) + (r * F128A[2]))) - +n.noise(x + ((r * F128A[4]) - (r * F128A[5])), z + ((r * F128A[5]) + (r * F128A[4]))) - +n.noise(x + ((r * F128A[6]) - (r * F128A[7])), z + ((r * F128A[7]) + (r * F128A[6]))) - +n.noise(x + ((r * F128A[8]) - (r * F128A[9])), z + ((r * F128A[9]) + (r * F128A[8]))) - +n.noise(x + ((r * F128A[10]) - (r * F128A[11])), z + ((r * F128A[11]) + (r * F128A[10]))) - +n.noise(x + ((r * F128A[12]) - (r * F128A[13])), z + ((r * F128A[13]) + (r * F128A[12]))) - +n.noise(x + ((r * F128A[14]) - (r * F128A[15])), z + ((r * F128A[15]) + (r * F128A[14]))) - +n.noise(x + ((r * F128A[16]) - (r * F128A[17])), z + ((r * F128A[17]) + (r * F128A[16]))) - +n.noise(x + ((r * F128A[18]) - (r * F128A[19])), z + ((r * F128A[19]) + (r * F128A[18]))) - +n.noise(x + ((r * F128A[20]) - (r * F128A[21])), z + ((r * F128A[21]) + (r * F128A[20]))) - +n.noise(x + ((r * F128A[22]) - (r * F128A[23])), z + ((r * F128A[23]) + (r * F128A[22]))) - +n.noise(x + ((r * F128A[24]) - (r * F128A[25])), z + ((r * F128A[25]) + (r * F128A[24]))) - +n.noise(x + ((r * F128A[26]) - (r * F128A[27])), z + ((r * F128A[27]) + (r * F128A[26]))) - +n.noise(x + ((r * F128A[28]) - (r * F128A[29])), z + ((r * F128A[29]) + (r * F128A[28]))) - +n.noise(x + ((r * F128A[30]) - (r * F128A[31])), z + ((r * F128A[31]) + (r * F128A[30]))) - +n.noise(x + ((r * F128A[32]) - (r * F128A[33])), z + ((r * F128A[33]) + (r * F128A[32]))) - +n.noise(x + ((r * F128A[34]) - (r * F128A[35])), z + ((r * F128A[35]) + (r * F128A[34]))) - +n.noise(x + ((r * F128A[36]) - (r * F128A[37])), z + ((r * F128A[37]) + (r * F128A[36]))) - +n.noise(x + ((r * F128A[38]) - (r * F128A[39])), z + ((r * F128A[39]) + (r * F128A[38]))) - +n.noise(x + ((r * F128A[40]) - (r * F128A[41])), z + ((r * F128A[41]) + (r * F128A[40]))) - +n.noise(x + ((r * F128A[42]) - (r * F128A[43])), z + ((r * F128A[43]) + (r * F128A[42]))) - +n.noise(x + ((r * F128A[44]) - (r * F128A[45])), z + ((r * F128A[45]) + (r * F128A[44]))) - +n.noise(x + ((r * F128A[46]) - (r * F128A[47])), z + ((r * F128A[47]) + (r * F128A[46]))) - +n.noise(x + ((r * F128A[48]) - (r * F128A[49])), z + ((r * F128A[49]) + (r * F128A[48]))) - +n.noise(x + ((r * F128A[50]) - (r * F128A[51])), z + ((r * F128A[51]) + (r * F128A[50]))) - +n.noise(x + ((r * F128A[52]) - (r * F128A[53])), z + ((r * F128A[53]) + (r * F128A[52]))) - +n.noise(x + ((r * F128A[54]) - (r * F128A[55])), z + ((r * F128A[55]) + (r * F128A[54]))) - +n.noise(x + ((r * F128A[56]) - (r * F128A[57])), z + ((r * F128A[57]) + (r * F128A[56]))) - +n.noise(x + ((r * F128A[58]) - (r * F128A[59])), z + ((r * F128A[59]) + (r * F128A[58]))) - +n.noise(x + ((r * F128A[60]) - (r * F128A[61])), z + ((r * F128A[61]) + (r * F128A[60]))) - +n.noise(x + ((r * F128A[62]) - (r * F128A[63])), z + ((r * F128A[63]) + (r * F128A[62]))) - +n.noise(x + ((r * F128A[64]) - (r * F128A[65])), z + ((r * F128A[65]) + (r * F128A[64]))) - +n.noise(x + ((r * F128A[66]) - (r * F128A[67])), z + ((r * F128A[67]) + (r * F128A[66]))) - +n.noise(x + ((r * F128A[68]) - (r * F128A[69])), z + ((r * F128A[69]) + (r * F128A[68]))) - +n.noise(x + ((r * F128A[70]) - (r * F128A[71])), z + ((r * F128A[71]) + (r * F128A[70]))) - +n.noise(x + ((r * F128A[72]) - (r * F128A[73])), z + ((r * F128A[73]) + (r * F128A[72]))) - +n.noise(x + ((r * F128A[74]) - (r * F128A[75])), z + ((r * F128A[75]) + (r * F128A[74]))) - +n.noise(x + ((r * F128A[76]) - (r * F128A[77])), z + ((r * F128A[77]) + (r * F128A[76]))) - +n.noise(x + ((r * F128A[78]) - (r * F128A[79])), z + ((r * F128A[79]) + (r * F128A[78]))) - +n.noise(x + ((r * F128A[80]) - (r * F128A[81])), z + ((r * F128A[81]) + (r * F128A[80]))) - +n.noise(x + ((r * F128A[82]) - (r * F128A[83])), z + ((r * F128A[83]) + (r * F128A[82]))) - +n.noise(x + ((r * F128A[84]) - (r * F128A[85])), z + ((r * F128A[85]) + (r * F128A[84]))) - +n.noise(x + ((r * F128A[86]) - (r * F128A[87])), z + ((r * F128A[87]) + (r * F128A[86]))) - +n.noise(x + ((r * F128A[88]) - (r * F128A[89])), z + ((r * F128A[89]) + (r * F128A[88]))) - +n.noise(x + ((r * F128A[90]) - (r * F128A[91])), z + ((r * F128A[91]) + (r * F128A[90]))) - +n.noise(x + ((r * F128A[92]) - (r * F128A[93])), z + ((r * F128A[93]) + (r * F128A[92]))) - +n.noise(x + ((r * F128A[94]) - (r * F128A[95])), z + ((r * F128A[95]) + (r * F128A[94]))) - +n.noise(x + ((r * F128A[96]) - (r * F128A[97])), z + ((r * F128A[97]) + (r * F128A[96]))) - +n.noise(x + ((r * F128A[98]) - (r * F128A[99])), z + ((r * F128A[99]) + (r * F128A[98]))) - +n.noise(x + ((r * F128A[100]) - (r * F128A[101])), z + ((r * F128A[101]) + (r * F128A[100]))) - +n.noise(x + ((r * F128A[102]) - (r * F128A[103])), z + ((r * F128A[103]) + (r * F128A[102]))) - +n.noise(x + ((r * F128A[104]) - (r * F128A[105])), z + ((r * F128A[105]) + (r * F128A[104]))) - +n.noise(x + ((r * F128A[106]) - (r * F128A[107])), z + ((r * F128A[107]) + (r * F128A[106]))) - +n.noise(x + ((r * F128A[108]) - (r * F128A[109])), z + ((r * F128A[109]) + (r * F128A[108]))) - +n.noise(x + ((r * F128A[110]) - (r * F128A[111])), z + ((r * F128A[111]) + (r * F128A[110]))) - +n.noise(x + ((r * F128A[112]) - (r * F128A[113])), z + ((r * F128A[113]) + (r * F128A[112]))) - +n.noise(x + ((r * F128A[114]) - (r * F128A[115])), z + ((r * F128A[115]) + (r * F128A[114]))) - +n.noise(x + ((r * F128A[116]) - (r * F128A[117])), z + ((r * F128A[117]) + (r * F128A[116]))) - +n.noise(x + ((r * F128A[118]) - (r * F128A[119])), z + ((r * F128A[119]) + (r * F128A[118]))) - +n.noise(x + ((r * F128A[120]) - (r * F128A[121])), z + ((r * F128A[121]) + (r * F128A[120]))) - +n.noise(x + ((r * F128A[122]) - (r * F128A[123])), z + ((r * F128A[123]) + (r * F128A[122]))) - +n.noise(x + ((r * F128A[124]) - (r * F128A[125])), z + ((r * F128A[125]) + (r * F128A[124]))) - +n.noise(x + ((r * F128A[126]) - (r * F128A[127])), z + ((r * F128A[127]) + (r * F128A[126]))) - +n.noise(x + ((r * F128A[128]) - (r * F128A[129])), z + ((r * F128A[129]) + (r * F128A[128]))) - +n.noise(x + ((r * F128A[130]) - (r * F128A[131])), z + ((r * F128A[131]) + (r * F128A[130]))) - +n.noise(x + ((r * F128A[132]) - (r * F128A[133])), z + ((r * F128A[133]) + (r * F128A[132]))) - +n.noise(x + ((r * F128A[134]) - (r * F128A[135])), z + ((r * F128A[135]) + (r * F128A[134]))) - +n.noise(x + ((r * F128A[136]) - (r * F128A[137])), z + ((r * F128A[137]) + (r * F128A[136]))) - +n.noise(x + ((r * F128A[138]) - (r * F128A[139])), z + ((r * F128A[139]) + (r * F128A[138]))) - +n.noise(x + ((r * F128A[140]) - (r * F128A[141])), z + ((r * F128A[141]) + (r * F128A[140]))) - +n.noise(x + ((r * F128A[142]) - (r * F128A[143])), z + ((r * F128A[143]) + (r * F128A[142]))) - +n.noise(x + ((r * F128A[144]) - (r * F128A[145])), z + ((r * F128A[145]) + (r * F128A[144]))) - +n.noise(x + ((r * F128A[146]) - (r * F128A[147])), z + ((r * F128A[147]) + (r * F128A[146]))) - +n.noise(x + ((r * F128A[148]) - (r * F128A[149])), z + ((r * F128A[149]) + (r * F128A[148]))) - +n.noise(x + ((r * F128A[150]) - (r * F128A[151])), z + ((r * F128A[151]) + (r * F128A[150]))) - +n.noise(x + ((r * F128A[152]) - (r * F128A[153])), z + ((r * F128A[153]) + (r * F128A[152]))) - +n.noise(x + ((r * F128A[154]) - (r * F128A[155])), z + ((r * F128A[155]) + (r * F128A[154]))) - +n.noise(x + ((r * F128A[156]) - (r * F128A[157])), z + ((r * F128A[157]) + (r * F128A[156]))) - +n.noise(x + ((r * F128A[158]) - (r * F128A[159])), z + ((r * F128A[159]) + (r * F128A[158]))) - +n.noise(x + ((r * F128A[160]) - (r * F128A[161])), z + ((r * F128A[161]) + (r * F128A[160]))) - +n.noise(x + ((r * F128A[162]) - (r * F128A[163])), z + ((r * F128A[163]) + (r * F128A[162]))) - +n.noise(x + ((r * F128A[164]) - (r * F128A[165])), z + ((r * F128A[165]) + (r * F128A[164]))) - +n.noise(x + ((r * F128A[166]) - (r * F128A[167])), z + ((r * F128A[167]) + (r * F128A[166]))) - +n.noise(x + ((r * F128A[168]) - (r * F128A[169])), z + ((r * F128A[169]) + (r * F128A[168]))) - +n.noise(x + ((r * F128A[170]) - (r * F128A[171])), z + ((r * F128A[171]) + (r * F128A[170]))) - +n.noise(x + ((r * F128A[172]) - (r * F128A[173])), z + ((r * F128A[173]) + (r * F128A[172]))) - +n.noise(x + ((r * F128A[174]) - (r * F128A[175])), z + ((r * F128A[175]) + (r * F128A[174]))) - +n.noise(x + ((r * F128A[176]) - (r * F128A[177])), z + ((r * F128A[177]) + (r * F128A[176]))) - +n.noise(x + ((r * F128A[178]) - (r * F128A[179])), z + ((r * F128A[179]) + (r * F128A[178]))) - +n.noise(x + ((r * F128A[180]) - (r * F128A[181])), z + ((r * F128A[181]) + (r * F128A[180]))) - +n.noise(x + ((r * F128A[182]) - (r * F128A[183])), z + ((r * F128A[183]) + (r * F128A[182]))) - +n.noise(x + ((r * F128A[184]) - (r * F128A[185])), z + ((r * F128A[185]) + (r * F128A[184]))) - +n.noise(x + ((r * F128A[186]) - (r * F128A[187])), z + ((r * F128A[187]) + (r * F128A[186]))) - +n.noise(x + ((r * F128A[188]) - (r * F128A[189])), z + ((r * F128A[189]) + (r * F128A[188]))) - +n.noise(x + ((r * F128A[190]) - (r * F128A[191])), z + ((r * F128A[191]) + (r * F128A[190]))) - +n.noise(x + ((r * F128A[192]) - (r * F128A[193])), z + ((r * F128A[193]) + (r * F128A[192]))) - +n.noise(x + ((r * F128A[194]) - (r * F128A[195])), z + ((r * F128A[195]) + (r * F128A[194]))) - +n.noise(x + ((r * F128A[196]) - (r * F128A[197])), z + ((r * F128A[197]) + (r * F128A[196]))) - +n.noise(x + ((r * F128A[198]) - (r * F128A[199])), z + ((r * F128A[199]) + (r * F128A[198]))) - +n.noise(x + ((r * F128A[200]) - (r * F128A[201])), z + ((r * F128A[201]) + (r * F128A[200]))) - +n.noise(x + ((r * F128A[202]) - (r * F128A[203])), z + ((r * F128A[203]) + (r * F128A[202]))) - +n.noise(x + ((r * F128A[204]) - (r * F128A[205])), z + ((r * F128A[205]) + (r * F128A[204]))) - +n.noise(x + ((r * F128A[206]) - (r * F128A[207])), z + ((r * F128A[207]) + (r * F128A[206]))) - +n.noise(x + ((r * F128A[208]) - (r * F128A[209])), z + ((r * F128A[209]) + (r * F128A[208]))) - +n.noise(x + ((r * F128A[210]) - (r * F128A[211])), z + ((r * F128A[211]) + (r * F128A[210]))) - +n.noise(x + ((r * F128A[212]) - (r * F128A[213])), z + ((r * F128A[213]) + (r * F128A[212]))) - +n.noise(x + ((r * F128A[214]) - (r * F128A[215])), z + ((r * F128A[215]) + (r * F128A[214]))) - +n.noise(x + ((r * F128A[216]) - (r * F128A[217])), z + ((r * F128A[217]) + (r * F128A[216]))) - +n.noise(x + ((r * F128A[218]) - (r * F128A[219])), z + ((r * F128A[219]) + (r * F128A[218]))) - +n.noise(x + ((r * F128A[220]) - (r * F128A[221])), z + ((r * F128A[221]) + (r * F128A[220]))) - +n.noise(x + ((r * F128A[222]) - (r * F128A[223])), z + ((r * F128A[223]) + (r * F128A[222]))) - +n.noise(x + ((r * F128A[224]) - (r * F128A[225])), z + ((r * F128A[225]) + (r * F128A[224]))) - +n.noise(x + ((r * F128A[226]) - (r * F128A[227])), z + ((r * F128A[227]) + (r * F128A[226]))) - +n.noise(x + ((r * F128A[228]) - (r * F128A[229])), z + ((r * F128A[229]) + (r * F128A[228]))) - +n.noise(x + ((r * F128A[230]) - (r * F128A[231])), z + ((r * F128A[231]) + (r * F128A[230]))) - +n.noise(x + ((r * F128A[232]) - (r * F128A[233])), z + ((r * F128A[233]) + (r * F128A[232]))) - +n.noise(x + ((r * F128A[234]) - (r * F128A[235])), z + ((r * F128A[235]) + (r * F128A[234]))) - +n.noise(x + ((r * F128A[236]) - (r * F128A[237])), z + ((r * F128A[237]) + (r * F128A[236]))) - +n.noise(x + ((r * F128A[238]) - (r * F128A[239])), z + ((r * F128A[239]) + (r * F128A[238]))) - +n.noise(x + ((r * F128A[240]) - (r * F128A[241])), z + ((r * F128A[241]) + (r * F128A[240]))) - +n.noise(x + ((r * F128A[242]) - (r * F128A[243])), z + ((r * F128A[243]) + (r * F128A[242]))) - +n.noise(x + ((r * F128A[244]) - (r * F128A[245])), z + ((r * F128A[245]) + (r * F128A[244]))) - +n.noise(x + ((r * F128A[246]) - (r * F128A[247])), z + ((r * F128A[247]) + (r * F128A[246]))) - +n.noise(x + ((r * F128A[248]) - (r * F128A[249])), z + ((r * F128A[249]) + (r * F128A[248]))) - +n.noise(x + ((r * F128A[250]) - (r * F128A[251])), z + ((r * F128A[251]) + (r * F128A[250]))) - +n.noise(x + ((r * F128A[252]) - (r * F128A[253])), z + ((r * F128A[253]) + (r * F128A[252]))) - +n.noise(x + ((r * F128A[254]) - (r * F128A[255])), z + ((r * F128A[255]) + (r * F128A[254]))) - +n.noise(x + ((r * F128A[256]) - (r * F128A[257])), z + ((r * F128A[257]) + (r * F128A[256]))) - +n.noise(x + ((r * F128A[258]) - (r * F128A[259])), z + ((r * F128A[259]) + (r * F128A[258]))) - +n.noise(x + ((r * F128A[260]) - (r * F128A[261])), z + ((r * F128A[261]) + (r * F128A[260]))) - +n.noise(x + ((r * F128A[262]) - (r * F128A[263])), z + ((r * F128A[263]) + (r * F128A[262]))) - +n.noise(x + ((r * F128A[264]) - (r * F128A[265])), z + ((r * F128A[265]) + (r * F128A[264]))) - +n.noise(x + ((r * F128A[266]) - (r * F128A[267])), z + ((r * F128A[267]) + (r * F128A[266]))) - +n.noise(x + ((r * F128A[268]) - (r * F128A[269])), z + ((r * F128A[269]) + (r * F128A[268]))) - +n.noise(x + ((r * F128A[270]) - (r * F128A[271])), z + ((r * F128A[271]) + (r * F128A[270]))) - +n.noise(x + ((r * F128A[272]) - (r * F128A[273])), z + ((r * F128A[273]) + (r * F128A[272]))) - +n.noise(x + ((r * F128A[274]) - (r * F128A[275])), z + ((r * F128A[275]) + (r * F128A[274]))) - +n.noise(x + ((r * F128A[276]) - (r * F128A[277])), z + ((r * F128A[277]) + (r * F128A[276]))) - +n.noise(x + ((r * F128A[278]) - (r * F128A[279])), z + ((r * F128A[279]) + (r * F128A[278]))) - +n.noise(x + ((r * F128A[280]) - (r * F128A[281])), z + ((r * F128A[281]) + (r * F128A[280]))) - +n.noise(x + ((r * F128A[282]) - (r * F128A[283])), z + ((r * F128A[283]) + (r * F128A[282]))) - +n.noise(x + ((r * F128A[284]) - (r * F128A[285])), z + ((r * F128A[285]) + (r * F128A[284]))) - +n.noise(x + ((r * F128A[286]) - (r * F128A[287])), z + ((r * F128A[287]) + (r * F128A[286]))) - +n.noise(x + ((r * F128A[288]) - (r * F128A[289])), z + ((r * F128A[289]) + (r * F128A[288]))) - +n.noise(x + ((r * F128A[290]) - (r * F128A[291])), z + ((r * F128A[291]) + (r * F128A[290]))) - +n.noise(x + ((r * F128A[292]) - (r * F128A[293])), z + ((r * F128A[293]) + (r * F128A[292]))) - +n.noise(x + ((r * F128A[294]) - (r * F128A[295])), z + ((r * F128A[295]) + (r * F128A[294]))) - +n.noise(x + ((r * F128A[296]) - (r * F128A[297])), z + ((r * F128A[297]) + (r * F128A[296]))) - +n.noise(x + ((r * F128A[298]) - (r * F128A[299])), z + ((r * F128A[299]) + (r * F128A[298]))) - +n.noise(x + ((r * F128A[300]) - (r * F128A[301])), z + ((r * F128A[301]) + (r * F128A[300]))) - +n.noise(x + ((r * F128A[302]) - (r * F128A[303])), z + ((r * F128A[303]) + (r * F128A[302]))) - +n.noise(x + ((r * F128A[304]) - (r * F128A[305])), z + ((r * F128A[305]) + (r * F128A[304]))) - +n.noise(x + ((r * F128A[306]) - (r * F128A[307])), z + ((r * F128A[307]) + (r * F128A[306]))) - +n.noise(x + ((r * F128A[308]) - (r * F128A[309])), z + ((r * F128A[309]) + (r * F128A[308]))) - +n.noise(x + ((r * F128A[310]) - (r * F128A[311])), z + ((r * F128A[311]) + (r * F128A[310]))) - +n.noise(x + ((r * F128A[312]) - (r * F128A[313])), z + ((r * F128A[313]) + (r * F128A[312]))) - +n.noise(x + ((r * F128A[314]) - (r * F128A[315])), z + ((r * F128A[315]) + (r * F128A[314]))) - +n.noise(x + ((r * F128A[316]) - (r * F128A[317])), z + ((r * F128A[317]) + (r * F128A[316]))) - +n.noise(x + ((r * F128A[318]) - (r * F128A[319])), z + ((r * F128A[319]) + (r * F128A[318]))) - +n.noise(x + ((r * F128A[320]) - (r * F128A[321])), z + ((r * F128A[321]) + (r * F128A[320]))) - +n.noise(x + ((r * F128A[322]) - (r * F128A[323])), z + ((r * F128A[323]) + (r * F128A[322]))) - +n.noise(x + ((r * F128A[324]) - (r * F128A[325])), z + ((r * F128A[325]) + (r * F128A[324]))) - +n.noise(x + ((r * F128A[326]) - (r * F128A[327])), z + ((r * F128A[327]) + (r * F128A[326]))) - +n.noise(x + ((r * F128A[328]) - (r * F128A[329])), z + ((r * F128A[329]) + (r * F128A[328]))) - +n.noise(x + ((r * F128A[330]) - (r * F128A[331])), z + ((r * F128A[331]) + (r * F128A[330]))) - +n.noise(x + ((r * F128A[332]) - (r * F128A[333])), z + ((r * F128A[333]) + (r * F128A[332]))) - +n.noise(x + ((r * F128A[334]) - (r * F128A[335])), z + ((r * F128A[335]) + (r * F128A[334]))) - +n.noise(x + ((r * F128A[336]) - (r * F128A[337])), z + ((r * F128A[337]) + (r * F128A[336]))) - +n.noise(x + ((r * F128A[338]) - (r * F128A[339])), z + ((r * F128A[339]) + (r * F128A[338]))) - +n.noise(x + ((r * F128A[340]) - (r * F128A[341])), z + ((r * F128A[341]) + (r * F128A[340]))) - +n.noise(x + ((r * F128A[342]) - (r * F128A[343])), z + ((r * F128A[343]) + (r * F128A[342]))) - +n.noise(x + ((r * F128A[344]) - (r * F128A[345])), z + ((r * F128A[345]) + (r * F128A[344]))) - +n.noise(x + ((r * F128A[346]) - (r * F128A[347])), z + ((r * F128A[347]) + (r * F128A[346]))) - +n.noise(x + ((r * F128A[348]) - (r * F128A[349])), z + ((r * F128A[349]) + (r * F128A[348]))) - +n.noise(x + ((r * F128A[350]) - (r * F128A[351])), z + ((r * F128A[351]) + (r * F128A[350]))) - +n.noise(x + ((r * F128A[352]) - (r * F128A[353])), z + ((r * F128A[353]) + (r * F128A[352]))) - +n.noise(x + ((r * F128A[354]) - (r * F128A[355])), z + ((r * F128A[355]) + (r * F128A[354]))) - +n.noise(x + ((r * F128A[356]) - (r * F128A[357])), z + ((r * F128A[357]) + (r * F128A[356]))) - +n.noise(x + ((r * F128A[358]) - (r * F128A[359])), z + ((r * F128A[359]) + (r * F128A[358]))))/128.0D; - } - private static final double[] F186A = {1,0,0.9998476951563912695775115935248322784900665283203125,0.017452406437283511653202339175550150685012340545654296875,0.99939082701909576211818375668372027575969696044921875,0.034899496702500969191884649944768170826137065887451171875, - 0.99862953475457383323288240717374719679355621337890625,0.05233595624294383463759317010044469498097896575927734375,0.9975640502598241976528470331686548888683319091796875,0.06975647374412530243859009715379215776920318603515625,0.9961946980917455451987052583717741072177886962890625,0.0871557427476581658698506771543179638683795928955078125, - 0.9945218953682732898613494398887269198894500732421875,0.104528463267653470847307062285835854709148406982421875,0.99254615164132198312785249072476290166378021240234375,0.12186934340514747610040302561174030415713787078857421875,0.9902680687415703619791429446195252239704132080078125,0.1391731009600654378477457839835551567375659942626953125, - 0.987688340595137770350220307591371238231658935546875,0.1564344650402308689596253543641068972647190093994140625,0.98480775301220802031565426659653894603252410888671875,0.1736481776669303311866343619840336032211780548095703125,0.9816271834476639757127713892259635031223297119140625,0.1908089953765448043565555735767702572047710418701171875, - 0.9781476007338056888329447247087955474853515625,0.207911690817759342575499204031075350940227508544921875,0.97437006478523524588553073044749908149242401123046875,0.2249510543438650034264725263710715807974338531494140625,0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625, - 0.96592582628906831221371476203785277903079986572265625,0.25881904510252073947640383266843855381011962890625,0.9612616959383188941501430235803127288818359375,0.275637355816999163327096766806789673864841461181640625,0.95630475596303543550646963922190479934215545654296875,0.292371704722736769355151409399695694446563720703125, - 0.95105651629515353118193843329208903014659881591796875,0.309016994374947395751718204337521456182003021240234375,0.94551857559931684615861513520940206944942474365234375,0.3255681544571566998769185374840162694454193115234375,0.939692620785908427905042117345146834850311279296875,0.342020143325668712908083080037613399326801300048828125, - 0.93358042649720174299687869279296137392520904541015625,0.3583679495453002683547083506709896028041839599609375,0.92718385456678742428948680753819644451141357421875,0.374606593415912014766178117497474886476993560791015625,0.92050485345244037471701403774204663932323455810546875,0.390731128489273771275946955938707105815410614013671875, - 0.91354545764260086659902526662335731089115142822265625,0.406736643075800208269043878317461349070072174072265625,0.90630778703664993667388216636027209460735321044921875,0.422618261740699441286750470680999569594860076904296875,0.8987940462991670376169395240140147507190704345703125,0.438371146789077403838064128649421036243438720703125, - 0.89100652418836789880884907688596285879611968994140625,0.453990499739546748969587497413158416748046875,0.88294759285892698841280434862710535526275634765625,0.469471562785890805802324621254228986799716949462890625,0.8746197071393957411800101908738724887371063232421875,0.484809620246337058535601727271568961441516876220703125, - 0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.8571673007021123336102164103067480027675628662109375,0.51503807491005415553075863499543629586696624755859375,0.84804809615642595677087456351728178560733795166015625,0.5299192642332049008047079041716642677783966064453125, - 0.838670567945424050293468098971061408519744873046875,0.54463903501502708426329490976058878004550933837890625,0.829037572555041624156046964344568550586700439453125,0.55919290347074690483708536703488789498805999755859375,0.81915204428899179855960710483486764132976531982421875,0.57357643635104604840080355643294751644134521484375, - 0.80901699437494745126286943559534847736358642578125,0.5877852522924731371034567928290925920009613037109375,0.798635510047292829227671973058022558689117431640625,0.6018150231520482673630567660438828170299530029296875,0.78801075360672190317501417666790075600147247314453125,0.61566147532565829170181359586422331631183624267578125, - 0.77714596145697090179282895405776798725128173828125,0.62932039104983739097320949440472759306430816650390625,0.76604444311897801345168090847437269985675811767578125,0.642787609686539251896419955301098525524139404296875,0.75470958022277201404648394600371830165386199951171875,0.656059028990507275835852851741947233676910400390625, - 0.7431448254773942441175904605188407003879547119140625,0.66913060635885823757007528911344707012176513671875,0.7313537016191704598355727284797467291355133056640625,0.68199836006249847653037932104780338704586029052734375,0.71933980033865119185776393351261503994464874267578125,0.6946583704589972541043607634492218494415283203125, - 0.70710678118654757273731092936941422522068023681640625,0.707106781186547461715008466853760182857513427734375,0.6946583704589972541043607634492218494415283203125,0.71933980033865108083546147099696099758148193359375,0.68199836006249847653037932104780338704586029052734375,0.7313537016191704598355727284797467291355133056640625, - 0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,0.656059028990507275835852851741947233676910400390625,0.75470958022277201404648394600371830165386199951171875,0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125, - 0.6293203910498375019955119569203816354274749755859375,0.77714596145697090179282895405776798725128173828125,0.61566147532565829170181359586422331631183624267578125,0.7880107536067220141973166391835547983646392822265625,0.60181502315204837838535922855953685939311981201171875,0.798635510047292829227671973058022558689117431640625, - 0.5877852522924731371034567928290925920009613037109375,0.80901699437494745126286943559534847736358642578125,0.57357643635104615942310601894860155880451202392578125,0.81915204428899179855960710483486764132976531982421875,0.5591929034707467938147829045192338526248931884765625,0.82903757255504173517834942686022259294986724853515625, - 0.54463903501502708426329490976058878004550933837890625,0.838670567945424050293468098971061408519744873046875,0.5299192642332049008047079041716642677783966064453125,0.84804809615642595677087456351728178560733795166015625,0.51503807491005415553075863499543629586696624755859375,0.8571673007021123336102164103067480027675628662109375, - 0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,0.48480962024633711404675295852939598262310028076171875,0.8746197071393957411800101908738724887371063232421875,0.46947156278589086131347585251205600798130035400390625,0.88294759285892687739050188611145131289958953857421875, - 0.453990499739546804480738728670985437929630279541015625,0.891006524188367787786546614370308816432952880859375,0.438371146789077459349215359907248057425022125244140625,0.8987940462991670376169395240140147507190704345703125,0.422618261740699441286750470680999569594860076904296875,0.90630778703664993667388216636027209460735321044921875, - 0.406736643075800208269043878317461349070072174072265625,0.91354545764260086659902526662335731089115142822265625,0.39073112848927371576479572468088008463382720947265625,0.92050485345244037471701403774204663932323455810546875,0.37460659341591195925502688623964786529541015625,0.92718385456678742428948680753819644451141357421875, - 0.35836794954530037937701081318664364516735076904296875,0.93358042649720174299687869279296137392520904541015625,0.342020143325668823930385542553267441689968109130859375,0.93969262078590831688273965482949279248714447021484375,0.325568154457156755388069768741843290627002716064453125,0.9455185755993167351363126726937480270862579345703125, - 0.30901699437494745126286943559534847736358642578125,0.95105651629515353118193843329208903014659881591796875,0.292371704722736769355151409399695694446563720703125,0.95630475596303543550646963922190479934215545654296875,0.275637355816999163327096766806789673864841461181640625,0.9612616959383188941501430235803127288818359375, - 0.25881904510252073947640383266843855381011962890625,0.96592582628906831221371476203785277903079986572265625,0.2419218955996676745368034744387841783463954925537109375,0.97029572627599647294260876151383854448795318603515625,0.224951054343864920159745679484331049025058746337890625,0.97437006478523524588553073044749908149242401123046875, - 0.207911690817759453597801666546729393303394317626953125,0.97814760073380557781064226219314150512218475341796875,0.1908089953765449153788580360924242995679378509521484375,0.9816271834476639757127713892259635031223297119140625,0.17364817766693041445336120887077413499355316162109375,0.98480775301220802031565426659653894603252410888671875, - 0.1564344650402309244707765856219339184463024139404296875,0.987688340595137770350220307591371238231658935546875,0.139173100960065465603321399612468667328357696533203125,0.9902680687415703619791429446195252239704132080078125,0.121869343405147489978190833426197059452533721923828125,0.99254615164132198312785249072476290166378021240234375, - 0.10452846326765345696951925447137909941375255584716796875,0.9945218953682732898613494398887269198894500732421875,0.087155742747658138114275061525404453277587890625,0.9961946980917455451987052583717741072177886962890625,0.06975647374412523304965105808150838129222393035888671875,0.9975640502598241976528470331686548888683319091796875, - 0.052335956242943966476577344337783870287239551544189453125,0.99862953475457383323288240717374719679355621337890625,0.034899496702501080214187112460422213189303874969482421875,0.99939082701909576211818375668372027575969696044921875,0.0174524064372835983893761380159048712812364101409912109375,0.9998476951563912695775115935248322784900665283203125, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.01745240643728347695873281963940826244652271270751953125,0.9998476951563912695775115935248322784900665283203125,-0.034899496702500955314096842130311415530741214752197265625,0.99939082701909576211818375668372027575969696044921875, - -0.052335956242943841576487074007673072628676891326904296875,0.99862953475457383323288240717374719679355621337890625,-0.0697564737441253301941657127827056683599948883056640625,0.9975640502598241976528470331686548888683319091796875,-0.08715574274765823525878971622660174034535884857177734375,0.9961946980917455451987052583717741072177886962890625, - -0.1045284632676535541140339091725763864815235137939453125,0.9945218953682732898613494398887269198894500732421875,-0.12186934340514736507810056309608626179397106170654296875,0.992546151641322094150154953240416944026947021484375,-0.139173100960065354581018937096814624965190887451171875,0.9902680687415703619791429446195252239704132080078125, - -0.1564344650402308134484741231062798760831356048583984375,0.987688340595137770350220307591371238231658935546875,-0.1736481776669303034310587463551200926303863525390625,0.98480775301220802031565426659653894603252410888671875,-0.1908089953765448043565555735767702572047710418701171875,0.9816271834476639757127713892259635031223297119140625, - -0.207911690817759342575499204031075350940227508544921875,0.9781476007338056888329447247087955474853515625,-0.224951054343865031182048141999985091388225555419921875,0.97437006478523524588553073044749908149242401123046875,-0.2419218955996677855591059369544382207095623016357421875,0.97029572627599647294260876151383854448795318603515625, - -0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625,-0.275637355816999052304794304291135631501674652099609375,0.9612616959383188941501430235803127288818359375,-0.29237170472273665833284894688404165208339691162109375,0.956304755963035546528772101737558841705322265625, - -0.30901699437494734024056697307969443500041961669921875,0.951056516295153642204240895807743072509765625,-0.325568154457156644365767306226189248263835906982421875,0.94551857559931684615861513520940206944942474365234375,-0.342020143325668712908083080037613399326801300048828125,0.939692620785908427905042117345146834850311279296875, - -0.3583679495453002683547083506709896028041839599609375,0.93358042649720174299687869279296137392520904541015625,-0.37460659341591207027732934875530190765857696533203125,0.92718385456678742428948680753819644451141357421875,-0.390731128489273771275946955938707105815410614013671875,0.9205048534524402636947115752263925969600677490234375, - -0.40673664307580026378019510957528837025165557861328125,0.91354545764260086659902526662335731089115142822265625,-0.422618261740699330264448008165345527231693267822265625,0.90630778703665004769618462887592613697052001953125,-0.43837114678907751486036659116507507860660552978515625,0.89879404629916692659463706149836070835590362548828125, - -0.453990499739546693458436266155331395566463470458984375,0.89100652418836789880884907688596285879611968994140625,-0.469471562785890916824627083769883029162883758544921875,0.88294759285892687739050188611145131289958953857421875,-0.4848096202463370030244504960137419402599334716796875,0.87461970713939585220231265338952653110027313232421875, - -0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.515038074910054266553061097511090338230133056640625,0.8571673007021123336102164103067480027675628662109375,-0.52991926423320478978240544165601022541522979736328125,0.8480480961564260677931770260329358279705047607421875, - -0.54463903501502708426329490976058878004550933837890625,0.83867056794542393927116563645540736615657806396484375,-0.55919290347074668279248044200357981026172637939453125,0.82903757255504173517834942686022259294986724853515625,-0.57357643635104615942310601894860155880451202392578125,0.8191520442889916875373046423192135989665985107421875, - -0.58778525229247302608115433031343854963779449462890625,0.80901699437494745126286943559534847736358642578125,-0.60181502315204837838535922855953685939311981201171875,0.79863551004729271820536951054236851632595062255859375,-0.61566147532565829170181359586422331631183624267578125,0.7880107536067220141973166391835547983646392822265625, - -0.629320391049837279950907031889073550701141357421875,0.77714596145697101281513141657342202961444854736328125,-0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125,-0.65605902899050716481355038922629319131374359130859375,0.75470958022277212506878640851937234401702880859375, - -0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,-0.6819983600624983655080768585321493446826934814453125,0.73135370161917057085787519099540077149868011474609375,-0.69465837045899736512666322596487589180469512939453125,0.71933980033865108083546147099696099758148193359375, - -0.707106781186547461715008466853760182857513427734375,0.70710678118654757273731092936941422522068023681640625,-0.71933980033865119185776393351261503994464874267578125,0.69465837045899714308205830093356780707836151123046875,-0.7313537016191704598355727284797467291355133056640625,0.681998360062498587552681783563457429409027099609375, - -0.74314482547739402207298553548753261566162109375,0.66913060635885834859237775162910111248493194580078125,-0.75470958022277201404648394600371830165386199951171875,0.656059028990507275835852851741947233676910400390625,-0.76604444311897790242937844595871865749359130859375,0.6427876096865394739410248803324066102504730224609375, - -0.77714596145697090179282895405776798725128173828125,0.62932039104983739097320949440472759306430816650390625,-0.78801075360672190317501417666790075600147247314453125,0.6156614753256584027241160583798773586750030517578125,-0.79863551004729294024997443557367660105228424072265625,0.60181502315204815634075430352822877466678619384765625, - -0.80901699437494734024056697307969443500041961669921875,0.58778525229247324812575925534474663436412811279296875,-0.81915204428899190958190956735052168369293212890625,0.57357643635104593737850109391729347407817840576171875,-0.829037572555041624156046964344568550586700439453125,0.55919290347074690483708536703488789498805999755859375, - -0.83867056794542393927116563645540736615657806396484375,0.54463903501502730630789983479189686477184295654296875,-0.84804809615642595677087456351728178560733795166015625,0.5299192642332049008047079041716642677783966064453125,-0.85716730070211222258791394779109396040439605712890625,0.51503807491005437757536356002674438059329986572265625, - -0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,-0.8746197071393957411800101908738724887371063232421875,0.484809620246337169557904189787223003804683685302734375,-0.88294759285892698841280434862710535526275634765625,0.469471562785890694780022158738574944436550140380859375, - -0.891006524188367787786546614370308816432952880859375,0.45399049973954685999188995992881245911121368408203125,-0.8987940462991670376169395240140147507190704345703125,0.43837114678907729281576166613376699388027191162109375,-0.90630778703664993667388216636027209460735321044921875,0.4226182617406994967979017019388265907764434814453125, - -0.913545457642600755576722804107703268527984619140625,0.406736643075800430313648803348769433796405792236328125,-0.92050485345244037471701403774204663932323455810546875,0.390731128489273771275946955938707105815410614013671875,-0.92718385456678731326718434502254240214824676513671875,0.374606593415912236810783042528782971203327178955078125, - -0.93358042649720174299687869279296137392520904541015625,0.358367949545300212843557119413162581622600555419921875,-0.93969262078590831688273965482949279248714447021484375,0.342020143325668879441536773811094462871551513671875,-0.94551857559931684615861513520940206944942474365234375,0.32556815445715658885461607496836222708225250244140625, - -0.95105651629515353118193843329208903014659881591796875,0.309016994374947506774020666853175498545169830322265625,-0.956304755963035546528772101737558841705322265625,0.292371704722736602821697715626214630901813507080078125,-0.9612616959383188941501430235803127288818359375,0.27563735581699921883824799806461669504642486572265625, - -0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125,-0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625,-0.9743700647852351348632282679318450391292572021484375,0.22495105434386519771550183577346615493297576904296875, - -0.9781476007338056888329447247087955474853515625,0.2079116908177593148199235884021618403494358062744140625,-0.9816271834476639757127713892259635031223297119140625,0.1908089953765449708900092673502513207495212554931640625,-0.98480775301220802031565426659653894603252410888671875,0.1736481776669302756754831307262065820395946502685546875, - -0.98768834059513765932791784507571719586849212646484375,0.1564344650402309799819278168797609396278858184814453125,-0.9902680687415703619791429446195252239704132080078125,0.1391731009600653268254433214679011143743991851806640625,-0.99254615164132198312785249072476290166378021240234375,0.12186934340514754548934206468402408063411712646484375, - -0.9945218953682732898613494398887269198894500732421875,0.10452846326765373452527541076051420532166957855224609375,-0.9961946980917455451987052583717741072177886962890625,0.087155742747658193625426292783231474459171295166015625,-0.9975640502598241976528470331686548888683319091796875,0.06975647374412552448319502218510024249553680419921875, - -0.99862953475457383323288240717374719679355621337890625,0.05233595624294380688201755447153118439018726348876953125,-0.99939082701909576211818375668372027575969696044921875,0.034899496702501142664232247625477612018585205078125,-0.9998476951563912695775115935248322784900665283203125,0.0174524064372834387948163481496521853841841220855712890625, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.9998476951563912695775115935248322784900665283203125,-0.017452406437283636553292609505660948343575000762939453125,-0.99939082701909576211818375668372027575969696044921875,-0.034899496702500899802945610872484394349157810211181640625, - -0.99862953475457383323288240717374719679355621337890625,-0.05233595624294355708183701381130958907306194305419921875,-0.9975640502598241976528470331686548888683319091796875,-0.0697564737441252746830144815248786471784114837646484375,-0.9961946980917455451987052583717741072177886962890625,-0.0871557427476579438252457521230098791420459747314453125, - -0.9945218953682732898613494398887269198894500732421875,-0.1045284632676534986028826779147493652999401092529296875,-0.992546151641322094150154953240416944026947021484375,-0.12186934340514730956694933183825924061238765716552734375,-0.99026806874157025095684048210387118160724639892578125,-0.13917310096006552111447263087029568850994110107421875, - -0.987688340595137770350220307591371238231658935546875,-0.156434465040230730181747276219539344310760498046875,-0.98480775301220802031565426659653894603252410888671875,-0.173648177666930469964512440128601156175136566162109375,-0.9816271834476639757127713892259635031223297119140625,-0.19080899537654472108982872669002972543239593505859375, - -0.97814760073380557781064226219314150512218475341796875,-0.20791169081775950910895289780455641448497772216796875,-0.97437006478523524588553073044749908149242401123046875,-0.22495105434386497567089691074215807020664215087890625,-0.97029572627599647294260876151383854448795318603515625,-0.2419218955996675080033497806653031148016452789306640625, - -0.96592582628906831221371476203785277903079986572265625,-0.258819045102520794987555063926265574991703033447265625,-0.9612616959383188941501430235803127288818359375,-0.27563735581699899679364307303330861032009124755859375,-0.95630475596303543550646963922190479934215545654296875,-0.292371704722736769355151409399695694446563720703125, - -0.951056516295153642204240895807743072509765625,-0.309016994374947284729415741821867413818836212158203125,-0.9455185755993167351363126726937480270862579345703125,-0.325568154457156755388069768741843290627002716064453125,-0.939692620785908427905042117345146834850311279296875,-0.3420201433256686573969318487797863781452178955078125, - -0.93358042649720174299687869279296137392520904541015625,-0.358367949545300434888162044444470666348934173583984375,-0.92718385456678742428948680753819644451141357421875,-0.374606593415912014766178117497474886476993560791015625,-0.92050485345244037471701403774204663932323455810546875,-0.390731128489273549231342030907399021089076995849609375, - -0.91354545764260086659902526662335731089115142822265625,-0.406736643075800208269043878317461349070072174072265625,-0.90630778703665004769618462887592613697052001953125,-0.42261826174069927475329677690751850605010986328125,-0.89879404629916692659463706149836070835590362548828125,-0.438371146789077459349215359907248057425022125244140625, - -0.89100652418836789880884907688596285879611968994140625,-0.453990499739546693458436266155331395566463470458984375,-0.88294759285892687739050188611145131289958953857421875,-0.46947156278589086131347585251205600798130035400390625,-0.87461970713939585220231265338952653110027313232421875,-0.484809620246336947513299264755914919078350067138671875, - -0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.8571673007021123336102164103067480027675628662109375,-0.51503807491005415553075863499543629586696624755859375,-0.8480480961564260677931770260329358279705047607421875,-0.52991926423320478978240544165601022541522979736328125, - -0.838670567945424050293468098971061408519744873046875,-0.54463903501502708426329490976058878004550933837890625,-0.8290375725550418462006518893758766353130340576171875,-0.55919290347074668279248044200357981026172637939453125,-0.81915204428899179855960710483486764132976531982421875,-0.57357643635104615942310601894860155880451202392578125, - -0.80901699437494756228517189811100251972675323486328125,-0.58778525229247302608115433031343854963779449462890625,-0.798635510047292829227671973058022558689117431640625,-0.60181502315204837838535922855953685939311981201171875,-0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375, - -0.77714596145697079077052649154211394488811492919921875,-0.62932039104983761301781441943603567779064178466796875,-0.76604444311897801345168090847437269985675811767578125,-0.642787609686539251896419955301098525524139404296875,-0.75470958022277212506878640851937234401702880859375,-0.6560590289905070537912479267106391489505767822265625, - -0.7431448254773942441175904605188407003879547119140625,-0.66913060635885823757007528911344707012176513671875,-0.73135370161917057085787519099540077149868011474609375,-0.6819983600624983655080768585321493446826934814453125,-0.71933980033865108083546147099696099758148193359375,-0.69465837045899736512666322596487589180469512939453125, - -0.7071067811865476837596133918850682675838470458984375,-0.707106781186547461715008466853760182857513427734375,-0.6946583704589972541043607634492218494415283203125,-0.71933980033865119185776393351261503994464874267578125,-0.681998360062498587552681783563457429409027099609375,-0.7313537016191704598355727284797467291355133056640625, - -0.66913060635885812654777282659779302775859832763671875,-0.74314482547739435513989292303449474275112152099609375,-0.656059028990507275835852851741947233676910400390625,-0.75470958022277201404648394600371830165386199951171875,-0.6427876096865394739410248803324066102504730224609375,-0.76604444311897790242937844595871865749359130859375, - -0.62932039104983783506241934446734376251697540283203125,-0.77714596145697056872592156651080586016178131103515625,-0.61566147532565806965720867083291523158550262451171875,-0.78801075360672212521961910169920884072780609130859375,-0.6018150231520482673630567660438828170299530029296875,-0.798635510047292829227671973058022558689117431640625, - -0.58778525229247324812575925534474663436412811279296875,-0.80901699437494734024056697307969443500041961669921875,-0.57357643635104638146771094397990964353084564208984375,-0.81915204428899157651500217980355955660343170166015625,-0.5591929034707465717701779794879257678985595703125,-0.8290375725550418462006518893758766353130340576171875, - -0.544639035015026973240992447244934737682342529296875,-0.838670567945424050293468098971061408519744873046875,-0.52991926423320501182701036668731831014156341552734375,-0.84804809615642595677087456351728178560733795166015625,-0.5150380749100544885976660225423984229564666748046875,-0.857167300702112111565611485275439918041229248046875, - -0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,-0.484809620246336836490996802240260876715183258056640625,-0.87461970713939596322461511590518057346343994140625,-0.469471562785890750291173389996401965618133544921875,-0.88294759285892698841280434862710535526275634765625, - -0.453990499739546915503041191186639480292797088623046875,-0.891006524188367787786546614370308816432952880859375,-0.43837114678907773690497151619638316333293914794921875,-0.89879404629916681557233459898270666599273681640625,-0.42261826174069916373099431439186446368694305419921875,-0.90630778703665004769618462887592613697052001953125, - -0.406736643075800097246741415801807306706905364990234375,-0.9135454576426009776213277291390113532543182373046875,-0.3907311284892738267870981871965341269969940185546875,-0.9205048534524402636947115752263925969600677490234375,-0.37460659341591229232193427378660999238491058349609375,-0.92718385456678731326718434502254240214824676513671875, - -0.3583679495453007124439182007336057722568511962890625,-0.933580426497201631974576230277307331562042236328125,-0.34202014332566854637462938626413233578205108642578125,-0.939692620785908427905042117345146834850311279296875,-0.325568154457156644365767306226189248263835906982421875,-0.94551857559931684615861513520940206944942474365234375, - -0.30901699437494756228517189811100251972675323486328125,-0.95105651629515353118193843329208903014659881591796875,-0.29237170472273710242205879694665782153606414794921875,-0.9563047559630353244841671767062507569789886474609375,-0.2756373558169988857713406105176545679569244384765625,-0.96126169593831900517244548609596677124500274658203125, - -0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625,-0.2419218955996677855591059369544382207095623016357421875,-0.97029572627599647294260876151383854448795318603515625,-0.224951054343865253226653067031293176114559173583984375,-0.9743700647852351348632282679318450391292572021484375, - -0.207911690817759786664709054093691520392894744873046875,-0.97814760073380557781064226219314150512218475341796875,-0.1908089953765446100675262641743756830692291259765625,-0.9816271834476639757127713892259635031223297119140625,-0.1736481776669303311866343619840336032211780548095703125,-0.98480775301220802031565426659653894603252410888671875, - -0.1564344650402310354930790481375879608094692230224609375,-0.98768834059513765932791784507571719586849212646484375,-0.1391731009600658264258044027883443050086498260498046875,-0.99026806874157025095684048210387118160724639892578125,-0.12186934340514717078907125369369168765842914581298828125,-0.992546151641322094150154953240416944026947021484375, - -0.104528463267653359825004599770181812345981597900390625,-0.99452189536827340088365190240438096225261688232421875,-0.08715574274765824913657752404105849564075469970703125,-0.9961946980917455451987052583717741072177886962890625,-0.069756473744125579994346253442927263677120208740234375,-0.9975640502598241976528470331686548888683319091796875, - -0.05233595624294430648237863579197437502443790435791015625,-0.99862953475457383323288240717374719679355621337890625,-0.034899496702500761025067532727916841395199298858642578125,-0.99939082701909576211818375668372027575969696044921875,-0.017452406437283497775414531361093395389616489410400390625,-0.9998476951563912695775115935248322784900665283203125, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.017452406437283130014037624277989380061626434326171875,-0.9998476951563912695775115935248322784900665283203125,0.0348994967025012814421103257700451649725437164306640625,-0.99939082701909576211818375668372027575969696044921875, - 0.05233595624294394565989563261609873734414577484130859375,-0.99862953475457383323288240717374719679355621337890625,0.0697564737441252191718632502670516259968280792236328125,-0.99756405025982430867514949568430893123149871826171875,0.0871557427476578883140945208651828579604625701904296875,-0.9961946980917455451987052583717741072177886962890625, - 0.10452846326765298512473378877984941937029361724853515625,-0.99452189536827340088365190240438096225261688232421875,0.1218693434051476842672201428285916335880756378173828125,-0.99254615164132198312785249072476290166378021240234375,0.139173100960065465603321399612468667328357696533203125,-0.9902680687415703619791429446195252239704132080078125, - 0.156434465040230674670596044961712323129177093505859375,-0.987688340595137770350220307591371238231658935546875,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875,0.190808995376545109667887345494818873703479766845703125,-0.98162718344766386469046892671030946075916290283203125, - 0.2079116908177594258422260509178158827126026153564453125,-0.97814760073380557781064226219314150512218475341796875,0.224951054343864920159745679484331049025058746337890625,-0.97437006478523524588553073044749908149242401123046875,0.2419218955996674524921985494074760936200618743896484375,-0.9702957262759965839649112240294925868511199951171875, - 0.258819045102520295387193982605822384357452392578125,-0.9659258262890684232360172245535068213939666748046875,0.275637355816999385371701691838097758591175079345703125,-0.96126169593831878312784056106465868651866912841796875,0.292371704722736713844000178141868673264980316162109375,-0.95630475596303543550646963922190479934215545654296875, - 0.3090169943749472292182645105640403926372528076171875,-0.951056516295153642204240895807743072509765625,0.325568154457156311298859918679227121174335479736328125,-0.945518575599316957180917597725056111812591552734375,0.34202014332566899046383923632674850523471832275390625,-0.93969262078590831688273965482949279248714447021484375, - 0.35836794954530037937701081318664364516735076904296875,-0.93358042649720174299687869279296137392520904541015625,0.37460659341591195925502688623964786529541015625,-0.92718385456678742428948680753819644451141357421875,0.39073112848927349372019079964957199990749359130859375,-0.9205048534524404857393165002577006816864013671875, - 0.406736643075799764179834028254845179617404937744140625,-0.91354545764260108864363019165466539561748504638671875,0.42261826174069960782020416445448063313961029052734375,-0.90630778703664993667388216636027209460735321044921875,0.438371146789077403838064128649421036243438720703125,-0.8987940462991670376169395240140147507190704345703125, - 0.45399049973954663794728503489750437438488006591796875,-0.89100652418836789880884907688596285879611968994140625,0.46947156278589041722426600244943983852863311767578125,-0.88294759285892709943510681114275939762592315673828125,0.484809620246337280580206652302877046167850494384765625,-0.87461970713939563015770772835821844637393951416015625, - 0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.51503807491005415553075863499543629586696624755859375,-0.8571673007021123336102164103067480027675628662109375,0.52991926423320467876010297914035618305206298828125,-0.84804809615642617881547948854858987033367156982421875, - 0.54463903501502664017408505969797261059284210205078125,-0.8386705679454242723380730240023694932460784912109375,0.559192903470747015859387829550541937351226806640625,-0.829037572555041624156046964344568550586700439453125,0.57357643635104604840080355643294751644134521484375,-0.81915204428899179855960710483486764132976531982421875, - 0.587785252292472915058851867797784507274627685546875,-0.80901699437494756228517189811100251972675323486328125,0.60181502315204793429614937849692068994045257568359375,-0.7986355100472930512722768980893306434154510498046875,0.61566147532565851374641852089553140103816986083984375,-0.7880107536067217921527117141522467136383056640625, - 0.6293203910498375019955119569203816354274749755859375,-0.77714596145697079077052649154211394488811492919921875,0.642787609686539251896419955301098525524139404296875,-0.7660444431189781244739833709900267422199249267578125,0.6560590289905070537912479267106391489505767822265625,-0.75470958022277223609108887103502638638019561767578125, - 0.669130606358857793480865439050830900669097900390625,-0.74314482547739457718449784806580282747745513916015625,0.681998360062498587552681783563457429409027099609375,-0.73135370161917034881327026596409268677234649658203125,0.6946583704589972541043607634492218494415283203125,-0.71933980033865119185776393351261503994464874267578125, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.7193398003386508587908565459656529128551483154296875,-0.69465837045899758717126815099618397653102874755859375,0.731353701619170681880177653511054813861846923828125,-0.68199836006249825448577439601649530231952667236328125, - 0.7431448254773942441175904605188407003879547119140625,-0.66913060635885812654777282659779302775859832763671875,0.7547095802227719030241814834880642592906951904296875,-0.65605902899050738685815531425760127604007720947265625,0.76604444311897779140707598344306461513042449951171875,-0.64278760968653958496332734284806065261363983154296875, - 0.77714596145697056872592156651080586016178131103515625,-0.62932039104983783506241934446734376251697540283203125,0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375,0.798635510047292829227671973058022558689117431640625,-0.6018150231520482673630567660438828170299530029296875, - 0.80901699437494734024056697307969443500041961669921875,-0.587785252292473359148061717860400676727294921875,0.81915204428899157651500217980355955660343170166015625,-0.573576436351046492490013406495563685894012451171875,0.8290375725550418462006518893758766353130340576171875,-0.5591929034707465717701779794879257678985595703125, - 0.838670567945424050293468098971061408519744873046875,-0.544639035015026973240992447244934737682342529296875,0.84804809615642595677087456351728178560733795166015625,-0.52991926423320501182701036668731831014156341552734375,0.857167300702112111565611485275439918041229248046875,-0.5150380749100544885976660225423984229564666748046875, - 0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.87461970713939585220231265338952653110027313232421875,-0.48480962024633689200214803349808789789676666259765625,0.88294759285892687739050188611145131289958953857421875,-0.469471562785890805802324621254228986799716949462890625, - 0.891006524188367787786546614370308816432952880859375,-0.4539904997395469710141924224444665014743804931640625,0.89879404629916681557233459898270666599273681640625,-0.438371146789077792416122747454210184514522552490234375,0.90630778703665004769618462887592613697052001953125,-0.422618261740699219242145545649691484868526458740234375, - 0.9135454576426009776213277291390113532543182373046875,-0.40673664307580015275789264705963432788848876953125,0.9205048534524402636947115752263925969600677490234375,-0.390731128489273882298249418454361148178577423095703125,0.92718385456678731326718434502254240214824676513671875,-0.374606593415912347833085505044437013566493988037109375, - 0.93358042649720152095227376776165328919887542724609375,-0.358367949545300767955069431991432793438434600830078125,0.939692620785908427905042117345146834850311279296875,-0.342020143325668601885780617521959356963634490966796875,0.94551857559931684615861513520940206944942474365234375,-0.3255681544571566998769185374840162694454193115234375, - 0.95105651629515353118193843329208903014659881591796875,-0.309016994374947617796323129368829540908336639404296875,0.9563047559630353244841671767062507569789886474609375,-0.292371704722737157933210028204484842717647552490234375,0.9612616959383188941501430235803127288818359375,-0.275637355816998941282491841775481589138507843017578125, - 0.96592582628906831221371476203785277903079986572265625,-0.258819045102520683965252601410611532628536224365234375,0.97029572627599647294260876151383854448795318603515625,-0.241921895599667868825832783841178752481937408447265625,0.9743700647852351348632282679318450391292572021484375,-0.2249510543438653364933799139180337078869342803955078125, - 0.97814760073380557781064226219314150512218475341796875,-0.2079116908177598699314359009804320521652698516845703125,0.9816271834476639757127713892259635031223297119140625,-0.190808995376544665578677495432202704250812530517578125,0.98480775301220802031565426659653894603252410888671875,-0.1736481776669303866977855932418606244027614593505859375, - 0.98768834059513765932791784507571719586849212646484375,-0.156434465040231118759805895024328492581844329833984375,0.99026806874157025095684048210387118160724639892578125,-0.1391731009600658819369556340461713261902332305908203125,0.992546151641322094150154953240416944026947021484375,-0.12186934340514722630022248495151870884001255035400390625, - 0.9945218953682732898613494398887269198894500732421875,-0.10452846326765341533615583102800883352756500244140625,0.9961946980917455451987052583717741072177886962890625,-0.08715574274765831852551656311334227211773395538330078125,0.9975640502598241976528470331686548888683319091796875,-0.06975647374412563550549748470075428485870361328125, - 0.99862953475457383323288240717374719679355621337890625,-0.052335956242944368932423770957029773853719234466552734375,0.99939082701909576211818375668372027575969696044921875,-0.03489949670250082347511266789297224022448062896728515625,0.9998476951563912695775115935248322784900665283203125,-0.01745240643728356022545966652614879421889781951904296875}; - private static double sc186(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F186A[0]) - (r * F186A[1])), z + ((r * F186A[1]) + (r * F186A[0]))) - +n.noise(x + ((r * F186A[2]) - (r * F186A[3])), z + ((r * F186A[3]) + (r * F186A[2]))) - +n.noise(x + ((r * F186A[4]) - (r * F186A[5])), z + ((r * F186A[5]) + (r * F186A[4]))) - +n.noise(x + ((r * F186A[6]) - (r * F186A[7])), z + ((r * F186A[7]) + (r * F186A[6]))) - +n.noise(x + ((r * F186A[8]) - (r * F186A[9])), z + ((r * F186A[9]) + (r * F186A[8]))) - +n.noise(x + ((r * F186A[10]) - (r * F186A[11])), z + ((r * F186A[11]) + (r * F186A[10]))) - +n.noise(x + ((r * F186A[12]) - (r * F186A[13])), z + ((r * F186A[13]) + (r * F186A[12]))) - +n.noise(x + ((r * F186A[14]) - (r * F186A[15])), z + ((r * F186A[15]) + (r * F186A[14]))) - +n.noise(x + ((r * F186A[16]) - (r * F186A[17])), z + ((r * F186A[17]) + (r * F186A[16]))) - +n.noise(x + ((r * F186A[18]) - (r * F186A[19])), z + ((r * F186A[19]) + (r * F186A[18]))) - +n.noise(x + ((r * F186A[20]) - (r * F186A[21])), z + ((r * F186A[21]) + (r * F186A[20]))) - +n.noise(x + ((r * F186A[22]) - (r * F186A[23])), z + ((r * F186A[23]) + (r * F186A[22]))) - +n.noise(x + ((r * F186A[24]) - (r * F186A[25])), z + ((r * F186A[25]) + (r * F186A[24]))) - +n.noise(x + ((r * F186A[26]) - (r * F186A[27])), z + ((r * F186A[27]) + (r * F186A[26]))) - +n.noise(x + ((r * F186A[28]) - (r * F186A[29])), z + ((r * F186A[29]) + (r * F186A[28]))) - +n.noise(x + ((r * F186A[30]) - (r * F186A[31])), z + ((r * F186A[31]) + (r * F186A[30]))) - +n.noise(x + ((r * F186A[32]) - (r * F186A[33])), z + ((r * F186A[33]) + (r * F186A[32]))) - +n.noise(x + ((r * F186A[34]) - (r * F186A[35])), z + ((r * F186A[35]) + (r * F186A[34]))) - +n.noise(x + ((r * F186A[36]) - (r * F186A[37])), z + ((r * F186A[37]) + (r * F186A[36]))) - +n.noise(x + ((r * F186A[38]) - (r * F186A[39])), z + ((r * F186A[39]) + (r * F186A[38]))) - +n.noise(x + ((r * F186A[40]) - (r * F186A[41])), z + ((r * F186A[41]) + (r * F186A[40]))) - +n.noise(x + ((r * F186A[42]) - (r * F186A[43])), z + ((r * F186A[43]) + (r * F186A[42]))) - +n.noise(x + ((r * F186A[44]) - (r * F186A[45])), z + ((r * F186A[45]) + (r * F186A[44]))) - +n.noise(x + ((r * F186A[46]) - (r * F186A[47])), z + ((r * F186A[47]) + (r * F186A[46]))) - +n.noise(x + ((r * F186A[48]) - (r * F186A[49])), z + ((r * F186A[49]) + (r * F186A[48]))) - +n.noise(x + ((r * F186A[50]) - (r * F186A[51])), z + ((r * F186A[51]) + (r * F186A[50]))) - +n.noise(x + ((r * F186A[52]) - (r * F186A[53])), z + ((r * F186A[53]) + (r * F186A[52]))) - +n.noise(x + ((r * F186A[54]) - (r * F186A[55])), z + ((r * F186A[55]) + (r * F186A[54]))) - +n.noise(x + ((r * F186A[56]) - (r * F186A[57])), z + ((r * F186A[57]) + (r * F186A[56]))) - +n.noise(x + ((r * F186A[58]) - (r * F186A[59])), z + ((r * F186A[59]) + (r * F186A[58]))) - +n.noise(x + ((r * F186A[60]) - (r * F186A[61])), z + ((r * F186A[61]) + (r * F186A[60]))) - +n.noise(x + ((r * F186A[62]) - (r * F186A[63])), z + ((r * F186A[63]) + (r * F186A[62]))) - +n.noise(x + ((r * F186A[64]) - (r * F186A[65])), z + ((r * F186A[65]) + (r * F186A[64]))) - +n.noise(x + ((r * F186A[66]) - (r * F186A[67])), z + ((r * F186A[67]) + (r * F186A[66]))) - +n.noise(x + ((r * F186A[68]) - (r * F186A[69])), z + ((r * F186A[69]) + (r * F186A[68]))) - +n.noise(x + ((r * F186A[70]) - (r * F186A[71])), z + ((r * F186A[71]) + (r * F186A[70]))) - +n.noise(x + ((r * F186A[72]) - (r * F186A[73])), z + ((r * F186A[73]) + (r * F186A[72]))) - +n.noise(x + ((r * F186A[74]) - (r * F186A[75])), z + ((r * F186A[75]) + (r * F186A[74]))) - +n.noise(x + ((r * F186A[76]) - (r * F186A[77])), z + ((r * F186A[77]) + (r * F186A[76]))) - +n.noise(x + ((r * F186A[78]) - (r * F186A[79])), z + ((r * F186A[79]) + (r * F186A[78]))) - +n.noise(x + ((r * F186A[80]) - (r * F186A[81])), z + ((r * F186A[81]) + (r * F186A[80]))) - +n.noise(x + ((r * F186A[82]) - (r * F186A[83])), z + ((r * F186A[83]) + (r * F186A[82]))) - +n.noise(x + ((r * F186A[84]) - (r * F186A[85])), z + ((r * F186A[85]) + (r * F186A[84]))) - +n.noise(x + ((r * F186A[86]) - (r * F186A[87])), z + ((r * F186A[87]) + (r * F186A[86]))) - +n.noise(x + ((r * F186A[88]) - (r * F186A[89])), z + ((r * F186A[89]) + (r * F186A[88]))) - +n.noise(x + ((r * F186A[90]) - (r * F186A[91])), z + ((r * F186A[91]) + (r * F186A[90]))) - +n.noise(x + ((r * F186A[92]) - (r * F186A[93])), z + ((r * F186A[93]) + (r * F186A[92]))) - +n.noise(x + ((r * F186A[94]) - (r * F186A[95])), z + ((r * F186A[95]) + (r * F186A[94]))) - +n.noise(x + ((r * F186A[96]) - (r * F186A[97])), z + ((r * F186A[97]) + (r * F186A[96]))) - +n.noise(x + ((r * F186A[98]) - (r * F186A[99])), z + ((r * F186A[99]) + (r * F186A[98]))) - +n.noise(x + ((r * F186A[100]) - (r * F186A[101])), z + ((r * F186A[101]) + (r * F186A[100]))) - +n.noise(x + ((r * F186A[102]) - (r * F186A[103])), z + ((r * F186A[103]) + (r * F186A[102]))) - +n.noise(x + ((r * F186A[104]) - (r * F186A[105])), z + ((r * F186A[105]) + (r * F186A[104]))) - +n.noise(x + ((r * F186A[106]) - (r * F186A[107])), z + ((r * F186A[107]) + (r * F186A[106]))) - +n.noise(x + ((r * F186A[108]) - (r * F186A[109])), z + ((r * F186A[109]) + (r * F186A[108]))) - +n.noise(x + ((r * F186A[110]) - (r * F186A[111])), z + ((r * F186A[111]) + (r * F186A[110]))) - +n.noise(x + ((r * F186A[112]) - (r * F186A[113])), z + ((r * F186A[113]) + (r * F186A[112]))) - +n.noise(x + ((r * F186A[114]) - (r * F186A[115])), z + ((r * F186A[115]) + (r * F186A[114]))) - +n.noise(x + ((r * F186A[116]) - (r * F186A[117])), z + ((r * F186A[117]) + (r * F186A[116]))) - +n.noise(x + ((r * F186A[118]) - (r * F186A[119])), z + ((r * F186A[119]) + (r * F186A[118]))) - +n.noise(x + ((r * F186A[120]) - (r * F186A[121])), z + ((r * F186A[121]) + (r * F186A[120]))) - +n.noise(x + ((r * F186A[122]) - (r * F186A[123])), z + ((r * F186A[123]) + (r * F186A[122]))) - +n.noise(x + ((r * F186A[124]) - (r * F186A[125])), z + ((r * F186A[125]) + (r * F186A[124]))) - +n.noise(x + ((r * F186A[126]) - (r * F186A[127])), z + ((r * F186A[127]) + (r * F186A[126]))) - +n.noise(x + ((r * F186A[128]) - (r * F186A[129])), z + ((r * F186A[129]) + (r * F186A[128]))) - +n.noise(x + ((r * F186A[130]) - (r * F186A[131])), z + ((r * F186A[131]) + (r * F186A[130]))) - +n.noise(x + ((r * F186A[132]) - (r * F186A[133])), z + ((r * F186A[133]) + (r * F186A[132]))) - +n.noise(x + ((r * F186A[134]) - (r * F186A[135])), z + ((r * F186A[135]) + (r * F186A[134]))) - +n.noise(x + ((r * F186A[136]) - (r * F186A[137])), z + ((r * F186A[137]) + (r * F186A[136]))) - +n.noise(x + ((r * F186A[138]) - (r * F186A[139])), z + ((r * F186A[139]) + (r * F186A[138]))) - +n.noise(x + ((r * F186A[140]) - (r * F186A[141])), z + ((r * F186A[141]) + (r * F186A[140]))) - +n.noise(x + ((r * F186A[142]) - (r * F186A[143])), z + ((r * F186A[143]) + (r * F186A[142]))) - +n.noise(x + ((r * F186A[144]) - (r * F186A[145])), z + ((r * F186A[145]) + (r * F186A[144]))) - +n.noise(x + ((r * F186A[146]) - (r * F186A[147])), z + ((r * F186A[147]) + (r * F186A[146]))) - +n.noise(x + ((r * F186A[148]) - (r * F186A[149])), z + ((r * F186A[149]) + (r * F186A[148]))) - +n.noise(x + ((r * F186A[150]) - (r * F186A[151])), z + ((r * F186A[151]) + (r * F186A[150]))) - +n.noise(x + ((r * F186A[152]) - (r * F186A[153])), z + ((r * F186A[153]) + (r * F186A[152]))) - +n.noise(x + ((r * F186A[154]) - (r * F186A[155])), z + ((r * F186A[155]) + (r * F186A[154]))) - +n.noise(x + ((r * F186A[156]) - (r * F186A[157])), z + ((r * F186A[157]) + (r * F186A[156]))) - +n.noise(x + ((r * F186A[158]) - (r * F186A[159])), z + ((r * F186A[159]) + (r * F186A[158]))) - +n.noise(x + ((r * F186A[160]) - (r * F186A[161])), z + ((r * F186A[161]) + (r * F186A[160]))) - +n.noise(x + ((r * F186A[162]) - (r * F186A[163])), z + ((r * F186A[163]) + (r * F186A[162]))) - +n.noise(x + ((r * F186A[164]) - (r * F186A[165])), z + ((r * F186A[165]) + (r * F186A[164]))) - +n.noise(x + ((r * F186A[166]) - (r * F186A[167])), z + ((r * F186A[167]) + (r * F186A[166]))) - +n.noise(x + ((r * F186A[168]) - (r * F186A[169])), z + ((r * F186A[169]) + (r * F186A[168]))) - +n.noise(x + ((r * F186A[170]) - (r * F186A[171])), z + ((r * F186A[171]) + (r * F186A[170]))) - +n.noise(x + ((r * F186A[172]) - (r * F186A[173])), z + ((r * F186A[173]) + (r * F186A[172]))) - +n.noise(x + ((r * F186A[174]) - (r * F186A[175])), z + ((r * F186A[175]) + (r * F186A[174]))) - +n.noise(x + ((r * F186A[176]) - (r * F186A[177])), z + ((r * F186A[177]) + (r * F186A[176]))) - +n.noise(x + ((r * F186A[178]) - (r * F186A[179])), z + ((r * F186A[179]) + (r * F186A[178]))) - +n.noise(x + ((r * F186A[180]) - (r * F186A[181])), z + ((r * F186A[181]) + (r * F186A[180]))) - +n.noise(x + ((r * F186A[182]) - (r * F186A[183])), z + ((r * F186A[183]) + (r * F186A[182]))) - +n.noise(x + ((r * F186A[184]) - (r * F186A[185])), z + ((r * F186A[185]) + (r * F186A[184]))) - +n.noise(x + ((r * F186A[186]) - (r * F186A[187])), z + ((r * F186A[187]) + (r * F186A[186]))) - +n.noise(x + ((r * F186A[188]) - (r * F186A[189])), z + ((r * F186A[189]) + (r * F186A[188]))) - +n.noise(x + ((r * F186A[190]) - (r * F186A[191])), z + ((r * F186A[191]) + (r * F186A[190]))) - +n.noise(x + ((r * F186A[192]) - (r * F186A[193])), z + ((r * F186A[193]) + (r * F186A[192]))) - +n.noise(x + ((r * F186A[194]) - (r * F186A[195])), z + ((r * F186A[195]) + (r * F186A[194]))) - +n.noise(x + ((r * F186A[196]) - (r * F186A[197])), z + ((r * F186A[197]) + (r * F186A[196]))) - +n.noise(x + ((r * F186A[198]) - (r * F186A[199])), z + ((r * F186A[199]) + (r * F186A[198]))) - +n.noise(x + ((r * F186A[200]) - (r * F186A[201])), z + ((r * F186A[201]) + (r * F186A[200]))) - +n.noise(x + ((r * F186A[202]) - (r * F186A[203])), z + ((r * F186A[203]) + (r * F186A[202]))) - +n.noise(x + ((r * F186A[204]) - (r * F186A[205])), z + ((r * F186A[205]) + (r * F186A[204]))) - +n.noise(x + ((r * F186A[206]) - (r * F186A[207])), z + ((r * F186A[207]) + (r * F186A[206]))) - +n.noise(x + ((r * F186A[208]) - (r * F186A[209])), z + ((r * F186A[209]) + (r * F186A[208]))) - +n.noise(x + ((r * F186A[210]) - (r * F186A[211])), z + ((r * F186A[211]) + (r * F186A[210]))) - +n.noise(x + ((r * F186A[212]) - (r * F186A[213])), z + ((r * F186A[213]) + (r * F186A[212]))) - +n.noise(x + ((r * F186A[214]) - (r * F186A[215])), z + ((r * F186A[215]) + (r * F186A[214]))) - +n.noise(x + ((r * F186A[216]) - (r * F186A[217])), z + ((r * F186A[217]) + (r * F186A[216]))) - +n.noise(x + ((r * F186A[218]) - (r * F186A[219])), z + ((r * F186A[219]) + (r * F186A[218]))) - +n.noise(x + ((r * F186A[220]) - (r * F186A[221])), z + ((r * F186A[221]) + (r * F186A[220]))) - +n.noise(x + ((r * F186A[222]) - (r * F186A[223])), z + ((r * F186A[223]) + (r * F186A[222]))) - +n.noise(x + ((r * F186A[224]) - (r * F186A[225])), z + ((r * F186A[225]) + (r * F186A[224]))) - +n.noise(x + ((r * F186A[226]) - (r * F186A[227])), z + ((r * F186A[227]) + (r * F186A[226]))) - +n.noise(x + ((r * F186A[228]) - (r * F186A[229])), z + ((r * F186A[229]) + (r * F186A[228]))) - +n.noise(x + ((r * F186A[230]) - (r * F186A[231])), z + ((r * F186A[231]) + (r * F186A[230]))) - +n.noise(x + ((r * F186A[232]) - (r * F186A[233])), z + ((r * F186A[233]) + (r * F186A[232]))) - +n.noise(x + ((r * F186A[234]) - (r * F186A[235])), z + ((r * F186A[235]) + (r * F186A[234]))) - +n.noise(x + ((r * F186A[236]) - (r * F186A[237])), z + ((r * F186A[237]) + (r * F186A[236]))) - +n.noise(x + ((r * F186A[238]) - (r * F186A[239])), z + ((r * F186A[239]) + (r * F186A[238]))) - +n.noise(x + ((r * F186A[240]) - (r * F186A[241])), z + ((r * F186A[241]) + (r * F186A[240]))) - +n.noise(x + ((r * F186A[242]) - (r * F186A[243])), z + ((r * F186A[243]) + (r * F186A[242]))) - +n.noise(x + ((r * F186A[244]) - (r * F186A[245])), z + ((r * F186A[245]) + (r * F186A[244]))) - +n.noise(x + ((r * F186A[246]) - (r * F186A[247])), z + ((r * F186A[247]) + (r * F186A[246]))) - +n.noise(x + ((r * F186A[248]) - (r * F186A[249])), z + ((r * F186A[249]) + (r * F186A[248]))) - +n.noise(x + ((r * F186A[250]) - (r * F186A[251])), z + ((r * F186A[251]) + (r * F186A[250]))) - +n.noise(x + ((r * F186A[252]) - (r * F186A[253])), z + ((r * F186A[253]) + (r * F186A[252]))) - +n.noise(x + ((r * F186A[254]) - (r * F186A[255])), z + ((r * F186A[255]) + (r * F186A[254]))) - +n.noise(x + ((r * F186A[256]) - (r * F186A[257])), z + ((r * F186A[257]) + (r * F186A[256]))) - +n.noise(x + ((r * F186A[258]) - (r * F186A[259])), z + ((r * F186A[259]) + (r * F186A[258]))) - +n.noise(x + ((r * F186A[260]) - (r * F186A[261])), z + ((r * F186A[261]) + (r * F186A[260]))) - +n.noise(x + ((r * F186A[262]) - (r * F186A[263])), z + ((r * F186A[263]) + (r * F186A[262]))) - +n.noise(x + ((r * F186A[264]) - (r * F186A[265])), z + ((r * F186A[265]) + (r * F186A[264]))) - +n.noise(x + ((r * F186A[266]) - (r * F186A[267])), z + ((r * F186A[267]) + (r * F186A[266]))) - +n.noise(x + ((r * F186A[268]) - (r * F186A[269])), z + ((r * F186A[269]) + (r * F186A[268]))) - +n.noise(x + ((r * F186A[270]) - (r * F186A[271])), z + ((r * F186A[271]) + (r * F186A[270]))) - +n.noise(x + ((r * F186A[272]) - (r * F186A[273])), z + ((r * F186A[273]) + (r * F186A[272]))) - +n.noise(x + ((r * F186A[274]) - (r * F186A[275])), z + ((r * F186A[275]) + (r * F186A[274]))) - +n.noise(x + ((r * F186A[276]) - (r * F186A[277])), z + ((r * F186A[277]) + (r * F186A[276]))) - +n.noise(x + ((r * F186A[278]) - (r * F186A[279])), z + ((r * F186A[279]) + (r * F186A[278]))) - +n.noise(x + ((r * F186A[280]) - (r * F186A[281])), z + ((r * F186A[281]) + (r * F186A[280]))) - +n.noise(x + ((r * F186A[282]) - (r * F186A[283])), z + ((r * F186A[283]) + (r * F186A[282]))) - +n.noise(x + ((r * F186A[284]) - (r * F186A[285])), z + ((r * F186A[285]) + (r * F186A[284]))) - +n.noise(x + ((r * F186A[286]) - (r * F186A[287])), z + ((r * F186A[287]) + (r * F186A[286]))) - +n.noise(x + ((r * F186A[288]) - (r * F186A[289])), z + ((r * F186A[289]) + (r * F186A[288]))) - +n.noise(x + ((r * F186A[290]) - (r * F186A[291])), z + ((r * F186A[291]) + (r * F186A[290]))) - +n.noise(x + ((r * F186A[292]) - (r * F186A[293])), z + ((r * F186A[293]) + (r * F186A[292]))) - +n.noise(x + ((r * F186A[294]) - (r * F186A[295])), z + ((r * F186A[295]) + (r * F186A[294]))) - +n.noise(x + ((r * F186A[296]) - (r * F186A[297])), z + ((r * F186A[297]) + (r * F186A[296]))) - +n.noise(x + ((r * F186A[298]) - (r * F186A[299])), z + ((r * F186A[299]) + (r * F186A[298]))) - +n.noise(x + ((r * F186A[300]) - (r * F186A[301])), z + ((r * F186A[301]) + (r * F186A[300]))) - +n.noise(x + ((r * F186A[302]) - (r * F186A[303])), z + ((r * F186A[303]) + (r * F186A[302]))) - +n.noise(x + ((r * F186A[304]) - (r * F186A[305])), z + ((r * F186A[305]) + (r * F186A[304]))) - +n.noise(x + ((r * F186A[306]) - (r * F186A[307])), z + ((r * F186A[307]) + (r * F186A[306]))) - +n.noise(x + ((r * F186A[308]) - (r * F186A[309])), z + ((r * F186A[309]) + (r * F186A[308]))) - +n.noise(x + ((r * F186A[310]) - (r * F186A[311])), z + ((r * F186A[311]) + (r * F186A[310]))) - +n.noise(x + ((r * F186A[312]) - (r * F186A[313])), z + ((r * F186A[313]) + (r * F186A[312]))) - +n.noise(x + ((r * F186A[314]) - (r * F186A[315])), z + ((r * F186A[315]) + (r * F186A[314]))) - +n.noise(x + ((r * F186A[316]) - (r * F186A[317])), z + ((r * F186A[317]) + (r * F186A[316]))) - +n.noise(x + ((r * F186A[318]) - (r * F186A[319])), z + ((r * F186A[319]) + (r * F186A[318]))) - +n.noise(x + ((r * F186A[320]) - (r * F186A[321])), z + ((r * F186A[321]) + (r * F186A[320]))) - +n.noise(x + ((r * F186A[322]) - (r * F186A[323])), z + ((r * F186A[323]) + (r * F186A[322]))) - +n.noise(x + ((r * F186A[324]) - (r * F186A[325])), z + ((r * F186A[325]) + (r * F186A[324]))) - +n.noise(x + ((r * F186A[326]) - (r * F186A[327])), z + ((r * F186A[327]) + (r * F186A[326]))) - +n.noise(x + ((r * F186A[328]) - (r * F186A[329])), z + ((r * F186A[329]) + (r * F186A[328]))) - +n.noise(x + ((r * F186A[330]) - (r * F186A[331])), z + ((r * F186A[331]) + (r * F186A[330]))) - +n.noise(x + ((r * F186A[332]) - (r * F186A[333])), z + ((r * F186A[333]) + (r * F186A[332]))) - +n.noise(x + ((r * F186A[334]) - (r * F186A[335])), z + ((r * F186A[335]) + (r * F186A[334]))) - +n.noise(x + ((r * F186A[336]) - (r * F186A[337])), z + ((r * F186A[337]) + (r * F186A[336]))) - +n.noise(x + ((r * F186A[338]) - (r * F186A[339])), z + ((r * F186A[339]) + (r * F186A[338]))) - +n.noise(x + ((r * F186A[340]) - (r * F186A[341])), z + ((r * F186A[341]) + (r * F186A[340]))) - +n.noise(x + ((r * F186A[342]) - (r * F186A[343])), z + ((r * F186A[343]) + (r * F186A[342]))) - +n.noise(x + ((r * F186A[344]) - (r * F186A[345])), z + ((r * F186A[345]) + (r * F186A[344]))) - +n.noise(x + ((r * F186A[346]) - (r * F186A[347])), z + ((r * F186A[347]) + (r * F186A[346]))) - +n.noise(x + ((r * F186A[348]) - (r * F186A[349])), z + ((r * F186A[349]) + (r * F186A[348]))) - +n.noise(x + ((r * F186A[350]) - (r * F186A[351])), z + ((r * F186A[351]) + (r * F186A[350]))) - +n.noise(x + ((r * F186A[352]) - (r * F186A[353])), z + ((r * F186A[353]) + (r * F186A[352]))) - +n.noise(x + ((r * F186A[354]) - (r * F186A[355])), z + ((r * F186A[355]) + (r * F186A[354]))) - +n.noise(x + ((r * F186A[356]) - (r * F186A[357])), z + ((r * F186A[357]) + (r * F186A[356]))) - +n.noise(x + ((r * F186A[358]) - (r * F186A[359])), z + ((r * F186A[359]) + (r * F186A[358]))) - +n.noise(x + ((r * F186A[360]) - (r * F186A[361])), z + ((r * F186A[361]) + (r * F186A[360]))) - +n.noise(x + ((r * F186A[362]) - (r * F186A[363])), z + ((r * F186A[363]) + (r * F186A[362]))) - +n.noise(x + ((r * F186A[364]) - (r * F186A[365])), z + ((r * F186A[365]) + (r * F186A[364]))) - +n.noise(x + ((r * F186A[366]) - (r * F186A[367])), z + ((r * F186A[367]) + (r * F186A[366]))) - +n.noise(x + ((r * F186A[368]) - (r * F186A[369])), z + ((r * F186A[369]) + (r * F186A[368]))) - +n.noise(x + ((r * F186A[370]) - (r * F186A[371])), z + ((r * F186A[371]) + (r * F186A[370]))) - +n.noise(x + ((r * F186A[372]) - (r * F186A[373])), z + ((r * F186A[373]) + (r * F186A[372]))) - +n.noise(x + ((r * F186A[374]) - (r * F186A[375])), z + ((r * F186A[375]) + (r * F186A[374]))) - +n.noise(x + ((r * F186A[376]) - (r * F186A[377])), z + ((r * F186A[377]) + (r * F186A[376]))) - +n.noise(x + ((r * F186A[378]) - (r * F186A[379])), z + ((r * F186A[379]) + (r * F186A[378]))) - +n.noise(x + ((r * F186A[380]) - (r * F186A[381])), z + ((r * F186A[381]) + (r * F186A[380]))) - +n.noise(x + ((r * F186A[382]) - (r * F186A[383])), z + ((r * F186A[383]) + (r * F186A[382]))) - +n.noise(x + ((r * F186A[384]) - (r * F186A[385])), z + ((r * F186A[385]) + (r * F186A[384]))) - +n.noise(x + ((r * F186A[386]) - (r * F186A[387])), z + ((r * F186A[387]) + (r * F186A[386]))) - +n.noise(x + ((r * F186A[388]) - (r * F186A[389])), z + ((r * F186A[389]) + (r * F186A[388]))) - +n.noise(x + ((r * F186A[390]) - (r * F186A[391])), z + ((r * F186A[391]) + (r * F186A[390]))) - +n.noise(x + ((r * F186A[392]) - (r * F186A[393])), z + ((r * F186A[393]) + (r * F186A[392]))) - +n.noise(x + ((r * F186A[394]) - (r * F186A[395])), z + ((r * F186A[395]) + (r * F186A[394]))) - +n.noise(x + ((r * F186A[396]) - (r * F186A[397])), z + ((r * F186A[397]) + (r * F186A[396]))) - +n.noise(x + ((r * F186A[398]) - (r * F186A[399])), z + ((r * F186A[399]) + (r * F186A[398]))) - +n.noise(x + ((r * F186A[400]) - (r * F186A[401])), z + ((r * F186A[401]) + (r * F186A[400]))) - +n.noise(x + ((r * F186A[402]) - (r * F186A[403])), z + ((r * F186A[403]) + (r * F186A[402]))) - +n.noise(x + ((r * F186A[404]) - (r * F186A[405])), z + ((r * F186A[405]) + (r * F186A[404]))) - +n.noise(x + ((r * F186A[406]) - (r * F186A[407])), z + ((r * F186A[407]) + (r * F186A[406]))) - +n.noise(x + ((r * F186A[408]) - (r * F186A[409])), z + ((r * F186A[409]) + (r * F186A[408]))) - +n.noise(x + ((r * F186A[410]) - (r * F186A[411])), z + ((r * F186A[411]) + (r * F186A[410]))) - +n.noise(x + ((r * F186A[412]) - (r * F186A[413])), z + ((r * F186A[413]) + (r * F186A[412]))) - +n.noise(x + ((r * F186A[414]) - (r * F186A[415])), z + ((r * F186A[415]) + (r * F186A[414]))) - +n.noise(x + ((r * F186A[416]) - (r * F186A[417])), z + ((r * F186A[417]) + (r * F186A[416]))) - +n.noise(x + ((r * F186A[418]) - (r * F186A[419])), z + ((r * F186A[419]) + (r * F186A[418]))) - +n.noise(x + ((r * F186A[420]) - (r * F186A[421])), z + ((r * F186A[421]) + (r * F186A[420]))) - +n.noise(x + ((r * F186A[422]) - (r * F186A[423])), z + ((r * F186A[423]) + (r * F186A[422]))) - +n.noise(x + ((r * F186A[424]) - (r * F186A[425])), z + ((r * F186A[425]) + (r * F186A[424]))) - +n.noise(x + ((r * F186A[426]) - (r * F186A[427])), z + ((r * F186A[427]) + (r * F186A[426]))) - +n.noise(x + ((r * F186A[428]) - (r * F186A[429])), z + ((r * F186A[429]) + (r * F186A[428]))) - +n.noise(x + ((r * F186A[430]) - (r * F186A[431])), z + ((r * F186A[431]) + (r * F186A[430]))) - +n.noise(x + ((r * F186A[432]) - (r * F186A[433])), z + ((r * F186A[433]) + (r * F186A[432]))) - +n.noise(x + ((r * F186A[434]) - (r * F186A[435])), z + ((r * F186A[435]) + (r * F186A[434]))) - +n.noise(x + ((r * F186A[436]) - (r * F186A[437])), z + ((r * F186A[437]) + (r * F186A[436]))) - +n.noise(x + ((r * F186A[438]) - (r * F186A[439])), z + ((r * F186A[439]) + (r * F186A[438]))) - +n.noise(x + ((r * F186A[440]) - (r * F186A[441])), z + ((r * F186A[441]) + (r * F186A[440]))) - +n.noise(x + ((r * F186A[442]) - (r * F186A[443])), z + ((r * F186A[443]) + (r * F186A[442]))) - +n.noise(x + ((r * F186A[444]) - (r * F186A[445])), z + ((r * F186A[445]) + (r * F186A[444]))) - +n.noise(x + ((r * F186A[446]) - (r * F186A[447])), z + ((r * F186A[447]) + (r * F186A[446]))) - +n.noise(x + ((r * F186A[448]) - (r * F186A[449])), z + ((r * F186A[449]) + (r * F186A[448]))) - +n.noise(x + ((r * F186A[450]) - (r * F186A[451])), z + ((r * F186A[451]) + (r * F186A[450]))) - +n.noise(x + ((r * F186A[452]) - (r * F186A[453])), z + ((r * F186A[453]) + (r * F186A[452]))) - +n.noise(x + ((r * F186A[454]) - (r * F186A[455])), z + ((r * F186A[455]) + (r * F186A[454]))) - +n.noise(x + ((r * F186A[456]) - (r * F186A[457])), z + ((r * F186A[457]) + (r * F186A[456]))) - +n.noise(x + ((r * F186A[458]) - (r * F186A[459])), z + ((r * F186A[459]) + (r * F186A[458]))) - +n.noise(x + ((r * F186A[460]) - (r * F186A[461])), z + ((r * F186A[461]) + (r * F186A[460]))) - +n.noise(x + ((r * F186A[462]) - (r * F186A[463])), z + ((r * F186A[463]) + (r * F186A[462]))) - +n.noise(x + ((r * F186A[464]) - (r * F186A[465])), z + ((r * F186A[465]) + (r * F186A[464]))) - +n.noise(x + ((r * F186A[466]) - (r * F186A[467])), z + ((r * F186A[467]) + (r * F186A[466]))) - +n.noise(x + ((r * F186A[468]) - (r * F186A[469])), z + ((r * F186A[469]) + (r * F186A[468]))) - +n.noise(x + ((r * F186A[470]) - (r * F186A[471])), z + ((r * F186A[471]) + (r * F186A[470]))) - +n.noise(x + ((r * F186A[472]) - (r * F186A[473])), z + ((r * F186A[473]) + (r * F186A[472]))) - +n.noise(x + ((r * F186A[474]) - (r * F186A[475])), z + ((r * F186A[475]) + (r * F186A[474]))) - +n.noise(x + ((r * F186A[476]) - (r * F186A[477])), z + ((r * F186A[477]) + (r * F186A[476]))) - +n.noise(x + ((r * F186A[478]) - (r * F186A[479])), z + ((r * F186A[479]) + (r * F186A[478]))) - +n.noise(x + ((r * F186A[480]) - (r * F186A[481])), z + ((r * F186A[481]) + (r * F186A[480]))) - +n.noise(x + ((r * F186A[482]) - (r * F186A[483])), z + ((r * F186A[483]) + (r * F186A[482]))) - +n.noise(x + ((r * F186A[484]) - (r * F186A[485])), z + ((r * F186A[485]) + (r * F186A[484]))) - +n.noise(x + ((r * F186A[486]) - (r * F186A[487])), z + ((r * F186A[487]) + (r * F186A[486]))) - +n.noise(x + ((r * F186A[488]) - (r * F186A[489])), z + ((r * F186A[489]) + (r * F186A[488]))) - +n.noise(x + ((r * F186A[490]) - (r * F186A[491])), z + ((r * F186A[491]) + (r * F186A[490]))) - +n.noise(x + ((r * F186A[492]) - (r * F186A[493])), z + ((r * F186A[493]) + (r * F186A[492]))) - +n.noise(x + ((r * F186A[494]) - (r * F186A[495])), z + ((r * F186A[495]) + (r * F186A[494]))) - +n.noise(x + ((r * F186A[496]) - (r * F186A[497])), z + ((r * F186A[497]) + (r * F186A[496]))) - +n.noise(x + ((r * F186A[498]) - (r * F186A[499])), z + ((r * F186A[499]) + (r * F186A[498]))) - +n.noise(x + ((r * F186A[500]) - (r * F186A[501])), z + ((r * F186A[501]) + (r * F186A[500]))) - +n.noise(x + ((r * F186A[502]) - (r * F186A[503])), z + ((r * F186A[503]) + (r * F186A[502]))) - +n.noise(x + ((r * F186A[504]) - (r * F186A[505])), z + ((r * F186A[505]) + (r * F186A[504]))) - +n.noise(x + ((r * F186A[506]) - (r * F186A[507])), z + ((r * F186A[507]) + (r * F186A[506]))) - +n.noise(x + ((r * F186A[508]) - (r * F186A[509])), z + ((r * F186A[509]) + (r * F186A[508]))) - +n.noise(x + ((r * F186A[510]) - (r * F186A[511])), z + ((r * F186A[511]) + (r * F186A[510]))) - +n.noise(x + ((r * F186A[512]) - (r * F186A[513])), z + ((r * F186A[513]) + (r * F186A[512]))) - +n.noise(x + ((r * F186A[514]) - (r * F186A[515])), z + ((r * F186A[515]) + (r * F186A[514]))) - +n.noise(x + ((r * F186A[516]) - (r * F186A[517])), z + ((r * F186A[517]) + (r * F186A[516]))) - +n.noise(x + ((r * F186A[518]) - (r * F186A[519])), z + ((r * F186A[519]) + (r * F186A[518]))) - +n.noise(x + ((r * F186A[520]) - (r * F186A[521])), z + ((r * F186A[521]) + (r * F186A[520]))) - +n.noise(x + ((r * F186A[522]) - (r * F186A[523])), z + ((r * F186A[523]) + (r * F186A[522]))) - +n.noise(x + ((r * F186A[524]) - (r * F186A[525])), z + ((r * F186A[525]) + (r * F186A[524]))) - +n.noise(x + ((r * F186A[526]) - (r * F186A[527])), z + ((r * F186A[527]) + (r * F186A[526]))) - +n.noise(x + ((r * F186A[528]) - (r * F186A[529])), z + ((r * F186A[529]) + (r * F186A[528]))) - +n.noise(x + ((r * F186A[530]) - (r * F186A[531])), z + ((r * F186A[531]) + (r * F186A[530]))) - +n.noise(x + ((r * F186A[532]) - (r * F186A[533])), z + ((r * F186A[533]) + (r * F186A[532]))) - +n.noise(x + ((r * F186A[534]) - (r * F186A[535])), z + ((r * F186A[535]) + (r * F186A[534]))) - +n.noise(x + ((r * F186A[536]) - (r * F186A[537])), z + ((r * F186A[537]) + (r * F186A[536]))) - +n.noise(x + ((r * F186A[538]) - (r * F186A[539])), z + ((r * F186A[539]) + (r * F186A[538]))) - +n.noise(x + ((r * F186A[540]) - (r * F186A[541])), z + ((r * F186A[541]) + (r * F186A[540]))) - +n.noise(x + ((r * F186A[542]) - (r * F186A[543])), z + ((r * F186A[543]) + (r * F186A[542]))) - +n.noise(x + ((r * F186A[544]) - (r * F186A[545])), z + ((r * F186A[545]) + (r * F186A[544]))) - +n.noise(x + ((r * F186A[546]) - (r * F186A[547])), z + ((r * F186A[547]) + (r * F186A[546]))) - +n.noise(x + ((r * F186A[548]) - (r * F186A[549])), z + ((r * F186A[549]) + (r * F186A[548]))) - +n.noise(x + ((r * F186A[550]) - (r * F186A[551])), z + ((r * F186A[551]) + (r * F186A[550]))) - +n.noise(x + ((r * F186A[552]) - (r * F186A[553])), z + ((r * F186A[553]) + (r * F186A[552]))) - +n.noise(x + ((r * F186A[554]) - (r * F186A[555])), z + ((r * F186A[555]) + (r * F186A[554]))) - +n.noise(x + ((r * F186A[556]) - (r * F186A[557])), z + ((r * F186A[557]) + (r * F186A[556]))) - +n.noise(x + ((r * F186A[558]) - (r * F186A[559])), z + ((r * F186A[559]) + (r * F186A[558]))) - +n.noise(x + ((r * F186A[560]) - (r * F186A[561])), z + ((r * F186A[561]) + (r * F186A[560]))) - +n.noise(x + ((r * F186A[562]) - (r * F186A[563])), z + ((r * F186A[563]) + (r * F186A[562]))) - +n.noise(x + ((r * F186A[564]) - (r * F186A[565])), z + ((r * F186A[565]) + (r * F186A[564]))) - +n.noise(x + ((r * F186A[566]) - (r * F186A[567])), z + ((r * F186A[567]) + (r * F186A[566]))) - +n.noise(x + ((r * F186A[568]) - (r * F186A[569])), z + ((r * F186A[569]) + (r * F186A[568]))) - +n.noise(x + ((r * F186A[570]) - (r * F186A[571])), z + ((r * F186A[571]) + (r * F186A[570]))) - +n.noise(x + ((r * F186A[572]) - (r * F186A[573])), z + ((r * F186A[573]) + (r * F186A[572]))) - +n.noise(x + ((r * F186A[574]) - (r * F186A[575])), z + ((r * F186A[575]) + (r * F186A[574]))) - +n.noise(x + ((r * F186A[576]) - (r * F186A[577])), z + ((r * F186A[577]) + (r * F186A[576]))) - +n.noise(x + ((r * F186A[578]) - (r * F186A[579])), z + ((r * F186A[579]) + (r * F186A[578]))) - +n.noise(x + ((r * F186A[580]) - (r * F186A[581])), z + ((r * F186A[581]) + (r * F186A[580]))) - +n.noise(x + ((r * F186A[582]) - (r * F186A[583])), z + ((r * F186A[583]) + (r * F186A[582]))) - +n.noise(x + ((r * F186A[584]) - (r * F186A[585])), z + ((r * F186A[585]) + (r * F186A[584]))) - +n.noise(x + ((r * F186A[586]) - (r * F186A[587])), z + ((r * F186A[587]) + (r * F186A[586]))) - +n.noise(x + ((r * F186A[588]) - (r * F186A[589])), z + ((r * F186A[589]) + (r * F186A[588]))) - +n.noise(x + ((r * F186A[590]) - (r * F186A[591])), z + ((r * F186A[591]) + (r * F186A[590]))) - +n.noise(x + ((r * F186A[592]) - (r * F186A[593])), z + ((r * F186A[593]) + (r * F186A[592]))) - +n.noise(x + ((r * F186A[594]) - (r * F186A[595])), z + ((r * F186A[595]) + (r * F186A[594]))) - +n.noise(x + ((r * F186A[596]) - (r * F186A[597])), z + ((r * F186A[597]) + (r * F186A[596]))) - +n.noise(x + ((r * F186A[598]) - (r * F186A[599])), z + ((r * F186A[599]) + (r * F186A[598]))) - +n.noise(x + ((r * F186A[600]) - (r * F186A[601])), z + ((r * F186A[601]) + (r * F186A[600]))) - +n.noise(x + ((r * F186A[602]) - (r * F186A[603])), z + ((r * F186A[603]) + (r * F186A[602]))) - +n.noise(x + ((r * F186A[604]) - (r * F186A[605])), z + ((r * F186A[605]) + (r * F186A[604]))) - +n.noise(x + ((r * F186A[606]) - (r * F186A[607])), z + ((r * F186A[607]) + (r * F186A[606]))) - +n.noise(x + ((r * F186A[608]) - (r * F186A[609])), z + ((r * F186A[609]) + (r * F186A[608]))) - +n.noise(x + ((r * F186A[610]) - (r * F186A[611])), z + ((r * F186A[611]) + (r * F186A[610]))) - +n.noise(x + ((r * F186A[612]) - (r * F186A[613])), z + ((r * F186A[613]) + (r * F186A[612]))) - +n.noise(x + ((r * F186A[614]) - (r * F186A[615])), z + ((r * F186A[615]) + (r * F186A[614]))) - +n.noise(x + ((r * F186A[616]) - (r * F186A[617])), z + ((r * F186A[617]) + (r * F186A[616]))) - +n.noise(x + ((r * F186A[618]) - (r * F186A[619])), z + ((r * F186A[619]) + (r * F186A[618]))) - +n.noise(x + ((r * F186A[620]) - (r * F186A[621])), z + ((r * F186A[621]) + (r * F186A[620]))) - +n.noise(x + ((r * F186A[622]) - (r * F186A[623])), z + ((r * F186A[623]) + (r * F186A[622]))) - +n.noise(x + ((r * F186A[624]) - (r * F186A[625])), z + ((r * F186A[625]) + (r * F186A[624]))) - +n.noise(x + ((r * F186A[626]) - (r * F186A[627])), z + ((r * F186A[627]) + (r * F186A[626]))) - +n.noise(x + ((r * F186A[628]) - (r * F186A[629])), z + ((r * F186A[629]) + (r * F186A[628]))) - +n.noise(x + ((r * F186A[630]) - (r * F186A[631])), z + ((r * F186A[631]) + (r * F186A[630]))) - +n.noise(x + ((r * F186A[632]) - (r * F186A[633])), z + ((r * F186A[633]) + (r * F186A[632]))) - +n.noise(x + ((r * F186A[634]) - (r * F186A[635])), z + ((r * F186A[635]) + (r * F186A[634]))) - +n.noise(x + ((r * F186A[636]) - (r * F186A[637])), z + ((r * F186A[637]) + (r * F186A[636]))) - +n.noise(x + ((r * F186A[638]) - (r * F186A[639])), z + ((r * F186A[639]) + (r * F186A[638]))) - +n.noise(x + ((r * F186A[640]) - (r * F186A[641])), z + ((r * F186A[641]) + (r * F186A[640]))) - +n.noise(x + ((r * F186A[642]) - (r * F186A[643])), z + ((r * F186A[643]) + (r * F186A[642]))) - +n.noise(x + ((r * F186A[644]) - (r * F186A[645])), z + ((r * F186A[645]) + (r * F186A[644]))) - +n.noise(x + ((r * F186A[646]) - (r * F186A[647])), z + ((r * F186A[647]) + (r * F186A[646]))) - +n.noise(x + ((r * F186A[648]) - (r * F186A[649])), z + ((r * F186A[649]) + (r * F186A[648]))) - +n.noise(x + ((r * F186A[650]) - (r * F186A[651])), z + ((r * F186A[651]) + (r * F186A[650]))) - +n.noise(x + ((r * F186A[652]) - (r * F186A[653])), z + ((r * F186A[653]) + (r * F186A[652]))) - +n.noise(x + ((r * F186A[654]) - (r * F186A[655])), z + ((r * F186A[655]) + (r * F186A[654]))) - +n.noise(x + ((r * F186A[656]) - (r * F186A[657])), z + ((r * F186A[657]) + (r * F186A[656]))) - +n.noise(x + ((r * F186A[658]) - (r * F186A[659])), z + ((r * F186A[659]) + (r * F186A[658]))) - +n.noise(x + ((r * F186A[660]) - (r * F186A[661])), z + ((r * F186A[661]) + (r * F186A[660]))) - +n.noise(x + ((r * F186A[662]) - (r * F186A[663])), z + ((r * F186A[663]) + (r * F186A[662]))) - +n.noise(x + ((r * F186A[664]) - (r * F186A[665])), z + ((r * F186A[665]) + (r * F186A[664]))) - +n.noise(x + ((r * F186A[666]) - (r * F186A[667])), z + ((r * F186A[667]) + (r * F186A[666]))) - +n.noise(x + ((r * F186A[668]) - (r * F186A[669])), z + ((r * F186A[669]) + (r * F186A[668]))) - +n.noise(x + ((r * F186A[670]) - (r * F186A[671])), z + ((r * F186A[671]) + (r * F186A[670]))) - +n.noise(x + ((r * F186A[672]) - (r * F186A[673])), z + ((r * F186A[673]) + (r * F186A[672]))) - +n.noise(x + ((r * F186A[674]) - (r * F186A[675])), z + ((r * F186A[675]) + (r * F186A[674]))) - +n.noise(x + ((r * F186A[676]) - (r * F186A[677])), z + ((r * F186A[677]) + (r * F186A[676]))) - +n.noise(x + ((r * F186A[678]) - (r * F186A[679])), z + ((r * F186A[679]) + (r * F186A[678]))) - +n.noise(x + ((r * F186A[680]) - (r * F186A[681])), z + ((r * F186A[681]) + (r * F186A[680]))) - +n.noise(x + ((r * F186A[682]) - (r * F186A[683])), z + ((r * F186A[683]) + (r * F186A[682]))) - +n.noise(x + ((r * F186A[684]) - (r * F186A[685])), z + ((r * F186A[685]) + (r * F186A[684]))) - +n.noise(x + ((r * F186A[686]) - (r * F186A[687])), z + ((r * F186A[687]) + (r * F186A[686]))) - +n.noise(x + ((r * F186A[688]) - (r * F186A[689])), z + ((r * F186A[689]) + (r * F186A[688]))) - +n.noise(x + ((r * F186A[690]) - (r * F186A[691])), z + ((r * F186A[691]) + (r * F186A[690]))) - +n.noise(x + ((r * F186A[692]) - (r * F186A[693])), z + ((r * F186A[693]) + (r * F186A[692]))) - +n.noise(x + ((r * F186A[694]) - (r * F186A[695])), z + ((r * F186A[695]) + (r * F186A[694]))) - +n.noise(x + ((r * F186A[696]) - (r * F186A[697])), z + ((r * F186A[697]) + (r * F186A[696]))) - +n.noise(x + ((r * F186A[698]) - (r * F186A[699])), z + ((r * F186A[699]) + (r * F186A[698]))) - +n.noise(x + ((r * F186A[700]) - (r * F186A[701])), z + ((r * F186A[701]) + (r * F186A[700]))) - +n.noise(x + ((r * F186A[702]) - (r * F186A[703])), z + ((r * F186A[703]) + (r * F186A[702]))) - +n.noise(x + ((r * F186A[704]) - (r * F186A[705])), z + ((r * F186A[705]) + (r * F186A[704]))) - +n.noise(x + ((r * F186A[706]) - (r * F186A[707])), z + ((r * F186A[707]) + (r * F186A[706]))) - +n.noise(x + ((r * F186A[708]) - (r * F186A[709])), z + ((r * F186A[709]) + (r * F186A[708]))) - +n.noise(x + ((r * F186A[710]) - (r * F186A[711])), z + ((r * F186A[711]) + (r * F186A[710]))) - +n.noise(x + ((r * F186A[712]) - (r * F186A[713])), z + ((r * F186A[713]) + (r * F186A[712]))) - +n.noise(x + ((r * F186A[714]) - (r * F186A[715])), z + ((r * F186A[715]) + (r * F186A[714]))) - +n.noise(x + ((r * F186A[716]) - (r * F186A[717])), z + ((r * F186A[717]) + (r * F186A[716]))) - +n.noise(x + ((r * F186A[718]) - (r * F186A[719])), z + ((r * F186A[719]) + (r * F186A[718]))))/186.0D; - } - private static final double[] F256A = {1,0,0.9998476951563912695775115935248322784900665283203125,0.017452406437283511653202339175550150685012340545654296875,0.99939082701909576211818375668372027575969696044921875,0.034899496702500969191884649944768170826137065887451171875, - 0.99862953475457383323288240717374719679355621337890625,0.05233595624294383463759317010044469498097896575927734375,0.9975640502598241976528470331686548888683319091796875,0.06975647374412530243859009715379215776920318603515625,0.9961946980917455451987052583717741072177886962890625,0.0871557427476581658698506771543179638683795928955078125, - 0.9945218953682732898613494398887269198894500732421875,0.104528463267653470847307062285835854709148406982421875,0.99254615164132198312785249072476290166378021240234375,0.12186934340514747610040302561174030415713787078857421875,0.9902680687415703619791429446195252239704132080078125,0.1391731009600654378477457839835551567375659942626953125, - 0.987688340595137770350220307591371238231658935546875,0.1564344650402308689596253543641068972647190093994140625,0.98480775301220802031565426659653894603252410888671875,0.1736481776669303311866343619840336032211780548095703125,0.9816271834476639757127713892259635031223297119140625,0.1908089953765448043565555735767702572047710418701171875, - 0.9781476007338056888329447247087955474853515625,0.207911690817759342575499204031075350940227508544921875,0.97437006478523524588553073044749908149242401123046875,0.2249510543438650034264725263710715807974338531494140625,0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625, - 0.96592582628906831221371476203785277903079986572265625,0.25881904510252073947640383266843855381011962890625,0.9612616959383188941501430235803127288818359375,0.275637355816999163327096766806789673864841461181640625,0.95630475596303543550646963922190479934215545654296875,0.292371704722736769355151409399695694446563720703125, - 0.95105651629515353118193843329208903014659881591796875,0.309016994374947395751718204337521456182003021240234375,0.94551857559931684615861513520940206944942474365234375,0.3255681544571566998769185374840162694454193115234375,0.939692620785908427905042117345146834850311279296875,0.342020143325668712908083080037613399326801300048828125, - 0.93358042649720174299687869279296137392520904541015625,0.3583679495453002683547083506709896028041839599609375,0.92718385456678742428948680753819644451141357421875,0.374606593415912014766178117497474886476993560791015625,0.92050485345244037471701403774204663932323455810546875,0.390731128489273771275946955938707105815410614013671875, - 0.91354545764260086659902526662335731089115142822265625,0.406736643075800208269043878317461349070072174072265625,0.90630778703664993667388216636027209460735321044921875,0.422618261740699441286750470680999569594860076904296875,0.8987940462991670376169395240140147507190704345703125,0.438371146789077403838064128649421036243438720703125, - 0.89100652418836789880884907688596285879611968994140625,0.453990499739546748969587497413158416748046875,0.88294759285892698841280434862710535526275634765625,0.469471562785890805802324621254228986799716949462890625,0.8746197071393957411800101908738724887371063232421875,0.484809620246337058535601727271568961441516876220703125, - 0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,0.8571673007021123336102164103067480027675628662109375,0.51503807491005415553075863499543629586696624755859375,0.84804809615642595677087456351728178560733795166015625,0.5299192642332049008047079041716642677783966064453125, - 0.838670567945424050293468098971061408519744873046875,0.54463903501502708426329490976058878004550933837890625,0.829037572555041624156046964344568550586700439453125,0.55919290347074690483708536703488789498805999755859375,0.81915204428899179855960710483486764132976531982421875,0.57357643635104604840080355643294751644134521484375, - 0.80901699437494745126286943559534847736358642578125,0.5877852522924731371034567928290925920009613037109375,0.798635510047292829227671973058022558689117431640625,0.6018150231520482673630567660438828170299530029296875,0.78801075360672190317501417666790075600147247314453125,0.61566147532565829170181359586422331631183624267578125, - 0.77714596145697090179282895405776798725128173828125,0.62932039104983739097320949440472759306430816650390625,0.76604444311897801345168090847437269985675811767578125,0.642787609686539251896419955301098525524139404296875,0.75470958022277201404648394600371830165386199951171875,0.656059028990507275835852851741947233676910400390625, - 0.7431448254773942441175904605188407003879547119140625,0.66913060635885823757007528911344707012176513671875,0.7313537016191704598355727284797467291355133056640625,0.68199836006249847653037932104780338704586029052734375,0.71933980033865119185776393351261503994464874267578125,0.6946583704589972541043607634492218494415283203125, - 0.70710678118654757273731092936941422522068023681640625,0.707106781186547461715008466853760182857513427734375,0.6946583704589972541043607634492218494415283203125,0.71933980033865108083546147099696099758148193359375,0.68199836006249847653037932104780338704586029052734375,0.7313537016191704598355727284797467291355133056640625, - 0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,0.656059028990507275835852851741947233676910400390625,0.75470958022277201404648394600371830165386199951171875,0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125, - 0.6293203910498375019955119569203816354274749755859375,0.77714596145697090179282895405776798725128173828125,0.61566147532565829170181359586422331631183624267578125,0.7880107536067220141973166391835547983646392822265625,0.60181502315204837838535922855953685939311981201171875,0.798635510047292829227671973058022558689117431640625, - 0.5877852522924731371034567928290925920009613037109375,0.80901699437494745126286943559534847736358642578125,0.57357643635104615942310601894860155880451202392578125,0.81915204428899179855960710483486764132976531982421875,0.5591929034707467938147829045192338526248931884765625,0.82903757255504173517834942686022259294986724853515625, - 0.54463903501502708426329490976058878004550933837890625,0.838670567945424050293468098971061408519744873046875,0.5299192642332049008047079041716642677783966064453125,0.84804809615642595677087456351728178560733795166015625,0.51503807491005415553075863499543629586696624755859375,0.8571673007021123336102164103067480027675628662109375, - 0.50000000000000011102230246251565404236316680908203125,0.8660254037844385965883020617184229195117950439453125,0.48480962024633711404675295852939598262310028076171875,0.8746197071393957411800101908738724887371063232421875,0.46947156278589086131347585251205600798130035400390625,0.88294759285892687739050188611145131289958953857421875, - 0.453990499739546804480738728670985437929630279541015625,0.891006524188367787786546614370308816432952880859375,0.438371146789077459349215359907248057425022125244140625,0.8987940462991670376169395240140147507190704345703125,0.422618261740699441286750470680999569594860076904296875,0.90630778703664993667388216636027209460735321044921875, - 0.406736643075800208269043878317461349070072174072265625,0.91354545764260086659902526662335731089115142822265625,0.39073112848927371576479572468088008463382720947265625,0.92050485345244037471701403774204663932323455810546875,0.37460659341591195925502688623964786529541015625,0.92718385456678742428948680753819644451141357421875, - 0.35836794954530037937701081318664364516735076904296875,0.93358042649720174299687869279296137392520904541015625,0.342020143325668823930385542553267441689968109130859375,0.93969262078590831688273965482949279248714447021484375,0.325568154457156755388069768741843290627002716064453125,0.9455185755993167351363126726937480270862579345703125, - 0.30901699437494745126286943559534847736358642578125,0.95105651629515353118193843329208903014659881591796875,0.292371704722736769355151409399695694446563720703125,0.95630475596303543550646963922190479934215545654296875,0.275637355816999163327096766806789673864841461181640625,0.9612616959383188941501430235803127288818359375, - 0.25881904510252073947640383266843855381011962890625,0.96592582628906831221371476203785277903079986572265625,0.2419218955996676745368034744387841783463954925537109375,0.97029572627599647294260876151383854448795318603515625,0.224951054343864920159745679484331049025058746337890625,0.97437006478523524588553073044749908149242401123046875, - 0.207911690817759453597801666546729393303394317626953125,0.97814760073380557781064226219314150512218475341796875,0.1908089953765449153788580360924242995679378509521484375,0.9816271834476639757127713892259635031223297119140625,0.17364817766693041445336120887077413499355316162109375,0.98480775301220802031565426659653894603252410888671875, - 0.1564344650402309244707765856219339184463024139404296875,0.987688340595137770350220307591371238231658935546875,0.139173100960065465603321399612468667328357696533203125,0.9902680687415703619791429446195252239704132080078125,0.121869343405147489978190833426197059452533721923828125,0.99254615164132198312785249072476290166378021240234375, - 0.10452846326765345696951925447137909941375255584716796875,0.9945218953682732898613494398887269198894500732421875,0.087155742747658138114275061525404453277587890625,0.9961946980917455451987052583717741072177886962890625,0.06975647374412523304965105808150838129222393035888671875,0.9975640502598241976528470331686548888683319091796875, - 0.052335956242943966476577344337783870287239551544189453125,0.99862953475457383323288240717374719679355621337890625,0.034899496702501080214187112460422213189303874969482421875,0.99939082701909576211818375668372027575969696044921875,0.0174524064372835983893761380159048712812364101409912109375,0.9998476951563912695775115935248322784900665283203125, - 0.0000000000000000612323399573676603586882014729198302312846062338790031898128063403419218957424163818359375,1,-0.01745240643728347695873281963940826244652271270751953125,0.9998476951563912695775115935248322784900665283203125,-0.034899496702500955314096842130311415530741214752197265625,0.99939082701909576211818375668372027575969696044921875, - -0.052335956242943841576487074007673072628676891326904296875,0.99862953475457383323288240717374719679355621337890625,-0.0697564737441253301941657127827056683599948883056640625,0.9975640502598241976528470331686548888683319091796875,-0.08715574274765823525878971622660174034535884857177734375,0.9961946980917455451987052583717741072177886962890625, - -0.1045284632676535541140339091725763864815235137939453125,0.9945218953682732898613494398887269198894500732421875,-0.12186934340514736507810056309608626179397106170654296875,0.992546151641322094150154953240416944026947021484375,-0.139173100960065354581018937096814624965190887451171875,0.9902680687415703619791429446195252239704132080078125, - -0.1564344650402308134484741231062798760831356048583984375,0.987688340595137770350220307591371238231658935546875,-0.1736481776669303034310587463551200926303863525390625,0.98480775301220802031565426659653894603252410888671875,-0.1908089953765448043565555735767702572047710418701171875,0.9816271834476639757127713892259635031223297119140625, - -0.207911690817759342575499204031075350940227508544921875,0.9781476007338056888329447247087955474853515625,-0.224951054343865031182048141999985091388225555419921875,0.97437006478523524588553073044749908149242401123046875,-0.2419218955996677855591059369544382207095623016357421875,0.97029572627599647294260876151383854448795318603515625, - -0.25881904510252085049870629518409259617328643798828125,0.96592582628906831221371476203785277903079986572265625,-0.275637355816999052304794304291135631501674652099609375,0.9612616959383188941501430235803127288818359375,-0.29237170472273665833284894688404165208339691162109375,0.956304755963035546528772101737558841705322265625, - -0.30901699437494734024056697307969443500041961669921875,0.951056516295153642204240895807743072509765625,-0.325568154457156644365767306226189248263835906982421875,0.94551857559931684615861513520940206944942474365234375,-0.342020143325668712908083080037613399326801300048828125,0.939692620785908427905042117345146834850311279296875, - -0.3583679495453002683547083506709896028041839599609375,0.93358042649720174299687869279296137392520904541015625,-0.37460659341591207027732934875530190765857696533203125,0.92718385456678742428948680753819644451141357421875,-0.390731128489273771275946955938707105815410614013671875,0.9205048534524402636947115752263925969600677490234375, - -0.40673664307580026378019510957528837025165557861328125,0.91354545764260086659902526662335731089115142822265625,-0.422618261740699330264448008165345527231693267822265625,0.90630778703665004769618462887592613697052001953125,-0.43837114678907751486036659116507507860660552978515625,0.89879404629916692659463706149836070835590362548828125, - -0.453990499739546693458436266155331395566463470458984375,0.89100652418836789880884907688596285879611968994140625,-0.469471562785890916824627083769883029162883758544921875,0.88294759285892687739050188611145131289958953857421875,-0.4848096202463370030244504960137419402599334716796875,0.87461970713939585220231265338952653110027313232421875, - -0.4999999999999997779553950749686919152736663818359375,0.86602540378443870761060452423407696187496185302734375,-0.515038074910054266553061097511090338230133056640625,0.8571673007021123336102164103067480027675628662109375,-0.52991926423320478978240544165601022541522979736328125,0.8480480961564260677931770260329358279705047607421875, - -0.54463903501502708426329490976058878004550933837890625,0.83867056794542393927116563645540736615657806396484375,-0.55919290347074668279248044200357981026172637939453125,0.82903757255504173517834942686022259294986724853515625,-0.57357643635104615942310601894860155880451202392578125,0.8191520442889916875373046423192135989665985107421875, - -0.58778525229247302608115433031343854963779449462890625,0.80901699437494745126286943559534847736358642578125,-0.60181502315204837838535922855953685939311981201171875,0.79863551004729271820536951054236851632595062255859375,-0.61566147532565829170181359586422331631183624267578125,0.7880107536067220141973166391835547983646392822265625, - -0.629320391049837279950907031889073550701141357421875,0.77714596145697101281513141657342202961444854736328125,-0.64278760968653936291872241781675256788730621337890625,0.76604444311897801345168090847437269985675811767578125,-0.65605902899050716481355038922629319131374359130859375,0.75470958022277212506878640851937234401702880859375, - -0.66913060635885823757007528911344707012176513671875,0.7431448254773942441175904605188407003879547119140625,-0.6819983600624983655080768585321493446826934814453125,0.73135370161917057085787519099540077149868011474609375,-0.69465837045899736512666322596487589180469512939453125,0.71933980033865108083546147099696099758148193359375, - -0.707106781186547461715008466853760182857513427734375,0.70710678118654757273731092936941422522068023681640625,-0.71933980033865119185776393351261503994464874267578125,0.69465837045899714308205830093356780707836151123046875,-0.7313537016191704598355727284797467291355133056640625,0.681998360062498587552681783563457429409027099609375, - -0.74314482547739402207298553548753261566162109375,0.66913060635885834859237775162910111248493194580078125,-0.75470958022277201404648394600371830165386199951171875,0.656059028990507275835852851741947233676910400390625,-0.76604444311897790242937844595871865749359130859375,0.6427876096865394739410248803324066102504730224609375, - -0.77714596145697090179282895405776798725128173828125,0.62932039104983739097320949440472759306430816650390625,-0.78801075360672190317501417666790075600147247314453125,0.6156614753256584027241160583798773586750030517578125,-0.79863551004729294024997443557367660105228424072265625,0.60181502315204815634075430352822877466678619384765625, - -0.80901699437494734024056697307969443500041961669921875,0.58778525229247324812575925534474663436412811279296875,-0.81915204428899190958190956735052168369293212890625,0.57357643635104593737850109391729347407817840576171875,-0.829037572555041624156046964344568550586700439453125,0.55919290347074690483708536703488789498805999755859375, - -0.83867056794542393927116563645540736615657806396484375,0.54463903501502730630789983479189686477184295654296875,-0.84804809615642595677087456351728178560733795166015625,0.5299192642332049008047079041716642677783966064453125,-0.85716730070211222258791394779109396040439605712890625,0.51503807491005437757536356002674438059329986572265625, - -0.86602540378443870761060452423407696187496185302734375,0.499999999999999944488848768742172978818416595458984375,-0.8746197071393957411800101908738724887371063232421875,0.484809620246337169557904189787223003804683685302734375,-0.88294759285892698841280434862710535526275634765625,0.469471562785890694780022158738574944436550140380859375, - -0.891006524188367787786546614370308816432952880859375,0.45399049973954685999188995992881245911121368408203125,-0.8987940462991670376169395240140147507190704345703125,0.43837114678907729281576166613376699388027191162109375,-0.90630778703664993667388216636027209460735321044921875,0.4226182617406994967979017019388265907764434814453125, - -0.913545457642600755576722804107703268527984619140625,0.406736643075800430313648803348769433796405792236328125,-0.92050485345244037471701403774204663932323455810546875,0.390731128489273771275946955938707105815410614013671875,-0.92718385456678731326718434502254240214824676513671875,0.374606593415912236810783042528782971203327178955078125, - -0.93358042649720174299687869279296137392520904541015625,0.358367949545300212843557119413162581622600555419921875,-0.93969262078590831688273965482949279248714447021484375,0.342020143325668879441536773811094462871551513671875,-0.94551857559931684615861513520940206944942474365234375,0.32556815445715658885461607496836222708225250244140625, - -0.95105651629515353118193843329208903014659881591796875,0.309016994374947506774020666853175498545169830322265625,-0.956304755963035546528772101737558841705322265625,0.292371704722736602821697715626214630901813507080078125,-0.9612616959383188941501430235803127288818359375,0.27563735581699921883824799806461669504642486572265625, - -0.965925826289068201191412299522198736667633056640625,0.258819045102521017032159988957573659718036651611328125,-0.97029572627599647294260876151383854448795318603515625,0.2419218955996677300479547056966111995279788970947265625,-0.9743700647852351348632282679318450391292572021484375,0.22495105434386519771550183577346615493297576904296875, - -0.9781476007338056888329447247087955474853515625,0.2079116908177593148199235884021618403494358062744140625,-0.9816271834476639757127713892259635031223297119140625,0.1908089953765449708900092673502513207495212554931640625,-0.98480775301220802031565426659653894603252410888671875,0.1736481776669302756754831307262065820395946502685546875, - -0.98768834059513765932791784507571719586849212646484375,0.1564344650402309799819278168797609396278858184814453125,-0.9902680687415703619791429446195252239704132080078125,0.1391731009600653268254433214679011143743991851806640625,-0.99254615164132198312785249072476290166378021240234375,0.12186934340514754548934206468402408063411712646484375, - -0.9945218953682732898613494398887269198894500732421875,0.10452846326765373452527541076051420532166957855224609375,-0.9961946980917455451987052583717741072177886962890625,0.087155742747658193625426292783231474459171295166015625,-0.9975640502598241976528470331686548888683319091796875,0.06975647374412552448319502218510024249553680419921875, - -0.99862953475457383323288240717374719679355621337890625,0.05233595624294380688201755447153118439018726348876953125,-0.99939082701909576211818375668372027575969696044921875,0.034899496702501142664232247625477612018585205078125,-0.9998476951563912695775115935248322784900665283203125,0.0174524064372834387948163481496521853841841220855712890625, - -1,0.000000000000000122464679914735320717376402945839660462569212467758006379625612680683843791484832763671875,-0.9998476951563912695775115935248322784900665283203125,-0.017452406437283636553292609505660948343575000762939453125,-0.99939082701909576211818375668372027575969696044921875,-0.034899496702500899802945610872484394349157810211181640625, - -0.99862953475457383323288240717374719679355621337890625,-0.05233595624294355708183701381130958907306194305419921875,-0.9975640502598241976528470331686548888683319091796875,-0.0697564737441252746830144815248786471784114837646484375,-0.9961946980917455451987052583717741072177886962890625,-0.0871557427476579438252457521230098791420459747314453125, - -0.9945218953682732898613494398887269198894500732421875,-0.1045284632676534986028826779147493652999401092529296875,-0.992546151641322094150154953240416944026947021484375,-0.12186934340514730956694933183825924061238765716552734375,-0.99026806874157025095684048210387118160724639892578125,-0.13917310096006552111447263087029568850994110107421875, - -0.987688340595137770350220307591371238231658935546875,-0.156434465040230730181747276219539344310760498046875,-0.98480775301220802031565426659653894603252410888671875,-0.173648177666930469964512440128601156175136566162109375,-0.9816271834476639757127713892259635031223297119140625,-0.19080899537654472108982872669002972543239593505859375, - -0.97814760073380557781064226219314150512218475341796875,-0.20791169081775950910895289780455641448497772216796875,-0.97437006478523524588553073044749908149242401123046875,-0.22495105434386497567089691074215807020664215087890625,-0.97029572627599647294260876151383854448795318603515625,-0.2419218955996675080033497806653031148016452789306640625, - -0.96592582628906831221371476203785277903079986572265625,-0.258819045102520794987555063926265574991703033447265625,-0.9612616959383188941501430235803127288818359375,-0.27563735581699899679364307303330861032009124755859375,-0.95630475596303543550646963922190479934215545654296875,-0.292371704722736769355151409399695694446563720703125, - -0.951056516295153642204240895807743072509765625,-0.309016994374947284729415741821867413818836212158203125,-0.9455185755993167351363126726937480270862579345703125,-0.325568154457156755388069768741843290627002716064453125,-0.939692620785908427905042117345146834850311279296875,-0.3420201433256686573969318487797863781452178955078125, - -0.93358042649720174299687869279296137392520904541015625,-0.358367949545300434888162044444470666348934173583984375,-0.92718385456678742428948680753819644451141357421875,-0.374606593415912014766178117497474886476993560791015625,-0.92050485345244037471701403774204663932323455810546875,-0.390731128489273549231342030907399021089076995849609375, - -0.91354545764260086659902526662335731089115142822265625,-0.406736643075800208269043878317461349070072174072265625,-0.90630778703665004769618462887592613697052001953125,-0.42261826174069927475329677690751850605010986328125,-0.89879404629916692659463706149836070835590362548828125,-0.438371146789077459349215359907248057425022125244140625, - -0.89100652418836789880884907688596285879611968994140625,-0.453990499739546693458436266155331395566463470458984375,-0.88294759285892687739050188611145131289958953857421875,-0.46947156278589086131347585251205600798130035400390625,-0.87461970713939585220231265338952653110027313232421875,-0.484809620246336947513299264755914919078350067138671875, - -0.8660254037844385965883020617184229195117950439453125,-0.50000000000000011102230246251565404236316680908203125,-0.8571673007021123336102164103067480027675628662109375,-0.51503807491005415553075863499543629586696624755859375,-0.8480480961564260677931770260329358279705047607421875,-0.52991926423320478978240544165601022541522979736328125, - -0.838670567945424050293468098971061408519744873046875,-0.54463903501502708426329490976058878004550933837890625,-0.8290375725550418462006518893758766353130340576171875,-0.55919290347074668279248044200357981026172637939453125,-0.81915204428899179855960710483486764132976531982421875,-0.57357643635104615942310601894860155880451202392578125, - -0.80901699437494756228517189811100251972675323486328125,-0.58778525229247302608115433031343854963779449462890625,-0.798635510047292829227671973058022558689117431640625,-0.60181502315204837838535922855953685939311981201171875,-0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375, - -0.77714596145697079077052649154211394488811492919921875,-0.62932039104983761301781441943603567779064178466796875,-0.76604444311897801345168090847437269985675811767578125,-0.642787609686539251896419955301098525524139404296875,-0.75470958022277212506878640851937234401702880859375,-0.6560590289905070537912479267106391489505767822265625, - -0.7431448254773942441175904605188407003879547119140625,-0.66913060635885823757007528911344707012176513671875,-0.73135370161917057085787519099540077149868011474609375,-0.6819983600624983655080768585321493446826934814453125,-0.71933980033865108083546147099696099758148193359375,-0.69465837045899736512666322596487589180469512939453125, - -0.7071067811865476837596133918850682675838470458984375,-0.707106781186547461715008466853760182857513427734375,-0.6946583704589972541043607634492218494415283203125,-0.71933980033865119185776393351261503994464874267578125,-0.681998360062498587552681783563457429409027099609375,-0.7313537016191704598355727284797467291355133056640625, - -0.66913060635885812654777282659779302775859832763671875,-0.74314482547739435513989292303449474275112152099609375,-0.656059028990507275835852851741947233676910400390625,-0.75470958022277201404648394600371830165386199951171875,-0.6427876096865394739410248803324066102504730224609375,-0.76604444311897790242937844595871865749359130859375, - -0.62932039104983783506241934446734376251697540283203125,-0.77714596145697056872592156651080586016178131103515625,-0.61566147532565806965720867083291523158550262451171875,-0.78801075360672212521961910169920884072780609130859375,-0.6018150231520482673630567660438828170299530029296875,-0.798635510047292829227671973058022558689117431640625, - -0.58778525229247324812575925534474663436412811279296875,-0.80901699437494734024056697307969443500041961669921875,-0.57357643635104638146771094397990964353084564208984375,-0.81915204428899157651500217980355955660343170166015625,-0.5591929034707465717701779794879257678985595703125,-0.8290375725550418462006518893758766353130340576171875, - -0.544639035015026973240992447244934737682342529296875,-0.838670567945424050293468098971061408519744873046875,-0.52991926423320501182701036668731831014156341552734375,-0.84804809615642595677087456351728178560733795166015625,-0.5150380749100544885976660225423984229564666748046875,-0.857167300702112111565611485275439918041229248046875, - -0.500000000000000444089209850062616169452667236328125,-0.86602540378443837454369713668711483478546142578125,-0.484809620246336836490996802240260876715183258056640625,-0.87461970713939596322461511590518057346343994140625,-0.469471562785890750291173389996401965618133544921875,-0.88294759285892698841280434862710535526275634765625, - -0.453990499739546915503041191186639480292797088623046875,-0.891006524188367787786546614370308816432952880859375,-0.43837114678907773690497151619638316333293914794921875,-0.89879404629916681557233459898270666599273681640625,-0.42261826174069916373099431439186446368694305419921875,-0.90630778703665004769618462887592613697052001953125, - -0.406736643075800097246741415801807306706905364990234375,-0.9135454576426009776213277291390113532543182373046875,-0.3907311284892738267870981871965341269969940185546875,-0.9205048534524402636947115752263925969600677490234375,-0.37460659341591229232193427378660999238491058349609375,-0.92718385456678731326718434502254240214824676513671875, - -0.3583679495453007124439182007336057722568511962890625,-0.933580426497201631974576230277307331562042236328125,-0.34202014332566854637462938626413233578205108642578125,-0.939692620785908427905042117345146834850311279296875,-0.325568154457156644365767306226189248263835906982421875,-0.94551857559931684615861513520940206944942474365234375, - -0.30901699437494756228517189811100251972675323486328125,-0.95105651629515353118193843329208903014659881591796875,-0.29237170472273710242205879694665782153606414794921875,-0.9563047559630353244841671767062507569789886474609375,-0.2756373558169988857713406105176545679569244384765625,-0.96126169593831900517244548609596677124500274658203125, - -0.25881904510252062845410137015278451144695281982421875,-0.96592582628906831221371476203785277903079986572265625,-0.2419218955996677855591059369544382207095623016357421875,-0.97029572627599647294260876151383854448795318603515625,-0.224951054343865253226653067031293176114559173583984375,-0.9743700647852351348632282679318450391292572021484375, - -0.207911690817759786664709054093691520392894744873046875,-0.97814760073380557781064226219314150512218475341796875,-0.1908089953765446100675262641743756830692291259765625,-0.9816271834476639757127713892259635031223297119140625,-0.1736481776669303311866343619840336032211780548095703125,-0.98480775301220802031565426659653894603252410888671875, - -0.1564344650402310354930790481375879608094692230224609375,-0.98768834059513765932791784507571719586849212646484375,-0.1391731009600658264258044027883443050086498260498046875,-0.99026806874157025095684048210387118160724639892578125,-0.12186934340514717078907125369369168765842914581298828125,-0.992546151641322094150154953240416944026947021484375, - -0.104528463267653359825004599770181812345981597900390625,-0.99452189536827340088365190240438096225261688232421875,-0.08715574274765824913657752404105849564075469970703125,-0.9961946980917455451987052583717741072177886962890625,-0.069756473744125579994346253442927263677120208740234375,-0.9975640502598241976528470331686548888683319091796875, - -0.05233595624294430648237863579197437502443790435791015625,-0.99862953475457383323288240717374719679355621337890625,-0.034899496702500761025067532727916841395199298858642578125,-0.99939082701909576211818375668372027575969696044921875,-0.017452406437283497775414531361093395389616489410400390625,-0.9998476951563912695775115935248322784900665283203125, - -0.00000000000000018369701987210296875011296034045003113559498615810217092558787044254131615161895751953125,-1,0.017452406437283130014037624277989380061626434326171875,-0.9998476951563912695775115935248322784900665283203125,0.0348994967025012814421103257700451649725437164306640625,-0.99939082701909576211818375668372027575969696044921875, - 0.05233595624294394565989563261609873734414577484130859375,-0.99862953475457383323288240717374719679355621337890625,0.0697564737441252191718632502670516259968280792236328125,-0.99756405025982430867514949568430893123149871826171875,0.0871557427476578883140945208651828579604625701904296875,-0.9961946980917455451987052583717741072177886962890625, - 0.10452846326765298512473378877984941937029361724853515625,-0.99452189536827340088365190240438096225261688232421875,0.1218693434051476842672201428285916335880756378173828125,-0.99254615164132198312785249072476290166378021240234375,0.139173100960065465603321399612468667328357696533203125,-0.9902680687415703619791429446195252239704132080078125, - 0.156434465040230674670596044961712323129177093505859375,-0.987688340595137770350220307591371238231658935546875,0.17364817766692997036415135880815796554088592529296875,-0.98480775301220813133795672911219298839569091796875,0.190808995376545109667887345494818873703479766845703125,-0.98162718344766386469046892671030946075916290283203125, - 0.2079116908177594258422260509178158827126026153564453125,-0.97814760073380557781064226219314150512218475341796875,0.224951054343864920159745679484331049025058746337890625,-0.97437006478523524588553073044749908149242401123046875,0.2419218955996674524921985494074760936200618743896484375,-0.9702957262759965839649112240294925868511199951171875, - 0.258819045102520295387193982605822384357452392578125,-0.9659258262890684232360172245535068213939666748046875,0.275637355816999385371701691838097758591175079345703125,-0.96126169593831878312784056106465868651866912841796875,0.292371704722736713844000178141868673264980316162109375,-0.95630475596303543550646963922190479934215545654296875, - 0.3090169943749472292182645105640403926372528076171875,-0.951056516295153642204240895807743072509765625,0.325568154457156311298859918679227121174335479736328125,-0.945518575599316957180917597725056111812591552734375,0.34202014332566899046383923632674850523471832275390625,-0.93969262078590831688273965482949279248714447021484375, - 0.35836794954530037937701081318664364516735076904296875,-0.93358042649720174299687869279296137392520904541015625,0.37460659341591195925502688623964786529541015625,-0.92718385456678742428948680753819644451141357421875,0.39073112848927349372019079964957199990749359130859375,-0.9205048534524404857393165002577006816864013671875, - 0.406736643075799764179834028254845179617404937744140625,-0.91354545764260108864363019165466539561748504638671875,0.42261826174069960782020416445448063313961029052734375,-0.90630778703664993667388216636027209460735321044921875,0.438371146789077403838064128649421036243438720703125,-0.8987940462991670376169395240140147507190704345703125, - 0.45399049973954663794728503489750437438488006591796875,-0.89100652418836789880884907688596285879611968994140625,0.46947156278589041722426600244943983852863311767578125,-0.88294759285892709943510681114275939762592315673828125,0.484809620246337280580206652302877046167850494384765625,-0.87461970713939563015770772835821844637393951416015625, - 0.50000000000000011102230246251565404236316680908203125,-0.8660254037844385965883020617184229195117950439453125,0.51503807491005415553075863499543629586696624755859375,-0.8571673007021123336102164103067480027675628662109375,0.52991926423320467876010297914035618305206298828125,-0.84804809615642617881547948854858987033367156982421875, - 0.54463903501502664017408505969797261059284210205078125,-0.8386705679454242723380730240023694932460784912109375,0.559192903470747015859387829550541937351226806640625,-0.829037572555041624156046964344568550586700439453125,0.57357643635104604840080355643294751644134521484375,-0.81915204428899179855960710483486764132976531982421875, - 0.587785252292472915058851867797784507274627685546875,-0.80901699437494756228517189811100251972675323486328125,0.60181502315204793429614937849692068994045257568359375,-0.7986355100472930512722768980893306434154510498046875,0.61566147532565851374641852089553140103816986083984375,-0.7880107536067217921527117141522467136383056640625, - 0.6293203910498375019955119569203816354274749755859375,-0.77714596145697079077052649154211394488811492919921875,0.642787609686539251896419955301098525524139404296875,-0.7660444431189781244739833709900267422199249267578125,0.6560590289905070537912479267106391489505767822265625,-0.75470958022277223609108887103502638638019561767578125, - 0.669130606358857793480865439050830900669097900390625,-0.74314482547739457718449784806580282747745513916015625,0.681998360062498587552681783563457429409027099609375,-0.73135370161917034881327026596409268677234649658203125,0.6946583704589972541043607634492218494415283203125,-0.71933980033865119185776393351261503994464874267578125, - 0.70710678118654735069270600433810614049434661865234375,-0.7071067811865476837596133918850682675838470458984375,0.7193398003386508587908565459656529128551483154296875,-0.69465837045899758717126815099618397653102874755859375,0.731353701619170681880177653511054813861846923828125,-0.68199836006249825448577439601649530231952667236328125, - 0.7431448254773942441175904605188407003879547119140625,-0.66913060635885812654777282659779302775859832763671875,0.7547095802227719030241814834880642592906951904296875,-0.65605902899050738685815531425760127604007720947265625,0.76604444311897779140707598344306461513042449951171875,-0.64278760968653958496332734284806065261363983154296875, - 0.77714596145697056872592156651080586016178131103515625,-0.62932039104983783506241934446734376251697540283203125,0.7880107536067220141973166391835547983646392822265625,-0.61566147532565818067951113334856927394866943359375,0.798635510047292829227671973058022558689117431640625,-0.6018150231520482673630567660438828170299530029296875, - 0.80901699437494734024056697307969443500041961669921875,-0.587785252292473359148061717860400676727294921875,0.81915204428899157651500217980355955660343170166015625,-0.573576436351046492490013406495563685894012451171875,0.8290375725550418462006518893758766353130340576171875,-0.5591929034707465717701779794879257678985595703125, - 0.838670567945424050293468098971061408519744873046875,-0.544639035015026973240992447244934737682342529296875,0.84804809615642595677087456351728178560733795166015625,-0.52991926423320501182701036668731831014156341552734375,0.857167300702112111565611485275439918041229248046875,-0.5150380749100544885976660225423984229564666748046875, - 0.86602540378443837454369713668711483478546142578125,-0.500000000000000444089209850062616169452667236328125,0.87461970713939585220231265338952653110027313232421875,-0.48480962024633689200214803349808789789676666259765625,0.88294759285892687739050188611145131289958953857421875,-0.469471562785890805802324621254228986799716949462890625, - 0.891006524188367787786546614370308816432952880859375,-0.4539904997395469710141924224444665014743804931640625,0.89879404629916681557233459898270666599273681640625,-0.438371146789077792416122747454210184514522552490234375,0.90630778703665004769618462887592613697052001953125,-0.422618261740699219242145545649691484868526458740234375, - 0.9135454576426009776213277291390113532543182373046875,-0.40673664307580015275789264705963432788848876953125,0.9205048534524402636947115752263925969600677490234375,-0.390731128489273882298249418454361148178577423095703125,0.92718385456678731326718434502254240214824676513671875,-0.374606593415912347833085505044437013566493988037109375, - 0.93358042649720152095227376776165328919887542724609375,-0.358367949545300767955069431991432793438434600830078125,0.939692620785908427905042117345146834850311279296875,-0.342020143325668601885780617521959356963634490966796875,0.94551857559931684615861513520940206944942474365234375,-0.3255681544571566998769185374840162694454193115234375, - 0.95105651629515353118193843329208903014659881591796875,-0.309016994374947617796323129368829540908336639404296875,0.9563047559630353244841671767062507569789886474609375,-0.292371704722737157933210028204484842717647552490234375,0.9612616959383188941501430235803127288818359375,-0.275637355816998941282491841775481589138507843017578125, - 0.96592582628906831221371476203785277903079986572265625,-0.258819045102520683965252601410611532628536224365234375,0.97029572627599647294260876151383854448795318603515625,-0.241921895599667868825832783841178752481937408447265625,0.9743700647852351348632282679318450391292572021484375,-0.2249510543438653364933799139180337078869342803955078125, - 0.97814760073380557781064226219314150512218475341796875,-0.2079116908177598699314359009804320521652698516845703125,0.9816271834476639757127713892259635031223297119140625,-0.190808995376544665578677495432202704250812530517578125,0.98480775301220802031565426659653894603252410888671875,-0.1736481776669303866977855932418606244027614593505859375, - 0.98768834059513765932791784507571719586849212646484375,-0.156434465040231118759805895024328492581844329833984375,0.99026806874157025095684048210387118160724639892578125,-0.1391731009600658819369556340461713261902332305908203125,0.992546151641322094150154953240416944026947021484375,-0.12186934340514722630022248495151870884001255035400390625, - 0.9945218953682732898613494398887269198894500732421875,-0.10452846326765341533615583102800883352756500244140625,0.9961946980917455451987052583717741072177886962890625,-0.08715574274765831852551656311334227211773395538330078125,0.9975640502598241976528470331686548888683319091796875,-0.06975647374412563550549748470075428485870361328125, - 0.99862953475457383323288240717374719679355621337890625,-0.052335956242944368932423770957029773853719234466552734375,0.99939082701909576211818375668372027575969696044921875,-0.03489949670250082347511266789297224022448062896728515625,0.9998476951563912695775115935248322784900665283203125,-0.01745240643728356022545966652614879421889781951904296875}; - private static double sc256(int x, int z, double r, NoiseProvider n) { - return (n.noise(x + ((r * F256A[0]) - (r * F256A[1])), z + ((r * F256A[1]) + (r * F256A[0]))) - +n.noise(x + ((r * F256A[2]) - (r * F256A[3])), z + ((r * F256A[3]) + (r * F256A[2]))) - +n.noise(x + ((r * F256A[4]) - (r * F256A[5])), z + ((r * F256A[5]) + (r * F256A[4]))) - +n.noise(x + ((r * F256A[6]) - (r * F256A[7])), z + ((r * F256A[7]) + (r * F256A[6]))) - +n.noise(x + ((r * F256A[8]) - (r * F256A[9])), z + ((r * F256A[9]) + (r * F256A[8]))) - +n.noise(x + ((r * F256A[10]) - (r * F256A[11])), z + ((r * F256A[11]) + (r * F256A[10]))) - +n.noise(x + ((r * F256A[12]) - (r * F256A[13])), z + ((r * F256A[13]) + (r * F256A[12]))) - +n.noise(x + ((r * F256A[14]) - (r * F256A[15])), z + ((r * F256A[15]) + (r * F256A[14]))) - +n.noise(x + ((r * F256A[16]) - (r * F256A[17])), z + ((r * F256A[17]) + (r * F256A[16]))) - +n.noise(x + ((r * F256A[18]) - (r * F256A[19])), z + ((r * F256A[19]) + (r * F256A[18]))) - +n.noise(x + ((r * F256A[20]) - (r * F256A[21])), z + ((r * F256A[21]) + (r * F256A[20]))) - +n.noise(x + ((r * F256A[22]) - (r * F256A[23])), z + ((r * F256A[23]) + (r * F256A[22]))) - +n.noise(x + ((r * F256A[24]) - (r * F256A[25])), z + ((r * F256A[25]) + (r * F256A[24]))) - +n.noise(x + ((r * F256A[26]) - (r * F256A[27])), z + ((r * F256A[27]) + (r * F256A[26]))) - +n.noise(x + ((r * F256A[28]) - (r * F256A[29])), z + ((r * F256A[29]) + (r * F256A[28]))) - +n.noise(x + ((r * F256A[30]) - (r * F256A[31])), z + ((r * F256A[31]) + (r * F256A[30]))) - +n.noise(x + ((r * F256A[32]) - (r * F256A[33])), z + ((r * F256A[33]) + (r * F256A[32]))) - +n.noise(x + ((r * F256A[34]) - (r * F256A[35])), z + ((r * F256A[35]) + (r * F256A[34]))) - +n.noise(x + ((r * F256A[36]) - (r * F256A[37])), z + ((r * F256A[37]) + (r * F256A[36]))) - +n.noise(x + ((r * F256A[38]) - (r * F256A[39])), z + ((r * F256A[39]) + (r * F256A[38]))) - +n.noise(x + ((r * F256A[40]) - (r * F256A[41])), z + ((r * F256A[41]) + (r * F256A[40]))) - +n.noise(x + ((r * F256A[42]) - (r * F256A[43])), z + ((r * F256A[43]) + (r * F256A[42]))) - +n.noise(x + ((r * F256A[44]) - (r * F256A[45])), z + ((r * F256A[45]) + (r * F256A[44]))) - +n.noise(x + ((r * F256A[46]) - (r * F256A[47])), z + ((r * F256A[47]) + (r * F256A[46]))) - +n.noise(x + ((r * F256A[48]) - (r * F256A[49])), z + ((r * F256A[49]) + (r * F256A[48]))) - +n.noise(x + ((r * F256A[50]) - (r * F256A[51])), z + ((r * F256A[51]) + (r * F256A[50]))) - +n.noise(x + ((r * F256A[52]) - (r * F256A[53])), z + ((r * F256A[53]) + (r * F256A[52]))) - +n.noise(x + ((r * F256A[54]) - (r * F256A[55])), z + ((r * F256A[55]) + (r * F256A[54]))) - +n.noise(x + ((r * F256A[56]) - (r * F256A[57])), z + ((r * F256A[57]) + (r * F256A[56]))) - +n.noise(x + ((r * F256A[58]) - (r * F256A[59])), z + ((r * F256A[59]) + (r * F256A[58]))) - +n.noise(x + ((r * F256A[60]) - (r * F256A[61])), z + ((r * F256A[61]) + (r * F256A[60]))) - +n.noise(x + ((r * F256A[62]) - (r * F256A[63])), z + ((r * F256A[63]) + (r * F256A[62]))) - +n.noise(x + ((r * F256A[64]) - (r * F256A[65])), z + ((r * F256A[65]) + (r * F256A[64]))) - +n.noise(x + ((r * F256A[66]) - (r * F256A[67])), z + ((r * F256A[67]) + (r * F256A[66]))) - +n.noise(x + ((r * F256A[68]) - (r * F256A[69])), z + ((r * F256A[69]) + (r * F256A[68]))) - +n.noise(x + ((r * F256A[70]) - (r * F256A[71])), z + ((r * F256A[71]) + (r * F256A[70]))) - +n.noise(x + ((r * F256A[72]) - (r * F256A[73])), z + ((r * F256A[73]) + (r * F256A[72]))) - +n.noise(x + ((r * F256A[74]) - (r * F256A[75])), z + ((r * F256A[75]) + (r * F256A[74]))) - +n.noise(x + ((r * F256A[76]) - (r * F256A[77])), z + ((r * F256A[77]) + (r * F256A[76]))) - +n.noise(x + ((r * F256A[78]) - (r * F256A[79])), z + ((r * F256A[79]) + (r * F256A[78]))) - +n.noise(x + ((r * F256A[80]) - (r * F256A[81])), z + ((r * F256A[81]) + (r * F256A[80]))) - +n.noise(x + ((r * F256A[82]) - (r * F256A[83])), z + ((r * F256A[83]) + (r * F256A[82]))) - +n.noise(x + ((r * F256A[84]) - (r * F256A[85])), z + ((r * F256A[85]) + (r * F256A[84]))) - +n.noise(x + ((r * F256A[86]) - (r * F256A[87])), z + ((r * F256A[87]) + (r * F256A[86]))) - +n.noise(x + ((r * F256A[88]) - (r * F256A[89])), z + ((r * F256A[89]) + (r * F256A[88]))) - +n.noise(x + ((r * F256A[90]) - (r * F256A[91])), z + ((r * F256A[91]) + (r * F256A[90]))) - +n.noise(x + ((r * F256A[92]) - (r * F256A[93])), z + ((r * F256A[93]) + (r * F256A[92]))) - +n.noise(x + ((r * F256A[94]) - (r * F256A[95])), z + ((r * F256A[95]) + (r * F256A[94]))) - +n.noise(x + ((r * F256A[96]) - (r * F256A[97])), z + ((r * F256A[97]) + (r * F256A[96]))) - +n.noise(x + ((r * F256A[98]) - (r * F256A[99])), z + ((r * F256A[99]) + (r * F256A[98]))) - +n.noise(x + ((r * F256A[100]) - (r * F256A[101])), z + ((r * F256A[101]) + (r * F256A[100]))) - +n.noise(x + ((r * F256A[102]) - (r * F256A[103])), z + ((r * F256A[103]) + (r * F256A[102]))) - +n.noise(x + ((r * F256A[104]) - (r * F256A[105])), z + ((r * F256A[105]) + (r * F256A[104]))) - +n.noise(x + ((r * F256A[106]) - (r * F256A[107])), z + ((r * F256A[107]) + (r * F256A[106]))) - +n.noise(x + ((r * F256A[108]) - (r * F256A[109])), z + ((r * F256A[109]) + (r * F256A[108]))) - +n.noise(x + ((r * F256A[110]) - (r * F256A[111])), z + ((r * F256A[111]) + (r * F256A[110]))) - +n.noise(x + ((r * F256A[112]) - (r * F256A[113])), z + ((r * F256A[113]) + (r * F256A[112]))) - +n.noise(x + ((r * F256A[114]) - (r * F256A[115])), z + ((r * F256A[115]) + (r * F256A[114]))) - +n.noise(x + ((r * F256A[116]) - (r * F256A[117])), z + ((r * F256A[117]) + (r * F256A[116]))) - +n.noise(x + ((r * F256A[118]) - (r * F256A[119])), z + ((r * F256A[119]) + (r * F256A[118]))) - +n.noise(x + ((r * F256A[120]) - (r * F256A[121])), z + ((r * F256A[121]) + (r * F256A[120]))) - +n.noise(x + ((r * F256A[122]) - (r * F256A[123])), z + ((r * F256A[123]) + (r * F256A[122]))) - +n.noise(x + ((r * F256A[124]) - (r * F256A[125])), z + ((r * F256A[125]) + (r * F256A[124]))) - +n.noise(x + ((r * F256A[126]) - (r * F256A[127])), z + ((r * F256A[127]) + (r * F256A[126]))) - +n.noise(x + ((r * F256A[128]) - (r * F256A[129])), z + ((r * F256A[129]) + (r * F256A[128]))) - +n.noise(x + ((r * F256A[130]) - (r * F256A[131])), z + ((r * F256A[131]) + (r * F256A[130]))) - +n.noise(x + ((r * F256A[132]) - (r * F256A[133])), z + ((r * F256A[133]) + (r * F256A[132]))) - +n.noise(x + ((r * F256A[134]) - (r * F256A[135])), z + ((r * F256A[135]) + (r * F256A[134]))) - +n.noise(x + ((r * F256A[136]) - (r * F256A[137])), z + ((r * F256A[137]) + (r * F256A[136]))) - +n.noise(x + ((r * F256A[138]) - (r * F256A[139])), z + ((r * F256A[139]) + (r * F256A[138]))) - +n.noise(x + ((r * F256A[140]) - (r * F256A[141])), z + ((r * F256A[141]) + (r * F256A[140]))) - +n.noise(x + ((r * F256A[142]) - (r * F256A[143])), z + ((r * F256A[143]) + (r * F256A[142]))) - +n.noise(x + ((r * F256A[144]) - (r * F256A[145])), z + ((r * F256A[145]) + (r * F256A[144]))) - +n.noise(x + ((r * F256A[146]) - (r * F256A[147])), z + ((r * F256A[147]) + (r * F256A[146]))) - +n.noise(x + ((r * F256A[148]) - (r * F256A[149])), z + ((r * F256A[149]) + (r * F256A[148]))) - +n.noise(x + ((r * F256A[150]) - (r * F256A[151])), z + ((r * F256A[151]) + (r * F256A[150]))) - +n.noise(x + ((r * F256A[152]) - (r * F256A[153])), z + ((r * F256A[153]) + (r * F256A[152]))) - +n.noise(x + ((r * F256A[154]) - (r * F256A[155])), z + ((r * F256A[155]) + (r * F256A[154]))) - +n.noise(x + ((r * F256A[156]) - (r * F256A[157])), z + ((r * F256A[157]) + (r * F256A[156]))) - +n.noise(x + ((r * F256A[158]) - (r * F256A[159])), z + ((r * F256A[159]) + (r * F256A[158]))) - +n.noise(x + ((r * F256A[160]) - (r * F256A[161])), z + ((r * F256A[161]) + (r * F256A[160]))) - +n.noise(x + ((r * F256A[162]) - (r * F256A[163])), z + ((r * F256A[163]) + (r * F256A[162]))) - +n.noise(x + ((r * F256A[164]) - (r * F256A[165])), z + ((r * F256A[165]) + (r * F256A[164]))) - +n.noise(x + ((r * F256A[166]) - (r * F256A[167])), z + ((r * F256A[167]) + (r * F256A[166]))) - +n.noise(x + ((r * F256A[168]) - (r * F256A[169])), z + ((r * F256A[169]) + (r * F256A[168]))) - +n.noise(x + ((r * F256A[170]) - (r * F256A[171])), z + ((r * F256A[171]) + (r * F256A[170]))) - +n.noise(x + ((r * F256A[172]) - (r * F256A[173])), z + ((r * F256A[173]) + (r * F256A[172]))) - +n.noise(x + ((r * F256A[174]) - (r * F256A[175])), z + ((r * F256A[175]) + (r * F256A[174]))) - +n.noise(x + ((r * F256A[176]) - (r * F256A[177])), z + ((r * F256A[177]) + (r * F256A[176]))) - +n.noise(x + ((r * F256A[178]) - (r * F256A[179])), z + ((r * F256A[179]) + (r * F256A[178]))) - +n.noise(x + ((r * F256A[180]) - (r * F256A[181])), z + ((r * F256A[181]) + (r * F256A[180]))) - +n.noise(x + ((r * F256A[182]) - (r * F256A[183])), z + ((r * F256A[183]) + (r * F256A[182]))) - +n.noise(x + ((r * F256A[184]) - (r * F256A[185])), z + ((r * F256A[185]) + (r * F256A[184]))) - +n.noise(x + ((r * F256A[186]) - (r * F256A[187])), z + ((r * F256A[187]) + (r * F256A[186]))) - +n.noise(x + ((r * F256A[188]) - (r * F256A[189])), z + ((r * F256A[189]) + (r * F256A[188]))) - +n.noise(x + ((r * F256A[190]) - (r * F256A[191])), z + ((r * F256A[191]) + (r * F256A[190]))) - +n.noise(x + ((r * F256A[192]) - (r * F256A[193])), z + ((r * F256A[193]) + (r * F256A[192]))) - +n.noise(x + ((r * F256A[194]) - (r * F256A[195])), z + ((r * F256A[195]) + (r * F256A[194]))) - +n.noise(x + ((r * F256A[196]) - (r * F256A[197])), z + ((r * F256A[197]) + (r * F256A[196]))) - +n.noise(x + ((r * F256A[198]) - (r * F256A[199])), z + ((r * F256A[199]) + (r * F256A[198]))) - +n.noise(x + ((r * F256A[200]) - (r * F256A[201])), z + ((r * F256A[201]) + (r * F256A[200]))) - +n.noise(x + ((r * F256A[202]) - (r * F256A[203])), z + ((r * F256A[203]) + (r * F256A[202]))) - +n.noise(x + ((r * F256A[204]) - (r * F256A[205])), z + ((r * F256A[205]) + (r * F256A[204]))) - +n.noise(x + ((r * F256A[206]) - (r * F256A[207])), z + ((r * F256A[207]) + (r * F256A[206]))) - +n.noise(x + ((r * F256A[208]) - (r * F256A[209])), z + ((r * F256A[209]) + (r * F256A[208]))) - +n.noise(x + ((r * F256A[210]) - (r * F256A[211])), z + ((r * F256A[211]) + (r * F256A[210]))) - +n.noise(x + ((r * F256A[212]) - (r * F256A[213])), z + ((r * F256A[213]) + (r * F256A[212]))) - +n.noise(x + ((r * F256A[214]) - (r * F256A[215])), z + ((r * F256A[215]) + (r * F256A[214]))) - +n.noise(x + ((r * F256A[216]) - (r * F256A[217])), z + ((r * F256A[217]) + (r * F256A[216]))) - +n.noise(x + ((r * F256A[218]) - (r * F256A[219])), z + ((r * F256A[219]) + (r * F256A[218]))) - +n.noise(x + ((r * F256A[220]) - (r * F256A[221])), z + ((r * F256A[221]) + (r * F256A[220]))) - +n.noise(x + ((r * F256A[222]) - (r * F256A[223])), z + ((r * F256A[223]) + (r * F256A[222]))) - +n.noise(x + ((r * F256A[224]) - (r * F256A[225])), z + ((r * F256A[225]) + (r * F256A[224]))) - +n.noise(x + ((r * F256A[226]) - (r * F256A[227])), z + ((r * F256A[227]) + (r * F256A[226]))) - +n.noise(x + ((r * F256A[228]) - (r * F256A[229])), z + ((r * F256A[229]) + (r * F256A[228]))) - +n.noise(x + ((r * F256A[230]) - (r * F256A[231])), z + ((r * F256A[231]) + (r * F256A[230]))) - +n.noise(x + ((r * F256A[232]) - (r * F256A[233])), z + ((r * F256A[233]) + (r * F256A[232]))) - +n.noise(x + ((r * F256A[234]) - (r * F256A[235])), z + ((r * F256A[235]) + (r * F256A[234]))) - +n.noise(x + ((r * F256A[236]) - (r * F256A[237])), z + ((r * F256A[237]) + (r * F256A[236]))) - +n.noise(x + ((r * F256A[238]) - (r * F256A[239])), z + ((r * F256A[239]) + (r * F256A[238]))) - +n.noise(x + ((r * F256A[240]) - (r * F256A[241])), z + ((r * F256A[241]) + (r * F256A[240]))) - +n.noise(x + ((r * F256A[242]) - (r * F256A[243])), z + ((r * F256A[243]) + (r * F256A[242]))) - +n.noise(x + ((r * F256A[244]) - (r * F256A[245])), z + ((r * F256A[245]) + (r * F256A[244]))) - +n.noise(x + ((r * F256A[246]) - (r * F256A[247])), z + ((r * F256A[247]) + (r * F256A[246]))) - +n.noise(x + ((r * F256A[248]) - (r * F256A[249])), z + ((r * F256A[249]) + (r * F256A[248]))) - +n.noise(x + ((r * F256A[250]) - (r * F256A[251])), z + ((r * F256A[251]) + (r * F256A[250]))) - +n.noise(x + ((r * F256A[252]) - (r * F256A[253])), z + ((r * F256A[253]) + (r * F256A[252]))) - +n.noise(x + ((r * F256A[254]) - (r * F256A[255])), z + ((r * F256A[255]) + (r * F256A[254]))) - +n.noise(x + ((r * F256A[256]) - (r * F256A[257])), z + ((r * F256A[257]) + (r * F256A[256]))) - +n.noise(x + ((r * F256A[258]) - (r * F256A[259])), z + ((r * F256A[259]) + (r * F256A[258]))) - +n.noise(x + ((r * F256A[260]) - (r * F256A[261])), z + ((r * F256A[261]) + (r * F256A[260]))) - +n.noise(x + ((r * F256A[262]) - (r * F256A[263])), z + ((r * F256A[263]) + (r * F256A[262]))) - +n.noise(x + ((r * F256A[264]) - (r * F256A[265])), z + ((r * F256A[265]) + (r * F256A[264]))) - +n.noise(x + ((r * F256A[266]) - (r * F256A[267])), z + ((r * F256A[267]) + (r * F256A[266]))) - +n.noise(x + ((r * F256A[268]) - (r * F256A[269])), z + ((r * F256A[269]) + (r * F256A[268]))) - +n.noise(x + ((r * F256A[270]) - (r * F256A[271])), z + ((r * F256A[271]) + (r * F256A[270]))) - +n.noise(x + ((r * F256A[272]) - (r * F256A[273])), z + ((r * F256A[273]) + (r * F256A[272]))) - +n.noise(x + ((r * F256A[274]) - (r * F256A[275])), z + ((r * F256A[275]) + (r * F256A[274]))) - +n.noise(x + ((r * F256A[276]) - (r * F256A[277])), z + ((r * F256A[277]) + (r * F256A[276]))) - +n.noise(x + ((r * F256A[278]) - (r * F256A[279])), z + ((r * F256A[279]) + (r * F256A[278]))) - +n.noise(x + ((r * F256A[280]) - (r * F256A[281])), z + ((r * F256A[281]) + (r * F256A[280]))) - +n.noise(x + ((r * F256A[282]) - (r * F256A[283])), z + ((r * F256A[283]) + (r * F256A[282]))) - +n.noise(x + ((r * F256A[284]) - (r * F256A[285])), z + ((r * F256A[285]) + (r * F256A[284]))) - +n.noise(x + ((r * F256A[286]) - (r * F256A[287])), z + ((r * F256A[287]) + (r * F256A[286]))) - +n.noise(x + ((r * F256A[288]) - (r * F256A[289])), z + ((r * F256A[289]) + (r * F256A[288]))) - +n.noise(x + ((r * F256A[290]) - (r * F256A[291])), z + ((r * F256A[291]) + (r * F256A[290]))) - +n.noise(x + ((r * F256A[292]) - (r * F256A[293])), z + ((r * F256A[293]) + (r * F256A[292]))) - +n.noise(x + ((r * F256A[294]) - (r * F256A[295])), z + ((r * F256A[295]) + (r * F256A[294]))) - +n.noise(x + ((r * F256A[296]) - (r * F256A[297])), z + ((r * F256A[297]) + (r * F256A[296]))) - +n.noise(x + ((r * F256A[298]) - (r * F256A[299])), z + ((r * F256A[299]) + (r * F256A[298]))) - +n.noise(x + ((r * F256A[300]) - (r * F256A[301])), z + ((r * F256A[301]) + (r * F256A[300]))) - +n.noise(x + ((r * F256A[302]) - (r * F256A[303])), z + ((r * F256A[303]) + (r * F256A[302]))) - +n.noise(x + ((r * F256A[304]) - (r * F256A[305])), z + ((r * F256A[305]) + (r * F256A[304]))) - +n.noise(x + ((r * F256A[306]) - (r * F256A[307])), z + ((r * F256A[307]) + (r * F256A[306]))) - +n.noise(x + ((r * F256A[308]) - (r * F256A[309])), z + ((r * F256A[309]) + (r * F256A[308]))) - +n.noise(x + ((r * F256A[310]) - (r * F256A[311])), z + ((r * F256A[311]) + (r * F256A[310]))) - +n.noise(x + ((r * F256A[312]) - (r * F256A[313])), z + ((r * F256A[313]) + (r * F256A[312]))) - +n.noise(x + ((r * F256A[314]) - (r * F256A[315])), z + ((r * F256A[315]) + (r * F256A[314]))) - +n.noise(x + ((r * F256A[316]) - (r * F256A[317])), z + ((r * F256A[317]) + (r * F256A[316]))) - +n.noise(x + ((r * F256A[318]) - (r * F256A[319])), z + ((r * F256A[319]) + (r * F256A[318]))) - +n.noise(x + ((r * F256A[320]) - (r * F256A[321])), z + ((r * F256A[321]) + (r * F256A[320]))) - +n.noise(x + ((r * F256A[322]) - (r * F256A[323])), z + ((r * F256A[323]) + (r * F256A[322]))) - +n.noise(x + ((r * F256A[324]) - (r * F256A[325])), z + ((r * F256A[325]) + (r * F256A[324]))) - +n.noise(x + ((r * F256A[326]) - (r * F256A[327])), z + ((r * F256A[327]) + (r * F256A[326]))) - +n.noise(x + ((r * F256A[328]) - (r * F256A[329])), z + ((r * F256A[329]) + (r * F256A[328]))) - +n.noise(x + ((r * F256A[330]) - (r * F256A[331])), z + ((r * F256A[331]) + (r * F256A[330]))) - +n.noise(x + ((r * F256A[332]) - (r * F256A[333])), z + ((r * F256A[333]) + (r * F256A[332]))) - +n.noise(x + ((r * F256A[334]) - (r * F256A[335])), z + ((r * F256A[335]) + (r * F256A[334]))) - +n.noise(x + ((r * F256A[336]) - (r * F256A[337])), z + ((r * F256A[337]) + (r * F256A[336]))) - +n.noise(x + ((r * F256A[338]) - (r * F256A[339])), z + ((r * F256A[339]) + (r * F256A[338]))) - +n.noise(x + ((r * F256A[340]) - (r * F256A[341])), z + ((r * F256A[341]) + (r * F256A[340]))) - +n.noise(x + ((r * F256A[342]) - (r * F256A[343])), z + ((r * F256A[343]) + (r * F256A[342]))) - +n.noise(x + ((r * F256A[344]) - (r * F256A[345])), z + ((r * F256A[345]) + (r * F256A[344]))) - +n.noise(x + ((r * F256A[346]) - (r * F256A[347])), z + ((r * F256A[347]) + (r * F256A[346]))) - +n.noise(x + ((r * F256A[348]) - (r * F256A[349])), z + ((r * F256A[349]) + (r * F256A[348]))) - +n.noise(x + ((r * F256A[350]) - (r * F256A[351])), z + ((r * F256A[351]) + (r * F256A[350]))) - +n.noise(x + ((r * F256A[352]) - (r * F256A[353])), z + ((r * F256A[353]) + (r * F256A[352]))) - +n.noise(x + ((r * F256A[354]) - (r * F256A[355])), z + ((r * F256A[355]) + (r * F256A[354]))) - +n.noise(x + ((r * F256A[356]) - (r * F256A[357])), z + ((r * F256A[357]) + (r * F256A[356]))) - +n.noise(x + ((r * F256A[358]) - (r * F256A[359])), z + ((r * F256A[359]) + (r * F256A[358]))) - +n.noise(x + ((r * F256A[360]) - (r * F256A[361])), z + ((r * F256A[361]) + (r * F256A[360]))) - +n.noise(x + ((r * F256A[362]) - (r * F256A[363])), z + ((r * F256A[363]) + (r * F256A[362]))) - +n.noise(x + ((r * F256A[364]) - (r * F256A[365])), z + ((r * F256A[365]) + (r * F256A[364]))) - +n.noise(x + ((r * F256A[366]) - (r * F256A[367])), z + ((r * F256A[367]) + (r * F256A[366]))) - +n.noise(x + ((r * F256A[368]) - (r * F256A[369])), z + ((r * F256A[369]) + (r * F256A[368]))) - +n.noise(x + ((r * F256A[370]) - (r * F256A[371])), z + ((r * F256A[371]) + (r * F256A[370]))) - +n.noise(x + ((r * F256A[372]) - (r * F256A[373])), z + ((r * F256A[373]) + (r * F256A[372]))) - +n.noise(x + ((r * F256A[374]) - (r * F256A[375])), z + ((r * F256A[375]) + (r * F256A[374]))) - +n.noise(x + ((r * F256A[376]) - (r * F256A[377])), z + ((r * F256A[377]) + (r * F256A[376]))) - +n.noise(x + ((r * F256A[378]) - (r * F256A[379])), z + ((r * F256A[379]) + (r * F256A[378]))) - +n.noise(x + ((r * F256A[380]) - (r * F256A[381])), z + ((r * F256A[381]) + (r * F256A[380]))) - +n.noise(x + ((r * F256A[382]) - (r * F256A[383])), z + ((r * F256A[383]) + (r * F256A[382]))) - +n.noise(x + ((r * F256A[384]) - (r * F256A[385])), z + ((r * F256A[385]) + (r * F256A[384]))) - +n.noise(x + ((r * F256A[386]) - (r * F256A[387])), z + ((r * F256A[387]) + (r * F256A[386]))) - +n.noise(x + ((r * F256A[388]) - (r * F256A[389])), z + ((r * F256A[389]) + (r * F256A[388]))) - +n.noise(x + ((r * F256A[390]) - (r * F256A[391])), z + ((r * F256A[391]) + (r * F256A[390]))) - +n.noise(x + ((r * F256A[392]) - (r * F256A[393])), z + ((r * F256A[393]) + (r * F256A[392]))) - +n.noise(x + ((r * F256A[394]) - (r * F256A[395])), z + ((r * F256A[395]) + (r * F256A[394]))) - +n.noise(x + ((r * F256A[396]) - (r * F256A[397])), z + ((r * F256A[397]) + (r * F256A[396]))) - +n.noise(x + ((r * F256A[398]) - (r * F256A[399])), z + ((r * F256A[399]) + (r * F256A[398]))) - +n.noise(x + ((r * F256A[400]) - (r * F256A[401])), z + ((r * F256A[401]) + (r * F256A[400]))) - +n.noise(x + ((r * F256A[402]) - (r * F256A[403])), z + ((r * F256A[403]) + (r * F256A[402]))) - +n.noise(x + ((r * F256A[404]) - (r * F256A[405])), z + ((r * F256A[405]) + (r * F256A[404]))) - +n.noise(x + ((r * F256A[406]) - (r * F256A[407])), z + ((r * F256A[407]) + (r * F256A[406]))) - +n.noise(x + ((r * F256A[408]) - (r * F256A[409])), z + ((r * F256A[409]) + (r * F256A[408]))) - +n.noise(x + ((r * F256A[410]) - (r * F256A[411])), z + ((r * F256A[411]) + (r * F256A[410]))) - +n.noise(x + ((r * F256A[412]) - (r * F256A[413])), z + ((r * F256A[413]) + (r * F256A[412]))) - +n.noise(x + ((r * F256A[414]) - (r * F256A[415])), z + ((r * F256A[415]) + (r * F256A[414]))) - +n.noise(x + ((r * F256A[416]) - (r * F256A[417])), z + ((r * F256A[417]) + (r * F256A[416]))) - +n.noise(x + ((r * F256A[418]) - (r * F256A[419])), z + ((r * F256A[419]) + (r * F256A[418]))) - +n.noise(x + ((r * F256A[420]) - (r * F256A[421])), z + ((r * F256A[421]) + (r * F256A[420]))) - +n.noise(x + ((r * F256A[422]) - (r * F256A[423])), z + ((r * F256A[423]) + (r * F256A[422]))) - +n.noise(x + ((r * F256A[424]) - (r * F256A[425])), z + ((r * F256A[425]) + (r * F256A[424]))) - +n.noise(x + ((r * F256A[426]) - (r * F256A[427])), z + ((r * F256A[427]) + (r * F256A[426]))) - +n.noise(x + ((r * F256A[428]) - (r * F256A[429])), z + ((r * F256A[429]) + (r * F256A[428]))) - +n.noise(x + ((r * F256A[430]) - (r * F256A[431])), z + ((r * F256A[431]) + (r * F256A[430]))) - +n.noise(x + ((r * F256A[432]) - (r * F256A[433])), z + ((r * F256A[433]) + (r * F256A[432]))) - +n.noise(x + ((r * F256A[434]) - (r * F256A[435])), z + ((r * F256A[435]) + (r * F256A[434]))) - +n.noise(x + ((r * F256A[436]) - (r * F256A[437])), z + ((r * F256A[437]) + (r * F256A[436]))) - +n.noise(x + ((r * F256A[438]) - (r * F256A[439])), z + ((r * F256A[439]) + (r * F256A[438]))) - +n.noise(x + ((r * F256A[440]) - (r * F256A[441])), z + ((r * F256A[441]) + (r * F256A[440]))) - +n.noise(x + ((r * F256A[442]) - (r * F256A[443])), z + ((r * F256A[443]) + (r * F256A[442]))) - +n.noise(x + ((r * F256A[444]) - (r * F256A[445])), z + ((r * F256A[445]) + (r * F256A[444]))) - +n.noise(x + ((r * F256A[446]) - (r * F256A[447])), z + ((r * F256A[447]) + (r * F256A[446]))) - +n.noise(x + ((r * F256A[448]) - (r * F256A[449])), z + ((r * F256A[449]) + (r * F256A[448]))) - +n.noise(x + ((r * F256A[450]) - (r * F256A[451])), z + ((r * F256A[451]) + (r * F256A[450]))) - +n.noise(x + ((r * F256A[452]) - (r * F256A[453])), z + ((r * F256A[453]) + (r * F256A[452]))) - +n.noise(x + ((r * F256A[454]) - (r * F256A[455])), z + ((r * F256A[455]) + (r * F256A[454]))) - +n.noise(x + ((r * F256A[456]) - (r * F256A[457])), z + ((r * F256A[457]) + (r * F256A[456]))) - +n.noise(x + ((r * F256A[458]) - (r * F256A[459])), z + ((r * F256A[459]) + (r * F256A[458]))) - +n.noise(x + ((r * F256A[460]) - (r * F256A[461])), z + ((r * F256A[461]) + (r * F256A[460]))) - +n.noise(x + ((r * F256A[462]) - (r * F256A[463])), z + ((r * F256A[463]) + (r * F256A[462]))) - +n.noise(x + ((r * F256A[464]) - (r * F256A[465])), z + ((r * F256A[465]) + (r * F256A[464]))) - +n.noise(x + ((r * F256A[466]) - (r * F256A[467])), z + ((r * F256A[467]) + (r * F256A[466]))) - +n.noise(x + ((r * F256A[468]) - (r * F256A[469])), z + ((r * F256A[469]) + (r * F256A[468]))) - +n.noise(x + ((r * F256A[470]) - (r * F256A[471])), z + ((r * F256A[471]) + (r * F256A[470]))) - +n.noise(x + ((r * F256A[472]) - (r * F256A[473])), z + ((r * F256A[473]) + (r * F256A[472]))) - +n.noise(x + ((r * F256A[474]) - (r * F256A[475])), z + ((r * F256A[475]) + (r * F256A[474]))) - +n.noise(x + ((r * F256A[476]) - (r * F256A[477])), z + ((r * F256A[477]) + (r * F256A[476]))) - +n.noise(x + ((r * F256A[478]) - (r * F256A[479])), z + ((r * F256A[479]) + (r * F256A[478]))) - +n.noise(x + ((r * F256A[480]) - (r * F256A[481])), z + ((r * F256A[481]) + (r * F256A[480]))) - +n.noise(x + ((r * F256A[482]) - (r * F256A[483])), z + ((r * F256A[483]) + (r * F256A[482]))) - +n.noise(x + ((r * F256A[484]) - (r * F256A[485])), z + ((r * F256A[485]) + (r * F256A[484]))) - +n.noise(x + ((r * F256A[486]) - (r * F256A[487])), z + ((r * F256A[487]) + (r * F256A[486]))) - +n.noise(x + ((r * F256A[488]) - (r * F256A[489])), z + ((r * F256A[489]) + (r * F256A[488]))) - +n.noise(x + ((r * F256A[490]) - (r * F256A[491])), z + ((r * F256A[491]) + (r * F256A[490]))) - +n.noise(x + ((r * F256A[492]) - (r * F256A[493])), z + ((r * F256A[493]) + (r * F256A[492]))) - +n.noise(x + ((r * F256A[494]) - (r * F256A[495])), z + ((r * F256A[495]) + (r * F256A[494]))) - +n.noise(x + ((r * F256A[496]) - (r * F256A[497])), z + ((r * F256A[497]) + (r * F256A[496]))) - +n.noise(x + ((r * F256A[498]) - (r * F256A[499])), z + ((r * F256A[499]) + (r * F256A[498]))) - +n.noise(x + ((r * F256A[500]) - (r * F256A[501])), z + ((r * F256A[501]) + (r * F256A[500]))) - +n.noise(x + ((r * F256A[502]) - (r * F256A[503])), z + ((r * F256A[503]) + (r * F256A[502]))) - +n.noise(x + ((r * F256A[504]) - (r * F256A[505])), z + ((r * F256A[505]) + (r * F256A[504]))) - +n.noise(x + ((r * F256A[506]) - (r * F256A[507])), z + ((r * F256A[507]) + (r * F256A[506]))) - +n.noise(x + ((r * F256A[508]) - (r * F256A[509])), z + ((r * F256A[509]) + (r * F256A[508]))) - +n.noise(x + ((r * F256A[510]) - (r * F256A[511])), z + ((r * F256A[511]) + (r * F256A[510]))) - +n.noise(x + ((r * F256A[512]) - (r * F256A[513])), z + ((r * F256A[513]) + (r * F256A[512]))) - +n.noise(x + ((r * F256A[514]) - (r * F256A[515])), z + ((r * F256A[515]) + (r * F256A[514]))) - +n.noise(x + ((r * F256A[516]) - (r * F256A[517])), z + ((r * F256A[517]) + (r * F256A[516]))) - +n.noise(x + ((r * F256A[518]) - (r * F256A[519])), z + ((r * F256A[519]) + (r * F256A[518]))) - +n.noise(x + ((r * F256A[520]) - (r * F256A[521])), z + ((r * F256A[521]) + (r * F256A[520]))) - +n.noise(x + ((r * F256A[522]) - (r * F256A[523])), z + ((r * F256A[523]) + (r * F256A[522]))) - +n.noise(x + ((r * F256A[524]) - (r * F256A[525])), z + ((r * F256A[525]) + (r * F256A[524]))) - +n.noise(x + ((r * F256A[526]) - (r * F256A[527])), z + ((r * F256A[527]) + (r * F256A[526]))) - +n.noise(x + ((r * F256A[528]) - (r * F256A[529])), z + ((r * F256A[529]) + (r * F256A[528]))) - +n.noise(x + ((r * F256A[530]) - (r * F256A[531])), z + ((r * F256A[531]) + (r * F256A[530]))) - +n.noise(x + ((r * F256A[532]) - (r * F256A[533])), z + ((r * F256A[533]) + (r * F256A[532]))) - +n.noise(x + ((r * F256A[534]) - (r * F256A[535])), z + ((r * F256A[535]) + (r * F256A[534]))) - +n.noise(x + ((r * F256A[536]) - (r * F256A[537])), z + ((r * F256A[537]) + (r * F256A[536]))) - +n.noise(x + ((r * F256A[538]) - (r * F256A[539])), z + ((r * F256A[539]) + (r * F256A[538]))) - +n.noise(x + ((r * F256A[540]) - (r * F256A[541])), z + ((r * F256A[541]) + (r * F256A[540]))) - +n.noise(x + ((r * F256A[542]) - (r * F256A[543])), z + ((r * F256A[543]) + (r * F256A[542]))) - +n.noise(x + ((r * F256A[544]) - (r * F256A[545])), z + ((r * F256A[545]) + (r * F256A[544]))) - +n.noise(x + ((r * F256A[546]) - (r * F256A[547])), z + ((r * F256A[547]) + (r * F256A[546]))) - +n.noise(x + ((r * F256A[548]) - (r * F256A[549])), z + ((r * F256A[549]) + (r * F256A[548]))) - +n.noise(x + ((r * F256A[550]) - (r * F256A[551])), z + ((r * F256A[551]) + (r * F256A[550]))) - +n.noise(x + ((r * F256A[552]) - (r * F256A[553])), z + ((r * F256A[553]) + (r * F256A[552]))) - +n.noise(x + ((r * F256A[554]) - (r * F256A[555])), z + ((r * F256A[555]) + (r * F256A[554]))) - +n.noise(x + ((r * F256A[556]) - (r * F256A[557])), z + ((r * F256A[557]) + (r * F256A[556]))) - +n.noise(x + ((r * F256A[558]) - (r * F256A[559])), z + ((r * F256A[559]) + (r * F256A[558]))) - +n.noise(x + ((r * F256A[560]) - (r * F256A[561])), z + ((r * F256A[561]) + (r * F256A[560]))) - +n.noise(x + ((r * F256A[562]) - (r * F256A[563])), z + ((r * F256A[563]) + (r * F256A[562]))) - +n.noise(x + ((r * F256A[564]) - (r * F256A[565])), z + ((r * F256A[565]) + (r * F256A[564]))) - +n.noise(x + ((r * F256A[566]) - (r * F256A[567])), z + ((r * F256A[567]) + (r * F256A[566]))) - +n.noise(x + ((r * F256A[568]) - (r * F256A[569])), z + ((r * F256A[569]) + (r * F256A[568]))) - +n.noise(x + ((r * F256A[570]) - (r * F256A[571])), z + ((r * F256A[571]) + (r * F256A[570]))) - +n.noise(x + ((r * F256A[572]) - (r * F256A[573])), z + ((r * F256A[573]) + (r * F256A[572]))) - +n.noise(x + ((r * F256A[574]) - (r * F256A[575])), z + ((r * F256A[575]) + (r * F256A[574]))) - +n.noise(x + ((r * F256A[576]) - (r * F256A[577])), z + ((r * F256A[577]) + (r * F256A[576]))) - +n.noise(x + ((r * F256A[578]) - (r * F256A[579])), z + ((r * F256A[579]) + (r * F256A[578]))) - +n.noise(x + ((r * F256A[580]) - (r * F256A[581])), z + ((r * F256A[581]) + (r * F256A[580]))) - +n.noise(x + ((r * F256A[582]) - (r * F256A[583])), z + ((r * F256A[583]) + (r * F256A[582]))) - +n.noise(x + ((r * F256A[584]) - (r * F256A[585])), z + ((r * F256A[585]) + (r * F256A[584]))) - +n.noise(x + ((r * F256A[586]) - (r * F256A[587])), z + ((r * F256A[587]) + (r * F256A[586]))) - +n.noise(x + ((r * F256A[588]) - (r * F256A[589])), z + ((r * F256A[589]) + (r * F256A[588]))) - +n.noise(x + ((r * F256A[590]) - (r * F256A[591])), z + ((r * F256A[591]) + (r * F256A[590]))) - +n.noise(x + ((r * F256A[592]) - (r * F256A[593])), z + ((r * F256A[593]) + (r * F256A[592]))) - +n.noise(x + ((r * F256A[594]) - (r * F256A[595])), z + ((r * F256A[595]) + (r * F256A[594]))) - +n.noise(x + ((r * F256A[596]) - (r * F256A[597])), z + ((r * F256A[597]) + (r * F256A[596]))) - +n.noise(x + ((r * F256A[598]) - (r * F256A[599])), z + ((r * F256A[599]) + (r * F256A[598]))) - +n.noise(x + ((r * F256A[600]) - (r * F256A[601])), z + ((r * F256A[601]) + (r * F256A[600]))) - +n.noise(x + ((r * F256A[602]) - (r * F256A[603])), z + ((r * F256A[603]) + (r * F256A[602]))) - +n.noise(x + ((r * F256A[604]) - (r * F256A[605])), z + ((r * F256A[605]) + (r * F256A[604]))) - +n.noise(x + ((r * F256A[606]) - (r * F256A[607])), z + ((r * F256A[607]) + (r * F256A[606]))) - +n.noise(x + ((r * F256A[608]) - (r * F256A[609])), z + ((r * F256A[609]) + (r * F256A[608]))) - +n.noise(x + ((r * F256A[610]) - (r * F256A[611])), z + ((r * F256A[611]) + (r * F256A[610]))) - +n.noise(x + ((r * F256A[612]) - (r * F256A[613])), z + ((r * F256A[613]) + (r * F256A[612]))) - +n.noise(x + ((r * F256A[614]) - (r * F256A[615])), z + ((r * F256A[615]) + (r * F256A[614]))) - +n.noise(x + ((r * F256A[616]) - (r * F256A[617])), z + ((r * F256A[617]) + (r * F256A[616]))) - +n.noise(x + ((r * F256A[618]) - (r * F256A[619])), z + ((r * F256A[619]) + (r * F256A[618]))) - +n.noise(x + ((r * F256A[620]) - (r * F256A[621])), z + ((r * F256A[621]) + (r * F256A[620]))) - +n.noise(x + ((r * F256A[622]) - (r * F256A[623])), z + ((r * F256A[623]) + (r * F256A[622]))) - +n.noise(x + ((r * F256A[624]) - (r * F256A[625])), z + ((r * F256A[625]) + (r * F256A[624]))) - +n.noise(x + ((r * F256A[626]) - (r * F256A[627])), z + ((r * F256A[627]) + (r * F256A[626]))) - +n.noise(x + ((r * F256A[628]) - (r * F256A[629])), z + ((r * F256A[629]) + (r * F256A[628]))) - +n.noise(x + ((r * F256A[630]) - (r * F256A[631])), z + ((r * F256A[631]) + (r * F256A[630]))) - +n.noise(x + ((r * F256A[632]) - (r * F256A[633])), z + ((r * F256A[633]) + (r * F256A[632]))) - +n.noise(x + ((r * F256A[634]) - (r * F256A[635])), z + ((r * F256A[635]) + (r * F256A[634]))) - +n.noise(x + ((r * F256A[636]) - (r * F256A[637])), z + ((r * F256A[637]) + (r * F256A[636]))) - +n.noise(x + ((r * F256A[638]) - (r * F256A[639])), z + ((r * F256A[639]) + (r * F256A[638]))) - +n.noise(x + ((r * F256A[640]) - (r * F256A[641])), z + ((r * F256A[641]) + (r * F256A[640]))) - +n.noise(x + ((r * F256A[642]) - (r * F256A[643])), z + ((r * F256A[643]) + (r * F256A[642]))) - +n.noise(x + ((r * F256A[644]) - (r * F256A[645])), z + ((r * F256A[645]) + (r * F256A[644]))) - +n.noise(x + ((r * F256A[646]) - (r * F256A[647])), z + ((r * F256A[647]) + (r * F256A[646]))) - +n.noise(x + ((r * F256A[648]) - (r * F256A[649])), z + ((r * F256A[649]) + (r * F256A[648]))) - +n.noise(x + ((r * F256A[650]) - (r * F256A[651])), z + ((r * F256A[651]) + (r * F256A[650]))) - +n.noise(x + ((r * F256A[652]) - (r * F256A[653])), z + ((r * F256A[653]) + (r * F256A[652]))) - +n.noise(x + ((r * F256A[654]) - (r * F256A[655])), z + ((r * F256A[655]) + (r * F256A[654]))) - +n.noise(x + ((r * F256A[656]) - (r * F256A[657])), z + ((r * F256A[657]) + (r * F256A[656]))) - +n.noise(x + ((r * F256A[658]) - (r * F256A[659])), z + ((r * F256A[659]) + (r * F256A[658]))) - +n.noise(x + ((r * F256A[660]) - (r * F256A[661])), z + ((r * F256A[661]) + (r * F256A[660]))) - +n.noise(x + ((r * F256A[662]) - (r * F256A[663])), z + ((r * F256A[663]) + (r * F256A[662]))) - +n.noise(x + ((r * F256A[664]) - (r * F256A[665])), z + ((r * F256A[665]) + (r * F256A[664]))) - +n.noise(x + ((r * F256A[666]) - (r * F256A[667])), z + ((r * F256A[667]) + (r * F256A[666]))) - +n.noise(x + ((r * F256A[668]) - (r * F256A[669])), z + ((r * F256A[669]) + (r * F256A[668]))) - +n.noise(x + ((r * F256A[670]) - (r * F256A[671])), z + ((r * F256A[671]) + (r * F256A[670]))) - +n.noise(x + ((r * F256A[672]) - (r * F256A[673])), z + ((r * F256A[673]) + (r * F256A[672]))) - +n.noise(x + ((r * F256A[674]) - (r * F256A[675])), z + ((r * F256A[675]) + (r * F256A[674]))) - +n.noise(x + ((r * F256A[676]) - (r * F256A[677])), z + ((r * F256A[677]) + (r * F256A[676]))) - +n.noise(x + ((r * F256A[678]) - (r * F256A[679])), z + ((r * F256A[679]) + (r * F256A[678]))) - +n.noise(x + ((r * F256A[680]) - (r * F256A[681])), z + ((r * F256A[681]) + (r * F256A[680]))) - +n.noise(x + ((r * F256A[682]) - (r * F256A[683])), z + ((r * F256A[683]) + (r * F256A[682]))) - +n.noise(x + ((r * F256A[684]) - (r * F256A[685])), z + ((r * F256A[685]) + (r * F256A[684]))) - +n.noise(x + ((r * F256A[686]) - (r * F256A[687])), z + ((r * F256A[687]) + (r * F256A[686]))) - +n.noise(x + ((r * F256A[688]) - (r * F256A[689])), z + ((r * F256A[689]) + (r * F256A[688]))) - +n.noise(x + ((r * F256A[690]) - (r * F256A[691])), z + ((r * F256A[691]) + (r * F256A[690]))) - +n.noise(x + ((r * F256A[692]) - (r * F256A[693])), z + ((r * F256A[693]) + (r * F256A[692]))) - +n.noise(x + ((r * F256A[694]) - (r * F256A[695])), z + ((r * F256A[695]) + (r * F256A[694]))) - +n.noise(x + ((r * F256A[696]) - (r * F256A[697])), z + ((r * F256A[697]) + (r * F256A[696]))) - +n.noise(x + ((r * F256A[698]) - (r * F256A[699])), z + ((r * F256A[699]) + (r * F256A[698]))) - +n.noise(x + ((r * F256A[700]) - (r * F256A[701])), z + ((r * F256A[701]) + (r * F256A[700]))) - +n.noise(x + ((r * F256A[702]) - (r * F256A[703])), z + ((r * F256A[703]) + (r * F256A[702]))) - +n.noise(x + ((r * F256A[704]) - (r * F256A[705])), z + ((r * F256A[705]) + (r * F256A[704]))) - +n.noise(x + ((r * F256A[706]) - (r * F256A[707])), z + ((r * F256A[707]) + (r * F256A[706]))) - +n.noise(x + ((r * F256A[708]) - (r * F256A[709])), z + ((r * F256A[709]) + (r * F256A[708]))) - +n.noise(x + ((r * F256A[710]) - (r * F256A[711])), z + ((r * F256A[711]) + (r * F256A[710]))) - +n.noise(x + ((r * F256A[712]) - (r * F256A[713])), z + ((r * F256A[713]) + (r * F256A[712]))) - +n.noise(x + ((r * F256A[714]) - (r * F256A[715])), z + ((r * F256A[715]) + (r * F256A[714]))) - +n.noise(x + ((r * F256A[716]) - (r * F256A[717])), z + ((r * F256A[717]) + (r * F256A[716]))) - +n.noise(x + ((r * F256A[718]) - (r * F256A[719])), z + ((r * F256A[719]) + (r * F256A[718]))))/256.0D; + return (n.noise(x + ((r * F64C0) - (r * F64S0)), z + ((r * F64S0) + (r * F64C0))) + + n.noise(x + ((r * F64C1) - (r * F64S1)), z + ((r * F64S1) + (r * F64C1))) + + n.noise(x + ((r * F64C2) - (r * F64S2)), z + ((r * F64S2) + (r * F64C2))) + + n.noise(x + ((r * F64C3) - (r * F64S3)), z + ((r * F64S3) + (r * F64C3))) + + n.noise(x + ((r * F64C4) - (r * F64S4)), z + ((r * F64S4) + (r * F64C4))) + + n.noise(x + ((r * F64C5) - (r * F64S5)), z + ((r * F64S5) + (r * F64C5))) + + n.noise(x + ((r * F64C6) - (r * F64S6)), z + ((r * F64S6) + (r * F64C6))) + + n.noise(x + ((r * F64C7) - (r * F64S7)), z + ((r * F64S7) + (r * F64C7))) + + n.noise(x + ((r * F64C8) - (r * F64S8)), z + ((r * F64S8) + (r * F64C8))) + + n.noise(x + ((r * F64C9) - (r * F64S9)), z + ((r * F64S9) + (r * F64C9))) + + n.noise(x + ((r * F64C10) - (r * F64S10)), z + ((r * F64S10) + (r * F64C10))) + + n.noise(x + ((r * F64C11) - (r * F64S11)), z + ((r * F64S11) + (r * F64C11))) + + n.noise(x + ((r * F64C12) - (r * F64S12)), z + ((r * F64S12) + (r * F64C12))) + + n.noise(x + ((r * F64C13) - (r * F64S13)), z + ((r * F64S13) + (r * F64C13))) + + n.noise(x + ((r * F64C14) - (r * F64S14)), z + ((r * F64S14) + (r * F64C14))) + + n.noise(x + ((r * F64C15) - (r * F64S15)), z + ((r * F64S15) + (r * F64C15))) + + n.noise(x + ((r * F64C16) - (r * F64S16)), z + ((r * F64S16) + (r * F64C16))) + + n.noise(x + ((r * F64C17) - (r * F64S17)), z + ((r * F64S17) + (r * F64C17))) + + n.noise(x + ((r * F64C18) - (r * F64S18)), z + ((r * F64S18) + (r * F64C18))) + + n.noise(x + ((r * F64C19) - (r * F64S19)), z + ((r * F64S19) + (r * F64C19))) + + n.noise(x + ((r * F64C20) - (r * F64S20)), z + ((r * F64S20) + (r * F64C20))) + + n.noise(x + ((r * F64C21) - (r * F64S21)), z + ((r * F64S21) + (r * F64C21))) + + n.noise(x + ((r * F64C22) - (r * F64S22)), z + ((r * F64S22) + (r * F64C22))) + + n.noise(x + ((r * F64C23) - (r * F64S23)), z + ((r * F64S23) + (r * F64C23))) + + n.noise(x + ((r * F64C24) - (r * F64S24)), z + ((r * F64S24) + (r * F64C24))) + + n.noise(x + ((r * F64C25) - (r * F64S25)), z + ((r * F64S25) + (r * F64C25))) + + n.noise(x + ((r * F64C26) - (r * F64S26)), z + ((r * F64S26) + (r * F64C26))) + + n.noise(x + ((r * F64C27) - (r * F64S27)), z + ((r * F64S27) + (r * F64C27))) + + n.noise(x + ((r * F64C28) - (r * F64S28)), z + ((r * F64S28) + (r * F64C28))) + + n.noise(x + ((r * F64C29) - (r * F64S29)), z + ((r * F64S29) + (r * F64C29))) + + n.noise(x + ((r * F64C30) - (r * F64S30)), z + ((r * F64S30) + (r * F64C30))) + + n.noise(x + ((r * F64C31) - (r * F64S31)), z + ((r * F64S31) + (r * F64C31))) + + n.noise(x + ((r * F64C32) - (r * F64S32)), z + ((r * F64S32) + (r * F64C32))) + + n.noise(x + ((r * F64C33) - (r * F64S33)), z + ((r * F64S33) + (r * F64C33))) + + n.noise(x + ((r * F64C34) - (r * F64S34)), z + ((r * F64S34) + (r * F64C34))) + + n.noise(x + ((r * F64C35) - (r * F64S35)), z + ((r * F64S35) + (r * F64C35))) + + n.noise(x + ((r * F64C36) - (r * F64S36)), z + ((r * F64S36) + (r * F64C36))) + + n.noise(x + ((r * F64C37) - (r * F64S37)), z + ((r * F64S37) + (r * F64C37))) + + n.noise(x + ((r * F64C38) - (r * F64S38)), z + ((r * F64S38) + (r * F64C38))) + + n.noise(x + ((r * F64C39) - (r * F64S39)), z + ((r * F64S39) + (r * F64C39))) + + n.noise(x + ((r * F64C40) - (r * F64S40)), z + ((r * F64S40) + (r * F64C40))) + + n.noise(x + ((r * F64C41) - (r * F64S41)), z + ((r * F64S41) + (r * F64C41))) + + n.noise(x + ((r * F64C42) - (r * F64S42)), z + ((r * F64S42) + (r * F64C42))) + + n.noise(x + ((r * F64C43) - (r * F64S43)), z + ((r * F64S43) + (r * F64C43))) + + n.noise(x + ((r * F64C44) - (r * F64S44)), z + ((r * F64S44) + (r * F64C44))) + + n.noise(x + ((r * F64C45) - (r * F64S45)), z + ((r * F64S45) + (r * F64C45))) + + n.noise(x + ((r * F64C46) - (r * F64S46)), z + ((r * F64S46) + (r * F64C46))) + + n.noise(x + ((r * F64C47) - (r * F64S47)), z + ((r * F64S47) + (r * F64C47))) + + n.noise(x + ((r * F64C48) - (r * F64S48)), z + ((r * F64S48) + (r * F64C48))) + + n.noise(x + ((r * F64C49) - (r * F64S49)), z + ((r * F64S49) + (r * F64C49))) + + n.noise(x + ((r * F64C50) - (r * F64S50)), z + ((r * F64S50) + (r * F64C50))) + + n.noise(x + ((r * F64C51) - (r * F64S51)), z + ((r * F64S51) + (r * F64C51))) + + n.noise(x + ((r * F64C52) - (r * F64S52)), z + ((r * F64S52) + (r * F64C52))) + + n.noise(x + ((r * F64C53) - (r * F64S53)), z + ((r * F64S53) + (r * F64C53))) + + n.noise(x + ((r * F64C54) - (r * F64S54)), z + ((r * F64S54) + (r * F64C54))) + + n.noise(x + ((r * F64C55) - (r * F64S55)), z + ((r * F64S55) + (r * F64C55))) + + n.noise(x + ((r * F64C56) - (r * F64S56)), z + ((r * F64S56) + (r * F64C56))) + + n.noise(x + ((r * F64C57) - (r * F64S57)), z + ((r * F64S57) + (r * F64C57))) + + n.noise(x + ((r * F64C58) - (r * F64S58)), z + ((r * F64S58) + (r * F64C58))) + + n.noise(x + ((r * F64C59) - (r * F64S59)), z + ((r * F64S59) + (r * F64C59))) + + n.noise(x + ((r * F64C60) - (r * F64S60)), z + ((r * F64S60) + (r * F64C60))) + + n.noise(x + ((r * F64C61) - (r * F64S61)), z + ((r * F64S61) + (r * F64C61))) + + n.noise(x + ((r * F64C62) - (r * F64S62)), z + ((r * F64S62) + (r * F64C62))) + + n.noise(x + ((r * F64C63) - (r * F64S63)), z + ((r * F64S63) + (r * F64C63))) + + n.noise(x + ((r * F64C64) - (r * F64S64)), z + ((r * F64S64) + (r * F64C64))) + + n.noise(x + ((r * F64C65) - (r * F64S65)), z + ((r * F64S65) + (r * F64C65))) + + n.noise(x + ((r * F64C66) - (r * F64S66)), z + ((r * F64S66) + (r * F64C66))) + + n.noise(x + ((r * F64C67) - (r * F64S67)), z + ((r * F64S67) + (r * F64C67))) + + n.noise(x + ((r * F64C68) - (r * F64S68)), z + ((r * F64S68) + (r * F64C68))) + + n.noise(x + ((r * F64C69) - (r * F64S69)), z + ((r * F64S69) + (r * F64C69))) + + n.noise(x + ((r * F64C70) - (r * F64S70)), z + ((r * F64S70) + (r * F64C70))) + + n.noise(x + ((r * F64C71) - (r * F64S71)), z + ((r * F64S71) + (r * F64C71)))) / 64.0D; } } diff --git a/src/main/java/com/volmit/iris/util/math/Spiral.java b/src/main/java/com/volmit/iris/util/math/Spiral.java index 953ffa6ca..df1fdf3ef 100644 --- a/src/main/java/com/volmit/iris/util/math/Spiral.java +++ b/src/main/java/com/volmit/iris/util/math/Spiral.java @@ -60,8 +60,7 @@ public class Spiral implements Iterable { return p; } - public static Spiral from(Position2 p, long iterations) - { + public static Spiral from(Position2 p, long iterations) { return new Spiral(p, iterations); }