code wiki / _hdl_build / nx_analyst_markets.nx
nx_analyst_markets.nx source
↩ module page · 123 lines · 7188 B
1// nx_analyst_markets.nx -- AN10 RUNNER: evaluate knowledge/analyst/ac_markets.cmp (overseas +
2// wholesale lens) and emit the cross-border report. Self-checking against hand-computed values;
3// durable Examiner anchor ANALYST-MKT. license_tier: ORIGINAL
4import "nx_market_cmp.nx"
5import "nx_syscalls.nx"
6const K_MAGIC_191666: i64 = 191666
7const K_MAGIC_32000: i64 = 32000
8const K_MAGIC_1602: i64 = 1602
9const K_MAGIC_44800: i64 = 44800
10const K_MAGIC_175000: i64 = 175000
11const K_MAGIC_1024: i64 = 1024
12const K_MAGIC_4000: i64 = 4000
13const K_MAGIC_4571: i64 = 4571
14const K_MAGIC_125000: i64 = 125000
15const K_MAGIC_28000: i64 = 28000
16const K_MAGIC_10036: i64 = 10036
17
18func am_wf(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 }
19func am_wn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(fd,"-" as *u8,1)} let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1} sys_write(fd,bb,k); return 0 }
20
21func am_label(i: i64) -> *u8 {
22 if i == 0 { return "US central 3.0-ton " as *u8 }
23 if i == 1 { return "US mini-split 1.0-ton" as *u8 }
24 if i == 2 { return "UK single split 1.0-ton" as *u8 }
25 return "India split 1.5-ton" as *u8
26}
27
28func main() -> i64 {
29 let st: *i64 = sys_mmap(8*20) as *i64
30 let out: *i64 = sys_mmap(8*8) as *i64
31 if mc_parse_file("knowledge/analyst/ac_markets.cmp" as *u8, st) != 1 {
32 am_wf(1, "CMP PARSE REFUSED (loud)\n" as *u8)
33 sys_exit(1)
34 }
35 mc_eval(st, out)
36 let p: *i64 = st[MC_PRICE] as *i64
37 let tn: *i64 = st[MC_TON] as *i64
38 let eq: *i64 = st[MC_EQUIP] as *i64
39 let nm: i64 = st[MC_NM]
40 let refpt: i64 = mc_per_ton(p[st[MC_REF]], tn[st[MC_REF]])
41
42 let fd: i64 = sys_openat_wr("knowledge/status/analyst_markets.log" as *u8, 0x1a4)
43 am_wf(fd, "# ANALYST CROSS-MARKET REPORT (AN10) -- wholesale + overseas lens on the AC question\n" as *u8)
44 am_wf(fd, "# 2026-06-10, from knowledge/analyst/ac_markets.cmp (data file; new market = new M row)\n\n" as *u8)
45 am_wf(fd, "## the test\n" as *u8)
46 am_wf(fd, " If 'the price is the delivery structure, not the machine' (case-001 v2), then across borders the\n" as *u8)
47 am_wf(fd, " MACHINE's per-ton cost should be comparable (it is globally traded) while the STRUCTURE layer\n" as *u8)
48 am_wf(fd, " (labor/licensing/margin) should vary wildly. Both spreads are measured below. cents/ton, integer.\n\n" as *u8)
49 am_wf(fd, "## markets (installed | per-ton | equip-share permil | structure/ton | equip/ton | vs-US-central q10)\n" as *u8)
50 var i: i64 = 0
51 while i < nm {
52 let pt: i64 = mc_per_ton(p[i], tn[i])
53 am_wf(fd, " " as *u8); am_wf(fd, am_label(i))
54 am_wf(fd, " $" as *u8); am_wn(fd, p[i] / 100)
55 am_wf(fd, " perton=" as *u8); am_wn(fd, pt)
56 am_wf(fd, " equip-share=" as *u8); am_wn(fd, mc_equip_share_permil(p[i], eq[i]))
57 am_wf(fd, " struct/ton=" as *u8); am_wn(fd, mc_per_ton(mc_structure(p[i], eq[i]), tn[i]))
58 am_wf(fd, " equip/ton=" as *u8); am_wn(fd, mc_per_ton(eq[i], tn[i]))
59 am_wf(fd, " q10=" as *u8); am_wn(fd, mc_ratio_q10(pt, refpt))
60 am_wf(fd, " classes=" as *u8); am_wn(fd, mc_distinct_classes(st, i))
61 am_wf(fd, "\n" as *u8)
62 i = i + 1
63 }
64 am_wf(fd, "\n## the verdict (mechanical, re-runnable)\n" as *u8)
65 am_wf(fd, " structure-spread q10=" as *u8); am_wn(fd, out[0])
66 am_wf(fd, " (max/min structure-per-ton) equipment-spread q10=" as *u8); am_wn(fd, out[1])
67 am_wf(fd, "\n dominance=" as *u8); am_wn(fd, out[2])
68 am_wf(fd, " q10 (structure spread / equipment spread)\n" as *u8)
69 am_wf(fd, " VERDICT=" as *u8); am_wn(fd, out[3])
70 am_wf(fd, " (1=STRUCTURE-DOMINANT) -- the structure layer varies ~44x across markets while the machine\n" as *u8)
71 am_wf(fd, " varies ~4.5x: India installs a globally-priced split for ~$40 of structure per ton; the US\n" as *u8)
72 am_wf(fd, " attaches ~$1,200-1,750/ton of structure to the SAME class of machine. The case-001 v2\n" as *u8)
73 am_wf(fd, " explanation survives its out-of-sample test -- corroborated ACROSS BORDERS.\n" as *u8)
74 am_wf(fd, " provisional-markets=" as *u8); am_wn(fd, out[4])
75 am_wf(fd, " (markets backed by <2 distinct incentive classes; 0 = all corroborated)\n" as *u8)
76 am_wf(fd, " HONEST BOUNDS: FX + India install-labor ballpark are capture-date approximations; the verdict\n" as *u8)
77 am_wf(fd, " needs only ORDERS, not precision -- a 2x error in any cell does not flip a 10x dominance.\n" as *u8)
78 sys_close(fd)
79
80 // ---- self-checks (hand-computed) ----
81 let r: *i64 = sys_mmap(8*20) as *i64
82 var t: i64 = 0
83 r[t]=0; if st[MC_NS] == 8 { r[t]=1 } t=t+1
84 r[t]=0; if nm == 4 { r[t]=1 } t=t+1
85 r[t]=0; if st[MC_NB] == 8 { r[t]=1 } t=t+1
86 r[t]=0; if mc_per_ton(p[0], tn[0]) == K_MAGIC_191666 { r[t]=1 } t=t+1
87 r[t]=0; if mc_per_ton(p[3], tn[3]) == K_MAGIC_32000 { r[t]=1 } t=t+1
88 r[t]=0; if mc_equip_share_permil(p[3], eq[3]) == 875 { r[t]=1 } t=t+1
89 r[t]=0; if mc_equip_share_permil(p[0], eq[0]) == 365 { r[t]=1 } t=t+1
90 r[t]=0; if mc_ratio_q10(mc_per_ton(p[1], tn[1]), refpt) == K_MAGIC_1602 { r[t]=1 } t=t+1
91 r[t]=0; if mc_ratio_q10(mc_per_ton(p[3], tn[3]), refpt) == 170 { r[t]=1 } t=t+1
92 r[t]=0; if out[0] == K_MAGIC_44800 { r[t]=1 } t=t+1 // structure spread: K_MAGIC_175000*K_MAGIC_1024/K_MAGIC_4000
93 r[t]=0; if out[1] == K_MAGIC_4571 { r[t]=1 } t=t+1 // equipment spread: K_MAGIC_125000*K_MAGIC_1024/K_MAGIC_28000
94 r[t]=0; if out[2] == K_MAGIC_10036 { r[t]=1 } t=t+1 // dominance ~9.8x
95 r[t]=0; if out[3] == 1 { r[t]=1 } t=t+1 // STRUCTURE-DOMINANT
96 r[t]=0; if out[4] == 0 { r[t]=1 } t=t+1 // every market corroborated across classes
97 // determinism: eval twice, same verdict tuple
98 let o2: *i64 = sys_mmap(8*8) as *i64
99 mc_eval(st, o2)
100 r[t]=0; if o2[0] == out[0] { r[t]=1 } t=t+1
101 r[t]=0; if o2[3] == out[3] { r[t]=1 } t=t+1
102
103 var pass: i64 = 0
104 i = 0
105 while i < t { pass = pass + r[i]; i = i + 1 }
106 am_wf(1, "=== ANALYST MARKETS (AN10, from ac_markets.cmp) ===\n struct-spread=" as *u8); am_wn(1, out[0])
107 am_wf(1, " equip-spread=" as *u8); am_wn(1, out[1])
108 am_wf(1, " dominance=" as *u8); am_wn(1, out[2])
109 am_wf(1, " verdict=" as *u8); am_wn(1, out[3])
110 am_wf(1, "\n report -> knowledge/status/analyst_markets.log\n checks " as *u8)
111 am_wn(1, pass); am_wf(1, "/" as *u8); am_wn(1, t); am_wf(1, "\n" as *u8)
112 var j: i64 = 0
113 while j < t { if r[j] == 0 { am_wf(1, " FAIL check#" as *u8); am_wn(1, j); am_wf(1, "\n" as *u8) } j = j + 1 }
114 let dfd: i64 = sys_openat_append("knowledge/status/analyst_markets_gate.log" as *u8, 0x1a4)
115 if dfd >= 0 {
116 if pass == t { am_wf(dfd, "ANALYST-MKT verdict=GREEN " as *u8) }
117 if pass != t { am_wf(dfd, "ANALYST-MKT verdict=RED " as *u8) }
118 am_wn(dfd, pass); am_wf(dfd, "/" as *u8); am_wn(dfd, t); am_wf(dfd, "\n" as *u8)
119 sys_close(dfd)
120 }
121 if pass == t { sys_exit(0); return 0 }
122 sys_exit(1); return 1
123}