Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2013
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.20 KB | None | 0 0
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package testproject8;
  6.  
  7. import java.math.*;
  8. import java.util.*;
  9. /**
  10. *
  11. * @author Paul O'Brien Hunter
  12. */
  13. public class Testproject8
  14. {
  15. BigDecimal number_of_1_s;
  16. BigDecimal number_of_sqrt_3_s;
  17. int totalAccuracyNeeded;
  18. BigDecimal xValue;
  19. BigDecimal yValue;
  20. BigDecimal CENTER_POINT_VALUE[] = new BigDecimal[2];
  21. BigDecimal CENTER_POINT_VALUE_COUNT[] = new BigDecimal[2];
  22. BigDecimal finalVirtualSqrt3[] = new BigDecimal[1];
  23. BigDecimal nineToZeroInclusive[] = new BigDecimal[10];
  24. BigDecimal newVirtualSqrt3[] = new BigDecimal[1];
  25. int j = 0;
  26. {
  27. for(int i = 9; i >= 0; i--)
  28. {
  29. nineToZeroInclusive[j]=new BigDecimal(i);
  30. j++;
  31. }
  32. }
  33. public BigDecimal getVirtualSqrt3MoreAccurate(BigDecimal virtualSqrt3, int desiredScale)
  34. {
  35. if ((desiredScale + 7) - virtualSqrt3.scale() > 0)
  36. {
  37. for (BigDecimal nineToZero : nineToZeroInclusive)
  38. {
  39. if (virtualSqrt3.add(nineToZero.movePointLeft(virtualSqrt3.scale
  40. () + 1)).pow(2).compareTo(new BigDecimal("3")) > 0)
  41. {
  42. continue;
  43. }
  44. else
  45. {
  46. newVirtualSqrt3[0] = virtualSqrt3.add(nineToZero.movePointLeft
  47. (virtualSqrt3.scale() + 1));
  48. getVirtualSqrt3MoreAccurate(newVirtualSqrt3[0], desiredScale);
  49. if ((desiredScale + 7) - newVirtualSqrt3[0].scale() == 0)
  50. {
  51. finalVirtualSqrt3[0] = newVirtualSqrt3[0];
  52. }
  53. }
  54. break;
  55. }
  56. }
  57. return finalVirtualSqrt3[0];
  58. }
  59. public Testproject8(BigDecimal number_of_1_s, BigDecimal number_of_sqrt_3_s){
  60. this.number_of_1_s = number_of_1_s;
  61. this.number_of_sqrt_3_s = number_of_sqrt_3_s;
  62. this.totalAccuracyNeeded = (number_of_sqrt_3_s.precision() - 1) + 51;
  63. this.xValue = number_of_1_s;
  64. if (number_of_sqrt_3_s.compareTo(new BigDecimal("0")) == 0)
  65. {
  66. this.yValue = number_of_sqrt_3_s;
  67. }
  68. else
  69. {
  70. this.yValue = number_of_sqrt_3_s.multiply(getVirtualSqrt3MoreAccurate
  71. (new BigDecimal("1"), totalAccuracyNeeded + (number_of_sqrt_3_s.precision
  72. () - 1)), new MathContext(0, RoundingMode.UNNECESSARY)).stripTrailingZeros();
  73. }
  74. CENTER_POINT_VALUE[0] = xValue;
  75. CENTER_POINT_VALUE[1] = yValue;
  76. CENTER_POINT_VALUE_COUNT[0] = number_of_1_s;
  77. CENTER_POINT_VALUE_COUNT[1] = number_of_sqrt_3_s;
  78. }
  79. /**
  80. * @param args the command line arguments
  81. */
  82. public static void main(String[] args) {
  83. //Testproject8 example = new Testproject8(new BigDecimal("2"), new BigDecimal("2"));
  84. //System.out.println(example.CENTER_POINT_VALUE_COUNT[0] + ", " + example.CENTER_POINT_VALUE_COUNT[1]);
  85. // TODO code application logic here
  86. Map<String, List<String>> VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES = new HashMap<>();
  87. List<String> ZERO_TWO = new LinkedList<>();
  88. ZERO_TWO.add("1");
  89. ZERO_TWO.add("1");
  90. ZERO_TWO.add("-1");
  91. ZERO_TWO.add("1");
  92. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("0,2", ZERO_TWO);
  93. List<String> ONE_ONE = new LinkedList<>();
  94. ONE_ONE.add("2");
  95. ONE_ONE.add("0");
  96. ONE_ONE.add("-1");
  97. ONE_ONE.add("1");
  98. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("1,1", ONE_ONE);
  99. List<String> TWO_TWO = new LinkedList<>();
  100. TWO_TWO.add("1");
  101. TWO_TWO.add("1");
  102. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("2,2", TWO_TWO);
  103. List<String> THREE_ONE = new LinkedList<>();
  104. THREE_ONE.add("1");
  105. THREE_ONE.add("1");
  106. THREE_ONE.add("2");
  107. THREE_ONE.add("0");
  108. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("3,1", THREE_ONE);
  109. List<String> TWO_ZERO = new LinkedList<>();
  110. TWO_ZERO.add("1");
  111. TWO_ZERO.add("1");
  112. TWO_ZERO.add("1");
  113. TWO_ZERO.add("-1");
  114. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("2,0", TWO_ZERO);
  115. List<String> FOUR_ZERO = new LinkedList<>();
  116. FOUR_ZERO.add("2");
  117. FOUR_ZERO.add("0");
  118. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("4,0", FOUR_ZERO);
  119. List<String> THREE_NEGATIVE_ONE = new LinkedList<>();
  120. THREE_NEGATIVE_ONE.add("2");
  121. THREE_NEGATIVE_ONE.add("0");
  122. THREE_NEGATIVE_ONE.add("1");
  123. THREE_NEGATIVE_ONE.add("-1");
  124. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("3,-1", THREE_NEGATIVE_ONE);
  125. List<String> ONE_NEGATIVE_ONE = new LinkedList<>();
  126. ONE_NEGATIVE_ONE.add("2");
  127. ONE_NEGATIVE_ONE.add("0");
  128. ONE_NEGATIVE_ONE.add("-1");
  129. ONE_NEGATIVE_ONE.add("-1");
  130. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("1,-1", ONE_NEGATIVE_ONE);
  131. List<String> TWO_NEGATIVE_TWO = new LinkedList<>();
  132. TWO_NEGATIVE_TWO.add("1");
  133. TWO_NEGATIVE_TWO.add("-1");
  134. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("2,-2", TWO_NEGATIVE_TWO);
  135. List<String> ZERO_NEGATIVE_TWO = new LinkedList<>();
  136. ZERO_NEGATIVE_TWO.add("1");
  137. ZERO_NEGATIVE_TWO.add("-1");
  138. ZERO_NEGATIVE_TWO.add("-1");
  139. ZERO_NEGATIVE_TWO.add("-1");
  140. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("0,-2", ZERO_NEGATIVE_TWO);
  141. List<String> NEGATIVE_ONE_NEGATIVE_ONE = new LinkedList<>();
  142. NEGATIVE_ONE_NEGATIVE_ONE.add("1");
  143. NEGATIVE_ONE_NEGATIVE_ONE.add("-1");
  144. NEGATIVE_ONE_NEGATIVE_ONE.add("-2");
  145. NEGATIVE_ONE_NEGATIVE_ONE.add("0");
  146. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-1,-1", NEGATIVE_ONE_NEGATIVE_ONE);
  147. List<String> NEGATIVE_TWO_NEGATIVE_TWO = new LinkedList<>();
  148. NEGATIVE_TWO_NEGATIVE_TWO.add("-1");
  149. NEGATIVE_TWO_NEGATIVE_TWO.add("-1");
  150. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-2,-2", NEGATIVE_TWO_NEGATIVE_TWO);
  151. List<String> NEGATIVE_THREE_NEGATIVE_ONE = new LinkedList<>();
  152. NEGATIVE_THREE_NEGATIVE_ONE.add("-1");
  153. NEGATIVE_THREE_NEGATIVE_ONE.add("-1");
  154. NEGATIVE_THREE_NEGATIVE_ONE.add("-2");
  155. NEGATIVE_THREE_NEGATIVE_ONE.add("0");
  156. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-3,-1", NEGATIVE_THREE_NEGATIVE_ONE);
  157. List<String> NEGATIVE_TWO_ZERO = new LinkedList<>();
  158. NEGATIVE_TWO_ZERO.add("-1");
  159. NEGATIVE_TWO_ZERO.add("-1");
  160. NEGATIVE_TWO_ZERO.add("-1");
  161. NEGATIVE_TWO_ZERO.add("1");
  162. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-2,0", NEGATIVE_TWO_ZERO);
  163. List<String> NEGATIVE_FOUR_ZERO = new LinkedList<>();
  164. NEGATIVE_FOUR_ZERO.add("-2");
  165. NEGATIVE_FOUR_ZERO.add("0");
  166. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-4,0", NEGATIVE_FOUR_ZERO);
  167. List<String> NEGATIVE_THREE_ONE = new LinkedList<>();
  168. NEGATIVE_THREE_ONE.add("-2");
  169. NEGATIVE_THREE_ONE.add("0");
  170. NEGATIVE_THREE_ONE.add("-1");
  171. NEGATIVE_THREE_ONE.add("1");
  172. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-3,1", NEGATIVE_THREE_ONE);
  173. List<String> NEGATIVE_ONE_ONE = new LinkedList<>();
  174. NEGATIVE_ONE_ONE.add("1");
  175. NEGATIVE_ONE_ONE.add("1");
  176. NEGATIVE_ONE_ONE.add("-2");
  177. NEGATIVE_ONE_ONE.add("0");
  178. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-1,1", NEGATIVE_ONE_ONE);
  179. List<String> NEGATIVE_TWO_TWO = new LinkedList<>();
  180. NEGATIVE_TWO_TWO.add("-1");
  181. NEGATIVE_TWO_TWO.add("1");
  182. VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.put("-2,2", NEGATIVE_TWO_TWO);
  183. //System.out.println(VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.entrySet());
  184. List<Testproject8> Circles_Last_Created = new LinkedList<>();
  185. Circles_Last_Created.add(new Testproject8(new BigDecimal("0"), new BigDecimal("0")));
  186. Circles_Last_Created.add(new Testproject8(new BigDecimal("2"), new BigDecimal("0")));
  187. List<Testproject8> Points_Where_Circles_Last_Created_Intersect = new LinkedList<>();
  188. ListIterator Circles_Last_Created_Iterator = Circles_Last_Created.listIterator();
  189. while (Circles_Last_Created_Iterator.hasNext())
  190. {
  191. Testproject8 compareTo = (Testproject8) Circles_Last_Created_Iterator.next();
  192. ListIterator Circles_Last_Created_Iterator_2 = Circles_Last_Created.listIterator();
  193. while (Circles_Last_Created_Iterator_2.hasNext())
  194. {
  195. Testproject8 comparedAt = (Testproject8) Circles_Last_Created_Iterator_2.next();
  196. if (compareTo.CENTER_POINT_VALUE_COUNT[0] == comparedAt.CENTER_POINT_VALUE_COUNT[0]
  197. && compareTo.CENTER_POINT_VALUE_COUNT[1] == comparedAt.CENTER_POINT_VALUE_COUNT[1])
  198. {
  199. continue;
  200. }
  201. else
  202. {
  203. //System.out.println(compareTo.CENTER_POINT_VALUE_COUNT[0] + ", " + compareTo.CENTER_POINT_VALUE_COUNT[1]
  204. //+ " | " + comparedAt.CENTER_POINT_VALUE_COUNT[0] + ", " + comparedAt.CENTER_POINT_VALUE_COUNT[1]);
  205. BigDecimal[] CENTER_POINT_VALUE_COUNT_DIFFERENCE = new BigDecimal[2];
  206. CENTER_POINT_VALUE_COUNT_DIFFERENCE[0] = new BigDecimal("" +
  207. comparedAt.CENTER_POINT_VALUE_COUNT[0].subtract(compareTo.CENTER_POINT_VALUE_COUNT[0]));
  208. CENTER_POINT_VALUE_COUNT_DIFFERENCE[1] = new BigDecimal("" +
  209. comparedAt.CENTER_POINT_VALUE_COUNT[1].subtract(compareTo.CENTER_POINT_VALUE_COUNT[1]));
  210. String POTENTIALLY_VALID_VALUE_COUNT_DIFFERENCE = "" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[0] + ","
  211. + CENTER_POINT_VALUE_COUNT_DIFFERENCE[1];
  212. //System.out.println(CENTER_POINT_VALUE_COUNT_DIFFERENCE[0] + ", " + CENTER_POINT_VALUE_COUNT_DIFFERENCE[1]);
  213. //System.out.println(POTENTIALLY_VALID_VALUE_COUNT_DIFFERENCE);
  214. //System.out.println(VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.containsKey(POTENTIALLY_VALID_VALUE_COUNT_DIFFERENCE));
  215. if (VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.containsKey
  216. (POTENTIALLY_VALID_VALUE_COUNT_DIFFERENCE))
  217. {
  218. List<String> VALUE_COUNT_TRANSLATION = VALID_CENTER_POINT_VALUE_COUNT_DIFFERENCES.get
  219. (POTENTIALLY_VALID_VALUE_COUNT_DIFFERENCE);
  220. //System.out.println(VALUE_COUNT_TRANSLATION);
  221. //System.out.println(VALUE_COUNT_TRANSLATION.get(0) + " | " + VALUE_COUNT_TRANSLATION.get(1)
  222. //+ " | " + VALUE_COUNT_TRANSLATION.get(2) + " | " + VALUE_COUNT_TRANSLATION.get(3));
  223. //System.out.println(VALUE_COUNT_TRANSLATION.size());
  224. if (VALUE_COUNT_TRANSLATION.size() == 4)
  225. {
  226. BigDecimal[] VALUE_TO_BE_ADDED_TO_COMPARE_TO = new BigDecimal[4];
  227. BigDecimal PAIR_ONE_ONE = new BigDecimal("" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[0]).subtract
  228. (new BigDecimal("" + VALUE_COUNT_TRANSLATION.get(0)));
  229. BigDecimal PAIR_ONE_TWO = new BigDecimal("" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[1]).subtract
  230. (new BigDecimal("" + VALUE_COUNT_TRANSLATION.get(1)));
  231. BigDecimal PAIR_TWO_ONE = new BigDecimal("" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[0]).subtract
  232. (new BigDecimal("" + VALUE_COUNT_TRANSLATION.get(2)));
  233. BigDecimal PAIR_TWO_TWO = new BigDecimal("" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[1]).subtract
  234. (new BigDecimal("" + VALUE_COUNT_TRANSLATION.get(3)));
  235. //System.out.println(PAIR_ONE_ONE + " | " + PAIR_ONE_TWO + " | " + PAIR_TWO_ONE + " | " + PAIR_TWO_TWO);
  236. VALUE_TO_BE_ADDED_TO_COMPARE_TO[0] = PAIR_ONE_ONE;
  237. VALUE_TO_BE_ADDED_TO_COMPARE_TO[1] = PAIR_ONE_TWO;
  238. VALUE_TO_BE_ADDED_TO_COMPARE_TO[2] = PAIR_TWO_ONE;
  239. VALUE_TO_BE_ADDED_TO_COMPARE_TO[3] = PAIR_TWO_TWO;
  240. //System.out.println(VALUE_TO_BE_ADDED_TO_COMPARE_TO[0] + " | " + VALUE_TO_BE_ADDED_TO_COMPARE_TO[1] + " | "
  241. //+ VALUE_TO_BE_ADDED_TO_COMPARE_TO[2] + " | " + VALUE_TO_BE_ADDED_TO_COMPARE_TO[3]);
  242. BigDecimal ONE = compareTo.CENTER_POINT_VALUE_COUNT[0].add
  243. (VALUE_TO_BE_ADDED_TO_COMPARE_TO[0]);
  244. BigDecimal TWO = compareTo.CENTER_POINT_VALUE_COUNT[1].add
  245. (VALUE_TO_BE_ADDED_TO_COMPARE_TO[1]);
  246. BigDecimal THREE = compareTo.CENTER_POINT_VALUE_COUNT[0].add
  247. (VALUE_TO_BE_ADDED_TO_COMPARE_TO[2]);
  248. BigDecimal FOUR = compareTo.CENTER_POINT_VALUE_COUNT[1].add
  249. (VALUE_TO_BE_ADDED_TO_COMPARE_TO[3]);
  250. //System.out.println(ONE + " | " + TWO + " | " + THREE + " | " + FOUR);
  251. Points_Where_Circles_Last_Created_Intersect.add
  252. (new Testproject8(ONE, TWO));
  253. Points_Where_Circles_Last_Created_Intersect.add
  254. (new Testproject8(THREE, FOUR));
  255. }
  256. else
  257. {
  258. BigDecimal[] VALUE_TO_BE_ADDED_TO_COMPARE_TO = new BigDecimal[2];
  259. BigDecimal PAIR_ONE_ONE = new BigDecimal("" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[0]).subtract
  260. (new BigDecimal("" + VALUE_COUNT_TRANSLATION.get(0)));
  261. BigDecimal PAIR_ONE_TWO = new BigDecimal("" + CENTER_POINT_VALUE_COUNT_DIFFERENCE[1]).subtract
  262. (new BigDecimal("" + VALUE_COUNT_TRANSLATION.get(1)));
  263. VALUE_TO_BE_ADDED_TO_COMPARE_TO[0] = PAIR_ONE_ONE;
  264. VALUE_TO_BE_ADDED_TO_COMPARE_TO[1] = PAIR_ONE_TWO;
  265. BigDecimal ONE = compareTo.CENTER_POINT_VALUE_COUNT[0].add
  266. (VALUE_TO_BE_ADDED_TO_COMPARE_TO[0]);
  267. BigDecimal TWO = compareTo.CENTER_POINT_VALUE_COUNT[1].add
  268. (VALUE_TO_BE_ADDED_TO_COMPARE_TO[1]);
  269. Points_Where_Circles_Last_Created_Intersect.add
  270. (new Testproject8(ONE, TWO));
  271. }
  272. }
  273. else
  274. {
  275. continue;
  276. }
  277. }
  278. }
  279. }
  280. /*Do your magic here please /g/entlemen ie remove all duplicates from linkedlist
  281. Points_Where_Circles_Last_Created_Intersect*/
  282. }
  283. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement