nx_taste_psychophysics.nx
buildroot/runtime/nx_taste_psychophysics.nx
about
nx_taste_psychophysics.nx -- T1 of the TASTE-SCIENCE ladder: the
PERCEPTION rung. Where T0 maps one stimulus -> one receptor response,
T1 models how MULTIPLE tastes interact in a real mixture -- the central
psychophysics the static-score baseline (nx_food_science: just SUM the
axes) fundamentally cannot represent.
Two real, famous phenomena:
1. MIXTURE SUPPRESSION (divisive normalization): in a mixture, each
taste is suppressed by the others -- sugar mutes sourness and
bitterness (why lemonade needs so much sugar). The perceived
whole is SUB-ADDITIVE: less than the sum of the parts.
2. UMAMI SYNERGY (Yamaguchi 1967): monosodium glutamate + a 5'-
ribonucleotide (IMP/GMP) produce umami FAR GREATER than the sum --
a multiplicative super-additive term. The reason dashi (kombu +
bonito) tastes the way it does.
MEASURED EXCEED (gate-checked): mixture total < linear sum (suppression)
and glutamate+nucleotide > linear sum (synergy). A model that just adds
axis scores gets BOTH wrong, in opposite directions.
All intensities in milli (0..1000). Integer-exact, deterministic.
genealogy_id: yamaguchi_1967_umami_synergy + bartoshuk_mixture_suppression
+ heeger_1992_divisive_normalization
dependencies 1 imports · 3 importers
imports: nx_syscalls.nx
imported by: nx_flavor_design.nxnx_flavor_design_test.nxnx_taste_psychophysics_test.nx
structs
| none |
consts
| 28 | const NX_TP_SUPP_SCALE: i64 = 2000 // divisive-suppression scale (uM-equiv) |
| 29 | const NX_TP_SYNERGY_COEFF: i64 = 8000 // umami synergy strength (Yamaguchi) |
functions
| 33 | func nx_taste_suppress_one(intensity_i: i64, sum_others: i64) -> i64 |
| 41 | func nx_taste_umami_synergy(glutamate_milli: i64, nucleotide_milli: i64) -> i64 called by 1: main |
| 48 | func nx_taste_mixture_perceive(sweet: i64, sour: i64, salty: i64, |
| 60 | func nx_taste_mixture_total(sweet: i64, sour: i64, salty: i64, |