nx_erotica_craft_lib.nx
buildroot/runtime/nx_erotica_craft_lib.nx
about
nx_erotica_craft_lib.nx -- the erotica craft SCORER as a shared lib (no main; Rule 15) so BOTH the gate
(nx_erotica_craft) and the autonomous loop (nx_erotica_loop) score off ONE impl. Reads the rubric + lexicons
from the sovereign seg_store via ss_open/ss_hget (idiomatic). ec_eval fills the per-axis scores into out[0..7]
and returns the weighted composite permil; callers decide KEEP/REVISE + build directives. NO 3rd-party.
out layout: [0]=emotion_ratio [1]=sensory [2]=displacement [3]=tension [4]=pacing [5]=afterglow [6]=consent [7]=slop_penalty
license_tier: ORIGINAL module: nishi-core.erotica.craft_lib
dependencies 2 imports · 2 importers
imports: nx_syscalls.nxnx_seg_store.nx
imported by: nx_erotica_craft.nxnx_erotica_loop.nx
structs
| none |
consts
| 9 | const K_MAGIC_1000000: i64 = 1000000 |
functions
| 11 | func ec_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } |
| 12 | func ec_lc(c: i64) -> i64 { if c>=65 { if c<=90 { return c+32 } } return c } called by 1: ec_count_term |
| 13 | func ec_count_term(text: *u8, tlen: i64, term: *u8, termlen: i64) -> i64 |
| 23 | func ec_list_hits(text: *u8, tlen: i64, buf: *u8, n: i64) -> i64 |
| 41 | func ec_store_hits(text: *u8, tlen: i64, h: *i64, key: *u8) -> i64 |
| 47 | func ec_words(text: *u8, tlen: i64) -> i64 called by 1: ec_eval |
| 54 | func ec_sent_spread(text: *u8, tlen: i64) -> i64 called by 1: ec_eval |
| 69 | func ec_weight(buf: *u8, n: i64, axis: *u8, axislen: i64) -> i64 called by 1: ec_eval |
| 88 | func ec_arc(text: *u8, h: *i64) -> i64 |
| 101 | func ec_eval(text: *u8, h: *i64, out: *i64) -> i64 |