Commit Graph

69 Commits

Author SHA1 Message Date
Stefan Müller 8d4a5c2ed8 Changed root finder to use base-2 exponent of bound
Since the root isolation algorithm uses a power of two as bound anyway,
it makes sense to use it's exponent in method interfaces and throughout
the algorithm. This simplifies multiplications to cheap shifts and will
make it easier to detect when the isolating interval size is 1.

Also added some method documentation.
2024-05-26 17:31:37 +02:00
Stefan Müller 04e1702a2e Added TBigIntPolynomial.ScaleVariableByPowerOfTwo 2024-05-26 16:59:16 +02:00
Stefan Müller ab453b347d Renamed root finding class and methods, now class methods 2024-05-26 14:23:31 +02:00
Stefan Müller ae30889bbb Fixed calculation of root-isolating intervals and tests 2024-05-25 02:51:00 +02:00
Stefan Müller fa5616f3cc Fixed initializer of zero polynomial 2024-05-25 02:35:55 +02:00
Stefan Müller baa1f8f31f Added bisection root finding algorithm with custom upper bound 2024-05-24 20:47:52 +02:00
Stefan Müller 53e3922654 Updated bisection root finding algorithm and test case 2024-05-24 20:22:06 +02:00
Stefan Müller cbaffbf55e Added TBigIntPolynomial methods needed for bisection algorithm 2024-05-24 12:03:25 +02:00
Stefan Müller 6802da1743 Merge branch 'bigint' into day24-analytical 2024-05-23 22:03:41 +02:00
Stefan Müller 2df8266d42 Added some improvements for TBigInt shift left operator 2024-05-23 22:01:25 +02:00
Stefan Müller 4329041353 Added TBigInt shift right operator and tests 2024-05-23 22:00:45 +02:00
Stefan Müller 9d444272e0 Merge branch 'bigint' into day24-analytical 2024-05-20 15:04:32 +02:00
Stefan Müller 52cee73123 Added TBigInt.GetMostSignificantBitIndex and tests 2024-05-20 15:03:54 +02:00
Stefan Müller afefbf46e3 Removed main project unit refs from FPCUnit project 2024-05-20 01:05:16 +02:00
Stefan Müller c25317c0fc Merge branch 'bigint' into day24-analytical 2024-05-16 17:14:00 +02:00
Stefan Müller 62887ad1d7 Fixed BigInt multiplication test cases 2024-05-16 17:08:44 +02:00
Stefan Müller df8b5c32fd Fixed BigInt test cases 2024-05-14 16:52:32 +02:00
Stefan Müller eee05a9646 Added BigInt test cases (many broken) 2024-05-13 18:20:23 +02:00
Stefan Müller 53827acf9b Added new unit for polynomial root finding algorithm 2024-05-13 15:22:18 +02:00
Stefan Müller 0bbae0a83e Added polynomial degree and coefficients as public properties 2024-05-13 15:22:18 +02:00
Stefan Müller 5808ec24f2 Added polynomials 2024-05-13 15:21:58 +02:00
Stefan Müller 44c2c845e0 Added WIP analytical solution attempt 2024-02-21 21:05:34 +01:00
Stefan Müller fb3f41a6af Added solution for "Day 24: Never Tell Me The Odds", part 1 2023-12-26 19:46:35 +01:00
Stefan Müller 5495b32692 Added solution for "Day 23: A Long Walk", part 1 2023-12-25 00:44:13 +01:00
Stefan Müller c3ecaf59fa Added custom constructors for TCosmicExpansion and TStepCounter to simplify test case setup 2023-12-23 20:16:18 +01:00
Stefan Müller 2bb89c952b Added solution for "Day 22: Sand Slabs", part 2 2023-12-23 20:08:10 +01:00
Stefan Müller 7b77846abc Added solution for "Day 22: Sand Slabs", part 1 2023-12-23 01:30:41 +01:00
Stefan Müller 4e28a7a4c2 Removed or unregistered tests for incomplete solutions 2023-12-21 21:14:50 +01:00
Stefan Müller 9855a38e50 Fixed missing visibility modifier on TFactor10CosmicExpansion test class 2023-12-21 21:12:18 +01:00
Stefan Müller bc2568756b Added solution for "Day 21: Step Counter", part 1 2023-12-21 21:11:31 +01:00
Stefan Müller 55f8f3d674 Added solution for "Day 20: Pulse Propagation", part 1 2023-12-21 16:14:00 +01:00
Stefan Müller b2bfbf1993 Added solution for "Day 19: Aplenty", part 2 2023-12-20 19:25:21 +01:00
Stefan Müller c3019613bd Added solution for "Day 19: Aplenty", part 1 2023-12-20 11:41:17 +01:00
Stefan Müller 58da932860 Added empty skeleton implementations and tests for days 17, 18, and 19 2023-12-19 17:57:58 +01:00
Stefan Müller 01ec0be32c Added solution for "Day 16: The Floor Will Be Lava", part 2 2023-12-19 17:26:18 +01:00
Stefan Müller 58c677f409 Added solution for "Day 16: The Floor Will Be Lava", part 1 2023-12-19 13:11:39 +01:00
Stefan Müller d582eb4d52 Added solution for "Day 15: Lens Library", part 2 2023-12-17 23:11:44 +01:00
Stefan Müller 3501f6f574 Added solution for "Day 15: Lens Library", part 1 2023-12-15 18:21:37 +01:00
Stefan Müller 22b9a24893 Added solution for "Day 14: Parabolic Reflector Dish", part 2 2023-12-14 21:23:07 +01:00
Stefan Müller 637e7aedad Added missing test value for day 14, part 1 2023-12-14 20:47:46 +01:00
Stefan Müller f9583e684d Added solution for "Day 14: Parabolic Reflector Dish", part 1 2023-12-14 17:51:45 +01:00
Stefan Müller 307eb14b55 Added solution for "Day 13: Point of Incidence", part 2 2023-12-14 00:32:27 +01:00
Stefan Müller 6b888a3f68 Added solution for "Day 13: Point of Incidence", part 1 2023-12-13 18:46:38 +01:00
Stefan Müller 64eeb98e85 Added solution for "Day 12: Hot Springs", part 1 2023-12-12 15:47:58 +01:00
Stefan Müller 8b13ad992b Added solution for "Day 11: Cosmic Expansion", part 2 2023-12-11 16:45:56 +01:00
Stefan Müller 5bd814a381 Added solution for "Day 11: Cosmic Expansion", part 1 2023-12-11 16:21:26 +01:00
Stefan Müller 344be871db Added solution for "Day 10: Pipe Maze", part 2 2023-12-11 15:03:01 +01:00
Stefan Müller ac81b20db5 Added solution for "Day 10: Pipe Maze", part 1 2023-12-10 12:23:20 +01:00
Stefan Müller 09baefc881 Added solution for "Day 9: Mirage Maintenance", part 2 2023-12-09 23:11:37 +01:00
Stefan Müller f69d60e5db Added solution for "Day 9: Mirage Maintenance", part 1 2023-12-09 23:10:27 +01:00