[Racket] Ferti hydroponic nutrient solver, redux.
Fix nnls logic.
If no latest target exists, the deficit is zero (no target, no problem).
services/nnls.rkt
@@ -26,17 +26,16 @@
26
26
(define latest-target (get-latest-nutrient-target-value n))
27
27
(define deficit
28
28
(cond
29
Added:
[(false? latest-target)
30
Added:
0]
29
31
[(or (false? latest-measurement)
30
32
(zero? latest-measurement))
31
33
latest-target]
32
Removed:
[(false? latest-target)
33
Removed:
0]
34
34
[(and (number? latest-measurement)
35
35
(number? latest-target))
36
36
(* 100
37
37
(/ (- latest-target latest-measurement)
38
Removed:
latest-measurement))]
39
Removed:
[else (error "either the target or measurement are not numbers")]))
38
Added:
latest-measurement))]))
40
39
deficit)))
41
40
(define error-threshold 10e-4)
42
41
(lawson-hanson-1974 fertilizer-product-matrix deficits error-threshold))