giles
7f8bf5f455
Test, Build, and Deploy / test-build-deploy (push) Failing after 28s
ocaml: phase 5.1 mortgage.ml baseline (monthly payment, 200k @ 5% / 30y = $1073)
...
Standard amortising-mortgage formula:
payment = P * r * (1 + r)^n / ((1 + r)^n - 1)
where r = annual_rate / 12, n = years * 12.
let payment principal annual_rate years =
let r = annual_rate /. 12.0 in
let n = years * 12 in
let pow_r = ref 1.0 in
for _ = 1 to n do pow_r := !pow_r *. (1.0 +. r) done;
principal *. r *. !pow_r /. (!pow_r -. 1.0)
For 200,000 at 5% over 30 years: monthly payment ~= $1073.64,
int_of_float -> 1073.
Manual (1+r)^n via for-loop instead of Float.pow keeps the program
portable to any environment where pow is restricted.
Tests float arithmetic precedence, for-loop accumulation in a float
ref, int_of_float on the result.
70 baseline programs total — milestone.
2026-05-09 14:52:13 +00:00
..
2026-05-09 08:50:12 +00:00
2026-05-09 12:14:32 +00:00
2026-05-08 19:57:09 +00:00
2026-05-09 12:34:36 +00:00
2026-05-09 06:15:03 +00:00
2026-05-09 06:59:22 +00:00
2026-05-09 12:52:55 +00:00
2026-05-09 12:24:48 +00:00
2026-05-08 21:05:32 +00:00
2026-05-09 11:19:23 +00:00
2026-05-09 13:02:17 +00:00
2026-05-09 09:15:00 +00:00
2026-05-09 02:24:45 +00:00
2026-05-09 10:40:49 +00:00
2026-05-08 17:52:49 +00:00
2026-05-09 00:13:11 +00:00
2026-05-08 16:53:44 +00:00
2026-05-08 13:44:28 +00:00
2026-05-09 10:21:11 +00:00
2026-05-09 01:47:27 +00:00
2026-05-08 13:44:28 +00:00
2026-05-09 12:04:42 +00:00
2026-05-09 14:52:13 +00:00
2026-05-08 15:01:04 +00:00
2026-05-09 11:09:23 +00:00
2026-05-08 13:33:24 +00:00
2026-05-08 17:44:07 +00:00
2026-05-09 11:52:19 +00:00
2026-05-09 06:05:31 +00:00
2026-05-09 01:11:53 +00:00
2026-05-09 11:42:52 +00:00
2026-05-09 09:34:40 +00:00
2026-05-09 14:40:22 +00:00
2026-05-09 13:30:46 +00:00
2026-05-09 08:21:19 +00:00
2026-05-09 07:41:01 +00:00
2026-05-09 10:07:12 +00:00
2026-05-08 19:49:08 +00:00
2026-05-09 00:23:58 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 11:00:00 +00:00
2026-05-08 19:10:49 +00:00
2026-05-09 05:00:50 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 14:52:13 +00:00
2026-05-08 18:43:19 +00:00
2026-05-09 08:29:01 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 10:31:22 +00:00
2026-05-09 09:57:18 +00:00
2026-05-09 07:19:52 +00:00
2026-05-08 20:49:26 +00:00
2026-05-09 14:21:24 +00:00
2026-05-09 09:24:41 +00:00
2026-05-09 12:44:02 +00:00
2026-05-08 19:04:04 +00:00
2026-05-08 13:44:28 +00:00
2026-05-08 23:40:36 +00:00
2026-05-09 08:39:56 +00:00
2026-05-09 09:47:25 +00:00
2026-05-09 00:13:11 +00:00
2026-05-09 06:47:47 +00:00
2026-05-09 07:31:33 +00:00
2026-05-09 02:16:18 +00:00
2026-05-09 13:46:40 +00:00
2026-05-08 13:33:24 +00:00
2026-05-09 14:00:49 +00:00
2026-05-09 13:15:05 +00:00
2026-05-09 05:44:35 +00:00
2026-05-09 08:11:07 +00:00
2026-05-08 16:11:03 +00:00
2026-05-09 08:01:21 +00:00
2026-05-09 14:30:55 +00:00
2026-05-09 11:33:30 +00:00